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

391
Issues Help Desk / Re: Error opening the ENIGMA - Illegal character
« on: September 06, 2015, 09:46:27 pm »
Hello Jhasper!

In order to better assist we will need some additional information from you.

* Is this the first time you've used ENIGMA or LateralGM before?
* Do you have administrative privileges on your account?
* Could you attempt to run LateralGM/ENIGMA with administrative privileges and see if the error is corrected?
* How did you attempt to open ENIGMA through enigma.exe or through double clicking the LateralGM jar file? I see you also attempted to start LateralGM from the command line, this will only work when you use LateralGM separately from ENIGMA. If you want to use LateralGM without compiling games feel free to move the jar file somewhere else on your computer.

392
Developing ENIGMA / Re: Debuging the .dll
« on: September 05, 2015, 08:57:56 am »
Yes I know what you mean but at the same time it increases the chances that they will report such issues, even more of them than we may be aware. It's like shining a flash light in the dark.

393
Developing ENIGMA / Re: Migrate Releases
« on: September 05, 2015, 08:54:49 am »
I'm not so sure about that then Harri, I don't really think I like that idea either. I support the idea of distributing the change log with the release inside the ZIP, but I see no reason to add it to revision control, we would literally be revising our own revision logs (is this not what git should be doing for us?). I fully support people's ability to use ENIGMA or any software offline, even if you have internet there's many parts of the world that don't including a lot of public parks and such where it's nice to stick software on a thumb drive and away you go. I don't even know if you can get internet/wifi on a plane or not yet cuz 9/11. Anyway I did think that maybe we could set up that git change log generator project and make it auto commit with one of the many bots we have to a repository that contains change logs for all ENIGMA projects. But I didn't like that idea because of the same reason I don't like you suggesting it.

I always did the change log as a more human readable form of the git revision log for those who may not know how to use git. Because of my historic inability to make nice commits I've also used both github's revision history and the change logs I've made to find stuff.

394
Developing ENIGMA / Re: Migrate Releases
« on: September 04, 2015, 10:44:42 pm »
Josh can you share the old ENIGMA copies with us if you have them on hand for me to archive on GitHub? I would also like to see the last ENIGMA zip I had on the shared dropbox up there too, so maybe we should call that v1 since it serves as an intermediate milestone to the latest version from r3. I like to keep archives of old versions because it helps with testing.

Also the new tags on LateralGM make it really easy to see what the master looked like for a particular release, which is one really good thing about this. I do not think I care much for milestones but still think we should use them, they are just watered down labels but they still help abstract the project progress.

Second, I too favor rolling releases because if we did automate the change log generation we could just make it against the most recent commit/PR in master. I don't like all of these granular changes and I've been working on making more inclusive PR's/commits. The real hard problem with this is that I try to fix one issue at a time and push it to GitHub to see if it fixes a problem. I don't like sending a large amount of commits with a fix for something only to later find out it didn't actually fix it. This is difficult because people do not like to test or help test, I am not referring to us, I am referring to users that report issues.

FYI: Maybe we don't even need change logs Harri with the GitHub compare feature.
https://github.com/blog/612-introducing-github-compare-view
https://help.github.com/articles/comparing-commits-across-time/
https://help.github.com/articles/comparing-commits-across-time/#comparing-tags

395
Developing ENIGMA / Re: Debuging the .dll
« on: September 04, 2015, 10:31:20 pm »
Are you guys ignoring my post about Breakpad? It's a really good idea, lets you debug without having debug symbols in the code using Google technology.

396
Developing ENIGMA / Re: Migrate Releases
« on: September 04, 2015, 10:26:34 pm »
Quote from: TheExDeus
Maybe we need to add a changelog in the repo as well, so that when a person downloads the release from github he can still see what has changed (even if the forum dies for example).
The problem with this is that if the release log is verbose/long then it is really hard to browse for other releases. The simple thing is to say to just make the release log shorter but that's not always feasible. The other solution is to make more frequent releases so the logs stay smaller. Personally I think GitHub should improve the releases feature by making the browse part short descriptions then clicking on the release gives a change log and a longer description, maybe I'll file an enhancement request/suggestion. Though I doubt they'll care what I think since they don't even listen to Linux Torvalds who created git.

Quote from: TheExDeus
And how do we start versioning ENIGMA? Just start at 1 or something? I personally think ENIGMA is working enough to actually be considered version 1 right now (except the LGM crashes).
I believe ENIGMA already had a version process and we're technically still working on r4... This would be a question for Josh. Josh has stated in IRC that he has old copies of r3 that should be able to run which I'd like to see archived on GitHub releases page with the newer portables just for historical purposes.

Quote from: TheExDeus
I kind of liked smaller versions previously (like 1.21, 1.22, 1.3 etc.) but it seems the current trend for a few years now is just increment the version by 1. So we get firefox 40.0.3 now and so on. So the after dot revisions are bugfixes and almost every feature is a major revision.
I too like smaller revision numbers in case you didn't notice we never got to LGM 2.0 yet. I think Josh also tried to persuade me into smaller version numbers before.

