665c183557814

665c183558425
1 Guest is here.
 

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

665c183558bc1
It could be useful to know if the mod works. Kinda like the blue phone keys on earth level work for SHTUP.
Acknowledged by: ThiefsieFool

665c183558d0aZylonBane

665c183558d63
There's better ways to do that. Change something on Earth.

665c183558ec5JossiRossi

665c183558f1a
That's not a bad idea, I'll add that in after I'm done work

665c1835591cdJossiRossi

665c183559221
So, if you are uncomfortable with running the program (which I absolutely understand), if you install this mod and run it Vanilla you should have the randomized setup that I just tested with, so you can see how it works without running any code. There's now 4 possible phone booth spots right where you spawn, you'll be staring right at the locations. There's a slim chance of all 4 phones spawning at their original locations being unchanged but it's quite low.

Also, last version had a bug that'd likely have prevented it from running correctly had you tried it. I missed a couple hard coded file locations, which are now generalized.
[SS2_Randomize_0.02.7z expired]
« Last Edit: 02. June 2020, 00:10:42 by JossiRossi »

665c1835593d5JossiRossi

665c183559429
General update, realized I really wanted one last piece of info, of what room each item is located. Before I had the map and the "area" but area meant from a door and lock standpoint. So, big swaths of the map might constitute and area. I wanted to be able to set up a hint file, so if someone was stuck they'd know it was the Morgue, in the Medsci1 Main area, on the Medsci1 map. Also, helps double checking things are working as intended. This means going back over a lot of "done" material. Fingers crossed I'll have all the data I'll need and will assemble it all correctly first time as I'm working on Medsci2s alternate locations. Haven't had nearly as much free time as I'd prefer to keep assembling that kind if info.

Also, started adding some settings, so players can choose some details. Not fully implemented yet though, but players will be able to set the level of randomizing. Right now I'm not working in alternate patting, but it is a long term goal that should be supported with how I've set things up. So, currently the player is following the original game's general flow by default. Makes testing a lot easier which is a benefit. Next alpha I release will cover all of Medsci1 and 2

665c18355952cJossiRossi

665c18355957e
Was able to (relatively) quickly get Medsci2 working. Which is really promising. Once I had the locations I got everything randomized fast and working with minimal troubles. Starting to understand the scope of the project and it's a lot, but seems manageable. Probably still a month depending on free time for a polished Medsci1 and 2 alpha to be complete, but we'll see.

665c183559a5dJossiRossi

665c183559ab9
I would appreciate some outside testing for confirmation, but I have an alpha release of my Randomizer! I have Medsci1 and Medsci2 both randomized.

You will know if the mod is working because there will be telephone booths in the hall in front of you when you spawn on earth.

What changes?
  • In World Item/Weapon Locations
  • Corpse Locations
  • Crate Locations
  • Contents of Corpses/Searchable Containers
  • Replicator Contents
  • Cryo Room Doorcode (no longer 00000)
  • Key Items are in new locations, although in the same "areas". So the Maint door code will always be in the RnD wing, however it's locations can be *anywhere* in the RnD wing. The Medsci2 door battery will be in any location the player has access to after the Cryo Section. Etc.

What's Next?
  • I will tweak the extent of randomizing. Right now quest items are appearing in general areas, but according to original game flow. I want to add a vanilla location option, and then the "madness" option where routing ignores the original game.
  • A mode that will remove all current items, and replace them randomly. Currently items are only moved within levels, this is the most compatible. A version where any item has chances to spawn will be less compatible, but a more unique experience.
  • Hint system. If you use the randomizer generator, you are shown locations of items and any changed door codes. These aren't currently exported into a text document. So the presets I provide don't have hints currently.
  • Move on to the next levels.

Possible Issues
Some items may be in poorly placed locations, or similar oddities. I've had great luck with key items being where they should be, please let me know if this isn't the case so I can explore what might be happening though.

What's Included
  • The SS2_Randomize_0.03 folder includes the script you can run to generate a new set of changes, and all the data required for it to function.
  • A set of 5 randomized presets. If you are uncomfortable downloading/running a script, then you can use one of these presets to try out a randomized run of the first two levels. You can use BMM with these preset folders.


[SS2_Randomize_0.03.zip expired]
[Randomize_0.03 Presets.zip expired]

665c18355a030JossiRossi

665c18355a0bc
What's Next?
  • A mode that will remove all current items, and replace them randomly. Currently items are only moved within levels, this is the most compatible. A version where any item has chances to spawn will be less compatible, but a more unique experience.

Quite surprisingly, I just got this to work on my first try. Seems to work fine. Instead of rearranging items, it spawns new ones from a list of viable item archetypes and then places those into the possible item locations. As said above, this may be a less compatible mode for anything that makes tweaks to placed item behaviors though. But if you want prisms and antipersonnel rounds to pop up in Medsci1, now you can.[/list]

