Jump to content
The Dark Mod Forums

Recommended Posts

Posted
10 hours ago, nbohr1more said:

TheDarkModx64.exe +set fs_currentfm alberic3

Given how easy this is, and given that changing the mission involves restarting the game, it does strike me that it would make a lot of sense to build a separate launcher to act as the "front end" before the starting a mission.  This could even be built by anyone comfortable with GUI building in any programming language of their choice as a completely separate project.  PyQt maybe?  (Haven't built a GUI app in forever.)

Sounds like a fun experiment, and a rewrite of the mission downloader would not hurt (though it seems a lot better behaved than in the past, haven't had it crash on me recently ... though I have learnt not to tab away when it is running).

Posted

They still might just not like C#. Or rather use a language they know better. I, for example, would prefer Rust or even Haskell (yes, I'm serious).

  • Like 1
Posted

A little studying on this...

GarrettLoader used to launch TDM in addition to Thief games but was last updated in 2009 ( before TDM standalone ).

For some reason the open source spiritual successor "AngelLoader" never included a TDM option:

https://github.com/FenPhoenix/AngelLoader

@freyk how would you feel about porting your launcher work to AngelLoader and submitting a PR ( or forking AngelLoader to include your work )?

  • Like 1

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Posted (edited)

@nbohr1more

Sure, the sourcecode is online. But my launcher doesnt have a mission manager. And i dont have the time to add code to my launcher or port code to angeloader myself. Maybe someone would like to that, like @FenPhoenix

Because, in the state the launcher is in now, It is just a proof of concept and a sollution for solving some userexperience problems. Download the binary (or sourcecode) and see it for yourself.

Edited by freyk

Info: My portfolio and darkmod graphical installer
Amnesty for Bikerdude!

Posted (edited)

Hello all. Author of AngelLoader here.

There were never any plans to support TDM in AngelLoader, as I figured the in-game system was adequate enough. Adding TDM support would not be impossible, of course, but would require quite a lot of work to shoehorn it into a loader that's mostly designed around NewDark games and the way they work and are structured. For example, TDM doesn't really have the concept of some external "FM archive folder", it just keeps the FMs in an "fms" subdir, doesn't it? And it doesn't really have the concept of a set of "local installed FMs" vs a set of "local not-installed FMs", but rather just "existent FMs and then one that's 'the current one'". Or something similar anyway. I'm sure there's lots more differences too.

Also, if you wanted to download new FMs, you'd have to go in-game to do it anyway, then go back out to your external loader, which seems kinda awkward. I mean unless the external loader also duplicated the download functionality so it could replace the in-game one completely... but honestly that's more than I'm willing to take on.

Also, regarding Linux, AngelLoader pretty much can't be made to run on it natively for reasons, unless you're one of the lucky ones who can manage to get it working on Wine (some can, some can't - I haven't been able to). It's tied to WinForms because of the RichTextBox (it needs to be able to show .rtf files) and .NET kinda has no UI framework for Linux, not even MAUI supports it... there's Mono but its WinForms isn't a perfect clone either... I can't move to modern .NET post-Framework versions either because the dark theming breaks. WPF has a RichTextBox but it's unusably slow. etc. It's a whole mess.

So, really, given AngelLoader has to support rtf and a bunch of other legacy Windows-y stuff for its Windows-y games, and it's designed with Thief-y assumptions, it would probably be better to write a new loader from scratch that only does TDM and can run cross-platform. You'd get rid of all the irrelevant complexity of a Thief series loader (including the need to display rtf!) and you could use Qt or something to have a nice uniform cross-platform look and all. But I'm not a C++ coder, I only know C# and just barely enough C++ to fumble out some simple things, so I'm not the one to do it.

Anyway, AngelLoader is open-source MIT so anyone can feel free to fork, learn from, or take whatever they find useful from it.

Edited by FenPhoenix
  • Thanks 1
Posted
16 hours ago, Baal said:

They still might just not like C#. Or rather use a language they know better.

Maybe use html5 via Electron. I have not worked with it, but having to work with html, css for the ui seems easier and something more people have knowledge of.

Posted
2 minutes ago, datiswous said:

Why is that format chosen? For easy editing purposes?

FMs have used it since time immemorial; I have to support it. It's used when authors want to make a fancy readme, ie. with colors, bold/italic, images, centered text, links, etc.

Posted
On 10/27/2022 at 11:41 AM, Xolvix said:

Just make sure it's rewritten using Rust, that's what all the cool kids are using these days apparently.

I'm a big fan of Rust. It's an well-designed language with excellent tooling. But it doesn't have great GUI support yet (although there are a few toolkits available), and integrating it into a larger C++ application is non-trivial (although possible).

Designing a new loader from scratch in Rust with an Electron-based front-end — that might actually be possible, although it would probably need somebody with more than my beginner-level Rust knowledge.

  • Like 1
Posted

Since you can launch from command line, it will be relatively easy to make a launcher . I have already started and plan to have it at least slightly usable in a day or two.

  • Like 1
Posted (edited)

Yes that is true, there are many startup arguments you can use and files you can edit.

Writing the manager from scratch is easy. I got the parts of my launcher working in a few minutes/hours. I dont know and want to fix bugs in the internal downloader.

To me, the internal mission downloader is great for getting/updating/inforeading missions, but not nice to write to notes in it, because it works very slow.

I prefer a more "native" external application like notepad, so i can make a note much quicker, can easely switch applications, etc. And install/update the missions without opening the game.

I only see that the mission manager-parts will take some hours. Because we need to search in files where to download the fms. Manage the database of the launcher, etc.

And i dont see the launcher replaceing internal parts of the game. It is just an external tool, like the tdm installer. (That also updates tdm-files, outside the game)

Edited by freyk
  • Like 1

Info: My portfolio and darkmod graphical installer
Amnesty for Bikerdude!

Posted (edited)

The internal TDM downloader saves a simple text file called missions.tdminfo in which things like downloaded_version, last_play_date, mission_completed and mission_loot_collected are stored which are read from the main game and shown there. Shouldn't it be possible to add some kind of commentary or at least a rating into this very file in the same way?

 

Edited by wesp5
Posted
12 hours ago, datiswous said:

Maybe use html5 via Electron. I have not worked with it, but having to work with html, css for the ui seems easier and something more people have knowledge of.

Unfortunately this is also the reason we're getting slower applications with greater memory requirements. People don't want to build native applications anymore, they want languages originally intended for web development but repurposed for the desktop via Electron because it's... easier. Somehow we managed to make zippy applications using C/C++ for ages (even cross-platform using toolkits like Qt/GTK) but now that's IMPOSSIBLE apparently.

/old-man rant

  • Like 1

A word of warning, Agent Denton. This was a simulated experience; real LAMs will not be so forgiving.

Posted

So, I will use the missions.tdminfo to get info only out of it and then gather the rest from each FM directory as much is available. I will create my own config file with the rankings and notes. 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recent Status Updates

    • datiswous

      I moved from Manjaro Linux (rolling release) to Linux Mint (LTS). One of the reasons was that I found the updates a bit too often and long. But now on Mint I get updates every day, although they're usually small updates.
      · 3 replies
    • JackFarmer

      "Hidden Hands: Vitalic Fever" - new update available including subtitles & compressed briefing video (thanks to @datiswous) and several fixes.
      · 0 replies
    • Wolfmond

      🇬🇧

      2025-04-20
      I'd like to track my level design progress a bit more often now, so I'm using the feed in my profile here.
      I've been working intensively on Springheel's YouTube course over the past few days. I'm currently up to lesson 8. There is so much information that needs to be processed and practiced. 
      I have started to create my own house. As I don't have the imagination to create a good floor plan, I grabbed a floor plan generator from Watabou and experimented with it. I chose a floor plan that I will modify slightly, but at least I now have an initial idea. 
      I used two guards as a measuring tape: The rooms are two guards high. It turned out that I can simply double the number of boxes in DarkRadiant in grid size 8 that are drawn in the floor plan. 
      I practiced the simplest things on the floor plan first. Drawing walls, cutting walls, inserting doors, cutting out frames, creating VisPortals, furnishing rooms.
      I have had my first success in creating a book. Creating a book was easier than I thought. I have a few ideas with books. The level I'm creating will be more or less a chill level, just for me, where I'll try out a few things. I don't have an idea for my own mission yet. I want to start small first.
      For the cellar, I wanted to have a second entrance, which should be on the outside. I'm fascinated by these basement doors from the USA, I think they're called Bilco basement doors. They are very unusual in Germany, but this type of access is sometimes used for deliveries to restaurants etc., where barrels can be rolled or lifted into the cellar. 
      I used two Hatch Doors, but they got completely disoriented after turning. I have since got them reasonably tamed. It's not perfect, but it's acceptable. 
      In the cellar today I experimented with a trap door that leads to a shaft system. The rooms aren't practically finished yet, but I want to continue working on the floor plan for now. I'll be starting on the upper floor very soon.

      __________________________________________________________________________________
      🇩🇪

      2025-04-20

      Ich möchte nun mal öfters ein bisschen meinen Werdegang beim Leveldesign tracken, dazu nutze ich hier den Feed in meinem Profil.
      Ich habe mich in den vergangenen Tagen intensiv mit dem Youtube-Kurs von Springheel beschäftigt. Aktuell bin ich bis zu Lektion 8 gekommen. Das sind so viele Informationen, die erstmal verarbeitet werden wollen und trainiert werden wollen. 

      Ich habe mich daran gemacht, ein eigenes Haus zu erstellen. Da mir die Fantasie fehlt, einen guten Raumplan zu erstellen, habe ich mir einen Grundrissgenerator von Watabou geschnappt und damit experimentiert. Ich habe mich für einen Grundriss entschieden, den ich noch leicht abwandeln werde, aber zumindest habe ich nun eine erste Idee. 

      Als Maßband habe ich zwei Wächter genommen: Die Räume sind zwei Wächter hoch. Es hat sich herausgestellt, dass ich in DarkRadiant in Gittergröße 8 einfach die doppelte Anzahl an Kästchen übernehmen kann, die im Grundriss eingezeichnet sind. 

      Ich habe bei dem Grundriss erstmal die einfachsten Sachen geübt. Wände ziehen, Wände zerschneiden, Türen einsetzen, Zargen herausschneiden, VisPortals erstellen, Räume einrichten.

      Ich habe erste Erfolge mit einem Buch gehabt. Das Erstellen eines Buchs ging leichter als gedacht. Ich habe ein paar Ideen mit Bücher. Das Level, das ich gerade erstelle, wird mehr oder weniger ein Chill-Level, einfach nur für mich, bei dem ich ein paar Sachen ausprobieren werde. Ich habe noch keine Idee für eine eigene Mission. Ich möchte erst einmal klein anfangen.

      Beim Keller wollte ich gerne einen zweiten Zugang haben, der sich außen befinden soll. Mich faszinieren diese Kellertüren aus den USA, Bilco basement doors heißen die, glaube ich. Diese sind in Deutschland sehr unüblich, diese Art von Zugängen gibt es aber manchmal zur Anlieferung bei Restaurants etc., wo Fässer dann in den Keller gerollt oder gehoben werden können. 
      Ich habe zwei Hatch Doors verwendet, die allerdings nach dem Drehen vollkommen aus dem Ruder liefen. Inzwischen habe ich sie einigermaßen gebändigt bekommen. Es ist nicht perfekt, aber annehmbar. 
      Im Keller habe ich heute mit einer Falltür experimentiert, die zu einem Schachtsystem führt. Die Räume sind noch quasi nicht eingerichtet, aber ich möchte erstmal am Grundriss weiterarbeiten. In Kürze fange ich das Obergeschoss an.



      · 2 replies
    • JackFarmer

      On a lighter note, thanks to my cat-like reflexes, my superior puzzle skills and my perfect memory, I was able to beat the remastered version of "Tomb Raider: The Last Revelation" in a new superhuman record time of 23 h : 35 m, worship me!
      · 3 replies
    • Goblin of Akenash

      My mapping discord if anyone is interested, its more of a general modding thing rather than just for TDM 
      https://discord.gg/T4Jt4DdmUb

       
      · 0 replies
×
×
  • Create New...