Quote from: TheExDeus
We should also create milestones, so we know when to release instead of on every commit.
I forgot about the milestones API.
https://guides.github.com/features/issues/
But there's also the difference in annotated vs. lightweight git tags. Tags are built into git, not a GitHub feature, releases is a GitHub feature. Releases have a 1 to 1 correspondence with tags and tags have a many to 1 relationship with commits. A lightweight tag just references a commit "git tag -l v1.2 a1a1a1a" where a1a1a1a is the first 7 alphanumeric characters of the commit hash/number. Annotated tags can reference other objects or you can create them when committing using -m to enter a message or w/e and say something like "This commit marks the completion of v1.2"

The fact that tags and releases are 1 to 1 really screwed with my head at first, this means you have to make a new tag for every new release, you can't reuse tags. I really found this to be quite odd, so the direct links will always be a little redundant.
https://github.com/IsmAvatar/LateralGM/releases/download/v1.8.6.844/lateralgm186844.jar
See what I mean? We could just rename the jars to just plain lateralgm.jar but I don't like that because then you can't download them all at once easily, you have to download then rename download then rename etc. Open to changing this though because it would make it easier to include in the packages file in the one ENIGMA repo that it uses to update on Linux using that script, which has to be changed to include the updated hash of the jar anyway to see if it's newer. On the other hand I should mention that nobody else on GitHub uses the same file name for every release like I just proposed.

Quote from: TheExDeus
Also, can github create a release for the current master automatically? Like instead of a specific version release the top one is always the current up-to-date one (like "beta" releases). I guess all of that must be done manually?
Yes, that's how I did the last 1.8.6.844 release you just create the tag on GitHub. I used the command line to create the tags for the really old commits because GitHub only shows a list of recent commits to create a tag. Just draft a new release, open the "Recent Commits" under @target and select the top one.

Now the other thing to mention is that I lied about GitHub creating change logs. This is really stupid because given both commit hashes/numbers you can do a diff from the command line with tags, GitHub really sucks at these things (why Torvalds does not merge pull requests from GitHub). However other people have invented some automation tools that generates change logs which could be integrated. But also as I said above I don't like putting the long change logs on the releases page because of how terrible it makes it to browse for an old release, this is why I plan to stick to small change logs for each release with a brief description and the forum post containing the longer change log for the foreseeable future, unless you can think of some better way to do it. I do agree with you that I'd rather have it on GitHub though where it's more permanent.
https://github.com/skywinder/github-changelog-generator

397
Developing ENIGMA / Re: Migrate Releases
« on: September 04, 2015, 03:13:27 pm »
Alright Josh is good with it. As a first experiment I've moved all of the LGM releases over there, it was a total pain digging up the old commit logs but I did the best I could. Best thing to do is just to make sure we do it every future release.

https://github.com/IsmAvatar/LateralGM/releases

I linked the forum posts with the change logs instead of putting them into the release description because most of them are super long which makes browsing that releases page a bore. I will continue to do this for future releases but may add some small additional details. From now on each new release of LateralGM and major build will be a new release on GitHub and a new forum post, so it won't be one long forum post as was done in the past.

I'll do the plugin jars next but I don't think I'll dig up the specific commits for them, I'll probably just base them all on the most recent commit then do it correctly for future releases. I believe we should continue to version the plugin against the LateralGM version but I'm not sure yet.

If we are going to do this for the ENIGMA portable zip then the ENIGMA tracker also needs to work out a proper version number and we need to start incrementing it to mark the releases.

So basically we can use the tags for marking major milestones or w/e and the releases can be generated for each major milestone/revision. Does everyone like this?

398
Developing ENIGMA / Re: Debuging the .dll
« on: September 04, 2015, 09:10:50 am »
FYI my post over here was somewhat related to this:
http://enigma-dev.org/forums/index.php?topic=2584

399
Programming Help / Re: date_date_string change format
« on: September 03, 2015, 08:19:08 am »
Ok that's weird, figured I would have documented that one, it's in fact, the only one I did not. I honestly have no idea anymore lol.

400
Programming Help / Re: date_date_string change format
« on: September 02, 2015, 03:25:36 pm »
Yeah but still I documented it to.

And I'm not suggesting anything, just that we create our own now or stick with the C++ one. Like if we ever add JS as a scripting language like Unity that we wrap the method to format it the same way.

401
Off-Topic / Re: The curse of being a very wealthy indie developer
« on: September 02, 2015, 10:47:36 am »
I found the story interesting though nothing new. I've thought about this myself before, I think it's something we all think about at one point another if we were rich.

It some ways the thought depresses me but I would probably just continue to find more projects to work on. I've always had a money doesn't matter philosophy and that's the best way to look at life. It's not the answer to all your problems, just live your life the way you want and be happy with what you've done.

402
Proposals / Google Breakpad
« on: September 02, 2015, 08:56:49 am »
This is a cool library used in Firefox, Chrome, and Google Earth. It allows you to build an executable with no debugging symbols, the library will generate crash minidumps. The debugging symbols are saved during compilation of the executable though. Later when a crash occurs a separate program can take the minidump and the debug symbols and put them back together again to create a human readable stacktrace. So basically you can build an executable without debug information and still debug it.
https://code.google.com/p/google-breakpad/wiki/GettingStartedWithBreakpad

