[UPDATE]All repositories are now live
[/UPDATE]
First of all:
AndEngine is NOT dead - in fact it has been more alive than every point in time before I joined Zynga.
The last commit to the public repo on GoogleCode has been almost 5 months in the past now. I can understand very well that there were rumours about AndEngine now being private to Zynga or that I stopped developing it at all.
The reality is much better though
There are multiple reasons why the new 'GLES2' version was not pushed out publically before, but the three main reason were that I:
- Wanted to get it very stable first.
- Didn't want to annoy anyone with the (very frequent changes) I made to it.
- Have the public API not change anymore.
So if you want to get ready for my Christmas/Chanukka/... present for you,
The repository URLs are:
- https://github.com/nicolasgramlich/AndEngine
- https://github.com/nicolasgramlich/AndEngineExamples
- https://github.com/nicolasgramlich/AndEngineTexturePackerExtension
- https://github.com/nicolasgramlich/AndEnginePhysicsBox2DExtension
- https://github.com/nicolasgramlich/AndEngineMultiplayerExtension
- https://github.com/nicolasgramlich/AndEngineSVGTextureRegionExtension
- https://github.com/nicolasgramlich/AndEngineLiveWallpaperExtension
- https://github.com/nicolasgramlich/AndEngineMODPlayerExtension
- https://github.com/nicolasgramlich/AndEngineAugmentedRealityExtension
- https://github.com/nicolasgramlich/AndEngineTest
Github allows for easy pull-request, which makes contributions so much easier!
- Clone the project
- Push the changes to the clone
- Send a pull-request
- Profit
Here is a short list of the most interesting changes you'll experience in the GLES2 version:
- GLES2
- Requirement: Android >= 2.2
- Supported by > 89% of all Android devices: http://developer.android.com/resources/ ... sions.html
- Moved to git(hub.com)
- ShaderPrograms (Extremely versatile!)
- Usages:
- Squeeze out the last bit of performance
- Fancy effects
- Keyframe Animation (http://code.zynga.com/2011/11/mesh-compression-in-dream-zoo/)
- Post-processing
- Usages:
- NPOT (non-power-of-two) Textures
- No more stupid POT (power-of-two) restrictions, wasting precious memory!
- Improved VertexBufferObject
- Faster buffering!
- HighPerformanceVertexBufferObject (the 'old' one)
- LowMemoryVertexBufferObject (50% lower memory usage as the HighPerformanceVertexBufferObject)
- Entity-Skewing
- In addition to Rotation, Scaling and Translation
- BitmapFont
- Pre-rendered Fonts (unlike the old runtime-generated fonts)
- PVRTexture
- Textureloading was always problematic, since even a 1024x1024 texture of RGBA_8888 is 4MB big and that 4MB needed to sit in the heap for a brief moment in time, easily causing OutOfMemoryErrors. The improved PVRTexture has a loading mechanism, that allows to minimize that temporary to any defineable size in bytes! (It loads the texture in stripes, rather than the whole texture at once.
- Note: 'PVR-TC' (PowerVR Texture Compression) is not implemented, since it doesn't work on all GPUs built into Android devices.
- ETC1Texture
- Texture-compression that is supported on all Android devices.
- Improved GLState
- Improved state caching, reducing unnecessary GL-calls.
- TextureOptions
- Default is no more premultipliedalpha!
- No more stupid workarounds to easily change the alpha of a sprite!
- Default is no more premultipliedalpha!
- GLHelper
- Improvements and fixes, especially around non-premultipliedalpha colorspace conversions
- Improved AStarPathfinder
- Greatly reduced allocations and performance
- Changed package from org.anddev.andengine to org.andengine
- New DataTypes:
- Quadtree (IntQuadTree and FloatQuadTree implementations)
- LRUCache
- UncoloredSprite / DiamondSprite
- Have a look at these if you want to write custom entities, learning proper entity-subclassing and custom shaders.
- TextureRegion rotation
- Used i.e. by TexturePacker to improve packing efficiency.
- TiledTextureRegion
- Animations are now basically free!
- Memory usage is increased by the number of frames.
- A TiledTextureRegion is now pretty much an array of ITextureRegions, which means that all the frames don't need to be adjacent (in a grid) anymore!
- BlackPawnTextureBuilder
- (allow Padding, to prevent Texture bleeding)
- RenderToTexture/RenderTexture
- Usage:
- Render something into a Texture and use that texture for Sprites. (i.e. useful when rendering some complex mesh once and then efficiently drawing it again as a sprite.)
- Post-Processing effects
- Usage:
- BezierModifiers
- Move entities along smooth paths
- New "onCreate"-process
- Allowing to easily load resources and creating the scene on a side-tread.
- Easy LoadingScreens
- No ANRs
- Allowing to easily load resources and creating the scene on a side-tread.
- Updated all Extensions
- MultiTouchExtension now a part of AndEngine itself.
- AugmentedReality will get an update soon!
- DebugTimer
- (add loglevel as constructor param)
- Building with latest SDK tools r16
- Shitload of fixes and improvements

- Improved compatibility with devices ignoring standards here and there

- New ScreenOrientations: SENSOR_LANDSCAPE, SENSOR_PORTRAIT for GingerBread and above.
- Screen-rotation without any lifecycle methods being called
- Anything else I forgot ....

The projects we are doing here at Zynga are bigger than probably any other project done using AndEngine before. This made some of these above changes necessary, especially the jump from GLES1 to GLES2 and improving memory consuption (LowMemoryVBO, PVRTexture, NPOT textures) and the new Datastructures (QuadTree, LRUCache) made our current project possible at all. So every single one of the above changes has a real-life reason
So if you are interested in the new stuff coming on Friday, this might be the time to do the following:
- Update Android SDK and Eclipse ADT.
- Sign up to github.com and follow the AndEngine projects you are interested in. ( https://github.com/nicolasgramlich/AndEngine )
- Install git.
- Read into GLES2 and Shaders if you want to get dirty.
Some other very important information:- The new GLES2 branch will be the active branch in future development!
- Here and there I'll add important fixes to the 'old' branch, but further development there will be dropped soon!
- If you start a new project or are not too far in your current project, use the new GLES2 branch!
- If one of the above new features/improvements gives you a very good reason to switch to the GLES2 branch, do it! Depending on how you wrote your project, if you did dirty stuff and your FIND+REPLACE/REGEX skills, it will take between an a few minutes to a day. (The public api didn't change dramatically, so your upgrade will be pretty straight forward.) If you do so, compare the old AndEngineExamples to the new ones, which should give you a very good idea/help for your own upgrade.
Stay tuned
[UPDATE]All repositories are now live
[/UPDATE]
Best Regards,
Nicolas


