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
is for generating UI from objects.
CodeGen is for generating data (objects) from (data) objects.
VS EMF
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
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
MORAL: Object has “similar semantic with its UI. A thing has conceptal similarties with its representation, if there is a projection from it to the representation. |
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 Algorithms 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