My session on Stage3D powered engines."FlashGAMM,Kiev Ukraine 10/12/2011 .
Citation preview
1. Stage3D Survival Guide: :Choosing the fittest Flash 3D
engine on earth for your AAA game. By Michael Ivanov.
2. About Me. .
3. Ivanov Michael,31,Israel. Lead Programmer R&D,Neurotech
Solutions LTD and Geek. The Author of Away3D 3.6 Cookbook by Packt
Publishing. Spare Time:Stage3D,Unity,UnrealEngine,OpenGL. Visit my
tech blog:http://blog.alladvanced.net
4. About you. .
5. The problem. .
6. Available Stage3D powered frameworks. Stage3D.
7. 3D Engines. Alternativa3D-free,binary distribution.
Flare3D-commercial,binary distribution. Away3D-free,open source.
Yogurt3D-free,open source. Noob3D-commercial,binary distribution.
Proscenium-free,open source by Adobe. Minko-free,open source.
ND3D-free,open source. And some more
8. 2D Engines ND2D-free,open source. Starling Framework-free ,
open source. M2D(Discontinued?)-free , open source.
12. Each one wins or looses in one or more of these categories:
: Performance.(.) Features. () Learning Curve.( ) Productiveness.()
Customization.( ) Support. ( ) Costs.()
22. Physics,AI,Particles Away3D Alternativa3D Flare3DBuilt-in
Away Bullet (alchemy) Under dev Under dev3td party JigLib JigLib
JigLibAI AwaySteer(OpenSteer) under No No devParticles Native,FLINT
FLINT,Native(under Native,FLINT dev?)
23. Learning Curve. .
24. Mastering a Flash 3D engine. 3D . The APIs follow the same
basic 3D engine paradigm. Experience with the previous versions
helps a lot. Previous game development and Math experience
contribute to the learning process.
25. Productiveness..
26. Flare3D. Flare3D Studio (World editor IDE). FLSL GLSL like
shader coding,AGAL free. For Dummies like API.
27. Flare3D Studio IDE Character model by courtesy of Roman
Zinchenko http://www.wix.com/zinche/zraFlare Studio demo
28. Flare3D Shading Language FLSL =AGAL Abstraction. GLSL/CG
look.
30. Code Modularity. . Alternativa3D vs Flare3D Skin Animation
set up code samplesprivate function loadModel():void{ private
function loadModel():void{ var loaderCollada:URLLoader = new
URLLoader(); model = scene.addChildFromFile(
loaderCollada.dataFormat =
"assets/spyAnim.f3d,scene);URLLoaderDataFormat.TEXT;
scene.addEventListener( Scene3D.COMPLETE_EVENT,
loaderCollada.load(new completeEvent
);URLRequest("assets/SpyAnimCollada.DAE")); }
loaderCollada.addEventListener(Event.COMPLETE, private function
completeEvent(e:Event):voidonColladaLoad); {} scene.resume();
model.play();private function onColladaLoad(e:Event):void { } var
parser:ParserCollada = new ParserCollada();
parser.parse(XML((e.target as URLLoader).data),"assets/"); var
mesh:Skin = parser.getObjectByName("spy") asSkin; mesh.y =0;
container.addChild(mesh); var
animSwtich:AnimationSwitcher=newAnimationSwitcher(); var
animClip:AnimationClip=parser.animations[0]; var
animAll:AnimationClip=animClip.slice(0,870/30); animContr=new
AnimationController(); animContr.root=animSwtich; for each (var
resource:Resource inscene.getResources(true)) {
resource.upload(stage3D.context3D); }}
31. Away3D. Compact API ,but not like Flare3D. Prefab3D- Visual
IDE V2 .still under development. Away3D 3x users benefit from
smooth portability.
32. Customization. .
33. Open Source is the winner! Flare3D loans engines source
code for payment. Alternativa3D -?Kinect demo
34. Away3D core adjustments example Vector3D to screen
fix:Adding code to lens:public function
projectToScreenSpace(point3d:Vector3D,screenW:Number,screenH:Number):Point{
var p:Point=new Point(); var
v:Vector3D=matrix.transformVector(point3d);
p.x=((v.x*screenW)/(2*v.w))+screenW*0.5;
p.y=(-(v.y*screenH)/(2*v.w))+screenH*0.5; return p;}Adding code to
Camera3D:public function projectToScreen(point3d :
Vector3D,screenW:Number,screenH:Number) : Point{return
lens.projectToScreenSpace(inverseSceneTransform.transformVector(point3d),screenW,screenH);}Using:var
screenPoint:Point=_view.camera.projectToScreen(sp.position,_view.width,_view.height);
35. Technical Support. .
36. Away3D has much larger community and learning materials
like books and tutorials , than others. Four books dedicated to
Away3D development. Away3D and Flare3D-both supply professional
support for payment.
37. Costs..
38. Some out-of-the-Flash thoughts. .
39. Conclusion. .
40. Away3D = Features .()Alternativa3D = Industrial Quality.(
)Flare3D = Ease of Use.( )