release.html 55 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1">
  6. <title>Engine Release Guide :: jMonkeyEngine Docs</title>
  7. <link rel="canonical" href="https://wiki.jmonkeyengine.org/docs/3.8/release.html">
  8. <link rel="prev" href="documentation.html">
  9. <link rel="next" href="tutorials/beginner/beginner.html">
  10. <meta name="generator" content="Antora 3.0.1">
  11. <link rel="stylesheet" href="../../_/css/site.css">
  12. <meta property="og:image" content="https://wiki.jmonkeyengine.org/_/img/iconx128.png">
  13. <meta property="og:description" content="Engine Release Guide">
  14. <meta property="og:title" content="jMonkeyEngine Docs">
  15. <link rel="stylesheet" href="../../_/css/site-extra.css">
  16. <link rel="stylesheet" href="../../_/css/vendor/docsearch.min.css">
  17. <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css -->
  18. <link rel="icon" href="../../_/img/favicon.ico" type="image/x-icon">
  19. </head>
  20. <body class="article">
  21. <header class="header">
  22. <nav class="navbar">
  23. <div class="navbar-brand">
  24. <a class="navbar-item" href="https://wiki.jmonkeyengine.org">
  25. <img alt="" src="../../_/img/jme-logo.png" height="32" type="image/x-icon">
  26. </a>
  27. <div class="navbar-item hide-for-print">
  28. <input id="search-input" type="text" placeholder="Search docs">
  29. </div>
  30. <button class="navbar-burger" data-target="topbar-nav">
  31. <span></span>
  32. <span></span>
  33. <span></span>
  34. </button>
  35. </div>
  36. <div id="topbar-nav" class="navbar-menu">
  37. <div class="navbar-end">
  38. <div class="navbar-item theme-switch-wrapper">
  39. <label class="theme-switch" for="checkbox">
  40. <input type="checkbox" id="checkbox" />
  41. <div class="slider round"></div>
  42. </label>
  43. </div>
  44. <a class="navbar-item" href="https://github.com/jmonkeyengine/wiki">Github</a>
  45. </div>
  46. </div>
  47. </nav>
  48. </header>
  49. <div class="body">
  50. <div class="nav-container" data-component="docs" data-version="3.4">
  51. <aside class="nav">
  52. <div class="panels">
  53. <div class="nav-panel-menu is-active" data-panel="menu">
  54. <nav class="nav-menu">
  55. <h3 class="title"><a href="documentation.html">JME</a></h3>
  56. <ul class="nav-list">
  57. <li class="nav-item" data-depth="0">
  58. <ul class="nav-list">
  59. <li class="nav-item" data-depth="1">
  60. <a class="nav-link" href="documentation.html">Getting Started</a>
  61. </li>
  62. <li class="nav-item" data-depth="1">
  63. <a class="nav-link" href="https://javadoc.jmonkeyengine.org/v3.4.1-stable">JavaDoc</a>
  64. </li>
  65. <li class="nav-item is-current-page" data-depth="1">
  66. <a class="nav-link" href="release.html">Release Guide</a>
  67. </li>
  68. </ul>
  69. </li>
  70. <li class="nav-item" data-depth="0">
  71. <ul class="nav-list">
  72. <li class="nav-item" data-depth="1">
  73. <button class="nav-item-toggle"></button>
  74. <a class="nav-link" href="tutorials/beginner/beginner.html">Beginner Tutorials</a>
  75. <ul class="nav-list">
  76. <li class="nav-item" data-depth="2">
  77. <a class="nav-link" href="tutorials/beginner/hello_simpleapplication.html">Hello SimpleApplication</a>
  78. </li>
  79. <li class="nav-item" data-depth="2">
  80. <a class="nav-link" href="tutorials/beginner/hello_node.html">Hello Node</a>
  81. </li>
  82. <li class="nav-item" data-depth="2">
  83. <a class="nav-link" href="tutorials/beginner/hello_asset.html">Hello Asset</a>
  84. </li>
  85. <li class="nav-item" data-depth="2">
  86. <a class="nav-link" href="tutorials/beginner/hello_main_event_loop.html">Hello Update Loop</a>
  87. </li>
  88. <li class="nav-item" data-depth="2">
  89. <a class="nav-link" href="tutorials/beginner/hello_input_system.html">Hello Input System</a>
  90. </li>
  91. <li class="nav-item" data-depth="2">
  92. <a class="nav-link" href="tutorials/beginner/hello_material.html">Hello Material</a>
  93. </li>
  94. <li class="nav-item" data-depth="2">
  95. <a class="nav-link" href="tutorials/beginner/hello_animation.html">Hello Animation</a>
  96. </li>
  97. <li class="nav-item" data-depth="2">
  98. <a class="nav-link" href="tutorials/beginner/hello_picking.html">Hello Picking</a>
  99. </li>
  100. <li class="nav-item" data-depth="2">
  101. <a class="nav-link" href="tutorials/beginner/hello_collision.html">Hello Collision</a>
  102. </li>
  103. <li class="nav-item" data-depth="2">
  104. <a class="nav-link" href="tutorials/beginner/hello_terrain.html">Hello Terrain</a>
  105. </li>
  106. <li class="nav-item" data-depth="2">
  107. <a class="nav-link" href="tutorials/beginner/hello_audio.html">Hello Audio</a>
  108. </li>
  109. <li class="nav-item" data-depth="2">
  110. <a class="nav-link" href="tutorials/beginner/hello_effects.html">Hello Effects</a>
  111. </li>
  112. <li class="nav-item" data-depth="2">
  113. <a class="nav-link" href="tutorials/beginner/hello_physics.html">Hello Physics</a>
  114. </li>
  115. </ul>
  116. </li>
  117. <li class="nav-item" data-depth="1">
  118. <button class="nav-item-toggle"></button>
  119. <span class="nav-text">Key Concepts</span>
  120. <ul class="nav-list">
  121. <li class="nav-item" data-depth="2">
  122. <a class="nav-link" href="tutorials/concepts/best_practices.html">Best Practices</a>
  123. </li>
  124. <li class="nav-item" data-depth="2">
  125. <a class="nav-link" href="tutorials/concepts/optimization.html">Optimization</a>
  126. </li>
  127. <li class="nav-item" data-depth="2">
  128. <a class="nav-link" href="tutorials/concepts/faq.html">Frequently Asked Questions</a>
  129. </li>
  130. <li class="nav-item" data-depth="2">
  131. <a class="nav-link" href="tutorials/concepts/math_for_dummies.html">Math for Dummies</a>
  132. </li>
  133. <li class="nav-item" data-depth="2">
  134. <a class="nav-link" href="tutorials/concepts/math.html">Math overview</a>
  135. </li>
  136. <li class="nav-item" data-depth="2">
  137. <a class="nav-link" href="tutorials/concepts/math_cheet_sheet.html">3D math "cheat sheet"</a>
  138. </li>
  139. <li class="nav-item" data-depth="2">
  140. <a class="nav-link" href="tutorials/concepts/rotate.html">3-D Rotation</a>
  141. </li>
  142. <li class="nav-item" data-depth="2">
  143. <a class="nav-link" href="tutorials/concepts/math_video_tutorials.html">Math video tutorial series</a>
  144. </li>
  145. <li class="nav-item" data-depth="2">
  146. <a class="nav-link" href="tutorials/concepts/multi-media_asset_pipeline.html">Multi-Media Asset Pipeline</a>
  147. </li>
  148. <li class="nav-item" data-depth="2">
  149. <a class="nav-link" href="tutorials/concepts/the_scene_graph.html">The Scene Graph</a>
  150. </li>
  151. <li class="nav-item" data-depth="2">
  152. <a class="nav-link" href="tutorials/concepts/scenegraph_for_dummies.html">Scene Graph for Dummies</a>
  153. </li>
  154. <li class="nav-item" data-depth="2">
  155. <a class="nav-link" href="tutorials/concepts/terminology.html">3D Graphics Terminology</a>
  156. </li>
  157. <li class="nav-item" data-depth="2">
  158. <a class="nav-link" href="tutorials/concepts/transparency_sorting.html">Transparency Sorting</a>
  159. </li>
  160. </ul>
  161. </li>
  162. <li class="nav-item" data-depth="1">
  163. <button class="nav-item-toggle"></button>
  164. <span class="nav-text">Articles and How-to&#8217;s</span>
  165. <ul class="nav-list">
  166. <li class="nav-item" data-depth="2">
  167. <button class="nav-item-toggle"></button>
  168. <span class="nav-text">How to Model</span>
  169. <ul class="nav-list">
  170. <li class="nav-item" data-depth="3">
  171. <a class="nav-link" href="tutorials/how-to/modeling/3dsmax/3dsmax.html">3dsmax</a>
  172. </li>
  173. <li class="nav-item" data-depth="3">
  174. <button class="nav-item-toggle"></button>
  175. <a class="nav-link" href="tutorials/how-to/modeling/blender/blender.html">Blender</a>
  176. <ul class="nav-list">
  177. <li class="nav-item" data-depth="4">
  178. <a class="nav-link" href="tutorials/how-to/modeling/blender/blender_buffer_clearing.html">Buffer Clearing</a>
  179. </li>
  180. <li class="nav-item" data-depth="4">
  181. <a class="nav-link" href="tutorials/how-to/modeling/blender/blender_gltf.html">Export as GlTF</a>
  182. </li>
  183. <li class="nav-item" data-depth="4">
  184. <a class="nav-link" href="tutorials/how-to/modeling/blender/blender_ogre_export.html">Export as Ogre XML</a>
  185. </li>
  186. <li class="nav-item" data-depth="4">
  187. <a class="nav-link" href="tutorials/how-to/modeling/blender/blender_ogre_compatibility.html">Ogre Compatibility</a>
  188. </li>
  189. <li class="nav-item" data-depth="4">
  190. <a class="nav-link" href="tutorials/how-to/modeling/blender/makehuman.html">MakeHuman</a>
  191. </li>
  192. <li class="nav-item" data-depth="4">
  193. <a class="nav-link" href="tutorials/how-to/modeling/blender/makehuman_blender_ogrexml_toolchain.html">MakeHuman toolchain</a>
  194. </li>
  195. </ul>
  196. </li>
  197. </ul>
  198. </li>
  199. <li class="nav-item" data-depth="2">
  200. <button class="nav-item-toggle"></button>
  201. <span class="nav-text">How to Animate</span>
  202. <ul class="nav-list">
  203. <li class="nav-item" data-depth="3">
  204. <button class="nav-item-toggle"></button>
  205. <span class="nav-text">Mixamo</span>
  206. <ul class="nav-list">
  207. <li class="nav-item" data-depth="4">
  208. <a class="nav-link" href="tutorials/how-to/modeling/blender/mixamo.html">Blender Models</a>
  209. </li>
  210. <li class="nav-item" data-depth="4">
  211. <button class="nav-item-toggle"></button>
  212. <span class="nav-text">Video</span>
  213. <ul class="nav-list">
  214. <li class="nav-item" data-depth="5">
  215. <a class="nav-link" href="https://youtu.be/jHgAgTWIers?list=PLv6qR9TGkz8RcUr-fOHI2SksWA4BAU9TS">Part 1- Download Model</a>
  216. </li>
  217. <li class="nav-item" data-depth="5">
  218. <a class="nav-link" href="https://youtu.be/GQJSrOpNQwI?list=PLv6qR9TGkz8RcUr-fOHI2SksWA4BAU9TS">Part 2- Rig and Animate</a>
  219. </li>
  220. <li class="nav-item" data-depth="5">
  221. <a class="nav-link" href="https://youtu.be/JzRe2Dxbcmc?list=PLv6qR9TGkz8RcUr-fOHI2SksWA4BAU9TS">Part 3- Import to JME</a>
  222. </li>
  223. <li class="nav-item" data-depth="5">
  224. <a class="nav-link" href="https://youtu.be/8wwDRDJop7k?list=PLv6qR9TGkz8RcUr-fOHI2SksWA4BAU9TS">Part 4- Play Animation</a>
  225. </li>
  226. </ul>
  227. </li>
  228. </ul>
  229. </li>
  230. </ul>
  231. </li>
  232. <li class="nav-item" data-depth="2">
  233. <a class="nav-link" href="tutorials/how-to/debugging.html">Debugging with Wireframes</a>
  234. </li>
  235. <li class="nav-item" data-depth="2">
  236. <a class="nav-link" href="tutorials/how-to/util/free_skymaps.html">How to create free skymaps</a>
  237. </li>
  238. <li class="nav-item" data-depth="2">
  239. <button class="nav-item-toggle"></button>
  240. <span class="nav-text">Java Tips</span>
  241. <ul class="nav-list">
  242. <li class="nav-item" data-depth="3">
  243. <a class="nav-link" href="tutorials/how-to/java/localization.html">Localization</a>
  244. </li>
  245. <li class="nav-item" data-depth="3">
  246. <a class="nav-link" href="tutorials/how-to/java/swing_canvas.html">Swing Canvas</a>
  247. </li>
  248. <li class="nav-item" data-depth="3">
  249. <a class="nav-link" href="tutorials/how-to/java/logging.html">Logging</a>
  250. </li>
  251. <li class="nav-item" data-depth="3">
  252. <a class="nav-link" href="tutorials/how-to/java/read_graphic_card_capabilites.html">Read Graphics Capabilities</a>
  253. </li>
  254. </ul>
  255. </li>
  256. <li class="nav-item" data-depth="2">
  257. <button class="nav-item-toggle"></button>
  258. <span class="nav-text">Articles</span>
  259. <ul class="nav-list">
  260. <li class="nav-item" data-depth="3">
  261. <button class="nav-item-toggle"></button>
  262. <span class="nav-text">Physically Based Rendering</span>
  263. <ul class="nav-list">
  264. <li class="nav-item" data-depth="4">
  265. <a class="nav-link" href="tutorials/how-to/articles/pbr/pbr_part1.html">PBR – Part one</a>
  266. </li>
  267. <li class="nav-item" data-depth="4">
  268. <a class="nav-link" href="tutorials/how-to/articles/pbr/pbr_part2.html">PBR – Part two</a>
  269. </li>
  270. <li class="nav-item" data-depth="4">
  271. <a class="nav-link" href="tutorials/how-to/articles/pbr/pbr_part3.html">PBR – Part three</a>
  272. </li>
  273. </ul>
  274. </li>
  275. </ul>
  276. </li>
  277. </ul>
  278. </li>
  279. </ul>
  280. </li>
  281. <li class="nav-item" data-depth="0">
  282. <ul class="nav-list">
  283. <li class="nav-item" data-depth="1">
  284. <button class="nav-item-toggle"></button>
  285. <span class="nav-text">Core Engine</span>
  286. <ul class="nav-list">
  287. <li class="nav-item" data-depth="2">
  288. <a class="nav-link" href="core/app/simpleapplication.html">SimpleApplication</a>
  289. </li>
  290. <li class="nav-item" data-depth="2">
  291. <a class="nav-link" href="core/system/appsettings.html">AppSettings</a>
  292. </li>
  293. </ul>
  294. </li>
  295. <li class="nav-item" data-depth="1">
  296. <button class="nav-item-toggle"></button>
  297. <span class="nav-text">Controlling Game Logic</span>
  298. <ul class="nav-list">
  299. <li class="nav-item" data-depth="2">
  300. <a class="nav-link" href="core/app/update_loop.html">Update Loop</a>
  301. </li>
  302. <li class="nav-item" data-depth="2">
  303. <a class="nav-link" href="core/app/state/application_states.html">Application States</a>
  304. </li>
  305. <li class="nav-item" data-depth="2">
  306. <button class="nav-item-toggle"></button>
  307. <a class="nav-link" href="core/scene/control/custom_controls.html">Custom Controls</a>
  308. <ul class="nav-list">
  309. <li class="nav-item" data-depth="3">
  310. <button class="nav-item-toggle"></button>
  311. <span class="nav-text">Video</span>
  312. <ul class="nav-list">
  313. <li class="nav-item" data-depth="4">
  314. <a class="nav-link" href="https://www.youtube.com/watch?v=MNDiZ9YHIpM">Control any scene node</a>
  315. </li>
  316. <li class="nav-item" data-depth="4">
  317. <a class="nav-link" href="https://www.youtube.com/watch?v=-OzRZscLlHY">Control a character</a>
  318. </li>
  319. <li class="nav-item" data-depth="4">
  320. <a class="nav-link" href="https://wiki.jmonkeyengine.org/Scenes/SDK-UsecaseDemo_1.zip">Video Source Code</a>
  321. </li>
  322. </ul>
  323. </li>
  324. </ul>
  325. </li>
  326. <li class="nav-item" data-depth="2">
  327. <a class="nav-link" href="core/app/multithreading.html">Multithreading</a>
  328. </li>
  329. </ul>
  330. </li>
  331. <li class="nav-item" data-depth="1">
  332. <button class="nav-item-toggle"></button>
  333. <span class="nav-text">Scene Graph</span>
  334. <ul class="nav-list">
  335. <li class="nav-item" data-depth="2">
  336. <a class="nav-link" href="core/scene/traverse_scenegraph.html">Traverse SceneGraph</a>
  337. </li>
  338. <li class="nav-item" data-depth="2">
  339. <a class="nav-link" href="core/scene/spatial.html">Spatial: Node vs Geometry</a>
  340. </li>
  341. <li class="nav-item" data-depth="2">
  342. <button class="nav-item-toggle"></button>
  343. <a class="nav-link" href="core/scene/mesh.html">Mesh</a>
  344. <ul class="nav-list">
  345. <li class="nav-item" data-depth="3">
  346. <a class="nav-link" href="core/scene/custom_meshes.html">Custom Meshes</a>
  347. </li>
  348. <li class="nav-item" data-depth="3">
  349. <a class="nav-link" href="core/scene/shape/shape.html">Shape</a>
  350. </li>
  351. <li class="nav-item" data-depth="3">
  352. <a class="nav-link" href="core/scene/3d_models.html">3D Models</a>
  353. </li>
  354. </ul>
  355. </li>
  356. <li class="nav-item" data-depth="2">
  357. <a class="nav-link" href="core/asset/asset_manager.html">Asset Manager</a>
  358. </li>
  359. <li class="nav-item" data-depth="2">
  360. <a class="nav-link" href="core/export/save_and_load.html">Saving and Loading Nodes</a>
  361. </li>
  362. <li class="nav-item" data-depth="2">
  363. <a class="nav-link" href="core/collision/collision_and_intersection.html">Collision and Intersection</a>
  364. </li>
  365. <li class="nav-item" data-depth="2">
  366. <a class="nav-link" href="core/scene/control/level_of_detail.html">Level of Detail</a>
  367. </li>
  368. </ul>
  369. </li>
  370. <li class="nav-item" data-depth="1">
  371. <button class="nav-item-toggle"></button>
  372. <span class="nav-text">Animation, Scene</span>
  373. <ul class="nav-list">
  374. <li class="nav-item" data-depth="2">
  375. <a class="nav-link" href="core/animation/animation.html">Animation-Old</a>
  376. </li>
  377. <li class="nav-item" data-depth="2">
  378. <a class="nav-link" href="core/cinematic/cinematics.html">Cinematics (cutscenes, fake destruction physics)</a>
  379. </li>
  380. <li class="nav-item" data-depth="2">
  381. <a class="nav-link" href="core/cinematic/motionpath.html">MotionPaths and Waypoints</a>
  382. </li>
  383. </ul>
  384. </li>
  385. <li class="nav-item" data-depth="1">
  386. <button class="nav-item-toggle"></button>
  387. <span class="nav-text">Material, Light, Shadow</span>
  388. <ul class="nav-list">
  389. <li class="nav-item" data-depth="2">
  390. <a class="nav-link" href="core/material/how_to_use_materials.html">How to use Materials</a>
  391. </li>
  392. <li class="nav-item" data-depth="2">
  393. <a class="nav-link" href="core/material/j3m_material_files.html">.j3m Material Files</a>
  394. </li>
  395. <li class="nav-item" data-depth="2">
  396. <a class="nav-link" href="core/material/material_definitions.html">.j3md Material Definitions</a>
  397. </li>
  398. <li class="nav-item" data-depth="2">
  399. <a class="nav-link" href="core/material/materials_overview.html">.j3md Properties</a>
  400. </li>
  401. <li class="nav-item" data-depth="2">
  402. <a class="nav-link" href="core/shader/jme3_shaders.html">Shaders and JME3</a>
  403. </li>
  404. <li class="nav-item" data-depth="2">
  405. <a class="nav-link" href="core/shader/jme3_shadernodes.html">Shader Node System</a>
  406. </li>
  407. <li class="nav-item" data-depth="2">
  408. <a class="nav-link" href="core/shader/shader_video_tutorials.html">Shader Video Tutorials</a>
  409. </li>
  410. <li class="nav-item" data-depth="2">
  411. <a class="nav-link" href="core/light/light_and_shadow.html">Light and Shadow</a>
  412. </li>
  413. <li class="nav-item" data-depth="2">
  414. <a class="nav-link" href="core/texture/anisotropic_filtering.html">Anisotropic Filtering</a>
  415. </li>
  416. <li class="nav-item" data-depth="2">
  417. <a class="nav-link" href="core/system/jme3_srgbpipeline.html">Gamma Correction</a>
  418. </li>
  419. </ul>
  420. </li>
  421. <li class="nav-item" data-depth="1">
  422. <button class="nav-item-toggle"></button>
  423. <span class="nav-text">Audio, Video</span>
  424. <ul class="nav-list">
  425. <li class="nav-item" data-depth="2">
  426. <a class="nav-link" href="core/audio/audio.html">Playing Sounds</a>
  427. </li>
  428. <li class="nav-item" data-depth="2">
  429. <a class="nav-link" href="core/audio/audio_environment_presets.html">Audio Environment Presets</a>
  430. </li>
  431. <li class="nav-item" data-depth="2">
  432. <a class="nav-link" href="core/app/state/screenshots.html">Capture Screenshots</a>
  433. </li>
  434. <li class="nav-item" data-depth="2">
  435. <a class="nav-link" href="core/app/state/capture_audio_video_to_a_file.html">Capture Audio/Video</a>
  436. </li>
  437. </ul>
  438. </li>
  439. <li class="nav-item" data-depth="1">
  440. <button class="nav-item-toggle"></button>
  441. <span class="nav-text">Filter, Effect</span>
  442. <ul class="nav-list">
  443. <li class="nav-item" data-depth="2">
  444. <a class="nav-link" href="core/effect/effects_overview.html">Overview</a>
  445. </li>
  446. <li class="nav-item" data-depth="2">
  447. <a class="nav-link" href="core/effect/bloom_and_glow.html">Bloom and Glow</a>
  448. </li>
  449. <li class="nav-item" data-depth="2">
  450. <a class="nav-link" href="core/effect/particle_emitters.html">Particle Emitters</a>
  451. </li>
  452. </ul>
  453. </li>
  454. <li class="nav-item" data-depth="1">
  455. <button class="nav-item-toggle"></button>
  456. <span class="nav-text">Landscapes</span>
  457. <ul class="nav-list">
  458. <li class="nav-item" data-depth="2">
  459. <a class="nav-link" href="core/util/sky.html">Sky</a>
  460. </li>
  461. <li class="nav-item" data-depth="2">
  462. <a class="nav-link" href="core/terrain/terrain.html">Terrain (TerraMonkey)</a>
  463. </li>
  464. <li class="nav-item" data-depth="2">
  465. <a class="nav-link" href="core/collision/terrain_collision.html">Terrain Collision</a>
  466. </li>
  467. <li class="nav-item" data-depth="2">
  468. <a class="nav-link" href="core/effect/water.html">Simple Water</a>
  469. </li>
  470. <li class="nav-item" data-depth="2">
  471. <a class="nav-link" href="core/effect/post-processor_water.html">Post-Processor Water</a>
  472. </li>
  473. </ul>
  474. </li>
  475. <li class="nav-item" data-depth="1">
  476. <button class="nav-item-toggle"></button>
  477. <span class="nav-text">Camera</span>
  478. <ul class="nav-list">
  479. <li class="nav-item" data-depth="2">
  480. <a class="nav-link" href="core/renderer/camera.html">Camera</a>
  481. </li>
  482. <li class="nav-item" data-depth="2">
  483. <a class="nav-link" href="core/renderer/making_the_camera_follow_a_character.html">Follow a Character</a>
  484. </li>
  485. <li class="nav-item" data-depth="2">
  486. <a class="nav-link" href="core/renderer/remote-controlling_the_camera.html">Remote-Controlling</a>
  487. </li>
  488. <li class="nav-item" data-depth="2">
  489. <a class="nav-link" href="core/renderer/multiple_camera_views.html">Multiple Camera Views</a>
  490. </li>
  491. <li class="nav-item" data-depth="2">
  492. <a class="nav-link" href="core/renderer/jme3_renderbuckets.html">Render Buckets</a>
  493. </li>
  494. </ul>
  495. </li>
  496. <li class="nav-item" data-depth="1">
  497. <button class="nav-item-toggle"></button>
  498. <span class="nav-text">User Interaction</span>
  499. <ul class="nav-list">
  500. <li class="nav-item" data-depth="2">
  501. <a class="nav-link" href="core/input/input_handling.html">Input Handling</a>
  502. </li>
  503. <li class="nav-item" data-depth="2">
  504. <a class="nav-link" href="core/input/combo_moves.html">Combo Moves</a>
  505. </li>
  506. <li class="nav-item" data-depth="2">
  507. <a class="nav-link" href="core/input/mouse_picking.html">Mouse Picking</a>
  508. </li>
  509. </ul>
  510. </li>
  511. <li class="nav-item" data-depth="1">
  512. <button class="nav-item-toggle"></button>
  513. <a class="nav-link" href="core/gui/topic_gui.html">Graphical User Interface</a>
  514. <ul class="nav-list">
  515. <li class="nav-item" data-depth="2">
  516. <button class="nav-item-toggle"></button>
  517. <span class="nav-text">Nifty GUI</span>
  518. <ul class="nav-list">
  519. <li class="nav-item" data-depth="3">
  520. <a class="nav-link" href="core/gui/nifty_gui.html">Integration Tutorial</a>
  521. </li>
  522. <li class="nav-item" data-depth="3">
  523. <a class="nav-link" href="core/gui/nifty_gui_best_practices.html">Best Practices</a>
  524. </li>
  525. <li class="nav-item" data-depth="3">
  526. <a class="nav-link" href="core/gui/nifty_gui_scenarios.html">Scenarios</a>
  527. </li>
  528. </ul>
  529. </li>
  530. <li class="nav-item" data-depth="2">
  531. <a class="nav-link" href="core/ui/hud.html">Head-Up Display (HUD)</a>
  532. </li>
  533. </ul>
  534. </li>
  535. <li class="nav-item" data-depth="1">
  536. <button class="nav-item-toggle"></button>
  537. <span class="nav-text">Virtual Reality</span>
  538. <ul class="nav-list">
  539. <li class="nav-item" data-depth="2">
  540. <a class="nav-link" href="core/vr/virtualreality.html">Virtual Reality</a>
  541. </li>
  542. <li class="nav-item" data-depth="2">
  543. <a class="nav-link" href="core/vr/virtualrealitycontrollers.html">Virtual Reality Controllers</a>
  544. </li>
  545. </ul>
  546. </li>
  547. </ul>
  548. </li>
  549. <li class="nav-item" data-depth="0">
  550. <ul class="nav-list">
  551. <li class="nav-item" data-depth="1">
  552. <button class="nav-item-toggle"></button>
  553. <a class="nav-link" href="physics/physics.html">Physics</a>
  554. <ul class="nav-list">
  555. <li class="nav-item" data-depth="2">
  556. <a class="nav-link" href="physics/bullet_multithreading.html">Multi-Threaded Physics</a>
  557. </li>
  558. <li class="nav-item" data-depth="2">
  559. <a class="nav-link" href="physics/collision/physics_listeners.html">Collision Detection</a>
  560. </li>
  561. <li class="nav-item" data-depth="2">
  562. <a class="nav-link" href="physics/joint/hinges_and_joints.html">Hinges and Joints</a>
  563. </li>
  564. <li class="nav-item" data-depth="2">
  565. <a class="nav-link" href="physics/control/walking_character.html">Walking Character</a>
  566. </li>
  567. <li class="nav-item" data-depth="2">
  568. <a class="nav-link" href="physics/control/ragdoll.html">Ragdoll</a>
  569. </li>
  570. <li class="nav-item" data-depth="2">
  571. <a class="nav-link" href="physics/control/vehicles.html">Vehicles</a>
  572. </li>
  573. <li class="nav-item" data-depth="2">
  574. <a class="nav-link" href="physics/control/softbody.html">Softbody</a>
  575. </li>
  576. <li class="nav-item" data-depth="2">
  577. <a class="nav-link" href="physics/bullet_pitfalls.html">Bullet Physics Pitfalls</a>
  578. </li>
  579. </ul>
  580. </li>
  581. </ul>
  582. </li>
  583. <li class="nav-item" data-depth="0">
  584. <ul class="nav-list">
  585. <li class="nav-item" data-depth="1">
  586. <button class="nav-item-toggle"></button>
  587. <span class="nav-text">Networking</span>
  588. <ul class="nav-list">
  589. <li class="nav-item" data-depth="2">
  590. <a class="nav-link" href="networking/networking.html">Networking (SpiderMonkey)</a>
  591. </li>
  592. <li class="nav-item" data-depth="2">
  593. <a class="nav-link" href="networking/headless_server.html">Headless Server</a>
  594. </li>
  595. <li class="nav-item" data-depth="2">
  596. <a class="nav-link" href="networking/monkey_zone.html">Multi-Player Demo Code</a>
  597. </li>
  598. <li class="nav-item" data-depth="2">
  599. <a class="nav-link" href="networking/networking_video_tutorials.html">Networking Video Tutorials</a>
  600. </li>
  601. </ul>
  602. </li>
  603. </ul>
  604. </li>
  605. <li class="nav-item" data-depth="0">
  606. <ul class="nav-list">
  607. <li class="nav-item" data-depth="1">
  608. <button class="nav-item-toggle"></button>
  609. <span class="nav-text">User Contributions</span>
  610. <ul class="nav-list">
  611. <li class="nav-item" data-depth="2">
  612. <a class="nav-link" href="contributions/contributions.html">User Made Utilities</a>
  613. </li>
  614. <li class="nav-item" data-depth="2">
  615. <button class="nav-item-toggle"></button>
  616. <span class="nav-text">Shader</span>
  617. <ul class="nav-list">
  618. <li class="nav-item" data-depth="3">
  619. <a class="nav-link" href="contributions/shader/shaderblow_project.html">ShaderBlow Project</a>
  620. </li>
  621. </ul>
  622. </li>
  623. <li class="nav-item" data-depth="2">
  624. <button class="nav-item-toggle"></button>
  625. <span class="nav-text">Landscapes</span>
  626. <ul class="nav-list">
  627. <li class="nav-item" data-depth="3">
  628. <a class="nav-link" href="contributions/lanscapes/vegetationsystem/vegetationsystem.html">Vegetation System</a>
  629. </li>
  630. </ul>
  631. </li>
  632. <li class="nav-item" data-depth="2">
  633. <button class="nav-item-toggle"></button>
  634. <span class="nav-text">Networking</span>
  635. <ul class="nav-list">
  636. <li class="nav-item" data-depth="3">
  637. <a class="nav-link" href="contributions/networking/open_game_finder.html">Open Game Finder</a>
  638. </li>
  639. </ul>
  640. </li>
  641. <li class="nav-item" data-depth="2">
  642. <button class="nav-item-toggle"></button>
  643. <span class="nav-text">Entity System</span>
  644. <ul class="nav-list">
  645. <li class="nav-item" data-depth="3">
  646. <a class="nav-link" href="#es/entitysystem.adoc">The Zay-ES Entity System</a>
  647. </li>
  648. </ul>
  649. </li>
  650. <li class="nav-item" data-depth="2">
  651. <button class="nav-item-toggle"></button>
  652. <span class="nav-text">Artificial Intelligence</span>
  653. <ul class="nav-list">
  654. <li class="nav-item" data-depth="3">
  655. <a class="nav-link" href="contributions/ai/recast.html">Recast Navigation</a>
  656. </li>
  657. <li class="nav-item" data-depth="3">
  658. <a class="nav-link" href="contributions/ai/building_recast.html">Updating and building Recast Native Bindings</a>
  659. </li>
  660. <li class="nav-item" data-depth="3">
  661. <a class="nav-link" href="contributions/ai/monkey_brains.html">Monkey Brains</a>
  662. </li>
  663. <li class="nav-item" data-depth="3">
  664. <a class="nav-link" href="contributions/ai/steer_behaviours.html">Steer Behaviours</a>
  665. </li>
  666. <li class="nav-item" data-depth="3">
  667. <a class="nav-link" href="contributions/ai/jme3_ai.html">jME3 Artificial Intelligence</a>
  668. </li>
  669. </ul>
  670. </li>
  671. <li class="nav-item" data-depth="2">
  672. <button class="nav-item-toggle"></button>
  673. <a class="nav-link" href="contributions/gui/topic_contributions_gui.html">GUI</a>
  674. <ul class="nav-list">
  675. <li class="nav-item" data-depth="3">
  676. <a class="nav-link" href="contributions/contributions.html#lemur-gui-library">Lemur - a native jME3 GUI library with scene graph tools</a>
  677. </li>
  678. <li class="nav-item" data-depth="3">
  679. <a class="nav-link" href="contributions/contributions.html#tonegodgui">tonegodGUI - a native jME3 GUI library</a>
  680. </li>
  681. <li class="nav-item" data-depth="3">
  682. <a class="nav-link" href="contributions/contributions.html#immediate-graphical-user-interface">Immediate graphical user interface</a>
  683. </li>
  684. </ul>
  685. </li>
  686. <li class="nav-item" data-depth="2">
  687. <button class="nav-item-toggle"></button>
  688. <span class="nav-text">Tools</span>
  689. <ul class="nav-list">
  690. <li class="nav-item" data-depth="3">
  691. <a class="nav-link" href="contributions/tools/navigation.html">Mercator Projection Tool (Marine Navigation)</a>
  692. </li>
  693. <li class="nav-item" data-depth="3">
  694. <a class="nav-link" href="contributions/tools/charts.html">Visualizing Maps in JME3 (Marine Charts)</a>
  695. </li>
  696. </ul>
  697. </li>
  698. <li class="nav-item" data-depth="2">
  699. <button class="nav-item-toggle"></button>
  700. <span class="nav-text">Projects</span>
  701. <ul class="nav-list">
  702. <li class="nav-item" data-depth="3">
  703. <a class="nav-link" href="contributions/projects/rise_of_mutants_project.html">Rise of Mutants Project</a>
  704. </li>
  705. </ul>
  706. </li>
  707. </ul>
  708. </li>
  709. </ul>
  710. </li>
  711. <li class="nav-item" data-depth="0">
  712. <ul class="nav-list">
  713. <li class="nav-item" data-depth="1">
  714. <button class="nav-item-toggle"></button>
  715. <a class="nav-link" href="sdk/sdk.html">SDK</a>
  716. <ul class="nav-list">
  717. <li class="nav-item" data-depth="2">
  718. <button class="nav-item-toggle"></button>
  719. <span class="nav-text">Video Tutorials</span>
  720. <ul class="nav-list">
  721. <li class="nav-item" data-depth="3">
  722. <button class="nav-item-toggle"></button>
  723. <span class="nav-text">SDK Use Case Tutorials</span>
  724. <ul class="nav-list">
  725. <li class="nav-item" data-depth="4">
  726. <a class="nav-link" href="http://www.youtube.com/watch?v=-OzRZscLlHY">Demo 1 (Quixote demo)</a>
  727. </li>
  728. <li class="nav-item" data-depth="4">
  729. <a class="nav-link" href="http://www.youtube.com/watch?v=6-YWxD3JByE">Demo 2 (Models and Materials)</a>
  730. </li>
  731. </ul>
  732. </li>
  733. <li class="nav-item" data-depth="3">
  734. <button class="nav-item-toggle"></button>
  735. <span class="nav-text">SDK Tutorials</span>
  736. <ul class="nav-list">
  737. <li class="nav-item" data-depth="4">
  738. <a class="nav-link" href="http://www.youtube.com/watch?v=M1_0pbeyJzI">Basics</a>
  739. </li>
  740. <li class="nav-item" data-depth="4">
  741. <a class="nav-link" href="http://www.youtube.com/watch?v=nL7woH40i5c">Importing Models</a>
  742. </li>
  743. <li class="nav-item" data-depth="4">
  744. <a class="nav-link" href="http://www.youtube.com/watch?v=DUmgAjiNzhY">Dragging&amp;Dropping Nodes</a>
  745. </li>
  746. <li class="nav-item" data-depth="4">
  747. <a class="nav-link" href="http://www.youtube.com/watch?v=ntPAmtsQ6eM">Scene Composing</a>
  748. </li>
  749. <li class="nav-item" data-depth="4">
  750. <a class="nav-link" href="http://www.youtube.com/watch?v=zgPV3W6dD4s">Terrain with Collision Shape</a>
  751. </li>
  752. <li class="nav-item" data-depth="4">
  753. <a class="nav-link" href="http://www.youtube.com/watch?v=Feu3-mrpolc">Working with Materials</a>
  754. </li>
  755. <li class="nav-item" data-depth="4">
  756. <a class="nav-link" href="http://www.youtube.com/watch?v=MNDiZ9YHIpM">Custom Controls</a>
  757. </li>
  758. <li class="nav-item" data-depth="4">
  759. <a class="nav-link" href="http://www.youtube.com/watch?v=oZnssg8TBWQ">WebStart Deployment</a>
  760. </li>
  761. <li class="nav-item" data-depth="4">
  762. <a class="nav-link" href="http://www.youtube.com/watch?v=D7JM4VMKqPc">Animation and Effect TrackEditing</a>
  763. </li>
  764. </ul>
  765. </li>
  766. </ul>
  767. </li>
  768. <li class="nav-item" data-depth="2">
  769. <button class="nav-item-toggle"></button>
  770. <span class="nav-text">Getting Started</span>
  771. <ul class="nav-list">
  772. <li class="nav-item" data-depth="3">
  773. <a class="nav-link" href="sdk/update_center.html">Updating jMonkeyEngine SDK</a>
  774. </li>
  775. <li class="nav-item" data-depth="3">
  776. <a class="nav-link" href="sdk/troubleshooting.html">Troubleshooting</a>
  777. </li>
  778. </ul>
  779. </li>
  780. <li class="nav-item" data-depth="2">
  781. <button class="nav-item-toggle"></button>
  782. <span class="nav-text">Java Development Features</span>
  783. <ul class="nav-list">
  784. <li class="nav-item" data-depth="3">
  785. <a class="nav-link" href="sdk/project_creation.html">Project Creation</a>
  786. </li>
  787. <li class="nav-item" data-depth="3">
  788. <a class="nav-link" href="sdk/code_editor.html">Code Editor and Palette</a>
  789. </li>
  790. <li class="nav-item" data-depth="3">
  791. <a class="nav-link" href="sdk/version_control.html">File Version Control</a>
  792. </li>
  793. <li class="nav-item" data-depth="3">
  794. <a class="nav-link" href="sdk/debugging_profiling_testing.html">Debug, Profile, Test</a>
  795. </li>
  796. <li class="nav-item" data-depth="3">
  797. <button class="nav-item-toggle"></button>
  798. <a class="nav-link" href="sdk/application_deployment.html">Application Deployment</a>
  799. <ul class="nav-list">
  800. <li class="nav-item" data-depth="4">
  801. <a class="nav-link" href="sdk/default_build_script.html">Default Build Script</a>
  802. </li>
  803. <li class="nav-item" data-depth="4">
  804. <a class="nav-link" href="sdk/android.html">Android</a>
  805. </li>
  806. <li class="nav-item" data-depth="4">
  807. <a class="nav-link" href="sdk/android_cheat_sheet.html">Android Cheat Sheet</a>
  808. </li>
  809. <li class="nav-item" data-depth="4">
  810. <a class="nav-link" href="sdk/ios.html">iOS</a>
  811. </li>
  812. </ul>
  813. </li>
  814. </ul>
  815. </li>
  816. <li class="nav-item" data-depth="2">
  817. <button class="nav-item-toggle"></button>
  818. <span class="nav-text">Unique Features</span>
  819. <ul class="nav-list">
  820. <li class="nav-item" data-depth="3">
  821. <button class="nav-item-toggle"></button>
  822. <a class="nav-link" href="sdk/model_loader_and_viewer.html">Import, View, Convert Models</a>
  823. <ul class="nav-list">
  824. <li class="nav-item" data-depth="4">
  825. <a class="nav-link" href="sdk/asset_packs.html">Asset Packs</a>
  826. </li>
  827. </ul>
  828. </li>
  829. <li class="nav-item" data-depth="3">
  830. <a class="nav-link" href="sdk/scene_explorer.html">The SceneExplorer</a>
  831. </li>
  832. <li class="nav-item" data-depth="3">
  833. <a class="nav-link" href="sdk/scene_composer.html">Composing a Scene</a>
  834. </li>
  835. <li class="nav-item" data-depth="3">
  836. <a class="nav-link" href="sdk/terrain_editor.html">Terrain Editor</a>
  837. </li>
  838. <li class="nav-item" data-depth="3">
  839. <a class="nav-link" href="sdk/sample_code.html">Sample Code</a>
  840. </li>
  841. <li class="nav-item" data-depth="3">
  842. <a class="nav-link" href="sdk/material_editing.html">Material Editing</a>
  843. </li>
  844. <li class="nav-item" data-depth="3">
  845. <a class="nav-link" href="sdk/font_creation.html">Creating Bitmap Fonts</a>
  846. </li>
  847. <li class="nav-item" data-depth="3">
  848. <button class="nav-item-toggle"></button>
  849. <a class="nav-link" href="https://hub.jmonkeyengine.org/t/effecttrack-and-audiotrack-editing-in-the-sdk/23378">Audio and Effect Track Editing</a>
  850. <ul class="nav-list">
  851. <li class="nav-item" data-depth="4">
  852. <a class="nav-link" href="https://www.youtube.com/watch?v=D7JM4VMKqPc">Video: Effect and AudioTrack editing in jMonkeyEngine 3 sdk</a>
  853. </li>
  854. </ul>
  855. </li>
  856. <li class="nav-item" data-depth="3">
  857. <a class="nav-link" href="sdk/filters.html">Post-Processor Filter Editor and Viewer</a>
  858. </li>
  859. <li class="nav-item" data-depth="3">
  860. <a class="nav-link" href="core/app/state/application_states.html">Application States</a>
  861. </li>
  862. <li class="nav-item" data-depth="3">
  863. <a class="nav-link" href="core/scene/control/custom_controls.html">Custom Controls</a>
  864. </li>
  865. <li class="nav-item" data-depth="3">
  866. <a class="nav-link" href="sdk/vehicle_creator.html">Vehicle Creator</a>
  867. </li>
  868. </ul>
  869. </li>
  870. <li class="nav-item" data-depth="2">
  871. <button class="nav-item-toggle"></button>
  872. <span class="nav-text">Advanced Usage</span>
  873. <ul class="nav-list">
  874. <li class="nav-item" data-depth="3">
  875. <a class="nav-link" href="sdk/build_platform.html">Building jMonkeyEngine SDK</a>
  876. </li>
  877. <li class="nav-item" data-depth="3">
  878. <a class="nav-link" href="sdk/use_own_jme.html#.adoc">Using your own (modified) version of jME3 in jMonkeyEngine SDK</a>
  879. </li>
  880. <li class="nav-item" data-depth="3">
  881. <a class="nav-link" href="sdk/increasing_heap_memory.html">Increasing Heap Memory</a>
  882. </li>
  883. <li class="nav-item" data-depth="3">
  884. <a class="nav-link" href="sdk/log_files.html">Log Files</a>
  885. </li>
  886. </ul>
  887. </li>
  888. <li class="nav-item" data-depth="2">
  889. <button class="nav-item-toggle"></button>
  890. <span class="nav-text">Available external plugins</span>
  891. <ul class="nav-list">
  892. <li class="nav-item" data-depth="3">
  893. <a class="nav-link" href="contributions/contributions.html">Contributions</a>
  894. </li>
  895. <li class="nav-item" data-depth="3">
  896. <a class="nav-link" href="sdk/neotexture.html">Neo Texture Editor for procedural textures</a>
  897. </li>
  898. <li class="nav-item" data-depth="3">
  899. <a class="nav-link" href="http://www.youtube.com/watch?v=yS9a9o4WzL8">Video: Mesh Tool &amp; Physics Editor</a>
  900. </li>
  901. </ul>
  902. </li>
  903. <li class="nav-item" data-depth="2">
  904. <button class="nav-item-toggle"></button>
  905. <a class="nav-link" href="sdk/development.html">Developing plugins for jMonkeyEngine SDK</a>
  906. <ul class="nav-list">
  907. <li class="nav-item" data-depth="3">
  908. <a class="nav-link" href="sdk/development/setup.html">Creating a plugin</a>
  909. </li>
  910. <li class="nav-item" data-depth="3">
  911. <a class="nav-link" href="sdk/development/general.html">Creating components</a>
  912. </li>
  913. <li class="nav-item" data-depth="3">
  914. <a class="nav-link" href="sdk/development/scene.html">The Main Scene</a>
  915. </li>
  916. <li class="nav-item" data-depth="3">
  917. <a class="nav-link" href="sdk/development/sceneexplorer.html">The Scene Explorer</a>
  918. </li>
  919. <li class="nav-item" data-depth="3">
  920. <a class="nav-link" href="sdk/development/projects_assets.html">Projects and Assets</a>
  921. </li>
  922. <li class="nav-item" data-depth="3">
  923. <a class="nav-link" href="sdk/development/extension_library.html">Create a library plugin from a jar file</a>
  924. </li>
  925. <li class="nav-item" data-depth="3">
  926. <a class="nav-link" href="sdk/development/model_loader.html">Create a new or custom model filetype and loader</a>
  927. </li>
  928. </ul>
  929. </li>
  930. </ul>
  931. </li>
  932. </ul>
  933. </li>
  934. </ul>
  935. </nav>
  936. </div>
  937. <div class="nav-panel-explore" data-panel="explore">
  938. <div class="context">
  939. <span class="title">JME</span>
  940. <span class="version">3.4</span>
  941. </div>
  942. <ul class="components">
  943. <li class="component is-current">
  944. <span class="title">JME</span>
  945. <ul class="versions">
  946. <li class="version">
  947. <a href="../3.8/documentation.html">3.8</a>
  948. </li>
  949. <li class="version is-current">
  950. <a href="documentation.html">3.4</a>
  951. </li>
  952. <li class="version">
  953. <a href="../3.3/documentation.html">3.3</a>
  954. </li>
  955. <li class="version">
  956. <a href="../3.2/documentation.html">3.2</a>
  957. </li>
  958. </ul>
  959. </li>
  960. <li class="component">
  961. <span class="title">Wiki Contribution</span>
  962. <ul class="versions">
  963. <li class="version">
  964. <a href="../../docs-wiki/3.8/wiki_contributor.html">3.8</a>
  965. </li>
  966. </ul>
  967. </li>
  968. <li class="component">
  969. <span class="title">Wiki UI</span>
  970. <ul class="versions">
  971. <li class="version">
  972. <a href="../../wiki-ui/index.html">master</a>
  973. </li>
  974. </ul>
  975. </li>
  976. </ul>
  977. </div>
  978. </div>
  979. </aside>
  980. </div>
  981. <main class="article">
  982. <div class="toolbar" role="navigation">
  983. <button class="nav-toggle"></button>
  984. <nav class="breadcrumbs" aria-label="breadcrumbs">
  985. <ul>
  986. <li><a href="documentation.html">JME</a></li>
  987. <li><a href="release.html">Release Guide</a></li>
  988. </ul>
  989. </nav>
  990. <div class="page-versions">
  991. <button class="version-menu-toggle" title="Show other versions of page">3.4</button>
  992. <div class="version-menu">
  993. <a class="version" href="../3.8/release.html">3.8</a>
  994. <a class="version is-current" href="release.html">3.4</a>
  995. <a class="version is-missing" href="../3.3/documentation.html">3.3</a>
  996. <a class="version is-missing" href="../3.2/documentation.html">3.2</a>
  997. </div>
  998. </div>
  999. <div class="edit-this-page"><a href="https://github.com/jMonkeyEngine/wiki/edit/v3.4/docs/modules/ROOT/pages/release.adoc">Edit this Page</a></div>
  1000. </div>
  1001. <div class="content">
  1002. <article class="doc">
  1003. <h1 class="page">Engine Release Guide</h1>
  1004. <div class="sect1">
  1005. <h2 id="audience"><a class="anchor" href="#audience"></a>Audience</h2>
  1006. <div class="sectionbody">
  1007. <div class="paragraph">
  1008. <p>This documentation page is intended for JMonkeyEngine release managers.</p>
  1009. </div>
  1010. </div>
  1011. </div>
  1012. <div class="sect1">
  1013. <h2 id="repo-and-branches"><a class="anchor" href="#repo-and-branches"></a>Repo and Branches</h2>
  1014. <div class="sectionbody">
  1015. <div class="paragraph">
  1016. <p>Authoritative source code for the Engine
  1017. lives in a public repository at GitHub.
  1018. The repo&#8217;s homepage is at
  1019. <a href="https://github.com/jMonkeyEngine/jmonkeyengine" class="bare">https://github.com/jMonkeyEngine/jmonkeyengine</a></p>
  1020. </div>
  1021. <div class="paragraph">
  1022. <p>The default branch in the public repo is named "master".
  1023. That&#8217;s where the leading-edge code is kept.
  1024. All incoming pull requests should be integrated to "master".</p>
  1025. </div>
  1026. <div class="paragraph">
  1027. <p>The other branches in the repo fall into 2 categories:</p>
  1028. </div>
  1029. <div class="olist arabic">
  1030. <ol class="arabic">
  1031. <li>
  1032. <p><em>release branches</em>, used to develop stable releases, and</p>
  1033. </li>
  1034. <li>
  1035. <p><em>development branches</em>,
  1036. used to develop features or fixes that involve multiple commits.</p>
  1037. </li>
  1038. </ol>
  1039. </div>
  1040. <div class="paragraph">
  1041. <p>Release branch names, such as "v3.2" and "v3.3", refer to release numbers.
  1042. Development branches should have descriptive names, such as "opengles2-fixes".</p>
  1043. </div>
  1044. </div>
  1045. </div>
  1046. <div class="sect1">
  1047. <h2 id="continuous-integration"><a class="anchor" href="#continuous-integration"></a>Continuous Integration</h2>
  1048. <div class="sectionbody">
  1049. <div class="paragraph">
  1050. <p>Every push to "master" causes a continuous-integration (CI)
  1051. workflow to run at GitHub Actions.
  1052. The workflow is defined by
  1053. <a href="https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/.github/workflows/main.yml">the "main.yml" script</a>.
  1054. It performs clean builds of the Engine
  1055. across a matrix of 4 operating systems and 2 Java versions.
  1056. It also performs a clean build of the merged javadoc.</p>
  1057. </div>
  1058. <div class="paragraph">
  1059. <p>Any failure of the CI workflow causes notifications to be sent.
  1060. To register for notifications, follow the instructions at
  1061. <a href="https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/configuring-notifications" class="bare">https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/configuring-notifications</a></p>
  1062. </div>
  1063. <div class="paragraph">
  1064. <p>Every step in the workflow generates a detailed log,
  1065. which can be browsed via the web interface.
  1066. Often the cause of a CI failure
  1067. can be deduced from the log of the first failed step.</p>
  1068. </div>
  1069. <div class="admonitionblock tip">
  1070. <table>
  1071. <tr>
  1072. <td class="icon">
  1073. <i class="fa icon-tip" title="Tip"></i>
  1074. </td>
  1075. <td class="content">
  1076. <div class="paragraph">
  1077. <p>GitHub provides an easy way to determine whether CI is failing.
  1078. Browse to <a href="https://github.com/jMonkeyEngine/jmonkeyengine/commits/master" class="bare">https://github.com/jMonkeyEngine/jmonkeyengine/commits/master</a>
  1079. and look for colored icons to the right of the dates of recent push commits.</p>
  1080. </div>
  1081. <div class="imageblock">
  1082. <div class="content">
  1083. <img src="_images/github/colored_icons.png" alt="colored_icons.png">
  1084. </div>
  1085. </div>
  1086. <div class="ulist">
  1087. <ul>
  1088. <li>
  1089. <p>A green checkmark indicates a successful CI run.</p>
  1090. </li>
  1091. <li>
  1092. <p>An amber disc indicates a CI run in progress.</p>
  1093. </li>
  1094. <li>
  1095. <p>A red X indicates a failed CI run.</p>
  1096. </li>
  1097. </ul>
  1098. </div>
  1099. <div class="paragraph">
  1100. <p>Selecting a colored icon causes a list of jobs ("checks") to pop up.
  1101. Select the "Details" link after a job description
  1102. to access detailed information about that job.</p>
  1103. </div>
  1104. </td>
  1105. </tr>
  1106. </table>
  1107. </div>
  1108. <div class="paragraph">
  1109. <p>Sometimes CI fails due to transient networking issues.
  1110. In this case, someone with the necessary privileges should retry the failed run
  1111. by clicking on the "Re-run jobs" button on the summary page of the run.
  1112. To reach the summary page,
  1113. browse to <a href="https://github.com/jMonkeyEngine/jmonkeyengine/actions" class="bare">https://github.com/jMonkeyEngine/jmonkeyengine/actions</a>
  1114. and select on the failed run from the displayed list.</p>
  1115. </div>
  1116. <div class="imageblock">
  1117. <div class="content">
  1118. <img src="_images/github/rerun.png" alt="rerun.png">
  1119. </div>
  1120. </div>
  1121. <div class="paragraph">
  1122. <p>Breakage (persistent CI failures) of the "master" branch
  1123. should be addressed promptly.
  1124. When "master" is broken, <strong>no</strong> commits should be integrated
  1125. except those intended to diagnose or repair the breakage.</p>
  1126. </div>
  1127. <div class="paragraph">
  1128. <p>Additional information about Engine development and integration may be found in
  1129. <a href="https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/CONTRIBUTING.md">the "CONTRIBUTING.md" file</a>.</p>
  1130. </div>
  1131. </div>
  1132. </div>
  1133. <div class="sect1">
  1134. <h2 id="release-naming"><a class="anchor" href="#release-naming"></a>Release Naming</h2>
  1135. <div class="sectionbody">
  1136. <div class="paragraph">
  1137. <p>Official engine releases fall into 3 categories:</p>
  1138. </div>
  1139. <div class="ulist">
  1140. <ul>
  1141. <li>
  1142. <p>Alpha releases are "pre-release" builds intended only for internal testing.</p>
  1143. </li>
  1144. <li>
  1145. <p>Beta releases are "pre-release" builds intended for broader testing.</p>
  1146. </li>
  1147. <li>
  1148. <p>Stable releases are fully tested builds suitable for production use.</p>
  1149. </li>
  1150. </ul>
  1151. </div>
  1152. <div class="paragraph">
  1153. <p>The name of an Engine release is precisely
  1154. the "version" portion of its Maven coordinates
  1155. (&lt;groupId&gt;:&lt;artifactId&gt;:&lt;version&gt;).
  1156. The name will always begin with a digit, currently "3".
  1157. For extra clarity, the letter "v" (for "version")
  1158. is prepended in some contexts.
  1159. Thus "v3.2.4-stable" and "3.2.4-stable" both refer to the same release.</p>
  1160. </div>
  1161. <div class="admonitionblock warning">
  1162. <table>
  1163. <tr>
  1164. <td class="icon">
  1165. <i class="fa icon-warning" title="Warning"></i>
  1166. </td>
  1167. <td class="content">
  1168. To avoid confusion, release names should <strong>never</strong> be re-used.
  1169. </td>
  1170. </tr>
  1171. </table>
  1172. </div>
  1173. <div class="paragraph">
  1174. <p>Names for stable releases should end with the "-stable" suffix.
  1175. For instance, the first stable release from the "v3.2" branch
  1176. was named "3.2.0-stable".</p>
  1177. </div>
  1178. <div class="paragraph">
  1179. <p>Patch (or "dot-dot" releases) are stable releases that don&#8217;t introduce
  1180. any new features.
  1181. For instance, the first patch release
  1182. after "3.2.0-stable" was named "3.2.1-stable".
  1183. Like its predecessor, it was released from the "v3.2" branch.</p>
  1184. </div>
  1185. <div class="paragraph">
  1186. <p>Names for alpha and beta releases should use "-alpha" or "-beta"
  1187. and a sequentially assigned numeric ID in place of "-stable".
  1188. For instance, the first alpha release leading up to "3.3.0-stable"
  1189. was named "3.3.0-alpha1".</p>
  1190. </div>
  1191. <div class="admonitionblock tip">
  1192. <table>
  1193. <tr>
  1194. <td class="icon">
  1195. <i class="fa icon-tip" title="Tip"></i>
  1196. </td>
  1197. <td class="content">
  1198. To prevent interference between releases and ongoing development,
  1199. beta releases and stable releases should be built <strong>only</strong> from release branches,
  1200. never from "master".
  1201. </td>
  1202. </tr>
  1203. </table>
  1204. </div>
  1205. </div>
  1206. </div>
  1207. <div class="sect1">
  1208. <h2 id="initiating-a-new-release"><a class="anchor" href="#initiating-a-new-release"></a>Initiating a New Release</h2>
  1209. <div class="sectionbody">
  1210. <div class="paragraph">
  1211. <p>The release process starts with the creation of a Git tag.
  1212. <strong>Do not</strong> use the <code>git push</code> command for this purpose!
  1213. Use GitHub&#8217;s web interface instead:</p>
  1214. </div>
  1215. <div class="paragraph">
  1216. <p>Browse to <a href="https://github.com/jMonkeyEngine/jmonkeyengine/releases/new" class="bare">https://github.com/jMonkeyEngine/jmonkeyengine/releases/new</a>
  1217. and fill out the new-release web form,
  1218. paying special attention to the target branch.
  1219. The target branch defaults to "master",
  1220. but more often you&#8217;ll want to specify a release branch as the target.</p>
  1221. </div>
  1222. <div class="imageblock">
  1223. <div class="content">
  1224. <img src="_images/github/new_release.png" alt="new_release.png">
  1225. </div>
  1226. </div>
  1227. <div class="paragraph">
  1228. <p>For the tag version, specify "v" followed by the version name.
  1229. This determines the name of the Git tag that will be created.</p>
  1230. </div>
  1231. <div class="paragraph">
  1232. <p>For the release title, specify "jMonkeyEngine " followed by the version name.
  1233. This field can be added or edited later.</p>
  1234. </div>
  1235. <div class="paragraph">
  1236. <p>For the description, write something brief.
  1237. Like the title, this field can be added or edited later.</p>
  1238. </div>
  1239. <div class="paragraph">
  1240. <p>For an alpha or beta release, tick the "This is a pre-release" checkbox.
  1241. This helps ensure that naive users are steered toward a stable release.</p>
  1242. </div>
  1243. <div class="admonitionblock caution">
  1244. <table>
  1245. <tr>
  1246. <td class="icon">
  1247. <i class="fa icon-caution" title="Caution"></i>
  1248. </td>
  1249. <td class="content">
  1250. Double-check the target branch before proceeding. Then triple-check it!
  1251. </td>
  1252. </tr>
  1253. </table>
  1254. </div>
  1255. <div class="paragraph">
  1256. <p>To start the process,
  1257. click on the green "Publish release" button at the bottom of the page.</p>
  1258. </div>
  1259. </div>
  1260. </div>
  1261. <div class="sect1">
  1262. <h2 id="monitoring-the-release-run"><a class="anchor" href="#monitoring-the-release-run"></a>Monitoring the Release Run</h2>
  1263. <div class="sectionbody">
  1264. <div class="paragraph">
  1265. <p>A release run takes 15-30 minutes, depending how busy GitHub&#8217;s server farm is.</p>
  1266. </div>
  1267. <div class="paragraph">
  1268. <p>Discord provides an easy way to verify that the run has begun.
  1269. (A Discord client is not required.)</p>
  1270. </div>
  1271. <div class="ulist">
  1272. <ul>
  1273. <li>
  1274. <p>Log in to your Discord account.</p>
  1275. </li>
  1276. <li>
  1277. <p>Select the "github-builds" channel on the "jMonkeyEngine Community" server.</p>
  1278. </li>
  1279. <li>
  1280. <p>Look for a recent message from the "GitHub" bot saying
  1281. "[jMonkeyEngine/jmonkeyengine] New release published".
  1282. This indicates that a run has started, not that it&#8217;s complete!</p>
  1283. </li>
  1284. </ul>
  1285. </div>
  1286. <div class="imageblock">
  1287. <div class="content">
  1288. <img src="_images/release_published.png" alt="release_published.png">
  1289. </div>
  1290. </div>
  1291. <div class="paragraph">
  1292. <p>You can monitor its progress in the "github-builds" channel,
  1293. where you will see job messages from the GitHub bot,
  1294. such as "[jmonkeyengine] Build natives for android success".
  1295. Each job message is linked to the GitHub webpage for that job.</p>
  1296. </div>
  1297. <div class="paragraph">
  1298. <p>From any GitHub job page, select the "Summary" link
  1299. to see a graphical summary of the run which contains the job.</p>
  1300. </div>
  1301. <div class="imageblock">
  1302. <div class="content">
  1303. <img src="_images/github/summary.png" alt="summary.png">
  1304. </div>
  1305. </div>
  1306. </div>
  1307. </div>
  1308. <div class="sect1">
  1309. <h2 id="results-of-the-release-run"><a class="anchor" href="#results-of-the-release-run"></a>Results of the Release Run</h2>
  1310. <div class="sectionbody">
  1311. <div class="paragraph">
  1312. <p>A successful release run automatically deploys various build products:</p>
  1313. </div>
  1314. <div class="ulist">
  1315. <ul>
  1316. <li>
  1317. <p>It deploys the merged javadoc to <a href="https://javadoc.jmonkeyengine.org/" class="bare">https://javadoc.jmonkeyengine.org/</a></p>
  1318. </li>
  1319. <li>
  1320. <p>It deploys the test chooser&#8217;s executable (a ZIP file)
  1321. as an asset listed under the release description at GitHub Releases.</p>
  1322. </li>
  1323. <li>
  1324. <p>It also "stages" the signed Maven artifacts to Sonatype, as a "repository".
  1325. However, staging to Sonatype does not make the artifacts publicly visible.
  1326. For that to happen,
  1327. the staging repository must be closed and synched.</p>
  1328. </li>
  1329. </ul>
  1330. </div>
  1331. </div>
  1332. </div>
  1333. <div class="sect1">
  1334. <h2 id="managing-repos-at-sonatype"><a class="anchor" href="#managing-repos-at-sonatype"></a>Managing Repos at Sonatype</h2>
  1335. <div class="sectionbody">
  1336. <div class="paragraph">
  1337. <p>The official instructions are available from
  1338. <a href="https://central.sonatype.org/publish/release/" class="bare">https://central.sonatype.org/publish/release/</a></p>
  1339. </div>
  1340. <div class="paragraph">
  1341. <p>Browse to <a href="https://s01.oss.sonatype.org/">the Nexus Repository Manager</a>.</p>
  1342. </div>
  1343. <div class="paragraph">
  1344. <p>Select the "Log in" link in the upper right corner of the page.</p>
  1345. </div>
  1346. <div class="imageblock">
  1347. <div class="content">
  1348. <img src="_images/sonatype/login.png" alt="login.png">
  1349. </div>
  1350. </div>
  1351. <div class="paragraph">
  1352. <p>Type your Sonatype credentials into the dialog box
  1353. and click on the "Log In" button below.</p>
  1354. </div>
  1355. <div class="imageblock">
  1356. <div class="content">
  1357. <img src="_images/sonatype/login_dialog.png" alt="login_dialog.png">
  1358. </div>
  1359. </div>
  1360. <div class="paragraph">
  1361. <p>Under "Build Promotion" on the left sidebar,
  1362. select "Staging Repositories".</p>
  1363. </div>
  1364. <div class="imageblock">
  1365. <div class="content">
  1366. <img src="_images/sonatype/sidebar.png" alt="sidebar.png">
  1367. </div>
  1368. </div>
  1369. <div class="paragraph">
  1370. <p>If you don&#8217;t see a freshly updated repo named "orgjmonkeyengine",
  1371. click on the "Refresh" button occasionally until its record appears.</p>
  1372. </div>
  1373. <div class="imageblock">
  1374. <div class="content">
  1375. <img src="_images/sonatype/refresh.png" alt="refresh.png">
  1376. </div>
  1377. </div>
  1378. <div class="paragraph">
  1379. <p>Select the newly staged repo by ticking the checkbox to the left of its record.</p>
  1380. </div>
  1381. <div class="imageblock">
  1382. <div class="content">
  1383. <img src="_images/sonatype/select_repo.png" alt="select_repo.png">
  1384. </div>
  1385. </div>
  1386. <div class="paragraph">
  1387. <p>In the bottom half of the page,
  1388. select the "Content" tab to browse the contents of newly staged repo.</p>
  1389. </div>
  1390. <div class="imageblock">
  1391. <div class="content">
  1392. <img src="_images/sonatype/content.png" alt="content.png">
  1393. </div>
  1394. </div>
  1395. <div class="paragraph">
  1396. <p>When satisfied that the staged repo is 100% complete,
  1397. click on the "Close" button and then the "Confirm" button
  1398. to begin the automated validation process.</p>
  1399. </div>
  1400. <div class="imageblock">
  1401. <div class="content">
  1402. <img src="_images/sonatype/close.png" alt="close.png">
  1403. </div>
  1404. </div>
  1405. <div class="paragraph">
  1406. <p>Click on the "Refresh" button again.
  1407. In the bottom half of the page,
  1408. select the "Activity" tab to watch the progress.
  1409. Click on the "Refresh" button occasionally
  1410. until a "Repository closed" message appears in the progress.</p>
  1411. </div>
  1412. <div class="imageblock">
  1413. <div class="content">
  1414. <img src="_images/sonatype/repo_closed.png" alt="repo_closed.png">
  1415. </div>
  1416. </div>
  1417. <div class="paragraph">
  1418. <p>To begin the synching process,
  1419. click on the "Release" button and then the "Confirm" button.
  1420. The process usually takes about 20 minutes.
  1421. I don&#8217;t know a good way to monitor this process.
  1422. To detect completion, browse to
  1423. <a href="https://repo1.maven.org/maven2/org/jmonkeyengine/jme3-core/" class="bare">https://repo1.maven.org/maven2/org/jmonkeyengine/jme3-core/</a>
  1424. and refresh the web browser until the new folder appears.</p>
  1425. </div>
  1426. <div class="paragraph">
  1427. <p>Allow an additional hour or two for the new release to show up
  1428. on <a href="https://search.maven.org">Maven Central Repository Search</a>.</p>
  1429. </div>
  1430. </div>
  1431. </div>
  1432. <div class="sect1">
  1433. <h2 id="follow-up-tasks"><a class="anchor" href="#follow-up-tasks"></a>Follow-up Tasks</h2>
  1434. <div class="sectionbody">
  1435. <div class="paragraph">
  1436. <p>If the release description at GitHub is incomplete,
  1437. go back and flesh it out.</p>
  1438. </div>
  1439. <div class="paragraph">
  1440. <p>Announce the new release at <a href="https://hub.jmonkeyengine.org/">the Forum</a>.</p>
  1441. </div>
  1442. <div class="paragraph">
  1443. <p>For an important release, post an announcement
  1444. to <a href="https://jmonkeyengine.org/tags/blog/">the Blog</a>.</p>
  1445. </div>
  1446. </div>
  1447. </div>
  1448. <nav class="pagination">
  1449. <span class="prev"><a href="documentation.html">Getting Started</a></span>
  1450. <span class="next"><a href="tutorials/beginner/beginner.html">Beginner Tutorials</a></span>
  1451. </nav>
  1452. </article>
  1453. <aside class="toc sidebar" data-title="Contents" data-levels="2">
  1454. <div class="toc-menu"></div>
  1455. </aside>
  1456. </div>
  1457. </main>
  1458. </div>
  1459. <footer class="footer">
  1460. <p>Copyright 2020 jMonkeyEngine Wiki Contributors. Licensed BSD-3.</p>
  1461. </footer>
  1462. <script src="../../_/js/vendor/docsearch.min.js"></script>
  1463. <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js -->
  1464. <script>
  1465. var search = docsearch({
  1466. apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
  1467. indexName: 'jmonkeyengine',
  1468. inputSelector: '#search-input',
  1469. autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
  1470. algoliaOptions: { hitsPerPage: 10 }
  1471. }).autocomplete
  1472. search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
  1473. function focusSearchInput () { document.querySelector('#search-input').focus() }
  1474. if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput)
  1475. </script>
  1476. <script src="../../_/js/site.js"></script>
  1477. <script async src="../../_/js/vendor/highlight.js"></script>
  1478. </body>
  1479. </html>