{"id":704,"date":"2012-08-21T13:43:43","date_gmt":"2012-08-21T12:43:43","guid":{"rendered":"http:\/\/www.aymericlamboley.fr\/blog\/?p=704"},"modified":"2014-11-01T14:52:36","modified_gmt":"2014-11-01T13:52:36","slug":"citrus-engine-v3-beta2","status":"publish","type":"post","link":"http:\/\/www.aymericlamboley.fr\/blog\/citrus-engine-v3-beta2\/","title":{"rendered":"Citrus Engine V3 Beta2"},"content":{"rendered":"<p>Hey there! On this hot summer day, I&#8217;m happy to share a new major beta for the <a href=\"http:\/\/citrusengine.com\/\" target=\"_blank\">Citrus Engine<\/a>! There are lots of new features, improvements, bug fixes and a new demo for mobile devices. It is also updated on the last version of each library.<\/p>\n<p>Download it on <a href=\"http:\/\/code.google.com\/p\/citrus-engine\/\" target=\"_blank\">Google Code<\/a> or <a href=\"https:\/\/github.com\/alamboley\/Citrus-Engine\" target=\"_blank\">GitHub<\/a>.<\/p>\n<p><!--more--><\/p>\n<p><strong>Social Coding<\/strong><br \/>\nThe Citrus Engine is now on <a href=\"https:\/\/github.com\/alamboley\/Citrus-Engine\" target=\"_blank\">GitHub<\/a>. You can easily fork it, make some pull request or add issues! The repository is built with demo contents in mind, take a look on the src package! There are differents examples for some of its features. I will built new one, if it is requested!<\/p>\n<p><strong>Only made for Platformer Games?<\/strong><br \/>\nSome people thinks that the CE is only made for platformer games&#8230; NO!! The Citrus Engine is pre-built as a platformer engine, it means that you&#8217;ve already platformer game objects available. However you can make all type of 2D Games you want. It offers a nice way to separate logic\/physics from art.<\/p>\n<p><strong>Mobile Ready<\/strong><br \/>\nThanks to Nape and the physics performance improvement, check this <a href=\"http:\/\/www.aymericlamboley.fr\/blog\/citrus-engine-on-nape-and-physics-performance-improvement\/\" target=\"_blank\">post<\/a> for more details, the CE is ready to target mobile devices! It&#8217;s time for a new demo running on the web, mobile desktop, iPhone &#038; iPad with the same source code!<br \/>\n<a href=\"http:\/\/www.aymericlamboley.fr\/blog\/wp-content\/uploads\/2012\/08\/demo-Mobile-Nape-Starling.html\" target=\"_blank\">The web demo<\/a>. Be patient, it loads 5.7 MO. I didn&#8217;t make a preloader, to have the same source code.<br \/>\nDemo on mobile devices :<br \/>\n<iframe loading=\"lazy\" src=\"http:\/\/player.vimeo.com\/video\/47880304\" width=\"500\" height=\"281\" frameborder=\"0\" webkitAllowFullScreen mozallowfullscreen allowFullScreen><\/iframe><iframe loading=\"lazy\" src=\"http:\/\/player.vimeo.com\/video\/47884783\" width=\"500\" height=\"281\" frameborder=\"0\" webkitAllowFullScreen mozallowfullscreen allowFullScreen><\/iframe><br \/>\nGraphic design are made by <a href=\"http:\/\/paulineoriol.fr\/\" target=\"_blank\">Pauline Oriol<\/a>, from our previous Objective-C\/Sparrow project : <a href=\"http:\/\/www.aymericlamboley.fr\/blog\/tribus-graduation-project\/\" target=\"_blank\">Tribus<\/a>.<br \/>\nYou will find the source on the src\/mobilenapestarling package.<br \/>\nParticles are something very cpu &#038; gpu greedy, it&#8217;s nice to see this demo working at 60 fps on all devices &#038; web!<\/p>\n<p><strong>Retro-Compatibility?<\/strong><br \/>\nIt&#8217;s something very important for me to not break the compatibility with previous version! I&#8217;m glad to say that you just have to update package import concerning physics since Nape support. Not a big deal \ud83d\ude42<\/p>\n<p><strong>Offering choices<\/strong><br \/>\nNow the Citrus Engine offers many options, just chose which one you feel comfortable :<br \/>\n&#8211; the classic flash display list, or blitting or Stage3D thanks to Starling.<br \/>\n&#8211; Box2D, or Nape or a Simple math based collision detection. You can create easily your own logics.<br \/>\n&#8211; a simple way to manage object creation, and for advanced developers : an entity\/component system and object pooling.<br \/>\nCheck the different examples in the zip!<\/p>\n<p><strong>Nape<\/strong><br \/>\nAll Box2D&#8217;s objects haven&#8217;t been ported on Nape at the moment. However I would like to thanks Nick for his contribution to the CE!<\/p>\n<p><strong>The entity\/component system<\/strong><br \/>\nI was not 100% satisfied of my <a href=\"http:\/\/www.aymericlamboley.fr\/blog\/an-entity-component-systems-attempt-using-box2d\/\" target=\"_blank\">entity\/component system<\/a>, but it seems it is not bad at all! I will improve it in the future, I need a little break before getting back to it.<\/p>\n<p><strong>Object Pooling<\/strong><br \/>\nSince the Citrus Engine dissociates view\/art from logic\/physics, you may use two pool objects! It works great with Nape, but it seems that Box2D Alchemy has some problems. I opened a ticket <a href=\"https:\/\/github.com\/jesses\/wck\/issues\/14\" target=\"_blank\">there<\/a>.<\/p>\n<p><strong>Level Architect dropped, welcome the Inspectable metadata tag<\/strong><br \/>\nThe Level Artchitect was a good product, but it needs too much time to be supported. I&#8217;ve dropped its support on this version. I&#8217;ve always love how the Citrus Engine manages Flash Pro as a Level Editor. Since Flash CS6 support Stage3D, we can easily use this metadata tag. Take a look on LevelA1\/LevelA2.fla to see its power! It has never be so easy to manage properties! Otherwise if your Flash Pro doesn&#8217;t support Stage3D, you can still use the old way!<\/p>\n<p><strong>Blitting &#038; Simple math based collision<\/strong><br \/>\nI&#8217;ve updated this two options for the CitrusEngine, take a look on their respective demo \ud83d\ude09<\/p>\n<p><strong>Future?<\/strong><br \/>\nThe CE is still in beta? I&#8217;ve added lots of new features in this version. I&#8217;m waiting for some feedback before releasing it as a stable version, even if it is already very stable \ud83d\ude09 Don&#8217;t hesitate to ask for new features! Shortly I will create new game demos which are not platformer games, to show that the CE is very flexible!<\/p>\n<p><strong>Workers?<\/strong><br \/>\n<a href=\"http:\/\/www.bytearray.org\/?p=4423\" target=\"_blank\">Workers<\/a> can provide a huge performance boost. Take a look on this <a href=\"http:\/\/esdot.ca\/site\/2012\/intro-to-as3-workers-part-3-nape-physics-starling\" target=\"_blank\">example using Nape &#038; Starling<\/a>. It&#8217;s definitely something I want to add in a future version. At the moment, Workers are not supported on mobile&#8230; it let me some times to know how I will integer them. I don&#8217;t want to force people to use it (too difficult for newbies). I&#8217;ve added lots of options\/features to the Citrus Engine and tried to keep it as simple as possible. This one will be hard to add easily.<\/p>\n<p><strong>Bonus : Kinessia code open source<\/strong><br \/>\n<a href=\"http:\/\/kinessia.aymericlamboley.fr\/\" target=\"_blank\">Kinessia<\/a> was my first serious project with the Citrus Engine. Now you can access to its source code (it was build with CE V2). <a href=\"http:\/\/www.aymericlamboley.fr\/blog\/kinessia-game-school-project\/\" target=\"_blank\">More information there<\/a>.<\/p>\n<p>I hope you will like this new version! I would like to thanks Daniel for its awesome work &#038; support on Starling, and Nick for his contribution. Keep rockin&#8217;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hey there! On this hot summer day, I&#8217;m happy to share a new major beta for the Citrus Engine! There are lots of new features, improvements, bug fixes and a new demo for mobile devices. It is also updated on the last version of each library. Download it on Google Code or GitHub.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[4,115,51,151,147,33,11,98,145,149,114,6,90],"tags":[27,50,13,153,34,26,146,75,74],"_links":{"self":[{"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/posts\/704"}],"collection":[{"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/comments?post=704"}],"version-history":[{"count":11,"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/posts\/704\/revisions"}],"predecessor-version":[{"id":1275,"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/posts\/704\/revisions\/1275"}],"wp:attachment":[{"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/media?parent=704"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/categories?post=704"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/tags?post=704"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}