What to do about jME 1.0?

Well all,



Looking around the place, it seems pretty official;  the fate of jME has been left in the hands of the community.  I for one would REALLY like to see jME succeed.  So if that means staying up late (it's past 3am here) to answer some/read posts or take a few minutes to try and get something done code wise, then so be it.  If it also means having to step up and ask/post some hard questions and possibly start a war or be ridiculed for them, then I can live with that also; jME is worth it!



It is my opinion that the first thing we as a community really need to think on is what we want to do with/about jME 1.0.  So… I decided to take a chance and start this poll, maybe it will generate some good discussion.  Please moderate/remove it if causes any problems (it is my hope though, that it might bring some more camaraderie having to deal with such a difficult decision)…

jme2 is still missing downloadable jars / javadocs.



only project owners can upload jars to google code:

http://www.jmonkeyengine.com/jmeforum/index.php?topic=9650.0

Hmm, good point core-dump…



Anyone else have anything that needs to be considered?



My motivations for posting this poll:


  • the effort I see being put into maintaining/helping with jME 1.0 only issues, as well as the effort to keep up with divided documentation

  • the amount of issues that people new to jME are having simple due to their being 2 version of jME available
    (lets face it, getting going with jME can be a pretty daunting task anyway without having to figure out the whole 1.0 and 2.0 thing)

  • An effort on my part to get the community more involved with the immediate future of jME



So lets keep the good comments going :)

(EDIT: I changed the poll to have the "Only when it is safe to do so..." item and reset the results, there was only 2, so that people can vote for the new item if they so desire...)

I've voted for only when safe to do so. The main reason being that as soon as we say 2.0 is stable and entering a test/release period it means that we have much less flexibility in altering API. I think that if people are after new features in 2.0 then it may pay to keep a little flexibility in the API. Also, I think that there are a few areas where the existing API could be a little cleaner and it would be nice to make these changes before 2.0 becomes frozen.




also good points :slight_smile:

ianp said:

I think that there are a few areas where the existing API could be a little cleaner and it would be nice to make these changes before 2.0 becomes frozen.

Have these been discussed yet? Who is working on this and what is the timetable?

There are a few ideas around and discussions have been made, but nothing is set in stone.



Momoko_Fan has made a todo list and proposed changes to jme2

jME 2 Todo list:

http://www.jmonkeyengine.com/wiki/doku.php?id=jme2_todo



jme 2.1 design document discussion:

http://www.jmonkeyengine.com/jmeforum/index.php?topic=9379.0


While I do think that most of what is on that list should make it into jME; I strongly feel that right now we need to focus on finishing the 'plan' that was in place before all the senior devs left.  In my opinion they were going to release jME 2.0, then iron our any kinks, then phase out 1.0.  Well 2.0 is definetly out, and most of the kinks seem to be ironed out; but it does seem like there were some things missed (is there a reason the RenderState ints never got switched to enums? etc)…



