← Back to the portfolio

UNITY · C# · TEACHING & MENTORING

Build the game.
Understand the code.

Short explanations. Hands-on projects. Debugging together.

Between 2022 and 2024, I taught Unity and programming in person, helping students turn new concepts into playable games — and understand the decisions behind them.

100+students taught & mentored
5 projectssupported through development
In personfrom beginner to Master level
And plenty of
“aha!” moments. ↙

01 / INSIDE THE CLASSROOM

A little theory.
A lot of doing.

Not just a sequence of instructions.
A way to reason through a problem.

01

Explain.

Start with one clear idea.

A short explanation, a concrete example and just enough theory to get started. I adapted the pace to the group’s level.

What should happen when the player jumps?
02

Build.

Put it into practice.

Students applied the concept in an exercise or mini-game. Scenes, scripts and game mechanics grew into a working project.

Make it move. Then make it feel right.
03

Debug.

Work through it together.

I moved between students, read logs with them and helped trace problems back to their cause, in the editor and in the code.

What did we expect? What actually happened?
04

Understand.

Know why it works.

We discussed the choices behind a solution, clearer alternatives and how to structure the code for the next feature.

Can you explain the choices you made?

↻ Then we tried again — with a clearer idea of what to change, and why.

02 / LEARNING THROUGH PROJECTS

Concepts become playable.

Examples of the projects I taught.
Each one made the next concept tangible.

FROM AN IDEA TO SOMETHING PLAYABLESCENES · SCRIPTS · GAME FLOW

01 / 21h · Beginner

From a blank scene to a game.

The first playable mini-game

Students built a small game from scratch, learning how scenes, scripts and game states fit together.

Unity foundationsC#Game flow
What we worked on +
  • Covered scenes, hierarchy, and clean project organisation to avoid 'spaghetti projects'.
  • Insisted on clear naming and single-responsibility scripts to build good habits early.
  • Introduced coroutines, GameManager patterns, and basic game state handling.
  • Showed how to debug common issues directly in the Unity Editor and through logs.
A JUMP BECOMES A SYSTEMMOVEMENT · COLLISIONS · LEVEL DESIGN

02 / 21h · Beginner

More than making a character jump.

2D platformer

A complete platformer brought together movement, collisions, enemy behaviour and readable level design.

TilemapsPhysicsLevel design
What we worked on +
  • Used Tilemaps for environment building, collisions, and readable level layouts.
  • Worked on jump feel and movement physics to make controls responsive and consistent.
  • Implemented simple enemy behaviours (patrol, chase) and player/enemy interactions.
  • Discussed basic level design principles: pacing, checkpoints, difficulty curve, and feedback.
SMALL SYSTEMS. ONE GAME LOOP.WAVES · GAME STATES · GAME FEEL

03 / 21h · Beginner

Many moving parts. One game loop.

Shoot’em up

Enemy waves, boss patterns and game states gave students a practical way to organise more complex gameplay.

Enemy systemsGame feelObject pooling
What we worked on +
  • Designed enemy waves, patterns, and boss behaviour using script-driven logic.
  • Introduced basic game state management (menus, pause, game over, victory).
  • Worked on game feel: feedback, VFX/SFX triggers, and readable telegraphs for enemy attacks.
  • Showed how to use simple object pooling to optimise bullets and enemies.

Original illustrations of the teaching themes. Student work remains their own.

5team projects

3–6 students per team
3rd-year & Master projects

03 / ALONGSIDE THE TEAM

Guidance through
the messy middle.

When a project got bigger, my role was to help students find their next step.

01

Make the structure clearer. Review gameplay loops, organise scripts and discuss architectural choices.

02

Get unstuck together. Work through bugs and provide individual support during and outside class.

03

Bring the pieces together. Support project milestones, stable builds and clearer presentations for the final jury.

04 / THE TEACHING TOOLKIT

Solid foundations. Room to grow.

The course content behind the projects.
Open a module for the details.

01Introduction to Programming (C#)Foundational C# course30h · Beginner+

Foundational C# course to prepare students for Unity. Covered variables, control flow, functions, data structures, basic OOP, and good coding habits.

  • Focused on understanding how programs run and how to structure clean code.
  • Introduced functions, lists, and basic object-oriented programming.
  • Gave students the foundation needed to transition into Unity development.
Program structureVariables & typesConditions & loopsFunctionsArrays & listsClasses & objectsInheritance basics
02Version Control for Unity Projects (Git)Unity projects · Git workflows3h · Beginner+

Workshop on using Git safely with Unity projects, focusing on collaboration and avoiding project corruption.

  • Helped students avoid common pitfalls when working in teams.
  • Explained how to structure Unity projects for source control.
Git + Unity setupBranches & basic workflowCollaboration in small teamsAvoiding broken project states
03Gameplay Fundamentals – Mini-GameUnity gameplay foundations21h · Beginner+

Built a small interactive game from scratch. Introduced students to Unity’s interface and core scripting patterns.

  • Covered scenes, hierarchy, and clean project organisation to avoid 'spaghetti projects'.
  • Insisted on clear naming and single-responsibility scripts to build good habits early.
  • Introduced coroutines, GameManager patterns, and basic game state handling.
  • Showed how to debug common issues directly in the Unity Editor and through logs.
Scenes & hierarchyProject organisationScripts & GameObjectsCoroutinesGameManager patternDebugging basics
042D PlatformerLevel design & 2D gameplay21h · Beginner+

Students created a complete 2D platformer, with emphasis on level design, physics, and clean scripting.

  • Used Tilemaps for environment building, collisions, and readable level layouts.
  • Worked on jump feel and movement physics to make controls responsive and consistent.
  • Implemented simple enemy behaviours (patrol, chase) and player/enemy interactions.
  • Discussed basic level design principles: pacing, checkpoints, difficulty curve, and feedback.
TilemapsCollisions & triggersBasic enemy AIPlayer controlsLevel design basics
05Shoot'em UpGame loops & enemy systems21h · Beginner+

More advanced beginner project focused on game loops and enemy systems, preparing students for larger Unity projects.

  • Designed enemy waves, patterns, and boss behaviour using script-driven logic.
  • Introduced basic game state management (menus, pause, game over, victory).
  • Worked on game feel: feedback, VFX/SFX triggers, and readable telegraphs for enemy attacks.
  • Showed how to use simple object pooling to optimise bullets and enemies.
Wave systemsBoss behaviour logicGame state managementGame feel & feedbackObject pooling basics

THE IDEA THAT CONNECTS IT ALL

Understand the code.
Explain the choices.

A working result is a starting point. Knowing why it works gives students something they can use in the next project.

LET’S PASS IT ON

Have a class, a team
or a project in mind?

For teaching, technical mentoring or a conversation about learning by building.

Explore my own work ↗