This site:
The intention of this web-site is to act as a repository and showcase (I use the term guardedly) for my development work as I muck about to improve my understanding of various aspects of programming, computer graphics and maths and physics as they relate to programming. While I welcome citicism and hope to collaborate on projects in future, this site is intended to be personal and not of general interest.
(Apologies for any garbage you may stumble across, it's probably just leftover test files and the like and should all be neatly cleared away over time.)
Me:
A VB developer by trade, not particularly by choiceA software development engineer in the Civil Engineering industry, my programming interests include: C++, PHP, graphics, computational geometry, physics, maths and GUI design. I have a passing interest in databases and SQL.
On good days, I can manage to string together the odd sentence in French, and after a couple of beers I become fluent in Spanish...
My mission:
Given the aforementioned information, one might think that video games programming would be the ideal career for me, as it combines all my primary interest into a single, neat and often pleasing whole (presumably the marketing bods in corporate branding would call this synergystically leveraging imagineering... that'll be �200,000. Thankyewverymuch. Ka-ching!). Well, with the aid of this web-site I intend to find out.
I've bought "C++ for Dummies" and "Games Programming for Dummies", why aren't I a games programmer yet?
"Demo! Demo! Demo!" and "Passion! Passion! Passion!" seem to be the universal mottos of all the advice sites. Musn't forget "Code! Code! Code!" and "Learn! Learn! Learn!" either.
It occurs to me that anyone can be a games programmer, just sit down with a compiler and get on with it! Of course, what is really meant is professional games programmer, I want to get paid for this, dammit!
I have a tendency to become fascinated by mathematical or implementation details, how vectors work or should be implemented (for instance, DirectX D3DVectors). I like to know how something works at the lowest level before learning how to do it with higher level tools, e.g. a bit wise triangle fill routine before texture mapping with OpenGL or DirectX. All this means I "fritter" away time on "less" important areas. With this site as a focus maybe I'll be able to achieve more.
By cracky, time flies.
I've been deliberately holding off updating (can't for the life of me remember why) but I think that's proved to be counter productive... I think it's high time that I re-started maintaining this site and trying for an update every month or so.
A lot has happened over the last two years. I'm halfway through Computer Games Technology MSc at City University. I've finished a couple of projects. And I've been made redundant, so I should have plenty of time to spend "productively". I certainly won't miss the four hour daily commute I can tell you.
Just finished helping after yet another Develop conference and I'm ploughing through a backlog of emails and other assorted poop.
Phew. That was pretty intense... I'm still recovering from this year's Develop conference in Brighton. As a head Conference Associate I seemed to spend most of my time rushing around like a blue-arsed fly and didn't have nearly enough time to attend conference sessions. My own fault, I guess. I did manage to sit in on some Games:Edu sessions, and I made a point of going to David Braben's session since I'm a longtime fan of Elite, Virus, etc. (many thanks to Janey for covering for me!). The other CA's were a nice bunch, as usual. I also had a total fan boy moment in front of Peter Molyneux.
I'm finding that writng and maintaining the code for one's own website can be a monumental drag sometimes. I'd rather be coding games but really, really need to finetune Gossamer. To complicate matters further, I sold my laptop to my mother a few months ago and still haven't gotten around to replacing it. The morning and evening train rides have never seemed longer and that 4 hours a day is lost forever... oh, the pain.
I have two more projects to upload, a simple fireworks display (done as a challenge in two weeks) and a model viewer (which is a work in progress).

I'm a teapot.

Flash, bang, wallop!
My, but how the time does fly.
A version of Geometry Wars is available through Steam, so I'm looking forward to playing with that!
I've been suitably stunned by the awesome graphics of ICO, wow! Alas, the much-vaunted prequel Shadow of the Colossus has yet to impress. That blessed camera is driving me crackers!
Whoops! Meant to say, I've finally posted the source and executable for the "Asteroids" demo in the projects section, doco to follow... eventually... maybe. Usual provisos apply, download and use at your own risk, yadda, yadda.
Would you believe it? I've actually uploaded the first part of the MS Visual C++ Express Edition tips. Big whoop.
I've finally finished playing Medievil on the PSP, sadly after a while it got quite tedious. The bosses were all pretty dull, slogging away at a near invulnerable foe until they curl up their tootsies... DULL!!! The final boss level was particularly dull, with several trillion dull pointless little battles to wade through. I had to take several weeks off half way through to recover from the tedium. And then I had to cheat to get to the end of the final level.
The Asteroids project proved to be very educational, and ultimately very knackering. It's a relatively simple implementation (there are no UFOs, for example), but I've tried to make it object oriented, so it should be straight forward to extend it. First to include UFOs and then to make it something like "Geometry Wars", he he. I've never played it but it looks well cool.
Well, I've finished the first iteration of my simple "Asteroids" game. Now I just need the time to tidy it up and upload it...
Time continues to be in short supply, but since the Brighton Develop event I've been developing a simple "Asteroids" game. I'm determined to complete before I do any more substantial work on the site, and to be honest it needs it.
Cool! Bryce 5 is currently available absolutely FREE!... until 6th September 2006.
I've started a proper personal blog over at Carl Bateman.com, for I am he.
It's been a hectic month or so, starting a new job (4 hour daily commute, if I make my connections) and volunteer work for the Develop conference in Brighton, but I have started work on a version of Asteroids using Visual C++ Express.
Hmm. This blog looks like it's in danger of becoming a life-style blog rather than a development blog. Tut! Still, I do need to separate blog entries from this page as it's becoming a bit unwieldy. I'm considering rewriting the navigation code to make it Object Oriented, but I'd rather spend time on other dev work. For some reason search engines don't seem to be spidering my site. I don't know if this is PHP specific or something else. If it is down to the PHP I may have to bite the bullet and get re-factoring.
As I mentioned last time, I've started a new job. It turns out that it involves C# rather than C++ as I'd hoped. The commute is a bit of a pain, but once I get used to it I'm hoping to use the time to do some dev work. For now, I'm playing the stuffing out of "Medievel" on the PSP (acquired from my son). I still have finish to setting up the laptop I bought from him, too. I'm getting less than an hours free-time each weekday to get anything done so it's slow work. I've installed HTML-kit, FireFox, VC++ and VC#. Which just leaves the PSDK, open source dev tools, some music, some games and possibly Fedora... phew!!! Once all that's done, I want to get on with some OpenGL, current target being a version of Tetris using 3d blocks.
The laptop is a Fujitsu-Seimens Amilo L7300 and I used it in anger for the first time a couple of days ago and was very disappointed. It was too big (British trains are very cramped at rush hour), dog slow and the battery went down quicker than the Titanic. I'll upgrade the memory to 1GB and see if that helps, otherwise I suppose I'll have to buy another one.
Happy Independence Day to any US readers out there. The irony of a Brit congratulating a seceded colony is not lost on me.
Bit of a gap between the last two entries, sorry about that. Been very busy, interviews and birthdays and operations and such-like. The good news is that I�ve recently started a new job, the bad news is that there�s a four hour daily commute. I�ve bought a PSP and a laptop so I should be able to keep myself occupied and entertained.
Well, that was disappointing. I'm afraid the course has proved incredibly poor on almost every level, so now that I've finished the first module (exam yesterday... what a stinker) I've discontinued the course. Instead, I'm considering OO Software Technology at Brighton or Multimedia at Surrey or Sussex. Portsmouth have Computer Games Technology, but the travel would be a bit too much.
On a more positive note I've made progress with my demo apps, and have moved on to studying OpenGL. Now that I've wound up the OU course, I should have enough time to post them.
I've started an MSc in Software Development with the Open University. So what little spare time I had has been reduced further. I'm trying to organise my time more efficiently, but updates to this site may be a bit on the slow side from now on... sorry.
I'm working on the site PHP to fix a few minor bugs and extend the navigation to handle sections where there is one article per directory.
I've finally uploaded the first smatterings of rudimentary code in the articles section. Distractions have kept me from writing anything too meaningful. I've realised that I need to make some further modifications to my PHP site manager code to allow me to organise the article and code files meaningfully. So, yet more distractions, I'm afraid. I will try to consolidate some kind of meaningful discourse before venturing once more into the realms of PHP.
An additional concern is that Google only appears to be spidering this index page and not the rest of the site. Whether this is a PHP issue or something else I don't know, and will need to investigate further.
Rain, rain, rain and more sodding rain, it's enough to make you want to emigrate.
I'm experimenting with GeSHi - Generic Syntax Highlighter to colourise and prettify my code snippets, all being well, I'll post the first part of my back buffer development code this weekend.
Playing around, getting GeShi to work highlighted a few issues... I really should tidy up my site management code and post it, I need to tidy my web-site, I need to spend some time learning more about the features of HTML-Kit, I hate my job, I love coding (but not the boring stuff at work).
Does anyone actually read this, or am I talking to myself? (Webmaster at this site)
Tum te tum... well, in my quest for a quiet computer, I've managed to work through three CPU heat sinks (too noisy, damaged on delivery, too big), two PSU's (too cheap, too rattly), and a mobo (dodgy LAN - replacement's actually worse). Why is stealth modding so bl**dy tricky! Currently have no PSU, so can't do any work. While compy was working I've been playing Tron (at last! Pity Buena Vista didn't see fit to support it better, I quite fancy a game of deathmatch, don't they realise modding is a major part of any truly modern release?) and I've managed to tidy up the preliminary work on the double or back buffer, so I'll be posting that in the next couple of days.
The Ubuntu Live CD faired no better than the install, but at least I'm not left with a pointless dual boot menu. So, no more messing wih Linux for a while. I've spent my time more constructively installing some productive tools (PSP, Visual Studio, OpenOffice), no more excuses for not working, eh? That's the problem with upgrading my system, I end up spending a couple of weeks re-installing everything to get it to a state where I can actually use it for something constructive, which reminds me, I have to install some games...
One of the "fun" things with XP 64 bit is the dearth of hardware support. I finally installed the Canon scanner we bought back in January, but Canon don't have any 64 bit drivers for it. It does however work with my earlier WinME install. Which brings me to a nifty feature I've discovered on the Gigabyte mobo, it provides it's own dual boot option, which is proving to be very useful (I am so glad I didn't reformat that drive!).
Arbitrary random thought of the day - tired... so very, very tired...
Using an older CDROM drive fixed the install problem. My X800GT card arrived a day late, but is working fine. My old install of WinME can't find the CDROMs but since I'm moving to XP x64 that shouldn't be a problem. The onboard (Gigabyte GA-K8N-SLI) LAN doesn't seem to be working, I could connect to the web, but downloads were being corrupted. A cheapo Realtek NIC card sorted that out. Then I tried to setup dual boot with Ubuntu (Breezy Badger) Linux. I think it couldn't find the appropriate drivers for my vid card and dumped me at a command prompt, difficult to be certain as the screen was filled with ASCII garbage. I then tried to install Ubuntu (Hoary Hedgehog), and got grub failed with error 17. After a couple of hours of frantic searching (thankfully I have a second computer with internet access) I found out to use fdisk to restore the mbr and re-activate the c: partition. Think I'll avoid installing Linux for a while, I'll risk a Live CD instead (ooh, the iso's 666MB, spooky).
Back to installing development stuff and a few games, I think. It's nice to have a halfway decent machine, and it's the first time I've had a home computer that's better than my work machine.
All development work has ground to a sticky halt as I upgrade my olde worlde calculating engine. Thus far, I forgot to get a compatible graphics card (I assumed I'd be able to use my old card, oops) and I'm now experiencing the delights of installing WinXP, it keeps losing the CDROM drive halfway through the install. Oh, goody.
So, GDC Europe is over and done with. It's been a great three days, enjoyable, exhausting and real eye opener. Great to meet all the other volunteers (big word up to Chris, Janey, Karl, Rohan, Michael, Micah, Seamus, Robert, Robert, Sangam, Nicolas and James), hear the speakers, generally mingle and grab the occasional freebie.
The biggest problem was trying to chose from the plethora of sessions on offer, many coinciding. Ernest Adams' "Fundamentals of Game Design" was particularly enjoyable. I also found "Killzone's AI: Dynamic Procedural Combat Tactics" and "Multi-threading in Games" interesting. Sadly, I had to leave Ben Sawyer's "Serious Opportunities Beyond Entertainment" lecture early.
The post mortems were noteworthy as they confirmed the value of existing software engineering best practise, whereas the notion of strike teams is something unique from the world of game development that could be a valuable tool in other industries.
GDCe conference proceedings available here.
Arbitrary random thought of the day - C++ has no native support for graphics. All graphics have to be acheived through additional libraries...
Typical, you bust a gut getting your web-site ready and find yourself strangely lost for words... stage fright perhaps? Apart from the code for this site, I'm working on a back-buffer article, and consequently an examination of frustum culling methods.
I'm a member of The International Game Developers Association (IGDA) and The Association of C & C++ Users (ACCU).
These keep me amused:
ctrl+alt+del
Dilbert
Penny-Arcade
Megatokyo
VGcats
Apple Geeks
Girl Genius
Questionable Content
Astronomy Pic of the Day
Helen, Sweetheart of the Internet (defunct? oh dear...)
These keep me informed:
GameDev.net
Gamasutra
Code Guru
Flipcode
These keep me talking:
PC Plus forum
.Net magazine forum
These keep me sane:
...
...
Er, I think I can see the problem, right there...
Jus' checking these out:
Geometric Tools
MinGW
OpenGL.org
siggraph
Game Development Search Engine
Amit's Game Programming Information
The Adrenaline Vault - Developer
CProgramming.com
C/C++ Users Journal
Chris Hecker's Home Page
Paul Burke's Home Page (Mr Computational Geometry)
Digital Game Developer
Demos and Game Development
iDevGames - Community Forum (Mac)
Programmers Heaven
Independent Games Festival
Game Development Search Engine
Loony games
Ultimate Game Programming Tutorials
Ravensoft
games-creators.org (en fran�ais)
Thinking in C++
Dev Master - game dev source
Edge Magazine
Eurographics - European Association for Computer Graphics
Generation 5 AI site
Tiny Subversions Blog
Swiftless
The C++ Source: on-line journal
I'm learning Spanish, this is just a convenient parking place for me to put these links for now.