|
Post by zaimoni on May 17, 2022 4:21:57 GMT
Hello there Feel free to comment here. (I'm unclear when development on Staying Alive will thaw out.) MP
|
|
|
Post by zaimoni on Nov 27, 2021 6:42:06 GMT
Currently thawed on on commits (working on a city-encircling highway for RS Revived as that blocks so many other features). There's also some technical issues that I would much rather not deal with, but feel obligated to due to Microsoft policies. This, of course, enlarges the reality bubble even more. I will have to disable this build option for release checkpoints if I can't get the CPU/turn down to something "reasonable". (That is, that 5x5 50x50 reference game is actually 7x7 50x50 with the highway included. As usual, RS Revived sees no measurable performance improvements from upgrading from .NET 5 to .NET 6.)
|
|
|
Post by zaimoni on Aug 12, 2021 2:58:43 GMT
Waiting on inquiry at Reddit to complete regarding UI migration for building on Linux. Summary at github.com/zaimoni/RSRevived/issues/15 . It appears there are zero Microsoft-supported options. MP , do you have any experience that would bias between the following:
|
|
|
Post by zaimoni on May 27, 2021 23:21:00 GMT
Windows to Linux...yes, that is going to hurt. When I migrated RS:Revived to .NET 5.0, the build target that works as-is is net5.0-windows. To be truly portable that should be net5.0, but in practice that involves explicit platform guards. Note that IRogueUI and IGameCanvas is leaking System.Drawing types (in particular, System.Drawing.Point ). I don't have a visual on strategy here (i.e., I don't know whether the README at github.com/zaimoni/RSRevived/tree/master/RogueSurvivor/UI is valid, or trying to nominate an obsolete migration target). There's also this very scary deprecation (System.Runtime.Serialization) that's been eating much of my available bandwidth; I think I'm overreacting, but there's no way to be sure until November this year. (.NET 6.0 is a long-term release, so if that standard library makes it there will be no rush to find working alternatives.)
|
|
|
Post by zaimoni on Jan 24, 2021 16:26:13 GMT
Some development policy updates: - New pan-project devlog at zaimoni.medium.com/ . This is a paid membership remote-hosted weblog site (i.e., unlikely to be blacklisted by Reddit for being ad-supported). Plan is to upload commentary about the reference test game, as a walkthrough.
- Interim release policy has been changed: I am now uploading non-release latest-trunk builds to the same release as the last release. (This is the same policy I use for Cataclysm:Z.) These builds are .NET 5.0-windows only. I was hoping Ahead-of-Time compilation would be present, but it turns that was too complex for Windows.
- I have started prototyping a re-implementation of System.Runtime.Serialization. This is now not just improperly advised against, it rates its own compiler warning as of .NET 5.0. Given other questionable policy decisions, I cannot analytically rule out this being removed at .NET 6.0 with no viable supported replacement. Newtonsoft's BSON does not have the required features, at this time.
|
|
|
Post by zaimoni on Dec 17, 2020 12:33:16 GMT
There is, fortunately. (What I do for debug builds of Rogue Survivor Revived, is automatically copy a successful save to a backup location; this ensures that the *backup* is known-good even if I get something critically wrong.)
|
|
|
Post by zaimoni on Nov 10, 2020 0:45:41 GMT
Unstable release cut. The official release date for .NET 5.0 is "tomorrow", November 10, 2020. Wanted to make sure there was a binary build before attempting upgrade. Changes of note since the last checkpoint release: - Friends are now enemy detectors. You must be able to see them; detection isn't enough. Icons are known-broken (zombies get the zombie detector icon; everyone else gets the blackops icon). The detectee only has to be targetable with the best ranged weapon. It'll trigger even if that isn't in use. You cannot read off an enemy at range five, from someone who only has a shotgun (typically range 3). This does work for melee weapons (with targeting range 1, except for Father Time's Scythe which is range 2.)
- Containers now have real inventory: pushing that store shelf takes the item on it, with it.
- The police are now capable of finding the secret underground base on their own. If you do not get there in time, they will first power it up, and then loot it.
CPU/turn on the development system ranges from 3 to 15 seconds (it spikes up dramatically on the noon refugee arrival, and slightly on the midnight invasion).
|
|
|
Post by zaimoni on Oct 5, 2020 16:41:04 GMT
Release cycle plans: .NET 5.0 is scheduled for "stable release" Nov. 2020. This is when Microsoft abandons the standalone Windows Presentation Framework (WPF) (latest version 4.8 series, RS Revived currently on 4.6.1) and will maintain only the one that ships with with the .NET 5.0 Windows sub-target. (i.e., it is a platform shift to re-target the event handler system from .NET 5.0 Windows to .NET 5.0 cross-platform.) The release candidate out currently (RC1) has public relations indicating there is not expected to be an extra release candidate. While there do not appear to be any killer-app features in C# syntax (jump would be from 7.2 to 9.0), there is a very major change in build procedure available: Ahead-of-time compilation, which almost allows paying the JIT overhead in advance, much like traditional C++ compiling. It also is represented as allowing shipping an *.exe that doesn't require the target system to have .NET runtime installed So, no later than the Nov 2020 release, intent is: - Emergency unstable checkpoint for RS Revived (built against WPF 4.6.1)
- Cut over the .NET Core 3.1 build of RS Revived to .NET 5.0 Windows. Determine whether save-load cycling and new game are broken; if broken, fix.
- Adjust build system to only generate the .NET Core 5.0 build.
If I can get both acceptable AI and not-that-awful CPU/turn then I'll start the above against .NET 5.0 RC 1. I don't think parity with RS Alpha 9 (3-4 seconds/turn at Day 0 Hour 0 at maximum simulation detail, etc. for 5x5 50x50) is tenable before cutover to .NET 5.0 Windows (there are just too many low-level optimizations the higher version is represented as having, that the lower versions don't have).
|
|
|
Post by zaimoni on Sept 29, 2020 15:17:33 GMT
This sort of error can be suppressed without introducing proper locking, if the failing loop can be restarted safely. (It's likely a negative interaction between the PC district thread and the NPC district thread.)
Example (this is from the inventory reality checks in debug builds of Rogue Survivor Revived):
RestartActorZeroCheck: try { _RejectActorInventoryZero(errors); } catch (InvalidOperationException e) { if (e.Message.Contains("Collection was modified")) goto RestartActorZeroCheck; throw; }
|
|
|
Post by zaimoni on Sept 11, 2020 0:59:03 GMT
Commit stall thawed (finally). Shaking down container inventories has been messy (and stress-tested the lambda-function pathfinder)
|
|
|
Help!
Aug 24, 2020 19:05:41 GMT
Post by zaimoni on Aug 24, 2020 19:05:41 GMT
The required command is "Break object" -- use the X direction for "exit" to target the shambler in melee. The timing requirements are ugly, regardless. I had to build out considerable UI to enable a non-savescumming strategy for dealing with this. In Rogue Survivor Revived, the general technique would be (and I have used this in playtesting): - See that Energy stat I added to the UI (that was there all along)? If that reads above 50, running is a free move (i.e., you can run into the exit without risking being immediately chomped on). I also adjusted the one-turn rest command to reset energy to zero. You can sort of "infer this" by watching when your turn counter doesn't update when running, at least when not wearing heavy armor that slows you.
- Rogue Survivor Revived will show you the other side of the exit. That means you actually can see the shambler, including its "threat icon". If you have threat icons on, you can play this completely safe and back away when it would bite back.
- I also augmented ranged weapon targeting to go through exits, for Rogue Survivor Revived. So you aren't formally stuck with melee weapons (although good luck maintaining an ammo supply...I routinely run out of ammo starting on Day 3. You are competing against the police for resources.)
|
|
|
Post by zaimoni on Apr 10, 2020 18:18:32 GMT
There's going to be a commit stall for an unspecified time (hopefully only a few days): need to pre-calculate a change plan for savefile-breaking changes. At least one of the following will be scheduled: - CPU/turn is somewhere below 15 seconds/turn through Day 1 hour 12 consistently, for the reference test game. That's not "low enough" to comfortably introduce the encircling highway, but I have no clear way forward to reduce CPU/turn further while maintaining full cross-district pathing. This highway is "borderline" (final version will have gas stations [pulled from Staying Alive], but it still is in the pre-apocalypse broadcast power zone)
- The member function changes needed to support binding container inventories, to containers, has landed. The actual binding hasn't been committed yet. (I.e., pushing that store shelf doesn't leave behind what's on it.)
- I'd like items on tables and chairs to be "reachable" when adjacent, rather than having to jump on them to access. (This is a radical player UI change; not so radical for ai. The bump move heuristics check for jumpable object before container object.)
- I'd like to route worn armor to its own physical slot, rather than eating a slot in the hammerspace inventory. (Implications: armor remains on the corpse, and thus can be accidentally worn by unevolved zombified humans. It is extremely unlikely to survive the upgrade.)
|
|
|
Post by zaimoni on Mar 9, 2020 20:20:42 GMT
Unstable release cut. It appears that the CPU blowup during the police assault on the CHAR base has been prevented (CPU/turn did not go up materially).
Note the new infix -core ; this one is built against .NET Core 3.1 rather than .NET 4.7.1. Eventually, I'll switch over to .NET Core as the backing runtime as there are a couple of technical changes that require the bytecode extensions used there. (That is, the required syntax won't build for .NET 4.7.1, period.)
|
|
|
Post by zaimoni on Feb 29, 2020 13:51:35 GMT
Unstable release cut; savefile break followed by pushing the test game out to Day 0 hour 6 flushed out a number of highly unstable issues, so the prior one was withdrawn.
|
|
|
Post by zaimoni on Feb 20, 2020 1:59:26 GMT
Unstable release cut; the major fix here is subway generation (it could infinite-loop before game start).
Speed increases compared to the last unstable release are underwhelming.
|
|