Gecko Devlog No. 1


Welcome to my very first game project, created as part of my Bachelor's thesis. This 2D narrative-driven platformer, developed entirely using Unity, blends gameplay with storytelling, aiming to deliver a heartfelt journey through movement, exploration, and environmental storytelling. All assets used in this game are sourced from Itch.io and used strictly for educational and demonstration purposes.  

In this platformer, players control a nimble protagonist equipped with progressively unlockable abilities that enhance mobility and combat. Your objective is to traverse atmospheric levels, overcome environmental challenges, and uncover pieces of the story from faraway lands.  

1. Core Mechanics:

  • Movement & Platforming: The player can run, jump, wall climb, and wall grab by default, allowing vertical and horizontal exploration of the world.
  • Grappling Hook (Unlocked in Prologue): Used to swing across gaps and reach hard-to-access areas, encouraging creative traversal.
  • Dash (Unlocked in Stage 2): Enables fast 8-directional movement in mid-air or on the ground, useful for avoiding hazards and solving movement puzzles.
  • Ranged Attack (Unlocked in Stage 3): Provides a way to interact with enemies, introducing light combat elements.

2. Game Structure

The game is split into 4 stages:

  • Prologue: A calm introduction to the world and core movement mechanics, including the grappling hook.
  • Stage 1: The player starts encountering platforming challenges as well as the narrative begins to unfold.
  • Stage 2: Enemies appear. Dash ability is unlocked, allowing for more dynamic traversal and tighter level design.
  • Stage 3: The final stage includes a Mini-Boss battle. The ranged attack is unlocked, defeating the boss ends the demo.

3. Game Mechanics

Saving/Loading

The game features Save & Load Function. Most of the times, upon entering a new room, the game will auto-save. To continue or there are bugs that prevent the player from progressing, they can load from the pause menu.

Dialogue Function

Gecko also features a simple Dialogue Function, allowing the player to converse with other NPCs.

Dialogue is triggered through collision zones or scripted events such as Timelines, pausing player movement to advance the narrative. The game uses TextMeshPro so it supports multi-line conversation, character expressions, and pacing control.

To utilize the Dialogue Function. The scene must have a DialogueManager script enabled. The Dialogue Manager script requires the UI (textfield, avatar, name, animations, etc.) to be set up first. After that, simply create a trigger collider with the DialogueTrigger script in it and you can add as many lines as you want.

Inspired by Celeste, the player has no health bar, meaning that upon death they will only have to redo the room.

Mini-Boss Battle

The Mini-Boss comprises of 3 Witches. They share the same health pool and to progress to the next stages, the player must hit them in that stage. The Bosses work as such:

  • When the Cutscene ends, a Health bar can be seen to the right.
  • To win the level simply hit the bosses and deplete their health.
  • To setup the bosses, make sure that they must have a Damagable script with the health parameter set. For the BossBehaviour script to work properly, make sure the Teleport Positions/DetectionZones/HealthThresholds are the same amount as they work closely with each other. 
  • To explain shortly, the BossBehaviour script has a Health Behaviour function that: Upon reaching a designated health. They will teleport to the next specific point (setup using any GameObject) and will change their detection zones as well (setup using any GameObject w/ BoxCollider to trigger + DetectionZone script)
  • For now, the Bosses can only target the Player. To change what the Bosses can target go to Edit > Project Settings > Physics2D > Layer Collision Matrix. From there pay attention to the EnemyHitbox. Alter it so that it can detect your designated layer.

4. Developer’s Note

At first the game was developed solely (in about 4 months or so) for academic and portfolio purposes as a Bachelor’s thesis project. Since I recently graduated, I figured this could be useful for others (mostly because I am quite proud of it/All of the assets are from itch). I apologize in advance as most of the code are self-taught and learned from YouTube, they are incredibly un-optimized and there are some inconsistencies in the codes. You might be asking: if I am aware then why didn't I do anything? To answer the question, since my project has limited time, I work under the oath "If it works then don't fix it". But most of the time there should not be a problem so you, Yes. You, can enjoy this "Pseudo-Game".

This project is heavily inspired by Celeste, particularly its precise movement, storytelling, and its balance between difficulty and flow. I aimed to capture a similar feeling of progression—both in skill and in story—through a stripped-down but focused platformer experience with a little bit of twist.  

I am aware there are a few bugs present but it is out of my ability. If you can help then I would greatly appreciate it. To keep it short here are some bugs I noticed:

  • Dialogue when startup most of the times will duplicate the first line.
  • When the player jumps at the corner of a tile, they will be boosted upwards.
  • Pressing jump at the right time while on the trampoline/jump pad will make the player bounce higher than intended.
  • After the cutscene sometimes the Unity scene will not switch, making the player stuck at the end of the cutscene. To fix it, you have to alt+f4/quit the game and the next time it will work like intended.

Also, I am not familiar with optimizing for Unity. For this project I only utilize Sprite Atlas so the game may work poorly on old machines. Any feedback for it is greatly appreciated as well

If you want specific Documents for any functions detailing how they work (Dialogue, Bosses Mechanics, Camera Manager,  etc. ), feel free to leave a comment and I will do the best of my abilities to combine them in a Detailed Doc/Guide on how the system works.

Source Code & Feedback

As mentioned before, since the game is for demonstration purpose I will leave the full source code of the game on GitHub so maybe others can discover something new for their game also. Since some of the assets requires me to purchase it, I have to remove the assets folder from the project. Apologize for the inconveniences:

https://github.com/TheOandO/Gecko-Demo

Files

Gecko Demo.zip 120 MB
5 days ago

Get Gecko (Prototype)

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.