ENIGMA Forums

Contributing to ENIGMA => Developing ENIGMA => Topic started by: Goombert on February 09, 2014, 09:09:08 am

Title: JavaFX
Post by: Goombert on February 09, 2014, 09:09:08 am
So part of what I am doing in LGM 1.8.4 is addressing some long standing issues. One of these is the sound editor does not let you preview play MP3, MPEG, PCM, or OGG audio. One way to address this is the use of JavaFX which is now a part of the JSE since Java 7, though a substantial amount of the Java usage share is still Java 6.

I will probably end up doing which ever is the most popular. Also keep in mind that JavaFX also replaces swing for GUI controls allowing CSS for styling and theming, among a host of other features including hard accelerated painting and 3D graphics. Java 8 is mainly continuous integration with JavaFX and Oracle plans Java 9 in 2016 to be tightly knit with JavaFX, making it basically part of the core framework.

https://en.wikipedia.org/wiki/Java_version_history#Java_SE_8
Title: Re: JavaFX
Post by: Sslaxx on February 09, 2014, 10:03:12 am
I don't think a temporary 12MB download is likely to hurt anyone's bandwidth limitations in any meaningful way. If JavaFX allows for better everything, ditch Swing ASAP.
Title: Re: JavaFX
Post by: Goombert on February 09, 2014, 10:16:19 am
I am more likely to wait until Java 8's release next month to get started though, because then I can basically branch all of LGM and redo it's interface as well.

