Sfoglia il codice sorgente

Fixed out of sequence titles.

mitm 8 anni fa
parent
commit
1261afd5fd

+ 18 - 18
src/docs/asciidoc/jme3/advanced/atom_framework/atomcore/cycle.adoc

@@ -1,6 +1,6 @@
 = cycle
-:author: 
-:revnumber: 
+:author:
+:revnumber:
 :revdate: 2016/03/17 20:48
 :relfileprefix: ../../../../
 :imagesdir: ../../../..
@@ -10,18 +10,18 @@ ifdef::env-github,env-browser[:outfilesuffix: .adoc]
 
 == Well defined Cycles
 
-Cycle are ordered activities which repeat over and over during the entire application life time. It's usually referred as game loop. 
+Cycle are ordered activities which repeat over and over during the entire application life time. It's usually referred as game loop.
 
 If you see a cycle as a list (ordered collection) of actions that the application does one at a time. You will see the application Iterate over them. In the opposite view (or in the action body), a traveller (usually data) seen it drag from one to the next one, so call pull to next step.
 
-As Atom also support reactive programming, it's essential that developer should understand clearly what is the benefit of program with this direction or other. To get (Between) BEST OF BOTH WORLD! 
+As Atom also support reactive programming, it's essential that developer should understand clearly what is the benefit of program with this direction or other. To get (Between) BEST OF BOTH WORLD!
 
 
 === Why 6?
 
 Game programmer usually stick with 3 steps execution
 
-.  init 
+.  init
 .  update
 .  destroy
 
@@ -34,7 +34,7 @@ Instead of that, Atom use 6 steps execution cycle:
 .  update
 .  finish
 
-These 6, I carefully learnt from other “good module and component framework I 've use: Wicket, OSGi,Spring…they have different steps number! 
+These 6, I carefully learnt from other “good module and component framework I 've use: Wicket, OSGi,Spring…they have different steps number!
 
 link:http://wicketguide.comsysto.com/guide/chapter6.html#chapter6_1[http://wicketguide.comsysto.com/guide/chapter6.html#chapter6_1]
 
@@ -54,7 +54,7 @@ For a real-time game, we need 2 more:
 
 ....
 load, update
- 
+
 ....
 
 “Config method is kind of a replicate of “init or “load, or confusion of these two, even can be done in “update somehow but in fact, it's worth to be separated. The config step will help you gain a lot in the way to extend the frameworks or to adapt/scale  your game to smaller or bigger usecase, anyway 6 “is not too much but enough !
@@ -72,9 +72,9 @@ Swing-MVC concepts are embeded in a event-driven enviroment… and it's actually
 
 Real-time application can be event-driven or not. As my exprience, apply this Swing-MVC to real-time application not usually help greatly but sounds very confused and blury. It can help if you too familiar with it anyway, but be careful or you break the MVC contracts easily and make it not useful. You can blindy apply it without concerning of consequence, but that don’t make any sense.
 
-The solid and only reason to say JME3 is pull and push, and why we still has to stop once for a while because of OpenGL via LWJGL is still monotholic! Not the GPU processing or GPU-CPU data exchange. So we still have to stop at the renderer's door, knock and wait until its done, then go to next step? Umh not quite. 
+The solid and only reason to say JME3 is pull and push, and why we still has to stop once for a while because of OpenGL via LWJGL is still monotholic! Not the GPU processing or GPU-CPU data exchange. So we still have to stop at the renderer's door, knock and wait until its done, then go to next step? Umh not quite.
 
-But to do this, we have to not depend in the update() and render() methods to get to total freedom. 
+But to do this, we have to not depend in the update() and render() methods to get to total freedom.
 
 
 ==== Concurrent / Parallel world
@@ -92,8 +92,8 @@ link:https://github.com/Netflix/RxJava/wiki[https://github.com/Netflix/RxJava/wi
 
 Even if “Cycle- which we used to known is just a conceptual view of points, my solution for this problem is to declare several new kinds of well-defined “Cycle :
 
