Let’s start from the beginning. What kind of game we are creating and what do we need to learn? Like blog title suggests we’ll be creating role-playing game where the player will have to battle some monsters in turn-based combat. RPG element will consist of some character attributes which will increase as we level up, ability to customize our character by choosing weapons and armor plus some game character specific skills which the player will be able to activate with skill points gained as the game character “levels up” . Also no real RPG is complete without some non-playable characters to interact with, world to explore and some good story to keep the player interested. Now, how will the combat part of the game work? Playable characters and AI controlled monsters will move in hexagonal grid in turns. The number of movement points will depend on some character attributes. Furthermore, playable characters will be eligible to one action per turn where action will be either using some weapon or defending to sustain less damage.
Ok, so now, as we know how the game should work, what are the things we need to learn? I think most of you will agree that we need to at least now about the following:
- Camera script which would let the player control camera rotation, zoom and also pan the camera
- Path-finding in main game world: a way to determine path for our game characters which would be used to go to some position specified by the player while avoiding obstacles
- Graphical user interface (GUI) which would let user manage character inventory, skills and see character attributes
- Dialog system: dialogs stored in XML documents could be nice
- Combat in hexagonal grid:
- Generating grid
- Path-finding inside the grid
- Moving our animated characters in the grid
- Enemy AI
- Displaying ranged weapon projectiles and determining if there are no obstacles which might prevent us from firing
- maybe more little details
What should we do first? We’ll be starting with hexagonal grids.