Making a Dark Souls randomiser

Anything to do with games at all.
User avatar
That
Dr. Nyaaa~!
Dr. Nyaaa~!
Joined in 2008

PostMaking a Dark Souls randomiser
by That » Fri Jan 29, 2021 2:21 am

Because my brain is a bit broken I have a lot of weird projects that I start and never finish. I've long given up fighting this and I try to just let myself follow these whims. With that in mind ( :slol: ), I still thought a few people here might enjoy the occasional updates... so!

I want to make a randomiser for Dark Souls!

I don't need to start from scratch as there has actually been a lot of work done on this already. There's an Item Randomizer which allows you to shuffle all the loot in the game. There's an Enemy Randomizer that shuffles enemies and bosses. There's a Fog Gate Randomizer that lets you shuffle where each fog gate leads to, so you effectively visit each subsection of the world in a random order.

In terms of modding tools, there's Soulstruct which is a graphical editor for various Dark Souls data files; DS Extract and Pack which is a simple Python implementation of the various file formats used for those data files; and Dark Souls Scripting which is an advanced Python and C# library for writing programs that hook into a running game and edit it on the fly.

There aren't many good tutorials, though, so my learning about Dark Souls modding will come mostly through studying the code in those packages and through trial and error. I believe there is also a modding community Discord, though I don't know how active it is (I'll keep it in mind as a last resort if I get really stuck).

An obvious question is, why do this if some mods already exist? Essentially I'd like to be able to polish the experience. I played a combined item and enemy randomiser and it was quite funny but far jankier than even the normal Dark Souls (which, while a fantastic game, certainly has its unpolished bits). What really impressed me about the ALTTP Randomiser is how perfectly it plays. It feels like a different game to vanilla ALTTP, but it doesn't feel "weird" or "amateurish". It's definitely in some sense easier to randomise that kind of game, but still!

User avatar
That
Dr. Nyaaa~!
Dr. Nyaaa~!
Joined in 2008

PostRe: Making a Dark Souls randomiser
by That » Fri Jan 29, 2021 2:21 am

Some general thoughts on the randomisation mods as they stand:

1. Fog Gate Randomiser applied to only major fog gates (boss rooms, area warps) is probably the most polished feeling mod.

2. Item Randomiser in Race Mode (key items will be at "key checks", not literally any item pick-up point) seems well implemented in terms of arriving at a solvable "game logic" but has some weird things I want to change, particularly with vendors (merchants that sell only Large Titanite Shards or arrows for 100,000 souls each are funny the first time, but not actually fun to engage with).

3. Enemy Randomiser is the source of most of the very funny things that can happen - seeing Artorias run around the Asylum basement at the start, or fighting Ornstein on the Moonlight Butterfly bridge, or all Ents getting replaced with T-posing Crystal Golems! But it is also by far the glitchiest. Bosses can be spawned in arenas too small to actually hold them, and normal enemies seem to have a lot of weird behaviours that need fixing.

4. As far as I'm aware no mod allows you to shuffle NPC vendors.

These all present slightly different experiences:

1. Randomising fog gates means you have to learn a different world layout each time, but you still know what challenges are in each area. Your big fun moments are where you walk through that fog gate and see where you end up - it could be the Gaping Dragon's sewer, it could be Ornstein and Smough's hall, or maybe you'll just end up at the start of another area. Then you have to plan your approach with the resources you have.

2. Item randomisers encourage you to go on a treasure hunt through the world - the objective is to tick off as many of your checks as possible as fast as possible, until you get the Lordvessel and the Lord Souls. You might follow areas a little out of usual order, but most paths in Dark Souls aren't locked with keys/items so it's mostly a scavenger hunt. (Excepting the Gold Fog Gates, the three large areas inaccessible without a particular item drop are the Depths, the Painted World, and the DLC. You also need an item to lower the water level in New Londo.)

3. Randomising which bosses and mini-bosses appear in which arenas makes some fights feel fresh, as you might have to fight them in a different way to take account of the new arena. Randomising standard (respawning) enemies doesn't add much in terms of "randomiser gameplay" but does add a lot of funny moments.

4. A hypothetical vendor randomiser which shuffled the blacksmith and merchant spawn points might introduce something fun if it's possible (you could end up with Andre sitting in Firelink Shrine from the start, or you might not meet him until the Depths or the Catacombs!) - I'm not sure how it would play though as I haven't seen that one done!

If you stick them all on maximum, it kinda feels like you have no control over the game and things are just happening to you. It's funny but I don't think it's fun in terms of gameplay - even if there is "game logic" in the sense of it being technically completable, the world loses all internal logic. I've watched a few runs like that and it can be brutally hard too. On the other hand, sticking to just one on mild settings seems like you miss out on fun potential. For instance, going for a good time on the item randomiser is probably the most "classic randomiser gameplay", but because you can do so many checks from the start without any particular drops, it feels a bit vanilla without at least mixing up the bosses too. I think my goal is to come up with a sensible balance between these randomisation methods.

User avatar
That
Dr. Nyaaa~!
Dr. Nyaaa~!
Joined in 2008

PostRe: Making a Dark Souls randomiser
by That » Fri Jan 29, 2021 2:21 am

So here is my very first Dark Souls Remastered mod! I replaced the Asylum Demon with the Capra Demon! It didn't really work very well, but the first step to figuring it all out is to just start playing with it, right?

Image
Starting a new game I can see the Capra Demon hanging out on the ledge over the arena.


Image
I noticed he won't drop down! Also, the health bar is a bit wrong - it starts depleted.


Image
He just hangs out up here and doesn't move.


Image
He is copied into the starting location in the arena when you move through the fog gate.


Image
Again unresponsive, though his stagger animation does play, and the health is right this time.


Image
Takes a long time to kill him with the starting sword!


Image
He drops the Big Pilgrim's Key, so his loot is still the Asylum Demon loot.


Why was he upstairs initially? I don't know. It's something to do with the initial set-piece where the Asylum Demon drops down after you enter the arena for the first time. I probably need to figure out how that's coded in the event scripts for the map and maybe just delete it, so whatever boss I put in the arena always just spawns on the floor properly.

Why wasn't he moving? I actually figured that out - it's to do with the AI script for the Capra Demon not being embedded in the map. I can fix that!

How do loot tables work? I'd definitely like to be able to modify that!

The other glitchiness like the HP bar I still need to investigate! :slol: I would really like to rename the fight too, so it actually says Capra Demon.

Image
jawa2
Member
Joined in 2020

PostRe: Making a Dark Souls randomiser
by jawa2 » Fri Jan 29, 2021 7:44 am

This sounds incredible, Karl, and I'm looking forward to seeing how you develop this idea! I don't own a PC so I can't play this myself but I'd be interested in viewing gameplay when you're ready to stream it.

User avatar
Cheeky Devlin
Member
Joined in 2008
Location: The Dark And Lonely Regions, Where Nobody Goes.
Contact:

PostRe: Making a Dark Souls randomiser
by Cheeky Devlin » Fri Jan 29, 2021 9:04 am

Good luck Karl!

Image
User avatar
Jenuall
Member
Joined in 2008
AKA: Jenuall
Location: 40 light-years outside of the Exeter nebula
Contact:

PostRe: Making a Dark Souls randomiser
by Jenuall » Fri Jan 29, 2021 9:39 am

Great stuff! Dark Souls modding is relatively popular I believe so hopefully there is a community out there which can help locate answers to any problems you encounter as you go along.

There was a fascinating development not that long ago I believe where they finally cracked the way the map data and collision layouts are stored in the game which should be paving the way for entirely custom areas which is something very exciting (albeit unrelated to this randomiser!)

Officially GRcade's 2nd Best AYAMMM™ Host
Image
User avatar
rinks
Member
Member
Joined in 2008
Location: Aboard the train that goes around the world

PostRe: Making a Dark Souls randomiser
by rinks » Fri Jan 29, 2021 9:52 am

Just one small step away from becoming an indie dev.

User avatar
OrangeMKN
SONM & Cake Sec.
SONM & Cake Sec.
Joined in 2015
Location: Reading, UK
Contact:

PostRe: Making a Dark Souls randomiser
by OrangeMKN » Fri Jan 29, 2021 10:13 am

This is a very cool project! I'm not really into Dark Souls but I am definitely into reading your technical dive into the modding of it.

User avatar
Dual
Member
Joined in 2008

PostRe: Making a Dark Souls randomiser
by Dual » Fri Jan 29, 2021 10:25 am

Sounds like next level modding when you consider Dark Souls is already well known for being non-linear title. There must be a lot going on in the background to ensure you don't break the game.

Good luck Karl!

User avatar
aayl1
Member
Joined in 2008

PostRe: Making a Dark Souls randomiser
by aayl1 » Fri Jan 29, 2021 11:41 am

This is so cool Karl! Im going to really enjoy reading your log of stuff. I'm very much not a tech/coding guy but I still find this stuff very interesting e.g. The Capra Demon's animation codes not being embedded in the map.

Looking forward to your future endeavors!

Do you have any idea what eventual randomiser route you want to go down? E.g. You mentioned the LttP randomiser feeling quite polished but that's essentially just an item randomiser - is that your plan for this?

Image
User avatar
Victor Mildew
Member
Joined in 2009

PostRe: Making a Dark Souls randomiser
by Victor Mildew » Fri Jan 29, 2021 11:44 am

You absolute mad man :dread:

Hexx wrote:Ad7 is older and balder than I thought.
User avatar
Cheeky Devlin
Member
Joined in 2008
Location: The Dark And Lonely Regions, Where Nobody Goes.
Contact:

PostRe: Making a Dark Souls randomiser
by Cheeky Devlin » Fri Jan 29, 2021 12:18 pm

aayl1 wrote:This is so cool Karl! Im going to really enjoy reading your log of stuff. I'm very much not a tech/coding guy but I still find this stuff very interesting e.g. The Capra Demon's animation codes not being embedded in the map.

Looking forward to your future endeavors!

Do you have any idea what eventual randomiser route you want to go down? E.g. You mentioned the LttP randomiser feeling quite polished but that's essentially just an item randomiser - is that your plan for this?

It's on V 31.0.7 just now. Yeah it's pretty polished at this point. :lol:

Image
User avatar
aayl1
Member
Joined in 2008

PostRe: Making a Dark Souls randomiser
by aayl1 » Fri Jan 29, 2021 1:00 pm

Hahah that's so polished it's almost blinding.

Image
User avatar
The Watching Artist
Scrub
Joined in 2008

PostRe: Making a Dark Souls randomiser
by The Watching Artist » Fri Jan 29, 2021 1:28 pm

The more absurd the better Karl. Gaping Dragon in the Crapra room etc.

Image
User avatar
rinks
Member
Member
Joined in 2008
Location: Aboard the train that goes around the world

PostRe: Making a Dark Souls randomiser
by rinks » Fri Jan 29, 2021 1:46 pm

You know that area that’s filled with demons that look like Capra (I think. It’s been a long time). Anyway, replace them all with Ornsteins and Smoughs.

User avatar
The Watching Artist
Scrub
Joined in 2008

PostRe: Making a Dark Souls randomiser
by The Watching Artist » Fri Jan 29, 2021 1:49 pm

O&S in the asylum and force Jawa to play

Image
User avatar
Victor Mildew
Member
Joined in 2009

PostRe: Making a Dark Souls randomiser
by Victor Mildew » Fri Jan 29, 2021 1:55 pm

The Watching Artist wrote:O&S in the asylum and force Jawa to play


Or just as the bell gargoyles fight is about to start, it launches ocarina of time

Hexx wrote:Ad7 is older and balder than I thought.
User avatar
Mafro
Moderator
Joined in 2008
AKA: DAT MAF
Contact:

PostRe: Making a Dark Souls randomiser
by Mafro » Fri Jan 29, 2021 1:55 pm

Can you put more mimics into the game?

HSH28 wrote:Assmung you ever get one that is.

Blog | Twitter
User avatar
Jenuall
Member
Joined in 2008
AKA: Jenuall
Location: 40 light-years outside of the Exeter nebula
Contact:

PostRe: Making a Dark Souls randomiser
by Jenuall » Fri Jan 29, 2021 1:56 pm

The Watching Artist wrote:O&S in the asylum and force Jawa to play

And make them both their powered up forms from the start of the fight. :nod:

Officially GRcade's 2nd Best AYAMMM™ Host
Image
User avatar
Holpil
Member
Joined in 2008

PostRe: Making a Dark Souls randomiser
by Holpil » Fri Jan 29, 2021 2:47 pm

Mafro wrote:Can you put more mimics into the game?


That would be great. Replace every item with a chest and a 50/50 chance of a Mimic.


Return to “Games”

Who is online

Users browsing this forum: andretmzt, Cuttooth, Damian, darksideby182, Edd, Fruits Punch Samurai, GrinWithoutaKat, ITSMILNER, KK, Rawrgna, Saint of Killers, Ste, Xeno and 75 guests