Hi,
I just heard about game engines and it looks interesting. What are they anyway? And how do you create them? Any info?
This article explains what game engines are in general:
http://gamecareerguide.com/features/529/what_is_a_game_.php
A game engine is a package that provides the commonly used functions and classes that games of a specific type have in common, thereby reducing the amount of “generic” code you need to write.
It only answered my first question, what about the second?
A game engine is based around components that wrap the functionality that games use. Game engines can be written to handle all games or a genre. For instance, there are FPS game engines and there’s Tile Based Game engines.
Honestly you need a lot of experience before you should consider writing one. Try making some complex games to get a general feel of how the rendering and content work. Then try to abstract these ideas as you move onto other games. In flahs things like bitmap rendering require a lot of abstraction. The ability to load images and have the system automatically generate rotation images for optimization reasons and such and wrap the rendering calls so a person can just do graphics.Draw(texture, x,y,rotation) and other calls.
ok. But what do you mean by complex games?
Like an RTS or maybe a top down shooter. Those can get rather complex with large worlds and give you an idea of optimizations. In flash there’s bitmap rendering. Are you familiar with those concepts and how to render hundreds of things to the screen with different rotations. Things a game engine would be able to do. Have you loaded texture/sound dynamically in flash? Got the basic understanding of OOP with design patterns used to solve problems related entity systems. (very common problem beginners face). Know the idea of interfaces and how to use them. (commonly used in structuring game engines). Done A* pathfinding and compared the search heuristics between algorithms or studied boids and AI. There’s tons of things that can be contained in an engine that relate to games. When someone picks up a full blown engine they normally expect a lot of work to be done for them so they can worry about game play.
I hate to post this because I don’t 100% agree with it, but here:
[U]Make Games Not Engines[/U]
(it’s written by a very intelligent individual who is currently working Guild Wars 2)