Open miried opened 2 years ago
Although we have talked about this privately already, I will share my thoughts here for the public issue: Making a new client with a modern renderer is technically possible, but would require a lot of time to implement. All file structures must be interpreted fully and correctly. The commands that are sent via the scripts to the engine must be also interpreted and executed correctly. These should be researched and tested first.
IMHO that are indeed various scenarios we could consider (while some of them could be mixed). Among them:
Side note: implementing a new game should be cross-platform (i.e compilable on any with C++ or directly running on any with Java).
EDIT: one of the great things with rebuilding the game from scratch is that we could probably easily extends the scenario, adding characters, randomizing where there are located (same thing for some items)...
I once tested it with SDL and that seems to work really good. It gives everything needed and it natevely integrates the DF library just fine. However, its far from being finished. If someone can sit down and note what all these script commands might mean, that would be great help. Otherwise its a lot of guess work and many commands would be just ignored by the new interpreter because we simply dont know what they do (might be also obsolete because of disk reading or RAM effiency things).
Number 2 is an option of course, but I am not a fan of it. The scripting language used is actually really nice. Its very similar to VBA. I would rather want an interpreter that can use its commands, than hard coding the scripts into a new game environment. Its a lot of work, yes, but think about the advantage: a) you can just use the old scripts and it will work. b) you can use the script language also for new stuff and for modders. If the new client comes with a little editor (I might release mine since I dont have the time to finish it anyways), people just open up the script and put whatever logic they want. Its a nice feature and keeps the game alive.
I have released patches for the game already, exactly these errors like the A-Deck doors are fixed with that. Check out my other repository here: https://github.com/M3tox/TAOOT and download the "inofficial patch 3" You will also find the "extendMod" which brings Vlad back to the turkish bath (cut content). Mind that this patch only works with the steam or gog version. It was so broken that I was kinda forced releasing fixes for that.
It is also possible to add entire rooms. I have done that 2 years ago with the read and writing room. It was planned as a free mod, but because of problems with the doors it never came to release, but the room itself works.
Right now it is impossible for me to continue my work on that, but I might come back to it when I finished my university.
I have released patches for the game already, exactly these errors like the A-Deck doors are fixed with that. Check out my other repository here: https://github.com/M3tox/TAOOT
Sorry I meant the fore part of the promenade deck, on A-deck. In real life it was closed by a small wall (with a Window I remember correctly) and a door, in order to prevent the wind to come into it. It makes the fore part of the A-deck a closed promenade for first class passenger, a "workaround" since, at the difference of the Olympic, there was no public promenade on B-deck (a major change if you look at the plans).
Regarding the code, I was working on reverse engineering tools for this game (a .mov exporter almost completed)... paused it months ago, until a few days ago I found out your incredible job (I knew the existence of you patches, but somehow I missed the other repo with the export :sweat: ). Since I have already done some reverse-engineering on other games, there is still the challenge to work on TAOOT and contribute somehow. I share your opinion : it would be easier to reuse all the existing assets and extend them :+1: :thinking: .
I will look into these script to see it inspires me :laughing:
Thanks for writing this library, this looks really awesome!
Since you already spent time analyzing the asset format, I was wondering if you've thought about writing a new game client to run with the assets? It would be cool to be able to run the game in windowed mode, without the multicore problem, on different architectures etc.
Do you see any obstacles if one were to attempt this? Anyone else interested in this?