Thoughts

In this Project we were four programmers and two 2D artists, so I got to focus on what I liked and knew more about. That was code that had to do with the artwork and the background.

This lead to me discussing a lot of what the artists wanted out of the game and helped them implment some of what they thought would work. It also lead to me getting to experiment with concepts that I liked, like some way to light the 2D characters in a cool way, which was very fun.

Since this was our first project in FutureGames, the code is a bit outdated.


Still, I wanted to highlight the idea of what I wanted and also the progress I made since then.
A lot of it is commented in detail, for my own reflection and also for the teachers to see my thought process.

Details

Year of production: 2019 September.

Rules: Combine at least two classic                   arcade games.

Time: Two weeks.

Team size: six.

Contribution

Unity

Tech Art

Gameplay Programming

About

Help the Hammer Hermit climb the harsh mountain with the help of a friend. With the Tetris gods aiding you, create a stairway up. But beware the fiends and obstacles on the way.

But don't forget to gather points for a high score on the way!

Demo of clouds in the level.

 

Cloud Creator

We wanted to have moving elements in the background and one if these is the cloud creator.


It creates clouds in different layers and heights of the background.

HammerHermit_CloudTool.png

UI for the cloud generator.

UI

The clouds needed to be randomly generated, but I also wanted the user to be able to specify the randomness of everything.

I would change some elements now to be more readable since a lot of the naming is confusing.

The depth of the clouds is a multiplier of how fast the clouds move.

Cloud Depth

The depth of the clouds are bound to the movement speed. This is to give a visual representation on how fast they are going to move and also add parallax.

Script

The full detail of the classes and code is shown when pressing the button.

Demo of the background animated objects.

HammerHermit_Butterfly.gif
HammerHermit_Frog.gif
HammerHermit_ButterflyFlower.gif
HammerHermit_PlantSunset01.gif
HammerHermit_PlantSunset02.gif
HammerHermit_PlantMountain.gif
HammerHermit_Plant.gif

The different objects that can spawn.

 

Background Spawner

This script creates random objects on specified positions in the background.

HammerHermit_BGObjects_SpawnerUI.png

UI for the Background Element Spawner Class

UI

Each of the three different background transitions has its own attributes to set. This was the fastest way to make the system at the time.

 

In there you can set which prefabs to use, in the prefab list, and also which positions to use, which is the position list.


Additionally, I put controls for a color multiplier and a sorting order range. This way the system is not automatic, but you still get to control al different elements in an easy way.

Markers

For this, I made simple prefab as marker for the positions and set those manually in the world together with the artists, to determine where they wanted things to spawn.


The red positions are there for the objects that are not randomized and are fixed.

In hindsight, I would make this automatic when adding Items to the list and The script itself keeps track of the positions you need.

HammerHermit_BGObjects_Positions.png

Demo of the spawn point objects. The purple are for randomized objects and the red are for the fixed ones.

Script

The full detail of the classes and code is shown when pressing the button.

When the sunlight starts to be visible, the light on some of the sprites would change accordingly.

Lighting

We wanted to try to add and learn dynamic lighting to our game. This was a fun experiment to do, which in the end added some extra flair to the game.

 

Script

The lighting is controlled by the same background script, to ensure that it transitions at specific points of the background image.

It is bound to the Y position of the background, so when the background scrolls to a certain point, the intensity of the lights will increase.

The background movement itself is bound to how high up the player is in the game.

This script also move the pillars with an offset, just to give a parallax to it.

Click the Background button to see the script in detail.

TileSheet_highlights.png

+

TileSheet.png

=

TileSheet_edited.png
TileSheet_highlights_edited.png

A prototype of the idea. The highlights would go on top of the original sprite.

Final prototype in Unity for highlighting.

Highlighting

The original idea for the lighting was that it would give the sprites highlighting only, so we setup a manual way to do this. Sadly we ran out of time and did not have time to implement this fully.

Masking

To control where the light would go, together with a 2D artist, Oscar, created new sprites with masked parts which we overlay over the sprites. this was done for all animations as well.

Problems

The problem that made us drop this concept was that we needed to make sprites for both walking to the left and to the right sides.

 

For that, we needed to change how the player movement works, which was too much to do on the last day of the project.

What we have right now is that the sprite inverts when turning to the right. That makes the highlighting also change side, which does not look good.