GitHub repository of the project: https://github.com/soueuroya/CrocGame
Croc Game Roadmap
1st Day
Project Creation.
Project Settings.
Mobile Settings – ARMV7 / ARM64.
Assets Importation.
Main Menu Implementation.
Game Menu Implementation.
Options Menu Implementation.
Music and Audio Implementation. GitHub Repo.
2nd Day
Gameplay Init.
Menu Animations.
Character Movement.
Background and Foreground Movement. Save Manager
Volume and Data options.
3rd Day
Objects Spawning and Pooling.
Collision Detection.
Score, Time and other data Screen and menu. FPS limiter
Player Prefs and Save Manager.
4th Day
Level End finish. Saving Game Statistics.
Game loop and results screen.
Addressables. AWS.
5th Day
Unity Analytics.
Unity Ads. Builds and Itch.IO page.
Code Design and Structure:
- 1-Event system based. No system is dependent on another.
- 2-Single scene with game objects handling to improve performance. Allows seamless transitions.
- 3-Infinite single object background looping shader. Great for performance.
- 4-Object pooling for infinite runner scenario saving performance and preventing lag.
- 5-Fake movement allows better performance and longer battery life.
- 6-Dynamic popup confirmation.
- 7-No unnecessary public variables or methods. No singletons.
Highlighted Scripts:
- 1-EventManager: Script allows the communication between scripts wit
- hout the need of Singletons or direct references. This keeps every system isolated from each other, allowing easy code changes and expansions.
- 2-ParallaxScroll: Script handles the illusion of movement for the background and foreground. By changing the Offset X position in the material, it creates the illusion of an infinite background without the use of multiple objects or movement of the background.
- 3-ObjectSpawner: Script handles the spawning of random obstacles for the player to avoid. It includes the condition of possible places to spawn and “combos” such as placing a high wall (stack of 2 boxes) right after a trampoline (mushroom)
- 4-VolumeSlider: Script handles the loading and saving of different channels in the master mixer, allowing easy read and write for the master, music and sound effects volumes.
- 5-CharacterScript: Script handles the movement of the character and collisions with obstacles.
- 6-GameManager: Script handles the scores and state of the game.
Challenges:
- 1-Short Time to implement all basic functionalities of a short game and making sure it works on most devices as possible.
- 2-Limiting myself to only use provided assets and native assets present in specified Unity version.
- 3-Problems with SDK and Gradle when building for Android. Many different steps were applied to fix the problem.
Enjoyable Moments:
- 1-Menu animations and seamless transitions between menus and gameplay.
- 2-Ads and extra runs rewards.
- 3-Unity Analytics for an older version of Unity