Thank you @kaanalpar and GameDev staff for putting together a solid introductory course! I knew absolutely nothing about the engine beforehand (I even thought it was pronounced “Goe-Dott”), yet upon completing the course, I was more than inspired to clean up and extend the project, which required a fair bit of research. Here’s the result!
Below I have highlighted the bigger stuff I did, mostly to practice making a changelog (since it’s easy to miss things when making one). Basically, it’s there if anyone wants to read it.
Meta
- Combined all 3 games from the course into a single project.
- Implemented global scene manager to safely handle scene transitions in any direction. This was required because returning to an already-opened scene during runtime caused errors.
- Added pregame instruction scenes to all 3 games, plus a main menu and a credits scene.
- Replaced player characters with BallChicken assets.
- Successfully exported both a Windows build (with an actually working custom icon, yay!) and a WebGL build, and hosted on Itch.
Speedy Chicken (Speedy Saucer)
- Added distinct progression steps
- Created two types of 2-way wormholes: intra-scene, and inter-scene
- Added simple system for displaying player remarks
- Collision with wall correctly respawns the player according to progression step instead of reloading the entire scene.
Ship Blip (Alien Attack)
- Replaced enemy spawn marker system with random y-position spawning.
- Randomized speed and scale of enemies.
- Replaced path enemy drawn path with randomized angle / component vector approach. Also modified angle-choosing conditions so the ship stays within a reachable y-range.
- Score for defeating an enemy depends on type, speed, size (smaller is worth more), and how far forward the player is as a percentage of player range. Score lost for missing one is 2x this value.
- On every spawn timeout, wait_time is randomized within a range. For every 500 points of total score, this range decreases (faster spawns). No path enemies at <500 points.
- A surprise at 2000 points.
Gallean Gauntlet (Martian Mike)
- Replaced asset scaling with a player child camera, just as was done in Speedy Saucer. This ensures all games have the same viewport resolution and avoids this problem: Can we have the viewport size unique per scene? - #3 by Mildwin
- Added double-jump power – kept on death, but reset on timeover.
- Added coyote timer of 0.2 seconds to ensure BallChicken’s round CollisionShape wouldn’t make precise jumps unfairly difficult.
- Replaced spikeball animation with a tween cycle and added a Marker to the scene. Marker can be moved anywhere in the editor, and spikeball will travel between its starting point and the Marker. Cycle time is defined by an export variable, so that can be changed as well.
- Added approach zone and simple… “pie-erworks” to the finish trophy.
- Added interior backgrounds and hidden passage tile to level 4.
Known Issues
- In the WebGL build, Gallean Gauntlet exhibits scaling artifacts at certain positions. Not sure how to fix that, but it probably has something to do with having the project’s window scaling set to canvas_layers, or that the project is using the Forward+ renderer instead of Mobile.
- Difficulty may or may not need tweaking; however, everything can be completed. Also, every Gallean Gauntlet level can be finished in less than half its allotted time.
Constructive feedback is more than appreciated! =)