Post news RSS DevJournal - [EventDev] /// Mainframe

This DevJournal runs through the new system used for building the tutorial levels, among other new features added.

Posted by on

30 6 15 DevJournal EventDev

DevJournal - [EventDev] /// Mainframe

A substantial amount of progress has been made on the game since last update, so I've decided only to report on the most important features (and, perhaps, go through them in greater detail).

In this case, I will report mainly on the tutorial code, and touch on the other new features.

One of the main things I had realised in the process of developing Strailton was that there were going to be quite a lot of tutorial levels. Let's face it, tutorial levels from a developers perspective are pretty damn annoying to make, not that they're hard, but rather coding all of the different menu states/key inputs.

To save time, I spent a week working on a code which I could easily implement into any level I want to create I tutorial. Let's first see what a tutorial is like:

Now what is going on in the back-end?

Well, the script follows an array of which the level creator inputs specific commands into. These commands then function in order, based on which platform the player lands on.

Here's a quick worldcloud to show the common key terms used in the code:

This script (EventDev I call it) is interconnected to all of the other base scripts, such as "Timelord" (controls the game time state), or "MainPlatform" (controls the platform state). If you have used Unity, you'll know that when viewing a code from the Inspector, you can change certain public variables. In this case, I've used an array of strings people can add commands to. I say people, because when it comes down to making a level-editor later down the track, this will come in handy. I've added a bunch of commands, such as getting input, toggling controls, toggling/setting messages, waiting time, saving playerprefs and toggling tagged platforms as well as a few others.

Here are the commands used to run the tutorial depicted in the gif above:

Looks confusing? Let me break it down for you:

There's a whole lot of potential with this peice of code. I can have multiple running simultaneously, each one getting different input and acting upon that. This means people can make missions where you can only move forward, or ones where you can't save.

Enough on the tutorial system, let's talk about something different.

I've added in a new control into the game.

You can now rotate the cam on the Y axis around the player. Yay... :D

Another small feature I've added in, is the loading sequence.

Everytime you reset/reload/start the level, you will be subjected to the 'Loading' title sequence, which initialises all the variables in the background. Think of it more like this, all of the platforms have tiny strands which link into eachother, and the mainframe. Now these strands start off all broken up, and they need that short 0.5 seconds on startup to connect together. Now that long reveal you see when the level starts up will only play if you specifically restart the level from the menu, or start the level for your first time. That way you won't have to worry about watching the long clip over and over again if you make a tiny mistake and want to quickly restart, because lets face it, time is money.

I'll show you one last thing and then I promise I'm done - for now that is.

I've been working on a bunch of skins for the character, so here's a showcase:

Well, that's it for now, so thanks for reading and I'll keep you updated. For updates on-the-go, please follow my twitter down below, and I absolutely encourage feedback.

- ThoseSixFaces

Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.