First off, I’m brand new to this board and I’m glad a resource like this exists. This is not something I usually do but I’ve kinda hit a dead end. Before I actually ask you my series of questions I’ll prove that I have at least an understanding of what I’m attempting to do. I’ve been a Ruby, Obj-C, C++, and Java programmer for a little over 5 years now (excluding Obj-C, only about a year) and I’ve become very interested in game development. I’ve read up on Java2d and ran through a few tutorials leading up to creating a tetris clone. Basically, I’d like to create my own engine and create my own game based off that engine. Except, this is a huge task that takes a lot of planning and time. I’ve never done anything similar to this before and I need a point in the right direction. Where do I begin? What parts of the engine do I need to create? Are there any good books on this topic that you guys would suggest? Maybe even a good open source engine I could pick apart. Any help you guys could provide me would be great. Thanks.
Basically all you have in a simple engine is an update loop in which you run the game logic, get the user input and update the screen.
Everything after that is chrome on top. ImmediateGraphicUserInterfaces, fancy HeadsUpDisplays, Loading screens, Splash screens, Menus and Settings…
Don’t worry about making a full whatever-game-engine straightaway, it won’t take long to strip down for the next project, and things
will change and live along the way. Of course it is wise to try to put all the clearly reusable code in separate packages, imGui particularly
is a good example of a highly reusable area of code.
Personally, depending on the game I would look at:
a general reusable framework ( loading, splash, game states )
level editor, if game needs it
sound systems
imGui
reusable graphics routines like Sprite, AnimatedSprite, ParticleEmitter
More advanced engines may have inbuilt level editors, 3D scenegraph tools, Texture compression tools, and so forth. But that’s going a long way forwards.
The big-house toolchains are getting pretty impressive, they can do in-game animations with scripting and so forth, amazing terrain editors,
live resource swapping…
Thanks Karmington, how about books… any good ones?
If you want to develop for Win, Mac, Linux; then I would suggestion Slick 2D with TWL.
That gets you a nice game engine and nice GUI/theme-able interface.
Those in themselves will save you tons of time.
On top of that there are some nice network lib and data manglers out there.
Reuse when you can will help speed development, specially working by yourself.