QB64 Tutorial
A beginner's introduction to game programming

Welcome to the QB64 Tutorial!

This tutorial will focus on the Phoenix Edition version of QB64 located at https://qb64phoenix.com/forum/index.php. If you use an alternate fork of QB64 the tutorial will more than likely be just fine for your version. Please be aware that any new enhancements made to the PE version and utilized in the tutorial may not be compatible with your version. Likewise, new enhancements made to other forks of QB64 may not be covered in this tutorial.

Recent News and Updates:

What is QB64?

QB64 is a modern version of Microsoft's QuickBasic from the 1980's and 1990's. It has the same familiar, albeit enhanced, integrated development environment (IDE) from the original version. QB64 is nearly 100% compatible with source code written in QuickBasic. That source code from 1988 will load, compile, and run just fine. Furthermore, QB64 has added hundreds of new powerful commands and enhanced existing ones to take advantage of today's high-powered computer systems. Visit the QB64 Wiki for a listing of all the new features available.

Why QB64?

The simple answer; because it's fun and easy. QuickBasic (and QBasic that shipped with DOS) was a very popular programming language in the 80's and 90's because many early computers, such as the Commodore 64, The Texas Instruments TI99/4A, and the TRS-80 line of Radio Shack computers, used BASIC as their operating system. Because of this many early computer enthusiasts "cut their teeth" using BASIC and moving to Microsoft's QuickBasic was a simple way to write software since the familiarity with BASIC was already there. QuickBasic (and BASIC in general) fell out of favor when 32bit operating systems started to become the norm. The developers of QB64 remember QuickBasic's heyday with fond memories and want to pass that experience onto others while adding modern features for today's powerful computer systems. Will the next killer app be written in QB64? Probably not. (Although a game written in QB64 was green lit on Steam once). So why QB64? It's a simple way to get introduced to programming while at the same time allowing you to write custom software quickly and easily. And who knows, YOU just might write the next killer app in QB64.  The skills you learn using QB64 and this tutorial are easily transferred to other programming languages as well.

Install QB64

The first thing you'll need to do is get QB64 installed on your computer system. If you already have QB64 installed you may want to upgrade to the latest version. You'll also need the tutorial asset file installed to take full advantage of this tutorial. Visit the Install QB64 page to get started.

Useful Links

Tutorial Asset File

The tutorial asset file will be updated from time to time to reflect changes made to the tutorial. You can download it here:

Latest update: November 21st, 2023

Note: If you were using the old tutorial site you'll need to delete the old tutorial folder in your QB64 directory and download the new tutorial asset file. It's the same procedure as before, download the tutorial asset file and move the "tutorial" folder found in the ZIP file into your QB64 (or QB64PE) folder.

QB64 Phoenix Edition Forum

The QB64 Phoenix Edition forum is your one-stop shop for all things QB64 related. Stop by, create an account, and join in the conversations. There are many QB64 users there that are more than willing to answer your programming questions. Remember, there are no stupid questions! We were all new to programming once.

QB64 Phoenix Edition Wiki

The QB64 Phoenix Edition Wiki is your go to place for everything QB64 command related. You'll find helpful code snippets and command syntax to help you complete your game project.

Versions of QB64

In early 2022 the QB64 community decided to take a few different directions. The author of this tutorial chose to align with the Phoenix Edition version of QB64. The author is in no way stating that one version is any better than another. As new versions appear the links to them will appear below to give users a chance to check out their varying features.

Getting Involved With The Tutorial

I welcome any comments, suggestions, and/or criticisms you may have about the tutorial. Please feel free to email me with improvements or suggestions that you may have (see the fine print below for my email address). I welcome help in the following areas: