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: date_date_string change format
« on: September 01, 2015, 11:51:34 pm »
Please follow Harri's advice, but also he is incorrect about these functions not being documented on the Wiki because they are (I documented every single one).

On a side note Harri, I am not sure if that function is a great idea because what if we do ever support a different language, shouldn't we need to define our own date/time formatting? Don't stress about it, just something I want to call your attention to. At the same time it doesn't matter because we could likely just add the C++ standard date/time formatting to the other programming languages and adopt it as our standard.

Developing ENIGMA / Re: Styleguide
« on: September 01, 2015, 11:47:36 pm »
Actually Harri, Josh already took the liberty of writing this all down, so you know what guys, let's table this discussion.

Here's what we are going to do:
* Link this page from the main wiki page under the contributions section (I already have).
* Try to persuade new contributors to follow these conventions and guide them if they need assistance in configuring their code editor.
* Do not over trivialize a pull request where the formatting is incorrect, just mention it as a side note, pull it and fix the formatting yourself so they know for a future patch submission. This way they will not be discouraged by the rejection of their first commit.
* The coding conventions can be followed loosely, just don't let it get out of hand.
* Continue to correct areas where the formatting is wrong. This includes a lot of places I may have touched because nobody ever really explained the coding conventions or why they are important to me.

Do not go crazy trying to run a formatter over everything like I suggested I was going to do, this problem has been enough of a distraction already from bigger things that need solved. Harri also mentioned that he's already fixed a number of formatting problems. Just please follow this advice as we continue into the future.

Quote from: TheExDeus
I didn't propose we make our own styleguide
I know, the reason I said that was because I didn't want you to get distracted, there's more important things, I just wanted your input.

Quote from: TheExDeus
Maybe I can merge my branch then. Or you checkout it, because it has a lot of changes.
That would be nice, when I have time I am going to run the formatter over LGM because it has gotten way out of hand and I let it get that way. Nobodies been in there to do some cleaning and now that I know how I am going to do that. But also I was going to address the issues you and egofree were having and fix any of the remaining JoshEdit problems cleanly if there are any. So it would be nice if you have whatever changes you've made into ENIGMA master so I can get a working copy set up and fix these other issues by like Sunday.

Quote from: TheExDeus
Maybe egofree's mentioned Atom could do it as it basically renders html.
I would use the feature if any editor ever added it. Egofree's suggestion would probably be the best because look at how Eclipse parses HTML and Javadoc's to provide documentation in the IDE from the source code (this was something we did want to do with LGM). An editor that can do that is the best place to implement what you want.

