Jump to content
The Dark Mod Forums
Sign in to follow this  
freyk

Testing new tdm installer - 201807

Recommended Posts

I'll test it in the nearest future.

 

Test - vc++ studio installer

In this testversion, the installer downloads only the vc++ installation package, for the detected 32 of 64 bit system
Start installer, select option "test - install vc++ shortcut".
The installer downloads the installation package into the darkmod folder.
Check if the vc++ packages is downloaded for your system (if it is x86 or 64 bit)

Note that tdm_update is expected to install VC redist package by itself, so theoretically this step is unnecessary in your installer.

Although I'm not sure how well it works now --- I plan to test it on clean Windows VMs. Some duplication on this part won't hurt.

 

Anyway, please don't call this part "Install Visual C++", because "Visual C++" usually means the whole multigigabyte software including compiler, IDE, Windows SDK, and tons of other stuff.

I believe this thing is called "VC++ Redistributable", or just VC redist for short.

  • Like 1

Share this post


Link to post
Share on other sites

Tried it on an TDM unaware Win10Pro 64bit machine.

 

After the two Windows nag-screens, it installed itself into the correct 64bit program file directory.

 

I've got three Desktop icons, The Dark Mod 32&64bit and the updater, all pointing to the right directory.

 

Users have full access to the installation folder, creation and deletion of files and folders works. Other program folders seem unaffected. The later downloads also worked.

 

The VC++ step got skipped.

 

The steam integration shows the community page and with "add game", you could select TDM.

 

Even though the entry is named The Dark Mod-64bit, it is alphabetically listed under the "D" section. You should probably change the default folder's name to the_dark_mod or something like that.

 

Launching the game through the desktop icons worked.

 

Launching via steam also works, steam overlay also seems to work.

 

I would have liked to try it on a fresh Win7 system, but time was running out. I won't have access to a flat-rate machine until Sunday...

  • Like 1

Share this post


Link to post
Share on other sites

Even though the entry is named The Dark Mod-64bit, it is alphabetically listed under the "D" section. You should probably change the default folder's name to the_dark_mod or something like that.

This is common for games on Steam, so I don't think it is a TDM issue. For example Skyrim appears under "E" for Elder scrolls or "The Long Dark" appears undder "L". It is quite common to ignore the article for sorting as this will clutter the letter "T" (or "D" for German games).

Share this post


Link to post
Share on other sites

This is common for games on Steam, so I don't think it is a TDM issue. For example Skyrim appears under "E" for Elder scrolls or "The Long Dark" appears undder "L". It is quite common to ignore the article for sorting as this will clutter the letter "T" (or "D" for German games).

 

Had to try that out ;)

 

When I run the installer and default to a directory named "thedarkmod", steam will list tdm under "T". No issue, just a matter of taste, I reckon. One can prompt steam to list wherever, by choosing the folder name.

 

What's also interesting, tdm was not listed, when I started steam on this machine. I thought that the different program folder was the issue - I installed tdm on the other machine to the installer default directory, on this machine it sits in a different path. This seems not to be the case. After adding the game, then closing down steam, I renamed the folder. Starting steam still showed tdm, but couldn't launch it. Looks like the Library info is stored locally, which is a bit odd, since otherwise I always see my complete library, regardless of what is installed locally.

 

Anyways, installing VC++ was again skipped, but this machine has a previous installation, so that might be normal.

Edited by s.urfer

Share this post


Link to post
Share on other sites

Thank you for testing the installer, s.urfer (and all).

It seems that all is working, what i have in mind. :D

 

During the vc++ installation, the installer detects if you need the installation of this package.

If you dont, this procedure going to be skipped. You can check this in the installation details.

You can find it, After you specify the installation path and hit the install button.

After this, you see the installation screen and you can click on the details button.

Here you will see the installation details.

The installation details are folded in, because it can scare people. Or shall i fold it out, during installation?

 

About those windows nagscreens.

They are normal, if windows declares im not a official app publisher (and dont want to pay a publishing licence)

 

@stgatilov, i going to change the name in the list.

Edited by freyk
  • Like 1

Share this post


Link to post
Share on other sites

Tested on Windows 7 32-bit in virtual machine.

 

Write permissions to darkmod folder (on the users selection)

The installer by default chose directory in Program Files, which of course was not allowed to be accessed initially without admin rights.

After installation, I the access it granted (I see it in Security dialogs, I can edit the txt files without UAC intervention, tdm_update downloads files there properly).

So this part works for me.

 

VC studio installer (only download, for now)

32-bit version was downloaded, but not installed.

Also, it is the wrong version: it is named vc_redist.x86.exe and has size 14 MB.

The installer downloaded by tdm_update is named vc_redist.x86.exe and has size 6 MB.

In fact, your installer is for MSVC2017: it will work for 2.07, but won't work for 2.06.

 

Steam nonsteam-game shortcuts.

I have no steam in my VM.

 

Aside from that, all files are downloaded properly.

Unfortunately, I cannot check anything in-game.

 

The shortcuts are created on desktop, and point properly both to the game itself and to updater.

The uninstaller works properly (it removes the whole darkmod directory).

 

Share this post


Link to post
Share on other sites

I uploaded a new version of this installer, version 20181125 on my drive for testing.

(and updated the sourcecode on my github repo)

 

The most important feature of this version is that

it detects if the tdm updater is sitting next to the installer and use that updater.

So it can be included in TDM's main package for the tdm-updater windows (tdm_update_win.zip) in the future.

 

