|
Post by zaimoni on Aug 19, 2018 5:19:46 GMT
Unstable release 2018-08-18 has been cut. Only the main ZIP is being provided: several *.CSV are incompatible with 2018-04-25. I have tried to ram in all foreseeable sound and graphics file changes with this release.
Changes since 2018-04-25:
Many RS Alpha 10 changes merged in. If it's not in and not mentioned, assume that there's a conflict or technical interaction with a vaporware RS Revived mechanic. * This does include the park shed and residential outdoor rooms changes, and corresponding map objects. * Invulnerability as debug feature, and guarantee of PC sighting of NPCs will not be in. * The negotiation interface is wanted, but did not make it due to time cost.
Far-look now has run and walk to waypoint subcommands.
Breaking objects now triggers a self-order that also affects those followers you are in communication with.
Map generation: Complete subway network at district size 40+
Father Time has his sprite now. He'll greet you near New Year's Day on game open, just like Santaman greets you near Christmas. Unfortunately, the subway interacted badly with the Dijkstra pathfinder -- that's a lot of low-plausibility locations for the floodfill to expand into. I have some ideas of how to mitigate this further, but they're high-risk. Worst-case turn times for the latest test game were during Day 0 hour 12 and Day 1 hour 1; debug build exceeded 90 seconds both times.
You'll notice a CPU stat -- that is how long the processor has been running before the player's turn comes up. I haven't had time to design an appropriate indicator; empirically, it is your turn when you have more than 0 energy and your stamina bar is only a single color (that is, the "change in stamina" color coding is not showing).
The graphical glitches regarding inventory vs. hotkeys was noticed shortly before release. Fixing them is not a high priority.
|
|
|
Post by zaimoni on Aug 20, 2018 19:11:19 GMT
Crash on viewing options screen reported on Discord. Revised upload should be available within 12 hours or so. EDIT Revised upload is on-server as 2018-08-20 unstable.
|
|
|
Post by zaimoni on Aug 30, 2018 4:50:11 GMT
Adjusting incremental release process: splitting the media-only archive into media-no-sound and sound-only for August 18, 2018 onwards. I'm going to have to cut another unstable release before doing anything high risk; there are two fixes in RS Alpha 10.1 that are "critical" relating to traps.
|
|
|
Post by dlapine on Sept 7, 2018 2:10:59 GMT
Thanks Zaimoni for doing an update of the original rogue survivor.
Running the current unstable 0.10.0 with defaults, I'm seeing an average of 20 cpu secs per turn. That's with 3 cops in the area. It's pretty much unplayable at the moment at that speed. I tried the older variants and I had to go all the way back to RC6 to get one that closer to the <1 sec delay. I'm on an AMD Ryen 8 core (HT turned off) and I'm 100% on 4 of the 8 cores during the wait. Is this expected?
|
|
|
Post by zaimoni on Sept 8, 2018 0:23:24 GMT
4 of 8 cores at 100% is not expected; the four-core development system is only using 1 core at 100% and trace amounts of CPU elsewhere (so never above 26%-27%).
Yes, 17-21 seconds/turn is expected at about 1 hour in on the development machine for the test game RogueSurvivor --seed=1179775419 --city=5,50 --spawn=CLFFIREARMS and its close relatives. Most testing backing the August 20 release was with RogueSurvivor --seed=1179775419 --city=5,50 --spawn=CLFFIREARMS --socrates-daimon --subway-cop . (Socrates' daimon provides a cheat mapper similar to the savefile scanner for RS Alpha 9; this particular seed does have a subway station in C2 and the normal PC spawns there, so it's a 2-PC game)
Cf. the CPU stat in the very latest release: it directly measures this particular issue. 19-25 seconds seems to be the equilibrium level past the very early game, when nothing else is going on that triggers massive cross-map pathfinding. (CHAR Guards betraying the police triggers 40-50 delays relating to the resupply behavior; the corresponding delays after breaching That Location can reach 90-100 seconds, again from the resupply behavior. This is one of two time costs that I can try to mitigate with a high-risk strategy that could backfire impressively.)
In terms of CPU drain it's the total number of cops in the game that matter (cross-map pathfinding), with the number of "distant followers" (those that need cross-map finding to their leader) as a secondary influence.
RC 6 is the last version meant to be save-compatible and gameplay-compatible with RS Alpha 9, so it both doesn't have those features, and does have the option to let non-PC districts lag behind the PC district by 100+ turns even when simulating.
|
|
|
Post by burbank on Dec 14, 2018 15:12:02 GMT
Zaimoni,
Im often having trouble with loading save files, both in mid-game and from the start screen. i am using 0.9.8, but i've had trouble with this in previous releases also. otherwise, 0.9.8 has been the quickest and most stable release running on my machine thus far. would my log file be of any use to you? where can i send it. Thanks for your continued work!
|
|
|
Post by zaimoni on Dec 14, 2018 22:12:29 GMT
What kind of trouble? If it's just "slow" then that's expected and very invasive reimplementations (that belong only in unstable) are needed to even try to do anything (file load is paralyzed by the garbage collector and the only real solution is to shrink the savefile size). If there are more substantial issues (e.g., savegame crashes out on loading or other weirdness) I can take a look at the logfile and make an educated guess as to what is going on. Private message would be fine.
I'm not set up to properly maintain 0.9.8 (would have to create yet another branch specifically for that, but the real problem is that I'm in the middle of a paid work spike that is suppressing work on RS Revived in general).
|
|
|
Post by burbank on Dec 16, 2018 1:33:12 GMT
ah, sorry for being vague. by trouble i mean the save fails to load. a message about being corrupted or non existent is displayed. its more common than not, though i did just have a 19 hour run that worked no problem. got an unhanded exception when i killed myself by picking up a grenade whose timer seemed to be frozen. it refused to detonate until i placed it into my inventory. i'll send you the log file with this death, then try to recreate the save troubles a few times and send you that one also.
|
|
|
Post by zaimoni on Dec 16, 2018 18:33:46 GMT
HMM...acknowledged. It's likely the grenade not counting down on the map, and the savefile issues, are from the same problem.
Grenade timing logic was one of the things I had to be technically invasive about altering when implementing cross-district line of sight, etc. but that's specific to the 0.10.0 release series.
|
|
|
Post by zaimoni on Dec 28, 2018 19:54:36 GMT
0.9.8/grenades: looks like this was designed out of 0.10.0 unstable with a savefile breaking change. (The map class is on hand-crafted save-loading, so I could do an importer for this to bypass the policy of not breaking savefiles within stable releases.)
Trunk was updated yesterday. The AI change did improve the speed slightly through day 0 hour 2, but otherwise was a wash on CPU. Test game is at Day 0 hour 5 (unclear whether to abort or not; CHAR Guard AI wasn't nearly as effective as desired.)
|
|
|
Post by zaimoni on Jan 9, 2019 18:53:14 GMT
Have just verified that System.Span<T>'s public relations is actively misleading: github.com/Microsoft/dotnet/issues/770 . Announced Oct 2017, won't reach .NET Framework in foreseeable future[sic]: Unfortunate, since anything that reduces garbage collector loading would be very useful for Rogue Survivor Revived. I'm considering bumping the required MS C# version to 7.3 to lock in the ref struct types, but the time cost to deploy safe stack-allocated temporaries is much higher without System.Span<T> . The RS Revived commit log also has some preliminary changes towards being able to cache pathfinding results sensibly, but a key early stage there for code correctness is a measurable de-optimization (and thus in a PROTOTYPE conditional block).
|
|
|
Post by zaimoni on Jan 14, 2019 20:25:54 GMT
Trunk has roughly a 25% speed improvement per-turn from profile-guided optimizations. Nowhere close to the 90% improvement that would bring things back to pre-subway network.
|
|
|
Post by zaimoni on Jan 25, 2019 17:14:28 GMT
Ugly. The GetHashCode implementation for System.Drawing.Point (currently line ~252) is XOR of fields as of time of writing; this makes the hash codes symmetric about the line y=x. (Profiling indicated about 4% of CPU was going up in the position-based lookup for map objects which is a TryGetValue call; was checking for how this could go non-performant). Bypassing this for the Location type was a ~40% improvement. This suggests the time cost for outright replacing this type (outside of the GDI access calls) can be rationalized for CPU, not just savefile size. Also, Microsoft has ported the Windows Presentation Framework classes Rogue Survivor relies on, to .NET Core 3.0. I'm not going to switch build process to a preview, but have run the compatibility checker. Only change required would be dropping the dead code supporting save to the SOAP XML dialect.
|
|
|
Post by zaimoni on Feb 7, 2019 22:18:23 GMT
Current test game has a debug-mode intentional pathing crash ("unhandled case" rationale), whose correct fix is making exit destinations fully visible. A large proportion of the next few changes to land will be for this purpose. I'll be using some of the unused screen space in the minimap block for this.
|
|
|
Post by zaimoni on Feb 15, 2019 3:50:02 GMT
Commit rate is going to be down for the near future (after fixing the pathing issue and dealing with the root cause, I had to restart the test game. There is one remaining AI issue before I'm comfortable with resuming the test game. The AI needs to be able to use the give-item order to prevent some oddities I saw at the police station.)
When the vaporware feature of helicopters lands in RS Revived, both the hospital and the police station are going to get helipads on their roofs. Unfortunately, helicopters will need aviation fuel (flying is just too energy-intensive for CHAR to electrify). So very much an early-game thing as a helicopter without fuel is going nowhere. [As aviation fuel is functionally diesel, implementing biodiesel synthesis would remediate this flaw.]
|
|