Quote from: egofree
This is a little bit off-topic, but since you are talking about text editor, there is a totally free and open-source alternative, which is is fine also : atom editor (  It has also tons of plugins available. (To install new ones : File->settings->packages).
Also, DaSpirit had me try Atom and iirc it didn't work very well and it was very laggy I believe because it's written in JavaScript. Don't take my word for it though examine the program for yourself. I really liked Sublime when I just tested it and its package management, but I recommend you support free and open source software over proprietary software such as Sublime.

Developing ENIGMA / Re: Styleguide
« on: September 01, 2015, 09:34:13 am »
Alright, great thanks for the feedback some other things to consider:

I like the solution I mentioned above regarding tabs when tabs are used for normal indent and vertical tabs are used to create the columnar alignment, this makes it work with python.

In that picture it would mean "string s" whitespace would be replaced with a single preceding vertical tab, and all of the other lines would continue to be normal tabs.

Regarding Sublime, I haven't switched to it yet, but there is an elastic tabstops plugin for it:

I also got this FF extension which stops making the tab key change focus so it works nicely with, even though already had tab input support (depends on the website and how keen the developers are, stack overflow is a pain to format code)

Whether you use spaces or not though tab is still used for the indent so you can select multiple lines, code editing in browsers sucks either way you go imo.

Anyway I've personally gone 180 degrees back the other way I think to just tabs because I feel all of the advantages outweigh the benefits when properly configured and because of my above discoveries and that tabs separate model from view.

Anyway, not to be rude Harri, but to be honest, I don't want to do our own styleguide. Whether anybody likes Google's or not I don't really care, it's very popular and I feel just as comfortable working with it. So my vote goes towards us adopting the Google styleguide to make things easier for new contributors and because it is already widely adopted and has a number of extensions for many editors, plus it's what Josh and I already have configured on our computers and you do partially as well.

I'll wait and see what he says, if we get his seal of approval I'm checking out ENIGMA's latest branch and running over the whole code base with a formatter. Maybe though since you don't mind the elastic tabstops idea we could be a revolutionary project in using this coding convention and make it more popular, let's see what Josh has to say and egofree or anybody else feel free to weigh in too.

Edit: Also I love your idea about the code headers, definitely agree with you there. I also get kind of sleepy reading code with doxygen as well, this is why I like a class hierarchy view.

Developing ENIGMA / Re: Styleguide
« on: September 01, 2015, 06:31:00 am »
Well, I'll be a monkey's uncle, you're right.

I wonder if it defaults when you open the editor or if it needs configured in Eclipse first like I had to do with the Google styleguide I needed for my other library. If it is the case of the former then that leads me to point out that I don't particularly like this style and I don't think Josh or anyone but IsmAvatar does, but I believe this has been mentioned before. In practice I would rather just keep it what it is then try to change it. However I do feel ENIGMA and LateralGM would benefit further if they used the same styleguide.

Regarding ENIGMA, since Josh works at Google, and the compiler has always been written with that style, I feel as though that's the one we should go with, at least for ENIGMA. The reason being is that Google has the styleguide well defined and you can even download an XML schema file for it to plug into Eclipse or other editors.

Still looking to see what everyone else thinks as I wouldn't want to make contribution difficult for everyone, I think this would actually make it easier and it's bugging me to the point I may check out the latest ENIGMA and clean it up if we can all decide. I am looking basically to get everyone's approval to enforce it since it seems egofree is comfortable with it, I am comfortable with it, and so is Josh. Using style formatters is not difficult but my only wish is that Josh would have sat me down and made me think about it before letting me contribute instead of just letting me ignore it. Anyway, most projects adhere to a styleguide at least to some degree, but ENIGMA straight up has nothing to the point the code is a complete mess, at the very least we need to define the indentation style.

Developing ENIGMA / Styleguide
« on: August 31, 2015, 09:00:14 pm »
This was always a huge problem when I began contributing to ENIGMA. Having to format and reformat code constantly. Recently I've taken the practice of using standard style guides for my projects and sticking to them.

I feel ENIGMA and LateralGM have suffered tremendously from the lack of an enforced styleguide. This post is not about tabs vs spaces but about using consistent formatting in both projects.

My personal preference would be the use of a mixture of space and tab indentations which I am conflicted on but have expressed in a 64Digits post:

I've been configuring my code editors to allow me to use a consistent coding style for multiple projects. I was simply reviewing some of ENIGMA's source code and stumbled upon the inconsistencies in formatting, caused by myself and a lot of others. You can see in the following screenshot some of the problems, some lines are indented using tabs and others with 2 or 4 spaces.

This makes it considerably difficult for contributors, including each and everyone one of us, whether we prefer tabs or spaces. The reason is simple and that is the lack of consistency. I would be able to work with either depending on what everyone else would prefer to use. But I think the quality of our code base could be seriously improved through the ratification of a standard coding style for the project with input from everyone. Please let me know what you think.

General ENIGMA / Re: Joshedit
« on: August 26, 2015, 05:50:43 pm »
I've got the solution to your temporary problems ego. Also I'm going to follow up with a private message to you to let you know what else I've been working on.

Quote from: TheExDeus
I can be less dirty, but I don't think it needs a billion features. Just make it load and compile egm. Compilation is done trough makefile flags anyway. The only thing CLI actually does is it parses EDL and then adds resources to the compiled exe.
Not so much about it being dirty as it is about making it long lasting, etc. Josh's library has something to do with parsing command line flags, you should ask him about it.

Quote from: TheEXDeus
It doesn't matter that much how it is saved inside egm as we can create the resource tree from a description file of some sort.
No I hate that, Josh doesn't like it either. The directory structure is already there. From a design perspective it should definitely be imposed by the IDE or the model's "view" as in MVC. A lot of IDE's also automatically sort your tree in alphabetical order and don't even give you an option.

Quote from: TheExDeus
And the bugs that threw exceptions are now gone. I only have LGM freezes and crashes without any kind of exception or error message.
I know I agree, I'm just saying that dialog was one of the greatest things that ever happened to LGM, it's one of my favorites actually. Probably my most proud accomplishment and the greatest thing about using Java as we almost 99% of the time know exactly what's causing an error, except the rare JNA cases where it gets mixed with native code.

Quote from: egofree
Well, the 'official' version of LateralGM available now on Github uses 'your' version of Joshedit, with pull requests not accepted by Josh. So it's not only about constants. Try to get LateralGM and Joshedit from Github and you will see it not will compile.
Taken care of, I've uploaded my last fork of LGM. I had this local on my disk and it's the last version I worked and I haven't touched it for a year. I uploaded it to ENIGMA's dropbox account. I tested it in Eclipse just now and it builds fine with JoshEdit, no need to check anything out, just import to your workspace. However I likely patched around shit waiting for Josh to merge my PR's which is something else I want to get to next.

Edit: I have no idea where to put this, but please continue to maintain the list of links for LGM's old revisions. These are good when people need to downgrade Studio projects or import corrupted GMK's etc.

Quote from: egofree
9 Months ago, i told you about the problems with Joshedit and you told me that you were too busy to fix it. That didn't prevent you to start DockFX. Of course, everybody has his own life, and Enigma is a free and open-source project, so nobody has to work on this project, but at least if you had time to do DockFX, you could have take time to fix your problems before leaving it, even if you were not motivated anymore by this project. To leave modifications in a open-source project with compile errors is not professional and don't show respect for other developers. :P If you really didn't have time to finish your work (i doubt it as you started DockFX), at least you could have reverted your changes in LateralGM. You left the problems with Joshedit but also reading of egm files broken ! At the same time to finish on a positive note about you, you made also an outstanding work on this project and an excellent support on this forum, and i thanked you several times about this.
You're probably right, that's why I'm not pointing any fingers. But also at the same time what am I supposed to do when Josh is working and doesn't have time to clean it up and merge it or explain what he's looking for to me? Nothing so I just get the "fuck it anyway" attitude. So I blame all of us. I <3 you guys, but I totally don't want to work on LateralGM.

Quote from: egofree
Also i worked hard last year to add multi-selection, and in the in end, they were never available to anyone, except on github. So i worked for nothing.
I don't think this is true I could have swore in the post where I was updating LGM's status last including the resource searching functionality that I had released a version with this included. I am pretty certain that is the case, if not, fuck, whatever, blame me I guess. :P

Quote from: TheExDeus
We could of done that, but as I lost interest in GM years ago I didn't do it myself. I have moved on from GM8.1 or any kind of GM at least 3 years ago when I started adding totally new stuff to ENIGMA. And I do it constantly now too. You can still remove all the non-GM stuff easily though as nothing there should be very integral to ENIGMA engine.
Quote from: egofree
In the end nobody seems to be interested by LateralGM anymore. That's too bad, because except of the instability problem in the plugin, i feel LateralGM is not bad at all.
These two are related, I agree with both of you. A little less Harri, because it's not so much that the other changes aren't good. It's just that I've seen a lot of people recommending LGM when Studio fails to import projects. GM8.1 and lower was like the best thing we ever had, Studio was crap, and that's why we never supported a lot of it including the ds accessors like mymap[?5] and mylist[%3] which are just downright absurd for any programming language.

I'm just saying, hey guys, there's quite a bit of people that could use LGM for a while into the future. I think it may not be too late to split LateralGM in two with a version for only 8.1 and lower, but I don't recommend you try to follow through on this.

Quote from: TheExDeus
Another thing to look at might be really the CLI way. It might actually be easier to have that up and running the fixing a plugin that uses JNA. But anything is better than just watching LGM burn every time you open it.
I'll prod Josh tonight about it if he's around.

General ENIGMA / Re: Joshedit
« on: August 26, 2015, 07:32:53 am »
Quote from: TheExDeus
I used ENIGMA on Linux recently and it worked. I ran it on Tegra K1 which is actually an ARM, but supports GL3, so I didn't have to change anything. I will try running it more on Linux. I tried testing Linux on Virtual Machine, but then I have GPU problems as the virtual GPU driver doesn't support GL properly.
Yeah I don't agree with Josh on this at all, Linux is like the only place ENIGMA does actually work the way it's intended. Though I can not comment on any recent versions because I haven't tested at all.

Quote from: TheExDeus
1) Make CLI work so LGM wouldn't work trough a plugin thus creating instability.
Josh had no objections to a CLI just that it be built properly which the one I set up probably isn't, it was very quick and dirty. I asked him some time ago about one and he mentioned his GFlags library which I think he has up on GitHub, you'd have to ask him.

