It’s true, trueSpace is indeed free.

Update: Microsoft has taken down the Caligari website and terminated trueSpace. Don’t bother looking for it, trueSpace is dead. If you are looking for a free powerful 3D modeling package, try Blender 3D.

I couldn’t believe it at first, but after the acquisition of Caligari, Microsoft has released the fully-featured 3D authoring packagetrueSpace for free. Simply put trueSpace is a 3D modeler and seems a pretty good one looking at the features it supports. It may not dethrone Maya or Max anytime soon, but for nada it packs a lot of punch, especially if you are an indie game studio or a budding 3D artist and can’t or don’t have the finance to invest in something along the lines of the top modelers mentioned above. I am not saying trueSpace is the best, quite frankly I haven’t even given the package a complete look through as yet. It takes a considerable amount of time and a sizable investment in effort to fully grasp any 3D authoring package. Well, it takes probably a lot more before you can become truly productive at it. trueSpace is no different. I haven’t personally gone and modeled anything with it as yet, nor do I currently have the time to invest in such an endeavor (maybe after the game ships).

However from the looks of it a free trueSpace seems to be something that can’t be ignored. The next thing I wanted to look for is whether the modeler could be integrated with a dev cycle for a game. That would require the package to have some sort of scripting system and/or allow an SDK, using which custom export scripts and engine functionality can be integrated with the authoring system. I was browsing the website and from the looks of it, C++/C SDKs and Python scripting is in fact offered by trueSpace. Again I haven’t had a good look at it, but the fact that it’s there should be a good enough reason to have a look at it if you are interested. The most important factor in selecting any authoring package is the availability of tutorials and that’s also another reason trueSpace stands out. The documentation and the video tutorials are also made available along with the package. Yes, I know it seems too good to be true. Video tutorials are invaluable while learning any 3D modeling. I remember years ago it was Blender video tutorials that really got me going with Blender. While my 3D skills leave a lot to be desired, most of the current game wouldn’t have been possible without those tutorials.

All of the above points make trueSpace a serious option to consider if you are a beginner or an indie game developer. While not the best, trueSpace is very attractive given the feature set and the price (which is 0). To be fair, I have only given the package a fleeting glimpse and that’s not how I would like to evaluate trueSpace, or for that matter any 3D package. So make your own assessments about the strengths and weaknesses of trueSpace by using the package yourselves. I would recommend having a go at the videos and tutorials first.

Doofus gets a dose of Optimizations.

Ah! It’s the optimization phase of the project and I am knee deep in both CodeAnalyst and NVIDIA PerfHUD. As far as memory-leak testing goes, most, no all of the memory leak testing is done by my own custom memory manager built directly into the engine core, so no third-party leak detectors are needed by the game. AMD’s CodeAnanlyst is a utility that is invaluable when it comes to profiling applications for CPU usage and the fact that it’s free makes it even better. NVIDIA PerfHUD is probably the champion among graphics performance utilities and which, I think, is vital when it comes to bullet proofing any graphics application for GPU performance. Too bad it doesn’t support OpenGL yet, but the O2 Engine’s renderers mirror each other almost to the point where an performance enhancement under the Direct3D renderer is almost similarly experienced under the OpenGL renderer. I would have really liked PerfHUD to have supported OpenGL though. There are some issues under GL; like for instance, FBOs under OpenGL perform a tad bit slower than Render-Targets under Direct3D (on the same hardware), which I must admit has left me a little dumbfounded. Maybe it is just for my GPU (yeah My GPUs are a bit old I must say,) or maybe the drivers are at fault but I have noticed a performance variance between the two even after considerable experimentation and optimization. It would have been good to have a utility like PerfHUD to probe directly at the dra calls and/or FBO switches. I am trying my luck with GLExpert, but I am not there yet. I must however say that GLExpert is nothing compared to PerfHUD.

Code Analyst
AMD CodeAnalyst

Doofus running under NVIDIA PerfHUD

Wanted: More than a simple Add/Remove.

