Finally, it feels complete!
What I’ve been through and why do I feel relieved
So, after a LOT of trial and error, and MANY wrong paths taken, Unreal Tournament 2004 adapter is functioning!
Why it took so much effort for such a simple thing
UT2004 differs from UT99 in many different areas, even its modding system:
- It now has a dedicated -mod flag instead of using an overriden .ini file
- Every mod has its own mandatory structure, and UT2004 doesn’t like multiple mods loaded
- Mods can load diffs of system .ini files
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.
My top 3 problems with UT2004, ranked:
- Using empty files or ones that are with LF line endings instead of CRLF produces either a segfault or a
Bad Moderror - UT2004 creates a LOT of mod-specific runtime files, and they need to be cleared to be regenerated (I hate caching, as going through them all is difficult)
- I couldn’t get mods with heavy custom GUI usage to work, unless they’re being launched standalone, using UT2004
Communitytab (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:
- ModDir/UT2K4Mod.ini (Name and description)
- ModDir/System/Default (Diffs of what to add/remove)
- ModDir/System/DefUser (Can be left empty, but requires at least one
\r\nline)
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.
Bugs are always present…
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.
What’s that, some new GUI?
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.
Finally shipping, finally stable?
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!
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.