Quote from: TheExDeus
2) Finish EGM so it is future proof in a way that additions wouldn't break it.
I like the EGM format I just don't like how sprites are confined to the sprites folder in practice instead of theory. I think the IDE should impose that constraint not the file format. Regardless EGM is a great format and the meta-data uses a format that's a lot less verbose than XML. So I like the format, despite some of its implementation being a little buggy, one of the issues I did address a long time ago was the file handles left open in LGM which made it impossible to move or delete an EGM while LGM was running. Also some of the plugin side YAML parser is missing features that the ENIGMA side EYAML parser has, despite the latter being a subset of the former.

Also I don't want to hear any complaining about LGM's exception dialog, you should be glad I made it so ubiquitous, not that you are I am just saying to all of you in general. It led to me fixing a number of trivial bugs that would have otherwise gone completely unnoticed from versions before I even touched it.

Quote from: TheExDeus
3) Make parser more robust by reducing GM compatibility features.
What are we talking about here, getting rid of globalvar or what? I'd say we should add an option. But after talking with Harri I still feel like the best idea would be to do GM8.1 compatibility to 100% and then fork ENIGMA with anything else we do. I look at it like this, we have the code base, everything we need for 8.1 compatibility is there. Throw out any of the other frivolous shit we've added and any new functions and feature freeze it as an 8.1 and lower augmentation and NOTHING MORE. It's probably too late to do this now, we should have done this a long time ago. If I had the power or the time to do it though that's exactly what I'd do but it's still probably a huge task in and of itself.

