== Codegen Introduction Code generator for various - cross platform programming languages and paradims. All in one! Powered by AtomCore and JME3. ==== Inspired by ECore UML MetaWidget Other game engines and editor: UDK, Unity, Blender, GameMaker… Other node base editor: Web world: === Features Node & Flow & Graph base Model base Scope & Instruction & Control base === Comparasion ==== VS MetaWidget OIM link:http://metawidget.org/[http://metawidget.org/] is for generating UI from objects. *CodeGen* is for generating data (objects) from (data) objects. ==== VS EMF link:https://www.eclipse.org/modeling/emf/[https://www.eclipse.org/modeling/emf/] link:http://www.eclipse.org/ecoretools/[http://www.eclipse.org/ecoretools/] is for model based generation. *CodeGen* works upon EMF and also support others: flow base - scope base paradigm. CodeGen tools toward Netbean instead of Eclipse to suite with JME3's SDK. Also CodeGen toward Games, not general applications! ==== VS Morph/ BeanMapping / ORM Work in higher level than those. That's said! *CodeGen* work in higher level, solve other problems and depends on MetaWidget, EMF, Morph, BeanMapping and ORM. == First look === Generation link:http://en.wikipedia.org/wiki/Code_generation_%28compiler%29[http://en.wikipedia.org/wiki/Code_generation_%28compiler%29] Atom support code generation from multiple sources and to various targets to help speed up and unite production pipeline. CodeGen - Ultimate tools for code genration corporate with AtomExAsset - Ultimate tools for game assets management is 2 facilities in charge for the job. Sources * UML * ECore * Java code or Java classes with annotations * Code gen diagrams (modified UML diagrams for games) * 3D Model and assets Targets * Other Model format - via ECore, UML * Groovy or Java - via ECore, UML, ANTLR * Java bytecode - via instrument and transformation ASM * JavaScript - via GWT, ANTLR (supervisor translation) * StringTemplate, XML, Text, Configurations … and other textbased - via StringTemplate * Assetpack and other kind of assets - via processing pipeline === Simulation == Architecture & Designs === MetaWidget Architecture link:http://metawidget.sourceforge.net/doc/reference/en/html/ch02.html[http://metawidget.sourceforge.net/doc/reference/en/html/ch02.html] link:http://metawidget.sourceforge.net/elevator.php[http://metawidget.sourceforge.net/elevator.php] “ === EMF Architecture link:http://wiki.eclipse.org/index.php/EMF/FAQ[http://wiki.eclipse.org/index.php/EMF/FAQ] === CodeGen Architecture The initial idea of CodeGen is “there is similarity between two, there is a transform available, learnt from above. Also take a look at wisdoms and <> which AtomCore sketchs for Generation: * [Math] A function from one set to another set. * [Physics] Energy from one form to another. * [Language] Translate sematic from one to another language need a dictionary. * [Art] Nothing new, just a cover * [Computing] Template is a good abstraction of algorimths. * [Programming] DRY and open source. * [New techs & trends] Topology and well defined network actually a virtue. === Layouts GraphLayout === Builders BlockBuilder === Blocks CodeBlock PlaceHolderBlock == Documentation