665c18355a4adsarge945

665c18355a509
This is actually genuinely cool. I have been looking for a proper randomiser mod with good compatibility for some time.

I will throw my $0.02 in the ring on this. Here are some suggestions/ideas

1. External tools are a bad idea. This should be a standalone mod that works by itself with no external interference as much as possible. Not only because external tools are inherently untrustworthy, but also because you will absolutely get comment after comment upon release by people saying "I loaded it in the mod manager and it didn't do anything"

2. A "quest items only" version would be good too, as a lightweight version for veterans who want the game to be *mostly* the same but still a tad different. In fact, hopefully pretty much every aspect of this mod would be configurable (preferably in-game, although I don't know how possible that is)

3. Probably not possible, but if there was some way we could set a seed, it might be useful. For instance, if someone does a lets-play using this mod and other people like their randomisation, they could share their seed and other people could use it. Maybe through a hidden keypad on earth1.mis

4. If you're going to randomise weapon stats (degredation etc) it would probably be good for these to be somehow visible.
« Last Edit: 30. July 2020, 05:56:54 by sarge945 »

665c18355a938RoSoDude

665c18355a99c
It's very common for randomizers to use an external tool to manage the random parameters and inject changes. As I said before in the thread, the largest benefit from using an external script to initialize the randomization is that you can potentially scramble resources or even key items between maps with proper tracking. Handling it within Dark would require a bunch of crazy squirrel scripting to track all of the permutations at runtime in a potentially unstable fashion, which is unnecessarily messy when the DML format allows for straightforward map edits through the engine itself.

Regarding the seed, if someone wants to play with the same changes as someone else, they can just trade the DMLs that the external script creates and go wild. It's quite a good fit, really.

I would definitely want to see the randomization be highly tweakable. I might want it for only ammo and other resources and not quest items, for instance. I'm sure it's a lot of work, but anything you can do to add variety is appreciated. Again, let me know when you get to spawning new objects in maps; I can get you up to speed on using custom scripts. Can pretty much get any object spawned in the map with any properties you want, you'd just need to know how to hook them into your DMLs.

665c18355b283JossiRossi

665c18355b2d8
I don't mind making a set of preset randomized settings though and including those, like I did in the last alpha.
1. External tools are a bad idea. This should be a standalone mod that works by itself with no external interference as much as possible. Not only because external tools are inherently untrustworthy, but also because you will absolutely get comment after comment upon release by people saying "I loaded it in the mod manager and it didn't do anything"
Yeah the external tool is essentially the only way I personally can get this done too. There's some things that would be hard/impossible to do with squirrel scripts. Course I've been trying to figure out how squirrel scripts work because there are things I could do with them that I'd like, but I've had difficulty wrapping my head around them even with the examples and documentation.

The default mod install comes with a randomized set in place, so if people install the mod it will change things automatically. So I'm not too worried about that.

2. A "quest items only" version would be good too, as a lightweight version for veterans who want the game to be *mostly* the same but still a tad different. In fact, hopefully pretty much every aspect of this mod would be configurable (preferably in-game, although I don't know how possible that is)
In game modification is definitely not on the table for me. It might be conceivable with some squirrel trickery, but it's well beyond what I can do. For configuring, the goal is to let everything be moddable/tweaked. All the files are just .csv text files, so someone could create their own random item locations if they felt like it for instance. Setting what gets randomized is also planned/partially implemented.

3. Probably not possible, but if there was some way we could set a seed, it might be useful. For instance, if someone does a lets-play using this mod and other people like their randomisation, they could share their seed and other people could use it. Maybe through a hidden keypad on earth1.mis
I do want to add something like a log on earth that lists what is going on in the settings for players to see, stuff like the randomizer settings/seed etc. Just not a huge priority at the moment. The bulk of the work is getting the .csv files with all the possible locations and metadata related to the locations built up. The code, crude as it is, can easily be applied to every level now, so for general concerns like item/corpse/crate randomizing it's all a matter of data.

4. If you're going to randomise weapon stats (degredation etc) it would probably be good for these to be somehow visible.
Frankly this would be a nice mini-mod in general. I was thinking that randomized weapon stats would be a good candidate for a squirrel script that could be used with/without the rest of the randomized stuff. So, if there is a way to display that info, that would be cool, but I'm not very skilled at this, just willing to dump the hours in to build lists to feed into the script.

I would definitely want to see the randomization be highly tweakable. I might want it for only ammo and other resources and not quest items, for instance. I'm sure it's a lot of work, but anything you can do to add variety is appreciated. Again, let me know when you get to spawning new objects in maps; I can get you up to speed on using custom scripts. Can pretty much get any object spawned in the map with any properties you want, you'd just need to know how to hook them into your DMLs.
I actually got this working last week! Which was pretty cool, wound up not being too hard. I clear the map of all the existing items, and then spawned new ones in based on a simple list of item names. Did a quick test and had all nonquest items replaces with hypos.

I would not mind some custom script info, there might be things I can do with that, that's simpler than how I am doing it now, or more powerful.
665c18355b49d
Is this still being worked on? Randomized loot is something I desperately need!

665c18355b556ZylonBane

665c18355b5a6
NEED, or WANT? Will you fall over dead if you don't get it?

665c18355b64eJossiRossi

665c18355b6a2
Been meaning to get back into it, just been a rough year, trying to carve out some time to reacquaint myself with what I was doing though!
665c18355b7bb
Hey Jossi, just wanted to know if this was still a thing you were working on.

665c18355b971JossiRossi

665c18355b9d3
Actually, yeah! Been diving back into it just this week. Nothing interesting to share or talk about at the moment, just been doing a lot of bulk work to make life easier down the road. I extracted most the raw data I need from all the levels, and have been formatting it to be usable. I have a roadmap in mind for releases as I get each stage done.

First goal is modest, to keep me focused. Will be all non-vital items randomized within existing spaces. So, nothing new or added, but basis everything else is built on. I'm decently into this bit.
Then the step after that is adding additional possible item/corpse/container locations to all the maps. That's time consuming, but straightforward.
3rd goal is doing the key item randomizing. Starts to get finicky even without alternate routing causing issues.
4th is where I may start to break the engine with fully randomized items, instead of just moving them around, and starts to introduce me having to make choices on what "kinds" of randomizing, and just becomes more of a headache in many ways.
5th is alternate routing through the levels, and is where things are most likely to break, and need lots of testing, and I would love to accomplish, but I have to do everything before this to even have a chance, so I'm not even going to take up brainspace for now.
665c18355bb35
Sounds good!

Personally, what I hope comes to fruition is randomized container loot -- everything else, honestly, is secondary; I can live without randomized key items, but after having played SS2 for 15 years, I can predict almost all hand-placed loot in corpses and containers. Something to spice that up would be lovely. What are your thoughts on container loot randomization and compatibility with big mods like Secmod?

665c18355bbefvoodoo47

665c18355bc45
iirc, ZB already has a (unfinished?) script that will randomize loot location on one particular level (not changing the total amount of loot or loot type, just its location), but I don't think it has been released publicly.

665c18355bfb0sarge945

665c18355c004
Sounds good!

Personally, what I hope comes to fruition is randomized container loot -- everything else, honestly, is secondary; I can live without randomized key items, but after having played SS2 for 15 years, I can predict almost all hand-placed loot in corpses and containers. Something to spice that up would be lovely. What are your thoughts on container loot randomization and compatibility with big mods like Secmod?

Do you mean "the contents of all containers are picked from a random list and can be anything (maybe relevant to the deck)" or do you mean "all the existing items in the level are in different places, including the possibility to be in containers"

I am mostly interested in the second approach - I like the balance of the item placements in the game (especially with mods like RSD where the item balance is already pretty good) and would rather just move things around, rather than potentially unbalance things too much.

That said, I do hope this comes with a silly mode for special occasions, where any container can contain any item. Imagine finding 300 CMs in the first room of the game.

665c18355c2a1JossiRossi

665c18355c2f4
iirc, ZB already has a (unfinished?) script that will randomize loot location on one particular level (not changing the total amount of loot or loot type, just its location), but I don't think it has been released publicly.

Definitely interested in how others would tackle this, especially with an actual knowledge of the guts of the engine, hopefully there will be a chance to see that in action at some point

665c18355c5b6JossiRossi

665c18355c614
What are your thoughts on container loot randomization and compatibility with big mods like Secmod?

I want this to be as compatible as possible with as much as I can. My ability to do the extensive testing is limited though, I'm trying to be careful how I do things, but I'm only working with SCP currently.

For the container loots, that's hand in hand with swapping the items around. More or less the scripting just has a list of items, a list of spawn locations in the world and a list of containers (crates, corpses etc). It goes through the list of items, and chooses a location or a crate then alters what it has to for that to work. So in the alphas I've released crate loot is already randomized.

To Sarge's point about balance, that's how this will work for a while exclusively, just moving existing items around rather than possibly breaking balance.

665c18355c6cbsarge945

665c18355c726
Does it read the item list from the game itself, or from a premade list?

I guess this won't be compatible with mods that add new items via DML or gamesys

665c18355c7f1JossiRossi

665c18355c83d
Premade list, it is doubtful there would be a way to dynamically generate a list of the items

Edit: All the data is just stored in txt files and if a person felt like it they can add the item IDs to the appropriate lists pretty easily
« Last Edit: 08. February 2022, 23:04:49 by JossiRossi »
1 Guest is here.
Life is precious, Janos discovered, as it was torn, throbbing and bleeding, from his own body.
Contact SMF 2.0.19 | SMF © 2016, Simple Machines | Terms and Policies
FEEP
665c18355cf9a