Quote from: TheExDeus
Yeah, it is meant an ironic reference to the fact that Josh isn't actually interested in it.
You guys have lost me with this, I don't get it. JoshEdit is likely named after JEdit which was also Swing and provided syntax highlighting, he likely put his name there to distinguish his project.

General ENIGMA / Re: Joshedit
« on: August 26, 2015, 01:07:18 am »
Quote from: egofree
Robert, I don't see how that is Ego's problem. If JoshEdit doesn't work because it was left in unfinished state, then it's a problem there.
Yes that was incorrect, I did not mean it the way you interpreted it, I meant that is where the source of the problem is. This is not his fault even remotely.

Edit: After further review I believe I originally meant that it should be building but I couldn't recall the specific details of whether I had made additional changes. Thus why I said "I was going to say that is your problem" instead of saying "That is your problem", you see the difference?

Anyway I would fix this but right now I'm starting another full-time semester plus these other projects I am working on like DockFX is too much to do. To think about working on LateralGM right now with all the outstanding issues just makes me want to cry. I don't even have the time to be here, I have to finish finding my books online or purchasing them and get started reading.

Quote from: TheExDeus
I'm getting so tired of this half-ass "add a broken feature and forget it" kind of work ethic.
That was where I last left off, I don't recall leaving anything else in such an unusable state beside constants, which also occurred around the same time I started to become unmotivated.

Here's what happened:
* Josh insisted I set up LateralGM to pull JoshEdit directly.
* I did that and moved several of the changes I made into separate pull requests. I didn't know how to use a styleguide then and Josh was busy with work and couldn't take the time to sit down and do it the way he wanted it.
* I gave up on Josh's intent to pull JoshEdit directly upon checking out LateralGM and continued to make additional changes LateralGM side. However they were only a few lines, it really shouldn't be that difficult to get the latest JoshEdit working with the PR's applied.
* I gave up on LateralGM for a while chosing instead to focus on my studies. Made an improved release of JEIE and then decided to focus on nothing but my studies.

Quote from: Josh
It's been two years since I've been able to do a git pull and compile a game on Linux. That's why all our other Linux users either maintained their own forks (as DarkAceZ did, and he was 14 fucking years old at the time), or left (as most others did).
Nope, you just did that game for 64digits in 2014 and iirc you applied a patch somewhere I thought.

