It’s GameTime

Naturally, my first OpenGL game was a 3-D version of Pong. I was using an old library called GLUT which included functions for generating primitives like spheres. You could generate them based on the number of lines of latitude and longitude, AKA “UV Spheres”.

More polygons would make the game run slower, so I cranked that number up until the framerate stabilized. This is a highly sophisticated programming technique often referred to as a “cheap hack”. Sure enough, almost 18 years later, it still runs just fine. Which …

[

Multi-Screen Multiplayer: The Unusual Architecture Of The JEOZ Engine

Or: “Why on Earth are you building a new game engine?!”

One of the main reasons is that it seems no game engine is built quite like this from the ground up. Upon bootup, the JEOZ Engine can optionally start a second copy of itself in the background in “server mode”, which I call the “Hub”.

You can’t have two Windows running OpenGL on two screens without running two apps: One Windows app can only have one OpenGL process. So the idea of having separate players on each …

[

Choice. The Problem Is Choice.

Continuing the theme of “things I should have learned sooner”, starting with finding out that If/Switch Statements are expensive, I also finally started learning about Delegates. I had heard of them, and I knew what Function Pointers were from C++ way back in 1999. But I can’t believe I hadn’t looked into Delegates sooner, or that none of the tutorials or articles I ever read had forced me to learn them until now.

The timing worked out okay though, because Delegates are useful in writing Branchless code

[

The Nub Of The Engine

For a long time I was shortening the word Entity to Thing, even though it’s mostly shorter by syllable count. I couldn’t find a better word at first, but recently for some reason I looked again. The nub of the story is that “nub” also means “the essence of something”. A nub becomes a bud that either branches off, or blooms into a leaf or fruit or flower.

This fit in perfectly with the naming style I was already using. Every Nub has a Genus property, and you use …

[

Now It’s Time To Go, Numbers

There’s only one place for me to begin with writing articles about coding. The most fundamental parts of the JEOZ Engine are GoNumbers, GoVectors, and GoColors. Games require smooth movement, and building these objects into the core of the JEOZ Engine makes that effortless and automatic.

Simply put, you move from one point to another at X Percent each frame of animation. Instead of a constant motion which looks robotic, it starts very fast and slides to a stop. If you apply this to Arrow Key (WASD) inputs, it …

[

What Is The JEOZ Engine?

The JEOZ Engine is meant to be the simplest, most bare-bones 3-D game engine. When I say it’s “old school” I mean grade school, and not just because it’s written in Visual Basic. I don’t require a big engine for simple arcade shoot-em-up games I’m trying to make, and I started learning this back when you had to start from scratch. Once my games are complete, the JEOZ Engine will be an excellent starting point for others in the gaming community to build upon. I plan on doing …

[

A Brief History Of JEOZ

One of my first attempts at making a game was around 1992, a 2-D platformer starring the ASCII Smiley character, using QBasic in MS-DOS. In 1995, I tried to clone Mario’s Picross for GameBoy, as a Windows 3.1 app using Visual Basic 3.0. For a few years I mostly worked with web pages, graphics design, Perl, and Javascript, and didn’t get back into games for a while. Early in 1999 I found a Type Library for Visual Basic 6 to use DirectX hardware acceleration, and made a vertical …

[