There are some flawed assumptions about Windows vs Linux debate and one of them is, “It’s easier to install applications on Windows than it is on a Linux distro”. A few weeks back I was attending a seminar on some rather uninteresting technical presentations. That’s besides the point, what really is the point is, in one presentations the speaker actually stresses on the fact that Linux is difficult for mass adoption because it is very awkward for a new user to install applications on Linux. That’s laughable, because it’s clear the speaker has not done his homework nor has he any experience with any modern Liunx distro. This archaic argument has it’s roots at the time when you had to compile almost everything under Linux to get it to work. Although *NIX veterans may still do the same, for most of us times have changed. On the contrary I have to argue otherwise. Installation on Linux is slowly becoming easier, in fact in some cases it’s almost trivial. Unfortunately the presentation did not offer a Q&A session (strange I know), else I had some “really good questions” for that particular speaker. Anyways, I have my blog to rant about them ๐Ÿ˜€ .

After using Ubuntu for about 9 months now, I have grown to be extremely fond of the Synaptic package manager. While there are other package managers under other distros, (and I don’t want to belittle any of those) what would really be interesting to see is something similar on other operating systems, maybe Windows too. For those who have little clue as to what Synaptic does, and for the windows (only) users; Synaptic is Add/Remove Windows feature on steroids. It takes a step further in installation features and combines some very crucial functionality that is not present in the normal Add/Remove. Contrary to what was said and is popularly believed, Synaptic is so much more than a simple add/remove. It manages download, setupย  and a full install of an application including the automatic setting up of dependencies of an application or a library with a click of a button. It’s almost a no brainer. All available applications are listed and categorized on distro servers and you can use synaptic to query and search them as required.

Synaptic package manager.

One of the greatest strength of Synaptic is probably the categories and filters it allows on installed and installable packages. It allows the user to browse through all packages in a particular category, thus enabling him to see a variety of similar or related packages, before he decides to install or remove a particular application or library. To a veteran debian and/or Ubuntu user this may seem trivial, but it is not. When you consider other platforms like windows where such facility is unavailable, hunting down applications often means a trip to Google. Now there is nothing wrong with that. However very rarely does Google results throw up exactly what is required, unless of course you are an “absolute nerd” at search-engine queries or, you are extremely lucky. Often times it’s through a lot of query refinement do you get down to results you require. Queries like “comparison of paint applications”, “best photo editing software”, “list ofย  best mp3 players” are all to common. This however doesn’t always give you what you are looking for and may not provide you with the best possible alternative out there. For example, a query “best photo editing software” returns link to reviews, and it’s only after some refinement do you really get to software download. Under Synaptic, it’s just a matter of simple search. I did a “C++ IDE” search under synaptic and it returned me a list of IDEs available in a snap. Everything from Code::Blocks, Eclipse, Anjuta were listed. All I had to do was right-click install on the one I wanted and Synaptic took care of all the dependencies and every other headache.

Synaptic is interesting but like most problems with Linux, it is distro specific. You will find Synaptic on most Debian based distros. Ubuntu takes it a step further and also features an interactive separate Add/Remove feature where the user can browse entire categories of applications with a brief explanation on each of them. (I am not too sure if other distros support Synaptic or how far it will work with other packaging systems like yum and others). However there is an interesting project in the works called PackageKit. While it looks very much like Ubuntu’s Add/Remove feature it also works on other distros, and infact works towards “providing a common set of abstractions that can be used by standard GUI and text mode package managers”.

There are a lot of software applications out there. So many in fact that you would probably miss out on most of them. You would never know they existed because you never go out and look for them and even if you did, you would probably miss out on most. Which is exactly why applications like Synaptic and PakageKit go a long way in advertising these apps. I would say that such functionality is probably an feather in the cap of distros like Ubuntu and Debian. It actually expands the distros by giving them a reach beyond a normal CD/DVD install and frees the user from the shackles of “using only what the OS provides”.

Opera is impressive, but back to Firefox.