Also I've just been kind of mellowing out and hoping ENIGMA's problems will just go away. Personally I wish we would have done GM8.1 compatibility as best as could be done and left it at that and not touched the source any further because I think we were getting really good and stable for a while. And then forked ENIGMA and LateralGM for any Studio functionality, that's what I wish we would have done but at this point I refuse to remove any GMK or GM6 support from LateralGM. I'd rather fork the IDE and stick with a GM: Studio compatible version only but then GMX doesn't even have a version number so what's the point. I don't even have any interest in developing an IDE for that program.

Developing ENIGMA / Internationalization and Localization
« on: August 24, 2015, 02:46:01 am »
Just thinking about the troubles LateralGM had maintaining translations. There's a startup project that basically works like git for translations where authors can create translations for a project.

As an example this is the one for the ControlsFX project:

This could be a good idea for the future as it can attract more professional translation services and there are paid versions too.

Developing ENIGMA / Re: Debuging the .dll
« on: August 21, 2015, 03:35:35 pm »
Yes Harri listen to Rusky, the debugging symbols/huffman codes are not my doing, it's Java's doing.

General ENIGMA / Re: Joshedit
« on: August 21, 2015, 02:32:49 pm »
I was going to say that is your problem because the JoshEdit that LateralGM checks out is a fresh copy from his main repo but I added print support.

There may have been other modifications that I made and did not commit though I really can't remember. He likely does not want to merge my pull requests because of the huge commit history and I wasn't very good at formatting Java files back then with a style guide, but LateralGM doesn't actually use one so he's probably just to busy or doesn't care. I am looking to port JoshEdit to JavaFX.

Works in Progress / Re: Son of Blagger - remake
« on: August 15, 2015, 10:01:18 pm »
It looks like a pretty straight 1 to 1 correspondence with the ENIGMA/GameMaker version. I am really interested in JS now too and I'd like to share my prototypes with you too egofree but now's not the time. Also your game loads pretty fast too, not bad at all!

Developing ENIGMA / Re: Debuging the .dll
« on: August 11, 2015, 07:56:52 pm »
Harri, where are you getting this information? There is no concept of debugging symbols in Java. What you are likely referring to is the symbols that are in the native JDK implementation for your platform. You do not build Java programs with or without debugging symbols. It is all byte code and thus always has debugging symbols (sort of, but really a different concept). The only control you have over jars is whether to include the directory structure (since a jar is really a ZIP), what files to export, and whether to export the source code files along with the byte code (the byte code is in *.class files) generated from these sources. Obviously there's no need to include the source code generally speaking and it just increases the file size as does including the directory structure in the jar. When you build a Java program you convert it to byte code which is like cross-platform assembly kind of and it is fed into the JVM (Java Virtual Machine) that sits on top of the hardware. In .NET this is called the CLR or Common Language Runtime, .NET will actually take the generated byte code the first time you run the managed program and convert it to machine language (assembly) and store that for each subsequent execution. In Java this is somewhat analogous to JIT or Just In Time compile which converts the byte code to assembly "just in time". Anyway this is how Java solves the ABI compatibility problems, though I don't know about .NET because .NET programs make extensive use of versioned dll's.

Not to sound condescending or anything Harri I just want you to understand why that sort of doesn't really make any sense to suggest building LateralGM with debugging symbols, it has the debugging symbols, and that's how it can tell you the Java file and line number where an error occurred and the same is true for C#. That said what you suggest is likely true, someone should probably take the time to sit down and actually organize that part of the plugin if it's being obstinate about a missing compiler. I spent a lot of time putting the exception dialogs into LateralGM properly to avoid race conditions and infinite popup loops like you see in GM: Studio which you can thank me for later.

Off-Topic / Re: Gaming and other stuff anyone's learned?
« on: August 11, 2015, 07:40:53 pm »
@ShadowMan, my favorite always has been and always will be when I first learned you could get to Yoshi in SM64. Always one of those rumors when I was a kid but when I actually found out it was true unlike all the other rumors.... yeah.

