Search Unity

Unity Virgin With Programmers Paralysis

Discussion in 'Getting Started' started by Foggy-Noggin, Mar 6, 2016.

  1. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    Hello, I'm new to Unity. I've spent a better part of two weeks watching the instructional videos. My head is so full of new terminology and concepts that I only partially understand. Couple that with no experience using the editor and it's daunting myriad of tabs, panes, and properties to deal with, has my head spinning. It seems I can't get started...

    I've chosen a simplistic 2D top-down, non-scrolling game to start with. I learn by doing, the instructional videos are great for an overview, but after watching several dozen I feel too much time is spent on some concepts and no time spent on others. Whatever it is, I can't seem to get much out of them, or at least enough to even begin.

    I've broken down my simple game into a series of objectives (create all game objects, animate objects, react to object interaction). The first object I need to create is the background. The game will have MANY levels and each level will have a unique background made up of some of 24 different PNGs each with an alpha channel. Since each level will require a new compositing of the images a script is necessary. This is just a background image and there is no animation or interaction with the game objects.

    Simply put, 'How Do I Create A Background Image Comprised Of Arbitrary Images And Add This Image To A Background.' I searched in Answers and on the Forum but didn't find anything to help. I feel very stuck and stupid right now, if I'm struggling already, how am I going to do the projects I really want to do?

    Any help will be appreciated.
     
  2. aer0ace

    aer0ace

    Joined:
    May 11, 2012
    Posts:
    1,513
    Have you tried clicking on GameObject > 2D > Sprite, importing an image, changing the Texture Type to Sprite, and then applying the sprite image to the Sprite object in the Hierarchy?

    EDIT:
    Everyone starts this way, and many (including me) gave up multiple times before it starts to stick. Best thing you can do is keep soaking up any knowledge you can and keep practicing. Break down your ideas into its smallest actionable tasks, and tackle them one by one. I just gave you a task above. The more you learn, a couple of things will happen: you'll be learning at a much greater rate, and you'll also, realize more how much you don't know.
     
    Kiwasi likes this.
  3. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    Thanks aer0ace for taking the time to reply to my question. I have a game object already created for the background. My question was how to composite several png images into a single image and apply to the game object that I created. I do not have a single image to use, I need to be able to create a new unique background image for each level made from smaller images. This isn't a tiling question, and there is no apparent grid, most images are large and are used only once per background. I know how I want to position the images to make each background. I just don't know how to go about this.
     
  4. aer0ace

    aer0ace

    Joined:
    May 11, 2012
    Posts:
    1,513
    If you wanted to composite several png images into a single image, can't you do this in an image processing program like Photoshop, etc?

    It's difficult to exactly hone in on what you really want.
    You have multiple images. Okay, got that.
    You can then have a background image for each level. Sure.
    Do you want to randomize the pngs?
    I'm not quite sure what "smaller" images means. Is it a sprite sheet that you are trying to get coordinates from?

    You'll have to phrase your questions with a little bit more detail.

    EDIT:
    I'll take some stabs at what you are asking.
    Perhaps you want to overlay several background transparent images, such that it creates a sort of parallax scrolling background, like in most platformers. In this situation, you would create multiple sprite layers, and assign different sprites to them, and they'll just overlay eachother.

    If you truly wanted to composite the images, you would have to read each of the image pixels and "blit" them, or rather, use Texture.Apply(), but that's getting ahead of ourselves, because in real-time, this is a costly operation, so it's not recommended, unless it's a preprocessing step.

    Or, do you simply want to randomize the png that loads in the background object? You should be able to just attach a script to the background object, get a hold of its sprite renderer, and assign a new png texture to it.

    Is it any of these? If not, please explain.
     
    Raybarg likes this.
  5. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    That mostly fits it... At the start of each level I need to create a specific background image from specific images unique to what I define that level to contain. For example part of the background might be dirt for level 1, grass for level 2, asphalt for level 3 and concrete for level 4. Other images are common to all levels, but a minimal amount of images are required to create the entire background. Most images are irregular and have an alpha channel so the final image to be used as the background is constructed to layering certain images over others, but the final product is a single image that is used as the game level background.

    This is not something to be done on the fly. It is done once at the initialization of each level.
     
  6. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    kind of meant in the play loop, or maybe each frame. Now it will need to happen once for each level.
     
  7. aer0ace

    aer0ace

    Joined:
    May 11, 2012
    Posts:
    1,513
    It might be easier to just point to a couple of games that exhibit the type of behavior that you are looking to accomplish.
    It kind of sounds like you want to make a tile-based background, rather than loading a single image. Like, I'm not sure what you want to accomplish with irregularly shaped images with alpha channels. This sounds like decals to me. What is it? Both?
     
  8. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    No, I stated in a previous thread this is not a question about tiling and there is no grid. You are making this more difficult than it is. I need to create an image from other images to be used for the background of each level. It does not matter what images are used or where they are placed to answer my question.

    I need to composite images into a final single image to use as a background. I don't think this is ambiguous at all and I've stated this many times in the previous threads. If you want to help, please go back and read all my previous posts. I'm thinking your skimming and missing the content.
     
  9. JayJennings

    JayJennings

    Joined:
    Jun 24, 2013
    Posts:
    184
    Why? Unity doesn't care if your background is a single image or made up of 10 overlapping images. I think you might be the one making it more difficult than it is. ;)

    Jay
     
  10. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    I'd like to suggest that this is the crux of the problem... you have only watched the instructional videos, instead of actually doing the tutorials.

    Watching a tutorial is not effective. You come away with your head filled with foggy half-understood notions of what is possible, but little ability to actually do it. To learn how to do things, you must actually do them. That means, don't just watch a tutorial. Do it; pause the video every few seconds and follow along, recreating the project on your own computer. And when something doesn't work — either because Unity has changed, or (more likely) because you missed some key element — you go back, and figure out what it is, asking for help if necessary.

    Then you'll have not just foggy notions, but actual skills you can use to make your own first game.

    As for the particular problem you've raised in this thread, I agree with Jay. I can't think of any reason you would need to actually composite multiple images into one in Unity, and I hope you don't need to, because that is hard to do in Unity. Just overlap multiple transparent images wherever you want them and be done with it.
     
    Kiwasi likes this.
  11. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    Thank you, that is my point. I need a single image for use as the background.

    Each level will have a unique background made up of several images. I need to dynamically construct a master image made from compositing those images.

    I'm assuming I'm not using proper terminology in my question. I feel I've been very clear in my initial question and in each successive post. My inability to properly ask the question is clearly causing the confusion and all I can say is please try to read through my ineptness.

    I have a sprite in my hierarchy and I have a bunch of images in a folder in my assets folder. The sprite name is Background. What do I need to do to assemble several of my images into a single image and use on the sprite called Background? I need to do this for each level of the game, images used and placement of images are dependent on the level.
     
  12. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    WHY?!?

    Please try to explain what it is you're trying to accomplish. You are new to Unity, and you have decided you need this thing, while those who are experienced in making Unity games are telling you that you don't need that thing.

    So, you should consider the very real possibility that you don't actually need that thing. You just think you do because of some misunderstanding about how Unity works.

    Let's say you can't. (Technically you can, but it is hard, inefficient, and unnecessary, so for now pretend you can't.) Let's back up a step. What do you ACTUALLY need?

    I submit that what you actually need is a background (as it appears to the user) that is composed of several images. That's easy. You just make your "Background" object in your hierarchy an empty GameObject, which contains any number of Sprites inside it, each one representing some element of your background. Boom, done!
     
    Raybarg likes this.
  13. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Perhaps you could draw a picture of the effect you want to see?

    I agree with the general 'why are you doing this on your first project' sentiment of the above posts. It hardly makes sense as a place to start. However if you insist that this feature is core, here are a few ways to accomplish it.
    • Build the image up in an external editor. This is perhaps the best way to do it.
    • Build the image up by overlaying multiple sprites in the Unity scene view
    • Read off the individual pixels of the image and put them into a new texture. This is relatively expensive, and may loose image quality if not done properly
    • Use a mesh and mess around with UVs
    • Use a blitting technique
    Honestly I would only go with the first one or two. I've used all of the others, but only for very specific circumstances with very specific needs. They are needlessly complicated for your first game.
     
    aer0ace likes this.
  14. aer0ace

    aer0ace

    Joined:
    May 11, 2012
    Posts:
    1,513
    Right. What also concerns me is OP used the word "irregular" which is concerning, and is just another requirement for the solution. This is why I really think it's just the wording. I'm also pretty sure what the OP wants is fairly straightforward, but the use of such general terminology, there are like half a dozen ways to do it, with varying levels of pros and cons, as illustrated by @BoredMormon's list.

    I really do think it's easier to just either draw a picture, diagram, or find some links to games or pictures of what you're trying to accomplish.

    I'll again try to refine a little bit based on what I've gathered.
    OP has a Sprite, which he really means a Sprite GameObject in the hierarchy. This is a big difference, and it's confusing.
    In the Project, each PNG needs to be converted to a Sprite. This is done by changing the Texture Type when you click on the image, as I mentioned above. Once you have those images, you will need to reference those images somehow. Most straightforward way is to specify public Sprite properties in a script that's attached to the "sprite background" GameObject, and then drag each image to those slots.
    Then, in the script, on Start() or Awake(), you can assign any one of the textures to the SpriteRenderer component's sprite property.

    This describes one method, which is probably wrong, because I don't have the full picture of exactly what the requirements are, because of the communication gap.
     
  15. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    Ok, everybody is right, I'm new to this and I'm trying to accomplish what I think I need instead of what I do need. This brings me back to asking the wrong question.

    But first, I need to say hi to Joe. It's great to see a name I know. I spoke to Jeff Q a while back to see what he's been doing. Just seemed funny a couple of months later, there you are.

    What I'm trying to do is a very simple game. Other than the background there are only six sprites, four of which are static images that only move horizontally. These four sprites can never collide with each other so collision detection is not needed there. The game starts using only two of these four and the other two are added in higher levels. A fifth sprite also only moves horizontally but does animate alternating between two frames. Collision between the other four sprites is also not required. The sixth sprite will require several animation sequences (Idle, run forward, run backward, die). Collision detection will be required for the other five sprites.

    The game is a limitless level game and the object of the game is to complete a task a set number of times, each level increases the task count. Each levels background needs to be unique. I have 24 images that can be arranged in unique patterns using some of the 24 images once per level and a few images several times throughout the background.

    Seems odd and counter-intuitive to have the background render 24 to 30 images every frame. Pre-compositing even 100 levels of backgrounds would result in a huge asset folder. Seems like I can't have my cake, and I can't eat it either...

    So how do I build a unique background using a set of images for every level?
     
  16. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    Hey, thanks for saying hello, it's always nice to be recognized!

    As for your randomized-background issue: the way to do that really is as we suggested above: let the background render 24 to 30 images every frame.

    I can see why you are thinking it would be more efficient to combine this into a single big image, but that would be premature optimization in the extreme. Rendering images is what video cards do all day long, and 24-30 additional images isn't enough to make them even break a sweat. Moreover, if you did combine them all into one big image, it might actually perform worse in some environments, as the resulting big image would no longer fit comfortably into power-of-two textures and so could end up wasting quite a lot of VRAM.

    Also, it seems to me that the greatest risk any game project faces isn't that it will run a few frames/second slower than it could, but that it will fail to ever be finished at all. So, I encourage you not to waste any time on making things harder or more complicated because you believe it will run a little faster — just do whatever is simplest, clearest, and most expedient. You can always refactor later, when the project is nearly done and profiling has identified where the hot spots are.

    Good luck with your project!
    - Joe
     
    Raybarg, Kiwasi and aer0ace like this.
  17. aer0ace

    aer0ace

    Joined:
    May 11, 2012
    Posts:
    1,513
    Okay, I'm gonna take yet another stab at this.

    I'm imagining the background looking like one of those montage displays say, at the end of a movie during the credit sequence, that randomly scatters a bunch of images of postcards showing the events and destinations of the characters from the movie, disregarding the credit scroll (see, this is what I mean by an example, a visual one, that people can potentially relate to). With this, I would randomly generate any number of sprite objects with varying positions, (and rotations,?) and z-ordering, and randomly load any of the 24-30 sprite textures into those objects. If this is what you are looking for, we can all go ahead and start providing you with implementation details, so that we're not wasting time writing code that doesn't even satisfy your requirements.
     
  18. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    I'd like to thank everyone that has stuck with me on this, especially aer0ace.

    aer0ace, I'll answer yes to your last question, because it will fit as the model to what I need. The images are really terrain textures and vegetation images. The 24 images are just a way to to create varied backgrounds. I understand the issue of cashing a new background image and the overhead it has, but this would be done only once per level along with other level initialization, and performance would not be an issue there. I had assumed I'd be able to define a new image the size i need and place my images into that image, then attach to the background sprite, all within a script.

    I'm trying to do things how I would do them in other environments, instead of learning how to do what I need in this environment. My first instincts are to do how I already know how, as we all do, when in a new environment we apply all previous experiences to make sense of the unknown.

    I've had a night to mull over this and I've decided to skip the background for now and move on to the other game objects. Just for self moral, I need to do more than staring at the screen and clicking tabs. I hope I can get back to the background soon. I've also had time to reflect on other issues and I find myself bogged down further.

    My target is PC,Mac,Linux desktop and should be fullscreen. I'm working on a 27" iMac but I also want it to run on my 15" laptop. Screen sizes, resolutions, and screen ratios are different. I have some images prepared, but I'm not sure I can use them as is and may need to rescale them all before using. I also need to build several sprite sheets and until I can determine the scale of the images, I don't want to waste time redoing. So I'm trying to create a game without the assets to create it, BRILLIANT!

    It seems like I need to provide so many parameters to things with values that I don't even fathom the ranges of and don't understand the effects they would produce. kind of wondering if I'm over my head in this. Frankly, I'm still completely in the dark, with no direction. The only progress I've had has been this thread and all your help, but given all that, it has just boiled down to 'You're Doing It Wrong'. More reflection is not going to move me forward, but neither is stumbling in the dark. This is why most people bail on Unity, there is too much to know before you can do anything.

    Still paralyzed!
     
  19. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    I'm not sure I believe that most people bail on Unity — its user base is enormous. But I hear your point: you're feeling overwhelmed and frustrated.

    It sounds to me like you have attempted to just dive right in and figure things out as you go, instead of spending any time doing the tutorials. That's a rough way to go about it. Doable, of course, but certainly not the happy cheerful path with the bunnies and rainbows. It's the dark, creepy path with the trees that can move and want to eat your face.

    Unity's tutorials are both excellent and numerous. Let me encourage you to put your own game aside for a few days, and spend some time doing those. It will save you many hours of time in the end. It's not that Unity is poorly designed — I find it quite sensible in most respects. But it's a big API and, as you said, a newcomer can't even know what's worth paying attention to at first. The tutorials will give you that background you need to get up and running quickly, and then you can dig in to the reference materials (and ask questions here) specific to whatever you're trying to do.

    (EDIT: I know you said you spent two weeks watching the instructional videos... but watching them is not the same as doing them!)
     
    Raybarg and JayJennings like this.
  20. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    Well I didn't mean most people bail on Unity, but of those that do, the primary reason is the lack of a minimal knowledge to get started. While Unity has a very large user base, I'd bet that number is a fraction of those who have attempted, failed, and moved on. Unity does some very complex things, it's no wonder it is fairly complex to use.
     
  21. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    Yep, fair enough.

    But I encourage you to stick with it! Things will start to "click" for you soon, and you'll find it's not so hard after all, once you get the hang of it. Got questions? Ask away, we're here to help!
     
    aer0ace likes this.
  22. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    Thanks Joe,

    I've taken your advise and started working along with a 2D sample project.

    Within the first video my project does not match the one on the video and by the second video I've got an empty scene in game view and I'm lost. I've stopped replayed over and over to see where I've gone wrong and I can't see any deviation from the videos and what I've done. This is not helping...

    I've never been able to learn from videos. I'll try a different project and start over, but at some point I need to see a little progress. So far this endeavor is a colossal waste of time and the only thing I have learned is that this is harder than I had imagined. I am extremely doubtful at this point of getting that 'click' you spoke of. The exit door is in view and I'll need to use it, if things don't turn around very soon.
     
  23. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    Which one? Where is it?

    In what way?

    Where is this second video? Is your scene empty in the editor too, or only in game view? In the latter case, it's probably a simple matter of your camera not pointed at your scene objects. Post a screen shot of your setup (ideally, with the camera selected and visible in the scene view, so we can see how it's positioned), and we may be able to help.

    Well that's really up to you. If you want to learn this, then post actual questions with enough detail that they can be answered. If not, then post vague complaints without any way for anyone to actually help you. :)
     
    aer0ace likes this.
  24. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    Ok, I tried the 2D UFO example. After importing the assets as the video showed, I'm missing two folders as compared to the video. Despite that, I moved on to the second video. I didn't change camera or objects, but when the instructor clicked the game tab, game object were visible in the video but nothing showed in my game view, but does in the editor. I tossed out everything and started the project from the beginning again, thinking I might of had a bad download of assets, mostly because my asset folder does not match the video. A second attempt produced the same thing.

    Maybe you can suggest a project to start with.. I'm not doing well on my own.
     
  25. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    Well, the main way you're not doing well, in my opinion, is that you're still not posting links to the videos you're trying to follow, nor providing enough detail to get help. Let's take these one at a time.

    Let's see, "2D UFO example"... aha, you must mean this one. OK, so you say that after you imported the assets, you're missing two folders shown in the video. That doesn't mean much to me. Which two folders? What are their actual names? Or better yet, just take a screen shot, throw it up on snag.gy or img.ur or your preferred photo-sharing site, and show us! Based on what you've said so far, there is no way to guess what has gone wrong, if anything at all (it may be simply two "noise" folders that were not actually needed, and which have been removed from the assets to avoid confusing newbies, or something like that).

    OK, next, "the second video"... are we still talking about the 2D UFO example? In that case I guess you mean this video?

    I'm not certain, because you said "I didn't change camera or objects," but the first thing the instructor in this video does is change objects — in particular, dragging a background sprite into the hierarchy. Once he does, his setup looks like this:



    If you skip this step and just click on the Game tab right away, you'll have no background (of course). But if you do this step, then the background should be visible on both the Scene tab and the Game tab. The reason it's visible on the Game tab is because the camera is right there in the middle of the scene (you can see the little camera icon in the scene view), positioned right over the background.

    So, a screenshot of your setup would be tremendously helpful at this point. I know you don't know enough yet to notice and describe the important bits; so that's why screen shots are so helpful. (If you don't know how to take a screen shot, tell us what sort of computer system you're running on, and we'll help you figure that out.)

    Also, select the Camera and look at its Position in the inspector. Then do the same for the Background. They should both be at 0, 0, 0. If they're not (which could happen if, for example, you dragged your background to the scene tab instead of to the Hierarchy tab), just reset them to 0,0,0 and they should be lined up again.

    All this is wild speculation based on (still) not having enough information.... work with me, here!


     
    Kiwasi and aer0ace like this.
  26. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    Yes That's the one. Most things I generally pick up easy and self learn at my pace. I tend to bumble through things until I figure out how things work. My forum etiquette is lacking as I rarely visit them. I'm sorry I'm causing you grief and appreciate your patience. I feel I've just about exhausted your last bit of patience already and I'm still at 0,0,0.

    After importing the assets, I'm missing 3 folders, (not 2) Prefabs, Scenes, and Scripts. Completed and Sprites were the only ones imported. The end of the first video instructs to save the scene as Main in the Scenes folder. Because I don't have as Scenes folder it is now in the Assets folder. I know I can make a new folder and drop it in, but I'm also concerned that I'm missing other files too.

    Should I be starting somewhere else?
     
  27. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    You haven't exhausted my patience. My reserves are pretty deep. :)

    OK, so I'm downloading the assets for that tutorial now to see if I see the same problem. ...You're right, at the top level this has just Completed and Sprites, as you can see in the import dialog:



    And actually, you can see the same thing in the Asset Store page itself (the complete package structure is given below the description and screen shot). So, you got everything. The Prefabs, Scenes, and Script folders, as you can see, are there — but they're inside the Completed folder.

    Right! So, let's see where the confusion comes from. I've never done this tutorial, but here's a quick skim of the first video...
    • at 1:30, we're told to make a new project (and this takes to about 3:00, with all the explanations)
    • at 3:00, we're told to download and import art assets
    • at about 5:00, we're finally importing the package
    • at 5:13, you can see his Import window, and it looks just like mine (except that he's using the Dark theme in his Unity editor, which doesn't matter); he leaves all selected and clicks Import...
    • at 5:17, you see the result: he's got Completed and Sprites, plus Prefabs, Scenes, and Scripts. WTF?!?
    I'm now as confused as you are. I don't know how those folders landed at the root level for him. He claims (around 6:20) that these folders were all created when he imported the package, but I don't see why that would be, and it sure didn't happen for me (or you).

    So, this is a glitch in the tutorial. No wonder you're confused! But it's not important. These are just empty folders. Go ahead and create empty Prefabs, Scenes, and Scripts folders at the root level after importing the package. Then follow the rest of the video(s), and hopefully there won't be any more gotchas.

    EDIT: And no, I don't think you should be starting somewhere else... apart from this little glitch, it looks like a really great tutorial, well-paced and detailed for a beginner. Mistakes happen... but we can work through it!
     
    Kiwasi and aer0ace like this.
  28. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    Ok, finished the 2D UFO tutorial last night. Gruelingly slow, but did answer several questions I had. Of course also created many more questions. Going into this, I had a superficial understanding of openGL and past experience in C. I assumed this would give me a leg-up, but I find understanding the Editor is more crucial than understanding the mechanics of a 3D engine, and that my C is fairly rusty due to lack of use. At least I know where I stand now...

    While I understand the workflow much better I still don't think I'm ready to tackle a simple project on my own. I think I need to make a few cycles around the block before I'm confident in my bearings. Not sure where I should go next.

    I don't do a lot of gaming but what I play is FPS only. Platform games are mundane and I got over arcade games in the 80's. I'm no where delusional enough to think I can do a FPS now or ever. I do have several ideas for 2D arcade and platformer type games, none of which are too elaborate that I shouldn't be able to accomplish. I can attempt one of these and hope to fill in the blanks with some of the select tutorials as a reference, and of course here too.

    I really would hate to slog through another tutorial or two, but jumping into a project of my own without enough experience under my belt will be a slog too. Not sure what will be more productive for me at this point.
     
    JoeStrout likes this.
  29. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    I wouldn't say you could never do a FPS in Unity... they're not all that much harder than other kinds of games. You can make it easier for yourself in several ways:
    • Instead of heavily animated humanoids, use something more rigid, like tanks or hovercraft.
    • Instead of arbitrarily complex terrain, start out with just a flat plane (with obstacles).
    • Instead of multiplayer, start out single player, with simple automated targets & turrets.
    Define a simple game like that, and you'll have it up and running in no time. (Where no time == "one to six months".) If that's the sort of game you enjoy, I say go for it — you'd be surprised how involved a decent platformer game can be anyway.

    But yeah, another tutorial or two in probably a good idea in any case.
     
  30. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    Ok, one last report in...

    After this I will start a new thread for additional questions. Yesterday, I spent a big chunk of the day following some of the other tutorials. I'd get so far and had to stop. I'd jump to another and start that and stop again. While I did learn additional things, the pace is beyond slow and I find myself actually making the changes the video covers before they cover it. This doesn't mean I'm skilled enough or learned enough to go out foraging on my own, but I'm on the way.

    I'm trying to decide if spending nearly two week viewing videos of all types has helped or harmed me. It has given me a general grand view of the environment and a much deeper understanding of Unity. On the other hand, those hours viewing the videos were like sitting in the dentists chair. As I would watch, some element would be presented, I'd mentaly focus on that, my mind would go off on a tangent and I'd miss the next several minutes of the video. Rewind and go again. Finally I succumbed to the tediousness.

    My original question was how to create a custom background from a group of images. I have a very basic top-down arcade game idea for my first project. It's simple enough that I sure I can finish it (with a little help). My project needs 4 sprites that move horizontally, two left to right and two right to left. I opened a new project and imported a red square image and created a sprite in the scene. I then made a script to move horizontally. I struggled a bit and started with 'add force' but I found that was constantly increasing the speed of the sprite. I settled on setting the 'velocity' and removing drag. That worked great. I added a wraparound function so when the sprite moves out of the scene it is put off screen on the other side and repeats the process. I duplicated the sprite, attached the same script to it and that worked. As I watch my work the red square seemed like a car to me. I found a top-down image of a car, made a sprite sheet with 20 of the cars, each colored differently. I imported and sliced the sprite sheet in the sprite editor. Then replaced the red box with a car sprite. I then added some public vars for direction, min/max speed, and an array of sprites. In the editor I added all 20 sprites to the array. Back in the script where the car is reset to the other side of the screen I added functions to replace the velocity with a random one from a min/max range and randomly change the sprite to another car. I now have 4 cars with different colors moving at random speeds in both directions.

    While I'm not sure that was the proper way, it is working and from this I'm going to turn this into a game. So my original project will be my second and this car game will be my first. I don't think this will too compelling, but I've learned so much more working this out than a video would have. I need to make a few more sprite sheets to continue, I'm hoping I can continue moving at the same pace.

    Thank you everyone, for your help, especially Joe.
     
    Kiwasi and JoeStrout like this.
  31. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Nice work. Accidental games often turn out pretty well.
     
  32. maquis

    maquis

    Joined:
    Feb 7, 2016
    Posts:
    61
    FoggyNoggin:
    I'm not sure if this will help, but I did 2 free classes on Coursera.com on Unity Development. They each run every 4 weeks or so. Between the two classes, we did 3 different types of games and one item that was more of a "learn how to make objects and interact with them" thingy. I learned a *ton* from the classes, and after ending the second one, have almost completed a Tetris app all by myself. They had a shooting app, which could get you some of the tricks you would need for a FPS, a roller-ball app, and a platformer. I'm not really interested in making necessarily those specific apps, but they got me past the "I don't get how Unity works" part, and into really getting a basic understanding of playing in Unity and getting some games working. I didn't have any serious problems with getting the class assets to work, and the only problems I did have were stemming from bugs in the Linux version of Unity, but I was able to get those figured out from the forums here.

    I don't know if doing those classes would help you, but they helped me *so* much with figuring things out. I also had a few points where I managed to do something ahead of their videos, and that was fine. I just looked to see how they did it anyways. A couple times, they did it in a better way than me, because I didn't know the system as well.
     
    JoeStrout likes this.
  33. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    Thanks maquis, I'll checkout it out. Never hurts to have an additional source of information.

    I think I did what a lot of people do. Years ago I downloaded Unity just to see what it was. Once you first open, it is immediately intimidating. Many panes, many tabs, holly crap, this is going to take some learning. At the time my plate was full with other projects and more on my to do list. Soon my thoughts of getting around to Unity faded and it languished in my Applications folder. Last year I spent the final few months finishing up current work in preparation of tackling Unity on the new year. Well, as usual it took a bit longer, but I'm here.

    I budgeted three weeks to immerse myself in Unity. After that I have to share time with real work. I made a plan and actually followed it. I spent about 2 weeks viewing most of the beginning and intermediate videos, just so I can grasp an overall view of workflows, techniques, and to get acquainted with new terminology. The last week was to actually start a project on my own without taking a function example and modifying.

    I jumped in and started despite the fact I didn't really have enough knowledge to do so. Several users have helped me here to get over micro hurdles, as my learning process is gaining momentum. I still have many obstacles in my way to finish a complete game, but as long as I can move forward, removing a vail at a time, I'm ok with the snails pace I'm working. I'm use to showing a lot of progress for a days work and I'm finding this is also something that is adding to the steep learning of Unity. It seems I'm addicted to a drug called self-gratification, usually I'm swimming in it, but so far Unity is not giving it up for me so much. To much to know, to much not known yet. So far I'm bumbling through things to get it to work, and not so much knowing what to do and doing it. But you can say that about anything new and complicated. I don't think it is impossible for me to grasp, I have no complaints with Unity as I would need a much better understanding to notice flaws, and the people here are really great and extremely patient with noobs like me.

    FPS games are a nice long term goal for me as I think I would enjoy making what I like playing. I'm cutting my teeth on 2D games as the complexity is far less. I have about six or so 2D games in mind currently and in the future I'll probably add to the list. Not sure when the time will feel right, but I already have an idea for a FPS that is simplistic and requires almost no assets except a single room model and a single hall model. Once my Unity skills match my ability to come up with game ideas, I'll be a real developer, never forgetting, this is just a hobby for me.

    Now in hindsight, I wish I had started this process years ago...
     
    JoeStrout likes this.
  34. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    I had a chance to visit the site you mentioned. I didn't find any free classes, they all seem to be $75 a class, with 4 classes. I kind of like the structured class times, and required projects, to force me to keep moving but I'm on a severe budget right now.

    I'm going to have to go back to the instructional videos, which is completely tortuous for me. I'm at the point where when things are presented I already know it or I don't get it at all. I'm struggling badly in many areas and not too sure where to work to break out of this stagnation. Getting over Unitys initial hump is causing no end of problems. I'm starting to question if I can actually do this, I've never faced that before and it has me severely demoralized at his point.
     
  35. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    I suggest you set clear, bite-sized goals and take them one at a time. Don't waste more time on venting; I know that's sometimes a healthy thing to do, but you've done it now, so it's time to roll up your sleeves and solve these problems one at a time.

    One thing about Unity is that it has one of the best (i.e. most friendly, helpful, and supportive) communities I've ever seen on the internet. So, pick your bite-sized goal for the day, and tackle it. Read the docs, search for answers on google, but if you're still stuck, then post a clear, focused question here. I virtually guarantee you will get good answers this way.

    Then take a break — you've done it! Tomorrow you can pick another goal. Taken one at a time, I don't think they will seem all that overwhelming.
     
    Kiwasi likes this.
  36. Foggy-Noggin

    Foggy-Noggin

    Joined:
    Mar 6, 2016
    Posts:
    51
    Kind of doing that now. I actually have about half the game complete, but that's because what I have complete, are the autonomous elements in the game and only provide obstacles for the player. I'm working on simple animation for the player now and is not going smoothly. I am acknowledging that I need to go back and review things I've already covered and expand the scope of my learning to cover current issues i'm stuck on. My last 10 hours have been less than productive and struggling is only getting me deeper in the quicksand. It's clear I still need my training wheels and I need to review more and learn more before I can think about moving forward. I still have basic game design issues I haven't even delved into, that probably should have been taken into account before starting. Not sure this will ever be a working game without a complete rewrite. I would probably start something else before I did a rewrite.
     
  37. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    Nothing wrong with that. Look on any successful developer's hard drive, and you'll find it stuffed with half-written projects that were never finished. We learn, we grow, we move on. :)
     
    JayJennings, aer0ace and Kiwasi like this.