Skip to content

HJeandedieu/lantern_keeper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

The Last Lantern Keeper

A Light in the Dark

A 2D story-driven adventure platformer about being the last source of light in a world consumed by darkness.

Unity C# License: MIT Status


Table of Contents


Overview

The Last Lantern Keeper is a 2D story-driven adventure platformer built in Unity 6. A mysterious darkness has extinguished the ancient lighthouses that once protected the kingdom, allowing shadow creatures to spread across the land.

You play as a young adventurer whose name is chosen by the player, the last surviving Lantern Keeper. Armed with a magical lantern—your only tool, your only weapon, and your only true protection—you must journey across the kingdom, relight the ancient lighthouses, and restore light to a world that has long been consumed by darkness.

The game combines exploration, environmental puzzle-solving, platforming, and a signature light-vs-shadow survival mechanic into a single, cohesive experience built around one idea: light is life.


Features

  • Story-driven adventure across a slowly-restoring kingdom
  • Light-based puzzle solving using the lantern's evolving abilities
  • Living Shadow enemy mechanic tied to lantern energy
  • Precision 2D platforming
  • Progressive lantern abilities (Light Orbs, Plant Platforms, Reflection, and more)
  • Ancient lighthouse restoration and world-state progression
  • Stylized 2D environments with a signature light/dark color palette
  • Persistent save system
  • Atmospheric, state-reactive soundtrack

Checklist reflects current implementation status and will be updated as development progresses.


Gameplay

Each region of the game follows the same core loop: explore → solve → survive → restore.

The player enters a new region, platforms and explores its environment, solves environmental puzzles using the lantern, and either fights or evades shadow creatures along the way. Reaching the region's ancient lighthouse and overcoming its final challenge relights it — restoring light to that part of the world and unlocking a brand-new lantern ability that carries forward into every region after it.

Signature Mechanic — The Living Shadow

The lantern has limited energy that depletes over time and with use. As it weakens, the world grows darker, the music grows tense, and shadow creatures grow bolder. If the lantern's energy hits zero, it extinguishes — and the player's own shadow separates from the ground and comes alive, hunting them until the lantern is reignited or another light source is found.

This turns lantern management into the game's core tension: light is never just visibility — it's survival.


Screenshots

Coming Soon Gameplay screenshots and trailers will be added during development.


Technology Stack

Technology Purpose
Unity 6 Core game engine
C# Gameplay programming and systems
Git Version control
GitHub Repository hosting and collaboration
Unity URP (2D) Rendering pipeline and dynamic 2D lighting
Unity Tilemaps Level construction and collision layout
JSON Save System Player progress and settings persistence

Project Structure

Assets/
│
├── Animations/
├── Art/
├── Audio/
│   ├── Music/
│   └── SFX/
├── Data/                  # ScriptableObjects (lantern tuning, ability configs, enemy stats)
├── Materials/
├── Prefabs/
│   ├── Player/
│   ├── Enemies/
│   ├── Environment/
│   └── UI/
├── Resources/              # Runtime-loaded assets only — not a general dumping ground
├── Scenes/
├── Scripts/
│   ├── Core/               # Core.asmdef — engine-agnostic systems, shared utilities
│   ├── Gameplay/           # Gameplay.asmdef
│   │   ├── Player/
│   │   ├── Enemies/
│   │   ├── Lantern/
│   │   └── Managers/
│   ├── UI/                 # UI.asmdef
│   └── Utilities/
├── Shaders/
├── Sprites/
│   ├── Player/
│   ├── Enemies/
│   ├── Environment/
│   └── UI/
└── UI/

Notes:

  • Data/ holds ScriptableObject assets (e.g. lantern energy/drain values, per-ability configs) so gameplay tuning never requires a code change.
  • Resources/ is reserved strictly for assets loaded at runtime via Resources.Load — everything else lives in its normal folder to avoid bloating build size.
  • Scripts/ is split into three assembly definitions (Core, Gameplay, UI) to keep compile times fast as the codebase grows and to enforce clean dependency boundaries between systems.
  • Binary assets (Art/, Sprites/, Audio/) are tracked with Git LFS to keep repository history lean.

Getting Started

Prerequisites

  • Unity Hub with Unity 6 (2D URP) installed
  • Git installed locally
  • A code editor with C# support (Visual Studio, VS Code, or Rider recommended)

Clone the Repository

git clone https://github.com/Hjeandedieu/the-last-lantern-keeper.git
cd the-last-lantern-keeper

Open with Unity 6

  1. Open Unity Hub
  2. Click Add → select the cloned project folder
  3. Ensure the project is opened with Unity 6
  4. Let Unity import all assets and packages

Run the Project

  1. In the Unity Editor, open Assets/Scenes/ and load the main scene
  2. Press Play to run the game in the Editor

Development Roadmap

Progress against the project's 8-week implementation plan:

  • Project Planning & Documentation
  • Environment Setup, Git Workflow & Learning Phase
  • Player Controller & Core Movement
  • Lantern System (Energy, UI, Lighting)
  • Living Shadow Mechanic
  • Enemy AI
  • Chapter 1 — The Fading Village
  • Chapter 2 — Whispering Woods
  • Audio & Visual Polish Pass
  • Menus, Save System & Game State Flow
  • Bug Fixing & Optimization
  • Final Build & Presentation

Team

Name Role
Developer 1 Gameplay & Systems Programming
Developer 2 Level Design & Player Experience

Contributing

This is currently a closed student/capstone project, but the workflow below is used for all internal collaboration and will apply to any future external contributions:

  1. Fork the repository
  2. Create a branch for your feature or fix:
    git checkout -b feature/your-feature-name
  3. Commit your changes with clear, descriptive messages:
    git commit -m "Add: brief description of the change"
  4. Push your branch and submit a Pull Request against dev, describing what changed and why

Please keep pull requests focused and scoped to a single feature or fix where possible.


License

This project is licensed under the MIT License — see the LICENSE file for details.


Acknowledgements

  • Unity Technologies — for the engine and tools powering this project
  • Open-source asset creators — whose work supports rapid prototyping and learning
  • Contributors — everyone who helps improve this project
  • The game development community — for the tutorials, forums, and shared knowledge that made this project possible

"Light is life."

About

The Last Lantern Keeper is a 2D story-driven adventure platformer built with Unity. Explore a world consumed by darkness, solve light-based puzzles, battle shadow creatures, and restore ancient lighthouses using a magical lantern. Features a unique Shadow mechanic where your own shadow becomes your greatest enemy.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors