GPAU / GAM / 01
Game Development for Teens
Unity and C#, 2D and 3D, ages 13 to 18.
Open the syllabusAustralia · Year 9 to adult · Live online
Plenty of online courses will walk you through clicking together a platformer in an afternoon. Far fewer explain why your character jumps higher on a slow laptop than on a fast one, why enemies sometimes pass through walls, or why the code that worked for one level collapses when you add the tenth. Those are game programming problems, and they are the subject of this course. It is for Australian secondary students from about Year 9, university students and working adults who want to write games properly: the loop that drives every game, how time is measured and stepped, how physics is made stable, and how a project is structured so it can keep growing. You work in real languages and real engines, live with a teacher, and you finish with games you understand line by line.
Live teaching since 2020 · 10,000+ students · complete games, explained line by line
In short
A game programming course teaches the code that makes games work: the game loop that updates and draws each frame, frame-rate independent movement, a fixed timestep for stable physics, collision, game state and project structure. Ours is taught live online to Australian teens from about Year 9 and to adults, in Python with Pygame, C# with Unity and GDScript with Godot. Every module ends with a playable game the student wrote and can explain, and the first class is free.
Choose a starting point
Matched to age and to how much code you have already written. Each card opens the full syllabus.

GPAU / 01
Ages 13 to 18. Unity and C#, from a first scene to a shipped 2D or 3D game.
Open the syllabus →
GPAU / 02
Ages 18 and over. Unity, C# and Unreal Engine for university students and working adults.
Open the syllabus →
GPAU / 03
For teens who want strong Python first, then games with Pygame on top of it.
Open the syllabus →Who it is for
The students are different; the questions they bring are surprisingly similar.
| Student | Where they start | What they leave with |
|---|---|---|
| Year 9 or 10 student | Has made Scratch or Roblox games | A typed game loop of their own and the confidence to read engine code |
| Year 11 or 12 student | Studying a computing subject at school | Real projects that show object-oriented design and testing in practice |
| University student | Can program, has never shipped a game | Finished, playable games and a clear grasp of engine architecture |
| Working adult | Codes for work, or has never coded | A hobby skill built properly, without gaps from video tutorials |
| Career changer | Curious about the games industry | An honest view of the skills involved and a portfolio to start from |
Video tutorials are excellent at showing what to click. They rarely stop to ask why, and they cannot see where you are stuck. A live teacher can.
Every lesson here includes a question you answer before the code is written: what will this frame do if it takes twice as long, what happens when two objects arrive at the same time, where should this state live? Those questions are the course.
You do not need a powerful gaming computer to begin. Python with Pygame and the Godot engine both run on ordinary laptops, and we check your machine before recommending Unity.
You do not need advanced maths. Coordinates, a little algebra and the idea of speed are enough to start; vectors and trigonometry are taught when a game needs them.
Younger children and complete beginners start in a different place. Our page on game development for kids in Australia covers the path from a first Scratch game. Students who want the design side of games more than the code will find video game design for kids a better fit.
The game loop
Under every engine and every genre sits the same loop. Students who understand it can learn any engine quickly; students who skip it spend years guessing.
| Step | What happens | Typical bug when it is wrong |
|---|---|---|
| Read input | Keys, mouse, controller and network messages are collected | A key press is missed because it happened between two checks |
| Update | Positions, health, timers and scores change by the time that has passed | Movement speeds up or slows down with the frame rate |
| Draw | The current state is rendered to the screen | Objects flicker or appear a frame late |
| Wait or repeat | The loop runs again, ideally at a steady rate | Uneven frame times make motion stutter |
In Godot the update step is split in two: _process() runs every rendered frame, and _physics_process() runs at a fixed rate. The Godot documentation states plainly that "Physics processing happens at a fixed rate, 60 times per second by default."
In Unity the same split appears as Update and FixedUpdate. Unity describes Time.fixedDeltaTime as "The interval in seconds of in-game time at which physics and other fixed frame rate updates (like MonoBehaviour's MonoBehaviour.FixedUpdate) are performed."
In Pygame nothing is hidden: the student writes the loop, reads the clock and decides what to update. Building that once, badly and then well, makes every engine feel familiar instead of magical.
The Godot documentation gives the rule that most beginners break: "you should always multiply a speed value by delta to animate a moving object." The worked example below shows what happens when you do not, and why even multiplying by delta is not the whole answer.
Sources, read 7 October 2026: Godot Engine documentation, Idle and Physics Processing; Unity Scripting API, Time.fixedDeltaTime. We are independent of both engines.
A worked example
This is the first big lesson of the course. It takes about an hour, and it explains a bug that beginners meet again and again.
Drop a ball from rest and let gravity pull it down at 9.8 metres per second per second. Physics tells us that after exactly one second it has fallen 4.9 metres. A game cannot do the calculus; it steps the motion forward one frame at a time, adding a little to the speed, then a little to the position. We ran that frame-by-frame update for one second of game time at three common frame rates.
| Frame rate | Step size | Distance after 1 second | Gap from the exact 4.9 m |
|---|---|---|---|
| 30 frames a second | 1/30 s | 5.0633 m | 0.1633 m |
| 60 frames a second | 1/60 s | 4.9817 m | 0.0817 m |
| 144 frames a second | 1/144 s | 4.9340 m | 0.0340 m |
The same code, the same second, three different answers. A player on an older school laptop running at 30 frames a second falls further, jumps differently and may clip through a thin platform that a fast machine handles cleanly.
Step the physics in fixed slices, say 1/60 of a second, whatever the screen is doing. Every machine then performs the same 60 steps per second and gets the same 4.9817 m, every time.
Each frame, add the real time that passed to a running total. While the total holds at least one slice, take a physics step and subtract the slice. Leftover time waits for the next frame.
| Display rate | Frames with no physics step | Frames with one step | Frames with two steps | Physics steps in total |
|---|---|---|---|---|
| 144 frames a second | 84 | 60 | 0 | 60 |
| 60 frames a second | 0 | 60 | 0 | 60 |
| 30 frames a second | 0 | 0 | 30 | 60 |
The accumulator approach was set out for game developers by Glenn Fiedler in his 2004 article "Fix Your Timestep!", which is still widely read. Godot's fixed physics rate and Unity's FixedUpdate do the same job for you.
Students write the accumulator in Python first, so that when they meet it inside an engine they recognise it.
At 144 frames a second, more than half of all frames do no physics at all. If you only draw the latest physics state, objects appear to move in small jumps.
The cure is to draw objects slightly blended between their last two physics positions, which is what engines call physics interpolation. Finding that problem yourself, and fixing it, is the kind of understanding that separates game programmers from tutorial followers.
Modules
Order and pace adjust to the student. Each module finishes with a playable game.
| Module | Key ideas | Finished game |
|---|---|---|
| 1. The loop by hand | Input, update, draw, the clock, delta time | A dodging game in Python with Pygame |
| 2. Time and physics | Fixed timestep, accumulator, gravity, interpolation | A platformer whose jumps match on every machine |
| 3. Collision | Overlap tests, resolving contacts, tunnelling through thin walls | A top-down arena with solid walls |
| 4. State and structure | Finite state machines, scenes, separating data from code | A game with menus, pause, levels and game over |
| 5. An engine | Nodes or game objects, scripts, signals or events | The platformer rebuilt in Godot or Unity |
| 6. Finishing | Saving, settings, testing, building for others to install | A complete game someone else can download and play |
The Australian Curriculum v9 asks students in Years 7 and 8 to "trace algorithms to predict output for a given input and to identify errors" (AC9TDI8P06) and in Years 9 and 10 to "validate algorithms and programs by comparing their output against a range of test cases" (AC9TDI10P06). The frame-rate table above is exactly that kind of test.
Students taking a senior computing subject can see the same ideas applied to a bigger project. For New South Wales, our page on HSC Software Engineering help explains how we support that course without writing assessed work.
This is a programming course. It does not teach 3D modelling, music or professional art, though students learn to use free assets responsibly.
We do not promise jobs in the games industry. What we can promise is that you will understand the games you build, and be able to show and explain them.
Curriculum wording copied on 7 October 2026 from the ACARA Version 9.0 Digital Technologies content for Years 7 to 10, a Word file.
Progress
Most students who come with some coding reach level three in two to three terms of weekly lessons. Level four is where a portfolio starts.
| Level | What you can do |
|---|---|
| 1. Loop | Write a game loop by hand, move objects with delta time and explain each line |
| 2. Stable | Run physics on a fixed timestep with an accumulator, and say why it matters |
| 3. Structured | Organise a game into states and scenes so new levels do not break old ones |
| 4. Shipped | Finish, test and package a game that someone else can install and play |
Python if you are new to typed code: it is readable and Pygame keeps the game loop in plain sight.
C# with Unity if you already program and want the widest range of tutorials and jobs. GDScript with Godot if you want a light, free engine that runs well on modest machines.
Lessons are weekly, in your own state's time, after school, in the evening or at the weekend, agreed in the free class.
Billing is monthly, so a pause for Year 12 exams, end of semester or a busy work quarter is simple.
The catalogue
Arranged by age and depth. Which one you start with gets decided in the free class.
GPAU / GAM / 01
Unity and C#, 2D and 3D, ages 13 to 18.
Open the syllabusGPAU / GAM / 02
Unity, C# and Unreal, for adults.
Open the syllabusGPAU / GAM / 03
Games that run in any browser.
Open the syllabusGPAU / LNG / 01
The language behind Pygame, done properly.
Open the syllabusGPAU / LNG / 02
The language many engines are written in.
Open the syllabusGPAU / LNG / 03
From zero to advanced, for university and work.
Open the syllabusGPAU / THK / 01
Search, graphs and data structures games rely on.
Open the syllabusGPAU / THK / 02
Fast, correct code under pressure.
Open the syllabusGPAU / THK / 03
Keeping a growing game project safe.
Open the syllabusHow lessons run
Teachers work from India. During the southern summer, Sydney, Melbourne, Canberra and Hobart run five and a half hours ahead of India time, Brisbane four and a half, Adelaide five and Perth two and a half, so Australian afternoons and early evenings fall inside the Indian working day.
After school
For secondary students in their own state.
Evening
For adults after work, by arrangement.
Weekend
Longer build sessions on bigger projects.
We look at code you have written, or start from nothing, and set a level honestly.
Fifteen to twenty students at a similar level, reviewing each other's code.
For a specific project, a tight timeline or a faster pace.
You type everything. Teachers question and guide; they never write your project for you.
Each module ends with a review of structure, naming and tests, not just whether it runs.
Finished games are kept in your own repository to show and keep building.
Student work
Games and apps our students finished and put online. There are more in the student labs.

