November 2005

New Newton Beta SDK

So much for the regular updates, but the last weeks have been very dull in terms of coding (did almost nothing with Delphi or any other programming language).

But this weekend we SDK-developers got another beta of the Newton 1.35-SDK to try out, so I fired up Delphi, updated the header to the recent beta-SDK and also fixed some minor bugs in the NewtonPlayGround to test it with the new SDK. And besides one or two small bugs it works like a charm. I also saw some performance gains, especially in the more complex scenes.

For many people it may look like there is not much going on with the Newton Game Dynamics Engine, but that’s not the case, it’s the exact opposite thing that happens. The changelog since the last official release (1.32) is getting bigger and bigger and new features are also added. Besides that, the new beta is more robust and mostly faster than the last release, so all in all, 1.35 will be great. Next step on the roadmap is the finalization of the vehicle container, which is already much better than the old one but still has some quirks and bugs.

So it shouldn’t be too far away before you can try out the next release of Newton and the Newtonplayground…

Life goes on…

In terms of real-life, not much has changed since my last post here. But I dragged myself to do some coding again, and the parts of the NewtonPlayGround that were still under construction have so far all been finished.

One of the bigger things that have been finished was the Direct X .X fileloader. After creating some complex objects and scenes and importing them into the PlayGround, I noticed that lighting wasn’t looking like it should and so I added a small debug-function to the X-loader for outputting the vertex normals into the vertex color to see if normals were loaded correct. And guess what? I forgot to multiply the normals by the rotation part of the meshes’ matrix, which caused them to point into wrong directions. But that’s fixed now, and especially on highly tesselated objects, lighting looks just fantastic now and I can’t believe that I was satisfied with the wrong normals from my 3DS files all those years.

And I also finally totally forever (hopefully) finished the stencil shadow implementation. For my old Radeon I was using GL_ATI_SEPARATE_STENCIL for rendering shadow volumes in one pass, which isn’t supported on NVidia Hardware. So with my new Geforce6800 I also added GL_EXT_STENCIL_TWO_SIDE to achieve the same one pass shadows as on my old Radeon.

So the next big point on my list towards completing the NewtonPlayGround is to create some totally new scenes, that show what the new version is capable of. Right now, most of the sample scenes are still from older versions and look rather boring, some others already look and play great but could need some more detail. Especially the old scenes that use the vehicle controller were awful, so I started on some complexer scenes that use some interesting vehicles you can drive around. A start (the environment is still from an older version) is the scene you can see on the right, where you can drive a truck with three trailers around a complex environment. The trailers are each made up of a complex compound, so it’s possible to put “stuff” into the trailers and drive that around.

Well, that’s it in terms of programming. As you can guess from my entries, most of my (very rare) spare time and (even more rare) motivation goes into finishing the NewtonPlayGround. On one hand I enjoy working on such a complex piece of software, that basically gives an unlimited amount of possibilities to try out, but on the other hand it won’t leave much room for other stuff. Such a long-term project always turns out to be much more work than one suspects, and I can imagine that the first days after the release will be kind of “horror”, as I’m sure users will find out dozens of bugs/errors/annoyances (well, I’m just a single person, and finding all bugs on such a piece of software with almost no limits on what to do with it is rather impossible) and I’ll have to dig into it again. But one thing I did during work on the PlayGround was to create much basecode that’s reusable. There are dozens of units (a primitive manager, the DirectX loader, a unit for shadow volumes, etc.) that I can later on use in other projects without having to code that stuff again. So on the long run (depends on how real-life continues) I plan on creating a rather innovative (no clone of some existing stuff, like I did with “Napalm Bomber 3D” or “Bean Machine”) arcade game that not only uses physics (well, I learnt much about physics during the last months due to NGD) but also advanced rendering stuff like stencil shadows, shaders, etc. But I don’t have any concrete plans right now (only some ideas floating around), so I can’t post anything specific right now.

Why no updates?

Because of real-life, which is giving me a very very hard time right now. I have done no programming for about two weeks, and I also wasn’t able to contribute to the communities (NGD, PGD, DGL) where I’m involved.

And since I was active on the web, I thought to at least tell the people reading my blog what the matter is and why there are no regular updates. Sadly it doesn’t really look like it’s getting any better in the near future (I have the rather bad feeling that it actually will get even worse), so I don’t know when I’ll update this blog with programming news. And I also dunno about my current projects, the NewtonPlayGround is looking like a building site, cause I started adding new stuff before RL has become totally worse, so I even don’t know about the “future” of the NewtonPlayGround.

Well, that’s the story so far. I won’t go into detail, but I hope this is enough to clear things up a bit.