RedeeMOD
- 8 Devlogs
- 38 Total hours
A cross-platform (Windows/Linux) modding platform for games! It was primarily built for Unreal Tournament game series, but can be easily expanded to support any game imaginable!
A cross-platform (Windows/Linux) modding platform for games! It was primarily built for Unreal Tournament game series, but can be easily expanded to support any game imaginable!
Maitenance pre-ship revealed 3 more bugs that I couldn’t live with…
Actually, very counter-intuitive!
... if it is too long. In some rare instances however it failed and set a boundary on window size instead of truncating. However, it’s not an issue anymore!I ran into an issue that got me confused - I couldn’t launch a game. I panicked, thought that my launcher was broken again, and only then did I realise that the game wasn’t installed!
Launcher did not notify me and I got frustrated. Since I want the UX to be flawless, the best decision was to make a pop-up in case of a critical error.
I gotta say - the ship is finally truly 100% ready!
Here’s what the final 1.0.0 release of RedeeMOD brings:
I built RedeeMOD not only as an app to manage Unreal Tournament games exclusively (though at first, that was the plan), but also as a framework to create more games in the future compatible with RedeeMOD!
I recently wrote a Contribution guide that lets anyone create adapters and expand RedeeMOD by following a detailed guide!
Also, as a standard practice, GitHub actions were added to help with releases. Both Windows and Linux builds work perfectly, but are unsigned, so Windows might throw Smart Screen or Smart App Control warnings. These are safe to ignore, and if they bother you too much, you can always resort to launching RedeeMOD directly through Python!
The code is formatted with Black formatter. It’s way easier to format the code using a tool than doing so manually.
Also, I found some bugs that weren’t immediately noticeable. Things like:
TypeError)They are now fully fixed. Some inconsistencies between files have also been resolved.
This latest build now features logos to feel more professional. User interface has been updated with more detailed card subtitles, so the app is easier to navigate.
Overall, RedeeMOD is in its stable form for the first time ever. Now it’s just the matter of whether more adapters will be created for other games by the community!
Well, the mod management is very simple - adding, removing and enabling/disabling a mod probably doesn’t sound like the most sophisticated mod manager on the earth, but I am planning to later add a pop up that lets users customize the mods even further, like adding custom launch options, paths, even image customization, but that will require more time and I feel confident enough that the current feature set is good for the first ship.
For more info on RedeeMOD, visit its GitHub repository!
So, after a LOT of trial and error, and MANY wrong paths taken, Unreal Tournament 2004 adapter is functioning!
UT2004 differs from UT99 in many different areas, even its modding system:
My plan was to replicate what I was doing with UT99 - building a custom mod at runtime that would bundle every enabled mod together.
Since this game is quite old, so are its development sources. I resorted to the best source there is - proven to work mods.
Bad Mod errorCommunity tab (which defeats the point of my launcher)Since I wanted to use the modern -mod flag, I had to make my own mod, which needs such files to function:
\r\n line)I’m thankful to whatever or whoever made me as patient as I am, because DefUser being absolutely empty causing a segfault or files requiring CRLF even in Linux was very unexpected, and required hours of investigation.
On top of said implementation, backend framework also needed changes to ensure stability and flexibility. New methods returning more data to the game adapters were added, as well as improvements in attribute names and path handling.
After testing with some edge cases, I found bugs that got resolved shortly after.
Windows, as of now, works flawlessly, but I’ll be performing more tests when I distribute a full build.
Yes! I wanted to implement logos since the day 1 of starting this project. Surprisingly, that was one of the easiest modifications to date.
Screen state tracking was also improved to provide no visual bugs after adding, removing, selecting and deselecting added material.
Again, yes. All the intended functionality is verified to be working, and you can already try it out for yourself!
Running python -m frontend.app from the project’s root will open up this GUI for you to play around! Over the next few days I’ll finish making all the necessary branding, README and ensure licensing is correct. Then I’ll push a final devlog and make a ship.
Thank you for everyone following RedeeMOD’s journey. Keep rocking, and make the world truly Unreal!
After taking a look at the previous design I thought it looked quite ugly and inconsistent when some cards have center-aligned elements and others don’t. This update fixes these issues!
Yes and no. While the primary purpose of this devlog IS to describe subtle interface change, under the hood many quality of development improvements hide as I’m trying to implement and fiddle with Unreal Tournament 2004 game adapter, which required a more streamlined API of adapter creation rather than what was previously developed.
So, this devlog has hours logged from both a fully developed interface and half-developed new game adapter implementation. Stardance was warning me about getting close to 10h limit, so I must post this before diving deeper into Unreal Tournament 2004, which has way more twisted stuff within its modding system.
Stay tuned and wish me luck!
Expanding on the design I like, I decided to add some improvements.
All these things:
I could ship the current version, but there are exactly 3 things stopping me from doing so.
I need to:
Following a design language similar to Unreal Engine 5, I was able to make a functional UI, that can launch the game with selected mods!
The UI is written with PySide6, which allows for Qt6 API to be used on Python, giving a modern development workflow, with customizable stylesheets and cross-platform capabilities.
I want to rewrite the launcher a bit to support more games in the future and be more architecturally correct, at the same time feeling more premium both from the user-facing app, and the source code too.
With the installation discovery done, I can finally focus on the real provisioning and frontend.
Utilizing common installation paths of Unreal Tournament, I could build a simple config.json file that has all this information for Windows and Linux.
Then, I wrote a simple json parser, and methods to use as a simple interface for the frontend.
The current source tree has this functionality implemented:
I will try and build a user-facing application that does exactly 3 things:
Maybe something more will come to my mind as time passes.
As a kid, I used to play Unreal Tournament ’99 with my dad. I always thought that game is genius - how it encompasses the soul of classic arena shooters yet still being fun to play!
You’ve most likely heard of Unreal Engine. The reason it got this name is due to Epic Games’ first major game - Unreal!
While at first it acted as a competitor to Quake I and II style games with its campaign against various creatures, in a year turned to compete with upcoming genre of Arena Shooters, specifically Quake 3, focusing entirely on multiplayer.
While the game itself was awesome not only the way it was written (with an interpreted UScript language, which lets pure UScript mods run on every platform, as well as GPU utilization), and Epic even released the last installment’s source code available to read with promises of development based on what the community wants, quickly realized the harsh reality of Arena Shooters losing market share and turned to developing Fortnite, finally shutting down official server support on 24th of January, 2023.
Despite cancellation of the whole series, community has stepped in and is still keeping up with modern games!
Epic Games even allowed the Unreal and Unreal Tournament (original as well as 2004 version) ecosystem be maintained by a group called OldUnreal, while the latest game is available on UT4Ever, a self-hosted group of volunteers, who have rewritten Epic’s servers. And, guess what, all of this is available for free!
I am always looking at ways to modularize the software I use for maximum customization. Currently the mods follow a drag-over logic, which mixes mod files with original game’s files, rendering the original, pure and unmodified version unplayable if you ever want it back.
After researching how modding architecture of Unreal Tournament ’99 works, I was able to prepare a plan on how to implement a mod loader, and started to work on it! So stay tuned, and join the Unreal Tournament community!