• Click here for a list of all my projects.
  • Click here for Touchlib info. Source code here.
  • Click here for our multitouch community site.

Thursday, July 20, 2006

Game engines are a bitch

Man, making games is just not like it used to be back in the 2D days. I'm constantly amazed at long it takes just to get features which are pretty much standard these days working. In the past, the big challenge was figuring out how to draw stuff on screen. Now I've spent probably a week just deciding on what collision detection library to use and whether I wanted to go for full blown physics or not. I settled on simple collision detection because the behaviors I want to script right now are pretty simple and I don't want to battle with the physics engine to get things to function how I want. In the future I may try to use OgreNewt or OgreOde for physics. It would be neat to try to do something like Lucasfilm is working on for their indiana jones game where they mix bones animation with physics and AI. Emergent gameplay.

Right now I am trying to get Opcode collision detection working alongside Ogre. I finally was able to compile the example files so I should be good to go now.

BTW, it seems the guy that made Opcode also works at Novodex and is working on his own game on the side. The game is here and is called Konoko Payne. It's a rip of the models/art from Oni, a game which I really liked for it's combination of FPS action and hand to hand combat. It looks like he's already got an impressive amount of stuff working already (even a playable demo). In it's current form it's a lawsuit waiting to happen, but if he could get some original artwork in there (and storyline, etc), he'd have a great game on his hands.

So far on my game I have Ogre3d running and linked up with GameMonkey script for controlling GameObject behavior. I'm able to write scripts to move objects around, set up the models, etc.. Collision detection and Sound are my next big things. I'm not planning on any advanced physics or networking yet. Nor do I want to spend a lot of time on shaders or special rendering techniques. Once I get collision detection working I should have all I need to start pumping out some simple games. I'll mess the rest of that stuff later.

Monday, July 10, 2006

Iron Chef of Music

I participated in the Iron Chef of Music last night with some of my fellow Buzz people. It was nice to work on some music even just for a couple hours, since I haven't done any for a while. Here's my entry. I thought it sucked, but I guess it's not so bad for being limited to 2 hours and only being able to use one sample (which unfortunately I don't have the link to right now) and no synths . The drums had a lot of background singing in them, but I was able to filter out most of it. A violin sound in the sample formed the basis of most of the pitched parts and Doppelmangler helped out with the rest. Doppelmangler is like my secret weapon since it can turn a sample into pretty much anything with a little work. There's a lot of loopholes to the 'only one sample' idea.. A short looped section of any sample can become an oscillator for a synth and it's still technically 'a sample'.

Stuff

Hello all. Some of you may be wondering where the next version of claymod is - I will post a small update soon. Just some fixes at the moment. BTW, I also saw that Blender may be incorporating the Sculpting tools of Sharp Construct. Check out this video Here. This is exciting because I am using Blender right now and it would be nice to have everything under one roof. Right now I am focusing on another area which is getting a scriptable game engine running. I chose GameMonkey script and Ogre3d for my game engine. Why choose Ogre when I already know the Irrlicht engine? Well, it became clear to me when developing Claymod that Irrlicht doesn't support bones animated models and normal mapping at the same time (which was my whole reason for developing claymod). It would be possible to add support for it, but I didn't really want to spend the time doing that. Ogre also has support for a lot of things that irrlicht doesn't yet, like full screen compositor effects, better shadowing techniques and in general is more up-to-date graphically and less limited. Irrlicht still beats Ogre in terms of ease of use and easy to understand design. It also provides it's own collision detection and GUI routines and is evolving rapidly. They are both good engines, so it's a difficult decision.

Anyway, back to the scriptable game engine. A thought I had a few months ago was that the process of making a rich action game could be greaty simplified with the right kind of scripting. An event driven model might be ideal. For example, an exploding bomb may produce a 'damage' event and a 'fire' event. Any objects near the explosion would recieve the events. If they are flamable they would set themselves on fire from the 'fire' event, otherwise they would ignore it. The player may produce a 'trygrab' event to try to pick something up. If an object can be picked up, it may produce a 'grabbed' event that the player can recieve and then the player will pick up that object. The goal is a de-coupled design that could possibly allow common behaviors to be shared between objects.

Another advantage of scripting might be the realtime testing of your scripts and levels without recompiling the game engine. It would be great if you could drop down a couple enemies in a spot and press play right away to test it out. This could be really helpful when designing and debugging new game objects.

Scripting could also allow for a more bug-free experience. In addition to providing a well tested interface to the (more dangerous) game code, scripting errors could simply be ignored instead of interrupting the player's experience.

GameMonkey script is nice to me because it shares a lot of similarities with Actionscript which I already have a lot of experience developing games in. I'll post more about this in the future.

What type of game will I make? For now I want to make something easy to get more acquainted with things. I started making some stuff in Blender, which I am finally starting to get good at (there's no turning back and using a real 3d program now ;). Here's a guy I made here. I'm thinking of some kind of soccer type thing.