Yeah, so I finally caught up with Erin’s changes to the C++ version. It’s still not quite usable though – a few bugs remain to be found, not to mention the fact patches of functionality are missing or broken. I’ll be putting up a preview version soonish, though.
I also spent 10 minutes cutting out one of the more flagrant ways the engine creates too many objects (instead of re-using objects internally).
I measure the average benchmark time (using the newly created benchmark program) has decreased from 1537ms to 1378ms. That’s 10% faster (as a rough estimate). Not too shabby for just one quick change. I’ve attached the benchmark reports.
Performance of the engine doesn’t really excite me though (this is FLASH we’re talking about). But it seems the done thing in dev blogs, which this is rapidly turning into.
Ok, the first revision (r52) of Box2DAS3 for the next version is available now on SVN. Phew, that was a lot of work.
Lots of stuff doesn’t work, but the reduced testbed ought to compile and run.
The old SAP broadphase works, as well as Dynamic Tree.
It’s 3-4x slower than the old version! It’s because I replaced some of the old optimizations with newer more naive code. It’ll improve over time as we re-inline stuff and so on.
What should you (the casual Box2D user) do now:
- Still nothing. It’ll still be some time for the port to catch up with C++, and get cleaned up. And there’s the performance issue. I wouldn’t recommend moving unless you have an essential reason, or have a project that you are keeping continuously up to date.
- I’ll be accepting patches now to lighten the work load, if anyone at all is keen. Post them on the forum, preferably declaring your intentions in advance. All patches must be under submitted under the same zlib license. They must be actual patch (diff) files. Updating the testbed examples would be a good excercise for someone keen to try out the new API.
Please comment on the forums
Quick bulletin that I’m working on porting Erin’s recent changes to Box2D, which will eventually become the bulk of 2.1. It’s a pretty big job, which I’m doing at once, so there’ll be nothing compilable for a while. I’ve done maybe 10%.
I saw a poster on TIGSource talk about manually cutting up sprite sheets, so I’ve dusted off a project from 2007 to solve it. Just load up a sprite sheet, select the background color, and export the results into a directory. It’s got a few extra features useful for what I originally wanted it for, too.
Just remember, this is from the archive, so way crappier than the stuff I do nowadays. I’ve barely touched it, except to brush off a few GUI bugs and delete menu options that don’t do anything.
But it does the job.
Announcing my newest finished project, Box2DWith. I’m collecting together various utility classes for doing all the stuff with Box2DFlashAS3, but found annoying. Demo, Docs
I’ve not posted for a while, but that doesn’t mean I’ve not been doing anything. Generally less visible stuff (yes, some porting), but I have converted Box2DFlashAS3 to use ASDoc to generate beautiful documentation.
The results are available here. For lack of a better place, this will be their permanent home, and I’ll try to keep them updated to the latest revision.
I’ve put in a few customizations to the standard ASDoc template, that I’m going to share here, as they are generally useful. You will need to customize the files a bit for your own project, though.
You ever want a Lauchy command to control MediaMonkey? Well now you got it. Just download the attached zip, and extract it somewhere Launchy can see .lnk files (like the default Utilities folder, e.g.). The same files work for Winamp, just change the names to something more appropriate.
The trick is an obscure little utility I found called CLAMP, that does all the heavy lifting for me. I also used a trick I picked up somewhere to allow .lnk (shortcut) files, with relative references, by prepending your link with “%windir%\system32\cmd.exe /c “.
By the way, I don’t actually use this myself any more. I prefer MediaMonkey’s feature that you enable mouse gestures on the systray icon, which is much more convenient for me and my wireless mouse.
Following the poll, buoyancy seemed to be the popular choice for Box2D feature. I decided against the fancy and probably unreliable technique I was going to use, and have produced a “controller” based on good old, geometry, cribbing a fair amount of Erin Catto’s notes on the subject. Demo
The entire Qwantz (dinosaur comics) archive expressed in one comic:
Qwantz, for those who don’t know, is a webcomic only in the sense of being a comic on the web. Despite having posted about 1300 comics as of writing, the images have not varied at all, just the text.
I’ve averaged every comic with a combination of Python and ImageMagic, but boosting the text somewhat so it it’s not just an off-white image. Ryan North must obviously use a template file to create that perfectly aligned text. You can even make out that panel 3 tends to start with “I”, and panel six with “T-rex”, I think.
Source available here.
Box2D has always had a function called TestSegment for colliding segments with shapes, but it really needed conversion into proper raycasts. Check out a Demo.