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 »
1
Announcements / Amazing Box Puzzles & Defense of the Realm
« on: July 10, 2019, 09:30:29 AM »



Every now and again I like to share some exceptional games from ENIGMA's EDC or the community. Two games I've recently spotted are by community member Hugh Greene.

Amazing Box Puzzles is a fun and challenging puzzle game similar to Mystery Mansion and other titles he's released with new and refined mechanics.
https://enigma-dev.org/edc/games.php?game=99

Defense of the Realm is a more traditional side-scrolling shooter that's fast paced and involves finer-tuned reflexes to succeed.
https://enigma-dev.org/edc/games.php?game=98

If you enjoy these genres, please do check out his games. He not only puts a lot of effort into them, but I can personally vouch for their quality. Consider leaving him some reviews and feedback so he knows how to get even better. He's on his way to becoming a master game developer!

2
Issues Help Desk / LateralGM High DPI Workaround
« on: May 05, 2019, 09:13:17 AM »
I've had this issue with LGM on my high DPI 2K monitor for a while now. I even have the issue running LGM under Java 9. I finally did some research and found a workaround I'd like to share.
https://superuser.com/a/1207925

I tried that on my installed "javalocation/bin/java.exe" but it didn't work at first. So what I did was ask the MSYS2 console where java is.
Code: (Bash) [Select]
$ where java
C:\ProgramData\Oracle\Java\javapath\java.exe

I then went there and applied the fix to that exe and it worked. You just right click the exe->Compatibility tab->"Change high DPI settings" and override the DPI scaling factor. I set mine to "System (Enhanced)" to get the results below.

DPI System (Enhanced)


DPI Unaware/Broken

3
Announcements / New LateralGM Stability Releases
« on: April 23, 2019, 03:15:50 AM »


This may come as a welcome surprise to many of you, but I wanted to announce a few LateralGM releases that I've made recently. Yes, we are still working on a new IDE, but are not yet ready to completely drop LateralGM so I don't mind making a few stability changes and healthy fixes for the project to placate everybody in the interim. The main point of these changes is not to introduce radical changes to LGM, but simply make maintenance a little easier, including some custom error dialogs that facilitate users solving certain issues themselves rather than posting them to our GitHub.

As always, you can obtain the new releases on GitHub. The installation scripts in enigma-dev have also been updated to refer to the latest LateralGM release.
https://github.com/IsmAvatar/LateralGM/releases/tag/v1.8.53

Summary of Changes
1) New event selector based on a mockup by Josh which is a critique of the GameMaker 5 event selector.
2) Fixed translations that already existed but where the keys have been renamed. Also provided new translations where possible using Google Translate.
3) Cleanup of the GMX writer including refactoring of group writing.
4) Memory leak fix in the GMX and GMK readers.
5) Fixed some inconsistent use of certain icons.
6) Fixed some action list behavior including exceptions around clipboard options and empty selection.
7) Fixed clipboard copying of actions using a deep copy addressing the linked actions issue.
8) Fixed resource name completions in the code editor.
9) Fixed default sprite transparency which addresses issues with loading GMX projects after GMK projects.
10) Improved external editor error handling with custom error messages directing users how to resolve desktop editing failures themselves.
11) Made it easier to import multiple sprite sheets to the same sprite by making the "Add Spritesheet Subimages" button not clear the sprite's previous subframes first.

4
General ENIGMA / Poll: New LGM Event Selector
« on: April 21, 2019, 06:32:37 PM »


Hey guys. I want everyone's feedback on a new event selector we are proposing for LGM.
https://github.com/IsmAvatar/LateralGM/pull/404

I know many of you have had frustration and find the current event selection unintuitive. Because of that, Josh created a mockup which is a critique of the GM5 event selector which I used to design the one in the pull request. You can download a prerelease jar of the changes in a zip from my pull request. I want to know what you guys think and whether I should merge it or if we should move forward with the event selection we already have.

I had previously been criticized by Josh for combining the Add/Replace/Duplicate options into "Modify" which is synonymous with "Edit" and thus confused him. I am taking a poll now to avoid making similar mistakes. The only way I can conceive of every imaginable criticism before merging this is to simply ask the community. So this is your chance to let your opinion be heard. Please let me know how you feel about this, thanks!