Did some testing with the Scene Builder too, it's basically just like every other GUI builder, creates XML, but this would mean LGM by default would have only 1 look and feel that is the same on all operating systems, and you'd have to add your own through the use of cascading style sheets. Everything looks much better than Swing though, for sure.
(http://i.imgur.com/ZkkH3tF.png)

A good candidate would could this LateralGM being released maybe LGM 1.8.5 or 1.8.6 in a few months time, and I would probably drop GMK support as well, since LGM 1.8.4 will offer the best GMK<->GMX<->EGM conversion.
Title: Re: JavaFX
Post by: Sslaxx on February 09, 2014, 10:20:35 am
Looking a lot better than Swing, and I'm interested to see how LGM's interface translates to it.
Title: Re: JavaFX
Post by: IsmAvatar on February 09, 2014, 10:43:16 am
1 would it be possible to simply do a version check before using the functions? We used to do this for some of the more advanced swing features and it worked great. This way you can maintain java6 support without incurring a big dependency, and display a warning of reduced functionality to encourage people to either update or download a jar.
2 if it can't be done directly in lgm, maybe a plugin could pull it off.
3 why are we dropping gmk support? The reader and writer work great and it's the latest version gm people can use without switching to studio. And what about gm6?
Title: Re: JavaFX
Post by: Goombert on February 09, 2014, 10:58:25 am
Quote
1 would it be possible to simply do a version check before using the functions? We used to do this for some of the more advanced swing features and it worked great. This way you can maintain java6 support without incurring a big dependency, and display a warning of reduced functionality to encourage people to either update or download a jar.
2 if it can't be done directly in lgm, maybe a plugin could pull it off.
I never thought of that, but really it won't even be an issue, after Java 8 comes out, Java 6 will be dead in a matter of months.

(http://i1.wp.com/blog.jelastic.com/wp-content/uploads/2013/09/Java-version-distribution-August-2013.jpg)

Quote
3 why are we dropping gmk support? The reader and writer work great and it's the latest version gm people can use without switching to studio. And what about gm6?
I figured you wouldn't like that, but I mean of course when and if it became absolutely necessary. There are many things different, the extensions and includes are no longer a part of GGS but now their own resources. Sirmxe keeps saying I have too holistic of a world view as well. I can't help but feel I am making LGM worse by improving GMX support. When in reality the last version you worked on was the best version for GMK support.

So basically, what I am contemplating is getting everything as good as possible during 1.8.4 and then splitting LGM into a JavaFX rewrite with only focus on GMX. YoYoGames is doing major compatibility breaking changes such as requiring all games to utilize surfaces now and stuff, and people are raving it on. I am starting to feel the GMK version of LGM should stay where it is, and the program go in two different directions. Too much of what Studio is doing sucks now, and makes it impossible for people on even Windows Vista (polygonz) to run the software. I feel it is time ENIGMA and LGM and Studio go their separate ways.
Title: Re: JavaFX
Post by: IsmAvatar on February 09, 2014, 11:53:52 am
That doesn't seem unreasonable. That said, LateralGM, as a name brand, is and always will be intended to support different GM versions and make them as compatible as possible. It's in its name.  If you decide to fork and drop GM6/GMK support, I think it would be wise to adopt a new name as well, so we can keep LGM as legacy. Naturally, LGM (and I) would endorse your new product as the desirable game development IDE. To that end, hopefully LGM would serve as a useful tool in converting older games into the newer formats that you would support, such as EGM.
Title: Re: JavaFX
Post by: Goombert on February 09, 2014, 12:23:04 pm
I am glad you understand where I am coming from, but with that said, I do not plan on doing it any time soon until it becomes absolutely necessary, where it starts getting in the way of performance and stuff.

I especially would not drop it before YYG has, they did drop their 820 exporter, when they realized how fucked up they made it, but they do still allow importing which auto converts to GMX.

The point here is to lay out LGM's future development in a way that would not leave the last GMK supporting revision extremely feature lacking. In other words, we're talking way down the road once Java 6 is completely dead so the GMK LGM can have a nice GUI and all that hardware acceleration and other goodies. Do you get that? I am laying out my development plans so there will be no version left behind.

Now, my other concern, is how shitty they are making GameMaker, I am really really starting to feel it's time ENIGMA not focus so much on compatibility and just do things our own way. There are a number of things that could just be done better in ENIGMA, and we should just say fuck compatibility already, we'd be able to do such a better job of popularizing the software, the whole clone ripoff thing just leads to comparisons and people always saying what we do and don't have. Where we could basically just do things a 1000 times better with much better design for shit.
Title: Re: JavaFX
Post by: Darkstar2 on February 09, 2014, 12:47:20 pm
First about JAVA, why do some people still have Java 6 anyway, wasn't there a huge campaign to encourage people to move to 7 due to major exploits ? Besides some programs / sites required you to use 7 minimum.  Personally I voted the last option I would not mind 12MB extra download, it's not going to be a problem unless you are updating the core program hundreds of times daily :D

I guess some people are attached to old things, but there comes a time where a move is necessary (imposed :D).

I am glad you understand where I am coming from, but with that said, I do not plan on doing it any time soon until it becomes absolutely necessary, where it starts getting in the way of performance and stuff.

I fully agree with you when you say ENIGMA/LGM and Studio should go their separate ways.  The whole idea is for ENIGMA/LGM to surpass studio.   If studio is getting worse, do you want to emulate "worseness" ?  Personally as a user I would not mind ENIGMA being different, so long as there is proper documentation to properly compare it to studio, what is compatible, what is not, and for the incompatibilities offer alternatives, for example if a function is not supported, tell us an alternative, this would help those who do not know C++ or not too familiar with things yet. 

Quote
Now, my other concern, is how shitty they are making GameMaker, I am really really starting to feel it's time ENIGMA not focus so much on compatibility and just do things our own way.

Couldn't have said better myself, I personally do not mind building projects from scratch if it means I get the benefits.  Providing the program retains GML compatibility, and if something is removed that studio has, document the alternative.

Quote
There are a number of things that could just be done better in ENIGMA, and we should just say fuck compatibility already, we'd be able to do such a better job of popularizing the software, the whole clone ripoff thing just leads to comparisons and people always saying what we do and don't have. Where we could basically just do things a 1000 times better with much better design for shit.

Can you give examples as to what you can do so much better ?
Have you weighed the pros and cons ? I think your program does so many things better from the start........ 
1) It's fairly inexpensive  ;D
2) It has a friendly and helpful community
3) It has developers that listen
4) It is made by people who know what they are talking about
5) It does not charge rob you $299 for a compiler.
6) Offers obsoleted functions that many have begged YoYo to bring back.
and the list can go on.
It might be necessary to retain some compatibility, particularly in the functions / GML department.  So I'm assuming when you say compatibility you mean with the reader/writer / IDE stuff ?

