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.

Topics - Goombert

Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 »
General ENIGMA / LateralGM 1.8.5
« on: April 15, 2014, 11:25:34 PM »

NOTICE! You are advised to upgrade to the latest Java version, it will have the best performance and fix many security holes in many old Java versions. We would also like to start utilizing JavaFX features.

To try it out, simply update the following files from the extra packages page.
Then update from ENIGMA's master branch. You may also simply download the new Portable ZIP for Windows.

If you only want to test LateralGM out without the ability to compile games then you can just download the lateralgm.jar and open it and play with it. I highly advise you back up your projects in case anything goes wrong.

If you encounter any issues or bugs I would appreciate it if you could file them on the LateralGM GitHub Issue tracker, you may file them here on the site but I would prefer they be posted on LGM's tracker, but it doesn't matter. Please don't be afraid to report issues, if I do not know what they are I can not fix them. NOTE: Please see information about the new exception dialog below.

Change Log

* EGM format is now UTF-8 encoded. WARNING! Experimental, please back up your projects!
* Fixes GMX UTF-8 encoding for scripts and shaders, all other resources already had it.
* Fixes issues with the font editor so that it can support all Unicode characters and generate ranges properly.
* Patched exceptions in JoshEdit, Enter can now be used to safely complete the auto-completion window.
* New exception handling dialog, this will appear 99% of the time LGM encounters an exception and allows you to easily submit bug reports to the correct tracker, so if you submit a bug report it will automatically take you to the correct GitHub tracker where it should be posted. A picture of it is below.

* Implemented the find resource option in the main file menu, it is case sensitive and behaves the same as GM's
* Implemented the "Sort by Name" option to the resource tree.
* Fixed various inconsistent keyboard shortcuts. Shift+Delete now works on the resource tree again.
* Fixed multiple-selection and deletion, it broke when I fixed the behavior of the context menu for the resource tree, tested and it should all be good again.
* Adds multiple-selection and drag for the resource tree.
* Fixes the enter, delete, and insert key events, they now properly map the events and will save properly to all formats and work properly in ENIGMA.
* Fixes Progress Dialog exception when EGM is the first format saved.
* Fixed a typo in the GMX reader causing the object that a view is following not to be saved, it now writes and reads properly.
* Fixed delete event key in object frame, before if there was no events and you hit it an exception would occur because LGM was trying to delete the root node.
* Fixes exceptions relating to negative model selections in the resource tree.
* When saving a new GMX, LGM will now automatically create you a folder for your project.
* Other exceptions have been fixed and other improvements have been made as well.

General ENIGMA / Unicode Fonts
« on: April 09, 2014, 08:31:44 PM »
Well, as Harri pointed out to me, GM's Unicode font support is limited. How you ask? They use Windows only fonts such Arial Baltic because their IDE is written in Delphi and only for Windows, this is true even for Studio.

As many of you may have already noticed, LGM does not have these fonts available. Why? Well that's simple, again, GM's IDE relies on native Windows shit for fonts. Java applications and all non-Windows software, provide full Unicode support.

LGM and ENIGMA are capable of getting around this limitation imposed by GM and allowing you full access to all 2,147,483,647 (arbitrary limit imposed by Java int max value) characters supported by the Java/Unicode standard as depicted in the above screenshot. You will however be limited to no more than 1000 characters per sequence, meaning if you want 10,000 sequential unicode characters you will need at minimum 10 character ranges to achieve it with LateralGM, this is to stop the font editor from lagging with excessive ranges. This will require that you set the character ranges yourself, you can do this simply by entering the translated text and hitting preview which will auotmagically calculate the character ranges you have used.

The reason I am posting this topic is both to be informative and to ask everyones opinion. First of all, what do you think of this solution? It is more powerful than GM that limits you to 255 characters. They will also most likely remove the 255 character limit and go this route as well in the future when they do their new IDE. Thoughts, feedback, criticism is again always welcome I would appreciate feedback.

Edit: Studio v1.3 does in fact make this change, but does not yet remove Arial Baltic and such fonts!

Developing ENIGMA / Game End Return Value
« on: April 05, 2014, 11:51:37 PM »
Just curious, why did game_end() never get a parameter? In most programming languages, ie. Java has System.Exit(return);