NOTE: Please understand that I am already aware the "Context" (previously "Object Window") resource menu breaks when you load a project. This is not a regression and exists in lgm16b4 too. I've filed a separate issue for this because I don't want to conflate it here. It will be fixed later on.

5
Announcements / Reinterpreting EDL 2.0
« on: April 01, 2019, 02:27:21 PM »
Hello ENIGMOs, I'm excited to share some exciting news with you all regarding ENIGMA's language design and the future of the engine. It has been a long and treacherous path in recent years to correctly parse C++ while balancing the user friendliness and smooth learning curve of traditional GML. After an arduous discussion on the prospects of JDI, we decided an alternative approach would give us everything we want and more.

I'm here today to announce that me and Josh have completely redesigned EDL from the ground up. We looked at earlier design cues that Mark Overmars took with GML and realized that we were emphasizing the C origins of the language way more than its COBOL or BASIC nuances. We believe there is no doubt that this reimagined EDL will serve to bring a vast new audience to the ENIGMA development scene like we have never seen before. Whether you feel that too many operators makes for a daunting language to memorize, or you prefer statements that read like English, EDL 2.0 will make you feel perfectly at home with Visual BASIC 6 all over again.

In order to make this easier for everyone we have outlined an incremental approach to replacing the current JDI over the coming months.

* The current JDI has to go, so we will begin by hoisting the current EDL up by its drag and drop boot straps.
* Once we have hammered out any regressions from the EDL->Drag and Drop conversion, we will delete the current JDI.
* I will then begin integrating the FreeBASIC compiler in place of the old JDI.
* A drag and drop -> VB6 converter will be developed.
* Finally, we will drop the EDL->Drag and Drop converter.

This would have been a nearly impractical objective in the past, but there has never been a better time than now for us to make this transition. There may be bugs along this road to progress, but if we can stick it out, I'm certain that we can usher in a new era of game development utopia. Please stay tuned and thank you all for your continued interest in ENIGMA!

6
Announcements / Image Format Extensions & New libpng Dependency
« on: February 14, 2019, 11:19:05 PM »


Many of you have been requesting for some time that we switch from LodePNG to libpng to make it easier to install ENIGMA on your platform because libpng is usually available on package managers and LodePNG is not. I wanted to let everybody know that we have finally done this.
https://github.com/enigma-dev/enigma-dev/commit/112dc544d611d5b588e8f0b2e3f193b79e7f0845

This means that libpng is now a dependency for ENIGMA and you will need to install it through your package manager the next time you git pull or otherwise setup ENIGMA.
https://enigma-dev.org/docs/Wiki/Install:Windows
Code: (Bash) [Select]
# MSYS2 64-bit
pacboy -S libpng:x
# MSYS2 32-bit
pacboy -S libpng:i

I have also updated the Ubuntu/Linux installation instructions as well as the easy method script.
https://enigma-dev.org/docs/Wiki/Install:Linux
Code: (Bash) [Select]
sudo apt-get install libpng-dev
There are actually other positive benefits from this change, including the fact that png loading and saving is now many times faster according to several benchmarks I have performed. There may still be additional optimizations we can make in the future, but for now you can see my benchmarks on the original issue where libpng was requested.
https://github.com/enigma-dev/enigma-dev/issues/1391#issuecomment-464307654

Another positive aspect of this change stems from the fact that I integrated libpng into the engine as an extension. This means I have made the image loading and saving "hookable" so that additional image formats can also be supported through extensions. I hope everyone likes these changes and will find that they improve ENIGMA. I also want to mention that I do not foresee us adding any more required dependencies to setup ENIGMA except for FreeType which we'll be using to render fonts in emake and the frontend tools. It will be a shared dependency between the command line and the engine. I just want to give everyone a heads up. Cheers!

7
Announcements / New Dependency on Google Protocol Buffers
« on: February 02, 2019, 09:54:42 PM »
I wanted to make sure to cover this with an announcement to keep everyone in the loop. We have now rearranged the backend to the compiler so that it now uses Protocol Buffers directly. EnigmaStruct is now deprecated and should not be used for building new command line or frontend tools that integrate with ENIGMA.
https://github.com/enigma-dev/enigma-dev/commit/a1aa34d57d91e438bf937a39d902a6556932eaec

