ENIGMA Forums

General fluff => General ENIGMA => Topic started by: Goombert on April 23, 2016, 05:30:48 pm

Title: What do you want?
Post by: Goombert on April 23, 2016, 05:30:48 pm
Just out of curiosity and to see where to go next. I would like to get a feel of what people want. For both LGM and ENIGMA, please tell me what the 3 most important issues you see are. You should try to pick simple things that you feel are important for each, or you can suggest 1 really important item that takes a little longer to do. So either 3 simple things for each project that you find important or 1 really big thing.

The trackers should give you some ideas of what issues we currently have:
https://github.com/IsmAvatar/LateralGM/issues
https://github.com/enigma-dev/enigma-dev/issues
https://github.com/enigma-dev/lgmplugin/issues

Maybe if everyone reaches a consensus on a really important issue, I will actually do it.
Title: Re: What do you want?
Post by: FroggestSpirit on April 24, 2016, 08:36:35 am
The main thing I think would be nice would be android support.
I was branching out a bit, and looking into SDL, and I know that can be kind of easy to port to android, so I'm wondering if we had a sort of SDL approach if it might make that easier.

Other than that, there's just a few minor things I've ran into, like audio issues, but I've worked around them.

Might not be the best spot for this, and I've been sort of absent lately, but is the new parser still going to be a thing?
Title: Re: What do you want?
Post by: Goombert on April 24, 2016, 10:22:33 am
In my opinion I would say the parser is more important. But fundies/cheeseboy was actually doing an SDL port before but it wasn't attached to ENIGMA. It was just GM functions in C++ using SDL.

But anyway the parser is still a really big thing. I am thinking more along the lines of your most annoying bug, something that really annoys you and makes it hard for you to do something. Like how the path editor was broken for so long until I fixed it in the latest release. Something like that which I can go and just fix real easy.
Title: Re: What do you want?
Post by: FroggestSpirit on April 24, 2016, 10:42:58 am
I don't know the whole situation, or how much work the new parser would be, but I'd also agree that if I had to choose one thing, it would be that. If it's something I could understand how it works, I would like to help with it too.
Title: Re: What do you want?
Post by: egofree on April 24, 2016, 11:27:51 am
1) Fix lateralgm plugin stability
2) Fix lateralgm plugin stability
3) Fix lateralgm plugin stability

 :D
Title: Re: What do you want?
Post by: FroggestSpirit on April 24, 2016, 12:54:38 pm
After catching up on the forum more, I think it'd be better to go with C++ like Pure Enigma. From what I gather, the parser won't need as much work too if we make this change. I'm already used to coding in C++ syntax, so I don't see it being a down side.
Title: Re: What do you want?
Post by: Goombert on April 24, 2016, 02:30:23 pm
The first part to understanding the parser would be a general knowledge of compiler construction at the very least. I managed to hack some things in without entirely understanding how a compiler works, like the object inheritance.

The most annoying parser problem we have is variadic functions, or variable arity. Those are basically just functions that take a variable number of arguments.

https://github.com/enigma-dev/enigma-dev/issues/214

https://en.wikipedia.org/wiki/Variadic_function
https://en.wikipedia.org/wiki/Arity

I think more people contributed to LGM because it's generally a much simpler project. Working on ENIGMA has a much steeper learning curve, except for adding basic engine functions such as draw_* I would argue.

Quote from: egofree
1) Fix lateralgm plugin stability
I was actually going to mention that if nobody else suggested it. That's a really good one. Currently I am actually cleaning up ENIGMA.exe and I wrote a better method to detect Java, but it likely won't eliminate  some of the other issues. I must say that I have had relatively few issues installing ENIGMA from the Portable ZIP myself. I am investigating ways to make this less a pain in the but. I am also doing some other things like cleaning up my XInput extension and properly formatting the code using Josh's code style. I have an Xbox 360 controller now so I am using it to make the functions work exactly like GMS.
Title: Re: What do you want?
Post by: time-killer-games on April 25, 2016, 03:23:07 pm
I have to be completely honest with you.

I'm moving on away from game creation related interests.

So I really don't have any opinion on this.