We should overload it to accept variant or some shit for ENIGMA.

Off-Topic / execute_string is not a bad coding practice!
« on: April 01, 2014, 01:24:49 AM »
In fact, it's very standard in many many professional games. Some of them you may have heard of.

1) Grand Theft Auto ("invented" by none other than Mike Dailly himself): a low-level interpreted scripting language is used for mission coding (Main.SCM) see link for details.
2) Command and Conquer: scenario scripting
3) Sudden Strike: scenario scripting like other RTS games
4) Rise of Nations: scenario scripting...
5) 0 A.D. : scenario scripting.......................
6) Jak and Daxter: one of my all-time favorites
7) A lot of RTS engines also implement lua or python scripting such as SpringRTS.

It has many upsides, such as properly abstracting game code from engine code. Most of the processing intense work can be done in the lower level engine, such as mesh loading and terrain deformation, while easy tasks such as creating goals, spawn points, can be easily coded in an interpreted language, since the cost of functions implemented at this level are usually inexpensive.

Sorry for the rant, just sick of YYG's contempt, especially because of aforementioned Dailly.

General ENIGMA / Splash Functions
« on: April 01, 2014, 01:02:40 AM »
Well, I am at a point now where I could code in the splash functions in my free time, or I could just not do that, ever, at all, and leave them deprecated for ENIGMA. But why would I want to do this? Well for several reasons, but mainly.

1) YoYoGames designs functions very badly, that leave little room for abstraction.
2) The functions are basically just a salad of various API's, meaning it's not possible to build a game that for instance only uses splash_show_image without linking DirectShow, unless I move splash_show_video over into my DirectShow extension which is just messy including the splash settings variables all over the place, especially since some of the code has to go into the main Window handle callbacks
3) I have much better functions/implementations planned that are truly abstract, for instance, my already implemented video functions, and in future releases...
Code: (EDL) [Select]

Which we can also get running in OpenGL and on Linux, and *gasp* maybe even mobile! *crosses fingers*

Point is, I want to make a better, more powerful, and easy to learn and use design for video playback, HTML and webkit content, that I can not otherwise do by emulating YYG's shit. I don't even think many games used splash functions, because they were only existent in a single release of GM. Anyway, I want to hear you guys opinions on this.

Programming Help / Find the Memory Leak
« on: March 30, 2014, 05:43:26 PM »
I am doing some debugging on object inheritance and noticed a memory leak in Mark Overmars original FPS example, this is only 1 of 3 bugs left in this game. The memory leak does not occur if you delete the collision event of obj_monster_basic. I am posting this here so maybe Josh or TheExDeus can spot the bug.

The obj_monster1 code parses out to this.

The obj_monster_basic code parses out to this.

This is the IDE_EDIT_objectfunctionality.h requested by Harri.

Developing ENIGMA / Game Information Implemented
« on: March 26, 2014, 03:40:40 PM »

I have finally managed to program in the Global Game Information to work pretty damn good.

This is the pull request which implemented the Game Information.

There are still a few anomalies which are minor and need to be fixed.

You can update via git and then download the new plugin, or you can simply download the new Portable ZIP.

Documentation for the relevant functions is available on the Wiki.
This commit also adds some other functions as well.

Issues Help Desk / Debugging Your Game
« on: March 03, 2014, 04:42:17 AM »
This guide has since been moved to the Wiki, where you can find more comprehensive information about how to improve your game's performance:

The following guide is also useful for letting us know about an issue:

Please do try to put some effort into debugging issues before asking for help.

Quote from: Original Post
I am not sure if any of you are already aware but GCC and MinGW are redistributed in ENIGMA with GDB a popular and powerful debugging tool.

If your game opens and closes immediately or crashes, GDB can tell you what line in the ENIGMA source code your game crashed in. These are the steps to run your game in GDB.
1) Open your game in ENIGMA and execute it in debug mode by clicking the debug icon, this will add debugging symbols to the built executable.
2) Close the game, and look in the output window for the name of the output executable, usually a temp file on Windows and is usually named egm503450990 or similar. Copy and paste the full path to your clipboard.
3) Open enigma-dev/git-bash or on Linux or Mac any Command Line Interface or Terminal will suffice.
4) Enter "gdb file/path/to/egm/with/debugging/symbols" on the command line and hit enter.
5) Type "run" and hit enter.
6) Run the game to the point that it crashes, once it does GDB will display the segfault information.
7) If the error report is not detailed enough type "bt" for backtrace and hit enter, and it will show you the exact source files and what lines the error occurred in/on.
8) To close your game you may have to type "quit" and hit enter.