General ENIGMA / Re: ENIGMA progress
« on: August 10, 2015, 09:42:14 am »
Quote from: TheExDeus
Good read, but I agree with stroustup. Most of the "issues with C++" are either made up or just stems from not actually using C++. Like I work with a guy who doesn't like C++, because using STL relies you on "others people bugs", while himself writes everything in C with pointers and can hardly make code that doesn't explode. When I finally showed him how even a ranged for loop creates more optimized code than he could even write, he finally started looking more kindly on it.
Yeah, I pretty much agree as well. The only C++ arguments I've really heard are that it's difficult (totally not but a lot to learn though). I also disagree with your coworker because I encourage the use of the STL because it's written by very smart computer scientists who account for things that you may not consider and also does logarithmic growth (averages out the complexity of a resize etc etc). That's one of the benefits of using code by someone else and also that you are guaranteed for it to work specific ways across compilers and platforms. However I do kind of see his point too because I really hate waiting on JavaFX bug reports to get filed (I've filed about 20 on this new framework) and I know none of them will get fixed until JDK 9 which is a whole year from now. I was actually considering joining the OpenJDK project because I already have fixes available for the bugs I've discovered.

Quote from: TheExDeus
I will do it when I get something stable. I'm playing with compiler too now so I can pack the newest one with 64bit's, but I have problems with LGM. Like it crashes when I have a different compiler in PATH. How can that even be? It works if the /bin I point to is the one coming with the installer now, but when I point to /bin from Dragons release it just crashes on startup. I don't even compile anything with it as the .dll already exists. This kind of weird LGM stuff is something I have to deal with, but as I don't code in Java it's hard for me to debug. Maybe you can at least give we LGM and plugin with symbols? Because now it trows like 5 SIGSEV's on startup when debugging with GDB, but it has no backtrace as there aren't any symbols I guess. Lookee here:
edit: It looks like I tries to call something to do with the compiler on startup whether it is needed or not, because a third compiler I tried adding in PATH made LGM trow something about incompatible .dll even though IT WAS NOT even recompiled. This is a strange behavior indeed. The thing about LGM compiling the .dll actually has never worked for me in Windows. I have always needed to do it manually trough shell. So maybe either a setting to disable this? It would make startup faster as well.
That would be ideal so the same compiler is used for both versions. I can't really say much about the random crashes that's actually all in JNA (we do not use JNI, JNI is older) if you are getting SIGSEGV. LateralGM will never throw a SIGSEGV by itself because it uses no other native code. Also in Java there is no concept of debugging symbols, the code is JIT'd to byte code which is fed to a virtual machine. Complete stack traces with the file name and line number exist for exceptions because of this. So in a way a Java application always has debugging symbols (though not really because it's a different concept). So any segmentation fault is either through invoking native code with JNA or a bug in the JVM.

Quote from: TheExDeus
I will probably try creating both 32bit and 64bit installers. The difference only being the .jar's and .dll's. Both will come with 64bit compiler (which itself is 32bit exe) and both 32bit and 64bit "Additional's" so you can compile both from any installation of ENIGMA.
That is ideal because then users can just install that compiler as well to offer a lighter weight ZIP. Not that the size matters since you are offering to upload but the download size may matter to them which is also something to consider.

Quote from: TheExDeus
That is great and hopefully this is how Windows10 will allow you to work. I have already mentioned that Package Manager is the only thing I really miss about Linux.
Yeah I was the one that originally posted it on the forums. As far as I know it is a fork of OneGet but I don't know if it's actually Microsoft developers working on it. As far as I am aware you are also unable to use it with anything but power shell. Also I feel that Windows 10 is better than 8 but 7 still trumps it for a desktop OS despite all of its fancy features that I do actually like. Some of the features I like is the package manager, return of glass/Aero theme and start button, the package manager thingy, and some others. The things I don't like are forced updates which are causing tons of problems for people including endless reboot cycles. I also do not like Apps like the Xbox one which I heard opens automatically when you start playing a game and tries to record it without you even asking it to by default. Just a bunch of annoying settings like that is why I turned around and decided not to upgrade. Not to mention the privacy of the thing, the whole OS is clearly a giant NSA playground. Call me crazy sure, I don't care if the NSA is watching me or stealing passwords or working with Microshaft to make back doors, but OMG they are so annoying about the way they do it lol.