Also a good feature to have inside LGM for those who are getting started and do not know by heart all the functions, etc, available, to have an option to list all GML functions / ENIGMA specific functions / both, etc.

Title: Re: JavaFX
Post by: Goombert on February 09, 2014, 01:04:51 pm
Quote from: Darkstar2
Can you give examples as to what you can do so much better ?
Sure.

1) Change all window functions to accept a window id, implement the function window_create(), so basically multiple window management
2) Design a uniform dialog system that allows people to basically create their own GUI programs and dialogs, instead of shitty prebuilt ones that work very funky
3) Drop off GMK, allowing you to put resources wherever you want, so basically have a sprite and an object right next to each other in the same folder
4) Redesign paths to allow branching and not be strictly linear
5) Allow sources/header file resources so that you can easily compile C++ directly inside your game, or write objects without drag and drop by sub-classing object_basic
6) Redesign the whole drawing system for modern graphics programming, so basically dynamic draw_text or draw_sprite would be replaced with gui_create_label() and sprite_batch_begin()/end() respectively, just like every other game engine made in the last decade.
7) Make all functions consistent, i.e. vertex_end() returns the id for a vertex buffer in Studio instead of vertex_create_buffer();, like one would assume because of d3d_model_create()

There is so much more I would do too.
Title: Re: JavaFX
Post by: Darkstar2 on February 09, 2014, 01:20:01 pm
Now that's a good sell : D I really like the one about creating your own GUI, so you could effectively use this program to make good apps and not just games, mind you, you can already do that but it's a pain in the ass :D

Removing drag & drop might not be a good idea, adding new D&D icons maybe good.  It is practical for those who are getting started and want to progress slowly. Besides in older versions of GM it was known that GML was faster, but it's a non issue non because of changes they made, whether you use D&D or GML.   I still think retaining some compatibility is good, at least creating a SMOOTH transition as opposed to suddenly dropping things, because that would rhyme too well with YoYo and I'm sure people don't want that !  :)

But you can have your cake and eat it, I'm sure you can offer all those new changes for the better but keeping older functions ?

Not everyone learns quickly or is familiar with all the technical jargon and coding, I think that was the top selling point with GM, easy to use interface, fast learning curve, etc.

I must admit what throws me off using other programs is the steep learning curve and interface.

Moving forward is good but allowing backwards compatibility thrown in there is essential in some cases, if that were not true, then Microsoft would have been done with many things ages ago, so would many other software.

So if I am understanding correctly you are talking about the LGM aspect of the program right ?  If it becomes too different and unique it would certainly have to go through a name change....and discretely support GM functions (GML) etc, but have several new ones, new interface, etc.   Also wouldn't a significant change warrant LGm 2.x as opposed to 1.84/5. etc. ?
Title: Re: JavaFX
Post by: Goombert on February 09, 2014, 01:58:23 pm
Quote
Removing drag & drop might not be a good idea,
I never said remove DND, I said allow two extra resource types, sources and headers, so you can code objects your own way.

Quote
Not everyone learns quickly or is familiar with all the technical jargon and coding, I think that was the top selling point with GM, easy to use interface, fast learning curve, etc.
Right, that is why it should be redesigned to focus on helping them understand modern game design, not raster graphics from the 90's. The difference is you only see draw_() functions which are raster graphics in programs like Windows Forms/Java/etc or basically Software, game engines are Hardware, well even software is becoming Hardware now, i.e. JavaFX/Qt