If I did, it would be based on guesses, as I haven't actively messed with enigma that much in the recent past.
Title: Re: What do you want?
Post by: rcobra on April 30, 2016, 10:40:22 am
1.run and faster compile
2.support android (maybe better html5)
3. 3d engine and room editor 3d level
Title: Re: What do you want?
Post by: polygone on April 30, 2016, 02:55:37 pm
1. Faster compile time - without a doubt one of the biggest thing holding things back
2. Regression testing - been promised a few times but nobody delivered on it yet but it's vitally important
3. Debugging - It's still not at all friendly to debug games

Beyond that the compiler is obviously holding things back, which it has been for years on end.
Title: Re: What do you want?
Post by: Garo on May 01, 2016, 05:17:23 am
While most of the things are satisfactory for me to use, I would love to see the possibility of those things happening:

Debugging. I found it very difficult at times to progress with developing a game when I couldn't figure out what object in a room was causing trouble. This is perhaps the most troublesome thing for me, at least.

Maybe go with C++ instead of EGL.

Further development on the JEIE. Perhaps better integration with LGM for supporting more than one frame at a time, and maybe a better color palette picker. It's current functionality is matching that of Microsoft Paint, which doesn't necessarily mean it's a bad thing, just that there's a distinct lack of features that would come in handy for people who would want to do pixel art with the tool. Of course, there are external editors, but they always lack that integration like, for instance, Game Maker had with it's own sprite editor.

Title: Re: What do you want?
Post by: TheExDeus on May 02, 2016, 03:59:29 pm
My comments about the requested stuff:
Faster compile time - There are three main things we can do to speed up compilation. For me compilation is extremely fast and takes less than 5-10s, but I have recently seen a PC which it took >30s per compile. So it can be slow for older PC's. What we can do is:
a) Switch from EDL to C++ so there isn't any parsing going. Not entirely sure how much speed this would give as the parsing isn't actually the slowest thing in my tests.
b) Split user code into several and make them individually compilable. Right now all the user code is in one header and it takes a lot longer to compile as it can have thousands of lines. Especially when warnings are enabled (by default) and so console takes like 60% of the time just printing stuff instead of actually compiling. So if the user code was separated into several .cpp files it would be possible to compile them individually. Maybe per object or something. So if the user changes only code in one object the rest won't recompile.
c) Combine several object files into one. Currently during linking it links about 100 files together. This can be slow, especially when link-time optimization is enabled. It is possible to link these together (ld -r) so only one large ENIGMA library needs to be linked whenever the user compiles.

Go with C++ instead of EDL -yes, that is the idea for my "Pure ENIGMA" project, but sadly I haven't had much luck with it yet. It sadly takes a lot of planning and time to make it usable without an IDE. I have a feeling I will need to brutally pull out the ENIGMA engine proper and rewrite some front-end code to make it stand-alone.

Fix LGM stability - Sadly I don't think this will happen. It is tied to the ENIGMA plugin and it seems to be the issue. It also depends on Java and apparently hardware (as it is rock solid on my laptop, but crashes in 30 seconds on my desktop).

edit: Robert, maybe lets merge the branch I have been working on in the past year and make a new installer for users? I think a lot of problems they have posted from engine part have actually been fixed. I will fix any newer bugs that they might find. From then on I will work on separating engine from IDE (Pure ENIGMA) and I don't plan to add new features to ENIGMA directly.
Title: Re: What do you want?
Post by: Wendigo on May 03, 2016, 08:42:20 am
(Besides stability of LateralGM on Windows) I think the most important thing to do is increasing the number of Enigma users.
To be honest the webside neither looks appealing nor active. The most needed thing are new developers.

So my thoughts are:

