With my little enormous RPG Project officially commenced, here’s a temporary planning of what I hope to do. I’m not working with weeks, month or any other time measurements, I use “phases” for now. A phase will be done when it’s done, no sooner, no later.
- Project Setup
- Debug Class
- Input Manager
- Basic ScreenManager
This phase has already been completed. A system to switch game screens is absolutely essential, certainly in an RPG (e.g: option screens, HUD, battle UI. I tried to make something powerful making good use of OOP design and XNA’s (Drawable)GameComponent (which have built-in Enabled, Visible and DrawOrder properties).
- Basic controls: Button, Checkbox, Label, LinkLabel, ImageBox, ToggleControl
- Additional Controls: Listbox, Keyboard.
- AnimatedSprite class to handle sprite animations
In this relaxing phase 2 I will recreate several typical UI Controls, hoping to make them powerful with properties and events. If I have more time to spare and feel that it’s really needed, I might recreate a keyboard and scrollable listbox. I’ll also start working on a basic AnimatedSprite class to draw animated images from texture maps.
- Advanced ScreenManager (with animation system)
- Basic ParticleEngine
- Investigation of Data Storage System
- (Particle Engine Editor)
In this phase I’m going to improve my ScreenManager with some code borrowed from the ScreenManager MSDN sample to handle transitions between game screens. This code is quite cool as it gives the base class a percentage of how much of the transition has been completed, but allows game screens to handle their own transition based on those values. I’ll also start working on a basic ParticleEngine class to create some nice animations. It’s basic because I later on want to try to make a Particle Editor to easily create different effects, and actually save all that to text files which gets loaded. To achieve this I also need some way to write and read text files from and to the phone. In this phase I’ll start with some R&D to see how to take on this approach.
- TileEngine that draws game maps from textfiles using spritesheets.
- Character that can move on the map
- Camera class to follow player character
- Data Storage Engine
- Editors for game maps, particle engine.
- World Map Engine (to handle different maps)
Haven’t really properly thought about this. It’s all future future. We’ll see how things go by then though it’s safe to say that we can start working on specific RPG content after the above is well-completed.
About Editors & Data Storage System
There are still some issues I have to sort out. I’m thinking about creating Windows XNA Editors for things like animations and the tile engine. Most people use Windows applications as they are easier to develop, but by creating a custom XNA editor I can directly see the final result (and I can use my custom controls I created in Phase 2). Furthermore I don’t know how I’m going to handle the data storage exactly. Can I wire this up to some SQL Database, is it better to write everything to text files. How do I have to handle the data storage exactly to be efficient, and won’t Windows Phone cause issues (PC XNA is much more flexible, in my opinion). These are all sorts of things I have to carefully think about. For now, let’s get phase two down! ^.^
* The topmost image found in my earlier post is not from the game, it’s from a PSP RPG and leans very closely to what I’d like to achieve.