Code Monkey home page Code Monkey logo

Comments (6)

Dudejoe870 avatar Dudejoe870 commented on June 22, 2024 1

Try this build, it adds the missing functions you requested (hopefully)

from godot-openmpt.

Dudejoe870 avatar Dudejoe870 commented on June 22, 2024

To be honest, I didn't really test building with the VS generators. I tested with gcc (installed via scoop, the windows package manager) and Ninja (a build system that can be used as a build generator). The build system honestly is kind of a mess, I honestly hate C++ build systems in general they kind of always suck. I think part of the problem might be that Visual Studio isn't using the right working directory. The source, build, and working directory all need to be in the custom-godotcpp-build folder, and or I think the working directory can be one level out (like it is in the github-workflow I believe). Another potential way to build it is using act which requires docker. I found it a little finnicky to setup personally (mostly due to docker, but if you have that already then it's pretty easy to get act via scoop), but once you do, you can simply run the github action locally on your computer with a --artifact-server-path where the ".gz__" files will appear (just rename the extension to .gz and extract the file using WinRAR or something and you'll have your binaries). I know that's not a great solution but it turns out that building DLLs that aren't over 100MB takes a lot of custom configuration. This whole thing has honestly made me want to program my own build system lol (one that doesn't suck), took me hours and hours to get this working at all.

from godot-openmpt.

GeminiSquishGames avatar GeminiSquishGames commented on June 22, 2024

I sorta feel the same way about the build systems. I'm more used to FreeBasic, Pascal/Delphi, and C# or just pushing build and being done in VS for C/C++. I had trouble when I tried to tackle this as an extension, Scons doesn't play well. My second implementation of libopenmpt was just going to be a C# addon for the mono build but I couldn't figure how to get the stream to work on the existing stream players and it wasn't that important to m project so I just gave up at the time. Thanks for the ideas though and I'll work on it a bit. I need to get a demo going of my game soon and I'll want to get the dynamic music going for that.

The main reason I wanted to be able to build it myself is mostly for openmpt_module_get_pattern_row_channel_command(), which lets you read row data in at arbitrary points. There is another one that the Tracker uses for highlighting as well. The sub reasons are control over the built in effects (and maybe making my own), instrument and sample data control with my own extension logic, and callback access for connections to signals. I have a fork going, I might be able to figure something out and notify you. That said, Godot's GDExtension workflow needs a good custom build system, if you don't hopefully someone does.

from godot-openmpt.

Dudejoe870 avatar Dudejoe870 commented on June 22, 2024

Oh well, I mean I didn't implement those because I didn't think they'd actually be that useful. But I mean I could probably add implementations for them pretty easily.

from godot-openmpt.

GeminiSquishGames avatar GeminiSquishGames commented on June 22, 2024

Thank you so much, that works great! Can get the info either as it plays or at any place I want in the data, I wasn't really as concerned with the formatted string and highlight ones but that's good to have too!
image

from godot-openmpt.

Dudejoe870 avatar Dudejoe870 commented on June 22, 2024

Awesome! I'll keep the issue open (as the issue with the build script is still valid)

from godot-openmpt.

Related Issues (4)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.