We also had to come back and address a few regressions from this change in several games. With this, there have been no other new regressions discovered.
https://github.com/enigma-dev/enigma-dev/commit/090d1a92fa377e0f9a851ebdaa3daa325b76a497
https://github.com/enigma-dev/enigma-dev/commit/36de74c8d44871ea260506a8f8e27d684aee4253

EnigmaStruct is deprecated rather than obsolete because it is still used by LateralGM. It will likely remain that way as my development attention is staying focused at RadialGM now which uses the new Protocol Buffers directly for its data model. One advantage to the new Protocol Buffers interface is that binary compatibility can be maintained when changing the protos. This is not true of the old EnigmaStruct, and thus, tools that use it will be subject to frequent breakage as a result of the lack of binary compatibility.

Long story short, you will now need to install Google Protocol Buffers when setting up ENIGMA or the next time you update an existing installation.
Code: (Bash) [Select]
# MSYS2 64-bit
pacboy -S protobuf:x
# MSYS2 32-bit
pacboy -S protobuf:i

I have also updated the Ubuntu/Linux installation instructions as well as the easy method script with the help of TKG. You will need a newer protobuf version which is why we recommend installing the dependency from Maarten Fonville's PPA which is where our Travis CI build obtains it.
https://enigma-dev.org/docs/Wiki/Install:Linux
https://github.com/enigma-dev/enigma-dev/issues/1527
Code: (Bash) [Select]
sudo add-apt-repository ppa:maarten-fonville/protobuf
sudo apt-get update
sudo apt-get install libprotobuf-dev protobuf-compiler

You will also need to do a clean build of the compiler.
Code: (Bash) [Select]
make clean
make -j4

8
Announcements / Git History of Master Rewritten
« on: November 17, 2018, 02:33:14 AM »
This is a small announcement just to warn everybody that Josh had to rewrite part of the recent history of enigma-dev master.
https://github.com/enigma-dev/enigma-dev/issues/1413

It started when TKG made a pull request that contained a dll which Josh told him was ok to use. Since Josh was not available, I agreed to review the pull request and merged it into the repository. The confusion here was that Josh wanted TKG to host the dll somewhere other than the repo. Obviously, I broke one of the very important rules of git by merging the pull request, that you should not add binaries to a repo. If you continuously add binaries to a git repo you will bloat the download size of the repo since cloning the repo involves copying the repo's history (which ends up being multiple copies of a 5mb dll).

Anyway, Josh fixed it by rewriting the history on master to make it look like that pull request was never merged. This means that any existing clones or forks of enigma-dev need to be rebased onto the new master head commit. This is a rather complicated procedure, even for people who know git, so I recommend that you simply reclone and or refork enigma-dev as needed before sending any pull requests back to us.

We're all sorry for the inconvenience this may cause anybody and are going to be more vigilant going into the future. I just wanted to make this announcement so everybody is aware and also to increase awareness so people understand not to add binaries to a git repo and it doesn't happen again.

9
Announcements / MSYS2, Pacboy, and Virtual Packages
« on: October 01, 2018, 07:53:45 PM »
I want to take a quick minute to explain a little bit about Pacboy because Hugar brought a user's installation issues to my attention over Discord. You can consider this post to be a sort of technical explanation and not really an announcement, but I want to try to clarify this for everybody and not just the one person.

The user was having a problem installing git using Pacboy because I forgot a colon on the install page for Windows. The git package in MSYS2 is actually what's called a "virtual" package.
https://github.com/msys2/msys2/wiki/Using-packages#installing-a-package

Because the package is virtual, when you install it with Pacman, you only need to specify git without any x86_64 or i686 suffix. Now what Pacboy is, is it's a bash script written by the MSYS2 people that makes it easier to install Pacman packages so you don't have to specify the long package suffixes.
https://github.com/msys2/msys2/wiki/Using-packages#avoiding-writing-long-package-names

