Intro Cutscene

The last couple of months have had some highs and lows in the development of The Violets of Amicus™.  The highs being that we’ve accomplished quite a bit; a lot of new art, three new sections to explore, and loads of new / updated functionality.  The lows being some bad news about our composer, spinning our wheels with Steam and Apple, and just a general feeling of being behind.  I (Dan) hope that as I write this post, that this will get my hopes up in that the good outweighs the bad and the bad is just a temporary state.  Anyway, let’s get to it!

Concept Art

Corinne was tasked with two pieces since we last posted: Ellixsis and the Dojo Master (working name).  Below are these illustrations:

Ellixsis
Ellixsis

Ellixsis, AKA “Map Girl”, is a quirky lady who finds herself lost much of the time.  However, she as taken it upon herself to chart the land of Velare.  Ellixsis, upon a successful trade, will chart part of your map, as well as trade compasses that point to valuable locations on the map.  Don’t worry, finding her will be mostly straight forward, because she sings a lot, and we can simply follow her voice to get to her location!

Dojo Master
Dojo Master

Dojo Master (working name) is in charge of training the soldiers of Velare.  Dojo Master’s role in this quest is to train Asteric on different skills and moves that the player can learn throughout their adventure.  In order to master these skills, the player must prove their worth by trading Skull Pendants, which are found in enemy forts.

Pixel Art

Tony has been knocking it out-of-the park with the quantity and quality of the pixel art!  First, will showcase Ellixsis pixel art:

Ellixsis Walk Down
Ellixsis Walk Down
Ellixsis Walk Left
Ellixsis Walk Left
Ellixsis Run Right
Ellixsis Run Right
Ellixsis Idle Down
Ellixsis Idle Down
Ellixsis Idle Up
Ellixsis Idle Up
Ellixis Stun Left
Ellixis Stun Left

A continuation from last time, the Advisor character, now known as Meminitus, also received pixel art:

Meminitus Walk Down
Meminitus Walk Down
Meminitus Walk Left
Meminitus Walk Left
Meminitus Run Left
Meminitus Run Left
Meminitus Idle Down
Meminitus Idle Down
Meminitus Stun Up
Meminitus Stun Up

We also began work on a Skeleton Enemy, a Soldier type of enemy that appears at night:

Skeleton Walk Down
Skeleton Walk Down
Skeleton Twohanded Walk Left
Skeleton Twohanded Walk Left
Skeleton Run Up
Skeleton Run Up
Skeleton Twohanded Run Down
Skeleton Twohanded Run Down
Skeleton Balanced Swing Right
Skeleton Balanced Swing Right
Skeleton Heavy Swing Left
Skeleton Heavy Swing Left
Skeleton Bow Pull Down
Skeleton Bow Pull Down

Intro Cutscene

One of the major items we worked on the last few months was the Intro Cutscene.  We were able to make heavy use of our Sequence system introduced in this post.  We also had to add a couple of custom animations for Minhaga, King Archon and the Advisor, to make the scene complete.  We have about 90% of the cutscene complete, with a few polishes, writing tweaks, and art animations to make.  However, we are pretty happy with how it is shaping up and would love to show you all!  The cutscene takes place within the game engine, and is not a separate video file!

SPOILER — this will spoil the introductory story of the game.

Chest Minigame

Another one of our tasks was to add more things to do in Castle Town.  Though we still have more tasks to complete here, we were able to get the Chest Minigame complete.  Here’s a clip of the game in action:

Updated Quick Switch

One feature we’ve had in the game for a while was the ability to quick switch.  The original way of doing this was pressing and holding the R-Stick button, and the using the D-Pad to quickly switch our weapon.  This worked good in my opinion, and every player who’s played with it so far said so as well.  However, in saying that it made sense, we never saw anyone actually use it in testing.  Therefore, we decided to overhaul this completely, with something more modern.  Our UI / UX contractor, Josh Morrow, also designed an interface for us:

Quick Select 1
Quick Select 1
Quick Select 2
Quick Select 2

We were able to implement this entirely with just the R-Stick.  As the game scales, if we need to add other buttons, as shown in the mockups, we’ll do so.  But right now, we want to keep it as clean as possible.  Below is a video of it in action:

Originally we had a cursor icon that represented where we were in relation to the menu.  But in our testing, we found players were stumbling over trying to get the icon on the circles, when in reality, the functionality just checks if the joystick is pressed in a certain direction and threshold.  Therefore, we removed it and players were able to understand its concept much more easily.

Hardware Updates

In our previous post, we briefly mentioned that we hired a QA contractor in charge of hardware.  We were able to knock out quite a few things:

  • We determined the minimum specs for the game:

    Minimum Specs
    Minimum Specs
  • We resolved resolution / scaling issues
    • Found an issue specifically with MacOSX not setting window resolution correctly
    • Fixed toggling fullscreen
  • If the window loses focus, we decided to bring up the inventory, essentially pausing the game
  • If overclocking happens, pop up alerting stating it should be running at 60 FPS
  • We fixed fonts in MacOSX not showing up occasionally

New Sections

We added three new sections to explore:

  1. A farming section, full of vegetable fields, grass, barns and horses:

    Farming Section
    Farming Section
  2. A starting forest area, with many trees and enemies:

    Starting Forest Section
    Starting Forest Section
  3. A new work-in-progress town, that we are calling Jawab Town for now:

    Jawab Town
    Jawab Town

