Jump to content
The Dark Mod Forums

stgatilov

Active Developer
  • Posts

    6739
  • Joined

  • Last visited

  • Days Won

    231

Everything posted by stgatilov

  1. Speaking of CMakeLists changes, you can minimize the changes on your side, then share the patch. I'll see what you had problems with. Maybe I'll find a better way to fix something, maybe I'll apply it "as is" under appropriate option.
  2. Applied the second commit as svn rev 9892. Also, I accidentally noticed that tdm_installer build is now broken because I changed the name of curl cmake package, so I changed that. We take libs from conan, so we have to use its convention: now we do "find_package(CURL)" everywhere.
  3. I applied the first patch with minor changes in svn rev 9890. Regarding the second one: Why did you add cast to (const uint8_t *) in Hasher::Update? It seems that blake2s_update accepts const void * regardless of platform... UPDATE: It turns out that older versions of BLAKE2 received const uint8_t * (commit).
  4. Because inlined geometry of a model goes through dmap processing. The more such models you have, the longer dmap takes. Chance of complicated geometric algorithms failing also increases. Are there any benefits of inlining? One less entity is not a reason any more (and probably combining close models into one is better than inlining models). Yes, dmap can remove some invisible geometry and precompute stencil shadows. But with the costs outlined above.
  5. If you travel by air, then you have to fill customs declarations when you come to a foreign country. Or go through green corridor, implicitly saying that you have nothing to declare. It has nothing to do with airlines. Given that we will have two laptops and a miniPC for three people, I think carrying excess computer parts can cause issues on the customs. As far as I understand, one laptop per person is considered OK by customs, but not more.
  6. At this moment I consider two options: Send it via international post to one of my future colleagues Take it with me to airplane I'm only considering taking the chassis and everything inside it. I'll definitely let monitor, keyword/mouse, speakers rot. Regarding international post: does anyone have experience sending PC abroad? I'm trying to understand how to fill customs declaration, and how to specify cost. For instance, how to estimate cost of component which is no longer sold (the oldest piece is SB Audigy 4, which is about 15 years old)...
  7. You need to pass +set com_allowConsole 1 as command line parameter. You can create shortcut of batch/shell file for that. Changelog is at the top of this thread, as usual.
  8. Ok, it seems that while using EXE as DLL is possible, some pretty artificial issues make this path very hacky: https://www.codeproject.com/Articles/1045674/Load-EXE-as-DLL-Mission-Possible And adding optional build with DLLs but deploying fully static build would mean that you'll have to distribute this DLL yourself, i.e. you cannot load this DLL from user's TDM installation.
  9. One of the problems with DLL-based build is having to use dynamic CRT (recall the nightmare of two separate CRTs when Doom 3 was closed source). In this case we have to do one of: Put CRT dlls into game directory. This was not an option before 32-bit deprecation because it did not allow 32-bit and 64-bit executables to coexist in the same directory. And changing paths conventions in TDM is something I'd better not attempt Run VCRedist installer on player's machine. I tried doing that but it did not work well... Maybe because I wanted to avoid running the installer when it's already installed, and I did not manage to properly check if compatible version is installed. Anyway, there were a lot of complaints about this thing, so I simply returned full-static build. Maybe it is possible to have an option (CMake-only) to build something dynamic, but that option would probably get broken regularly, because everyone would forget about it. Yes, it makes sense to keep interface pure-C. You won't be able to dynamically load exported C++ function because of name mangling anyway. But are you sure you will be able to expose much stuff without using complex types? By the way, it is not necessary to create any kind of DLL to do that. In principle, DarkRadiant can import the EXE file as module and use its exported functions! After all, entry point is the only difference between DLL and EXE. Of course, doing so would mean mapping 18 MB file onto DR's virtual memory, but I don't think it is a big problem (well, maybe code cache would suffer because relevant TDM functions would be less localized). Running dmap is now available with the "game connection" feature. Of course, it is more messy and fragile than DLL call, but "game connection" needs to exist anyway (and dmapping in game connection is a bit faster). Ehm... To be honest... we discussed that we should probably reimplement most of this system But I agree that it would be very hard to force myself doing that It seems that writing English full-text in translation files instead of relying on these #str_XXX keywords would be more comfortable for mappers in 99% of the cases, and additional "labels" added to the original text would resolve ambiguity in the rest 1%.
  10. I think dmap uses materials/decls/images only because materials are assigned to geometry. In fact, it does not need actual images, it only needs material flags to determine if material is opaque or not. Of course, you will have to drag along the whole idlib, and probably all the common/sys classes as well: idList-s are now all over the place, and various common->Printf/Warning are used a lot too. By the way, recently I merged idlib code into TDM project... and most likely it has to be extracted back in order to be used in DarkRadiant. On the other hand, won't moving dmap to DarkRadiant cause more problems than if would solve? For instance, dmap sometimes is changed. One such change during 2.08 was quite breaking. Dmap from TDM is not compatible with dmap from Doom 3 and vice versa (a map which compiles on one game can fail with leak on the other one). How would mappers understand which version they use? What if dmap changes are tied to the changes in the rest of the game? Extracting renderer frontend would be much harder I suppose. Without it, you can just read .proc files and implement your own areas/portals pruning code.
  11. Created and fixed: 5928 After inspecting this savegame and finding the most likely cause, I found a reliable way to reproduce it. It only happens if you load the game in a fresh TDM process, and if you saved game while holding/stringing the bow. Hopefully, this won't happen in future dev builds and in 2.11. Also, there is a minor probability that this change will fix crashes too, if they happened due to thread-unsafety of cvars system.
  12. Putting a kid into luggage indeed saves from a lot of headache Maybe I'll ask someone to ship my PC to me, but this is rather unlikely.
  13. dev16481-9881 is available. There are two reasons for this dev build: major update of compiler and third parties releasing all the changes which happened during 2.10 beta but did not get into release
  14. Relocation. The only way to take the desktop PC is to take it along with me on the flight (as luggage), but I'm pretty sure there would be a lot of other things to carry.
  15. Did you mean discrete graphics card?
  16. Post the savefile. Of course, that would only help if it is reproducible from a clean TDM run. UPDATE: Also, you can record crashdump, upload it somewhere, and share the link.
  17. I will probably have to get rid of my desktop PC, and I'm worried about how to work on TDM without it. Obviously, I need a laptop, but: Laptops without discrete GPU will probably run TDM too slowly. Can anyone share positive experience about that? Laptops with discrete GPU (gaming laptops) are often unreliable. I'm worried that they die too quickly...
  18. If someone is eager to improve dhewm3 by taking changes from TDM, I can review what I personally did, and provide a list of bugtracker issues and probably commits which are worth porting. But I won't spend my time on actually cherry-picking them. One issue is that goal of dhewm3 is preservation of Doom 3 game. I recall a few changes, which make perfect sense or fix plain bugs, but can actually break maps, and such changes probably won't fit dhewm3 at all.
  19. Yes, resumable downloads are not implemented yet. The main problem is that if you kill tdm_installer with task manager, you will have corrupted data on disk. Trying to use this data on future run will cause unavoidable errors. Aside from that, I'm not sure these __download__XXX.pk4 files are valid zip archives when they are saved, which means that some more code has to be added to support loading them. And yes, leaving all these weird files after cancelled installation might confuse user too. I think the main problem here is that tdm_installer fails after downloading data. Normally, this should not happen unless mirrors are screwed, or you have software/hardware problems. And I think it happened very rarely in the past, but there were several reports of such errors lately. I could not reproduce the error, and thus far nobody has even shared a log file of such an error.
  20. Someone should finally capture full memory dump at the moment of crash. Here are instructions on Windows: https://wiki.thedarkmod.com/index.php?title=Save_a_Memory_Dump_for_debugging_Crashes It is also possible on Linux, but we don't have description anywhere, and investigating such dumps is known to be painful sometimes... but it is indeed possible.
  21. I played Cry of Fear, and it is great horror... in its own sense. It is scary in a very different way than e.g. Amnesia. And it is very tiresome to play... I could not play for long time without break, especially when I started. Jump scares are plenty, and probably the worst one is almost at the beginning As for Afraid of Monsters, I only watched someone playing it, and it looked very similar to old-style survival horrors in a bad way: you have no idea where to go and have no resources to survive, which becomes annoying after 10-20 deaths.
  22. Glad you managed to fix that. If the error happens on the very first page during "Analyzing XXX", then removing the culprit file is the best thing to do. Replacing it with the same file from different installation is also OK.
  23. Thank you for finding and testing this change! I have committed it at svn rev 9879.
×
×
  • Create New...