Homepage:
- add a table of engine features with an example screenshot each to show what enigma is capable of on the first sight. (images matter a lot)
 (what I have in mind is something like the features section of the godot engine (http://godotengine.org/features (http://godotengine.org/features))
- Move the "News" to a news section so that the first thing newcomers get to see isn't the slow pace of development (dates in the news entries)
- The menu bar in the headder should be more prominent. The items are very small.

Wiki:
- The documentation is very scarce. If you are not having a GameMaker background (like me) you'll be left in the rain. Most tutorials on the internet are made for GMStudio which isn't 100% like Enigma anymore.
- The Tutorials (e.g. http://enigma-dev.org/docs/Wiki/Tutorial:Making_your_first_game (http://enigma-dev.org/docs/Wiki/Tutorial:Making_your_first_game)) don't look very pleasing, whey are not creating any appetite for more. There are only few (if any) screenshots. (Maybe I can help out here. At least with a basic one)

Downloads:
- A dropbox link as official download doesn't look professional. Maybe a release could be created for download on github.
- Linux and OSX binaries should also be downloadable, most game developers won't want to compile the engine themselves. Arch isn't a common distribution, there should at least be a deb package for download.
- Linux compile instructions don't work for me on LM17.3. The install script runs without errors but running with "~/enigma-dev/start.sh" throws an error (bad interpreter - no such file or directory. Running the IDE with "java -jar ./lateralgm.jar" works though.

PR:
- Enigma is quite unknown right now, there are very few (if any) indie games out there which are made with Enigma. I know advertising for an open source engine isn't easy cause of the lack of $$ but maybe it would be an option to post the engine on Steam (when the IDE is stable). This will definitely attract some people.
- Enigma-Dev needs a Wikipedia article or at least be mentioned in the list of game engines article: https://en.wikipedia.org/wiki/List_of_game_engines (https://en.wikipedia.org/wiki/List_of_game_engines)
Title: Re: What do you want?
Post by: TheExDeus on May 04, 2016, 01:20:36 pm
I agree partly with Wendigo. But I think we need developers more than users. We won't be able to keep users if nobody is developing ENIGMA itself. Having an active community helps with getting dev's though. There was a total ENIGMA website rewrite some time ago (6 years ago to be precise: http://enigma-dev.org/forums/index.php?topic=610.15 and a broken version http://enigma-dev.org/v5test/# ), but I think as development slowed the need or even the want for more users diminished as well, because that would mean more people coming and saying how something is lacking or not working.
Title: Re: What do you want?
Post by: Goombert on May 09, 2016, 01:58:08 am
Thanks for the suggestions everyone, allow me to address them. I was sad to see that more of you didn't come up with a smaller bug along the lines of "this really annoys me that the path editor doesn't work" that really inhibits you from completing some project. That's more of what I was going for, but regardless a lot of you came up with a lot of new ideas that I really like.

I've been interested first and foremost on fixing some of the plugin instability problems and thinking of ways to make common errors/issues disappear before patching the next portable ZIP. I started working on the ENIGMA.exe and did manage to come up with a better method of searching for the installed Java. Since it's no longer a big if-else chain, I decided to go ahead and clean up that source file while I was in there. From now on if I contribute any code to ENIGMA's code base I intend to use the style conventions of JDI/Josh for consistency between the engine and the compiler. I also used my new Xbox 360 controller to really clean up the XInput extension. I am still working on this and I will not be getting side tracked. When I am done with it I intend to merge it and then fix two graphics related bugs regarding the clamping of draw alpha.
https://github.com/enigma-dev/enigma-dev/pull/966

I am going to stick around and keep trying to clean things up and get more issues resolved. I won't be focusing on adding new features and extensions like I was before. Largely because we don't need any. We just need our existing source code cleaned up and we need stability improvements. What I gather from this conversation is that this should be ENIGMA's primary focus going forward.

Quote from: TKG
I'm moving on away from game creation related interests.
You'll always be welcome here.

Quote from: rcobra
1.run and faster compile
Quote from: polygonz
1. Faster compile time - without a doubt one of the biggest thing holding things back
Absolutely, and I've been going back and thinking about adding a real stop button in the next LGM + plugin patch. Josh can help me do it and if I do it I will make sure that there's no possibility of leaking resources or having more UI problems.

Quote from: TheExDeus
b) Split user code into several and make them individually compilable.
c) combine several object files into one.
I can't believe nobody ever thought of this. I like these ideas and would like to know what Josh thinks about it.

Quote from: rcobra
2.support android (maybe better html5)
3. 3d engine and room editor 3d level
These are too advanced, a little overboard. I would rather see HTML5 support first because it's more universal.

Quote from: polygonz
2. Regression testing - been promised a few times but nobody delivered on it yet but it's vitally important
This one is something I really stand behind. fundies/cheeseboy did have a build bot going for ENIGMA but did not want to keep it on his own server and Josh didn't have time to put it on ENIGMA's server. I am a strong advocate of using an automatic build bot and adding unit tests to ENIGMA. I don't know if anybody has seen those "Build Success" stickers with Travis CI that people put on their GitHub repo's, but it would be really awesome to put one of those on ENIGMA's. It would also help to have a bot that automatically packages the ENIGMA portable ZIP instead of having to wait an hour for me to upload it because of my crappy internet connection.
https://travis-ci.org/

Quote from: polygonz
3. Debugging - It's still not at all friendly to debug games
Quote from: garo
Debugging. I found it very difficult at times to progress with developing a game when I couldn't figure out what object in a room was causing trouble. This is perhaps the most troublesome thing for me, at least.
This one is also true but we have made some progress towards this. The first step was when I added variable names for debug mode so you can see the name of a variable that does not exist. But we could use more error messages wrapped in debug guards.

Quote from: garo
Further development on the JEIE.
I agree with you on a lot of that but I don't actually care much for JEIE or GM's sprite editor or even GIMP for that matter. I really love the simplicity of Paint.NET and I get criticized for it a lot but I would love to see a cross platform version of it written in the Qt Framework. If I didn't have any other projects going on right now I would dedicate myself full time to building it.

Quote from: Wendigo
The documentation is very scarce.
I have to ask, are you aware of the function documentation? I ask because many users seem to have a problem finding it and I do not understand why. Function documentation is probably the most completed documentation in ENIGMA. Drag and Drop actions are fully 100% documented too.
http://enigma-dev.org/docs/Wiki/Function_Documentation
http://enigma-dev.org/docs/Wiki/Action

Quote from: Wendigo
- add a table of engine features with an example screenshot each to show what enigma is capable of on the first sight. (images matter a lot)
Yes we had a new website by a2h we planned to use but we had other important things to do, and even it looks a little dated now. So we could definitely use a new website but I think that should come after we dedicate some time to really fixing our engine. There's no need for a new site to attract more people only so we can disappoint them.

Quote from: Wendigo
- Move the "News" to a news section so that the first thing newcomers get to see isn't the slow pace of development (dates in the news entries)
I agree with you on this and I try to keep the announcements page updated but I hardly have anything to announce. I always take suggestions to announce something or even someone's game if they wanted me to. You just have to tell me about it and I can put it on there. I also try to use pictures to capture your attention so you know when there is a new or really cool update.

Quote from: Wendigo
- The menu bar in the headder should be more prominent. The items are very small.
This really bothers me on my high DPI screen, 25" with 2560x1440 resolution.

Quote from: Wendigo
- The Tutorials
Those you are absolutely correct about and it's largely because most of us feel the examples from GM that work are the best suited for teaching. Really the ideal was to have all GM tutorials apply to ENIGMA. At the same time however, everyone registered on the forum is registered for the Wiki and can log in without having to register a second account. So anybody is free to contribute more tutorials if they like.

Quote from: Wendigo
- A dropbox link as official download doesn't look professional. Maybe a release could be created for download on github.
You're right, but that's because Josh doesn't give me FTP access to the site, probably because I would mess something up. But I don't actually care about that, I care about getting a build bot and unit testing so that nobody has to bother uploading a ZIP and the server will just do it for us.
Title: Re: What do you want?
Post by: Garo on May 09, 2016, 09:44:06 am
There's a Cross-platform kind of Paint.NET program. Well. It's pretty much a fork of Paint.NET 3. Also MIT licensed (besides the PDN format).

https://pinta-project.com/pintaproject/pinta/
(it's using GTK though, not Qt)
Title: Re: What do you want?
Post by: Wendigo on May 10, 2016, 03:18:29 am
I have to ask, are you aware of the function documentation? I ask because many users seem to have a problem finding it and I do not understand why. Function documentation is probably the most completed documentation in ENIGMA. Drag and Drop actions are fully 100% documented too.
http://enigma-dev.org/docs/Wiki/Function_Documentation
http://enigma-dev.org/docs/Wiki/Action
The function documentation is indeed very well made (I especially like the example part at the bottom). What I was referring to is the table in the "Overview" part of the documentation page:
http://enigma-dev.org/docs/Wiki/Documentation (http://enigma-dev.org/docs/Wiki/Documentation)
I think this is where most newbies will look because they assume to find a deeper explanation of the single mechanics and how they work together.
Some of the most interesting topics like pathfinding or AI don't even hold any content:
http://enigma-dev.org/docs/Wiki/Path_Finding
http://enigma-dev.org/docs/Wiki/Artificial_Intelligence

Or may even confuse some (windows) users like here:
http://enigma-dev.org/docs/Wiki/Networking