Ah for the last 4 days I have been using Opera, and that’s after a pretty long time. I must admit, for the past 5 years I have been been a loyal Firefox fan. There was a time when Opera used to be my browser of choice, but somehow Firefox managed to squeeze it for the number one position. However the recent hype of Opera 9.5 was just enough to pep my interest in the browser once again.ย I decided to give the browser a try and found Opera to be surprisingly good. The interface is more streamlined and the browser gives a lot of screen real-estate to work with. No doubt other people have also mentioned the very same points.

Firefox 3 was also released about 2 days back so one can’t help but compare the two. Actually I have been using Firefox 3 betas for the past couple of months so the final release did very little to add to what I was already using. True to it’s tradition Firefox 3 has been an excellent release, at least for me. Firefox 3 also boasted of considerable features that were added in this release, and I must say it does deliver on them. Oh yes, and if not less, there was an equally amount of hype surrounding Firefox 3 release.

So what’s the truth? Which browser is better? There are things both browsers have and don’t have. I would have loved to have a seed dial for Firefox by default. I know there is a plug-in for that, but it’s such a nice feature to have. On it’s part, Opera should have something like NoScript (by default). That thing has saved me countless times before. Then again Opera’s Dragon Fly is equally impressive. Firefox also has a lot more plug-ins and using Opera just makes me miss all of them.ย  I am not too big on themes, so it doesn’t bother me one way or the other. Apart for these and other small things, most of the hype created around the release of both browsers is largely unwarranted. None of the two browsers bring in revolutionary changes, and none of the browsers are deficient in any particular area.

For me the most important point for adopting any application and particularly applications that I tend to use on a daily basis, is “productivity”. It’s “how fast can I adapt” or “how fast I can get things done”. It’s more about “how much do they nag” and “how annoying things are while using them”. That’s why I generally take a considerable amount of time in deciding whether an application is worth the effort to switch to and/or adapt to. Browsers absolutely fall in that category.

I guess most of the people who surf the net, of-course myself including, are similarly fanatical about the choice of browsers. While Opera is going to stay on my box for some more time, Firefox retains the numero uno position as far as I am concerned. Not because it is revolutionary or because it is the best. It’s because, well, I am simply used to it!

FL Studio Rocks!

All of this blog has been tech stuff and more tech stuff. People must be wondering what is it I otherwise do. Actually as the story goes, earlier when I was working (, not on gaming but on my other programming job), my hobby used to be working on graphics stuff and modding other games and engines. Funny, my hobby became my job now that I am working on this game, so it was time to take up another one (, hobby that is). What’s the next best thing? Creating music, of course! ๐Ÿ˜€ It so happens I ran across this software called FL Studio 6 months or so back and started fiddling with it and was soon hooked.

I was using the demo for quite a while and I was really impressed by the whole product. I guess impressed enough to go get the full producer version of the software. For the clueless, FL Studio is a digital audio workstation (DAW), meaning you can produce music with it. OK, I am still a noob at the whole thing, but even then the software allowed me to create some really good tunes pretty easily. The work flow is not trivial, but you can figure your way around after reading tutorials and following online video-tutorials. I am not a good music composer, not by any stretch of the imagination, yet the software allowed me to create pretty decent tracks far too quickly than what I had ever thought possible.

The program has near infinite options for authoring audio, most of which I am completely clueless about. Unfortunately I haven’t got too much time right now to look at each and every one, but I hope I can get around to understanding them eventually. To someone who has never seen FL Studio, the interface might look intimidating. The amount of nuts and bolts on the UI makes one think that it would be rather difficult to get things working, however looks can be very deceiving. While not a walk in the park, a few searches on the internet will have even a total noob creating great audio loops in no time. All you really need to do is visit Youtube and there are more than enough tutorials for even advanced stuff. The FL Studio site itself has more than enough vids to get you started.

FL Studio

