= Ideas List
:author: 
:revnumber: 
:revdate: 2016/03/17 20:48
:keywords: gsoc
:relfileprefix: ../
:imagesdir: ..
ifdef::env-github,env-browser[:outfilesuffix: .adoc]


Below is listed every idea for a prospective jME student project during GSoC.
+
Got a suggestion? Please discuss it in the link:http://www.jmonkeyengine.com/forum/[forum].
+
[quote]
____
 If the forum won't suffice we can always be reached at mailto:&#x63;&#x6f;&#x6e;&#x74;&#x61;&#x63;&#x74;&#x40;&#x6a;&#x6d;&#x6f;&#x6e;&#x6b;&#x65;&#x79;&#x65;&#x6e;&#x67;&#x69;&#x6e;&#x65;&#x2e;&#x63;&#x6f;&#x6d;[]
____


== Worth noting

*Difficulty setting pending:* The developers have yet to estimate difficulty and scope for each of the suggested projects.
+
*GDE-appropriate:* Many of the suggestions below would be most suitable as an extension to our WIP 'link:http://www.jmonkeyengine.com/forum/index.php?board=33.0[Game Development Environment]', but won't be identified as such until further evaluation. Doing so keeps the jME 3.0 core clean and lean.


=== Finish/extend sound engine

jME's sound engine is almost complete, but lacks more extensive testing and has room for improvements.


=== New terrain system

One of the most sought after features for jME is a complete terrain system, topped off with a user-friendly visual editor. → link:http://jmonkeyengine.com/wiki/doku.php/terrain_systems[Terrain Systems]


=== Basic AI system

Basic path-finding, primitive bot behavior…


=== Game frameworks

A great way of adding to jME3's accessibility. A 'game framework' would be a bare-bones implementation of a genre-specific, clearly defined type of gameplay, like a link:http://en.wikipedia.org/wiki/First-person_shooter[First-person_shooter].


=== Extended builders for particle effects


=== Cinematics

A system that eases the job of handling all the different kinds of camera-, recording and playback work involved for making a cinematic in any type of game.  Additionally, the use of pre-rendered and edited footage in-game (either in 3D space or contained in cut scenes)


=== Game Development Environment: Editors

Editors for the gde could become a way to avoid bloating the core engine. More specialized tools like cinematics creation and terrain editing might be best suited as an extension to the jME3 Game Development Environment.


=== Post process effect

Add a new post process effect to jME, follow the way the HDRProcessor and BasicShadowProcessor were designed. Some examples of post process effects:

*  Motion Blur
*  Depth of Field
*  Parallel-Split Shadow Maps
*  More advanced shadow filtering (VSM, Jittered)
*  Bloom


=== jME Importer

Create a new importer for jME, it should be a popular format for most effectiveness. Some examples:

*  3DS
*  OBJ - MTL (material) file import. Should be able to support normal and specular maps!
*  Collada (advanced)


=== Scene editor

Create a scene editor, with model importing, moving around models, editing particles and applying materials, etc.
If you want something simpler than the above, you can just write a particle editor


=== Game state system: AppState

Create a game state system, similar to jME2's StandardGame and GameState. Please call it AppState though.


=== Improved multithreading support

(advanced)


=== Deferred rendering

(advanced)


=== Hardware skinning


=== A jME Game

Create a game using jME. Doesn't have to be advanced or graphically intense, something like pacman in 3D for example for geeneral optimization of the engine and many community resources.


=== Android Interface

E.g. Create “virtual arrow keys and other buttons on the screen, for those phones without keyboard but only touchscreen.


=== Android Multitouch support

(Android 2.1 only?)


=== Android Trackball support


=== General core Android optimizations


=== Evaluation: Game Asset Pipeline

*  Evaluate various model converters and creators, audio tools, 3-D and 2-D graphic tools (free and paid).
*  Write an example make script that regenerates the artwork everytime the designer made changes, and copies the files to the developer's directory.
*  Collect the best practices (pros/cons/limitations of tools and approaches) in a comparison table.  


=== Evaluation: Deployment Options

*  Applet, Webstart, OneJAR, …
*  Free vs commercial executable creators for all supported operating systems…
*  Icons, auto-updaters, and installers, for all supported operating systems…
*  Write an ant target that generates:
**  zipped release-ready desktop executables for all operating systems…
**  Webstartable or Applet-ready JARs…

*  Collect the best practices (pros/cons/limitations) in a comparison table.


=== jME on the iPhone

XMLVM is a project that let's you convert .class-files (and .net-clr files) into xml-files. This xml-files then 
can be translated into different targets and also objective c. They already implemented an compatibilty layer you can write your android-application against and create iphone objective c-sourcecode including makefiles out of it. (It seems  that) all you have to do is to run the makefile on a MAC. Kev Glass implemented the opengl-translation and one nehe-lesson is included as example. 

Here some links:

link:http://www.xmlvm.org/overview/[http://www.xmlvm.org/overview/]
link:http://www.xmlvm.org/iphone/[http://www.xmlvm.org/iphone/]
link:http://www.cokeandcode.com/aboidblog[http://www.cokeandcode.com/aboidblog]

opengl-compatlib (in sourcefolder src/xmlvm2objc/compat-lib/java ):
org..xmlvm.iphone.gl
