THE NEW HOTNESS
Oh man, exciting times you guys!! First, there is a whole new branch on github dedicated to the old beta 2.43, since I know it's pretty popular and I don't want to ruin everybody's christmas:https://github.com/AdamAtomic/flixel/tree/v2.43b
This is just a copy of the old beta branch, that I will no longer maintain, but is there in easy reach just in case you need it. Once that was archived, I merged the v2.50 dev branch down into beta:https://github.com/AdamAtomic/flixel/tree/beta
And here is the github commit manifest, sadly soiled by documentation noise:https://github.com/AdamAtomic/flixel/commit/35948b2049d7bed6bb40726d411b5d11ad1d781e
I'm going to quickly attempt to detail the major changes real quick:
1 - Collision system has changed a lot. While it's still the same basic idea, the "collision hulls" are gone in favor of just storing the last position of each object. Also, all the hitLeft(), hitRight() callbacks are gone, and replaced by a simpler system. During update(), you can just check isTouching(FLOOR) or wasTouching(LEFT) or whatever, and keep all your logic in one function. Also it is easy to run your own collision handlers and stuff.
2 - Don't really need to call super.update in most classes anymore. You DO need to call it in your game states though!
3 - The debugger overlay is beastly powerful now! You can also extend the drawDebug() function in your sprite classes to make the visual debugger more powerful.
4 - Added rudimentary path following and path-finding with debug visuals.
5 - Added new camera system, so you can do split-screen, or picture-in-picture with just a few lines of code. However, EVERYTHING is cameras now. Most of the time this isn't a big deal, because there is a default camera that is easy to work with.
6 - I removed FlxKong, FlxPanel, the game-level offsets and frames (though that can be emulated with cameras now), and will probably be removing FlxMonitor. Thrust was removed from FlxObject, and some things were moved around.
7 - States extend groups now, and groups just extend flxbasic, not flxobject. Groups also have a nice new "recycle" function, that can be used to intelligently re-use game objects like bullets or enemies.
8 - Camera follow behavior is less swoopy and spazzy, and easier to extend/override.
That's the big stuff I think. I know that is only a cursory overview, but part of what I'm doing next week while we beta test this stuff is working on finishing the documentation and helping build a new more informative website, with a tour and stuff.FROM BETA TO MASTER
However, in the meantime, it would be a really big deal to me if whoever is able can try porting one of their existing prototypes over to the new code base, even though it will change a little bit in the coming week or two, and let me know what bugs they find, or where they get stuck, or what seems crappier. In general, my goal with this update was to make things more simple, more clear, and give people more control. This did sometimes require making some big changes, but in my test projects locally I've not had to change any of the core behavior, and the actual game code in my projects has dropped by 10-20%, which is cool.
So yeah, if you have time this week to try out the new code and let me know what you think and what bugs you find, that would be awesome. There are a few different ways to report bugs:
1 - You can simply reply to this thread
2 - You can submit them to https://github.com/AdamAtomic/flixel/issues
3 - You can message me on https://twitter.com/#!/flixation
I will be watching and interacting on all these channels next week to try and get v2.50 ready for the master branch. Thanks ahead of time for your time and effort in helping with this, and I'm looking forward to getting this new code base out to the world
There are a few rough spots in the beta still I think that probably won't get magically better next week, but I'm looking forward to improving over the course of the year:
1 - Collisions are still not an amazing system. While it is much more stable than before, it still has limitations and weirdness sometimes. I've tried to segregate the collision behavior as much as possible, to both make it easier for ME to understand and to make it easier for YOU to help me improve. Whether it is optimizations for the quad tree or better approaches to collision resolution, I hope we can work together to improve that system over the next few months.
2 - I just put in path-finding yesterday afternoon, and I'm quite certain it is a mess. Now that there is a kind of quasi-official FlxPath object, I'm hoping that it will be trivial to improve the guts of FlxTilemap.findPath() without blowing people's minds, and I think the community can help with that a lot.
3 - Path-following is also newly added, and probably pretty rough around the edges as well.
Finally, I have a few things that I'm definitely going to be looking at during the beta testing next week:
> seeing if i can simplify sound mgmt with the global sound mixer SKIPPED
> trying to clarify world/physics overlap versus screen/graphic overlap DONE > timers DONE > hover bool/callbacks for flxbutton DONE
> comparing the speed of my "fast" angle calcs in FlxU versus just using Math SKIPPED
> maybe improving the "lost focus" arrow screen appearance OK FOR NOW
> double click support DELAYED
> auxiliary global update/draw callbacks lists DONE (PLUGINS) > exposing _framePixels DONE > running through the github queue DONE
> fixing up flx.py DELAYED
I'll be making a new v3.0 thread to talk about wacky future features. In the meantime, this is the short-term plan of action, and I'm really looking forward to your feedback and help in the next week or two to roll over to the new hotness! Thanks