I kinda liked the software right from the word ‘Go’ and, yes, I am a sucker for music. Unfortunately all my earlier attempts to produce anything audible, with any other software (, or for that matter hardware) could only be categorized as ‘noise’. FL Studio just seemed so intuitive. True there are other, more powerful products in the market, but I think very few can stand up to FL Studio given the price point, not to mention the lifetime free upgrades the product offers. Cool!

A look into Code::Blocks.

Code::Blocks.This is my second entry on Code::Blocks in the past couple of weeks. I had earlier commented on the release of the IDE but refrained myself to get too carried away and thus, purposefully, didn’t get into details at that time. The reason? Well, we all know how deceptive first impressions can be, especially about something like an IDE. IDEs can be complex beasts and it can take some time to work things out with them. However, Code::Blocks has been mostly easy to adapt to, at least for me. This in part due the fact that it mostly mirrors how Visual Studio works, and I work on that beast 98% of the time. So adapting to Code::Blocks was not too difficult except for minor differences.

First of all, Kudos to the Code::Blocks team. They have done a great job at bringing us this editor. It’s no mean feat, but they seemed to have pulled through all odds and that does indeed deserve a praise. It’s true I was eagerly waiting for the Code::Blocks release for some time now, and if you have been reading my blog, you will have seen me mention the IDE a couple of times before. To cut the long story short, I am lazy! I hate writing UI code and Code::Blocks (wxSmith) just does much work for you in that regard and yes, I always tend to use wxWidgets for most of my cross-platform UI projects. I wish this release could have come in a year earlier, when I was working on a C++ project which involved using wxWidgets for the UI, would have saved me a sh**t load of trouble.

Even though the IDE auto generates UI code, it’s surprisingly clean. Most editors will make a mess of code generation, but not so with C::B. The UI code is generated into pure C++ files (.h and .cpp) which you can continue editing like your normal text files provided you don’t insert code into the blocks C::B uses. Reminds me of the days I worked with Visual Studio 6.0 and MFC. If I am not mistaken VC++ 6.0 used a similar method for code generation. You can even move the code around and C::B is correctly recognize it, yes, provided the blocks are kept intact. A good thing is the fact that you can save the resources as .XRC files, which I tend to use extensively with wxPython. For me, Code::Blocks could very well become the de-facto editor while working with wxWidgets. To bad it doesn’t allow native Python support. That would have been great indeed.

So, besides having a good integration with a UI builder what more does C::B offer? Other than the fact that it can be used for UI development, can it be used for (, maybe other) serious C++ development? Yes it very much can be. All said, my main interest in IDE was not how easily you could build UI. My main interest was too see if C::B could be used for serious day-to-day development and how well it scales to full scale projects. There are several other IDEs that look equally impressive, until you actually try to get things done with them. So what’s the story with C::B? Does it live up to the standards of other professional IDEs? Well, besides some niggling quirks C::B seems to be pretty good for full scale projects. I always have a habit of building, a hello world, a “hello notepad” project with any new UI library I encounter. It gives you a fair idea of the capabilities of the UI. I tried the same with C::B and was pretty happy with the overall experience.

Now for some issues I had with the IDE. First and probably the most annoying was the fact that short-cut key assignments are very different from other editors, at least the ones I use. Also the fact that the IDE doesn’t allow me to set shortcuts like Ctrl-F5 or Shift-F5 is somewhat of a hindrance to quick acclimatization to C::B. That’s one serious nag! The other thing I noticed was the fact that the debugger can get really slow on Linux systems, though I must say it happened only twice for me and is not a frequent occurrence. On Windows the Visual Studio 9.0 directories got messed up when I installed VC 9.0 after I had installed C::B. C::B doesn’t pick up the VC 9.0 directories when you upgrade or remove older express versions. Not a problem though, I did managed to manually set them in the Options section. The debugger is not as extensive as others, but I guess you can generally live with that by adding “watches”. Most other issues, or for the matter of fact even these are rather trivial, I suppose.

