Sunday, November 26, 2006

Don't tell me to put my pants back on, they're my pants, I decide when and where ok? ok.

I feel I should make posts with content, but it's been a while ... so here's a content light post just letting you know what's going on.

Working on coursework for my Game Programming Masters. In C++. The main thing I've learnt is how to use a profiler correctly, I wrote a particle system from scratch in an afternoon. It makes me wonder if I could oragnise my time this well independently. Currently I'm making render to texture work. It's not hard because there's a library that pretty much handles all the low level stuff for us.

I'm still working on Einfall albeit slower than ever. I think I managed a checkin every two weeks. All my time is spent working on this coursework as the deadline looms closer and closer. I still think it's better to use C# (especially if mono's any good now) for general game development. C++ became a little nicer to program in once I got a memory checker. But there are way way too many "undefined" areas in the language. And stuff in the language that's absolutely pointless - private inheritance?

Anyway enough words - pictures!

Also I'd love a decent unit testing framework. They all tend to suck and require a scripting language - basically because C++ doesn't have any real reflection stuff.

Saturday, November 04, 2006

Ice cubes and the elderly

This is where I am in rewriting the Einfall base. Things are going slowly but they're going :D I feel very strongly that it's important to get as game-like as possible as soon as possible. So I'm working on mouse control, something I don't have in my main Einfall branch. After mouse controls added I intend to make a simple game. Along the lines of a text box saying "Find treasure", there being a treasure chest on screen and when you open it the game finishes. I think if I can do this, a lot of the functionality for Einfalls more complicated features will be cemented.

At some point I'm going to have to revisit and redo my horrid GUI library - it's resource management really sucks.

Currently in einfall something wierd's going on with my camera.

If I have a scene, with the origin 0,0 at the top left hand corner like so:


Where A and B are some tiles. If I changed my camera position by calling. camera.Position.X += 10. I would expect:


but I get


Grah, not sure what's going on. In my code the following happens:

viewMatrix = Matrix.Identity;
// ... later on
device.SetTransform(TransformType.View, masterCamera.ViewMatrix);

Which all seems fine to me, but perhaps I'm retarded. I'm willing to work around it at the moment. In the world of C++ and OpenGL I got quake style mouse look going, with help from various internet tutorials and the gamedev irc room. Thought I'm still not perfectly happy with it.

It's been a little too long since I've touched Scheme, so I'll do another problem in that today. Also I've got to get some class diagrams up for my coursework. What else?

Oh on Friday we had a talk on XNA Microsofts new game making stuff. It's like a build system and game library tied into Visual Studio and C#. Looks extremely easy to get a simple game up and running - like mario or arcade clones. Most of the stuff is avaliable free. Oh and it's very very easy to use an Xbox360 controller on your PC - even the analog sticks are easy. Not only that but games developed using XNA will also work on the Xbox360. It's supposed to usher in a new dawn for the indie / bedroom programmer. It all looks very promising. If you want to sell you games - then of course you must give Microsoft some money :) What did you expect?

Some of the XNA stuff reminded me of the Light Weight Java Game Library plus build stuff, Xbox360 support and really cool IDE.

Finally I'm downloading boost for C++ in a last ditch attempt to get some kind of unit testing working for my C++ programs.

Thursday, November 02, 2006


Coursework's not going to badly - behold the room!

This is all done in C++ and openGL. It currently supports axis aligned planes, that are subdivided to the correct complexity on start up. There's still a long way to go. Oh the black dot represents where I've put the light.

Also the frame counter can be ignored, as the frames are locked to 1/60th of a second. I need to update the FPS counter to handle this.