-.  Push cycle 
-.  Pull cycle 
+.  Push cycle
+.  Pull cycle
 .  Non-cycle
 
 … because defining routines in Atom is not only free but also helps in a lot of situations like when you interact with GUIs, networks or webs.
@@ -101,7 +101,7 @@ Even if “Cycle- which we used to known is just a conceptual view of points, my
 
 ===== Pull cycle
 
-To connect to Swing MVC (also a pull cycle) with events, you can wrap them in Actors and let events send as messages between actors. The Swing actor in the EDT act as the brigde here. 
+To connect to Swing MVC (also a pull cycle) with events, you can wrap them in Actors and let events send as messages between actors. The Swing actor in the EDT act as the brigde here.
 
 
 ===== Push cycle
@@ -111,7 +111,7 @@ As in functional reactive programming and flow based programming, functions (sma
 
 ===== Non-cycle
 
-A serial of Tasks can also form atribinary routines ( non-cycle) and be coordinated together via Data they exchange. 
+A serial of Tasks can also form atribinary routines ( non-cycle) and be coordinated together via Data they exchange.
 
 
 [TIP]
@@ -124,7 +124,7 @@ Goto AtomPar for more concurrent/ paralell concepts and advices
 == Customable cycles
 
 
-==== Customable routines
+=== Customable routines
 
 Via tasks and workers, you can atribinary make your own cycle that do anything around and later participate in the rendering stage and JME logic stage (if they want).
 
@@ -137,16 +137,16 @@ Read: <<jme3/advanced/atom_framework/atomcore/concurrent#, AtomPar>>
 
 Bucket is a way to layered your rendering queue into layers or separate them into different categories (aka buckets) to handle differently.
 
-With a composable comperator, a sub-list from a list, or a sub-tree from a tree, even a sub-graph from a entire scene graph can be extracted, or the whole collection can be sorted arcordingly. Custom bucket in Atom framework is implemented in AtomLight package to extend JME3 rendering pipeline. 
+With a composable comperator, a sub-list from a list, or a sub-tree from a tree, even a sub-graph from a entire scene graph can be extracted, or the whole collection can be sorted arcordingly. Custom bucket in Atom framework is implemented in AtomLight package to extend JME3 rendering pipeline.
 
-Note that a custom bucket is not very efficient! Even though if you enable a setting, Atom will take care of its render order and the update will be “IO wise with special indexing structure call B-Tree. If you use it without cautions it can require a lot of memory and make your rendering suffer. 
+Note that a custom bucket is not very efficient! Even though if you enable a setting, Atom will take care of its render order and the update will be “IO wise with special indexing structure call B-Tree. If you use it without cautions it can require a lot of memory and make your rendering suffer.
 
 
 == Cycle & Scale
 
 You can see there is a trend for networks call non blocking IO, which Node.js is the first most and remarkable success. In that world, there is actually not a wellform cycle or turn at all. Because if there is a Queue or a lock, a insist port holder or an strict order (like a cycle), it can not scale at all!!
 
-In fact the atribinary networks and async data signals have a lot more problems than we can possible imagine. Not everything can be fast and precise…Some parts (services) may be slow by intend, some parts cause errors frequently. 
+In fact the atribinary networks and async data signals have a lot more problems than we can possible imagine. Not everything can be fast and precise…Some parts (services) may be slow by intend, some parts cause errors frequently.
 
 The fault torrent architecture of AtomEx make sure some sercurity and transactional problems are shielded. AtomDust in another hand focus in highly loose mobile devices and atribinay short range connections. Those carefully design systems for usecases actually make Atom suitable even without a real Cycle.
 
@@ -161,7 +161,7 @@ Read more about AtomEx for Cloud scale and AtomDust of Mobile scale.
 == Technical reviews
 
 
-==== Cycle (or ring)
+=== Cycle (or ring)
 
 
 ==== Cicular (or ring) buffer