Even though I didn’t work that much on my latest project, my Ultima-inspired game reached a new milestone. I’ve added game states to the game to handle switching from the map view to the main menu and vice versa. In the future additional game states will be needed. A game state is basically what tells the program how to react on certain keypresses, what to show on the screen etc. I’ve added a screenshot of the main menu screen below.
I also managed to get some simple animations going, but unfortunately it’s not working perfectly right now. But at least it’s a step into the right direction.
I’ve also added functions to the game which allow me to spawn enemies on the world map. They don’t do anything at this point, but I already have some ideas on how to get them to move around and eventually attack the player.
I’ve also added a function which checks which tile the player is standing on. If it’s swamp there’s a certain chance that the player gets poisoned which means they’ll lose HP with every passing turn. Of course there’s no way to die at the moment, and curing poison is also not implemented.
What I have to do now is to make some design decisions. What stats do I want to use? What mechanics do I want to implement? Will there be multiple world maps or just one? Will combat be like in older Ultima games (on special combat maps) or more like in a roguelike? Should perma-death be a thing? To make things easier I could also throw out monsters visibly roaming the lands in favor of JRPG-style random encounters. Hmm…
I am also not sure whether I should stick to the Josh Steele tileset or not. It looks great but it also limits me in various ways. On the other hand limits can be great. I am not really an experienced computer game developer and I have to learn a lot of new tricks all the time. So limiting my design choices might help not to overwhelm myself too quickly.
If you are interested in further updates, please let me know. I also can go deeper into the coding aspects of my project if you’re interested in such things. My code probably looks horrible, but it still might help some other aspiring game designer to not repeat my mistakes.