Mobile Game - Unity - 2023 - 2 months

Context
A game I made at the end of my internship at the mobile game studio PinPin Games.
A game I made at the end of my internship at the mobile game studio PinPin Games.
The Pitch
❄️Snow Train Odyssey is a post-apocalyptic survival game where you must defend yourself against hordes of zombies while collecting resources to upgrade your weapons, training and skills. The further you travel, the tougher the challenges become, but the greater the rewards. Can you survive long enough to reach the next civilization?
The Game
• Defend Yourself
• Scary Zombies
• Explore New Worlds
• Unlock Weapons
• Gather Resources
My Role
Resource Gathering System on the Map
I designed and implemented the entire resource gathering system for the game, which included:
• Resource types: trees, scraps, and ores.
• Asset integration: Implemented assets for these resources, handling their graphical and in-game behaviors.
• Asset integration: Implemented assets for these resources, handling their graphical and in-game behaviors.
• Visual feedback and animations:
• Created hit animations for tools interacting with resources.
• Designed animations for the gathering process, including the dynamic appearance of collected resources and their movement toward the player.
• This was achieved using tweens and precisely tuned curves, which I personally developed and refined with input and approval from the game designer and the team.
• Tween animation for trees regrowing after being harvested.
• Tween animation for trees regrowing after being harvested.

Handle harvest of tree with feedback and different grow back (with C# Tweening)

Harvest scraps with custom ressource drop based on the scrap

Different tests on the "+1" display, which required multiple iterations to refine the gamefeel.
Tool Development and Upgrades
I built a feature focused on the tools used for resource gathering:
• Designed tools that allowed players to collect resources effectively.
• Developed an upgrade system for tools, enabling them to harvest higher-level resources as they were improved.
Currency Generators
In alignment with monetization mechanics common in mobile games, I implemented resource generators:
• Designed resource-specific generators (wood, ores, scraps).
• Leveraged Unity’s prefab variants to streamline their management and customization.
• Developed a feature allowing players to earn a significant amount of resources in exchange for watching ads.
Resource Exchange System
I created a feature that allowed players to convert primary resources into processed materials:
• Example: transforming wood into planks.
• Collaborated with the team to iterate extensively on the gamefeel of this system.
• Focused on smooth animations (tweening), delivering a visually appealing and intuitive experience for players.

Resource Exchange System Wood Into Plank

Resource Exchange System Scrap Into Metal Bar
Train Wagons and Their Features
I developed multiple unique wagons, each serving a specific gameplay purpose:
• Healing Wagon: Heals the player with visual effects (VFX) to enhance feedback.
• Upgrade Wagon: Allows players to upgrade their weapons and tools.
• Fighter Wagon: Summons fighters to fight alongside the player.
• Resource Exchange Wagon: Facilitates resource trading between the player and other entities.
The Fighter Wagon: A Major Feature
The Fighter Wagon was a particularly complex system, involving AI behavior and numerous iterations:
• AI Design and Implementation:
• Fighter spawn near the wagon and follow the train if it moves.
• In the event of a zombie attack or a raid on an enemy base, the fighters dynamically switch behavior to assist the player in combat.
• After combat, fighter return to their assigned wagon, maintaining a seamless and natural flow.
• Iterative Development: I worked extensively on the AI's attack and follow mechanics, fine-tuning their behavior to ensure they responded effectively to different scenarios.

The Fighter Wagon attacking a base, destroying building and coming back to their assigned zone
More on IA and Enemies
Enemy Base System
I collaborated on the design and implementation of an enemy base system, which included:
• Enemies to Defeat: Bases were populated with zombies and other enemies that the player had to overcome.
• Destructible Buildings: I worked alongside a colleague to create destructible structures within the bases.
• Warning System: Developed a warning feature using Cinemachine, which triggers a camera traveling sequence to reveal the base when the player approaches, enhancing tension and immersion with UI Warning done by the UI Programmer.
Zombie AI Management
I handled the behavior and AI for zombies, with a focus on:
• Archer Zombies: Designed and implemented their attack and tracking mechanics.
• Watchtower Zombies: Managed AI specific to watchtowers present in enemy bases, ensuring challenging and dynamic gameplay, with good visual effect on the arrow shooted from the archer.
Zombie Spawner and Customization
• For a bonus area I created a zombie spawner system with a lot of parametrable settings for game designer like : Delay spawn Range, Xp gain, Spawn Radius, Spawn Rate, etc...
• Randomized Semi-Procedural Clothing: Implemented a system to generate zombies with diverse clothing, adding visual variety to the game.
Leveling System Based on Curves
I created a dynamic leveling system designed for flexibility and ease of use:
• Curve-Based Leveling: The system calculates the required experience for each level using customizable curves, allowing for smooth progression scaling, and can be adjusted manually.
• Scriptable Object Integration: I implemented the system using Scriptable Objects, enabling the game designer to:
• Easily adjust values for experience requirements.
• Run simulations to test and balance the progression system without additional coding.

Enemy Base System