<<Previous Archive | Next Archive>>

irrEdit including a full lightmapper?

So after working a bit on Irrlicht last weekend, I stopped and sat down to write something funny. In the beginning I just wanted to write a nice raycaster. Maybe you've noticed already, I really love raycasters, maybe because it's the first technology which brought me into contact with realtime 3D graphics. I already wrote raycasters in lots of languages - VisualBasic, Java, Delphi, C++, TurboPascal, C.
But then I thought 'how about trying to write a light mapper instead'? So I started a lightmapper. And if you think about it, it's nothing more than an inverted ray caster. :) In short: This was the result after some hours of work:

The results are surprisingly good: The lightmapper has a very high quality (nearly no artifacts) and is astonishly fast. For the scene in the picture, it needs about half a second to calculate everything with shadows enabled.
I wrote other light mappers several times ago, which had different quality and speed, and I didn't like most of them. But this time I took a different approach and I really like the result. The thing I wrote now is just a toy of course and lots of features are missing to make it useful for users (saving lightmaps and meshes, optimizations, compression etc). The question now is: Should I invest some time to finish this up? Would people use this? Or is it a complete waste of time?



The End of the E3 as we know it

Looks like we reached the end of the E3 as we know it. Too bad, so I'll never see the this event as some friends, the webpages and magazines described it. But maybe that's not that bad.



Bolzplatz 2006 T-Shirt in action

Well, I already wrote that my Bolzplatz 2006 T-shirt arrived, you know, that game using Irrlicht as 3D engine. But I didn't show off with it. Time to catch up on this:


(Shot the photo just an hour ago. I'm the left one, in front of the Stephansdom :-) ) Yay, I really like that shirt. Thanks again for donating this to me. It's one of the first material things I ever got because of Irrlicht.



Optimizing Software in C++

Very nice article about Optimizing Software In C++. Found via Rakkar's blog.



Pusher finished

Hehe, looks like Dani finished all levels of Pusher. Wow, congratulations. I never managed to do that. :)



USA molesting Germany

Ok, so this is sexual harassment? (Video)

Bush touching German Chancellor Angela Merkel


Looks like they are discussing this 'sexual harassment' in the US. But I hope not seriously. Or hopefully only some very few very uptight Mormons. Otherwise, we can write one more time: America - home of the sexual disfunctional?



Another Raycaster

Wolf3D style JavaScript raycaster with Doom textures. Nice.



Blogging about my job

Lots of people are not allowed to blog about their jobs or employers, but as far as I know, I am. Especially since I'm no longer working in the game development area, this strange secretiveness has stopped. By accident, I just read the blog of this guy, working for Sproing, a Vienna based game development studio, ranting about his coworkers there. (e.g: "And there's always at least one artist that has never heard of the 'n to the power of 2' concept in tile & texture size."). Uh?!
I never felt the need to blog about my work, at most sometimes I am blogging about the release of a product I've been working on, but only because I like what I do and so am fond of seeing the piece of software released, hoping that people like it. And I also think I would never write about negative things I've experienced in my job; Maybe because a blog is not the right plaform to do that, starting a fight with coworkers is more constructive and more fun of course. ;)



Shoot 'em up

I can't remember the last time I played a shoot 'em up game, but those games can be fun. Remember Raptor from 3D Realms, for example? Ahh, those were times. :)
I just discovered this game. Wow! I want to play it!! :) Is there a link or any more info about it? I may be slow or a bit scatterbrained, but I think never heard of or saw that game before. And that's a pity, especially because it is being made using Irrlicht.



irrEdit development on hold

Sweating. It's hot, here in Vienna. Development of Irrlicht and irrEdit has slowed down a bit last week because of this. And for now, I'm going to stop developing irrEdit for some time. But just to be able to prepare the next release of Irrlicht. This will take some weeks, but at least there will be some really nice new features in it. Hybrid and Bitplane already did some great work. :) Nevertheless, a last shot of irrEdit before I'm switching all my free development time to Irrlicht again:

Yep, I added some small enhancements to it, for example the capability to use Windows XP widgets. Not that great, but the editor looks a bit better because of this. And maybe also because I tried to make the icons look a bit better. Repainting pixels is a lot easier than typing. Especially when it has 32°C in my appartement, even at night.



irrEdit 0.2 released

