Atom framework Introduction
Atom framework for game developing in Java. Powered by JME3.
Atom 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!
Go to the Atomix Game making tutorials. atomixtuts
Atom Core : The AtomCore source code is hosted in Googlecode
Idea & Buzz
Better, more freedom, more fun!
UDK and Unity 's battle field, I’ve dreamt about making even better game engine with the help of my 2 fav technologies - Java and opensource.
JME3 and Netbean combination are the most brighten idea I 've seen in years. I think it deserve a better reputation worldwide.
Ease the learning curve
Fun play/create game like kids in a sandbox
Framework for games and apps(3D)
Why call it Atom?
Yes, this is for game developing. But in its heart is future’s technologies.
Atom Etymology: Devive the thing as small as you can, than compose it into a thing again.
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.
The most conceptual inspiration for Atom framework is project http://ptolemy.eecs.berkeley.edu/index.htm . 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.
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
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.
Atom framework Highlights*
Flexible: Game | simulations centric but not forced!
Modular: Dependency injection along with Component injection
Parallel: Embrace parallel computing
Next gen: Come with Bleeding edge technologies and powers of Java languages
Cloud ready: Scale to web and distributed computing
With ease: GUI Tools everywhere, almost zero config need
Full Features list
Cross game genre framework for JME3
Network | Web ready
Additional to JME3 features (as libraries or toolkits)
Architecture and components
Here are its architecture and components.
iframe::http://bubbl.us/view/1860d6/2fd77c/15vOUTXerN5GQ/[width="800px", height="400px", alt="", scroll="true",border="true",align="false"]
Atom Core Libraries
AtomCore : addition to JME3 core packages.
Cross game-genre elements: stage, cycle, entity, logic, trigger, event, config;
Managers: Advanced assets manager, dependecy injection, factory, scripting, basic DB..;
Common case: Common state, common scenerio, common UIs…
More Buzz? AtomCore documentation
Atom Scripting Base technology for use Groovy (potentional Scala, Jython..) as JME game scripting language…
Provide Test bed enviroment, thread-safe and intelligent Groovy swing component to extend the SDK in seconds
More Buzz? Atom Scripting
Atom AI : a “framework to bring AI to jME3 game (also means real-time application)! But it’s awesome in its own way.
Focus in AI coding, creating, testing, simulating, profiling in 3d enviroments.
Come with tools as SDK plugins!
Check Atom AI wiki for more buzz
Ingame editor facilities and kits
Atom Editor: sotiphicated in-game editor application and API for 3D games modelled toward netbean platform architecture. [In constrast with SimpleGameEditor project].
Atom 2D Editor: for 2D games.
Focus in provide general and abstract way to modeling|design game|real-time app concept and object, source codes.
Its first attempt to become a GLSL, Groovy generator, then become a Logic, source code generator…
Come with tools as SDK plugins!
City Gen: a “framework at first try to be a city generator, then grow up to be fullfill every geometric generating operations in 3D.
Focus in “Level generator with 3d models, blueprint and geometric shapes, such as dugeon, city, rivers, mountain, trees…
Can corporate with Code gen and other geometric libs to become a generative 3D editor…
Come with tools as SDK plugins!
Atom SDK : 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.
Full List? atomsdk
TeeheeComposer : Act as the base editor for video, cinematic, audio, effects, facial composer… anything require time-base keyframed or unlinear editing like sequences.
An almighty composer, think about 3DSMax or Adobe After Effect in 3D
Come with a lot of tools for the SDK : teehee
RPGCreator : Despite of its name, its not just for Role playing game!
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)
Come with tools as SDK plugins! rpgcreator
Facial tools : Think FaceFX for JME :p facial
Character customization management tools : Smart way to organize and corporate your assets, config, database and code for CC cc
Vitural reality tools : Toolset for corporate vitural reality artifact in your app vr
MMORPG tools : Toolset for creating of a MMORPG game’s component and all its management structure. Epic! mmorpgtools
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! humansim
AtomEx Libraries and platform
Atom Ex : addition to Atom framework which make its much more modulizable, extensible and enterprise ready. Distributed computing, web based, database… much more.
More Buzz? AtomEx documentation
Yeah, it was long time ago, you quit learning java because java gaming is a dead end.
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…
Recently Java has so much improvements and then JME3 enchant the talents all around the world to develop the master peices of software!
But did we chasing after them?
No, we are not. We are going ahead of them with all the techniques from the almightly open-source.
Java communities are much more open and helpful than any of those Microsoft, Apple, UDK, Unity,… evils… Let’s make a fairplay at last!
Can we win?
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!
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.
Other open-source dependencies
Actually it use directly/indirectly various projects of JME3 great contributors and open source projects:
AI from @Sploreg,@shirkit and mine
VirtualReallity integrated with OpenCV, JavaCV : @noncom + mine
ShaderBlow from @mifth
Forestor from @androlo
Multiplayer on top of MirrorMonkey, Kryonet, Arianne, ThreeRings, …
MonkeyZone code which I believe written by @normen @nehon and core guys :p
Database using Cayenne, Depot
… other contributors
( I will add them later :p please forgive if I can’t remember your name immediately )
Hundred of opensource projects…Nail it
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) :
As the spliting above, then I will make two different topic to keep them separate, the Atom framework and the Series of game making.