Jawab Town is more of a small village nested in the forest of Jawab province.  This is the location where the player is instructed to go.  However, the bridge that serves as the entrance to the town is currently unstable and needs rebuilt.  The player must travel back to Castle Town to find the Carpenter Brothers to fix.  The point of this sequence is for the player to realize that:

  1. The journey back is full of resources, such has hidden treasure, better weapons and even finding Ellixsis to fill in our map.
  2. Castle Town is important, and going back often is recommended.  Especially because we can learn new skills from the Dojo Master, or stock up on items and food from the town shops.
  3. Once we come back to Jawab Town, we’ll quickly find there is an easy way to fast travel.  The pain of “walking back” should make fast travel even more rewarding.

Composer Updates

Tyler, our composer, has decided to step down from composing.  We are extremely appreciative of all of his contributions to the project and will miss him dearly.  We believe Tyler is an amazing composer and hope that he will continue to use his skills and abilities.  There was no hard feelings here and if Tyler ever decides to come back to the project, the door is always open.

The news of Tyler leaving did sting for a bit.  We haven’t fully recovered from the bad news, but we believe there is a light and the end of the tunnel.  And no, it is not a train!  We will keep you posted on the composer front.  With that said, we don’t have any new music to share.

Steam Updates

We previously mentioned that we plan to release our game on Steam.  These past couple months we’ve become a Steam Developer.  We have had semi-regular meeting with our advisor to show us the ropes of Steamworks.  We are very grateful for his knowledge and expertise, as it has saved us on a lot of upfront learning!

We currently are learning about test branches, so we can start moving our builds to Steam for our testers.  We’ve also created our application (i.e. game) and have a very rough store page in place.  Hopefully in the next few weeks we can get all of these things figured out and resolved.

We’re currently stuck on getting our game to launch from Steam currently.  It seems like we make some progress on this front, just to get stuck on another issue.  It’s been a lot of wheel spinning, but we believe we are very close.  Luckily, we started this process early, so that this is more of an annoyance, rather than a stressful “all hands on deck”.  Nevertheless, the extra amount of time figuring all of this out has got me (Dan) feeling a bit behind on all of the other tasks that are needed for the demo.

However, after a bit of wheel spinning, we were able to upload our build / game to Steam, which was a big win.  Once we were able to figure this out, we went the extra mile and added an open-source script to make our deployment process streamlined and faster.  We are hoping this script can help automate other people’s process as well!

Other Notable Updates

One other major game mechanic / feature was adding the ability for our Weapon Shop Guy character to roam in the world.  To keep our memory from leaking, any dropped weapons eventually get “cleaned up”, or deleted.  However, this didn’t seem very organic.  Therefore, we thought “what if there was a character that was responsible for ‘cleaning up’ the dropped weapons, by collecting them and taking them to a shop”?  This is where the Weapon Shop Guy character was born.  The only feature we still had to implement was making him appear.

Currently, when a dropped weapon gets queued to be “cleaned up”, it stays in the queue for two minutes.  After two minutes, if the weapon was to be destroyed, we instead move the weapon to the Weapon Shop Guy’s shop, and then spawn the Weapon Shop Guy near our player.  The player can’t barter for any dropped weapons outside the shop, but the Weapon Shop Guy’s ability to expand your inventory is very useful out in the wild.  Seeing the Weapon Shop Guy out in the wild is also a reminder that he is, well, doing his job, collecting lost weapons!

Below is a list of other notable updates:

  • We updated the weather percentages for our different sections for the game
    • Our advisor was mentioning how it was raining a lot.  After looking into the probabilities a bit, we realized that it would indeed go into a rain state more than desired.  We changed these probabilities so that it rains less often, for given areas that aren’t supposed to have that climate.
  • We updated to Game Maker 2024.2
    • In doing so, we realized that pointer_null is treated differently with the json_parse / json_stringify methods, and had to update our code to reflect this.
    • We also realized there was a new function called variable_clone, which we essentially are now wrapping our deep_copy around.
    • This updated reindexed objects to be alphabetically, instead of when they were created.  This messed up our instance order, which caused quite a bit of refactoring.  We decided to add an object called _SuperGlobal, which comes first alphabetically, and is guaranteed to run first.  We can then use this for our other controller objects (such as obj_Global and obj_Camera).
    • Now there is an update for Game Maker Studio 2024.4 😄.
  • We fixed an issue with ai_get_random_spot, which wasn’t taking into account layerDepths properly.  Now our KnightGhost won’t “all of the sudden” stop moving randomly.
    • This was discovered when we were adding functionality for our aforementioned Weapon Shop Guy roam feature.  We fixed two birds with one stone!
  • We refactored the camera load zone system into multiple frames
    • When we were creating the chest minigame, we realized a bug in the order of loading / unloading.  The building controller was getting loaded after our NPC object, and therefore couldn’t compute the “prize” correctly.
    • Therefore, we reordered the zone loading so that the order is preparation, tiles (load and unload), unload old instances, unload old dynamic managers (buildings), load new dynamic managers (buildings), load new instances, clean up / move walls zones.
  • Added cutsceneSprite that we can reference that takes priority over the other sprite actions.  For example, if the engine is having the NPC walking, normally the animation would be walking as well.  However, if cutsceneSprite is set, and the NPC is walking, the cutsceneSprite would take precedence.

Leave a Reply