Contained here are coding and design projects developing applications and games.
High Score
Skills in Use: XCode, Swift, Metal, GLSL, Blender, FLStudio, GIMPFeature complete IOS game made for my visual studies capstone project. Cumulative time spent on this project is estimated to be around 2 weeks. The full capstone exhibit can be found here:
Highlights
- Game ran continuously (including overnight) on an IPad Pro from 12/11/24 (installation) to 12/19/24 (deinstallation) without performance or memory issues
- 6 textured, game optimized 3D models
- 3 short animations made for main character
- 3 unique shaders (shell texture grass, water flow textures, sprite animation texture) made with GLSL and Metal
- 1 original musical composition made in FL studio
- Autosave system that maintains game state and leaderboard, and allows loading save states
- Basic LOD and looping levels
Video Demo
Music
Music starts when the player taps the screen, and ends before the timer runs out.UI Design case Study
Upcoming IOS Game
Skills in Use: XCode, Swift, Metal, Blender, FLStudio, GIMPFirst demo of game. Title has been tentatively decided, but will be revealed with title screen. The starting menu will use 3d meshes, which have already been completed, and will include characters that walk around the screen. For now, though, I just have interactable cubes. The game's mechanics are based on the flash game "Bad Ice Cream," but new mechanics are planned that will give this game more of an identity. local and online coop will also be included. All assets were created by me, apart from the wooden floor texture, which I acquired from PolyHaven
Game Programming Demos
Skills in Use: C# (Unity), Blender
Game Programming assignments from my fall 2024 semester of college. Assignment demos can be found on my Github
Unity ML-Agents Custom Environment
Skills Used: C# (Unity, ML-Agents), GLSL, Blender, YAML, LaTeX
This was a group final project for Machine Learning. Neha Thumu and I created a Unity Environment for machine agent learning. The environment used a hybrid of Unity and python pytorch (managed using anaconda virtual environments). Unity's machine learning agents library included an API for communicating with a mechine learning agent library in python. Unity Updated the environment, and provided inputs and rewards for the pytorch neural network, which provided actions to influence the agents' next moves. The environment was duplicated to fill each batch of results with episodes as fast as possible, which was necessary to update the neural network. We creating behaviors and rewards for the car, and tuned hyper parameters (via a YAML file), to find behaviors to solve our environment. Lastly, the 3D models and textures used in the environment were created by both of us in blender, and even includes randomized sizes, shapes, and colors for the vehicles in the parking lot, achieved using custom shaders and logic implemented in Unity C#.
"Fault-Line"-Like 3D Game
Skills Used: C# (Unity), GLSL
The idea behind this project was to make a 3D version of the Nitrome Flash game Fault Line
(Currently not possible to play without extensions, as Flash was depreciated, but gameplay can be found online).
This demo is a first person platformer, with a unique mechanic.
Clicking triggers a raycast that places a white sphere on a surface.
Clicking once more creates a red sphere, and the world is "folded" to cause the two spheres to merge into one.
Two parallel planes are found for the two points, and the space between
appears to be gone (render textures and some logic involving a duplicate player make this possible).
The main mechanic is lacking animations, and so perhaps
this project will be revisited sometime to create a full game.
Game Design Final Project
Skills Used: C# (Unity, Airconsole API), UI/UX design, Blender, ShaderGraph (Unity, Blender)
This project is an airconsole game made using unity. The game is capture the flag, but with frogs and rabbits that can be controlled by swiping on the user's phone. This game supports up to 8 players, and will be published on airconsole once it has been improved graphically. I will update this section with some gameplay footage when I start working towards publishing the game
Bike horn
Skills Used: JavaScript (Three.js), HTML, CSS, Blender, ShaderGraph (Blender)
This page was made by the request of my friend Grace. The page uses three.js, and uses raycasts so that the user can interact with the 3D model that I created.
Word Wizard
Skills Used: C# (Unity), Unity, UI/UX design, Blender, Shadergraph (Blender), GIMP
Word wizard is an education ESL game, focused on teaching the player conversational and writing skills
through gamified drills. This game is a project by Lemon Dragon studio, of which I am a co-founder.
I created models for the game (the highlights of which can be found in the blender projects tab),
oversaw most of the UI design, and developed a large amount of software for the game, including the
UI and code for one of the three current minigames. At the moment, Word Wizard is unreleased, and will
be revisited in the future by Myself and other members of Lemon Dragon to finish optimizing the UI and some
of the scenes so that it can be published on Itch.io.
3D model Editor
Skills Used: C++ (OpenGL), GLSL, Blender
This project is an easy-to-use 3D model creator, which allows users to build something using cubes, then decorate it using 3D models, which can have their color, size, and rotation changed. For the full project, including a more detailed readme: https://github.com/Gavin-Sears/popit-decorations/tree/main
Vertex animation shaders and GPU instancing in an unreleased game
Skills Used: C# (Unity, Graphics), Python (Blender), Shadergraph (Unity, Blender), Blender, UI/UX Design
In order to create this demo. I began by baking two animations from blender into textures:
The egg creature running, and the book page turning (which was simply a physics simulation in blender).
From there, I created two special shaders in Unity using URP and Unity shadergraph:
One that animates a mesh using a texture and an extra set of uvs, and another that
allows one to scrub through frames of a vertex animation via scripts. The result is a way of animating
many meshes in a scene, while still allowing the use of GPU instancing to reduce draw calls.
This technique also allows the use of baked physics-based animations in Unity without much difficulty.
Note some features of the game have been removed for this demo.
Particle Effects
Skills Used: C++ (OpenGL), Blender
This project implemented various particle effects. Techniques used include billboards, animating sprite sheets, and reusing particles.
For the full project, including a more detailed readme: https://github.com/Gavin-Sears/popit-decorations/tree/main