Having said that, the havoc created by keeping 1.0 around is only going to get worse as time goes on, furthermore phasing it out will only get harder as time goes on (all the tutorials, etc; will have to be RE-updated).  So, while I did cast a vote for "only when safe" I feel that we need to set a time frame (sooner rather than later) to phase it out.  Then it will be much easier and more simple to implement the changes momoko_fan (and I'm sure the rest of us) would like to see (think about all the requests and problems that the people to trying to use the planned features will have while still using 1.0, makes me kinda shudder).



nymon made an excellent point though, and I guess we should consider a new topic with the title "What needs to be done still in 2.0…"; where people can post comments about what they feel they would like to see before 2.0 is considered 'non-beta' (I hesitate to use the term release candidate…).

JME2 is 'out', as everyone is using it and telling newbies to use it.

When significant API changes were expected, JME2 was correctly referred to as 'pre-alpha'.



Clearly it is now the defacto production version of JME.



Saying that I still don't use it so do whatever  :smiley:

In my humble opinion it is a mistake to stop maintaining jME 1 until the API of jME 2 is dead-set, carved in stone, frozen, etc…



I for one still use jME 1 and I wouldn't dream of switching until the API is officially frozen. Just imaging the pain every time the API changes, with a relatively large project like Mad Skills Motocross. And I am not talking about the time it takes to search/replace and change a few things here and there, I'm talking about the endless testing that would have to take place each time.

Considering jME 1.0 was NEVER 'set in stone' and continued to have changes up until 2.0 was released I think we will be waiting a LONG time for that (satan throwing snowballs comes to mind…)



Good development teams should always strive to make changes in the codebase with as little impact on the existing API as possible as well as backwards compatible and to keep modifications required by the end user to a minimum…


I for one still use jME 1 and I wouldn't dream of switching until the API is officially frozen.

At this point it is very likely that 2.0 has less bugs/problems than 1.0 (personally I saw at least 2 issues disappear once I switched the project to 2.0)

I understand tobias completely, as a game programmer, you want to spend your time with improving your game, not with debugging possible bugs in the used api.



When there is a jme 2 alpha / beta release (downloadable jars), there should also be a change log (example change log).

Someone upgrading from jme 2 release 0.x to 0.y can check the change log for possible api changes or gotchas.



The jme to jme2 changes makes a good base for a change log.



Everyone who checks in a patch or feature, needs to also make a note in the change log if necessary.

I agree in FULL on that, I am surprised it isn't already S.O.P.



And I didn't mean to sound so rough in my earlier post, I need to get coffee before I start posting ESPECIALLY when I am that hung over…  Sorry tobias

No problemo, I didn't pick up on any roughness :slight_smile:

I think I found the problem… The name "jMonkeyEngine 2" is misleading. The correct name would be something like jME+ or "jME1 expansion pack", the reason its called jME2 was because the developers wanted to create a new engine, but mid-way it was abandoned, resulting essentialy in jME1 with bug fixes and non-backward compatible changes, its still called pre-alpha as that reflects the former devs' ambitions for the future… A true "jME2.0" would be an engine made completely from scratch, e.g what Ardor3D is.

From a newbie standpoint, jME2 is a mightmare as all tutorials are made for jME1, so you cant copy-n-paste code or try it out. For an experienced developer, jME2 is welcomed for its new additions, transition is very easy as its essentialy the same engine with some syntactical differences… Also senior devs rarely use the docs.

I voted for "let the past die"; however, I think that 1.0 should be kept on hand (just buried a bit on the webpages for those who still have projects that use it) so that new members don't get caught up in the confusion.  Also, I think that there should be some posting guidelines in place on the forums after the cutover to 2.0 like if a post is related to 1.0 then that must be clearly stated in the post, otherwise 2.0 will be assumed.  Documentation for 1.0 should also be buried on the site, but not be made completely unavailable.  Links on the download page should also boldly note that 1.0 is for active legacy projects and that 2.0 is for any new users and new projects.


Professional organisations are unlikely to opt for 2.0 as it is not final.  Developers can argue as they like that 2.0 is stable, but the corporate decision makers will not see it as so and quiet obviously as  it is only downloadable from source control as the "latest bug fix version"

If 1.0 is to be de-commissioned,  2.0 needs a final, 2.01 needs to be born too as well as the feature version 2.1.... there should also be a professional count down - say three months, before 1.0 is de-commissioned to allow conversion time to 2.01.

Then of course, there is nothing wrong in allowing 1.0 to be downloaded.

Issue of the wiki and docs .... Simply, it needs to be available for all feature versions. It does not work in having a single version.

If 1.0 is to be de-commissioned,  2.0 needs a final, 2.01 needs to be born too as well as the feature version 2.1


I think trying to do all that will spell doom, IMO we need to concentrate on one thing at a time.  The issue here is trying to decide what to do w/ jME 1.0 in hopes of making jME MORE usable for new people, not in adding new features to 2.0...

Professional organisations are unlikely to opt for 2.0 as it is not final


Until we get all of this 'stuff' figured out no 'Professional' organization will ever take jME seriously.  If we leave the current 'system' (more like chaos) in place not only will it become difficult to keep people active and interested, no amount of 'features' in the world will make jME look any more mature/stable. 

however, I think that 1.0 should be kept on hand

I agree in full on that, I assumed we all meant that getting 'rid' of 1.0 simply means moving to an archive location (and changing links).
basixs said:


Professional organisations are unlikely to opt for 2.0 as it is not final


Until we get all of this 'stuff' figured out no 'Professional' organization will ever take jME seriously.  If we leave the current 'system' (more like chaos) in place not only will it become difficult to keep people active and interested, no amount of 'features' in the world will make jME look any more mature/stable. 



Actually work for one that has committed to a JME project ( even with the name JMonkeyEngine ) ... Would be nice if we could use 2.0 but per the problems stated we cant move to 2.0 ...


Basically because it's not final?