   Feeling Overwhelmed
  About a week ago I came up with an idea for a game that happens to be very... content driven.  That is to say, I'm hoping to avoid giving the engine too many frills.  So I set out to find out what I needed to learn.  I've settled on using SDL and OpenGL (it's a 3d game.)Now I'm starting to take stock of what needs to be done and in what order in order for this game to come out and I'm feeling a little overwhelmed.  I've come to see if anyone has any advice for this first time director.The biggest thing that scares me right now is the apparent scarcity of art talent.  It seems like everywhere I go people are saying that modelers and animators are few and far between.  I think I can scare up some concept artists and do the storyboarding with stick figures, but I really don't think I'm going to be able to contribute very greatly in the modeling and animating portions, nor map design.The second scariest thing about this is that I'm really trying hard to make this engine from the ground up without anybody else, and I've never written anything this large or difficult before.  I spent the last two days going through SDL and OpenGL tutorials, and I feel like I might be able to pull this off, but I also feel like I don't know where to start right now.I'd like to have the game finished in two years (so I can use it as a senior project, if possible) and in order for the concept to succeed the art has to be at least semi professional (and lots of it.)So if there are any hints you could give me or a nudge in the right direction to meet people who could help, that would be greatly appreciated.  Where can I get artists?(I'll be a junior at San Jose state in Software Engineering this fall, fyi.)Thank you,Stephen   
  Talent:It's very very hard, to find good people willing to work for you unless you pay them competitive salaries.  Otherwise try advertising in the Help Wanted forum.  I wouldn't bother finding artists until you have a functional engine.Engine:Start very small (working through the NeHe tutorials is a great place to start)Add logic a tiny bit at a time.If you've never programmed games, start with tetris, or pacman or something basic.  There's a huge amount of problems you'll encounter just trying to get those running.  Not knowing how to solve those basic problems will make creating a 3D game all that much harder.Learn as much Linear Algebra and basic Physics as you can.  Unless you understand matrices, vectors, and some basic physics of motion, a 3D game is going to make you want to tear your eyes out.Read through the For Beginners Forum FAQ.  Read all the articles in the Articles & Resources section of this site.-me   ;  For context, I am not a professional developer, and I do not have a completed 3d engine under my belt (although one is under development). That's just so you know exactly how much my advice is worth :SI unfortunately don't have any substantial advice as far as art talent goes. You could try to drum up some support online but if you make your project open-source and others work on it you may not be able to submit it to your university. You could call up some old friends with art talents and see if they are interested.As for the engine:My first reaction is that you could reuse an existing one, but I guess for a CS project you'd really want to code one, so here goes...Hopefully you have a good grasp on 3d math, that is one of the single most important aspects. If not, get a good textbook (check your university library) or try to get by with online tutorials. Since you are at university, this textbook advice also applies to other aspects of course. I bet they have a bunch of books on 3d engine design, even.Speaking of engine design, this is also an important part of it. Not only the rendering part, but the overall engine itself is important also. You'll want to answer lots of questions about object hierarchy and how entity objects and their visual representations are related, about managing resources, etc. Even a simple engine needs all these things. To manage the engine scare, I'd go with the following task list (Edit: you might want to start on this only after you've done everything suggested by Palidine):0) flesh out your game design at least partially - think about the kind of interactions that will happen, the kind of data that needs to be stored, the kind of events that will fire, the kind of user interfaces that you will need1) identify all of the features you need the engine to support2) cross out the features that you really don't need3) cross out the features that you probably don't need4) cross out some more for good measure ;)5) break the rest down into manageable components (for instance: Renderer, AI, Sound, etc)6) code the engine one component at a time. To not get demotivated, you might want to start with something visually rewarding, like the renderer for instance.Edit: One specific article that has helped me a lot when thinking about engine design is Wilson, Kyle - Game Object Structure, which was a GDC roundtable. It's available on the web. YMMV :)   ;  a significant part , is your coding experience (un-related to game programming). en engine is mainly constructed to make the game coding a more pleasent experience.  in order to get that factor secured, you need to know your code ( classes , templates , structures and general design) , i would recommend refreshing your knowledge about those. lay out a design , cancel all the fancy stuff for now , focus much harder on the basic stuff .cause you need something to break your fall ( in case you mess something else). make your code clean,organisedand you shall do just well. if your looking for graphic artists (online) , check out www.cgtalk.com. if you are looking to attract artists , try to make your offer appealing (from the artistic side) , cause those creatureslike to be challenged , so give them what they want. good luck.   ;  Hey, thanks a bunch for the suggestions, I'll look into all of thatMy programming knowledge is fairly strong (though I have relatively little formal education.)  My main concern at this point is getting to know OpenGL well enough.To tell you the truth I hadn't even thought about sound or physics, mostly because I figured those would be significantly simpler than the renderer.My knowledge of 3d math is fairly good, I just got done with my fifth semester of calculus, and we did a whole thing on all the different 3d math systems, so my knowledge is pretty recent.Quote:Original post by lightbringerTo manage the engine scare...A list... * Read maps from some kind of file format * Read models and place them on maps * animate models * place lightsources and move them * allow player to navigate with wasd and mouselook * ability to script events and NPCs actions * music and foli sound * rudimentary inventory * interact with NPCs in text based conversations * pretty colors (seriously, I want people to go,"ahhh... pretty colors")Things I'd like but could live without: * HDR * parallax or bump mapping * realistic shadowing (any implementation) * maybe fog distance haze * Really long draw distance (highest priority of optionals)A list of things I don't need: * guns bullets or deaths * physics * generic characters * lip synch * special shader effects * AI * Points, deathcounts, score of any kind * a HUDThat's all I can think of for now.So, given the list of things I said I would need, where's a good place to start, what should I try to get working? (assume the renderer still scares me slightly.)Ok, again thanks a bunch,Stephen   ;  At this point I would work through the NeHe tutorials, as Palidine already suggested. Apart from the standard 3d stuff in there, the font rendering stuff in the later tuts is also interesting.Additionally, or alternatively, if you have not done so already, read the Red Book. It's dated, but invaluable in learning OpenGL. They walk you through all the important concepts, including when and how and why to use what functions in what order. I learned OpenGL with it (and lwjgl's javadocs, but that's another story) and I had very little idea about the math behind it when I started out, so you should find it straightforward.Also, your list may not be detailed enough just yet :)For instance, text conversations mean a rudimentary UI, possibly with windows; orthogonal projection, font rendering, 2d picking, probably some kind of highlight effect for text, etc...Inventory might mean items, models, equipment slots, inventory slots, 3d picking, yet another bunch of UI elements, probably popup windows with item descriptions (see text issues above)Scripting is a pretty big topic by itself. What scripting language? How does it interact with the game objects? What has to be exposed? Typical use cases? Use  of microthreads? Action queues for actors?IMHO, the more elements that you can identify (and get rid of), the better of an overview over the final system you have. Of course, no battle plan survives first contact :D   ;Quote:Original post by lightbringerFor instance, text conversations mean a rudimentary UI, possibly with windows; orthogonal projection, font rendering, 2d picking, probably some kind of highlight effect for text, etc...Inventory might mean items, models, equipment slots, inventory slots, 3d picking, yet another bunch of UI elements, probably popup windows with item descriptions (see text issues above)Scripting is a pretty big topic by itself. What scripting language? How does it interact with the game objects? What has to be exposed? Typical use cases? Use  of microthreads? Action queues for actors?Text work was honestly something I hadn't thought about, again because it seems like such a relatively simple thing compared to rendering.  Sure, I'd need a single pane to come up on the bottom with input and output.Inventory would probably be even simpler than that, maybe to the point of having no ability to audit it because there will be so few items, but even if I did something like that, I'd just do a 2d overlay.As far as scripting is concerned... no freakin' clue.  I don't know what most of those things are.  I know that I want things like 'if the player has item a and crosses threshold b play sound c" or "if this is the second time the player has been here trigger this animation." kind of thing.Thank you,Stephen   ;  oops, that one was me.Stephen   ;  hey man...i know someone who could work for free...just for the experience..he is a very talented artist with the torment taste in art...if ur game is of the horror type he will work for u(he doesn't have anything else to do)mail me if u want to see some of his work   