KelvinShadewing / brux-gdk

Free runtime and development kit using SDL and Squirrel
GNU Affero General Public License v3.0
39 stars 20 forks source link

WHAT is this? #49

Closed abcd3435 closed 1 year ago

abcd3435 commented 1 year ago

What the hell in the whole world is some libphysfs.dll sh*t i am curious if anyone know, cause google doesn't, i tried to download from some shady page this thing and if i paste it in the folder, just some random error pops up, most likely it's not what it should be... image

The brux-nightly needs to be rebuild correctly cause it doesn't work when i run brux.exe, and there's not much reference on this squirrel thing, not even clear where to run a simple code to test the script. THe windows i tested it on is win 11, tried to use win 8 in compatibility mode but of course nothing.

hexaheximal commented 1 year ago

That is caused by brux-gdk adding PhysFS support without adding the library file for it.

I've tried to warn everyone working on brux-gdk that making brux-gdk more bloated unnecessarily will only cause more problems, but nobody ever listened, and this is one of likely many consequences of that decision.

I don't even understand why it has PhysFS support; none of the games that have been built on brux-gdk actually use it.

This isn't the first time that has happened either.

Back in... forever ago... brux-gdk started requiring Chipmonk (which is a physics engine) as a dependency, even though there are no APIs for physics in brux-gdk, nor was the physics implementation used anywhere other than physics.cpp and physics.h. Removing those two files is enough to remove Chipmonk from brux-gdk entirely. And yes, it still requires Chipmonk to this day even though it doesn't use it anywhere.

Additionally, I have heard discussion of using Meson/Ninja instead of CMake as the build system. I have tried (several times, in fact) to warn the people working on it that using Meson/Ninja will add yet another unnecessary requirement and that a Makefile is enough, however it didn't work and instead of them realizing the problem they've created they instead said that using a Makefile would cause it to recompile everything every time you build it, even though that can only be caused by someone trying to implement a Makefile without actually knowing how to do it correctly.

At this point, brux-gdk is becoming a bloated disaster and it's quickly getting out of control.

Anyways, back to the problem you had...

The best solution to this problem as of writing this would be to use the linux version of brux-gdk, since PhysFS is statically linked into the binary on the linux builds of brux-gdk.

KelvinShadewing commented 1 year ago

@abcd3435 I just forgot to put a DLL in for a library someone else added to the project. Calm down, seriously. You're getting worked up over a nightly which is expected to break. There's no call for such a strong reaction to a missing DLL in an unstable build.

@hexaheximal PhysFS was added to make mod support in games easier. It's functionality is explained here: https://icculus.org/physfs/

Chipmunk is being added because this is a general purpose engine, and some form of built-in physics is generally expected in such projects. It hasn't been updated in a while because I've had no reason to use it, and the guy who added it in for me was unable to continue working on it. It's not even a requirement as you say; the files are not even included in the makefile or referenced in any other files.

We are not adding Meson or Ninja or whatever. I don't even want CMake to be honest; the hand-written makefile works fine for me. If you know how to improve the makefile, feel free to make a pull request for it.

Brux has not become a bloated disaster that's quickly getting out of control. I've been actively resisting a lot of changes because I don't see the necessity for them, and don't want to add them until they're explained to me and I am convinced that they'll help. See the changes proposed by Vankata a while ago.

You're both getting way too worked up, especially about a simple hobby project that was never intended to become some big important engine like Godot or Unity in the first place.