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

General ENIGMA / Re: ENIGMA's Engine Code - License Comparison
« on: October 03, 2014, 10:44:14 pm »
Rezolyze, I really like your topic, it is very informative and this is the best way to approach a license change. I really like this topic, I am thinking about setting it pinned somewhere but I don't know the best place for it. Additionally the information you've provided also helps me because I do not know that much about the various licensing options myself, though I have no problem understanding legal jargon.

I think personally my choice is the BSD license and MPL second. But my primary concern is that I have stated in the past and will reiterate that I do believe users should retain the rights to even sell extensions that would implement things like video functions, other graphics libraries, etc, etc. I just do not want fixes for anything in /SHELL being commercialized, I think this is primarily our biggest concern.

Issues Help Desk / Re: Bad C++ generation
« on: October 03, 2014, 10:39:00 pm »
If I could see the game file, I could help figure out where the parsing is screwing up, our compiler is not quite yet completed so it can finicky about some things, especially the following...

Code: (GML) [Select]
if true
  // do something
else {
  // do something else

Which believe it or not I see quite often in GM games and it always fails to parse. If you don't feel comfortable uploading the file here you may also send it in a PM to me, I can't really tell though without looking at some code snippets.

Developing ENIGMA / Re: Unstable master?
« on: October 03, 2014, 10:31:24 pm »
Yeah I was already aware of it and had plans to fix it, but I was thinking about adding surface_set_viewport function Harri. But then again I still don't know if we want to add application_surface or not.

General ENIGMA / Re: General Enigma Questions
« on: October 03, 2014, 08:03:46 am »
Quote from: Rujik
The icons under the file, build, edit, tasks. The icons that say "new, open... save, save as, run" when you hover the mouse over them. They can be undocked but can they be hidden? I always clicked on them by mistake in GM.
I am thinking about replacing LGM's output window with a new interface that allows symbolic output, basically you can click on warning messages and the editor for the resource where it occurred will automatically open. I am also planning to move the output log here and display the last time you saved and loaded, without ENIGMA it will check for generic issues with a GM project file such as sprites of 0 size. But long story short, I plan on putting some buttons to toggle that area's visibility and stuff under the "Window" menu like most IDE's. I guess we could have a button to toggle visibility of the toolbar like Eclipse as well.

Quote from: Rujik
If everything in Enigma is open source, does that mean the output executables are easily decompiled?
No, they are built executables, as in what you get from Visual Studio or Code::Blocks. JDI is our parser which converts your GML/C++ or what we call EDL into pure C++ (or JavaScript in the future) and then compiles it with GCC and tacks the resources on at the end.

Anyway I hope I was helpful!  (Y)

Programming Help / Re: [Solved] Adding a new function
« on: October 03, 2014, 07:38:20 am »
Sorlok is right, it's a garbage pointer and you are checking if its null, its obviously not null because it's a garbage pointer, and then you try to access it inside the FAILED() call which leads to a segfault. Run the game in debug mode to build with debug symbols, then open git-bash and type "gdb path/to/temp/file/from/lgmsconsole" and hit enter, then when it loads the temp file LGM outputted with debug symbols just type "run" and hit enter and it should launch and then crash giving you a stack trace. Then you type "bt" for the backtrace and it will tell you the exact file and line number it crashed in, though idk if it will get the symbols from the DLL properly or not but it should, if not build a debug version of the dll.

Anyway to prove my point, remove the FAILED() macro and it should still crash. It has nothing to do with DirectX, it is still an issue in the variant.

Developing ENIGMA / Re: LateralGM
« on: October 03, 2014, 06:25:28 am »
Glad you like the features Harri! I am working hard to improve LGM.

PS: Thanks for editing your big ass error log out of your post.

General ENIGMA / Re: Lateral GM question
« on: October 03, 2014, 06:22:10 am »
Yes I agree as well Harri, but it wouldn't offer much over just a native IDE, but of course you should only load files as they are opened in editors instead of in bulk, like every other IDE. I was also planning on just making you have to save before running the game to get changes, because of course you could still revert the frames if you like since this behavior has been fixed in the new LGM release, this also is like many other IDE's like event Studio which makes you save before changes are reflected

General ENIGMA / Re: Lateral GM question
« on: October 03, 2014, 03:10:19 am »
Quote from: Darkstar2
In any case GMS now does it that way, leaves minimal MEMORY footprint, keeps your IDE fast and more stable........Try to work with massive projects and see how slow the IDE gets, this goes the same for GMS......though they made some very good improvements there in terms of dynamic asset managements.....was about damn time
Their improvements are limited to about the same as Java's, they use Delphi.NET, while being a less popular language is likely to not be as powerful as Java which is more regularly maintained for multiple platforms. Any performance gain they make with their IDE written in a managed language will not be much greater than any gain LGM will have by doing the same. Also they do not do exactly as I proposed, they also copy the project and use a disk asset cache. For passing small files LGM may actually be faster going through memory with JNA than Studio in that particular case, evidence for this is that mainly large binary images and what not are what truly slows LGM down. Additionally we don't have a half-assed programming language, projects with ENIMGA have to be parsed by all of JDI and GCC, which albeit is most likely lighter than Clang/LLVM

At any rate you keep missing the point that having a purely native IDE itself, passing through memory is still quicker, the disk is only useful for IDE's written in managed languages.

Quote from: Darkstar2
I am aware that RAM speed exceeds that of disk by far but in this case the tradeoff has its pros.
Examine the following screenshot, latest Studio (I literally just installed updates), open a blank project, open LGM with Project Chaos, and LGM seems to be only a few MB's ahead in memory usage (the Project Chaos file is 12.5MB's; mainly the result of OGG audio files)

