Game Programming Primer

Learn to program video games with this course covering DarkBASIC Pro. This is a course for beginners.
  • Lectures 33
  • Video 16 Hours
  • Skill level all level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

Course Description

Learn Game Programming!

This course teaches a complete beginner how to make a video game using the BASIC programming language with a free compiler called DarkBASIC Pro. A video lecture shows how to get started with this easy-to-use programming tool, while lecture presentations cover more in-depth instruction on the language and features of DarkBASIC Pro. Several simple games are created in the lessons following the video tutorial.

What are the requirements?

  • Basic programming knowledge of at least one language preferred (but not rqeuired).

What am I going to get from this course?

  • Over 33 lectures and 15.5 hours of content!
  • Understand the basics of programming, including variables, subroutines, and logic.
  • Understand how to load and draw images and perform animation.
  • Understand how to get user input from common input devices.
  • Understand how to load and play audio files to enhance a video game.

What is the target audience?

  • Anyone who is interested in video game programming who has at least some basic knowledge of programming.

What you get with this course?

Not for you? No problem.
30 day money back guarantee

Forever yours.
Lifetime access

Learn on the go.
Desktop, iOS and Android

Get rewarded.
Certificate of completion


Section 1: Welcome!
Get Ready! This "primer" course teaches the absolute basics needed to write a video game using the BASIC language. In this course, we will be focusing on DarkBasic Pro . This game programming compiler is FREE to download. As the author of quite a few books on game development, I wanted to share some…
The lessons are online now. Presently, there are 20 lessons from material in the book and a course I taught on this for several years at a university. There are also a half-dozen TUTORIALS in PowerPoint format that cover high-level game programming concepts, such as user input, A.I., collision detec…
50 slides

This lesson explains what you will learn in the course and a bit about the game development software we're using.


