A modeler with a difference.

Houdini.A few months back I had a friend demo me a 3D software package called Houdini from Side Effects software. Houdini is used extensively in film and movie circles and not so much in game industry, (which is dominated by 3D Max, Maya and to some extent XSI;) but mostly all big blockbuster films that have those great special effects that make you go “whoo”, “wow”, “cool” are pretty much made using this software. I am not exactly sure what my friend was working on, but it seems he was working an extension for the package and wanted some opinions on a custom file format. The thing that got me interested with Houdini was the way you work with the whole thing. It’s a little bit different from your conventional modelers (Max, Maya and XSI); in Houdini you basically do everything by combining operators. To tell you the truth I am not a great 3D artist. I have done most of the art-work in the game, yet my skills leave a lot to be desired. The only modeler I have ever worked with is Blender and you probably know Blender has a notorious and sometimes flawed reputation of being very difficult to use.

Houdini take a very different approach to 3D modeling. The reason I liked it is because it’s entire flow seems to be highly logic driven or as they say it “procedural”. This is an amazing concept and you have to actually see it to understand it fully. It has an interface that looks like a hierarchy of node graphs using which you pretty much model everything. The node-graphs create a kind of construction history which allows you go back and modify previous steps in a snap. This kind of flexibility means the overall productivity given by the software is unbelievable. It allows the artist to be as creative as he wants and at the same time also allows the entire design process to be non monotonous or in other words non-linear.

I would love to have a Houdini like software for designing a game, and I mean the entire game, with composition and everything. Having seen the software at work (, and being a 3D game engine developer,) made my mind race in 1000 different directions and I could see so many possibilities with the type of “procedural” flow. The creative potential could be enormous when applied to game creation. Now that I have looked at it, my guts tell me a procedural work-flow for any game design/creation/composition software will be a step in the right direction. Another very interesting aspect of this package is reuse. Besides the obvious benefits of a procedural type of work-flow the software encourages the use, or rather, the reuse of existing solutions and designs. This might sound like something out of a computer programming book, but it’s rather more subtle. Create a work-flow once, and then reuse it for several different solutions with minimum effort. That would be a game designer’s and an artist’s dream come true.

For those interested, there is a free learning edition called Houdini Apprentice provided by Side Effects.

Feed mining using Yahoo Pipes.

Yahoo Pipes.I was looking at Yahoo Pipes the other day and found the pipes idea rather interesting. I never have the time to keep up-to-date with news events (, I never have time for anything these days πŸ˜€ ). Too much news going on around the world I guess. I often do miss out on important news and usually end up reading it a day or two late, maybe sometimes even more. Pipes maybe just what is needed. I always wished for some way to sort and select exactly what I want, and how I want my news. Pipes seems to be really good at that.

Gutsy as a Gibbon.

UbuntuYesterday I had had to take some time off of the game to finish off a previous assignment. A couple of months back I was working on a GUI application which involved writing some GUI code using wxPython. It was a rather trivial application, nothing too brain taxing. Originally written under Windows using wxPython, it so happens it was to be ported to Linux as planned. Anyways, the target system was the Gutsy Gibbon (Ubuntu 7.10), so I had no option but to install it on my PC. Now, I am a long term Red-Hat fan and more recently, of course, Fedora has been my top distro preference. The Gutsy was my first experience with Ubuntu/Debian.

I had heard a lot about Ubuntu but never actually tried it before (, except that once for the Live CD version to rescue a hard-drive). After having used it for about 2 days I can tell you outright, it lives up to it’s reputation. While it may be difficult for me to say whether it is the best, but I can certainly tell you for a fact it is good. I have heard people say it is better than most other distros, but surprisingly I found no evidence to either prove or disprove that with regards to FedoraΒ  7.0. I am talking purely from a user’s point of view, and not a technical one.

The fist thing that I liked was installation. Hassle free, clean, neat. OK that probably true with Fedora also so no points there. The other thing I liked about this distro was the fact that it allows you to browse the live DVD/CD version before installation, something I wish Fedora could also adapt, but then again it’s kinda nice to have things, not really too important. The installation was remarkably fast for such a large OS and the OS has an amazingly quick booting time. Oh yes, and nice to see a distro that finally bundles a propriety NVIDIA driver which can be enabled with a single click. Setting up my PPPOE internet connection was surprisingly trivial. Not even on a Windows system was it that easy. I had to download and install a PPPOE driver for Windows, but with Ubuntu it was just click and GO! Setting it up on Fedora was a nightmare!