And there you have it, some advanced and very helpful debugging. These debug logs can also be useful when filing a help desk ticket as well, and you are encouraged to include them if you know how.

Note: On Windows to copy and paste a terminal window, right click on the title bar and hit Edit->Select All/Copy

Tips, Tutorials, Examples / Conway's Game of Life
« on: March 03, 2014, 04:40:51 AM »
I found another interesting example from Game Maker 6 that works perfect in ENIGMA, Mark Overmar's iteration of Conway's Game Of Life. For anyone who doesn't know what Conway's Game of Life is, it was a computer simulation developed as an example that shows that higher order complexities can arise from a very simple set of rules.

I decided to test it in ENIGMA and it works 100% perfectly right out of the box.

Developing ENIGMA / GDB execute by default
« on: March 03, 2014, 02:37:50 AM »
We should make debug mode execute with GDB by default, it's included in all our releases anyway, and ENIGMA still launches the game in debug mode. So why launch the game only for it to provide no debugging information?

We simply can not provide enough debugging macros that will catch every single exception anyway.

Developing ENIGMA / High Frequency Mouse Capture
« on: March 03, 2014, 12:58:01 AM »

According to this you can obtain the mouse position during a WM_MOUSEMOVE call, and I am wondering if this would be better for us to do than querying it using the WinAPI's calls every frame, or rather if the difference is very noticeable such as window_set_caption.

This is related to my decision in my recent pull request to move the Joystick code that wasn't even using DirectInput out of an extension since Microsoft doesn't even advise for DirectInput for anything except joysticks because it adds overhead. And I programmed our Joystick code for Windows using RawInput and it works fine, so I saw no reason to add overhead to Joysticks for no reason.

The only place XInput is needed is for the Xbox 360 controller.

Developing ENIGMA / LateralGM Studio Plugin
« on: February 21, 2014, 10:19:21 AM »
Ok so, I am working on the next part of LGM's developing, which is bringing GMX and GMK support closer together, such as multiple configuration files.

I've been thinking about making a Studio plugin using their asset compiler that would basically allow you to use LateralGM in place of GM's IDE and allow you to build projects. This could be a means of increasing LateralGM's userbase, and I am wondering what everyone thinks about this.

Off-Topic / Studio Deprecating iOS In Game Advertisements
« on: February 18, 2014, 05:33:24 PM »
Well apparantly YYG just got boned by their own poor design of Game Maker.

Apple has changed the submission process so you can not have advertisement identifiers, when you don't actually use advertisements.

They so silly, like how the include a full debugger in games that are built in release mode.

Developing ENIGMA / Maximum Window Size
« on: February 17, 2014, 01:11:10 AM »
Well upon doing some testing with TKG's game in ENIGMA, I discovered an anomaly between us and Game Maker. ENIGMA does not limit the size of your Window on desktops, so if you create a game with an empty room 5000x5000 and run it in ENIGMA it will cover your entire display but you will only see a portion of the room because the rest of the window is running off your display.

Now, Game Maker imposes an arbitrary limitation to all its window_set_size/set_region_size and other functions, and even for the default room_width and room_height. It will not allow them to become larger than the display width or height, this is nice as it means somebody who sets their game on a super high resolution that your PC does not accommodate, it won't cut off your task bar when you play their game. This does mean however, that those with dual monitors could potentially not be able to full utilize multiple monitor support? I don't know if that's true or not, if somebody would really want a game stretched out over several monitors.

GayMaker: Studio has the exact same behavior.

Now at any rate, ENIGMA introduces no such limitation as mentioned above, and it can be kind of frustrating for reasons above, but we have a few options.
1) Limit the window size like Game Maker does
2) Not limit the window size and let people do w/e they want
3) Limit the window size only for room_width and room_height then if they want to make a ginormous window with window_set_size they still can

What does everyone think?

Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 »