Various studies applied to a platformer game in Unity, C#.
This project was done for educational and entertainment purposes.
Also, it could help with assessing the quality of my code during interviews.
I applied my studies of the following resources:
-
Book. Game Programming Patterns - Bob Nystrom
-
Book. LevelUp! - Scott Rogers
I am also a firm believer that almost ANYTHING can be made into gameplay
-
Article. Unity — Project Structure Best Practices! - Samuel Asher Rivello
-
Video. Math for Game Programmers: Building a Better Jump - at 2016 GDC talk, by Kyle Pittman
-
Video. Math for Game Programmers: Juicing Your Cameras With Math - at 2016 GDC talk, by Squirrel Eiserloh
-
Video. How to Make a Good 2D Camera - Game Maker's Toolkit
-
Wwise
-
Video. Wwise Tutorial - Integrating Wwise Into Unity - Crosby Nelson
-
Video. Wwise Tutorial - Posting Events With Custom Scripts In Unity - Crosby Nelson
-
Video. Game Audio with Unity and Wwise Part 2: Let there be Sound! - Michael G Wagner
-
Video. Wwise Tutorial - Playing A Sound In Unity - Crosby Nelson
-
Video. Wwise-101 - Lesson 4 - Applying Distance Attenuation - Audiokinetic
There you can find examples of using the following:
- Throwing seed!
- Decoupling input handling from logic
- State design pattern for the character controller
- Movement
- Idle
- Running
- Jumping
- Falling
- Throwing seed
- Movement
- Good project layout that supports project organization. It also makes sure that nothing unnecessary goes into the build (e.g. dependency on Unity's Editor library)
- Consistent code formatting
- A trick with not instantiating projectiles more than once per avocado controller
- ⬆️ I got formulas of gravity and initial velocity for achieving a jump of specific duration and height
- Movement
- Max movement speed
- Acceleration speed
- Jumping
- Slower horizontal acceleration while mid-air
- Jump cutoff
- Duration til reaching the top point of the jump
- Higher gravity scale while falling
- Camera
- Dead zone
- Non-instant camera following
- Lookahead
- Pixel perfect
- Assists
- Coyote time
- Buffering inputs
- Max falling velocity
- Juice
- Camera Shake on fall. Used SimplexNoise to simulate Perlin noise
- Particles
- While running
- On jump
- On grounded
- SFX using Wwise
- Footsteps
- On jump
- On grounded with different volume
- Throwing
- On seed colliding with terrain
- Enemies