3D gathering and 2D combat

Exile

Exile switches between timed 3D gathering and 2D combat. Buildings, upgrades, and saved progression link the two phases.

Role
Solo Programmer and Designer
Context
  • Solo Project
  • university project
Period
2023
Status
  • Windows build
  • Android APK
  • source available
  • Unity 2021 LTS
  • C#
  • ScriptableObjects
  • PlayerPrefs
  • Interfaces
Exile 3D daytime resource and village-building phase in a forest settlement
The daytime preparation phase connects resources to later defensive pressure.

Overview

Exile was my first real game project: a solo Unity/C# game released for Windows and Android.

A central GameManager keeps progress across scene changes and saves it with PlayerPrefs.

3D Day / 2D Night Loop

The assignment required a 2.5D project. I asked to combine 3D and 2D because it sounded fun and was unfamiliar territory for me. Connecting two modes through shared progress became the technical learning challenge.

The day became a timed preparation phase. The night uses the saved resources and upgrades in 2D combat.

Exile 2D nighttime combat phase showing the knight fighting an enemy near the settlement
The 2D night phase turns daytime preparation into direct defensive combat.
The end of a daytime gathering run, the transition, and the 2D night that follows it.

Building and Economy

The Mine supplies daily iron for sword and armor upgrades. The Forge, Armory, Hospital and Mine unlock Walls once all four are built. That gives progression a structure while leaving players room to choose their early priorities.

Hospital healing costs gathering and building time, so damage matters beyond lost HP. Shops pause the clock so newcomers can read and decide without menu familiarity becoming the main difficulty. A harder mode could reduce that pause. This is a reflection, not an implemented option.

What I would change

Each completed night adds one enemy without changing the composition. It was a simple solution for my experience at the time. Today I would try different enemy behaviours, positions and groups before relying mainly on quantity.

Saving Progress

The GameManager serialises shared progression to PlayerPrefs. Scene-specific setup rebuilds purchased buildings and the remaining resource population from that saved state.

The save workflow stores player statistics, resources, difficulty, settings, remaining resource counts, and purchased buildings in PlayerPrefs.

Interaction System

The player raycast targets one IInteractable contract, letting the mine, upgrade shops, and day-ending bed provide distinct actions without type-specific branches in the interactor.

Testing

  • Tested the economy and difficulty settings across the day-and-night progression loop.
  • Exercised save/load behaviour across scene changes, resource updates, settings, and reconstructed buildings.
  • Produced an ARM64 IL2CPP Android build alongside Windows, tracing a blocked player build to invalid terrain asset references that Unity was counting as build errors.