This is a collection of my work from game design coursework — including 11 prototype games, programming exam projects across two semesters, three animation exercises, and a 2D animation exam.
The prototypes were built during class to learn Unity fundamentals, and I expanded on them with extra features afterward. Challenge projects, on the other hand, were focused on debugging and applying what I learned in class.
Cover images are sourced from Pinterest and used purely for visual presentation.
Solar System
Attempt of simple Solar System recreation inside Unity3D simulation. Demonstrates very basic Unity knowledge.
Prototype 1 (Racing) + Bonus Features
Knowledge, acquired in this course:
- Move comfortably in 3D space and in the Unity Editor;
- Add and manipulate objects in the scene to place them in desired positions, including the camera;
- Customize the Unity Editor layout according to your needs;
- Create C# scripts and apply them to objects;
- Use JetBrains Rider and some of its core features;
- Add Rigidbody and Collider components for realistic collisions;
- Properly declare variables and initialize/assign them with appropriate access modifiers.
Bonus Features added:
- Easy: Obstacle pyramids;
- Medium: Oncoming vehicles;
- Hard: Camera switcher;
- Expert: Local multiplayer mode.
Challenge 1 (Airplane)
Strengthened Skills & Concepts:
- Using the
Vector3
class to move and rotate objects along/around an axis;
- Using
Time.deltaTime
inside the Update()
method for smooth, frame-rate-independent movement;
- Moving and rotating objects in the scene view to position them as desired;
- Assigning variables in the Inspector and initializing them in code;
- Implementing input variables to control object movement/rotation based on user input.
Prototype 2 (Feed The Animals) + Bonus Features
Knowledge, acquired in this course:
- Create an if-then statement to implement basic logic, including greater than (>) and less than (<) operators;
- Transform a GameObject into a prefab that can be instantiated in the scene;
- Work with prefabs to improve workflow efficiency;
- Get user input with GetKey and KeyCode to detect specific keyboard presses;
- Use arrays to create accessible lists of objects or values and randomly select from them;
- Randomly generate values to randomize spawn positions;
- Change the camera’s perspective to better suit your game;
- Repeat functions on a timer with InvokeRepeating;
- Write custom methods to make your code more readable;
- Detect collisions and destroy objects that collide;
- Display messages in the console with Debug.Log.
Bonus Features added:
- Easy: Vertical player movement
- Medium: Aggressive animals
- Hard: Game user interface
- Expert: Animal hunger bar
Challenge 2 (Play Fetch)
Strengthened Skills & Concepts:
- Assigning variables and arrays in the inspector;
- Editing colliders to the appropriate size;
- Testing xyz positions with greater/less than operators in if-else statements;
- Randomly generating values and selecting objects from arrays;
Prototype 3 (Run and Jump) + Bonus Features
Knowledge, acquired in this course:
- Use
GetComponent
to manipulate the components of GameObjects;
- Influence physics of game objects with
ForceMode.Impulse
;
- Tweak the gravity of your project with
Physics.gravity
;
- Utilize new operators and variables like
&&
;
- Use Bool variables to control the number of times something can be done;
- Freeze or constrain the Rigidbody component to halt movement on certain axes.
Bonus Features added:
- Easy: Randomize obstacles;
- Medium: Double jump;
- Hard: Dash ability and score;
- Expert: Game start animation.
Challenge 3 (Balloons, Bombs & Booleans)
Strengthened Skills & Concepts:
- Declaring and initializing variables with the
GetComponent
method;
- Using booleans to trigger game states;
- Displaying particle effects at a particular location relative to a GameObject;
- Seamlessly scrolling a repeating background.
Prototype 4 (Sumo Battle) + Bonus Features
Knowledge, acquired in this course:
- Write code that utilizes various Unity APIs;
- Apply texture wraps to objects;
- Attach a camera to its focal point using parent-child relationships;
- Transform objects based on local XYZ values.
Bonus Features added:
- Easy: Harder enemy;
- Medium: Homing rockets;
- Hard: Smash attack;
- Expert: Boss battle.
Challenge 4 (Sumo Battle "Play Fetch")
Strengthened Skills & Concepts:
- Defining vectors by subtracting one location in 3D space from another;
- Tracking the number of objects of a certain type in a scene to trigger events;
- Using Coroutines to perform actions based on a timed interval;
- Using for-loops and dynamic variables to run code a specific number of times;
- Resolving errors related to null references of unassigned variables.
Prototype 5 (Fruit Ninja) + Bonus Features
Knowledge, acquired in this course:
- Create a Game Manager object that controls game states;
- Detect where the user has clicked their mouse to implement click-based interaction;
- Use the Canvas to create UI elements like Title, Buttons, or Score display;
- Lock UI elements in place with Anchors;
- Use variables and script communication to update UI elements;
- Make UI elements appear and disappear with
.SetActive
;
- Implement a working “Game Over” screen via script communication and game states;
- Restart the game using a UI button and the SceneManagement class;
- Add listeners to detect UI Button clicks and trigger functionality;
- Set gameplay difficulty from the title screen by passing parameters between scripts.
Bonus Features added:
- Easy: Lives UI;
- Medium: Music volume;
- Hard: Pause menu;
- Expert: Click-and-swipe.
Challenge 5 (Whack-a-Food)
Strengthened Skills & Concepts:
- Working with text and button objects to get them looking the way you want;
- Using Unity’s various mouse-related methods appropriately;
- Displaying variables on text objects properly using concatenation;
- Activating and deactivating objects based on game states;
- Passing information between scripts using custom methods and parameters.
🧠 Programming Exam Projects
Labyrinth Of Nightmares
End of the 1st semester work, showcasing basic Unity skills in a videogame of choice. I decided to go with Horror genre. Labyrinth Of Nightmares was made using Unity asset store free assets. Full asset list is provided on the game page.
Grumpy Warrior
This project is a combination of Programming exam task and Animation homework.
Goals achieved:
- Player Controller Functional:
- Character moves using
CharacterController2D.cs
.
- Player Character Replaced:
- Default character swapped for custom sprite that you can find later on this page.
- Pixel Art Setup Correct:
- All sprites use the same "Pixels per Unit";
- Pixel Perfect Camera used for pixel art-style visuals;
- Crop Frame enabled to add black bars (letterboxing).
- Cinemachine Camera System Implemented:
- Cinemachine Brain used for dynamic camera control;
- Camera follows player smoothly;
- Confiner 2D used to limit camera movement within level area;
- Cinemachine and Pixel Perfect camera share the same orthographic size.
- Level Meets Size Requirement:
- Level is at least 2 screens wide and 2 screens tall.
- Collectible System with Inheritance:
- Abstract base class
Collectible.cs;
- Gem: adds +50 score;
- Cherry: changes player color, gives Jump Boost for 5 seconds and adds +5 score.
- Trigger-Based Collection:
- Player detects and interacts with collectibles via
OnTriggerEnter2D
.
- Score Tracking:
AddScore(int)
tracks and logs score on pickup.
- Encapsulation Used Effectively:
- Private fields with public getters;
- Public methods manage internal data safely;
- Polymorphic design via abstract base class.
All assets except player sprites were taken from Sunny Land asset pack.
Sunny Land Pixel Game Art by Ansimuz