123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]--><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="Asciidoctor 1.5.4"><title>atom_framework</title><link rel="stylesheet" href="./asciidoctor.css">
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
- <link rel="stylesheet" href="./coderay-asciidoctor.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css"></head><body class="article toc2 toc-left"><div id="header"><div id="toolbar"><a href="https://github.com/jMonkeyEngine/wiki/edit/master/src/docs/asciidoc/jme3/advanced/atom_framework.adoc"><i class="fa fa-pencil-square" aria-hidden="true"></i></a><a href="https://github.com/jMonkeyEngine/wiki/new/master/src/docs/asciidoc/jme3/advanced/"><i class="fa fa-plus-square" aria-hidden="true"></i></a><input dir="auto" style="position: relative; vertical-align: top;" spellcheck="false" autocomplete="off" class="searchbox__input aa-input" id="doc-search" name="search" placeholder="Search in the doc" required="required" type="search"></div><h1>atom_framework</h1><div class="details"><span class="author" id="author"></span><br><span id="revnumber">version ,</span> <span id="revdate">2016/03/17 20:48</span></div><div id="toc" class="toc2"><div id="toctitle">Table of Contents</div><ul class="sectlevel1"><li><a href="#atom-framework-introduction">Atom framework Introduction</a><ul class="sectlevel2"><li><a href="#open-source">Open Source</a></li><li><a href="#documentations">Documentations:</a></li><li><a href="#idea-buzz">Idea & Buzz</a></li><li><a href="#features">Features</a></li><li><a href="#architecture-and-components">Architecture and components</a></li><li><a href="#vision">Vision</a></li><li><a href="#project-status">Project status</a></li><li><a href="#other-open-source-dependencies">Other open-source dependencies</a></li></ul></li></ul></div></div><div id="content"><div class="sect2"><h3 id="atom-framework-introduction">Atom framework Introduction</h3><div class="paragraph"><p><strong>Hi Monkeys,</strong></p></div>
- <div class="paragraph"><p><strong>Atom framework for game developing in Java. Powered by JME3.</strong></p></div>
- <div class="paragraph"><p><strong>Atom</strong> framework which on top of JME3 and have some features like AI, Scripting, Database, VirtualReallity, Trigger, Multiplayer…(more below) to make developing game process in JME3 much more easier!</p></div>
- <div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>Go to the Atomix Game making tutorials. <a href="../../jme3/atomixtuts.html">atomixtuts</a></p></div></td></tr></table></div>
- <div class="sect2"><h3 id="open-source">Open Source</h3><div class="paragraph"><p>Atom Core : The AtomCore source code is hosted in Googlecode</p></div>
- <div class="paragraph"><p>Googlecode: <a href="https://code.google.com/p/atom-game-framework/">https://code.google.com/p/atom-game-framework/</a></p></div>
- <div class="paragraph"><p>Github: <a href="https://github.com/atomixnmc/atom-game-framework">https://github.com/atomixnmc/atom-game-framework</a></p></div>
- <div class="paragraph"><p>Wiki: <a href="https://code.google.com/p/atom-game-framework/wiki/">https://code.google.com/p/atom-game-framework/wiki/</a></p></div></div>
- <div class="sect2"><h3 id="documentations">Documentations:</h3><div class="paragraph"><p><a href="../../jme3/advanced/atom_framework/design.html">Detailed architecture designs</a></p></div>
- <div class="paragraph"><p><a href="../../jme3/advanced/atom_framework/docs.html">Detailed documentation</a></p></div>
- <div class="paragraph"><p><a href="../../jme3/advanced/atom_framework/comparison.html">Detailed comparison</a></p></div></div>
- <div class="sect2"><h3 id="idea-buzz">Idea & Buzz</h3><div class="paragraph"><p><strong>Better, more freedom, more fun!</strong></p></div>
- <div class="paragraph"><p>From <strike>UDK and Unity</strike> 's battle field, I’ve dreamt about making even better game engine with the help of my 2 fav technologies - <strong>Java</strong> and <strong>opensource</strong>.</p></div>
- <div class="paragraph"><p>JME3 and Netbean combination are the most brighten idea I 've seen in years. I think it deserve a better reputation worldwide.</p></div>
- <div class="sect3"><h4 id="initial-ideas">Initial Ideas:</h4><div class="ulist"><ul><li><p>Ease the learning curve</p></li><li><p>Fun play/create game like kids in a sandbox</p></li><li><p>Framework for games and apps(3D)</p></li><li><p>Nextgen techs</p></li></ul></div></div>
- <div class="sect3"><h4 id="why-call-it-atom">Why call it Atom?</h4><div class="paragraph"><p><a href="https://en.wikipedia.org/wiki/Atom">https://en.wikipedia.org/wiki/Atom</a></p></div>
- <div class="paragraph"><p>Yes, this is for game developing. But in its heart is future’s technologies.</p></div>
- <div class="literalblock"><div class="content"><pre> Atom Etymology: Devive the thing as small as you can, than compose it into a thing again.</pre></div></div>
- <div class="quoteblock"><blockquote><div class="literalblock"><div class="content"><pre>The same in programming, after all, modulize is to be integrated again! That really is the core idea of Atom framework, use the most simple primitives to compose the bigger, bigger matter! Every where, small tiny, fastest, embed inside others, stick together well…Take a look in Atom Ex <<jme3/advanced/atom_framework/atomex#,atomex>>, you will see the picture more clearly.</pre></div></div></blockquote></div>
- <div class="paragraph"><p>The most conceptual inspiration for Atom framework is project <a href="http://ptolemy.eecs.berkeley.edu/index.htm">http://ptolemy.eecs.berkeley.edu/index.htm</a> . Unfortunately Ptolemy is in “for research only area and its direction toward the much large scale than game developing. That’s why Atom framework was born with the learnt architecture from Ptolemy.</p></div>
- <div class="quoteblock"><blockquote><div class="literalblock"><div class="content"><pre>The Ptolemy project studies modeling, simulation, and design of concurrent, real-time, embedded systems. The focus is on assembly of concurrent components. The key underlying principle in the project is the use of well-defined models of computation that govern the interaction between components. A major problem area being addressed is the use of heterogeneous mixtures of models of computation</pre></div></div></blockquote></div>
- <div class="quoteblock"><blockquote><div class="literalblock"><div class="content"><pre>Atom is designed to MAKE concurrent, real-time, embedded systems and GAMES. So it focus more in code generation, profile, monitoring; focus more in graphics, physics, player experience…etc. Underlying, it borrow quite a bunch of concept that built in Ptolemy.</pre></div></div></blockquote></div></div></div>
- <div class="sect2"><h3 id="features">Features</h3><div class="ulist"><ul><li><p>Atom framework Highlights*</p></li><li><p>Flexible: Game | simulations centric but not forced!</p></li><li><p>Modular: Dependency injection along with Component injection</p></li><li><p>Parallel: Embrace parallel computing</p></li><li><p>Next gen: Come with Bleeding edge technologies and powers of Java languages</p></li><li><p>Cloud ready: Scale to web and distributed computing</p></li><li><p>With ease: <abbr title="Graphical User Interface">GUI</abbr> Tools everywhere, almost zero config need</p></li></ul></div>
- <div class="paragraph"><p>Full Features list</p></div>
- <div class="ulist"><ul><li><p>Cross game genre framework for JME3</p><div class="ulist"><ul><li><p><a href="../../jme3/advanced/atom_framework/atomcore.html">General stage - world ; game play and cycle</a></p></li><li><p><a href="../../jme3/advanced/atom_framework/atomcore/entitysystem.html">General Entity framework</a></p></li><li><p><a href="../../jme3/advanced/atom_framework/atomcore/event.html">General Event framework</a></p></li><li><p><a href="../../jme3/advanced/atom_framework/atomcore/config.html">Intuitive config framework</a>- toward zero-config approach</p></li><li><p><a href="../../jme3/advanced/atom_framework/atomcore/actor.html">Actor and interactive agents, workers</a></p></li><li><p><a href="../../jme3/advanced/atom_framework/atomcore/execution.html">Execution and monitor</a></p></li></ul></div></li><li><p>Network | Web ready</p><div class="ulist"><ul><li><p>Web scale support</p></li><li><p><a href="../../jme3/advanced/atom_framework/atomcore/net.html">Network & Messaging framework</a></p></li><li><p><a href="../../jme3/advanced/atom_framework/atomcore/league.html">Social foundation framework</a></p></li></ul></div></li><li><p>Additional to JME3 features (as libraries or toolkits)</p><div class="ulist"><ul><li><p><a href="../../jme3/advanced/atom_framework/atomcore/fx.html">UltimateEffects</a></p><div class="ulist"><ul><li><p><a href="../../jme3/advanced/atom_framework/atomcore/particles.html">UltimateParticles</a></p></li><li><p><a href="../../jme3/advanced/atom_framework/atomcore/sprite.html">Cross dimension model</a></p></li><li><p><a href="../../jme3/advanced/atom_framework/atomcore/filters.html">Filters</a></p></li></ul></div></li><li><p><a href="../../jme3/advanced/atom_framework/atomcore/cinematic.html">Cinematic</a></p></li><li><p><a href="../../jme3/advanced/atom_framework/atomcore/gui.html">General extensible GUI with CSS</a></p></li><li><p><a href="../../jme3/advanced/atom_framework/atomexasset.html">Ultimate asset pipeline</a></p></li><li><p><a href="../../jme3/advanced/atom_framework/atomanim.html">Ultimate animation framework</a></p></li><li><p><a href="../../jme3/advanced/atom_framework/atomelight.html">Extra rendering methods</a></p></li></ul></div></li></ul></div></div>
- <div class="sect2"><h3 id="architecture-and-components">Architecture and components</h3><div class="paragraph"><p>Here are its architecture and components.</p></div>
- <div class="paragraph"><p>iframe::http://bubbl.us/view/1860d6/2fd77c/15vOUTXerN5GQ/[width="800px", height="400px", alt="", scroll="true",border="true",align="false"]</p></div>
- <div class="sect3"><h4 id="atom-core-libraries">Atom Core Libraries</h4><div class="ulist"><ul><li><p><strong><a href="../../jme3/advanced/atom_framework/atomcore.html">AtomCore</a></strong> : addition to JME3 core packages.</p><div class="ulist"><ul><li><p>Cross game-genre elements: stage, cycle, entity, logic, trigger, event, config;</p></li><li><p>Managers: Advanced assets manager, dependecy injection, factory, scripting, basic DB..;</p></li><li><p>Common case: Common state, common scenerio, common UIs…</p></li><li><p>More Buzz? <a href="../../jme3/advanced/atom_framework/atomcore.html">AtomCore documentation</a></p></li></ul></div></li><li><p><strong><a href="../../jme3/advanced/atom_framework/atomscripting.html">Atom Scripting</a></strong> Base technology for use Groovy (potentional Scala, Jython..) as JME game scripting language…</p><div class="ulist"><ul><li><p>Provide Test bed enviroment, thread-safe and intelligent Groovy swing component to extend the SDK in seconds</p></li><li><p>More Buzz? <a href="../../jme3/advanced/atom_framework/atomscripting.html">Atom Scripting</a></p></li></ul></div></li><li><p><strong><a href="../../jme3/advanced/atom_framework/ai.html">Atom AI</a></strong> : a “framework to bring AI to jME3 game (also means real-time application)! But it’s awesome in its own way.</p><div class="ulist"><ul><li><p>Focus in AI coding, creating, testing, simulating, profiling in 3d enviroments.</p></li><li><p>Come with tools as SDK plugins!</p></li><li><p>Check <a href="../../jme3/advanced/atom_framework/ai.html">Atom AI wiki</a> for more buzz</p></li></ul></div></li></ul></div></div>
- <div class="sect3"><h4 id="ingame-editor-facilities-and-kits">Ingame editor facilities and kits</h4><div class="ulist"><ul><li><p><a href="../../jme3/advanced/atom_framework/atomeditor.html">Atom Editor</a>: sotiphicated in-game editor application and <abbr title="Application Programming Interface">API</abbr> for 3D games modelled toward netbean platform architecture. [In constrast with SimpleGameEditor project].</p></li><li><p><a href="../../jme3/advanced/atom_framework/atom2deditor.html">Atom 2D Editor</a>: for 2D games.</p></li><li><p><strong><a href="../../jme3/advanced/atom_framework/codegen.html">Code Gen</a></strong>: a “framework that intend to become the base technologies for all generation related techs in the Atom framework. <a href="../../jme3/advanced/atom_framework/codegen.html">codegen</a></p><div class="ulist"><ul><li><p>Focus in provide general and abstract way to modeling|design game|real-time app concept and object, source codes.</p></li><li><p>Its first attempt to become a GLSL, Groovy generator, then become a Logic, source code generator…</p></li><li><p>Come with tools as SDK plugins!</p></li></ul></div></li><li><p><strong><a href="../../jme3/advanced/atom_framework/citygen.html">City Gen</a></strong>: a “framework at first try to be a city generator, then grow up to be fullfill every geometric generating operations in 3D.</p><div class="ulist"><ul><li><p>Focus in “Level generator with 3d models, blueprint and geometric shapes, such as dugeon, city, rivers, mountain, trees…</p></li><li><p>Can corporate with Code gen and other geometric libs to become a generative 3D editor…</p></li><li><p>Come with tools as SDK plugins!</p></li></ul></div></li></ul></div></div>
- <div class="sect3"><h4 id="atom-sdk">Atom SDK</h4><div class="ulist"><ul><li><p><strong>Atom SDK</strong> : Expansion for current functions and features of the jME SDK on top of Netbean platform for desktop Swing based editing, more intuitive more user friendly and suchs.</p><div class="ulist"><ul><li><p>Full List? <a href="../../jme3/advanced/atom_framework/atomsdk.html">atomsdk</a></p></li></ul></div></li><li><p><strong>TeeheeComposer</strong> : Act as the base editor for video, cinematic, audio, effects, facial composer… anything require time-base keyframed or unlinear editing like sequences.</p><div class="ulist"><ul><li><p>An almighty composer, think about 3DSMax or Adobe After Effect in 3D</p></li><li><p>Come with a lot of tools for the SDK : <a href="../../jme3/advanced/atom_framework/teehee.html">teehee</a></p><div class="ulist"><ul><li><p>Cinematic composer</p></li><li><p>Dialogue composer</p></li><li><p>Effect composer</p></li><li><p>Particle composer</p></li><li><p>Animation composer</p></li></ul></div></li></ul></div></li><li><p><strong>RPGCreator</strong> : Despite of its name, its not just for Role playing game!</p><div class="ulist"><ul><li><p>Provide functions to create| test| config basic game with these key elements : characters| stories| skills| items| modes| regions… almost every game genre has them embeded partly ( cross game genre)</p></li><li><p>Come with tools as SDK plugins! <a href="../../jme3/advanced/atom_framework/rpgcreator.html">rpgcreator</a></p></li></ul></div></li><li><p><strong>Nextgen Tools</strong></p><div class="ulist"><ul><li><p>Facial tools : Think FaceFX for JME :p <a href="../../jme3/advanced/atom_framework/facial.html">facial</a></p></li><li><p>Character customization management tools : Smart way to organize and corporate your assets, config, database and code for CC <a href="../../jme3/advanced/atom_framework/cc.html">cc</a></p></li><li><p>Vitural reality tools : Toolset for corporate vitural reality artifact in your app <a href="../../jme3/advanced/atom_framework/vr.html">vr</a></p></li><li><p>MMORPG tools : Toolset for creating of a MMORPG game’s component and all its management structure. Epic! <a href="../../jme3/advanced/atom_framework/mmorpgtools.html">mmorpgtools</a></p></li><li><p>Human Simulation tools: Think advanced locomotion and AI (like Mechanim of Unity) multiply 10. In fact, it’s quite similar with tool from Autodesk that simulations social beheviours of human characters. Epic! <a href="../../jme3/advanced/atom_framework/humansim.html">humansim</a></p></li></ul></div></li></ul></div></div>
- <div class="sect3"><h4 id="atomex-libraries-and-platform">AtomEx Libraries and platform</h4><div class="ulist"><ul><li><p><strong>Atom Ex</strong> : addition to Atom framework which make its much more modulizable, extensible and enterprise ready. Distributed computing, web based, database… much more.</p><div class="ulist"><ul><li><p>More Buzz? <a href="../../jme3/advanced/atom_framework/atomex.html">AtomEx documentation</a></p></li></ul></div></li></ul></div></div></div>
- <div class="sect2"><h3 id="vision">Vision</h3><div class="sect3"><h4 id="java-again">Java,…​ again??!</h4><div class="paragraph"><p>Yeah, it was long time ago, you quit learning java because java gaming is a dead end.</p></div>
- <div class="paragraph"><p>But Android come to play, and the the market are open so freaking big that even companies live with their C++ code base want to take advantage of the new wave…</p></div>
- <div class="paragraph"><p>Recently Java has so much improvements and then JME3 enchant the talents all around the world to develop the master peices of software!</p></div></div>
- <div class="sect3"><h4 id="but-did-we-chasing-after-them">But did we chasing after them?</h4><div class="paragraph"><p>No, we are not. We are going ahead of them with all the techniques from the almightly open-source.</p></div>
- <div class="paragraph"><p>Java communities are much more open and helpful than any of those Microsoft, Apple, UDK, Unity,… evils… Let’s make a fairplay at last!</p></div></div>
- <div class="sect3"><h4 id="can-we-win">Can we win?</h4><div class="paragraph"><p>The time will tell… but at least, we once gain give the power to the hands of the people, not just some rich and intelligent people, that’s the most critical point!</p></div></div></div>
- <div class="sect2"><h3 id="project-status">Project status</h3><div class="paragraph"><p>If you interest in contribute to Atom framework open-sourced project, here is the status of the project in 2014 and some mile stones it want to reach in the future.</p></div>
- <div class="paragraph"><p><a href="../../jme3/advanced/atom_framework/status.html">Atom framework open-sourced project Status - 2014</a></p></div></div>
- <div class="sect2"><h3 id="other-open-source-dependencies">Other open-source dependencies</h3><div class="paragraph"><p>Actually it use directly/indirectly various projects of JME3 great contributors and open source projects:</p></div>
- <div class="ulist"><ul><li><p>AI from @Sploreg,@shirkit and mine</p></li><li><p>VirtualReallity integrated with OpenCV, JavaCV : @noncom + mine</p></li><li><p>ShaderBlow from @mifth</p></li><li><p>SpriteEngine @dansion</p></li><li><p>Forestor from @androlo</p></li><li><p>Multiplayer on top of MirrorMonkey, Kryonet, Arianne, ThreeRings, …</p></li><li><p>MonkeyZone code which I believe written by @normen @nehon and core guys :p</p></li><li><p>Database using Cayenne, Depot</p></li><li><p>… other contributors</p></li></ul></div>
- <div class="paragraph"><p>( I will add them later :p please forgive if I can’t remember your name immediately )</p></div>
- <div class="admonitionblock warning"><table><tr><td class="icon"><i class="fa icon-warning" title="Warning"></i></td><td class="content"><div class="paragraph"><p>Hundred of opensource projects…Nail it</p></div></td></tr></table></div>
- <div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p><em>I want to thank all of you for you great great great contributions, help me and my friends here to start learning game programming and doing our own game. Salute! My job is to glue the those great gems together, (pretty time consuming job) :</em></p></div></td></tr></table></div>
- <div class="paragraph"><p>As the spliting above, then I will make two different topic to keep them separate, the Atom framework and the Series of game making.</p></div>
- <div class="paragraph"><p><a href="../../jme3/atomixtuts.html">Atomix Series of game making</a></p></div>
- <div class="paragraph"><p>GOTO <a href="../../jme3/advanced/atom_framework/docs.html">Detailed Atom framework Documentation</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2016-07-22 07:15:15 UTC</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
- apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
- indexName: 'jmonkeyengine',
- inputSelector: '#doc-search',
- debug: false // Set debug to true if you want to inspect the dropdown
- });</script></body></html>
|