Tuesday, February 28, 2006

We have released our Bomberman clone! One minute before deadline:) It's not fast, it's not perfect, and it's certanly not bug free. But considering that it was put together in more or less one weekend we're very happy with the result.

You can check it out and download it here.

You can take a look at the work of the other project groups here.

Monday, February 27, 2006

I've been working quite hard with the bomberman clone this weekend and we're getting there. I've done collision detection, physics (ODE), lighting, sound, and a some of the game play.

The engine we are using had some support for collisions with static geometry and ODE objects. But for dynamic objects like crates, bombs, players and powerups, I had to do it myself. I went for simple boundingspheres and sphere-sphere tests. For the bombs I'm using simple line segment-sphere tests. Simple and efficient.

Now there's only characters, AI and some game play left. But thats Jespers job so now I can focus on the other projects.

Friday, February 24, 2006

The bomberman clone have to be finished till next Wednesday. Way to little time. Especially since I have projects in the other courses to finish as well. And there is not even two weeks till the exams. I have no idea how I'm going to make this!

Anyway, I've done some more work on the particle system. Now it can do a lot of stuff. A lot more than we need for the game, so you could argue that I wasted some precious time there. The good news is that I can port it to my C# engine in no time.

The screens shows the system in action. Pretty nice explosions with fire and smoke.

Thursday, February 23, 2006

Tonight I enhanced my particle system in the Python engine we're using for the Bomberman clone we're making. In the screenshot you can see my first attempt to use it for the bomb explosions. One of the most important parts of the game:) Pretty neat!

Tuesday, February 21, 2006

I and Jesper are making a simple Bomberman clone in 3D as the mandatory project in the Game Engine Technology course. We put up a very simple project web page here (in swedish). You'll find a list of all this year's projects here.

Thursday, February 16, 2006

I threw together a lame particle system in Python for the Game engine tech course. I can't even count the number of times I ended a statement with ';'! Not that Python cares but it's not supposed to be there:)
I am using far to many programming languages in parallel right now. I wish they didn't try to teach us every damn language in the world at uni ;)

Game engine technology: Python
Web programming: Java, Perl (and the zillion markup languages that don't count)
Computer organization: MIPS and x86 assembly
...and ofcourse my engine: C#

I better improve my syntax switching skills...

Tuesday, February 14, 2006

I have been working on the GUI system for a few days now. It's not complete, but I have what I need for now so I put it aside temporarily and started working on the terrain again.

I added simple multi texturing: one base texture stretched over the whole terrain and one tiled detail texture. The result is not as good as splatting but I think it looks suprisingly good. I guess I'll have a look at splatting when I have shaders implemented in the effect system.

I have a lot of stuff to do in school so guess I need to put the engine aside this week and get some 'real' work done ;)

Friday, February 10, 2006

The GUI system is slowly emerging and today I added panel controls. All controls are skinnable. They are composed of a set of pieces that are read from a skin texture. As you can see in the screenshot I can set alpha and color individually. The nice drop shadows are slimply an alpha channel in the texture.

Wednesday, February 08, 2006

I have begun coding a GUI system for the engine. The first thing to be completed is ofcourse text rendering. The fonts are simply textures created by this nice little tool and each character is rendered with a textured quad. Using a single font I can render texts in different color/alpha/size and use different aligning.

And yes, there are text in the old screenshots too but I cheated using D3DX fonts;)
I'm trying to keep things API independent, remember?

Monday, February 06, 2006

I like Perl.

Normally I'm an OO purist. I also favor the C-family-style syntax. This is why i love C# and dig C++. But perl is fun. Just fun. And also quite brilliant.

Consider the UNIX command cat. It reads from standard input OR from files specified as arguments and outputs the content to the console.

In perl you could implement a basic cut command like this:

foreach (<>) { print; }

That's it. Try to do the same in C/C#/Java/whatever and you'll end up writing quite a few lines of code. Another example: the UNIX command sort.

foreach (sort <>) { print; }

Bloody brilliant. The cool thing about perl is that it makes easy stuff really easy. I wouldn't use it to code larger programs but for simple suff it's amazing. Also the code tends to get quite hard to read so it's not something I would use in team development:)

Again, coding in perl is fun. When you have tried the basic stuff it almost becomes a sport to write as little code as possible. And as you can see, perl is good at doing a lot of stuff in few lines of code.

Sunday, February 05, 2006

I just added texturing to the effects system. Nothing fancy, but at least my test scene looks a bit nicer :)

At the moment I'm taking a course called Game Engine Technology. Game physics is a part of the course and today I and Jesper (who also is coding a nice engine called Milk) played around with ODE (Open Dynamics Engine). In the course we use a simple game engine written in Python and we used a wrapper for ODE called PyODE. I'll have a rant about my thoughts on Python in another post, but the short story is that I'm not very fond of it.
However, using ODE worked like a charm and we got some nice ridig body physics up and running in no time since most of the stuff were already there in the engine. It's amazingly fun to throw boxes around and watch them collide and respond in a realistic (well, more or less) manner :)

Thursday, February 02, 2006

Today I started working on an effect/material system. It's inspired by the most common effect formats, CgFX and DirectX Effects. Think of an effect as a kind of high level shader. It encapsluates the whole rendering process for a specific visual apperance. An effect is devided in a set of techniques. A technique is a way to render the desired visual effect. A technique is then devided into passes. This is indeed very flexible. For example, imagine a human skin effect. Close to the camera the effect uses a technique that renders using costly vertex and fragment shaders and/or multiple passes that gives a very high visual quality. Farther away, the effect uses a cheeper teqnique with a single pass and cheep shaders at the cost of visual quality. But since the camera is now far away from the object the loss of quality will not be noticeble. All this is encpsluated in the effect.

The screenshot shows a simple test of this effect system. The sphere is rendered with a single effect that uses a two-pass technique. The first pass just sets the diffuse color to red and fillmode to solid. The second pass uses a yellow color and wireframe fillmode and depthtesting disabled.

So far it's all very simple, but now I have something to build on =)

By the way, I downloaded the new IE7.0 beta and kind of liked it.
Until I tried to edit my blog that is. It simply won't work. Luckily there is firefox=)
But it's still in beta so I guess I shouldn't be to harsh...