Quote
So if I am understanding correctly you are talking about the LGM aspect of the program right ? 
No, functions and compiling are all offered by ENIGMA. Since Studio does not have an IDE besides the really outdated GM4Mac, we distribute LateralGM separately as well. So even if people don't want to use ENIGMA they have an IDE they can use to edit their GM projects on other operating systems, but they can't run them, make sense?

But that was all hypothetical, the project here does what people want it to do. My only point is that GM's functions are verbose and could be redesigned to be more consistent and more powerful, LateralGM's interface also suffers from having options for every single GM version at one time, a result of its development having never been 1 to 1 with GM's.
Title: Re: JavaFX
Post by: Darkstar2 on February 09, 2014, 02:28:10 pm
Right, that is why it should be redesigned to focus on helping them understand modern game design, not raster graphics from the 90's.
The difference is you only see draw_() functions which are raster graphics in programs like Windows Forms/Java/etc or basically Software, game engines are Hardware, well even software is becoming Hardware now, i.e. JavaFX/Qt

Well said, couldn't agree more, but keep in mind with modern games has to come modern skills and know-how.   How many people in the game maker community can you honestly say have skill and knowledge to make a modern game ? In terms of graphics design, sprite design, coding, etc.   Not many, and so this is the reason why overall people are happy with game maker the way it is, they don't understand their flaws because they never will discover them given the type of games they do don't require much fuss.  Agreed ?  Now one has to ask the question, do people want to do modern games and aim high or stick to making as many games as they can in short period of time.  It is somehow of a competition of which person can publish the most games more so than making quality games in my opinion.
Perhaps game maker lacks the "modern" because they target a different audience ?  Perhaps game maker will always remain what it is, with its limits so long as it is not completely rewritten from the grounds up, with a new team that think totally different and have the skills to make a program to cater to full 2D, 3D and latest technologies to allow modern game design, all this can be possible while at the same time offering an easy interface (that can be customized from simply to more advanced) and proper documentation !  A modern game design software does not have to be overly complicated, it all comes down to the interface.

Quote
But that was all hypothetical, the project here does what people want it to do. My only point is that GM's functions are verbose and could be redesigned to be more consistent and more powerful, LateralGM's interface also suffers from having options for every single GM version at one time, a result of its development having never been 1 to 1 with GM's.

That's all good as long as when it's done there is an easy transition and full documentation to show how it was done before and how it is done now.

So example, a GML that was revamped, would look like

The old way with GML:  command, etc.

The new way........... etc.  So people can have a reference to work with and avoid guessing work.

Not much will change with Yoyogames and game maker anytime soon.
They still have not released 1.3 officially, and a long way to go for 1.4, working a new ide (not necessarily better), so their priority is set, I don't think we can expect a major revision of game maker anytime soon.
Title: Re: JavaFX
Post by: Goombert on February 09, 2014, 03:12:02 pm
This actually goes back to why the issue isn't YoYoGames removing features. If they wanted to take GM in a fundamentally different direction, why the hell only go half way? They've gone with a pseudo clone, they would be miles ahead of themselves right now had they done this since the beginning of their take over and with much better reward too.

You got to understand GM came out in the 90's, 1999 to be specific, though the actual original Game Maker, not GameMaker, came out in 1992 hence the reason why they've changed their name to avoid a lawsuit, and has not changed pretty much at all since then.

