rfg-modding / rsl Goto Github PK
View Code? Open in Web Editor NEWRe-mars-tered Script Loader. A lua scripting API and modding tool for Red Faction Guerilla Re-mars-tered. Development for RSL1 has ended
License: GNU General Public License v2.0
Re-mars-tered Script Loader. A lua scripting API and modding tool for Red Faction Guerilla Re-mars-tered. Development for RSL1 has ended
License: GNU General Public License v2.0
Dependencies should be moved into their own repos so this repo only contains it's own code, and stays small.
Ideally all dependencies would be connected via submodules and rebuilt for each build. However, this might negatively impact build times. One option is to keep including all or some dependencies prebuilt, but to place them into a submodule. Something in between the two is probably best.
Azure pipelines is setup for this project for automated builds but currently fails to build the project. It was initially added to the repo to test if it built the project any quicker than appveyor. The build errors should be fixed, and if it's slower or equal to appveyor it might be better just to remove it.
Write a guide in the docs that describes the basics of function hooking, how it works, and steps on how to add new hooks via c++. This should make the onboarding process for the c++ side of the RSL easier for new contributors.
RSL should support the GOG version of re-mars-tered. It currently doesn't do anything with steam specific code so adding support would likely only be a matter of adding a compilation option for using steam or gog function and value offsets, and finding those offsets for GOG. That part shouldn't be difficult, just time consuming.
The part I'm not sure about is how to keep automatic builds from doubling in time. My current thought is to just have a compilation flag for whether Steam or GOG offsets should be used. The problem with that is that we'd then have to build it twice unless there's a way to build two compile configs at once in appveyor. Once for GOG, once for Steam.
Describe how to use StructDocGenerator.py) to partially automate docs generation for new bindings. Describe it's limitations and areas where it could be improved.
RSL is successfully loading, I hear the 3 beeps.
Fresh install of the game, with no other mod managers installed. I've tried different screen resolutions, reinstalled the game a few times with no fixes.
I can't pull a screenshot to show this because my cursor gets cropped off. But essentially I can see the cursor is "unbound" to RFGR's custom one. There's just nothing to click on
The freecam can cause the "no ragdoll" and "ai ignore" settings in the tweaks gui to appear to be enabled while actually being disabled.
Steps to reproduce:
Unit tests should be added to the c++ code of the project to try and make the code more stable and to notice breakage early. Ideally they would automatically be run by appveyor/azure pipelines/github actions each time a new commit is made.
There isn't any code coverage goal with this, just that the important areas of the code should have meaningful tests to make sure they haven't broke. We could probably also add tests to the lua code, but it'll need a separate testing tool/framework.
Currently all of the overlay GUIs are written in C++. They should be transferred to lua for a few reasons:
This issue can be split into a few parts:
Things like the free cam and the first person cam should be transferred to lua for the same reasons listed in #8 for moving gui code to lua. It might be better to move these into another repo that is included by automated builds to keep this one from growing too large.
CameraWrapper
would still be written in c++ and bound to lua to provide a nice way of controlling the camera, but the actual camera logic would be in lua.
Write a guide on how to bind additional values to lua. Should also modify StructDocGenerator.py to generate lua bindings instead of docs (will still need manual checks, but will speed up the process).
The lua core lib should be moved into it's own repo and connected to this one with a submodule to keep this repo from getting too cluttered.
Currently the RSL only supports RFG Re-mars-tered edition on Steam, with plans to support the GOG version #12. Re-mars-tered was chosen partially because it is newer and comes with many graphics and performance improvements, but also because it came with a PDB filled with debug information, which makes finding useful pieces of code for hooking much easier.
The original versions of RFG do not have PDBs publicly available. This means that making something like the script loader for those older versions would be a lot more work. Since in depth reverse engineering would be required for any function or code needing to be hooked or modified. It's possible that large portions of the RSL would need to be rewritten to work with original versions of RFG since it's designed with re-mars-tered structures in mind, and we don't know if they've changed significantly between the original versions and re-mars-tered.
So, for the time being the RSL will not support any versions of RFG other than Re-mars-tered on Steam and GOG.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.