Ubuntu comes with the default GNOME manager which is pretty quick and responsive. The system does not by default run too many services and that could be one reason the system is fast. The default installation doesn’t install too many packages, neither are any development packages installed. No eclipse, no KDevelop, no debugger. You will have to do it pretty much via Synaptic. Not too much of a problem, but you do have to browse the Ubuntu forums to find out how to get things working, especially if you are a new user. I had to install a lot of packages to get a development environment going even though it was just python I intended to use.

On the whole, this distro is clearly made with the average user in mind and tries hard to make Linux “friendly” OS. It does a good job but still I found some things lacking overall. You still do have to fire up the good o’l terminal every now an then. Hmm…, not a problem for someone who is using Linux for about 10 years now, but then again my question is, Why the terminal?

Overall experience? Not very different from Fedora, believe me. If you had experience with one you can be just as home on the other, period. Maybe a few searches on Google is all that is required. I would put Ubuntu marginally above Fedora because it is friendlier(, and because of the internet setup thing, and the NVIDIA driver).

Oh yes, the distro never crashed on me even once, Fedora does sometimes crash. Anyways, my short stint with Linux is over, going back to Windows and the game now.

Apricot: The open game.

The Apricot game was officially announced, though the talk about the game has been going on for a long time now. I had almost forgotten about it entirely till I read the story on Gamedev today. A great initiative by the Open-Source and Blender communities on the whole I must say. I am really curious on how the team integrates CS with Blender and it’s definitely something I will be watching closely, though I don’t understand the rational behind using CS when Ogre was around. I am particularly interested in Blender-CS integration since Blender is also the modeler we are using for assets in the Doofus Game (,more here,) as well. I have particularly grown fond of it especially since the new compositing and multiple UV mapping tools were introduced. Just make it look pretty nifty, something like UnrealEd πŸ˜‰ .

Blender is no doubt a good 3D modeler. Baring its unconventional interface, it has all the necessary bells and whistles needed for full-fledged game development. What the Apricot team is trying to achieve is commendable and I sincerely wish the Apricot team, “The very best of Luck” and hope we get to see a great game soon. Three cheers for Apricot! Hip hip hooray…!!!

Parallel computing using .NET.

My recent entries have all be about news events, and this one makes no exception. In fact it is just about the recently released Parallel computing extensions for the .NET platform (download). You will of-course need the also recently released .NET 3.5 framework update for them to work (, it comes bundled with the Visual Studio 2008; also released recently). On the very same page you will also find an interesting paper titled “The Manycore Shift”, which doesn’t do justice to it’s title I must say. The title makes you think that it has something to do about parallel core programming, but all it does is just outline what Microsoft intends to do with it’s parallel processing programming model. A marketing gimmick? I’ll let you decide. Looked to me like something written to sell an idea to company execs who have no knowledge of programming and/or the concept of parallel computing. The question is, why is it even shown on a MSDN developers page?

It’s been some time since I downloaded these extensions. Obviously (, if you are a frequent reader of this blog, you will know, ) I am a sucker for any technology that has the potential to provide performance enhancements. Unfortunately I have very little time to devote to anything right now so could couldn’t do too much testing with the extensions. Still, I did manage to glance through the documentation provided (, you can find the chm on the same download page,) and one thing that immediately caught my eye was the fact that the documentation talks about “different approaches for handling parallelism”. The framework allows you to have Data and Task parallelism using Imperative and Declarative models. The docs for the extension are good; hmm…. well not great I must say. They take for granted that the reader has some knowledge about the concept of parallel computing, and is pretty thorough with basic threading. Not the most friendliest of docs , but not a very big problem for someone with an experience of MSDN docs under his belt. The only other library I have seen that allows parallel computation using many cores is Intel’s Thread Building Blocks (TBB) which I think allows Task based parallelism.

Parallel Extensions to the .NET Framework contains a few different approaches for handling parallelism in your applications including imperative and declarative models for data and task parallelism.

I have not had enough time to experiment with either and I don’t think too much will change soon , but the fact I am writing this entry is because parallelism is going to become the single most important aspect of program design over the next few years. Especially in the area of game development where hardware and conventional programming approaches are being pushed to their very limit. There are going to be processors with 8 cores soon and there has been talk of next gen game consoles having > 20 cores. Any system that is being designed for tomorrows needs, has to take into consideration parallel computing. With a good documentation at hand, the Parallel computing extensions are a great way to get your hands dirty with the concept of parallel computing. The extensions also provide some real world examples. Invaluable for learning anything. (I am sure some of you are going to be very interested in the ray-tracer example πŸ˜‰ .) Go get some!

An Open-Source marketplace.

In an interesting development Sourceforge.net has released a service for the open-source community whereby open-source projects can now commercialize their services via Sourceforge (read here). This is interesting because it will allow small open source projects listed on Sourceforge to sell services which was previously not possible. As one blogger points out, such initiative will allow smaller open-source projects to build businesses around their projects.