Long story short, with Pacboy the :x is for x86_64 (64 bit) and :i is for i686 (32 bit) just as our instructions said before, but a plain : after the package name, like git:, should be used for virtual packages.

Quote from: Pacboy Terminal Prompt
    Pacboy 2016.6.24
    Copyright (C) 2015, 2016 Renato Silva
    Licensed under BSD

    This is a pacman wrapper for MSYS2 which handles the package prefixes
    automatically, and provides human-friendly commands for common tasks.

    Usage:
        pacboy [command] [arguments]
        Arguments will be passed to pacman or pkgfile after translation:

        For 64-bit MSYS2, name:i means i686-only
        For 64-bit MSYS2, name:x means x86_64-only
        For MSYS shell, name:m means mingw-w64
        For all shells, name: disables any translation for name
        For all shells, repository::name means repository/name

I've updated our Windows installation instructions to clarify all of this.
https://enigma-dev.org/docs/wiki/index.php?title=Install%3AWindows&action=historysubmit&diff=31845&oldid=31833

10
Announcements / New Dependency on OpenGL Mathematics (GLM) Library
« on: October 01, 2018, 12:16:25 AM »
OpenGL1OpenGL3Direct3D9Direct3D11

We've made it to yet another massive cleanup of ENIGMA's graphics. This one is a pretty big deal that I wanted to make sure to let everyone know about. I've rewritten all the old transform and matrix code using a single dependency, GLM, to eliminate all of the old duplication. This is not only less code but also brings improved consistency across the four graphics systems that ENIGMA currently provides. There were several reasons for choosing GLM over various other alternatives that exist, but I'm fairly certain we've made the right decision.

You can see in the above table that the transforms in the Animation Platform Example sent to me by DarkAceZ are consistent in all four graphics systems. Direct3D11 does still have noticeable rendering bugs, but this is unrelated to the transforms and has to do with render states and unfinished D3D11 features we will need to take care of later. But regardless, the game does perform more consistently as a result of these changes.

You will now need to download GLM through your package manager when setting up ENIGMA or pulling the latest master on all platforms.
Code: (Bash) [Select]
# Ubuntu
sudo apt-get install libglm-dev

# MSYS2 32-bit
pacboy -S glm:i

# MSYS2 64-bit
pacboy -S glm:x

You can see that the changes have already been merged:
https://github.com/enigma-dev/enigma-dev/commit/4e8ad7c3857794f490610c621ae64ae54b3456b0

The full details of these changes can be found in the original pull request comments:
https://github.com/enigma-dev/enigma-dev/pull/1396

11
Announcements / RadialGM Releases, MSVC, Vertex Buffers, and EGM
« on: September 02, 2018, 10:26:30 AM »
RadialGM is currently

If you like the progress we've been making, please consider supporting us on Patreon!
https://www.patreon.com/bePatron?u=10889206


It's been a while since I've updated everyone on the current progress around here. I am going to cover a couple of different topics, some related and some not.

First, I want to talk about how we've added MSVC & CMake building support for the enigma-dev command line tools as well as RadialGM. This is in huge part thanks to fundies whose proved himself to be a master of build systems once again. This has allowed us to create a static build of Qt using vcpkg and use it to deploy RadialGM on the GitHub releases page. Some of you watching us on GitHub may have already noticed you can download 4 builds of RadialGM already (permutations of x86, x64, Debug, and Release).

Please consider this an early alpha as we are still hard at work to bring our other ideas to fruition. Only GMK and GMX loading work right now and some editors are incomplete. Functionality is basically equivalent to the current emake used in CI testing. Actually running a project also does not work yet out of the box and I'm not going to bother explaining yet how to integrate it with your enigma-dev setup.

RadialGM Releases: https://github.com/enigma-dev/RadialGM/releases

You may or may not need to download and install the MSVC 2017 runtime as the only prerequisite dependency, everything else is statically linked into the release and ABSOLUTELY NO Java is required.
https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

From here on, we are hoping that later we can spread CMake & MSVC support to the engine as well as provide static releases and installers for additional platforms. This is just the start of many great things to come.

