A lightweight but robust framework for Android Studio that replicates the functionality of the Unity Game Engine, from the component-based system, to the physics, to even the GUI.
The following framework was implemented into an empty Android Studio project within the span of 2.5 weeks using Java, where its functionality was then put to the test by having another experienced programmer develop a game using the framework as a baseline.
Created Application entrypoint and Application lifecycle, along with providing an abstracted framework to reduce boilerplate code definitions.
Created a Component system for dynamically adding on and removing various developer-defined behaviours.
Built a rendering system on top of the existing Android Studio rendering pipeline, allowing for sprite rendering, applying transformations to sprites and spritesheet support.
Implemented a Custom Physics engine along with various optimisations, such as Quadtree collision detection and broad phase collisions, along with various collision shapes (Circle, Box, Convex Polygon)
Created a Scriptable-Object-like system with static serialization and deserialization of data into the device's internal files, allowing for easy persistent data.
Created a custom GUI system that interfaces directly with the backend scripts, such as being able to edit values in real time, collision layers and a log console.