Hybrid Multi-Agent A.I. for Tactical Games

November 18, 2009 at 8:21 pm (Computer Science, Games) (, , , , , , , , )

As part of my Intelligent Systems course in my Masters program, I am working on a project that joins two intelligent systems together. I won’t post many of the finer details of the project (check out my conference paper once I get around to writing it), but it is a rule-based and genetic algorithm hybrid.

The idea here is not create a “super-agent” that can win at games, but more to simulate personality in NPC characters. I’ve yet to generate a decent set of experiment results, but things are looking good so far. I have my test software written and I’m about to add my genetic algorithm library to the project to see what happens.

Permalink Leave a Comment

Shared Memory Parallel Ray Tracer using OpenMP and CUDA

November 18, 2009 at 8:14 pm (Computer Science, Graphics) (, , , , , , , , )

So since I’ve been doing my Masters in Computer Science at Dalhousie, I’ve been working on some neat projects. I’ll post them separately since they’re in separate research areas though.

For a parallel algorithms course, I’ve decided to play around with the ray tracer that Adam Stirtan and I created for an undergrad project. Right now I’m intending on using OpenMP to parallelize the ray tracing aspect of the program. If I have time left over then I’m hoping to use NVidia’s CUDA to get the GPU on my graphics card to work on the post processing shading effects. I’ve gotten some “hello world” style code compiled and running so my next step is to dig in a bit further with that and see what I can come up with.

Blind insertion of OpenMP to a ray tracer

Last night I made a simple stab at using OpenMP (Shared memory API for parallel programming) for using multiple threads for ray tracing. I wasn’t expecting much since I was just blindly adding some annotations to the project, but as you can see from the image it looks kinda neat. I’m assuming it chose to use 4 threads (since I didn’t specify a number).

Getting back to CUDA programming, trying to get a project set up isn’t really a fun thing. Thankfully somebody out there has made a project creation macro:


Using this, you can create a project that has the NVidia extra build step. This a crucial aspect of writing a CUDA program as you have to run it though an NVidia program so it can parse out the extension keywords. On that note, you have to rename anything using the C for CUDA extensions to a .cu file. Since this will then turn off your syntax highlighting I suggest you edit the text editor options so that the .cu extension will be opened in a C++ context. It’s really easy to do but if anybody is actually reading this and doesn’t know how, just post for help.

For some initial test code to make sure your program is compiling and running properly, I suggest you check out this page:


That’s all for now.

Keep fit, and have fun

Permalink 1 Comment