Previously On IT Ninja . . .
When we last left off I was working on a platformer. I put that down for a while and began working on the space game. Then I hit a little wall there and decided to shift focus again. I’m back on IT Ninja, but it’s a whole new game! I have a feeling that I’ll take the old platform idea and eventually retool it, but for now I’m busy working on something new, the IT Ninja RPG!
And Now On IT Ninja . . .
So, starting from scratch! I have a tendency to enjoy beginnings. I’m loosely basing this game idea on other games such as Stardew Valley, Graveyard Keeper, My Time at Portia, Harvest Moon, etc. It’s in that genre of games. I’ve actually gotten quite a decent amount done already.
Travel the World
First thing I did was get a controllable character going. I frankensteined the character control script from the Ruby RPG tutorial I did. I actually went back to that a few times and I’m sure I will again. Once I had a character running around the screen it was time to create a world to move around.
So that’s what I did! I painstakingly drew out a big ole island for the IT Ninja to live on. It took me so long to get things just right. I kept running into issues with the tileset I was using. Tons of research and troubleshooting to get the tiles to line up correctly. It really took me a while to get things the way I wanted.
But once I had that done I needed more. What’s the point of having a world to move around if there’s nowhere to go? So that was my next step, add points of interest. Well, one point of interest for now, and another scene to move to. I started by creating another new empty scene and adding my important things to it such as the player and the GameControl object (from Space Game).
Points of Interest
Next up was to create a re-usable way to implement changing scenes. I added a collider to my POI set as a trigger and went to work figuring out a script to do what I wanted. In the beginning it was a very simple script. All it did was load the scene when the player entered the collider.
That was all well and good, but I wanted more. So I added a canvas and text to the POI marker, set as inactive, and in the script made that active when the player entered. I also made it so that the player is required to press a key to switch scenes. There’s going to be more involved when it comes to changing scenes, but my next step is to flesh out the scenes more, which will take a while.
I played around for a while with my scene change script and have now made it so that when the player changes from one location to another they will appear in the right place. This is actually pretty useful for this and other game ideas.
My next step is to add a main menu, that will be a little challenging. My game will use an autosave feature, and will have three slots available for save games. On my main menu I’ll have a button for each save slot as well as a button to delete the save if it exists. And that’s where things get tricky. I have to change my saving function to allow all of that.
Think it through, first we check if the save exists, if not, the button text will be “New Game” and it will say “Continue” if it does exist. In time I’ll modify that to actually read information from the save, to display that information on the button.
It took a lot of digging to make my scripts work. Honestly, I can’t say for sure they work just yet, but they don’t error, which is good. Mind you, I still need to setup exactly what the buttons do, LOL. Right now all I’ve done is change the text of the buttons (as well as show/hide the delete save buttons) based on if the save game exists. Next up is actually loading the game.
My GameControl script just keeps getting bigger. I’ve looked at best practices, and there doesn’t seem to be any good reason I should split it up into multiple scripts. As I was playing around with my game save and load functionality I found something I wasn’t expecting. I can’t put GameObjects into save files? That makes things interesting, but I am not yet at a point where it matters too much.
At least now I have my main menu working! I have three buttons that correspond to save slots. If there is no existing save for that slot it starts a new game, and if there is an existing save, you have the option to delete it. Upon choosing to load an existing save it moves you to the last auto-save, which is set to run on every scene transition (for now). There is still a lot of fine-tuning needed for all this, but the fact that it’s there and it works is the important part.
Next Time On IT Ninja . . .
So now the game has a flow, and useful functionality. I’ve got a world I can move around in, functioning save system, and a character I can control. I think my next step is going to be adding something to do besides running around the world. A purpose, maybe I’ll flesh out some kind of quest system!
- Inventory System
- Quest System
- Time/Date System