Quote from: Darkstar2
I'm sorry but LGM is very annoying to work with and highly unstable.  I often have to close and re-open due to segfaults, VM memory errors, etc......My system is powerful, up to date, heaps of RAM, and yes I tweaked the settings file to the maximum xmx allowed for java.......same deal.
Working with massive projects with LGM is a turn off, sadly........GMS's IDE improvements set it miles apart - never thought I'd say this.
You should start reporting these crashes more frequently so that we can determine the cause, I've only heard you mention of them but I've not once received an error report with a log and stack trace even though one is provided in a dialog to you for every exception.

Finished Games / Re: Window Styler, Web Browser, and Embed Program
« on: October 02, 2014, 10:02:03 pm »
You go TKG you're becoming a software develop boss my friend  :D :D :D :D :D :D :D

Off-Topic / Re: Windows 10
« on: October 02, 2014, 09:23:42 pm »
At this point in time, I am honestly afraid to download, I think I'll wait I have too much important stuff going on.

Off-Topic / Re: What we could have if Enigma would be closed source :(
« on: October 02, 2014, 07:49:24 pm »
Quote from: lonewolff
Only thing I don't agree with is that Open Source software automatically gets the badge of being more stable than Closed Source. They both have their place.
Right, exactly and closed source and proprietary software should also not be given that stigma. That is irrational logic, it comes down to a case by case basis, and both types of applications should be given the benefit of the doubt.

Quote from: lonewolff
If you remember rightly, I never said that ENIGMA should be closed source (in seriousness).
I know I was simply clarifying, but it seems everybody is mostly interested in the MPL license for the engine, JDI and LGM are not going to change because there's no reason for them too. I'll concede as well that I think users should have the right to sell extensions to ENIGMA's system, I am only afraid of closed source fixes for the main engine, that I do not want, but if someone like TKG made a cool extension that changes the window style, I do think they should have the right to sell it.

Also just can't help myself.

Off-Topic / Re: What we could have if Enigma would be closed source :(
« on: October 02, 2014, 07:35:35 pm »
Additionally I would like to add that LGM would successfully accomplish nothing if it were closed source. With LGM you retain all rights to the project files generated by it, this is why LGM will never change licensing. I will only ever be open to changes in ENIGMA's engine licensing, but as I said we should just cross that bridge when we come to it and someone actually has something to commercialize.

Developing ENIGMA / LateralGM
« on: October 02, 2014, 07:00:40 pm »

This is a preliminary minor release of a major build for LGM with a number of bug fixes.

You can download the new jars from the Extra Packages page.  I have also updated the hashes so should also fetch the new jars if you prefer to use the script. I have decided to not include this in a new Portable ZIP until everyone has had the chance to test the changes.
NOTE: You will need to update both the new plugin and LateralGM jars!!!

Change Log
Regressions that were introduced in and then fixed in this version are not listed here.

1) Asking to save changes should now be conditional and only show if you have actually made changes. You can also make changes, run your game, see the changes reflected without having closed the frame, close the game and still be able to revert the frame.
2) Game Information frame now properly recognizes changes, it will not complain unless you have actually changed a property or edited the document.
3) Constants frame has been partially fixed, it had several bugs in its revert methods and what not, it should now properly detect changes as well.
4) Enigma Settings have been more integrated with Game Settings, you should no longer see the node in the tree and the Game Settings frame should now also now properly recognize changes to Enigma Settings.
5) Non-instantiable resources should now have the proper references after reloading and creating new projects.
6) Tree filter has been redesigned to be a little less bloated looking.
7) The X button on resource frames no longer commits twice.
8) Fixed exception when clicking on tile tree under the "Edit" tab if no tiles exist. Also fixed a similar exception for instances.
9) Keyboard shortcuts have been moved to a properties file where they can be customized more easily, though we need to still work out external files and user modification.
10) Search feature implemented, it will search all arguments of every action of a script, shader, object, timeline, room, or instance and the nodes open the resource frame and select the appropriate event, moment, or action and open the correct code frame. Clicking on result nodes will also focus the correct line in the corresponding code editor or focus the correct argument entry field on an action frame. Directory structure is maintained and there is also a context menu that can be used to select all nodes and copy them to the clipboard to share search results.
11) Fix for bold nodes, there was an unreported issue where new children of bold nodes would become bold once you started renaming them, we now format the node with HTML instead to give it the bold effect.
12) Fixes Look and Feel bug for "Windows Classic" it's a known UI bug, just had to set the property in our look and feel code.
13) Fixed Look and Feel bug for the regular native "Windows" look and feel, this will not be applied unless you explicitly state this LNF over the "Native" one, it stops the buttons from being cut off.
14) Removes one touch expandable splitters, they have been replaced with a more common software implementation, double clicking will toggle their expanded or collapsed state, no need to spend hours in frustration hitting tiny little buttons.
15) Maximized state of the window will no longer be lost when changing look and feels from preferences, I was repacking the frame which I shouldn't have been doing.
16) Fix syntax check button from appearing multiple times on a code frame, action frame, or script frame. The issue was the subframeAppeared being fired when the frame is already visible, I simply added a parameter that tells us whether the frame was previously visible in determining whether to add the syntax check buttons.
17) Adds greater than or equal to and less than or equal to as options to action_if_variable as well as other actions that Studio forgot to; you will need to fetch changes from enigma-dev until the Portable ZIP is updated.
18) Old GM files will now scan their rooms and automatically flag the setting "Used as tileset" for backgrounds that are used as tiles in any room (committed by sorlok). This effectively prevents them from being unusable.
19) Game Information text alignment is now properly saved and works at runtime as well.
20) Fixed printing dialogs on both Game Info and Resource Info frames, they work exactly as expected and I've tested them. No print preview exists yet, but I've requested it, though Studio also does not have it and you can also preview by printing to OneNote.
21) Added external look and feel support, please see accompanying tutorial post.
22) Improved the main zoom tool for the Sprite and Background editor, the calculation was wrong. It will now properly center around points.
23) Fixed loading exception dialog, it was not properly displaying the stack trace. It was also showing multiple dialogs, and there was an issue in the GMX reader. Additionally I made the populateTree method check to see if a node of the registered types already exist, what this means is if you have an error trying to load your project you won't end up with a duplicated tree.
24) Fixed exception in the Room Editor when icon is missing.
25) Swing Icon Pack is no longer included in the jar, nobody wanted to maintain it and LGM only needs 2 default icon packs, 1 nice looking one and a contrasting version of it for dark themes.
26) Fixed an issue with custom icon packs, the custom path should not have caused the icon pack option to always be overriden, I had the implementation backwards and intended for the internal jar location to be used when the custom user path did not actually exist.
27) Fixed exception reported by Josh caused when centering instances in the room editor that do not have sprites.
28) Fixed a painting exception in the ImageToolTipUI occurring when hovering over resource menus.
29) Fixed an issue where certain look and feels would cause the main frame to overlap the toolbar on Windows on some platforms, and yes this also includes the default Swing look and feel.
30) You can also use a custom background image for LGM's window area now, create a file called "lgmbackground.png" in the "lookandfeels" folder next to lateralgm.jar and the image should be applied during the splash screen when you load. The following is a link to LGM's dark background.
31) Fixed long existing PropertyLinkFactory disposal issues that were propagating into race conditions in multiple editors. ResourceFrames now dispose of them automatically, custom PLF's will need to be disposed by overriding the frame dispose method.
32) Fixed a mistake made in Game Information that caused its little settings window to create its controls twice.
33) Simple JoshEdit print support added, word wrapping is not yet supported just like Studio. Printing interface is designed to be Java/AWT/Swing compliant and implements the standard feature set.
34) Exception reporting has been improved for file loading errors, GmFormatException and ProjectFormatException were essentially throwing away half of the stack trace.
35) Fixed horizontal and vertical snap properties in the GMX writer where they were being written backwards.
36) Fixed transitivity in some toolbars.
37) Window decorations can now be disabled, this means the look and feel will not be able to decorate the window border if you don't want it to, this required fixing the toolbar transitivity first.
38) Hardware acceleration is no longer forced off, there are now preferences to force OpenGL or Direct3D on or off or let the Java system decide and there is a similar preference for antialiasing of control fonts. The JVM will detect if your hardware supports hardware accelerated rendering so I recommend keeping the settings left at "default" but for those of us that do have the capable graphics hardware this will seriously improve the speed of rendering for LGM. Testing sprite animation playback was a lot smoother and higher frequency once I implemented the preference to stop forcing it off for everyone, it also reduced CPU and RAM usage significantly.
39) Fixed a component transparency issue caused when using *.lib action libraries from GM, they were supposed to be taking the transparency color from the bottom left corner.
40) Fixed the EventPanel layout, it was setting it before actually laying out the components causing it to look incorrect under certain look and feels, specifically the new dark one.
41) Fixed an old mistake I made in the Game Settings frame mixing up the DESCRIPTION and INFORMATION properties.
42) Switching look and feels no longer breaks layouts, I have a special wrapper class for this.
43) Stopped a look and feel change from readding the icons to the Preferences tree, just had to make a custom class as a wrapper and basically an empty shell to fix it.
44) The MDI area scrollbars are now only shown when needed, so when you maximize a frame they will not be visible, just like normal MDI managers and the one in GM8.1, giving just a little more space on screen.
45) Icon reading exception fixed by sorlok for some ico files that have empty/fake masks.
46) Implemented undo and redo to the action list editors you can undo multiple actions such as move, cut, copy, paste, delete, and clear. The only thing that does not yet get undone is changes to the actions values, not even recognized yet as an undo operation.
47) Fixed exceptions for some file open dialogs when you enter a filename for a file that does not exist. This needs further cleaned up.
48) Added APNG loading to the sprite and background editor, the file extension will need to be ".apng" for LGM to load all the subimages from it, or it will think it's a regular PNG. It can be used to mix GIF's and APNG's in the sprite editor. This required moving the APNG reader/writer from the plugin to LGM.
49) Added line numbers to the action list editor that uses the default UI colors for now.
50) Added a save button to the sprite and background frames, the sprite frame will save the selected subimages or if none are selected it will save all subimages, in order for it to be animated you will obviously have to save to an animated format such as APNG, GIF writing currently does not support multiple subframes. A dialog will also be displayed warning you if haven't yet created an image for the sprite or background.
51) Fixed a typo in the GMX reader that was causing room persistence to not be read properly.
52) Load dialogs will now verify that the file exists and if it does not it will warn you to verify the file name. You will see this on all file dialogs, including the one for loading projects, images, sprites, game information, etc.
53) Added confirm overwrite dialog to JoshEdit and LGM file choosers when saving files to disk.
54) Temporarily patched an issue that caused the language preference to not explicitly override the operating system locale, though I am currently waiting for IsmAvatar to see if she would like it fixed differently because I have another solution that is just as easy. This issue was reported by egofree.
55) You can now preview icon files when loading them. We broke Christian Trebel's ICOReader when we originally ported it by automatically closing the stream, this is incompatible when plugging it into ImageIO, you need to close the stream manually. So that is fixed, but also I double checked to make sure streams were not left open from game info and elsewhere and properly closed the streams where they needed to be.
56) ICO files can now be loaded by the background and sprite editors, the sprite editor will load all layers.
57) Prefix options have been full implemented, you do not need to restart they take immediate effect, adding new resource types also doesn't require updating the preferences frame anymore, it is generated dynamically.
58) Game icon and version information have been fully moved to the Platforms/Windows tab in Game Settings, Project Information is now fully implemented as well so information and description are properly distinguished now. Other platform settings are soon to follow.
59) Made the layout for physics options on the object frame more compact and correct.
60) Fixed a race condition between messages, preferences, and resource kinds which was necessary to implement prefix preferences. So the tree groups can be translated again.
61) Increased the default room size a bit, default size is way too small.
62) Added missing separators to some resource frames
63) Symbols are translated again for the object frame, so no double semicolons will appear under the French translation.
64) Added translations for messages that were not translated before.
65) Switched the executable file chooser to use the LGM CustomFileChooser, so it will now ask you whether to overwrite files when you save an executable and things like that.
66) Stopped the sprite frame subimage selection from going out of bounds when clicking a button, the last frame will still be properly previewed.
67) Fixed issues where the checkered patterns for image previews were not resizing without closing and reopening the resource frame, this was caused by me caching the image without checking if the size changed.
68) Image effects frame implemented and 12 basic effects including Colorize, Intensity, Outline, Emboss, Black and White, Invert Color, Remove Color, Remove Transparency, Sharpen, Blur, Opacity, and Edge detection. The little green spray paint can icon on the sprite and background frame will open the image effects frame. For sprites you can apply it to all selected subimages, otherwise just select 1 subimage, if no subimages are selected it will be applied to every subimage.
69) A fix was included by egofree for the GMX writer to give all tiles unique names using the id, which works with Studio though is less hash-like. A similar fix was previously included for instances by myself.
70) Fixed exception in instance list of the room editor when selected instance has a non-existant object reference. For example you create an instance of an object and then delete the object resource, the instance becomes of unlinked.
71) Moved transparency functions, such as for checkered patterns, to Utility class.
72) Moved the current tile layer above the tabs and other changes include removing the now useless "Batch" tab
73) Fixed depth issue to make sure the selected instance/tile is always visible
74) Fixed a tile moving bug
75) Added rectangular selections tools
76) Added cut, copy, paste functionality to the room editor

Off-Topic / Re: What we could have if Enigma would be closed source :(
« on: October 02, 2014, 06:37:56 pm »
I do agree with TKG on this front, but not entirely.

Quote from: TKG
Two people in all of planet earth?
Currently there are about 5 people browsing, and 10 people have posted today.
obert B Colton, time-killer-games, lonewolff, sorlok_reaves, Darkstar2

Also our Twitter has reached 421 followers, and its just from other people retweeting us and following.

Quote from: TKG
Something gets fixed then ten things break.
There's a reason for this, and it's that all of these problems are inter-connected, fixing a broken function is easy you fix it and that's it. I've fixed working_directory and it's worked ever since the same as GM8.1 for several months now. A good example of what you speak about is the platform code, because Win32 was tightly integrated with the child window removing it had to break everything before getting to the more correct behavior we have now where scaling also works on other platforms and in the process XLIB also seriously improved, you can now hide the title bar, make the window stay on top, and check the keyboard directly.

Programming Help / Re: [Solved] Adding a new function
« on: October 02, 2014, 06:23:57 pm »
No, in the source (graphics_bridge.cpp)?