Development

Oil Defenders

Oil Defenders was my first group project, I was the sole programmer and it was developed in 10 weeks by a team of four. It’s a 3D tower defense game where the player must defend their oil rigs against waves of tanks and planes.

The goal of the game is to manage resources and strategically place turrets to stop incoming enemies. Resources are gained by destroying enemies and harvesting oil, but oil rigs themselves can also be destroyed if enemies get through.

There were 4 different buildings and 4 different enemy ‘s

Buildings:
Oil Rig
– Generates cash over time, but can be destroyed by enemies
Laser Turret – Attacks both ground and air units with lasers
Arc Turret – Shoots arcs that pierce through ground units
Tesla Turret – Chains electricity through multiple enemies

Enemies:
Tank
– Ground unit that attacks oil rigs
Reinforced Tank – A tougher version with more HP
Plane – Fast, flying unit that directly targets the base
Reinforced Plane – A stronger flying unit with more HP

As this was my first group project, it was a big learning experience in team collaboration and project planning. |At the start, communication and scope planning were rough since none of us had worked in a structured team before, but we managed to pull through by learning quickly and adapting.

My main role was programmer, where I worked on:

  • Implementing turret functionality (targeting, firing, chaining effects)

  • Setting up enemy pathing and behaviors for ground and air units

  • Integrating resource generation through oil rigs

  • Debugging and optimizing gameplay loops

This project taught me fundamental skills in Unity development as well as the importance of team communication, task division, and time management. It was a foundational experience that helped me approach later projects with more confidence and structure.

Project Info
Role: Sole programmer
Team: Joris, Floris, Silver & Can
Time: 10 Weeks
Engine: Unity
Github

Game Trailer

Explanation

This script manages the enemy wave system in Oil Defenders. It controls when and where enemies spawn, handling both ground and air units across two different lanes.

Key responsibilities of the script:

  • Tracks whether the game is started or paused, controlling when waves advance

  • Manages wave progression, with timers between waves and a per-enemy spawn delay

  • Spawns enemies in the correct lane and type (ground vs. air, left vs. right)

  • Keeps track of the current wave index to ensure progression through all waves

This script was the backbone of the game’s challenge curve. It taught me how to structure enemy spawns using coroutines, manage timing in gameplay loops, and design systems that are flexible (different enemy compositions per wave) while still easy for designers to expand.

Code Snippet

Everything I learned

Write functional code

I had learned to write basic functional code to be able to make a stable gameplay loop

Interaction

This was my first time working with player interactive UI and I was able to see why it was so important to have good UX in the game.

Communication

We learned how to properly communicate in a small group to set proper goals and deadlines to finish the project.