OK then, how does the IDE handle projects across platforms? I found almost no trouble porting applications across platforms, at least no issues that were IDE centric. But then again my sample application was not entirely that extensive. Even then it’s worth a mention that after having been setup right, the project written under Linux compiled without a single major change on windows. No mucking around with Makefiles or build systems. Yes, it’s true I programmed for compatibility but still, all I really had to do was switch the compiler settings (for VC 9.0) thats all.

So can C::B be used for production quality projects? I would have to answer “yes” to that question. It definitely is good enough to be used for production code and if you are working with wxWidgets, I would even go so far as recommending this IDE over others. True it is not as powerful as Visual Studio, at least yet, but it still deserves more than a praise. For C++ development under Linux, I would recommend this IDE hands down, period!

Code::Blocks 8.02 has been released.

The much awaited release of Code::Blocks has finally happened. I was waiting for this for like forever! It’s time to go get the new IDE. From the initial looks of it, it’s been worth the wait. More later!

In search of a Python IDE.

There is simply no good Python IDE under Linux. Yesterday night I tried searching for one and ended up empty handed, well amost. Under Windows the situation isn’t too good either. I mostly use PythonWin over there and it gets the job done, at least most of the time. Probably not as good as I would like but it does the job. Under Linux however the situation is even worse. There is no IDE, that can be used for serious Python development. Maybe it’s me, but I found it a little bit strange that such a popular language like Python would be lacking a proper IDE. To be fair the only thing that comes close to a good Python programming environment was Komodo Edit though it itself is rough around the edges.

KDevelop is kinda OK. Even though it is good for C++ development, it lacks proper support for Python. For one I couldn’t get the Python debugger working under KDevelop ๐Ÿ™ . Also KDevelop uses Makefiles for its project management and that just made me run away from it rather quickly. Makefiles are just a little bit too much for a simple scripting like Python. The other editors/IDEs I tried were SPE, Eric, DrPython, Editra, Boa Constructor and Emacs. While most of the IDEs/editors are fairly decent, none of them are up to the mark. I would place gold o’l Emacs at number 3 since it does the job fairly well without crashing or major hiccups. Most of the other editors were either clunky or just simply crashed like way to often (, haven’t tried any commercial ones, sorry, strapped for cash here).

Komodo Edit is more like an editor that has partial support for Python. I haven’t managed to get the debugger working with it in a short while that I have used it (, no idea if you can actually do such a thing) ๐Ÿ™ . But it seems the best bet for Python development under Linux (, if you want to use free software). The good thing about this editor is the fact that you can run custom commands. So you basically have to run your script via a custom command since the editor itself doesn’t provide a run command out-of-the box. The project layout; well there is none, you basically place everything under the project directory and the editor just picks it up in it’s tree window. Probably a little trivial, but come to think of it, what else do you need when it comes to Python. It’s not like you have compiler switches or linker optimizations that need to be performed. Besides such a setup means there is less complications running scripts from the command line since in Python all module paths are made relative to the script anyways. Overall, Komodo Edit is a good bet if you want to do quick and simple Python scripting under Linux.

Is there a server in the house!!?!!

It would seem, when all else fails you load a crap OS on to a super expensive machine and start marketing them as servers to kids and moms! I am talking about, well, Windows Home Server. Now Microsoft is all set to make children understand the Stay-At-Home Server by using a children’s book. Yes you heard it right! OK hold a sec there, back up a bit. First of all, can someone please explain me this whole concept of a home server? What is a home server and what exactly will it do or rather what extra functionality is it going to provide that is not already provided by the good o’l desktop. I was reading through the features list, and what a bunch of b**l s**t. A server for backup and photo sharing! You could do that with your lap and desktops as well, and yeah automatically too. They even go on to imply it could be used as a web-server. The last time I checked home internet plans explicitly forbid the use of their IPs for web servers. Oh yeah, on the same page, please read the disclaimers in small print. “Please contact your broadband service provider”, yeah right! It’s not Microsoft’s problem it’s the service provider’s problem. Wonder why the service providers are so paranoid about security? Maybe because it could be used for all illegal stuff, but hey, that’s just the service provider’s problem.