I just released irrEdit 0.2. I originally wanted to release it together with Irrlicht 1.1, but because this might take still some time and lots of people wanted to try out the new features, I did it now. Hope it is useful.
Also updated irrlicht.sf.net, wow, that was work.



Space Invaders Revived

Human Space Invaders. Great.



Lebanese Programmer blog

Just found this blog of a lebanesian programmer, blogging about what is currently happening there, with pictures. Very interesting, and shocking of course.
IMO Israel is on the best way of breeding the next generation of terrorists.



Editor progress week 14 - some more scripting

Last week I worked just a bit more on irrEdit, the Irrlicht Editor and improved various small details. I also added some more scripting functions and the possibility to insert menus and toolbar items into the editor via scripts, to make it extendable. I wrote documentation for the scripting interface which was the most difficult part :) Please take a look at it, are you missing something? It's not everything, but it should be possible to do pretty much with this already: modify everything of scene nodes and materials. Animators are still missing.
The cool thing about this is that those scripts are really useful, and not only a toy. Example:

So what's so cool about that screen shot? IrrEdit currently is not able to show the scene in wire frame mode. And the development version on the shot isn't either. So to test out the scripting stuff, I added a script which added a button enhancing the editor to toggle the wire frame mode. It looks like this:
WireframeModeOn <- false;

// toggles wirframe mode for one node and its children
function toggleWireframeForNode(node)
{
local materialCount = irrGetSceneNodeMaterialCount(node);

for (local i=0; i<materialCount; ++i)
irrSetSceneNodeMaterialProperty(node, i, "Wireframe",
::WireframeModeOn);

local childCount = irrGetSceneNodeChildCount(node);

for (local i=0; i<childCount; ++i)
toggleWireframeForNode(irrGetChildSceneNode(node, i));
}

// toggles wireframe mode for all nodes
function toggleWireframeForAllSceneNodes()
{
::WireframeModeOn = !::WireframeModeOn;

toggleWireframeForNode(irrGetRootSceneNode());
editorUpdateAllWindows();
}

Also cool: It was easier to write that script in 2 minutes than it would have taken to code it really in C++ into the editor. I hope that other people will use this scripting too and will contribute their stuff to make the editor better. :) Going to release that thing soon.



Migrating to Direct3D 10

