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

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

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:

The full details of these changes can be found in the original pull request comments:

Sorry, I think I forgot about this one. I am not sure if you have already witnessed from being present on Discord or not but:

We've already setup the AppVeyor build for RGM and it's already pushing releases regularly there. There's no depends and only Windows is built right now, it's just download and use. However, there's no compiling games yet and we clearly have a lot of work to do too. I'm working on room editor functionality as well as helping fundies with the new EGM format. I'll make a bigger announcement when we're more ready for actual testing so consider any of these releases to be very early alphas.

And absolutely, sorry if I sometimes sound off, I don't always have the full context when replying to forum posts. But regardless, I appreciate your enthusiasm and your interest in helping the others in that way, you're absolutely right. If there's ever anything else I can clarify, always ask me in a reply so I can make anything ambiguous clear to everyone (even those not registered here).

Cheers!  :smileycat:

Issues Help Desk / Re: Lag in Keyboard Movement
« on: September 17, 2018, 09:57:30 pm »
Thanks Hpg678!  :)

That's right everybody, I do have the fix ready for review and am sure it's the correct fix. I did a very complicated bisect to find the regression. Please read my other forum post or my GitHub pull request for more details.

Programming Help / Re: Implementing WASD Movement
« on: September 17, 2018, 09:41:50 pm »
Hey guys, sorry for my late response here. I finally got around to this issue not only because I keep getting more reports about it but I also continue to have the issue myself, so it was getting really annoying. Regardless, I've got good news and we do have a fix!

As you can see on the GitHub issue posted oh-so-kindly by HitCoder, I first documented my findings while looking for the issue.

I tracked the cause down to the pull request in which we generalized the main loop so we could add SDL support.

The solution was pretty simple, I just had to tweak the event handling slightly to make it correct again.

I am hoping to get that reviewed and we'll have it merged into the repo soon. Thanks for your patience!

Announcements / Re: RadialGM Releases, MSVC, Vertex Buffers, and EGM
« on: September 04, 2018, 03:11:13 am »
That'd be good Sam, and that's a really smart idea too. I don't want to jump on that train yet until we have more editors working though, but let's definitely do that.  (Y)

Announcements / Re: RadialGM Releases, MSVC, Vertex Buffers, and EGM
« on: September 03, 2018, 12:39:39 pm »
Quote from: hpg678
I'm just bursting with excitement
Woah, easy cowboy, ENIGMA is #1 best of the best we have all the best engineers, you don't need to worry it'll be stable soon  (Y)  :eng101:

Quote from: Wendigo
Can it already be built on Linux?
Yes it can, but like I said it's still highly experimental, we're hard at work. I just merged in the start to the preferences dialog and was designing an updated room editor this morning. If you get on Discord we can help you build it on Linux, fundies is still on Linux remember.

You just need to recursively clone the RadialGM repo with [snip]git clone --recursive[/snip] then cd into the [snip]enigma-dev[/snip] submodule and make all the libEGM depends the same as you do for the main ENIGMA setup right now. Then you go back to the top-level RadialGM folder and open [snip]qtcreator[/snip] to build. Fundies uses qmake though, so that way should work also. I still have to review the Linux CMake pull request he just sent the other day, we don't support CMake build on Linux just yet.

Also, instead of building it, there's something much simpler you can do if you just want to test. Run the Win32 release in WINE, I am told by people on Discord that it works. I wasn't even expecting it but people tried it on their own. I am also told that GMS stopped working in WINE a long time ago.

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!

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:

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.

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 [snip]vertex_*[/snip] 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.

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 [snip]*.edl[/snip] 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!

Sorry I didn't get to this sooner, this is probably a bug in LGM. Are you using OpenJDK or Oracle JDK? We've documented on several occasions where OpenJDK seems to have more bugs, especially with Java Swing apps (which LGM is). I wrote the copy and paste between events mechanism, and the issue could be as simple as the fact that I used a shallow instead of deep copy (programming mistake). I am still trying to focus on other things and we're still focusing on the new IDE, so if you can just ignore it for now, please do so.

Also, if you want, you can file an issue on LGM's tracker, but don't expect a response. It's unlikely I'll find time to do it, and nobody else is interested in developing LGM further. It may still be useful so other people at least know it's an issue. Totally going to leave this up to your decision.