AI and ML
An AI nutrition coach that reads what you eat and works you toward a target.

AI and ML
A chatbot that answers mathematics and programming questions, built and deployed by a student.

AI and ML
An assistant that helps a young person recognise unsafe situations online.

Web app
A weather forecasting site with live conditions for any location.
Fees
Outside India the fee is one monthly price in US dollars. There is no enrolment charge and no semester commitment; stop after any month.
Free first class
USD 0
no card required
Group batch
USD 100
a month, billed in US dollars
One to one
USD 150
a month, billed in US dollars
What families say
Taken unchanged from public reviews on our Google profile.
★★★★★
"The one step solution for my son. Modern Age Coders make learning coding so simple that kids love it. The teachers explain complex concepts clearly with practical exercises and interactive content."
Ria Mukherjee
Parent
★★★★★
"Modern Age Coders has been a game-changer for me. I struggled to grasp IT concepts and coding before joining, but their classes transformed everything. I can now confidently write complex programs with ease."
Samriddha Mondal
Student
★★★★★
"One of the most wonderful education centres out there. Education is not limited to school syllabus but focuses on skill development."
Vansh Agarwal
Student
★★★★★
"My child Dhairya is really enjoying the Modern Age Coders classes. This is his first online class and he eagerly looks forward to it. I can already see his improvement, and the teachers are very cooperative."
Sonam Oswal
Parent of Dhairya
★★★★★
"Modern Age Coders have wonderful teachers who teach in a clear, easy and practical way. The teacher boosts students' confidence and inspires them to learn without hesitation."
Sonu Goyal
Parent
★★★★★
"I highly recommend this computer coding class! The teachers are incredibly knowledgeable and passionate about coding."
Ritu Kedia
Parent
Common questions
It is writing the code that makes a game run: the loop that reads input, updates the world and draws it, plus physics, collision, game state and the structure that holds a growing project together. It is narrower than game development, which also includes art, sound and design.
It is updating physics in equal slices of time, such as 1/60 of a second, regardless of how fast the screen redraws. It makes movement and collisions behave the same on fast and slow computers.
No. Complete beginners start with Python and build up to games. Students who already code move to the game loop and an engine sooner.
Both, in separate groups by age. Teens from about Year 9 join teen groups; university students and working adults join adult groups or learn one to one.
Learn the ideas first, in any of them. Godot is light and free, Unity has the largest body of tutorials, and Unreal suits high-end 3D. Students who understand the game loop can move between them in weeks.
C++ and C# are common in engines and studios, GDScript in Godot, and Python is widely used for learning and tools. We teach the language that suits your goal and engine.
It applies the same ideas, such as testing, tracing and object-oriented design, to real projects. We do not complete assessed work or major projects for students.
We do not promise jobs. You will finish with games you built and can explain, which is a sound starting portfolio for further study or applications.
Python and Godot run well on most laptops from the last several years. Unity and Unreal need more memory and graphics power, so we check your machine before recommending them.
The first class is free with no card. Monthly fees for group and one-to-one lessons appear in the fees section of this page, with no enrolment charge.
Also on this site
Other routes into making games, and our other Australian pages.
Every Australian guide we publish, in one list.
The younger route, from a first Scratch game.
Puzzle games that teach programming ideas.
For NSW Year 11 and 12 students.
The language under many big engines, for teens and adults.
Where game programming fits among other paths.
Start here
Leave your details and we will call at a time that suits you. In the free class you write a little game code with a teacher, and you get a straight answer about where to start.
Curious about the teaching itself? How we teach describes a lesson from start to finish, and the course list covers every age and subject.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
From an Australian mobile, WhatsApp is usually the fastest way to reach us. Our team is in India, hence the +91 number, and we do not have an Australian office.
A priority demo is a full class of about 45 to 60 minutes. After the class the mentor sends a written skill report and a personal learning roadmap on WhatsApp. If you enrol, the demo fee is adjusted against your first month's fee. Share your demo Order ID with us on WhatsApp and we take it off.
Book a priority demo