Here is GM 2, 3, 7, and Studio.
(http://gamemakerblog.com/wp-content/uploads/2009/11/game-maker-2.png)(http://gamemakerblog.com/wp-content/uploads/2009/09/game-maker-11.png)(http://www.downloadsource.net/upload/files/gallery/old/d8/d/8/7f2a192c1c2403c1eb1404820295537a.jpg)(http://gcup.ru/_ld/0/64978784.png)

But as for modern game design, the whole point of GM is to introduce people to game programming, such primitive ways of doing raster graphics have long been obsolete. There are also places where a revamp to the code base would lead to simpler, more optimal design of games as well, this would be a positive for learning, instead of how it teaches bad habits that you need to unteach yourself when moving to other tools and real programming languages.
Title: Re: JavaFX
Post by: Darkstar2 on February 09, 2014, 03:43:28 pm
This actually goes back to why the issue isn't YoYoGames removing features. If they wanted to take GM in a fundamentally different direction, why the hell only go half way?

That's the million $ question, and the answer is simple.  They took the easy approach.  When the acquired the project they had something already made to work with as opposed to starting from scratch.  They were under attack at the time, it would have probably hurt them more had they completely changed game maker.  Well now people 100 years later,;) are paying the price. 

Quote
They've gone with a pseudo clone, they would be miles ahead of themselves right now had they done this since the beginning of their take over and with much better reward too.

Yeah but it would not have been the popular approach seeing as they were not too liked at first. 

Quote
You got to understand GM came out in the 90's, 1999 to be specific, though the actual original Game Maker, not GameMaker, came out in 1992 hence the reason why they've changed their name to avoid a lawsuit, and has not changed pretty much at all since then.

From what I recall the original project was an animation program that later became game maker.  I have known about game maker since version 5 and I remember all hell breaking loose when the project got taken over by YoYo. 

Quote
Here is GM 2, 3, 7, and Studio.
(http://gamemakerblog.com/wp-content/uploads/2009/11/game-maker-2.png)(http://gamemakerblog.com/wp-content/uploads/2009/09/game-maker-11.png)(http://www.downloadsource.net/upload/files/gallery/old/d8/d/8/7f2a192c1c2403c1eb1404820295537a.jpg)(http://gcup.ru/_ld/0/64978784.png)

I'm speechless !   :D

Quote
games as well, this would be a positive for learning, instead of how it teaches bad habits that you need to unteach yourself when moving to other tools and real programming languages.

Yeah that's hard for some. I must admit I have bad habits sometimes with programming, GML, I know there are things I do in several lines of code I could do in a few, I can do the advanced stuff but take the long approach, I have lots to learn to do optimal GML coding / structure.
I did not spend as much time as most people in the GMC did......:D
Like you, time lacks !
Title: Re: JavaFX
Post by: Goombert on February 09, 2014, 03:55:00 pm
That's not what I actually mean. I meant instead of taking their users through an extended period of obsoleting things, they should have done it all at once, you see? I mean like, they shouldn't consider it the next version of GM, when it breaks so much compatibility, but fundamentally nothing has changed.

For instance, what happened when C got too many improvements, did ISO and everybody break compatibility? No Bjarne Stroustrup invented "C with classes" or C++

Does that make sense?
Title: Re: JavaFX
Post by: fervi on February 13, 2014, 09:36:28 am
BTW. In Screen it is GM6, no GM7

Fervi
Title: Re: JavaFX
Post by: Jimmy_D on February 14, 2014, 11:00:26 pm
There is one thing I notice;

A bunch of faggots on about the future of your program.

All talk little to no action.  you made it clear that you have no time to devote to this anymore, most of your dev team quit on you, you barely have time to take a dump and jerk off, so what's all this talk about something going nowhere ?

Besides where the fuck did you get this highly retarded idea to use Java for lateralGM anyway?

Title: Re: JavaFX
Post by: Goombert on February 15, 2014, 11:17:43 am
Quote
All talk little to no action.
??? I have already released the first beta, which did not introduce any new bugs, and has actually allowed two people to now use LGM where they couldn't before a result of type safety. The reason for delaying JavaFX implementation, is because not everyone has it yet, and the point is to avoid people not being able to run the program.

Quote
Besides where the fuck did you get this highly retarded idea to use Java for lateralGM anyway?
You clearly have no idea what you're talking about. Eclipse is Java, and it's one of the best and lightest IDE's out there, I'd say even better than CodeBlocks.