I think this would be something really useful to take advantage of in ENIGMA. It would allow our end users to make extremely efficient games but still debug them just as in every GM 8.1 or earlier GameMaker version. It would also give us extremely useful information when users report an ENIGMA crash to us on GitHub as we can cache and store the debug symbols for every release we've made or have them include it with the crash report.

Using it with end user games would be a little trickier though because it means when you release your game you have to hold on to a copy of your debug symbols and properly version your game. However I think I have already thought of a way around this. Since we already make use of zlib to archive the resources, we could also archive the debug symbols file right into the executable. While this would still increase the file size of executables to include the debug symbols the game would not run like shit because the symbols would be separated from the program code.

This would mean that anywhere a game is used it would run just as you would expect but you could also take any crash/minidump log it spits out and feed the executable and the dump file to a debugger to get a human readable stacktrace. We could also achieve GM8.1 and LGM style exception dialogs by just embedding it into every exe or make it an option if the users really care to squeeze out the few extra bytes in file size. Either way I think this could seriously improve the situation regarding debugging in both ENIGMA and its engine and end user games. I'd like to know what everyone thinks.

403
Developing ENIGMA / Migrate Releases
« on: September 02, 2015, 01:49:20 am »
I want to propose this since I've been making more use of it in recent projects. When we archived the old LGM versions we stuck them in our dropboxes which is, despite me having created a shared ENIGMA dropbox, still subject to link rot. I never did attempt to migrate our old and new releases to GitHub because I never understood the feature until now.

Basically if we move all of the ENIGMA ZIP's, old LGM jars, and all those old revisions and packages over to the GitHub release pages we get static links.
For example:
https://github.com/IsmAvatar/LateralGM/releases
https://github.com/IsmAvatar/LateralGM/releases/download/1.5.7.1/lateralgm1571.jar

Instead of what we have now on the LateralGM: Revisions Wiki page:
https://www.dropbox.com/s/jrigtjk0yld8zsy/lateralgm1571.jar

Notice how the GitHub version is not subject to link rot? This is by GitHub's own design for the very reason we are intending to use it. Using the GitHub release pages also allows me to archive the change logs in the description. This is important because our forum is also subject to link rot as topics are moved and the forum board evolves, people will still be able to find the change log well into the future (considering GitHub is probably more likely to be around in 10 to 20 years than we are). This also means we don't have to make so much use of third parties like dropbox since setting up proper file transfer to ENIGMA's server would be a lot of work and cumbersome to say the least (which is why we are still struggling to finish the EDC). This also means that every contributor can establish a release if they have appropriate access to the repository.

There are some things that need addressed. Primarily the GitHub release mechanism automatically versions the repository and detects change logs. So if you don't enter a description it automatically detects the changes made to the repository since the last release was made, which we can make more effective use of in the future. This will make our initial migration of the old releases cumbersome though as I'll have to paste all of the change logs there and you'll just have to ignore the one GitHub shows in cases where a change log can't be found (I have them for all of my releases just not LGM 1571), which is not that big of a deal. This also means however that ENIGMA needs to establish version numbering and so do all of the other projects including JEIE, etc etc.

Once this is done however I would update all the appropriate documentation on the Wiki and related links. I would not delete the old revisions archived on our shared dropbox but the Wiki and everything would be updated to reflect the new release process. I also would not delete the old revisions page right away until some point in the future when the links become broken or our shared dropbox has been fragmented.
http://enigma-dev.org/docs/Wiki/LateralGM:_Revisions

I would continue to maintain the Extra Packages page for quick links to all of the latest releases. The page would just be updated with the rest of the Wiki.
http://enigma-dev.org/docs/Wiki/Install:Extra_Packages

I've experimented with archiving two old releases of LateralGM on its repository.
https://github.com/IsmAvatar/LateralGM/releases

I also believe this would reduce the confusion of random people finding LateralGM through Google and not knowing where to download it. The GitHub release mechanism is pretty common and you know people have come to get used to it, myself included. It also makes formatting the change logs nicer by allowing us to use markdown and link to specific tickets instead of by URL like I do now.

I'd like to know what you all think about this, I think this is the way to go and I am looking to do all the footwork to make the change. I'd just like to take some feedback and suggestions on it first.

Also I will need additional privileges to a few repositories such as JEIE to do the releases which I asked IsmAvatar about before but never got a response, hopefully I can get a hold of her.

Edit: Actually it seems like it is possible when drafting the releases to base them on a certain commit, but I don't know how far back we'd have to dig. I could probably dig for all of the releases I made but maybe not the ones for 1.6 and 1.5 as they may not have been migrated from Sourceforge.

404
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).
http://enigma-dev.org/docs/Wiki/Date_and_Time_Functions

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.

405
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.
http://enigma-dev.org/docs/Wiki/Coding_conventions

Here's what we are going to do:
* Link this page from the main wiki page under the contributions section (I already have).
http://enigma-dev.org/docs/Wiki/Main_Page
* 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 (https://atom.io/).  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.