As I’m sure you can guess – I’ve been thinking and planning pretty much nonstop over the last few days and as a result I’ve made a few in-roads into where my starting point might be and what my short term goals will be.
So far I know it will be text-based and a role-playing game. As of now I’m adding java and Android into the mix.
Given that a lot of my programming experience is in Java and it is what I first studied after school, I think Java as a programming language makes sense. Also knowing that I intend to do the bulk of the programming myself it also seems sensible to avoid taking on a new or less familiar programming language at this point! This project is going to be challenging and time consuming enough without adding an additional level of complexity to it.
I’ll be programming with a view to distributing on the Android platform so I’ve got my trusty MacBook out to install Android Studio and have set my extremely slow – regional Australia internet (read: might as well be dialup) – to downloading the packages required to run it. No doubt I will have finished planning and probably story-boarding my game before this download is done.
I’ve also been thinking about similar games and the history of role-playing games. The further I delve into the planning stages of this game, the more I think that a critical part of its design and possible success will be how the story and mapping components are stored and accessed.
There are obvious reasons to care about this; such as stability and sustainability of the end program including the usage of available resources, particularly with mobile programming in mind. Independent of these important functional considerations I’d like to be able to soft-release additional stages of the story-line once it’s complete and I’d like the maps and story to be able to be separated from the engine completely giving me flexibility to use it on other platforms or for other projects (after all, this is all about the story!).
Another element that feels more important every time I think about it is the ability for others to contribute. I’d like for other people to be able to add their own creativity and use the basis of the game to then submit their own maps and stories, to essentially create their own world.
So with all of that in mind I’m moving forward with nested JSON files to store each of the mapping areas. I intend to parse these into an array of map objects containing the descriptions and links to the NPCs and objects that will be found in each of the map cells.
TL;DR – Java! I know it, some of it; sort of. So I’m starting there. I’m going to construct an engine that builds from a story and map file so that others can use it to build their own.