State of the Universe / Fisto's Tooling
I took easter as a chance to look through all of my projects, judging their state, what needs to be done and thus writing this blog post, because I always have a lot of cool projects running, but they are barely known to most (except those that lurk on universe and turboduck discords ;)), which I really have to change because they are awesome!
If you want to know more about any of these projects, ask in discord or even better: comment on this post, I'll try to answer as much as I can.
So, without further ado, let's jump into the projects:
Test Drive Unlimited 2:
After being a complete medial disaster, we've finally managed to bring the launcher/announcement post on turboduck:
In the meantime, the server has become main-feature-complete, minus the Casino.
Besides that there are a lot of missing smaller things (mostly stats, custom pictures in houses, club-vs-club races (I could never test them as that would mean 8 active players), ORC (CRC works!)).
If you like TDU2, also don't skip over our blog post about our dynamic matchmaking and why it's the superior solution among tdu2 servers here:
The TLDR is that our approach is reactive and instead of relying on any launcher doing magic detections, we're dead easy: If there are issues with lobbying, rating goes down and someone else is chosen.
Test Drive Unlimited (1):
For TDU1, I also have a lot in store that you may not expect at all.
Multiplayer wise, I've been working on integrating the tdu1 protocol into the existing tduniverse tdu2 code-base and to my surprise, it lines up much more than I even though.
Freeride/freeroam is technically possible, however I still have a hard-to-understand issue where the peer-to-peer communication between player 1 and the host causes the host to crash.
Whenever I have the time and motivation and a good idea, this may be solvable and then I can start asking for volunteers on turboduck/tduniverse to see how lobbies/p2p sync behaves with the original protocol (as opposed to the bolt-on raknet that project paradise relies on, at least partially).
There's a few reasons why I am reinventing the wheel here:
- Maintainability. As far as I know, there is someone that can restart the server, but further development is not possible. Such an addon could be an ignore mode/blacklist, that btw the original protocol even has.
- Stability/Improvements. It would be a stretch to believe that the original networking may be better then what pp has, because I don't know pp's internals, but I can at least get rid of the need of using a VPN in order to register an account. At least working on that is in our hands again.
- Completion of missing features! Once we have freeride working, we can focus on porting all other missing features over from tdu2 (e.g. races, clubs) and re-develop others (e.g. the diner, that has evolved into the CRC in tdu2 or the eBay/vehicle auction house).
Modding Tools, HC Mod, Map Expansion and others that I do for TDU1 will be addressed much further down in this article.
Finally I can talk about riviera!
Some of you may have already spotted our statusses on Discord, such as "burning tires by the sea", "eating slices of watermelon" and have wondered what that is about.
It's not about adding a new island to tdu2, well, not exactly, but close. At some point in deeply modding the tdu games, I have had a lot of situations, where I've regretted "fighting the game" to achieve what I want. In fact, I've spent quite some time in producing nice tools, enabling things that weren't possible before, but the question always was: What if I spent that work in a game engine, instead, working on a blank game?
This is especially relevant, when we talk about changing very fundamental parts of the game, such as adding in parts that weren't done yet (auction house, night clubs) as well as changing physics, the networking layer (no peer-to-peer or more than 8 player lobbies), the architecture (64 bit) or the rendering layer (RTX Crashes).
If you factor all of those in, it really sounds stupid, trying to mod the game to that degree. And it really is, with the skillset that is available in this community, all that it takes is a vision and a team. So we've set sail into riviera:
What is it?
Riviera is a drive-and-vibe game as well as a love letter to the 80s and the medditarean coast. Just the dolce vita, driving your favourite car in the sun with your friends, pulling the windows down, reving the engine and powersliding down-hill next to the sea.
Conceptually, we're obviously drawing inspiration from our favorite open world racers, but also trying to scale up into the megaserver principle known from some MMORPGS.
That means, we want to have big lobbies (think truckersMP) and even host things like car meets, crew cruises (think: easter/christmas cruises, but also smaller inofficial cruises).
Together, we'll have to find out how easily we can handle many players on a map in early access. But I will write the architecture in a way that it supports those lobbies, but at the same time we can easily have virtual smaller lobbies (e.g. just you and your crew or friends).
Of course, we also want to have dealerships, a special degree of customization, a selection of daily drivers, so you can build up your collection and much more.
As much as I want to tell you about all of our ideas and passion, I also have to hold back to not build promises, because the game will contain what we find out and discover together, in the end.
As you can tell from my motivation in the beginning, we're not creating riviera to satisfy some stakeholders, but instead we want to work on our vision and dream, because we're not satisfied with the games that are made nowadays. Now instead of reposting those "what's wrong with the racing game scene" videos, we try to take fate into our own hands and even if we only fulfill our niche with that, we're satisfied, as we've put our passion into the game.
I say that, because we're always appreciating any help in any way, but we won't be able to finanically compensate work for the forseeable future. Instead, the drive should be to finally be able to create _the_ racing/driving game of our dreams.
If you want to stay up to date (yes you want to!), discuss your ideas with us or ask us clever questions, feel free to join our discord at https://discord.tduniverse.org
Tools that we develop to help us building riviera will be shared with the community, where appropriate.
This is both due to our strong beliefs in open source software, as well as trying to be as open to modders as possible.
What would fit better as having modders use the same tools we use to build the game and maybe even have others bringing improvements into our tooling by contributing to the repository?
For now, I can't tell you too much about the tools, but I am currently fighting the mathematics of "riviera calibration", a tool that aims to creating car models from scratch (as we can't port them from existing games for legal reasons) as easy as painting by numbers! Essentially you start with a collection of reference images of your car and they compute the location of the cameras in relation to each other/the model. That way you can add them as views into blender and only need to drag vertices, so that they fit onto the image, painting by numbers.
So again, as you can imagine, the math involved isn't that easy, so wish me luck
Andraste Modding Framework
TLDR: Andraste is the framework I wrote primarly to mod tdu games, but in general it will apply to all games, and as such, support for TDU:SC is planned as well.
As the first preparation of that, I've worked on an automated build of our underlying hooking library EasyHook that is 64 bits. After that, I can work on 64bit and DX11 support for Andraste in general.
What can Andraste do today?
Primarly, you can use andraste to replace bnk files without touching your base game installation, so you can seamlessly add and remove mods without having to have 100 different game installs.
Besides that, if you know what you are doing, you can use the very same functionalities, to extend the game with scripts written in C#. As such, I've already created plugins to unlock hardcore mode, allow for bigger bnks (BigBnk) in map sectors, dumping and changing shaders on the fly.
What are future Andraste plans?
A lot of my to-do list is actually Andraste related, but progress there depends a lot on adoption/use of andraste by the community.
Goals that I have include:
- A simple GUI, comparable to Mod Organizer or other known Mod Managers
- Making mods available in a central repository, so you can download them from a browser, they know their dependencies and all.
- Conflict solving when having multiple mods (e.g. multiple car mods may have conflicting databases or conflicting bnk files). This may also be known as priority, in other mod loaders.
- Game specific conflict solving of the above (i.e. really _merging_ databases and common bank files, instead of choosing either or, which won't work in most cases).
- BNK Override mode: Have a folder with the contents of the bnk (e.g. a 2db texture) and just edit it and cause the game to reload the bnk (e.g. re-entering the dealership) and it will have the modified 2db file, essentially gettting rid of manually minibnkmanager'ing for every small change.
- 64bit support
- DX11 support, DX12 support (hooking, DearImGui)
As you can see, that's quite some stuff and I'd appreciate any help and especially also just actively trying to use Andraste in your workflow!
Feel free to download Andraste from below, documentation is at https://andrasteframework.github.io/
TDU Modding Studio, BNKPlorer, BigFilePacker, XMBPlorer
As said, I can't go too much into detail on those tools, but you can assume that I've written a plethora of tools, all revolving around TDU and covering nearly every asset format that has ever been seen.
As such, I've recently dug into "pmi" files, which, according to BEight, was a key missing part for his mapping ventures, so I'll be supplying an editor for those as well, to help him improving his great mapping even further. In theory, we could have a full coverage for almost every file format in a matter of months/years, but it's very low priority for me at the moment and it's also a mixed topic since I can't release TDU Modding Studio, as is.
If you're interested in working on some of the games file formats, however, feel free to contact me, I've always wanted to write a wiki containing all file formats and the general file structure (a lot of asset files follow the same outer structure, which helped me uncover pmi quite fast).
Yeah, so I guess here goes my wall of text,
as mentioned multiple times already, you know where to find me, if you want to comment on or ask anything.
I just wanted to put down all (or say a few of those that I can think of right now) of my projects, because I know for sure that a lot of you don't even know half of what I am doing but could be interested in a lot of those projects.
There are no comments to display.