30th October 2016 | Carl Going
Throughout the secondary school and college, I had already picked up a number of programming languages and the necessary logical thinking that came with it. College introduced me to one of my favorite IDE of all time, Turbo Pascal.
The basics were taught and simple assignments were produced by most of the students.I was part of the small “nerd” group who had similar aspirations to become game programmers. The group had learned everything about Pascal, the introduction to assembly and many aspects of VGA graphics programming that was easily available with ASM.
The group decided to split our learning approaches to advance our programming skills. One took on ASM to the extreme, one explored SVGA/VESA and I took on 3D graphics.Looking at targets such as the original Quake and Descent, I did my best for the time.
Genisis Delta (Yes, that is spelt wrong) was my first general purpose 3D framework in Pascal. It had pre-calculated transparent look up tables, fast solid z-sorted polygon drawing and later on, IPX networking support. I even had a game producer email me about this engine, asking it it was capable as a first person shooter. I replied no but suggested to look for an engine with Z-buffer capacity.
The final assignment pascal was to create a calculator and value convertor and while tamed a little, our hand-ins showed the tutors how further ahead the group were vs the rest of the class. I handed a program which looked like a Windows 3.11 clone, complete with mouse support and for no reason, an audio CD player.
The next year, C++ programming was introduced and was a natural step for us to continue learning. 3D accelerated graphics were become main stream and OpenGL was fast becoming the graphics API to use.
While I had introduced Starsiege Tribes to the college to the annoyance of the tutors, I was learning Windows and OpenGL programming starting from the NeHe OpenGL programming website outside of college time.
Fury was my final college project. A simple OpenGL game first person shooter, which was targeted to run on the college computers that had ATI Rage graphics cards.It had CPU intensive robots to fight against and nice looking landscapes at the time.
The goal was not to produce a complex game but rather to document how a simple idea can lead to complex development and programming.
It was the basis for my own personal project for the next few years and well as my own game ideas to work on. This new engine, Xevia Motion, was an object orientated OpenGL engine that did lots of things at once.Entity management, callbacks, custom UI support, basic Peer to Peer UDP networking support and Multi-monitor support in 2004. I had even took a chance in using OpenGL as a semi-realtime rendering enviroment for 3D graphics, very similar to Unreal Matinee.
Today, I work mostly with Unity and Unreal Engine 4, as those developers have spent countless hours to produce an editor interface along side their engines for developers new and old to use.