This version detects if there is a tdm updater, next to the installer.

If so, the installer copies that updater to the tdm gamefolder.

If not, it downloads the current version of the updater to the tdm gamefolder

If he cannot find the updater online, he extracts an old version of the updater to the tdm gamefolder.

This version (and the future versions) of installer doesnt have to be recompiled anymore, when there is a new version of the updater.

 

My question now is shall i create an ini-file for it, with settings like the current location of the online updater?

And what must the updater do, when he cannot find the updater online.

Edited by freyk
  • Like 3

Share this post


Link to post
Share on other sites

Sounds great!

 

My question now is shall i create an ini-file for it, with settings like the current location of the online updater?
And what must the updater do, when he cannot find the updater online.

I think that the current location of updater can be hardcoded.

 

For instance, the location of tdm_mirrors.txt file is hardcoded inside tdm_update:

const char* const TDM_MIRRORS_FILE = "tdm_mirrors.txt";
const char* const TDM_MIRRORS_SERVERS[] = { 
  "http://mirrors.thedarkmod.com/",
  "http://www.thedarkmod.com/update/",
  ""
};

So tdm_update goes to hardcoded paths to download tdm_mirrors.txt if it does not have one nearby.

After that it uses the mirrors written into that file. Some sort of bootstrapping here :D

I think it's better to ask Grayman or Springheel: they can say how often the location of tdm_update.exe on website have changed over years.

 

If you cannot find updater online, then... report error, I guess? :laugh:

Share this post


Link to post
Share on other sites

thanks.
im looking at the future where are no tdm volunteers who want to compile our code

(but the code/binaries are somewhere outthere)
So "frequently" changed online paths and names shouldnt be hardcoded.
(you can hardcode a mirrorlist, but existing connections will shrink overtime)

 

For example, i dont know how long taaki's last.

So a general location, like www.thedarkmod.com/downloads/tdm_update_win.zip, with a dynamic location selector on the back would last longer.

Edited by freyk

Share this post


Link to post
Share on other sites

For example, i dont know how long taaki's last.

So a general location, like www.thedarkmod.com/downloads/tdm_update_win.zip, with a dynamic location selector on the back would last longer.

As far as I remember, taaaki is not the first one who hosts TDM server.

As long as someone controls thedarkmod.com domain, it is always possible to migrate to new hosting without changing urls.

 

You can of course create an ini file, but wouldn't it make your installer as complicated as tdm_update current is (in the very end)?

Share this post


Link to post
Share on other sites

I'd like to include your installer into beta testing phase.

 

For this to happen, it is necessary to be able to set --keep-mirrors parameter to tdm_update.

1) Can the installer itself do that (some parameter, checkbox, ini-file)?

2) Can the user set the checkbox manually when tdm_update kicks in?

Share this post


Link to post
Share on other sites
1) yes the installer can do that. the installer can run the updater with those parameters. but for this i need to recompile the installer.

Not very good --- that's call this plan B :laugh:

 

2)which checkbox?

the keepmirrors? if so, i can create another checkbox for that in the installer.

When GUI version of tdm_update is run, user can click Advanced Options and set checkbox there.

This is how beta testers stay on testing mirror.

Perhaps the most right way would be to instruct beta-testers to enable the same checkbox (as in direct install) when using your installer?

Of course, it won't be needed for real players.

Share this post


Link to post
Share on other sites

I am a Bit concerned that using the folder "Program files" might hinder people trying out Dark Radiant because that folder contains spaces and has special user accessrights, which both caused issues with DR in the past.

Share this post


Link to post
Share on other sites

The installer solved that problem by setting the write permission to tdm folder for all users. (edit: full access)

And for the spaces, the user can select an other folder if they want.

how about using Windows environment variables in the path in darkradiant?

 

The installer only starts the updater and not the update process.

(and it uses at firstrun the no-self update parameter, to avoid problems.)

The user can select the keep-mirrors option in the updater, if they want to.

For more info see the code of the installation script of the installer

Edited by freyk
  • Like 1

Share this post


Link to post
Share on other sites

Ah, that write-permission thing is good.

 

Regarding the spaces, maybe a mapper could check if this even still is an issue. If it isn't, we're all good. If it is, the environment variable will not be a solution because it will be resolved to an actual path that contains the spaces again by the OS. In that case, I would rather issue a warning that paths with spaces might prevent you from getting a proper DR setup.

Share this post


Link to post
Share on other sites

I have built from source code using nsis 3.04.

I took tdm_update from the 2.07 beta.

I'll instruct beta testers to put tdm_mirrors into the proper place.

Share this post


Link to post
Share on other sites

Well, I'd like to ask here:

 

2a. At the end of the installation procedure, untick the checkbox that it starts the updater after the installation. So it doesnt start the updater.
Download and place the mirrors file in the tdm folder and then start the updater.
follow 4 and 5.

As far as I see it, it is only important to ensure that tdm_mirrors.txt is near tdm_update.exe by the time you click "Continue>>" in GUI updater.

So it does not matter if [your installer starts tdm_update, user puts tdm_mirrors.txt at proper place, user continues] or [your installer ends, user puts tdm_mirrors.txt, user starts tdm_update, user clicks continue].

Since user anyway has to go to advanced options and click a checkbox there, I decided to add the second "manual" thing at the same place.

Share this post


Link to post
Share on other sites

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.

Sign in to follow this  

×
×
  • Create New...