“It’s one thing for a venture-backed open-source startup to develop new channels. It’s quite another for a one or two-person open-source project to do so. Suddenly, however, these small projects have an outlet to the market. A global market.” – (read the entire post here.)

I have been contributer to an open source project once and I can tell you from experience, managing or contributing to a project online is no trivial matter. It takes lot of time and effort to do so. I have great appreciation for these guys who work for free, open-source projects and who get almost nothing in return. Sourceforge’s direction in this regard is a welcome initiative indeed.

No more spam please!

The past couple of weeks has seen too much spam thrown this way (I mean on this blog). It won’t appear on this front page thankfully, but it’s now getting really annoying. I can’t understand why people are trying to spam the hell out of this blog. I get at least about 3 spam pingbacks a day. On really bad days it can go up to 15. The spams are usually something like this “We found this great post here… Please read …” which actually links back to the poster’s/spammer’s site or I don’t know where and the site has God knows what all nasty stuff. It is my request to anyone reading this blog, please don’t send spam this way. If you want to say something you are welcome to comment, of course, on the topic.

Nintendo with an interesting Operating System.

Nintendo has released an Operating System named ES (read translated version, original Japaneses version ) under an Open Source License. What the whole idea is behind having an OS is still unclear to me. If they were planning on having an OS for their consoles, there are other more attractive alternatives like Linux. Sony has done something on these lines by having Yellow Dog Linux run on their PS3 consoles.

The website is pretty vague and doesn’t delve too deeply into what the OS is intended for, but it’s clearly something too keep and eye on. Maybe it is just some research project. Maybe the company is still toying with the idea and wants to see what the response from the community will be, who knows.

The OS itself seems pretty interesting. The kernel seems to be written in C++ and it runs natively on x86 and QEMU. They have a port of SmallTalk programming language called Squeak. I am not sure what the intension is really, will it be used for game development on that platform? I guess there must be some way to do C++ programming as well, considering it’s x86 compatible.

A helmet that can read thoughts?

First a vest that lets you feel the game and now a helmet that reads minds! Holy c**p! What’s next? Really interesting indeed, though I am a little bit skeptical it would be that easy. Even the article mentions the fact that it would be really difficult to isolate specific brain signals required for flawless character movement inside a game.

Let’s say the report is based on fact, does such a helmet really enhance a game overall? It does brings up some rather interesting questions. Would such a helmet really add to a player overall game experience? For example, my thoughts are a jargled mess when I am playing a FPS game. If a helmet would translate that into player actions, the character would behave really weired indeed πŸ˜€ .

Then again I like to get sweaty palms during fast paced action. Just sitting idle and thinking about hacking and slashing opponents is not something that sounds too appealing. Hey, I think such thoughts about people I hate all the time πŸ˜‰ , that’s not something new, neither does it sound interesting. OK maybe I am kidding, but really, would such helmet allow for greater player immersion? It might, maybe, or it might not. Then there are other issues as well; like response and reactions times which are integral to overall game mechanics. On the whole, I remain a skeptic about such a “mind reading” helmet.

Visual Studio Express 2008 – First thoughts.

It’s been about a week since I downloaded Visual Studio Express Editions and I have done some fair (not too much) bit of coding using VC++ Express and not so much with Visual Web Developer. Didn’t touch any other editions as yet, so I am going to be very C++ centric with this one. Generally, the UI in new Visual Studio Express has become more responsive. Now don’t get me wrong, I am not saying 2005 was unresponsive but sometimes it took judicious amounts of time to open Dialog boxes. For example the Configuration dialog box took some time to come up initially, I mean the first time it was brought up, so did the search dialog. No such problems with this version, cool, that was a nag!

The compiler speed has increased, not by too much but it has. I must say I do use the /MP option a lot, but I still generally feel the speed of compilation is a little bit faster. Maybe on a faster machine the compiler could be a magnitude faster, but I still run a 3GHz 2 core machine that is 2 years old now. It’s always nice to have a faster compiler, especially if your project takes about 15 min to compile from scratch and is heavily templatized!

On the other side I have had crashes with the express editions, 4 times to be exact. Considering it’s been only a week, that’s just too many times I must say. Not much has changed since 2005, even then, I must say the express edition is pretty good. It does a lot of things not easily attainable in other IDEs and C++ compilers. People have complained about not having a resource editor; it’s not too much of a hindrance to a game developer like me who pretty much has no need for a resource editor. In any case there are a lot of free resource editors around that you could easily use to edit your resources, or just use wxWidgets!

On the whole the express edition of C++ is good. Hey and best of all, the express editions are free, should we even be complaining!