Ports, IP addresses, service providers, TOCs, subnets, DNS servers, name resolvers, firewalls, web-servers, hand-shakes, packet-fragmentation, VoIPs, streaming media. Kids, wasn’t this all taught in kindergarten to you. Hmm… maybe it should be, then you can be CCIEs by the time you graduate.

New year wishes and a look at the year gone by.

First of all, a “Very Happy New Year” to all.

Just to highlight some interesting news and events that happened the year gone by, plus my own experiences.

  • Games:
    1. It was probably the game of the year (, at least as far as I am concerned), I am talking about Bioshock. Enjoyed playing it even though not on my PC and I still haven’t completed it. Truly amazing graphics and a new twist to FPS style of play.
    2. The Elder Scrolls VI: Oblivion, this game didn’t come in first place because it was not launched this year, but the last. It is here since I could only manage to play and complete the game this year. Played this game along with the Shivering Isles and Knights of the nine expansions for like more than 5 months ๐Ÿ˜› starting July, and I must say I have come to thoroughly enjoy the sandbox style gameplay the game offers. Don’t be surprised if I start getting crazy ideas of creating games like this in 2008 ๐Ÿ˜‰ .
    3. Just when we thought nothing could tax the 8800, Crysis hit! The game takes away the best visual graphics award of 2007. Amazing eye candy and surely the sign of things to come, though I am not sure about the overall gameplay.
    4. A couple of other interesting games as well like GOW 2 and Gears of War, but didn’t get my hands on them as yet.
  • Programming and Development:
    1. Biggest disappointment was the postponement of OpenGL 3.0 specs. I was hoping to see at least something concrete on this, but to no avail. I hope 2008 will give us more to look forward to.
    2. 2007 saw the release of Visual Studio 2008 and it’s Express editions. Not too much to complain or praise there. .NET 3.5 was released along with the studio versions.
    3. While major releases were few and far between, minor releases like Cg 2.0 and Silverlight dominated most of the programming and development news.
  • Personal projects:
    1. Biggest miss was not being able to launch Doofus 3D. Period! The game was stated to release October/November but inevitable delays and project pressures resulted in the game not being shipped. This has been the biggest disappointment from my side.
    2. The project is however still on track and baring time delays the product and the engine has become stable and looks more and more like a very solid platform for future projects. Most (almost all) of my ideas (some reallly crazy ones too) have thankfully worked!
    3. My RnD on scripting engine integrations has yielded good results. I remember my promise, will update the blog with some statistical data on this, just tied up with project pressures for now. On the whole RnD this year from my side was lower then what it was last year.
    4. Got a new website this year, migrated the blog and also have one lined up for the game release.
  • Hardware:
    1. The year belonged to NVIDIA and the 8800 has pretty much dominated the graphics scene unchallenged for most of 2007. There was a feeble attempt by AMD(/ATI) at the end of the year but the HD 3870 and 3850 have been plagued with shipping problems, though they have shown impressive figure and amazing value for money considering the price point. However, I expect the green brigade to counter that since they are already well ahead in the race to do so.
    2. The next was Intel which has successfully managed to run the competition (AMD) to the ground with it’s chips, the Core 2s, pretty much dominating the market. The Phenoms are here but still have to prove themselves. It’s safe to say Intel ruled 2007.
  • Operating Systems:
    1. I have done enough Vista bashing on this blog already, so no more! My sentiments however remain unchanged regarding the OS. 2007 has been particularly bad for Vista, the OS was given flak on a lot of articles on the web. My recommendation; give the OS a skip for the time and use XP and/or…
    2. Ubuntu 7.10 code named Gutsy Gibbon (released 2007) has been a revelation for me. I have been using this OS for a month now on my internet PC and I am more than happy with it. True there are some quirks that remain but Ubuntu is great OS for, well, everyone and anyone. I recommend this OS hands down!
  • Misc News:
    1. India wins the 20-20 world cup 2007.

New year resolution:

Release Doofus 3D.

A lot of plans in mind, but more on that later.