Advertisement

How did you start in Game Development/Programming?

Started by February 18, 2014 06:58 PM
21 comments, last by cr88192 10 years, 11 months ago

Games like Tie Fighter and Castlevania: SOTN left a big impression on me and I knew that I had to write a game. Walked into Waterstones and picked up a book on a language called...C. Sadly, fourteen years later, I've not got a job in programming, but I have managed to at least get a Diploma and Degree in the subject.

Currently designing a small Android game in the evenings and refreshing my knowledge of C in the mornings.

Languages; C, Java. Platforms: Android, Oculus Go, ZX Spectrum, Megadrive.

Website: Mega-Gen Garage

Randomly looked up: "How are games made" when I was about 11, and thus my adventure started.

Advertisement

I mostly spent a lot of years fiddling with programming and 3D stuff, but not really so much aiming for games until around 2010.

I actually started messing with computers and programming stuff around 3rd grade or so, which for me was back in the 90s. started mostly messing with QBasic, then migrated over to C. this was back in the days of needing boot into DOS mode for most games to work, dial-up internet, and things like movies on multiple CD-ROMs which looked bad even by VHS standards, ... and, weird/funky technologies, like many of the elementary-school computers using what looked like non-labeled CD-ROMs in largish floppy-like cases (apparently these were magneto-optical disks). also, this was back in the days of things like downloading files from IRC chat-rooms and similar (and where video files off the internet looked and sounded terrible), ....

back in these days, one could fiddle with the Wolf3D and Doom source, and they were not yet archaic... (but, back in those days, when still learning C, it was beyond my abilities to get Wolf3D built from source).

later on (~ 8th grade or so) there was the Quake source and this unlocked a new world of fiddly (could get it built on the OS's I was using, and by this point could code well enough to start making more use of it, though this effort effectively fell apart due to bit-rot).

my original aspirations (and what I was working on for most of high-school and early into college) was trying to make an OS.

got around to having a rudimentary GUI interface for it, got discouraged realizing that it couldn't really offer much of anything much beyond what Windows and Linux already did, and all the required levels of hardware/driver support effectively killed it.

architecturally, it was sort of like a Windows/Linux hybrid with a built-in Scheme VM, using PE/COFF for EXEs and DLLs, FAT for the filesystem, and with a partial emulation layer so that it could be run in userspace (as an application on top of Windows, *).

*: the EXEs were actually built as relocatable DLLs, and in this case, pretty much everything would run in a single big address space with threads emulating processes. actually, PE/COFF loading was added near the end (originally, it was intended to have all the apps to be written in Scheme, with an AST-based interpreter being used). (a lot of this being back in the days of "Ye Olde Windows XP" and similar...).

after that, I spent a few years basically trying to make usable DCC tools (3D modeling and animation tools), sort of hoping to be able to make a "good" FOSS alternative both to commercial tools and to things like Blender (which suffered at the time from a terrible UI and lots of crashing). (with lots of code copy/pasted from the OS project, but largely dropping/replacing the script VM with an initially-terrible JavaScript knockoff).

this effort was mostly stalled by my stuff having a terrible UI, and progress was pretty slow mostly due to the comparably-large levels of effort mostly going into all my compiler and VM stuff (trying to make it all not suck so bad).

at the same time, I had also been hacking around with the Quake 2 engine, and had effectively integrated large amounts of my own code on top of the Quake 2 engine (as well as many parts of my own codebase having incorporated parts of the Quake 1 and 2 engines). also, at one point, going and replacing all the assets with custom-made replacements (so I could legally make it available, nevermind if most of my artwork and models suck pretty hard...).

around 2010, I had an idea that I might want to make my own game, so started working in this direction.

I also later decided to get rid of the GPL, so basically did a purge of all Quake-engine derived source (and dropping the Q2 engine).

lots of stuff had to be rewritten, but a lot of it was mostly replaced with mock-up code.

this was a pretty severe blow in some ways, but the project has mostly recovered.

the high-level architecture remains similar though (for example, the game-engine is still client/server based, ...), but often with many functional differences. for example, the (now maybe not so good in retrospect) decision to use Lists/S-Expressions for all the internal network messages, but it could have been worse (originally, I was going to use XML, but S-Exps were less effort...).

if I were doing it now, I would probably do something more "similar" to Deflate-compressed ASN.1 BER, which scales a little better than a bunch of list-processing code, and is slightly less hairy than what is used by the voxel terrain system, which uses a vaguely JPEG-like tagging scheme, and is passed through all the list-handling code essentially as a giant byte-vector.

most of my 3D engine core is built from parts lingering from my OS project and DCC tools projects, and with an arguably over-engineered Script-VM backend (in comparison, the VMs in Quake3 or Doom3 are fairly small/trivial in comparison. in terms of raw line-counts though, it is along similar lines to SpiderMonkey or V8...). (and, apart from its dependence on OpenGL, could probably almost be made to boot up and run on raw hardware...).

due to its origins in my DCC tools, the renderer used solely real-time lighting strategies (rendering things per-light, with stencil shadows). though, back in earlier days, the renderer had also supported/used ray-casts for lighting.

so, days so long ago and distant past now...

and... it kind of sucks as a game (and is code-wise admittedly sort of a monstrosity in a few ways), but sort of works I guess...

and it mutated from initially being a barely working Quake knock-off, to a mostly-working Minecraft knock-off, some-odd years later.

and, all this has pretty much been my entire life thus far as well...

(what has become of my life?... where have all these years gone?...).

This topic is closed to new replies.

Advertisement