The next topic I want to cover is vertex buffers and recent graphics changes in the engine. I've been doing a massive overhaul to a lot of the sprite/primitive batching and model code to make it more abstract and eliminate duplication in the engine. I have also been benchmarking, regression testing, and fine tuning the API to perform well. You will find that tiles now work in Direct3D9 the same as they do in the OpenGL systems. You will also notice that the vertex_* API of GMS is now 100% supported in ENIGMA. It is used as the basis of our new 3D model class and used to implement the tiles generically so they work the same in all systems. This has led to not just better performance and less code but improved consistency across the graphics systems.

https://github.com/enigma-dev/enigma-dev/commit/8876f6141c575b7ee45dab3adea1fccfb7688331
https://github.com/enigma-dev/enigma-dev/commit/5fa7fcecbd0aaf493103149407c88a13105280a5
https://github.com/enigma-dev/enigma-dev/commit/21dce9bcc32963b788547db96c2215579970993a
https://github.com/enigma-dev/enigma-dev/commit/4e05f616fa7bb02b5d6c7c2d9eb589ada494deee
https://github.com/enigma-dev/enigma-dev/commit/c5a87764affa2fb9141aabfe0c711a859d06f45e
https://github.com/enigma-dev/enigma-dev/commit/d490b5067a8b6f256c135e21ea187705fa414c9e
https://github.com/enigma-dev/enigma-dev/commit/16807a76050455a379d2c434047dc7db12fb4bfc
https://github.com/enigma-dev/enigma-dev/commit/42b7d98efe9930acb3ade71205b3778108892730

There will be even more graphics changes to come. The next thing that I am working on is using GLM for matrices in all of the graphics systems. This will fix all of the current transform issues we have and may also improve performance. I already have Direct3D11 using GLM in private tests to pass various rendering tests.

Finally, I want to close by covering some of the things we are doing with the new EGM format that RadialGM will be using for serialization. We only know a few things for sure at this point in time. One thing we do know is that the format will still be based on YAML for the serialization. This time, the entire format will be YAML, and there will be no mix like having binary rooms and yaml objects like the old EGM format did. This will make projects much less likely to be corrupted and easier to recover.

We have already adopted a code-only model that converts the old drag and drop format to GML for backwards compatibility and will later work on a new Drag & Drop action interface. Events of objects will be stored in separate *.edl script files where objects and timelines will be a directory. We hope that this will make it easier to edit the projects externally as well as add to git revision. RadialGM will facilitate external editing by detecting changes to the code files on the filesystem and reload them accordingly.

That said, I hope you are as excited as I am for RadialGM to reach the stability we want it to be so we can start making games with it. Now I am off to work with fundies on the EGM, please stay tuned for more updates!

12
Announcements / Graphical Fidelity Testing and Engine Cleanup
« on: June 29, 2018, 07:23:13 AM »

Note: The two images are intentional false positives I did for the purposes of demonstrating the bot and to verify its behavior.

Hey guys! I've been busy for a few days working on a side improvement to the engine code base that I want to share with you all. It is closely related to the SDL changes fundies recently announced as well as us adding support for Direct3D11 and modern OpenGL ES. We have basically extended our continuous integration to perform an image analysis on graphics tests to improve graphical fidelity both between the graphics systems as well as between ENIGMA and GameMaker. This is still a work in progress but I just this morning got it fully working to where we can successfully screencap the game in the Travis CI virtual machine (minor bug in our test harness taking the screenshot directly after game start and before any draw events were processed).

You can see what we're up to on the pr here:
https://github.com/enigma-dev/enigma-dev/pull/1291

We expect to have it merged soon and will then be adding drawing tests from here on out.

I've also cleaned up the tile drawing code and optimized them on top of the vertex buffer functions I added for GMS compatibility. They are slightly different though because I use an index buffer to render them more optimally as an indexed triangle list. Regardless, from my benchmarks we can see that the tiles are not only more consistent now but also build and render much faster. When me and fundies get these image comparison tests merged into master, I will add a tile drawing test to prevent future regression of the functions and finally merge in the new tile code.
https://github.com/enigma-dev/enigma-dev/pull/1238

I will be following up those changes by rewriting the model classes as well:
https://github.com/enigma-dev/enigma-dev/pull/1289