In lots blogs I've seen rants about how difficult it would be to migrate a 3d engine to Direct3D 10. Most people agree that D3D10 is good and a must-have, but nearly all write that it would be a lot of work or even that they would have to rewrite their 3D engine almost from scratch to make it work with Direct3D 10.
Oh, come on.
The problem is not that D3D10 is that much different (in fact it isn't). The problem is that people are even calling a bunch of poorly written .cxx files which are somehow communicating with the IDirect3D interfaces a 3D engine. And that's just like calling a soap box a race car.
Real 3D engines are all about software design. Ok, speed and features are also important, but they are only secondary. If one component of a well designed software library changes, there should be no need to rewrite the whole library at all. That's the reason people invented paradigms known as OOP, abstraction, encapsulation etc.
Ever wondered why Irrlicht works on that much platforms, with that much drivers, and even with software rasterizers? Hell, it would even work with a ray caster as backend. That's because it was developed using those paradigms known as OOP, abstraction, encapsulation etc. Because of this, it won't be a big deal to migrate Irrlicht to D3D10 at all, it would only add some new features to it. Most of the changes like the removal of the fixed function pipeline, state objects and missing caps won't bother an Irrlicht user at all. The only change for him will be that instead of writing down
createDevice(EDT_DIRECT3D9);
he would write
createDevice(EDT_DIRECT3D10);
And that's it. Everything other will go on behind the scenes, and only make available more effects or better rendering speed etc.

When will Irrlicht add support for D3D10? As soon as Windows Vista and the needed hardware will be available to lots of users, it doesn't make sense for an open source 3d engine to do this earlier.



Lag

When Jesus died at the cross he needed 3 days to respawn. What a lag.



My typing speed

Uh, I think I am not a fast typist, if you consider that I'm a programmer. My typing speed is 84.13 words per minute, 355 characters per minute. What's your's?
But ok, in that test nobody wanted me to type stuff like "foo = new pTz*[sd->(x|y)];", maybe I'm more trainined to write things like that. And, the test wasn't german of course. Don't know if this makes a difference.
Update: On the other hand, "the average workplace typist reaches about 50 to 60 words per minute. The average web surfer comes in at around 30 words per minute (source)."



Scripting the Irrlicht Editor and some general explanations

I've added lots of new features to irrEdit. The most interesting is - as already hinted - scripting. I used Squirrel for this and implemented lots of useful functions and some classes, so it will be possible to create short scripts to simplify and to automate work with the editor, here is an example:

It will be possible to add such scripts as shortcuts into the menu and as tool bar icons. And later, it will also be possible to create mini games (such as enabling collision and a fps camera) and test them directly in the editor - call it rapid prototyping if you like. In addition I improved the speed of the editor - I am always using it in windowed mode and never realized that it gets a bit slow when moving scene nodes for example in maximized mode. This will all be in the next release of the editor - version 0.2.

But why all this? Why an editor? And am I still working on Irrlicht? I've received several mails of people asking this. Here is a short explanation: Sure, I am working on Irrlicht. Just check out the SVN server if you like, Bitplane and Hybrid are even more active. ;) I am creating this editor because lots of people asked for such a feature, but mainly also because I need it for a new feature I want to add to Irrlicht. Unfortunately there is currently no free good editor available which has the ability to create the data I need for this feature, so I started my own one. This will take a bit, but there is this nice side effect: A free new 3d scene editor, the .irr file format and a lot more to come. :)



Thoughts

If I continue to get flooded with cool new projects using Irrlicht like I am currently, I'll have to install a gallery software or something on irrlicht.sourceforge.net soon... hmpf.



Scripting languages - Squirrel

Lately I played a bit around with Squirrel, an embeddable scripting language. It has a very friendly license (zlib- same as Irrlicht), a nice design, cool interface, and is fast and small. The language itself looks like C/C++ code, so its very easy to actually use it. Definately recommendable.
Why I'm into scripting languages? You'll see, I think I'll blog somthing about it soon.



Debugging start position

Before I started working for my current employer where I am writing software development tools, I developed game related software for a small company, and most of the time I spent implementing and debugging the game engine for a first person shooter.
Now, in my current company more than a year later, when I press F5 to start the debugger to debug the program, my hand sometimes automaticly goes down and my fingers place over the keys 'w', 'a', 's', and 'd', the keys used to control the player avatar in the game. Strange. Should I be worried? :)



Easy Eyes - Funny tutorial

Even if you are not interested in 3d animation (I'm not, for example) it's worth to take a look at this 3d animation video tutorial for anim8or. Never saw a tutorial made that humorous.



Left Blender, went to anim8or

I played around with Blender for some time, but I really can't stand its counterintuitive user interface. So I tried out anim8or, although it wasn't made for what I want to do with it - some simple indoor level geometry to use it in the Irrlicht Editor. I already used it to create the room.3ds file used in the Irrlicht examples, but this was years ago and it wasn't very complex either. After just a few minutes, I was able to create this:

Ok, these are just some boxes pushed together in most cases, but it was very easy to do. I think I'll stay a bit with anim8or, nice little tool.



Movie recommendation - Unser täglich Brot

Unser täglich Brot (german = "Our daily bread", english page here) is a movie about industrial food production. I watched it last week and it was really great. It simply shows production facilities, blooming fields and growing farms, without doing any comment. (So it doesn't really matter that it is an austrian film, no need for localization, the other 95% of all readers of this blog will understand it as well! *g*). The pictures shown there were overwhelming - not only ugly but sometimes even beautiful - (examples in the gallery) and I was impressed by them. After the film was over, I really thought about becoming a vegetarian. But well, about 20 minutes later I already was eating a steak, shame on me. :) But at least I'm going to try to buy only 'bio' products from now on.



Editor Progress 12 and more

So much happened this week, so little time to blog. But maybe I'm catching up on all this later. I just updated irrlicht.sf.net, writing down most of the interesting news there, like the new official irrlicht team members, which is great news. Also, did I mention that I LOVE the subversion server? I LOVE it. :)
This shot of my current development version of irrEdit also shows some stuff merged into the SVN version by hybrid: Binary .x file support.

The tomb/crypt shown there is part of the DirectX 9 SDK and was read directly by Irrlicht - as usual by just on single line of code. The other new thing visible on that shot is the light icon. Invisible scene nodes like lights and cameras will be displayed as transparent icons in the next irrEdit release. This is very useful when editing scenes. It wasn't difficult to implement at all, but I think needed about 1 or 2 hours to draw that stinkin' icon. :)