Chris Rose-Mathew
Founder, Developer and Webmaster
I started investigating computers soon after trying F19 Stealth Fighter and MS Flight Simulator on a 386 computer owned by family friends when I was about 12 years old.
I was immediately hooked on the concept of simulation and 3D immersive worlds, but it was a while until I had a computer of my own or appreciated computers in general.
First machine
At around age 14 I recieved an XT-compatible computer with a Hercules Mono screen and 640K of RAM from my parents, who had heard my complaints that I was struggling with word-processing at school lessons and needed something to practice on. With this first machine I started building "choose-your-own-adventure" style games with interlinking text files - I forgot to submit my design to the W3C though...
I could also play F-19! Though the skies were always grey - given the mono screen of my computer.
The gorilla points the way
After finding and thoroughly analyzing the source code to the GORILLA.BAS example mini-game, I started programming with QBasic and Turbo Pascal, and set off determined to build my own games, particulary the ultimate flight simulator, as none of the ones I had tried truly satisfied me. I wanted better in-flight communications, and more avionics functions. Since panoramic multi-screen capability seemed not to have been standardized for games back then, I intended to make it so.
C++
After finding out that "most games are made in it", I started programming in a hybrid of C and C++. Since that point in time (it was back in the last millenium, towards the end of 1999), it has been my language of choice. I feel it provides (almost) all the abstractions I need to express myself, and also, by not providing a "managed" environment, I know I'm always free to get as close to the machine as required. There is a truly huge selection of available function libraries to choose from, but eventually, because of a severe case of NIH ("Not invented here") syndrome - my dislike for using third-party software libraries prompted the decision to build my own general framework for building games and applications...
Spine
A good method of learning third-party programming libraries is wrapping them in a form that makes them more agreeable to you, and this was the origin of Spine.
Of course it is impossible to get anywhere without standing on the shoulders of giants, so select industry-standard low-level libraries and interface standards would have to provide a core around which to wrap a consistant interface.
Spine will attempt to wrap the low-level system libraries of commonly used hardware and software platforms, such as POSIX and Win32, presenting as much of their functionality as possible through more palatable interfaces (to my personal tastes anyway), enabling more rapid application development for myself and hopefully others too.
Platforms
In recent times I've made a point to ingest all the knowledge I can from the Unix design and development environment (via Slackware and Ubuntu Linux) as well as the studying the POSIX specification. Until the last few years I was very naiive to anything outside of Windows (in at least two senses of the word).
Implementing Spine support for both POSIX and the Windows API is teaching me new things about the art of balancing the many conflicting requirements brought forth by programming, interface design and having to work with the quirks and constraints of each platform.
Home
Outside of the digital realm, I love the outdoors environment (although never see enough of it), and this prompted a move from Johannesburg, where I completed High School, to Cape Town, my birthplace, the crazy cosmopolitan city under the shadow of the looming Table Mountain...
I live in a comfy flat with fellow Tinysquishy co-artist Sarah Krüger and our three birds, Udgie, Charlie and Echo, looking up at the towering rocky cliffs of Devils peak.
Important Knowledge
These are potentially obvious things I discovered for myself the hard way.
- The hardest way is very often the best way.
- Keep only ONE todo list
- Before adding a feature to some software program - think about how it could be implemented in terms of command line options, configuration options or console variables .
I lurk about on www.SaGamedev.com when I can: [ www.SaGamedev.com ]
I am employed by geospatial data provider ComputaMaps where I get to work on two of my great passions: software development and geography - though the opinions expressed on www.spineforge.net are those of the author, Chris Rose-Mathew, and not those of any other entity, including any employer, colleague, or customer.