The whole point of this changeset is to have less duplicate code by using proper abstractions of vertex and index buffer concepts, while essentially providing both to the user. This not only improves what ENIGMA already provided, but will bring new features and functions that users have desired. With all of that in place it will be super easy to finally have OpenGL ES working again as well as Direct3D11 because building a graphics system then simply consists of making each graphics system have working vertex functions.

I hope everyone likes these changes and will find that it's going to significantly improve the project. Open to comments/feedback/suggestions as always.

13
Announcements / Announcing Patreon
« on: May 20, 2018, 01:21:16 PM »
In this post, I want to talk a little about where ENIGMA is headed and what we are trying to achieve.

As many of you saw, I recently announced that RadialGM is being developed and that I have intentions of making it a fully-featured IDE. Accomplishing what we have so far has not been an easy task. It has already taken several months to develop the new architecture and continuous integration platform. As I've said, I'm very happy with the results, and I think that when the IDE does become stable, it is going to be a tool that once ENIGMA users try it, they won't want to ever go back to the way things were.

YouTube demonstrating emake, libEGM, and libProtocols: https://www.youtube.com/watch?v=f_bWMx1Uhxc

Just since this video was made a few of the bugs mentioned have been fixed and for the first time in years ENIGMA has an issue count in the double digits (at this moment 84).
https://github.com/enigma-dev/enigma-dev/commit/cd7ffc26fbc16355599305848b6d1310aa9ecafb
https://github.com/enigma-dev/enigma-dev/commit/6196449e986765f568098ede47e6a62621701a3f
https://github.com/enigma-dev/enigma-dev/commit/e853744cbb79bf3b22df8ce9dfd783bf4b495fec
https://github.com/enigma-dev/enigma-dev/commit/f574a63563d2523ba46a0e782f17c16edd0a76be
https://github.com/enigma-dev/enigma-dev/commit/53d9a2f71c82404c3a41d7a54841e6c6e4f0e19b
https://github.com/enigma-dev/enigma-dev/commit/4c20a1915a5129493fa946c0088dab38b3dc7c7c

Proposed, but not yet merged:
https://github.com/enigma-dev/enigma-dev/pull/1279
https://github.com/enigma-dev/enigma-dev/pull/1288

There are a number of tasks left to be completed before I believe the IDE and new setup can really be rolled out to everyone. I also believe that this work is going to require a few months of development. I've been preparing to launch a Patreon page for the community to get involved and help support the project: https://www.patreon.com/radialgm

We chose Patreon in particular because we did not want to pressure anybody into funding the project, but we value donations and contributions from the community and feel that they should be rewarded. Through Patreon's platform, we will be able to transparently fund the new IDE and give the community things like special Discord roles, recognition in the new IDE, and early and privileged access.

14
Announcements / Removing Glew from the Repository
« on: May 12, 2018, 07:48:47 PM »
Fair warning, I'm about to remove glew from the repository and from now on it will be obtained via your package manager like the rest of ENIGMA's dependencies.
https://github.com/enigma-dev/enigma-dev/pull/1226

Josh felt it appropriate to warn everybody, and I agree. If you update to master now you will need to have glew installed:

Quote from: Ubuntu apt-get Glew
sudo apt-get install libglew-dev
Quote from: Arch Pacman Glew
pacman -Sy glew
Quote from: MSYS2 Pacman Glew
pacman -Sy mingw-w64-x86_64-glew
Quote from: Mac Brew Glew
brew install glew

This is important because ENIGMA should not distribute its dependencies this way. For one, they are not our code and distort the code coverage, and second they end up getting really old and crufty (like the current glew) which also leads to security vulnerabilities.

15
Announcements / Key to Success Release
« on: May 07, 2018, 03:22:57 AM »
This is a community announcement on behalf of time-killer-games



Key to Success is a free and open source 2D indie platforming game that is compatible with ENIGMA and GameMaker. The game was built with ENIGMA with minimal issue and we are proud to showcase it as compatible with our engine. Please check his official topic for more details + download: https://enigma-dev.org/forums/index.php?topic=2764

Note: This topic is locked and cannot be replied to directly. If you are working on a game in ENIGMA or have a compatible GameMaker game that you would like to showcase, please let us know.

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