There have been some internal beta-releases of the Newton Game Dynamics Engine over the last few weeks (right now it’s beta 7) and I did implement the last beta into my NewtonPlayGround (no release date yet, but soon after NGD 2.00 goes live), to see how it fares. And I must admit that it has come a long way and that most of the commercial physics solutions out there should fear it’s final release. Newton has a very realstic solver, but most people didn’t like that fact that it wasn’t as fast as the other engines, but that’ll be history with version 2.00. And to give you a hint on how fast it’ll run I created three videos showcasing the beta of NGD 2.00 on my Athlon X2 4200+ (which isn’t that fast anymore, so just imagine what you can do on a fast quadcore CPU) :
The first video (WMV-format) shows 100 catapults running at a smooth framerate. Note that those catapults are not faked in any way, they work like the ones in real-life, using joints and a heavy weight at the other end to fire the catapult off. Some other tests show that it’s even possible to run 300 of those at once with interactive framerates.
The second video (WMV-format) shows 925 barrels stacked in four pyramids running smooth. Those barrels are all using convex hulls (dense meshes). It’s even possible to have hundreds of complex rocks roll down a hill at smooth framerates with the new beta.
I now also added a third video (WMV-format) showing 40 skinned ragdolls stacking at interactive framerates. Those of you that implemented skinned ragdolls with the old version of Newton know that it only needed two touching skinned ragdolls in 1.53 to make the framerates dip into single digits. But as you can see in this video, 2.00 lets you stack a lot of those with nice framerates.
And if you don’t want to watch the videos, here are two screenshots from them, that also show the most important value, called tPhysics. It’s the time Newton needs to do physics calculations :
Recently I’ve started working on the new turn-based battles that’ll come with “Phase 2” of Projekt “W”. If you have played the game, you already saw the automatic battles with no possibility for the player to intervene. This will be changed, and you’ll have full control over attacking and defending regions. If a battle starts, the game will switch into the turn-based battle-mode where you firt place your units and then move them turn-by-turn (player after player) until one of the parties has been terminated. If you have played some of the more known turn-based military sims like “Panzer General” you’ll know how this new battle-mode will work.
The shot on the left shows an early implementation, so mostly the graphics will change in the future and I also need to add an interface to show the most important information. If you don’t like to fight the battles by your own, the game will still offer you the possibility to automatically calculate the battle (though this may come at a higher risk than fighting yourself). There will also be differend maps with different graphics sets, depending on where the region is located, and I also plan to have different skins for the units depending on their owning nation, so that they’re easier to distinguish in this battle-mode.
Besides this I also recently had the chance to try out a new beta version of the Newton Game Dynamics Engine (2.00), that now finally supports multiple cores. This brings much more performance, and getting my NewtonPlayGround to work with this new version was only a matter of minutes as there aren’t much API-changes for the new version of the SDK. Right now the new version is still in development, so it’s only available for SDK-developers, others will still have to wait for a final release.
But I uploaded two videos to show off how much faster this new version is on a system with multiple cores (in my case it’s ans AMD Athlon 64 X2 4200) so you can see for yourself :
Video showing 36 trebuchets going off simultaneous (wmv)
Note that these are real trebuchets working like the ones in real-life by using a very heavy weight at one end. They are constructed using convex hulls and are connected with different joints.
Video showing 500 convex hulls rolling down a hill (wmv)
This one shows 500 rocks (represented by convex hulls) rolling down a hill at a decent framerate. And though this is from an early version of the SDK it’s already running much faster than with the old version of Newton.
Better late then never, and so I finally got around finishing and releasing the new version of my Newtonplayground, namely version 1.53 (to accompany the version of NGD used in this NPG release).
If you have followed my blog over the last few days/weeks you’ll already know the biggest changes, namely support for skinned ragdolls and magnetic bodies. Other than that there were some bugfixes and I also changed the context user interface for objects from text based buttons to a graphical one (like the main UI).
Download it via the above link and if you have any problems, found some bugs or just have some questions about it, contact me via this blog or direclty in the support thread over at the newton forums.
And not to forget, the mandatory screenshots :
Yesterday deep into the night I decided to give another feature I wanted to have in NPG for a long time a try and implemented it. This time it’s magnet objects, which cause magnetic forces applied to all bodies within their range. This makes up for some great stuff, as you can see in the following video (5 MBytes, WMV encoded).
The feature was simple to implement since I already had implemented springs a long time ago, and basically the only difference between a spring between two bodies and the magnetic force between two bodies is the calculation of the resulting force (which is actually very simple for a magnetic object). Right now (due to the fact that it was very late and I just wanted to see how and if it works) most stuff like constants and distance are hard-coded, but will later on be changeable by the user so that every magnetic object can have it’s own magnetic parameters.
After finishing the implementation of the new skinned ragdoll-feature in NewtonPlayGround I just started to create some sample scenes for the final release. Throughout the last days I finished this feature (adding shadows, possibility to attach springs and joints and matierlas) and also tested it very hard to see if there were any problems or bugs left. And since everything works the way it should, and since I also finished the improvments to the spring implementation I had planed (you can now attach any kind of object to any other kind of object, which didn’t work on the last release) I’m preparing for the final release.
To “celebrate” this I also made a new video that shows the new feature in one of the new sample scenes. You’ll see a zombie (thanks to Psionic3D for this free model) falling down a “torture tunnel”. And just like in real-life it’s different eacht time you restart the scene, so in the following video you’ll see him fall down twice. Grab the video here, it’s ~10 MBytes and in WMV format.
Release for the next version of NPG is planned for middle or end of next week, so stay tuned!
So after playing some newer games with my new rig (which runs like a charm), I started to do some coding again. And I decided to pause developement on PjW for one or two weaks so that I can finally finish up version 1.53 of the Newtonplayground.
This was something sitting on my neck for too long now, as I already stated in the newton forums that a new version of NPG was almost finished but somehow I always got distracted and just forgot about that. But not this time! This new release won’t bring a lot of features, and I mainly want to release it because newton has made some good steps since the lastly released NPG version (1.51). It’s more stable and a lot faster, so many of the samples that were slowing down with newton 1.51 now run smooth with 1.53.
But there will be one totally new feature to NPG : Skinned ragdolls. I finished this feature over the last two days and they’re now fully functional, you can also even attach springs and joints to them, which makes up for some interesting things to do. NPG uses the Milkshape fileformat for skinned ragdolls and sadly I was only able to find one model whose bones (after altering them by myself) are useable directly with newton, most of the models around the net have their bones made for animating rather than for physics and often have over twenty bones. So this feature is kind of limited, but not due to it’s implementation but rather availability of models on the net. Maybe for another version of the NPG I’ll also add other file formats to load the skinned ragdolls from.
And last but not least I also made a small video showing off the new skinned ragdolls in NPG. You can grab it here, it’s a 4 MByte WMV file.
Edit : Here is another video, it’s kind of a “poor” trampoline made with the spring feature of NPG and shows a skinned ragdoll falling down on it.
As already announced I worked on fixing bugs and problems that users (mostly the users over at the newton boards, so kudos to them) discovered in release 1.5 of the NewtonPlayGround. Sadly there were more bugs and problems than I suspected, but none of them was very serious.
So I now (hopefully) present you release 1.51 of the NewtonPlayGround, which can be obtained here. It also includes a new feature, namely dampers, for slider and hinge joints. This allows you to e.g. create complex suspensions like the one below (which is included in the download of 1.51) :
As I already mentioned (a dozen times or so…) writing manual for your own software is not only utterly boring but also not a very easy task. Why? Well, I’ve been working on the NewtonPlayGround since 2004 and I know it in and out (when you write your own applications, that’s what it should be) and now I had to write a rather large document (it’s in HTML form, with a TOC and so on) that should get people knowing nothing about the NewtonPlayGround started with this application. So you have to think about how to structure the manual, what to write, you need to take dozens of screenshots and write down stuff about functions, dialogs or whatever you’re already totally comfort with.
But well, that’s now history. After over 30 screenshots and 20 pages of HTML the manual is now in it’s finished state for the imminent release of the NewtonPlayGround. It feels like loosing a heavy burden!
And as for the PlayGround itself : Like stated on the last update, it’s finished in terms of coding. So in the last few days I only added some very minor stuff I thought would be nice to have. You can e.g. now switch to different camera modes when driving a vehicle, other changes were so small (like new icons for some of the buttons) that they’re not worth mentioning.
Yes, the application itself is finished! I’ve spent almost all time I could spare since my last posting (on average several hours a day) for finishing and fixing the last few things/quirks that were left and it’s finished as of now. There were many small things that annoyed me, which needed improvement/fixing and that was what I spent those hours on. It’s somehow frightening to see how those small things consume time fixing them, as there were so many. There were some aspects of the GUI that I disliked and therefore changed (e.g. you couldn’t access the main UI while in character controller or ego-mode), I optimized the shadow calculations to speed it up on complex scenes (though you still need a good system for enabled shadows, depending on the compelxity of the scene), fixed some bugs when loading objects, finally got around fixing some issues with objects that are later on connected into compounds and so on.
And we SDK developers already got a beta of Newton 1.51, which included a fix for the vehicle slowdown with 1.5 I mentioned some news post ago which allowed me to also finish up the vehicle stuff. One addition to the vehicles in NewtonPlayGround is the possibility to offset the center of mass for the chassis. Up until now, the CoM was always at the geometrical center, which was bad especially for high vehicles like a wheeled tank (TpZ Fuchs, if someone is into that military stuff), as such vehicles need a low CoM or otherwise they’ll too easily bend over when turning. So now the user can (after the vehicle is created) offset the center of mass to suite his needs.
Finally I also got around finishing some of the new demonstration scenes I already started (like that house to demonstrate the character controller. It now also has some interior) and made some new ones. I now onl<>