This repository is the source code of a proof of concept of a Unity game.
ProjectUndefined is a prototype of a top down 3D shooter. The Player can stop time whenever he wants and cast skill to progress trough levels.
This project was made to challenge my knowledge acquired with the unity engine. This project emphasis my will of building custom solutions for features that I found too limiting in the engine : animation system, surface shader, prefabs. I am satisfied with the solutions that I brought, but the code is not very comprehensive.
This repository contains source code only, there is no asset files. I decided to strip assets from git history as they were taking space for nothing. The whole unity project with assets is available here.
Some features are more detailed here, these are some that I could reuse in future projects.
A playable demo is here.
Controls are always displayed in-game and are dynamic depending of the current state.
The application features (links redirect to source code implementation) :
- Custom Player controller
- Skill management for Player and AI.
- AI Behavior driven by fsm.
- Interactive objects entirely defined via scriptable object that interact with the environment.
- Health globe interactive objects that give health on trigger.
- Player and AI are also InteractiveObjects.
- 3D Physics shape that takes into account obstacle occlusion to trigger game logic like AI line of sight for example.
- Start/Stop time.
- Custom Animation system based on the Playable API.
- Custom toon shader integrated with the URP