Happy Summer Everyone! We hope you have enjoyed the two weeks of spring and are now ready for the impeding heat wave. Remember to hydrate! Here’s what we were up to over the last month~
Interiors Interiors Interiors
We started on the long road of finishing the maps this month. And by long road we mean the interiors for all of the cities and towns. The first city we are starting with is Myranova: a seaside resort city!
Cities are pretty big, so we split it in half vertically and got started. We mainly focused on the port, some shops and some household interiors. Here’s a couple screenshots:
A kitchen/living area for a large family in a small house. They are in the middle of putting away and organizing groceries.
The downstairs of a house used for temporary sleeping arrangements for sailors. A small makeshift stage is in the corner for performing sea shanties. How much sleep the sailors get upstairs with the racket downstairs is questionable.
A common sitting area and rooms in an upper-class hotel in Myranova. Very large and spacious, but quite empty feeling without many people passing through.
Cutscenes & Improvements
We began to implement cutscenes again this month – but not just any cutscenes. No. It was the difficult ones. The long ones. The ones with lots of NPCs moving around and reacting to things. Which suffice to say went well – but we needed to make a few improvements.
Generally speaking cutscenes look like this:
Here is the opening cutscene of the game with Rozalia walking in, calling out to Zack and then dragging him out of the stall.
Everything in this cutscene is scripted out in a single function – which basically means that the function is “single-threaded” in terms of what events happen. If you have background NPCs who can go about their own merry way, it’s fine, but as soon as you need them to do things and react but only when they need to but you don’t know at what point they’ll be at – things get complicated.
Sure, you can have everything in the main function. Most of the cutscenes work like that. But when you want to have more moving parts this can make the world feel very stutter-y. For example let’s say you have an NPC walking around for a cutscene. What if the NPC reaches the end of their movement path, but the player hasn’t advanced dialogue? They will stop moving and wait for the player to continue. What if you have more than one NPC? It becomes very obvious when the world stops moving – or what parts of the world are involved in the cutscene.
So it makes sense to make things “multi-threaded”. We have infrastructure for that already! But it’s through Gamemaker’s Timelines system, which can be difficult to use. Not to mention that for each timeline we create it’s a new asset. For a one-off scene. Here’s an example of a timeline where a character wanders around, thinks and then wanders around again:
So what to do? Infrastructure!
Here we have a timeline for an Officer walking on the screen. They do some actions, react to some things, then leave the screen. No need for a separate asset and all of the cutscene code is contained in the main function, but executes in parallel. Plus we can reuse our preexisting cutscene helpers. The cutscene system will also clean up the created timeline at the end appropriately to boot.
“But what about Gamemaker’s new Sequence tool?” You may ask. This project is old. We redid the cutscene system twice before to make it easier to use. Let’s save that for…. not this game.
BUT WAIT A SECOND! There’s more.
You’ll notice above that in earlier cutscenes we had these path assets defined. Paths are basically a list of points with speed values set to them. The idea was that if we ever needed to modify the movement in cutscenes we would edit the paths instead of the cutscenes. However we haven’t needed to do that – ever – and many of the paths are short without any change in speed, like this:
So we put in some infrastructure. Let’s create a path asset, add some points to it, then execute within the cutscene:
Similar to the timeline helpers made, the cutscenes will manage the temporary cutscene paths and make sure they get cleaned up just right. No one likes memory leaks.
So with all that said, we got some improvements to make fancier cutscenes. We put in fancier cutscenes. Wow. Cutscenes.
The big content update continues! We’ll be breaking down the scope a little bit more outside of maps, cutscenes and battles:
- Finish adding Myranova interiors
- Work on adding dungeon puzzles
- Finalizing Cutscene music
- TTBattle Skills and Balancing