General ENIGMA / Re: Installing ENIGMA
« on: August 15, 2018, 11:22:28 pm »
The gtest errors are normal actually, [snip]make all[/snip] includes [snip]make test-harness[/snip] which is what we run in Travis CI to run regression tests. I get the same error myself, technically instead of [snip]make all[/snip] just [snip]make -j4[/snip] will make CompilerSource for you, that's all that you need. Hence, why the wiki page doesn't say [snip]make all[/snip]. I haven't clarified this to people until now.

You can just ignore the test-harness errors, it's a false positive in this case. We haven't ported the test-harness to Windows yet and you don't even need to run it locally, it's for the integration tests. We'll probably end up removing test-harness from the [snip]all[/snip] target to avoid this confusion, I don't know why fundies added it there.

General ENIGMA / Re: Installing ENIGMA
« on: August 15, 2018, 11:11:24 pm »
Are you sure the dll is 64 bit? That's what causes this communication error. 64 Java can only load 64 bit dlls with JNI, and extension JNA. This is actually a Windows restriction that a 64 bit process can not load 32 bit dlls. ENIGMA uses JNA.

It's strange that reopening LGM did not rebuild the dll.

I would suggest looking in the terminal for G++ errors, because LGM calls [snip]make[/snip] itself as soon as you open it. You can also remake the the dll yourself with [snip]make all -j4[/snip].

Again, make sure you are doing all of this from the Mingw64 version of the terminal. There are 3 versions in the start menu, one is MSYS2, one is MinGW32, and the one we use is MinGW64.

General ENIGMA / Re: Installing ENIGMA
« on: August 15, 2018, 09:40:17 pm »
@DarkStar2, so you did follow the msys2 setup all the way to step 8? You are running with a 64 bit Java? Try deleting compileEGMf.dll and then running LateralGM again. It's supposed to be remade each time. And make sure you are doing all of this from the mingw64 terminal.

Sorry about the video, I was not aware of it, as I am not the one who sent it to you. To some people it did help them, hence why it's being shared. Trust me when I say other than this we have a plan for an even easier setup that I am actually working on right now over Discord, not discussing much about it right now.

Keep us updated.

General ENIGMA / Re: Installing ENIGMA
« on: August 15, 2018, 02:04:27 pm »
No problem, but actually [snip]base-devel[/snip] and the toolchain pkg was already there, the problem was not going to step 8 before running it the first time. To clarify, that was the package that was corrupted which was fixed by running it again.

As for the DirectX runtime, we had that listed on the Troubleshooting page.

The reason was because I expect that most people already have the runtime installed for playing games or using GMS. And I think since Windows NT 4.0, DirectX is actually installed by default (the issue is having at least 9.0). Also, the graphics actually defaults to OpenGL1.1 still (the most compatible system that is stable). Regardless, let's add it anyway, as I said it's better to be redundant than omit steps for people.

The Java download is still linked from the main download page, since it's essentially a requirement everywhere:

General ENIGMA / Re: Installing ENIGMA
« on: August 15, 2018, 01:13:45 am »
We ironed this out over Discord, there were several issues in the install guide.

* DarkRonin didn't go all the way to step 8 of the MSYS2 setup (likely because it's hard to see and tripped me up too plus somebody else, so that makes 3...)
* Cheeseboy removed the second change directory step after cloning, it's still needed
* I told him to make all, which makes libEGM, but the guide didn't list rapidjson and pugixml or yaml-cpp as depends.

Changes made to improve the guide:

That should help people going forward.

Announcements / Re: Graphical Fidelity Testing and Engine Cleanup
« on: August 07, 2018, 10:41:59 am »
Update again: We've now added a test for 3D shapes (though they aren't completely correct in GL1 right now, we'll at least know when they change).

Announcements / Re: Graphical Fidelity Testing and Engine Cleanup
« on: August 06, 2018, 01:48:55 pm »
I wanted to update this post a bit with some newer info on the drawing tests. We have finally merged them but we made some significant changes to the architecture. We no longer compare the results against golden images because we want to keep binaries out of the repository so cloning is quicker. What we do now is simply output the images from each draw test to a temporary directory and then essentially compare all the files in each directory.

We report when new tests are added or removed.

That is from a test I recently added when fixing a tile-related regression that occurred in HitCoder's Sonic game. The issue was that the tiles vertex buffer and index buffer was not cleared during room transition.

Adding tests in this way ensures that once issues get fixed, they don't come back again in the future. I hope that this shows to everyone this will lead ENIGMA to being more stable than it has ever been before! The future of the project is looking really bright.