==== Wording ====
 
==== Wording ====
   −
In the following sections, i'm going to use AE for jPCT-AE and jPCT for desktop jPCT.
+
In the following sections, i'm going to use AE for [http://www.jpct.net/jpct-ae jPCT-AE] and jPCT for desktop [http://www.jpct.net jPCT].
          
AE provides the 3D engine only. It doesn't provide any Activity example or framework for Android. You'll find some example code on [http://www.jpct.net/jpct-ae/ the AE-homepage]. So porting from jPCT to AE means to port from your native OpenGL window or AWT/Swing component with its key and mouse polling and/or listeners to an Android Activity...and vice versa.
 
AE provides the 3D engine only. It doesn't provide any Activity example or framework for Android. You'll find some example code on [http://www.jpct.net/jpct-ae/ the AE-homepage]. So porting from jPCT to AE means to port from your native OpenGL window or AWT/Swing component with its key and mouse polling and/or listeners to an Android Activity...and vice versa.
To ease porting, I suggest to use the Lights class for managing lights in jPCT, not the methods in World. That way, you can simply port those sections by changing the import only (because the Lights class has moved from util into the main package). It's cleaner that way anyway...
+
To ease porting, I suggest to use the Light class for managing lights in jPCT, not the methods in World. That way, you can simply port those sections by changing the import only (because the Light class has moved from util into the main package). It's cleaner that way anyway...
    
==== Performance and memory issues, serialized objects ====
 
==== Performance and memory issues, serialized objects ====
   −
On the desktop, memory and performance are to spare...at least to a degree. On Android, this isn't the case. Remember that you have to work with a max memory of 16mb...and coming close to that border isn't really fun, so you should plan to use some mb less. CPU power is limited too and many phones don't even have a FPU, meaning that all the floating point calculations are done in software emulation mode.
+
On the desktop, memory and performance are to spare...at least to a degree. On Android, this isn't the case. Remember that you have to work with a max memory of 16mb on older devices...and coming close to that border isn't really fun, so you should plan to use some mb less. CPU power is limited too and some older phones don't even have a FPU, meaning that all the floating point calculations are done in software emulation mode.
   Unexpected non-MediaWiki exception encountered, of type "Error"
[9564f935] /wiki/index.php?title=Differences_between_jPCT_and_jPCT-AE&diff=633&oldid=389 Exception from line 436 of /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DairikiDiff.php: Call to undefined function each()
Backtrace:
#0 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DairikiDiff.php(546): DiffEngine->diag(integer, integer, integer, integer, integer)
#1 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DairikiDiff.php(347): DiffEngine->compareSeq(integer, integer, integer, integer)
#2 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DairikiDiff.php(228): DiffEngine->diffLocal(array, array)
#3 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DairikiDiff.php(725): DiffEngine->diff(array, array)
#4 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DairikiDiff.php(864): Diff->__construct(array, array)
#5 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DairikiDiff.php(987): MappedDiff->__construct(array, array, array, array)
#6 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/TableDiffFormatter.php(193): WordLevelDiff->__construct(array, array)
#7 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DiffFormatter.php(143): TableDiffFormatter->changed(array, array)
#8 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DiffFormatter.php(83): DiffFormatter->block(integer, integer, integer, integer, array)
#9 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DifferenceEngine.php(939): DiffFormatter->format(Diff)
#10 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DifferenceEngine.php(844): DifferenceEngine->textDiff(string, string)
#11 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DifferenceEngine.php(860): DifferenceEngine->{closure}()
#12 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DifferenceEngine.php(813): DifferenceEngine->generateTextDiffBody(string, string)
#13 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DifferenceEngine.php(743): DifferenceEngine->generateContentDiffBody(WikitextContent, WikitextContent)
#14 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DifferenceEngine.php(665): DifferenceEngine->getDiffBody()
#15 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DifferenceEngine.php(635): DifferenceEngine->getDiff(string, string, string)
#16 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/diff/DifferenceEngine.php(443): DifferenceEngine->showDiff(string, string, string)
#17 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/Article.php(826): DifferenceEngine->showDiffPage(boolean)
#18 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/Article.php(549): Article->showDiffPage()
#19 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/actions/ViewAction.php(44): Article->view()
#20 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/Wiki.php(487): ViewAction->show()
#21 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/Wiki.php(285): MediaWiki->performAction(Article, Title)
#22 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/Wiki.php(647): MediaWiki->performRequest()
#23 /zstore/backups/cn10/home/ws10522/public_html/wiki/includes/Wiki.php(506): MediaWiki->main()
#24 /zstore/backups/cn10/home/ws10522/public_html/wiki/index.php(48): MediaWiki->run()
#25 {main}