The first game programming tool we will learn to use is DarkBasic Pro, by The Game Creators ( You can download DarkBasic Pro for free from their web site and use it for this course.

ASSET FILES You will need these game assets for the tutorials featured in this section of the course. Download the ZIP file for each tutorial and extract the files from the ZIP onto your system. Then copy the files into your project folder (where you save the .DBPRO project file). Bouncing Balls Tut…
Section 2: Game Programming Lessons
Welcome to the DarkBasic lessons! You will learn how to make a game using DarkBasic Pro. This program is now available for free from the kind people at The Game Creators. You may download DarkBasic Pro FREE EDITION from . If you need help installing DarkBasic Pro, there is a…
46 slides

This lesson explains some of the background behind game development, how programming languages work, and how DarkBasic fits in. It is good background material for a complete beginner to the subject.

70 slides

This lesson explains the important subject of variables in DarkBasic, including advanced user-defined types and how to use them effectively.

27 slides

This lesson shows how to write DarkBasic code that can think--that is, make decisions. Functions are an important way to break up a large program into smaller parts. Looping is how we can repeat a task many times very quickly.

32 slides

This lesson explains how you can create data in a BASIC program and then read it using arrays. This is an important concept in game programming with BASIC, since we can create game levels this way! At the end of this lesson, you will write a graphics demo that draws and moves shapes on the screen.

23 slides

This lesson explains the file input/output commands in DarkBasic. You will learn how to read and write text and numeric data from files, and how to use this new skill to make a script-like settings file that affects how a game starts up (for instance, by defining the screen resolution and program title). This is the first step to understanding script programming and is very useful.

41 slides

This lesson teaches the math and relational (logic) commands in DarkBasic, introducing some very important new concepts such as linear velocity (causing game objects to move in a specific direction) and random number generation (for rolling RPG character stats, among other things).

19 slides

This is the first lesson on graphics programming with DarkBasic. Up to this point, you have been learning the important features of the language in order to be able to make games. You need to know the language first, so you can confidently work on game logic. Now, you're on the right track, and we begin digging into graphics! In the next few lessons, you will learn about bitmaps, sprites, and animation. So, you're on the right track, keep at it!

26 slides

This is a quick, short introduction to bitmaps and images--how to load and draw them in DarkBasic. You will use this information in the next few lessons on 2D game programming with sprites.


This lesson shows step by step how to create your own Pong game using DarkBasic Pro. The language is based on the original BASIC, but with custom statements and functions specifically designed for making games. We will learn to use graphics and input to make a playable Pong game in this single lecture.

64 slides

This lesson explains all of the DarkBasic commands for working with keyboards, mice, and joystick controllers.

26 slides

This lesson covers looping statements in DarkBasic, such as While and Do statements, used to create a real-time game loop. Timing is a related subject, affecting the frame rate of a game.

29 slides

This is the first lesson on sprite programming, which involves drawing, moving, and animating 2D bitmap-based game objects, the core of 2D games.

60 slides

This is a complete game tutorial that teaches step by step how to create your own version of the classic arcade game, Space Invaders! Be sure to download the "Assets" for this game project from the Tutorial Assets page.

29 slides

This lesson continues our study of sprite programming in DarkBasic Pro by exploring the exciting subject of animation!

14 slides

This very short tutorial shows how to make a demo that loads a background image and several animations, and draws animated balls moving on the screen, colliding with each other, and bounding off the edges of the screen. This is a good and quick introduction to sprite animation in DarkBasic Pro.

See the Lecture 1 page for a link to the assets required by this tutorial.

Here is a screen of the finished program that you will create in this tutorial:


16 slides

The third lesson on sprite programming covers the "gameplay" aspect involving sprite collisions. Detecting when two sprites "hit" each other allows us to make interactive games where objects affect each other, such as a laser beam hitting an alien space ship.

44 slides

This tutorial teaches step by step how to create a complete Breakout-style game (also known as a "ball-and-paddle game"). This is quite a bit more complicated than the Pong or Bouncing Balls tutorials, so fasten your programming seatbelt and get ready to go!

NOTE: Some of the screens of source code are difficult to read in the default small window. Recommend going fullscreen for this tutorial! See the small box icon at the lower right corner of the lecture window.


47 slides

This lesson explains the audio features supported by DarkBasic Pro, including the loading and playing of wav and mp3 files for sound effects and music and 3D positional sound commands.

24 slides

This lesson talks about the subject of finite state machine programming, a topic related to artificial intelligence, and how it is used to improve games.

71 slides

This tutorial is a high-concept lesson that teaches how to program the logic and user interface for a Tic-Tac-Toe game from scratch. The game assets are provided for download on the first ASSETS page. Students are encouraged to study the lessons on sprite programming and user input programming before attempting this game tutorial.


Section 3: Game Programming with 3D
38 slides

This lesson is an introduction to 3D graphics concepts, the fundamentals of 3D with DarkBasic Pro. You will learn all about vertices, triangles, quads, video cards, GPUs, and rendering, from a high-level perspective.

42 slides

This lesson explores more of the basic 3D concepts, explaining how light sources and cameras affect the view of a scene. The lights covered are from the older fixed pipeline, not shader-based lighting, so the concepts will be fairly easy to learn.

11 slides

This rather short lesson goes over the commands used to load, animate, and draw a 3D animated mesh file, with support for the common file formats .X and .3DS. This lesson does not go into too much depth since the subject is quite complex and this is a beginner's course. But this will give you a good head start and enough to start working on your own 3D demos. In the next lesson, you will learn to move and interact with 3D objects, so this lesson is a good precursor for the next one.

34 slides

In this final lesson on 3D graphics, you will learn how to move and rotate 3D objects in the scene and manipulate the camera.

Section 4: BONUS SECTION: DBRobots
Dark Basic Robots is a fun project that simulates a robot battle with 4 different robots at a time, reminiscent of the old CROBOTS simulation. (You can read about CROBOTS here; it is still quite popular today). This is not a LESSON, nor is it a TUTORIAL; this is merely a bonus chapter, purely for fu…

This was the 2nd revision to the DBRobots simulation with additional features.


Here is a sample robot program for DBRobots. The robot code is not long or complicated at all, thanks to the Bot API.

Instructor Biography

J. S. Harbour , Freelance Writer, Software Developer

Jonathan Harbour is an author and software developer, having written books on C++, C#, VB, Java, Python, DarkBasic. He has a Master's degree in Information Systems. He is also the author of a bestselling novel entitled The Mandate of Earth.

His work includes Multi-Threaded Game Engine Design, Visual C# Game Programming for Teens and Video Game Programming for Kids, 2nd Edition. His best selling books are Beginning Game Programming, 4th Edition and Visual Basic Game Programming for Teens, 3rd Edition.

He was the lead writer for the Microsoft Technology Associate (MTA) Certification Exam 98-374, "Gaming Development Fundamentals."

For more information, visit his web site below.

Join the biggest student community


Hours of video content


Course Enrollments




Average Rating
  1. 5 Stars
  2. 4 Stars
  3. 3 Stars
  4. 2 Stars
  5. 1 Stars
    • Refik Hatipoğlu

    excellent for begginer programmers thank you soo much

    • Prof Matthew Versaggi

    Excellent intro to DarkBasic and a good primer for the AGK product ... over all an excellent intro product. Highly recommended!

    I've nearly completed a complex game in AGK and have started with DarkBasic. I took this course before as an intro and then again later as a refresher and it's excellent for both, I'd highly recommend it!

Ready to start learning?
Preview this course