Having issue when trying to launch the LR, error message X The procedure entry point ucrtbase.terminate could not be located in the dynamic link library api-ms-win-crt-runtime-l1-1-0.dll. Tried all the methods but still couldn't launch the app.
I had this exact same error message in another program in Windows OS, and I had resolved it by installing Universal C Runtime driver. I don't have that problem happening at my end (and I'm working on Ubuntu OS) so I can't test this out, but give it a shot and let us know if it helped:
This program requires a small driver called "Universal C Runtime". It is usually covered in Windows Update and is already present in win10, but in case your system doesn't have it, please install it from here: -gb/help/2999226/update-for-universal-c-runtime-in-windows and then run the program. You may need to restart your system for the driver to be fully installed.
Without this, on running the exe you may get a popup error sayng: "Entry point not found: The procedure entry point ucrtbase.abort could not be located in the dynamic link library api-ms-win-crt-runtime-l1-1-0.dll"
I have more ideas:
*Extensive configuration settings, which include the following:
**Option to choose which levels and wads you want to include in a run.
**Option to turn on and off visual indicators (what direction player is being shot
at, monster making noises behind you. You might want to add the zdoom text
obituaries as well.
**Completely free mode: Only resources from Freedoom, other free content levels,
and OBLIGE levels will be able to run. This option would also be available as a
option for compiling, in which case loading of other wads is disabled.
**Censorship features (all graphics, non satanic graphics [think Quake Live], non
hell graphics; normal gore, reduced and/or recolored gore [think the GBA ports
of Doom, as well the idea of stuff like corpses on pikes removed],
no gore [think Chex Quest], no monsters), as well as password protection for
said features. I know this is a strange request, but since I was hoping that
this could be used as a screensaver in the vein of the old Windows 3d maze,
which a lot of children stared at for who knows how long...
**If a known map uses imagery which is restricted by those features, such levels
would be disabled from playback.
**OBLIGE random generation settings that would honor the censorship flags (for
example, if no monsters is enabled, all that would be generated are mazes.
**the ability to be run as a screensaver
I would love for an open source replacement of the 3d Maze screensaver with lots of options...
It's actually very bare bones now (this is why I didn't even bother setting a version number), so it may lose many levels due to any kinds of reasons. Most prominently they are:
- circle strafing into an acid pit (during combat only)
- bad combat skills
- running into an exploding barrel
- unawareness of jumping areas (not there yet)
If it wins, it probably means the level is too easy :)
I plan to improve this and upload better versions as I progress. As I do, I will update this thread. But what if this thread dies and the only one who posts updates is I? Will I be accused of bumping it, or is it accepted on this forum?
Anyway, feel free to try any easy skill level Doom 1 maps that don't involve jumping.
Maps with problems:
E1M3: circle-strafing into acid pits
E2M6: the exit switch is too deep and is not found because of this.
E3M4: I suspect it falls into the smashers to pick up invulnerability? Worst irony.
E3M6: needs to jump to get to the blue key
E4M2: jumping required
E4M9: jumping required
E4M6: jumping required
Can you maybe give a quick overview of the algorithms underlying it? I noticed it outputting JSON files (uh, OK?) and also that on one big map I tried it mostly worked fine but about 30 minutes in suddenly it slowed down to like 1 FPS, which I dunno if it was caused by a memory leak or what.
Also, I wish it would make player input totally cancel / override bot input, in case you're watching it go and want to help it along with something it's stuck at. Like in one map it got into an endless loop trying to pick up a backpack and running over a teleporter instead, and I had to, like, fight with the bot to try and make it avoid the damn thing.
**Censorship features (all graphics, non satanic graphics [think Quake Live], non
hell graphics; normal gore, reduced and/or recolored gore [think the GBA ports
of Doom, as well the idea of stuff like corpses on pikes removed],
no gore [think Chex Quest], no monsters), as well as password protection for
said features. I know this is a strange request, but since I was hoping that
this could be used as a screensaver in the vein of the old Windows 3d maze,
which a lot of children stared at for who knows how long...
On level setup (map init):
1. It generates a map in memory based on the wad map, with walls dilated to the player radius. Any areas thinner than 32 units get merged into contiguous walls. Currently solid static things are also dilated and baked into the map. A solid thing is considered static if none of its frames ever move it or make it passable. I tried to be comprehensive with this.
2. It runs GLBSP (by Andrew Apted) over this map to generate nodes (for easy lookup) and fully closed subsectors (to have convex leaves)
I plan to implement dynasegs and dynaBSP for ALL moving things (or at least barrels), and also save static geometry maps in separate WAD files, just like how the OpenGL ports do.
Type am_drawnodelines 1 in the console to see the bot map.
On first run, it can take awhile, but it's then cached in a file that's then gzipped.
Now that we have subsectors in a map where the player thing can be represented as a simple dot (because all obstacles have already been dilated by its radius), we can easily scan it like a graph.
On gameplay:
* the bot does Dijkstra graph search on the map, subsector by subsector. For each subsector, it checks if there are items to pick or switches worth pressing. If so, it makes a path.
* if the path gets obstructed or the bot is off its path, or the path goal is reached (item picked or linedef triggered), it starts a new search.
Some data is also saved:
* monster damage/kill (threat) ratio, so it will know which monsters are more dangerous.
* item effects table (the JSON you saw). In theory it should know how much an item gives and what is the maximum, so it won't try to pick up medikits it doesn't need.
The executable doesn't work on my 32-bit Windows 7. First it terminated with a message that "msvcp140.dll is missing". I downloaded the .dll from dll-files.com, placed it into AutoDoom's folder, and run the executable again. The executable terminated saying that "vcruntime140.dll is missing", and I repeated the download-place-retry procedure, and then for the third time after it said "api-ms-win-crt-runtime-l1-1-0.dll is missing". Since the fourth time, it keeps saying that "entry point of ucrtbase.abort couldn't be found in api-ms-win-crt-runtime-l1-1-0.dll". I even tried one different version of the .dll, no improvement.
So it moves between, like, subsector centroids? Do you do any path smoothing or anything? Also, how do you dilate 2-sided walls?
Also, what's the sort of logic for the bot's decision making? Does it just look for something in the immediate vicinity to do? If it can't see anything interesting, how does it decide where to move?
This qualifies as a mod? I thought it's a source port.
It actually uses adjoining segs as path nodes, but checks the subsectors for any objects of interest. So when it has to move, it picks the nearest point on the next seg, making the path quite straight.
Two-sided linedefs and corners are dilated using so-called "metasectors" (unrelated to Quasar's metaobjects). They are like Doom sectors, but hold references to multiple classic sectors. A metasector's floor is equivalent to its highest sector floor, and ceiling equivalent to its lowest sector ceiling. This lets the bot move correctly on ledges.
It chooses goals when it finds the first thing worth doing. There are a few priorities to consider, from the most important to the least:
1. Objects that are not in pits
2. Secret exits
3. Normal exits
4. Objects in pits
Exits are less priority than most objects because the bot wants to explore as much as possible. This is the same reason secret exits are preferred. Objects in pits have less priority than exits just to prevent the bot from falling to baits in acid pits. This was an issue in E1M3 where it fell for that secret door opener just at the start.
If there's nothing to do, it will just start trembling randomly. Doing this is actually necessary, because sometimes the bot can be stuck in a corner just outside the playable area, due to round-off errors. EDIT: if you saw the game getting real slow, it might have been because the bot got stuck at that point, trying each tic to find a goal in nearly the entire level.