Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Goombert

Programming Help / Re: Using EDL in LateralGM
« on: May 19, 2016, 02:06:50 pm »
After that I went and tested this code again in the create event... and it worked. So it's actually a JDI bug with script locals causing the dot operator to not work. You should not call new, and instead use the following code in events only.

Code: (EDL) [Select]
intStats test;
test.amount = 539;

Programming Help / Re: Using EDL in LateralGM
« on: May 19, 2016, 01:50:31 pm »
Oh I think I know what the problem is thanks to Rusky. I do not think we turned on C++11 for Linux yet. Try using this rewritten struct, c++98 does not support default values like that.

Code: (EDL) [Select]
struct itemStats {
  string itemID;
  int amount;

  itemStats() : itemID(""), amount(1) { }

Programming Help / Re: Using EDL in LateralGM
« on: May 19, 2016, 01:43:02 pm »
Shoot, I'm about out of ideas until Josh gets here to ask. He should be here later tonight.

What is the output of gcc -v in a terminal?

Programming Help / Re: Using EDL in LateralGM
« on: May 19, 2016, 01:06:41 pm »
Try using -> instead of the . operator. Definitely do not try using a different compiler, we want GCC to work, GCC is the defacto. For now anyway.

Programming Help / Re: Using EDL in LateralGM
« on: May 19, 2016, 12:49:55 pm »
Ahhhh, I bet I know why, are you on Linux? (I see your penguin). If so, then you are probably using GCC which is a little different than the MinGW I am using on Windows.

You could try making the cast explicit:
Code: (EDL) [Select]
test.amount = (int)539;
Or just change amount from int to var in the struct.

Programming Help / Re: Using EDL in LateralGM
« on: May 19, 2016, 12:17:37 pm »
That's weird, I used it in the create event, give me a minute and I'll test.

Edit: Just tested my code from above in a script and called it from create, worked fine. So let me test the struct you are using.

Edit 2: Nope, I just tested again, it worked fine for me.

Code: (EDL) [Select]
struct itemStats {
        string itemID = "";
        int amount = 1;

Code: (EDL) [Select]
itemStats *test = new itemStats();

test.amount = 539;


Create event:
Code: (EDL) [Select]

Programming Help / Re: Using EDL in LateralGM
« on: May 19, 2016, 11:40:05 am »
No, you need the star, it's a C++ pointer.

Code: (EDL) [Select]
itemStats *stats = new itemStats();
You probably do need to delete them as well, but that would maybe be better answered by Josh. I would go ahead and delete them anyway.

Programming Help / Re: Using EDL in LateralGM
« on: May 19, 2016, 10:55:48 am »
I just tested myself again, and it does want the semicolon in Definitions. I think we planned/plan to make the semicolon optional but never got around to it. Basically, our GML->C++ compiler is not run over Definitions right yet, so Definitions is just pure C++.

This I got to actually compile:
Code: (C++) [Select]
struct circle {
  var x = 0, y = 0;
  double radius;
  double get_area() { return pi * radius * radius; } // Simple method
  circle(double r = 1) { radius = r; }; // Optimizing this falls on the language plugin
  ~circle() { }

Code: (EDL) [Select]
circle *test = new circle();

test.x = 539;


I'm surprised that new is required otherwise the dot operator does not work. That would be a question to ask Josh, but at least for now using structs like that works.

Issues Help Desk / Re: Crash on Ubuntu-like OS.
« on: May 19, 2016, 09:49:53 am »

Third Party / Re: Game Maker IDE
« on: May 19, 2016, 07:09:09 am »
I seen this a while ago and I really like what you've got so far. I really like the dark theme the best though, the second Windows 95 theme looks a little too dated. May I ask what you are using for the UI?

Your embedding of the code editor in the object frame was something we considered before:

Your choice of JSON is a good one too. If you need any help reading or writing the GMK formats, the LGM source code is publicly available on GitHub:
We also have some documentation on the Wiki:

Nice work so far, keep it up! Having lots of choices is really good for GameMaker users.

Programming Help / Re: Using EDL in LateralGM
« on: May 19, 2016, 03:58:15 am »
You are missing a semicolon and ENIGMA only allows structs in Definitions, please see the Wiki page.

Quote from: ENIGMA Wiki
It is important to realize that structures and classes cannot be defined in EDL as with other code. They must be defined in Definitions, as with other C++ functions. Then they can be instantiated and used in your EDL code. In other words, the above example code could not be placed in, say, an object's Create event. It must go in Definitions.

You can find Definitions under Build->Settings->ENIGMA->General->Definitions Button

Though I did also try this myself and could not get it to work, it seems that the dot operator is broken.
Code: (edl) [Select]
itemStats stats;
stats.amount = 66;
if (stats.amount == 66) {
Code: (edl) [Select]
struct itemStats {
string itemID = "";
int amount = 1;
Quote from: Compile Output
error: invalid cast from type 'itemStats' to type 'int'
     if((enigma::varaccess_amount(int(stats))== 66))

Programming Help / Re: Help with gmk format
« on: May 12, 2016, 09:47:31 pm »
This paper might actually help you by IsmAvatar where she explains how the entire GM8 format works.

She was the one that started LGM many years ago.

Works in Progress / Re: Croky
« on: May 10, 2016, 08:00:01 pm »
When setting ENIGMA up on Linux you have to install some packages, alure is used for audio. You can get it with the following command and then his game should work.
Code: [Select]
sudo apt-get libalure-dev

Yes but the problem is that they might have changed something in some standard header. Josh wrote JDI which parses the code and then feeds it to gcc to compile as C++, so JDI makes GCC a little more like Clang/LLVM. Part of the reason Clang/LLVM is becoming more popular is that it gives you more access to the compiler's internals. Anyway, JDI never got very good template support, because Josh is very busy much of the time. What might have happened to cause this is that somebody maintaining <string> in GCC could have changed something that made JDI unable to parse it, so it ended up ignoring the rest of SHELLmain.cpp and thus why nothing else can be found.

General ENIGMA / Re: What do you want?
« 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.

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 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 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.

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.

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.