Heronin

Trailer coming soon

Heronin

by

Loose Nails logo here



Summary

Role: Graphics, physics, editor, visual scripting, gameplay

Reference game: Samurai Gunn II

Game Engine: Aurora

Level Editor: Borealis


My contributions

During this project I once again returned to gameplay. We had more hazards planned, but they were cut, however the spikes and projectile traps I added. All "hazards" can be connected with a button, which players can attack to press. Different traps can then be coded to use different behaviors. For the projectile traps it was firing, spike didn't have anything, but we discussed having the spikes "deploy" from walls

A graphical artist asked me if it was possible to have objects in the background that didn't receive shadows. After some consideration, I eventually decided to try to implement it. It turned out to be easier than expected, I only had to send another variable in the material to the GPU and use it whenever lighting calculations were done. Moreover, together with Isak we added multiple materials to one mesh, which allowed a lot of nifty effects without having to add separate game objects with other materials.

I saw a great need to have gravity for particles, and added it, mostly for some lava particles. Moreover, on the request by our technical artists, I added emission for particles and extra controls to the editor for it. I added emission over lifetime controls and also emission intensity over life. As well as saving these settings to the particles emitter preset files.

I revamped the audio component to allow it to play multiple different sounds simultaneously without interrupting the other sounds.

During this project, we struggled with making the projectile feel right. Eventually I found the time to rework the behavior and I was very pleased with the result! It especially affected when players fired projectiles straight up into the air.

Initially, we were discussing using physics for various objects, I immediately went to work expanding the possibilities with our in-game colliders to include physics materials, locking velocity and angular speeds on various axes. Since the projectiles eventually ended up not using physics and we didn't implement the bouncy projectile upgrade, I didn't continue working on this past that. I also added options to update the position of triggers as they were only static before.

I added a few visual script nodes as requested by our level designers, and worked together with them to help them create some scripts that allowed them to make a falling block hazard entirely in visual scripting. I also added nodes to add various components to make some special effects.

During this project the need to reload assets without exiting the editor became necessary to speed-up the work of the team. A simple right click on an asset and hitting reload did the trick.

Follow bone to facilitate "bone parenting" was added to this project, though I mostly made it for Sprite: The Summoning and Atlantean Ascent, but this project got the update as well. Basically it made an object able to follow a bone as if it was a child, without actually being a child.

I fixed lots of small bugs, related to score, players dying from spikes and editor bugs. The most infamous one I solved was a bug where drag and drop in the editor caused a crash if a folder was hovered in the content browser.

The game

Heronin is the eight project and by far our most well-planned project with a few cut features, but overall planned very well.

Seeing as at the start of this project, the two previous projects still weren't quite done, we were determined to plan this project extremely well. Moreover, our level designers and graphical artists said they were ready to stop using Unreal Engine as an editor, and so we did. In this project, all we used was our own engine and editor! Since the earlier projects were not finished yet, I also worked on them, mainly Spite: The Summoning.


Story and setting

Since this was to be a fighting game, we didn't really have much of a story. The setting is sort of east asian inspired, with the player characters being heron-styled samurai-esque warriors.

Early work-in-progress of the projectile dispensers.

My role and contributions

During this project I decided to work a bit more on gameplay, as I had gotten to try it a bit more in Spite: The Summoning, which still required more work. However, I also worked a lot with Spite: The Summoning but many of the features added there, were also ported to this version of the engine.

 

The last project still used Unreal to set up the initial levels, and then eventually broke away once the general layout was done in Unreal. However, in this project we finally ditched Unreal fully. So no more pain from having to deal with Unreal or the Unreal exporter script. This turned out quite well, even though our editor certainly didn't have all the features that Unreal has, but it seemed from our level designers and graphical artists that they were very pleased with being able to only use our editor to make the entire game and skipping the hassle with Unreal.

 

Part of my work included working on some editor features for some of the things I was responsible for.


First off in the project, I started working on the level hazards, spikes and projectile hazards, so that they were at a state where they could be added to levels and tested, even though they might still need some work. You'll see some more work-in-progress below relating to the projectile hazards and the button to activate them.


Early on, we discussed the levels spawning in some random upgrades. One of these were bouncy bullets, because it seemed like a fun, chaotic weapon to add to the players arsenal. I started testing out bouncy physics materials and continuous collision detection. You'll see a very early work in progress gif below. Eventually I added a bunch of extra settings to rigidbody and collider components to freeze rotations and positions. 


Moreover, I needed to revamp the audio component, because it was currently not designed in a way which permitted multiple sounds per audio component. The workaround was apparently adding another game object and adding another audio component to it. This would cause unnecessary performance issues and was unacceptable to me. I redesigned the component and how audio was handled in both the Spite: The Summoning engine as well as this one. The differences were minimal so it wasn't a lot more work, it was also implemented in Atlantean Ascent.


It didn't take long for our artist to wish for multiple material slots and we decided it was a priority. Isak and I worked together on the slots, pair-programming most of it and got it working quite quickly, with some bugs left to iron out, which were noticed later when the slots started being used.


Here is the first work-in-progress picture showcasing multiple materials on one model, using a basic test chest.


When I saw some artists working on particle effects I figured now would be a great time to work on adding emission to particle systems. It didn't take very long to get something to show, adding the controls to the inspector took a little longer but allowed artists to do  so much more. Below is another gif that showcases the emissive particles. At the same time as this, I added gravity to particles as well.



While working on Spite: The Summoning and Atlantean Ascent I made "bone parenting" work. I implemented it in this project as well, and here is the work in progress gif for it. It was relatively simple, basically a component I made grabs a bone from the current skeleton by a specific name, then takes that transform and performs all the math to have the object follow that bone.



As the end of the project was approaching, we were very happy with how it turned out. Below is a gallery of pictures and videos from the game.









The two last ones with sound to showcase the whole game.