Busy, Busy, Busy.

Lately I’ve been busy. I am getting close to the end of my degree and I am currently struggling to get projects to work before they become due (I have 6 ongoing at the moment). Despite that, I have made minor progress with both my ray tracer and my Asteroids game. Videos, screenshots and other goodies follow.

The ray tracer now has refraction and soft shadows. I am using roughly the same scene as both Evil Steve and Phantom have used in the past for the refraction. Mine is brighter for some reason.

soft shadows
The soft shadows image took an embarrassingly long time to render, about 45 minutes using a single core on my machine. However, it was using the relatively insane value of 32 samples for the area light (which is similar to 323 small lights). It looks exaggerated I think, but still better than the same scene without soft-shadowing. I’ve found the more moderate 8 samples looks fine. However, the soft shadowing doesn’t look so good in more complex scenes… yet. The refraction video also took a long time to render (a few minutes per frame IIRC), most of which was spent on the 64 green spheres. Such long render times really reinforce the need for some kind of spatial partitioning in my ray tracer (which I have so far avoided). I’ve been researching and apparently KD-trees are the method of choice. I’ll see when I get some time between other projects whether I can get it to work. I have a folder full of screenshots I’ve made; some good, some hilariously bad, some memorable for other reasons (like the above: I still can’t believe it took 45 minutes!). I might upload them into some kind of gallery when I get time, or when I’m done.

My Asteroids game took a huge leap closer to completion thanks to the help of Gamedev.net’s dbaumgart. He made some beautiful UFO images for me, so media wise I think my game is finished. I still need to touch up a few parts of the code before I will release it though, but under my current schedule I don’t know when I can get that done. I hope it will be soon though, yet at the same time I am loath to rush it because I’ve waited this long either way and I might as well release the best game I can. I’ve had good feedback from a number of “beta testers” who I have conscripted. Here is a short video of it in action. It is a pity that the poor quality doesn’t show up how nice the UFO is, only how awful I am as a pilot :).

I also began the process of porting my Asteroids source to other platforms. This (hopefully) will be a relatively easy process as I was fairly careful to keep the source free from platform-specific dependencies. I’ve been playing with scons (replace make files with python source), which was extremely easy to setup and use. I managed to get my program to build on Linux, but I’ve had some runtime difficulties I have yet to get around. Part of the problem is that I split the project in two, I have a “renderer” (an extremely fancy word for what is essentially a thin layer over OpenGL, SDL and SDL_ttf) in a dynamic library. I have a null pointer in the library that I don’t have on Windows. I am hoping it is a minor error, because I haven’t really had the time I need to even run it in a debugger, but I am thinking it might be easier just to merge the DLL and executable source together (luckily the majority of my application isn’t aware of the DLL, only a few simple factory functions which make graphics objects). I have yet to even try build it on a Mac (I am fortunate to have a Mac in the house to build and test it myself). I have never built more than simple one-file command line programs on Macs, so I have no clue how to create those universal binary things I hear about, or how dynamic libraries work there.

I played I Wanna Be The Guy for a while, got not very far even on “medium” mode. It is designed so every screen seems impossible. It is quite fun though, but what is much better is watching other people in pain playing it on Youtube. Top notch entertainment. It also helps that I am a big fan of 2D games. Pity it crashes so much. I’d like to try finish it some time, but I don’t think I have the patience required.

In other news: Java reflection is a lot of fun, if verbose. Curse you statically typed languages! Ruby made it much easier. I’ve made use of it in both my projects that involve some Java. I’m probably over engineering to some degree, but I don’t really care that much. It is times like these I almost pity people who think C++ is the best programming language.

Sentence of the week: “When I get time”…


One Response to “Busy, Busy, Busy.”

  1. Comment Guy Says:

    My sentence of the week: “When I stop wasting time”…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: