673ffd8d5095a

673ffd8d51869
1 Guest is here.
 

Topic: SS2 Randomizer, Is it even possible?
Page: « 1 2 [3] 4 5 »
Read 6747 times  

673ffd8d51ea9voodoo47

673ffd8d51f11
the former already exists, ZB posted it.. somewhere.

673ffd8d52025JossiRossi

673ffd8d52070
Zygo's uses map edits though, so it's not fully compatible with SCP right?

673ffd8d5215fZylonBane

673ffd8d521a9
Not even slightly compatible. 100% INcompatible.

673ffd8d52241JossiRossi

673ffd8d52289
I really really hope to keep this project compatible, currently I have SCP installed by default during testing and dev
673ffd8d523af
Would your randomization mod be compatible with something like, say, Secmod?

673ffd8d52476JossiRossi

673ffd8d524bf
Conceivably, might need some specific tweaks, but as long as object IDs are the same. Like I think secmod does a bunch with for instance the cameras, so if I can get camera moving to work well with the base game, it might not work with secmod without writing up a unique list of IDs for anything changed.
673ffd8d525a7
I see, so you're not referring to randomizing just loot/items, you want enemies, corpses, boxes, etc. to be random?

That seems like a bold undertaking.

673ffd8d52684JossiRossi

673ffd8d526cc
Most of those systems are essentially the same. Like boxes and corpses. The randomizing side is actually surprisingly simple. The hardest part so far involves collecting the appropriate data, lots of lists of items and locations, then making additional alternate locations. Doing that for all the maps will be one of the biggest parts of this. For the corpses I had collect all the data for 25ish corpses, then add another possible 50 locations. It's a lot for sure but it's mostly work you can zen out doing while watching stuff

673ffd8d52958ThiefsieFool

673ffd8d529ab
This could be a really interesting mod, especially if it's compatible with other mods, I like the idea of a "nightmare" difficulty that works by randomizing stuff to the point where you might not be able to make it, rather than just making enemies tougher.

673ffd8d52b48JossiRossi

673ffd8d52b92
Testing will be it's whole own thing, and a special version might need to be made to accommodate a few issues unique to different mods, but I did a *very* quick test with Secmod and it didn't crash and seemed to be behaving as expected. So, that's really promising. I would love to keep this compatible.

I worked out a really nice way to easily add new locations for items, created a useless archetype called "CryoMain_common" for instance. Place those over the map, then export just that archetype and its contents to get a quick list of position data. Really helps speed up a slow process. Also, placing them in the map in a backup file lets me see where I already have item/corpse/chest positions, so I don't overlap things.

Question: For custom strings does the mod manager have any merging capabilities? I did some tests and it does not appear to. Not sure if there's anything out there for that. For my purposes, I'd likely create new strings over editing current ones. That way I can change log info dynamically. The brute force method would be to take the strings for whatever base mod is being used, like Secmod or SCP and then append whatever I want to the end of that, and suggest the randomizer be loaded with the highest priority, which I dislike. It would be really nice if I just had my custom strings in a file and the mod manager would handle that, but I don't know if this is the case? Could I try and use custom string documents? I'm assuming that's hardcoded big time.
Acknowledged by: ThiefsieFool

673ffd8d52ca5voodoo47

673ffd8d52cf0
yep, no merging on custom strings, whichever has the highest priority will get used (technically, dml edits work the same - if you have two mods that modify the shotgun hybrid health, the AI will end up with the value from the higher priority mod. so basically, dml mods are compatible and be stacked to infinity, as long as they don't modify the same values).

editing the strings in a mod also means you either modify the DE strings as well, or proclaim the mod only compatible with the EN version of the game.
« Last Edit: 17. May 2020, 08:10:32 by voodoo47 »

673ffd8d52db2JossiRossi

673ffd8d52dfd
I suppose the nice thing about using an external script to handle all this is I can do some really tricky things. Like I can add text to the SCP string files. As long as I never edit anything existing and only use new references it should be possible. Retains compatibility, adds use complexity though.

673ffd8d52f1dJossiRossi

673ffd8d52f67
I got random door codes tested and implemented today. I'm hijacking the strings of the highest loaded mod in this case SCP, so it'll sneak in a modified version of the log data with a new door code. This is a reversible process. Will have to do the same with the translated strings eventually.

I have a lot of the randomizing at least experimented with if not pretty fully designed. It's starting to be pretty neat testing it and hunting for items I need or want.

It's largely been boring work like finding the best ways to collect, organize, access, and utilize positional data, but I've started to get pretty quick at the bulk of that work. Excited to hopefully move on from Medsci1 sooner than later. I'll release an alpha once I have Medsci1 done though.
Acknowledged by: ThiefsieFool

673ffd8d531efJossiRossi

673ffd8d5323a
Got an alpha of randomizing Medsci1 if anyone would like to test it. It's rough, there's 2 common failures I am aware of. The first, breaks the script, where if there's no corpses in the spawning area, it'll choke. The other appears to be a .dml problem that stops the level from loading and crashes the game. I know I'm doing *something* it doesn't like. Referencing something invalid perhaps. Any advice on tracking that down would be very helpful since I imagine it'll be a recurring issue I need to watch for.

A less common failure was an audio log not appearing in any valid area I had access to I think. The problem with this kind of project is eventually every problem are strange outliers. I hope this one is kinda rare in this testing phase just so people can actually try it out.

Right now, there's no complex logic behavior for key locations. They always spawn in the same "availability areas" but in a random container (right now ONLY in crates/desks/corpses etc). The Medsci2 battery will always be in RnD for example. But in a random container in the RnD area.

Remember to read Amanpour's log to get the new door code to leave Cryo, it won't be 00451 anymore.

To run the script, open the SS2_Randomize_0.01 folder and run SS2_Randomizer_Script_v0.01.py (running it from the command console might be wise if you are comfortable there) This will generate the new .dml and alter the log strings.
This mod is technically compatible with other mods with a tweak to the code, but I don't have a clean way reverse the way it alters logs, so please use with a vanilla setup for now please.

I highly suggest making a save right before you walk through the shuttle doors for the 3rd time in the station map. So you can just hop right into medsci1, rather than repeating earth/stats selection.

There are innumerable oddities, like corpse locations half in floors, objects not aligned in a sane way, etc. I'll be fixing those, but I kind of needed to stop for a moment and show this off, broken as it might be, for personal morale reasons. Anyway, I hope people at least find it interesting, and that it works *at all* for someone else on a difference computer.

So, yeah, if you give it a go, let me know what you think, I hope people find it interesting.
[SS2_Randomize_0.01.7z expired]
Acknowledged by: ThiefsieFool

673ffd8d532d3ZylonBane

673ffd8d5331c
Oh you did NOT clobber the 451 in a Looking Glass game.  :oldman:

673ffd8d533ccJossiRossi

673ffd8d53415
Hard choices made in the pursuit of progress 😥

673ffd8d534d2ZylonBane

673ffd8d5351a
There's actually zero reason to randomize that code. The only reason to randomize codes is to prevent sequence breaking, which does not apply to that door. At that point in the game there's literally nowhere else to go but through that door. The only reason it has a code is to train players how to get codes from logs.

673ffd8d535dcJossiRossi

673ffd8d53624
That's part of why I decided to randomize it it. It's to indicate to players that things are changed. Sequence breaking isn't really the concern, it's that you'll need to find the door code, and it won't be where it usually is. Just like all the other items you are usually looking for, so you'll need to be scrounging for it.

673ffd8d536bfvoodoo47

673ffd8d53707
I'm still not a fan of an external utility doing stuff behind the engine's back - I have no way of assessing how safe this is.

673ffd8d537aeJossiRossi

673ffd8d537f6
Yeah, that's a very understandable concern. You can open the file in a text editor and look it over some, doesn't do anything too tricky and I tried to keep it readable for myself, but it's also embarassing quality.

673ffd8d53ac7ZylonBane

673ffd8d53b18
That's part of why I decided to randomize it it. It's to indicate to players that things are changed.
I'm pretty sure players who decided to install a mod that changes the codes will already be aware that it does the thing that is the reason why they installed it.

673ffd8d53c49Vegoraptor

673ffd8d53c96
Only if you assume that all people are sensible, and didn't just get this (eventual) mod in a pack.
Which would be an absurd thing to assume.

673ffd8d53d25ZylonBane

673ffd8d53d6e
People who install mod packs can burn.

673ffd8d53df0voodoo47

673ffd8d53e43
we need a double Ack button.
1 Guest is here.
Definitely the best idea to let a rogue, vengeful AI control the ship you're stranded on.
Contact SMF 2.0.19 | SMF © 2016, Simple Machines | Terms and Policies
FEEP
673ffd8d545fe