#archived-modding-development

1 messages · Page 428 of 1

solar jacinth
#

oh god

#

zaliant u god

shy cloak
#

"350 messages since 12:30 today"

#

it's been 5 hours guys calm down

silk jetty
#

that's what it was called when I downloaded it a while ago

unborn flicker
#

there was a lot of sadposting today for some reason

shy cloak
#

oh noez my birthday is sad?

safe hamlet
#

350 messages in 5 hours, that's cute

ornate rivet
#

yes

safe hamlet
#

you haven't seen the time we did that in an hour

unborn flicker
#

there also was a major update to the randomization happygrub
and the hint shop is a bit more polished now

#

So that's in the 350 messages too

shy cloak
#

oh boy

#

well i don't have time right now unfortunately

#

maybe tomorrow I can catch up. family's in town

unborn flicker
#

I haven't dropped a dll yet

#

But I guess I should

waxen ember
#

@fair rampart wha

safe hamlet
#

drop that dll boi

silk jetty
#

yes

fair rampart
#

what

silk jetty
#

I want to try out your rando

waxen ember
#

you pinged me

ornate rivet
#

he meant to tag @brazen mortar

safe hamlet
#

you accidently pinged them before

unborn flicker
#

Let me make the modlog a bit better organized and I'll post it

waxen ember
#

ah

fair rampart
#

oh yeah lmao

#

that

#

was an accident

ornate rivet
safe hamlet
#

smh 56

copper nacelle
#

it has been processed

gilded lotus
#

@solar jacinth litearlly 20 years of competitive gaming

#

or just autism

solar jacinth
#

no

#

wtf

gilded lotus
#

but i notice all the minute details

solar jacinth
#

cool

#

zaliant holmes

gilded lotus
#

i can notice someone joining voice chat while i'm looking at my 2nd monitor lol

brazen mortar
#

what

solar jacinth
#

gtg

silk jetty
#

sucka

safe hamlet
#

is that using trailrenderer?

copper nacelle
#

no

#

trail renderer sucks

safe hamlet
#

particle?

ornate rivet
#

@fair rampart accidentally tagged @waxen ember when he meant to tag @brazen mortar

copper nacelle
#

real particle system hours

safe hamlet
#

@weak lodge make watchers knight mod quickly or else 56 will get to it

ornate rivet
#

smh watcher knights mod that isn't grimm themed

brazen mortar
#

wtf saleh

#

why are you pinging them again then

#

are you ok???

safe hamlet
#

because he is a madlad

ornate rivet
#

I enjoy pinging @unborn goblet

safe hamlet
#

lol

copper nacelle
#

please

silk jetty
#

@ mods meme pings

brazen mortar
#

saleh stop being an ass

ornate rivet
#

ok Sir

brazen mortar
#

thats "ok Mom" to you young man

ornate rivet
#

"ok Daddy"

silk jetty
#

no u

safe hamlet
brazen mortar
#

ok
continues

#

wonderful

ornate rivet
#

I was being polite 😔

brazen mortar
#

still going

#

amazing

ornate rivet
#

wait are you actually annoyed by this?

#

I thought t'was a joke, if you're really annoyed then I'm sorry (no sarcasm).

dusky lion
#

@covert arrow

ornate rivet
#

oh wow didn't know that one existed

safe hamlet
#

cease people

dusky lion
#

anyone with everyone as their nickname is exempt from the no meme ping rule

safe hamlet
#

saleh, work on PC

#

that's why you don't get PC done soulpensive

ornate rivet
unborn flicker
gilded lotus
#

adrain did that fix it for you btw

silk jetty
#

sorry but chrome just said that it was dangerous

#

it did

unborn flicker
#

There may be a small stutter on starting a randomized game. Normally randomization takes less than .1s for me, but occasionally it goes up to ~.4s

shy cloak
#

on GH?

unborn flicker
#

I could go ahead and push this

#

I had been holding off in case a major flaw was found

silk jetty
#

yeah

unborn flicker
#

But I doubt I would scrap the whole thing

silk jetty
#

it's better to do that

shy cloak
#

no it isn't; other people can find the serious flaw and point at it

unborn flicker
#

...you don't know what you're talking about

silk jetty
#

yeah I know

shy cloak
#

lul

silk jetty
#

I know absolutely nothing

#

and am bad at pretending I do

shy cloak
#

you rock homothety

unborn flicker
shy cloak
#

i f5'd like a madman

#

lol the hint system if block i love it

unborn flicker
shy cloak
#

i love the new macros too

#

this time unironically

unborn flicker
#

They're a huge mess as boolean expressions, but it makes it much easier to cover every possible scenario

#

Also makes changing logic across items much easier

shy cloak
#

Yeah makes it easier to read too, honestly. Rather than some weird polymorphism blah blah blah

#

oops you mean the logic

unborn flicker
#

Oh, did you mean the while loop on the randomizer?

#

I like the boolean controls on that too

shy cloak
#

Haven't gotten in there yet; thought you meant the hint system for where the item is 😃

unborn flicker
#

Oh, oh

#

I get it now 😄

#

The things in logic are actually called macros, so that's what confused me

shy cloak
#

It's dumb because that stuff looks "noobish" but honestly I would prefer stuff to look like that all over the place rather than chopping everything into classes you only use once

#

Yeah I actually do love the macros in the logic, too. Should make it way easier to read the logic 😃

pseudo pewter
#

Make it happen

copper nacelle
#

no

pseudo pewter
copper nacelle
dusky lion
#

^

pseudo pewter
#

^

#

But do it now

hazy sentinel
#

@pseudo pewter make it happen

pseudo pewter
#

I don't know how to mod

copper nacelle
#

learn

#

make it happen

silk jetty
#

2 keys and lantern

pseudo pewter
copper nacelle
#

make it happen

safe hamlet
#

alright

copper nacelle
#

no not you

safe hamlet
pseudo pewter
#

yes you 003

#

please

fair rampart
#

Rad Markoth in the ascended No Eyes arena when

pseudo pewter
#

I can't

hazy sentinel
pseudo pewter
#

hydra pale prince when

copper nacelle
#

when you make it

safe hamlet
#

^

#

make it happen™

silk jetty
#

welp, time to do a cyclone slash baldur kill

weak lodge
#

56 stop

copper nacelle
#

why

weak lodge
#

cause

#

eventually™

copper nacelle
#

hurry up buddy

weak lodge
#

your particles are god though

#

well the trails i mean

#

gj

safe hamlet
#

maybe i should start it too just so you hurry up

weak lodge
#

im never going to

safe hamlet
#

plus i want to work with particle system™

weak lodge
#

you go ahead

safe hamlet
#

that's what you think

weak lodge
#

ill make my version when i feel like it

#

so never™

#

if you want i can give you my ideas so you can execute it

#

56 what mod name

copper nacelle
#

the trick is changing the name at the end

dusky lion
#

modding idea

weak lodge
#

anything planned for it so far or is this just a test run thing

copper nacelle
#

i was just bored

weak lodge
#

imagine being more productive than me while bored

silk jetty
#

whats the best way to do elder baldurs with cyclone slash

weak lodge
#

hows room rando been

#

uh

#

trail and error sherma

silk jetty
#

fuck

weak lodge
#

it wasnt that hard for me

#

took 20 minutes yet but worth it

safe hamlet
#

you can do them with cyclone slash?

unborn flicker
#

Yeah. You just stand at the point where they close and go back and forth

#

Great Slash doesn't work though

silk jetty
#

it's really annoyingly precise

safe hamlet
#

o

silk jetty
#

okay, the first one was a waste of time

#

because flukenest useless without having vs

#

so greenpath it is

#

something that worries me, if hornet doesnt have anything good I have to do cyclone slash baldur shell

#

thank god, hornet had dive

unborn flicker
#

thank god, flukemarm access

silk jetty
#

it's also access to the area under resting grounds

#

with soul eater

#

but I cant get to soul eater so it's just a chest

mellow elbow
#

I mean, crystal peaks

#

although without mantis claw...

#

what? you can get to cp with dive

silk jetty
#

you can get to cp with just lantern lmao

#

thats how I got cyclone slash

mellow elbow
#

erp

#

forgot you had lantern

silk jetty
#

oh god I better not have to check quick slash or mato

#

because I'm not paspid pogoing without anything

copper nacelle
#

that's what you think

silk jetty
#

unless logic says you need some sort of movement ability to get there

#

although I guess I could shade skip

#

which would be easier than paspid pogos

unborn flicker
#

Things which are possible are generally easier than things which are not possible, yes

#

Though I doubt you have the items for the shade skip either

silk jetty
#

I might

#

if I'm good enough at stalling with wraiths

#

and I could probably also damage boost

#

hell yeah

#

I made it

unborn flicker
silk jetty
#

would've been really easy if I had another mask lmao

#

ngl if I die to a great hopper I'm noclipping past that

#

all that for lifeblood heart at mato

#

and idk what yet at qs

#

I dont think I can get to qs

solemn rivet
#

not with that attitude

silk jetty
#

I should probably be working on something I need done for school tomorrow rather than talking on discord or doing hk randomizers

hazy sentinel
#

silk jetty
#

thats a fair arguement

safe hamlet
#

imagine going to school

silk jetty
#

pretty easy to imagine real life

jovial vault
#

Good luck for your homework

silk jetty
#

hahanope, not bothering with it

jovial vault
#

I have an exam in half an hour and im really sleepy

#

ooof

silk jetty
#

I'll get it done in study hall

jovial vault
#

Living on the edge

silk jetty
#

yeah

#

basically

#

and I might get some of it done on my phone

#

while I try to get tired

charred parrot
#

so Star vs The Forces of Evil just ended

#

by any chance does anyone follow that series at all?

silk jetty
#

no

copper nacelle
charred parrot
#

because I've got some stuff I need to rant about

safe hamlet
unborn flicker
#

this but

solemn rivet
#

who was it that asked me to ping them when I was streaming again?

safe hamlet
solemn rivet
safe hamlet
#

wow ignoring me

#

i also asked you

solemn rivet
#

wait I'm still finding it

unborn flicker
#

That emote pairing is incredible

solemn rivet
safe hamlet
#

what are you going to stream?

solemn rivet
#

uhh

#

anything, I guess

copper nacelle
#

math

solemn rivet
#

sure

copper nacelle
#

yeet skeet

safe hamlet
#

yes math

solemn rivet
#

lemme just start the stream...

unborn flicker
#

Right before my shower notlikequirrel

#

I will become clean and then join the math viewing party

solemn rivet
#

how streamer mode

#

oh it's working

#

nvm

charred parrot
#

I decided to turn on all messages for notifications on this server

#

mad idea

solemn rivet
#

it's on sid

copper nacelle
safe hamlet
#

reee

#

it shows only 1 viewer tho

dusky lion
#

query:

#

do all of you understand bread integrity

copper nacelle
#

no

dusky lion
#

please this is important

halcyon finch
#

So I'm not seeing a summary for Benchwarp in the doc, someone mind giving me a summary for it?

copper nacelle
#

you can warp to benches you've sat on

halcyon finch
#

just, from anywhere?

#

or from bench to bench

unborn flicker
#

from pause menu

halcyon finch
#

okay that makes it super helpful, thanks

unborn flicker
#

someone who is good at time please help me budget this. my family is dying

copper nacelle
#

spend less on first pass items

unborn flicker
#

no

#

I think there are 3 main time-consuming things which happen during first pass

#

Everything else is just adding and removing from lists

#

My gut feeling is the only thing that takes time is calling stuff from logic manager

leaden hedge
#

well you can get rid of the first part !reachedLocations by removing locations as you add them, and you only need to update it if the item has any locked items behind it

unborn flicker
#

I did the first part already, but I can try moving it behind a progression check

leaden hedge
#

what does parselogic do

unborn flicker
#

At init, logic manager parses the logic and stores the boolean expression as a list of strings. Parse logic takes that list and evaluates it as a stack, using the obtained[] argument

leaden hedge
#

strnig comparisons are kinda slow

unborn flicker
#

That seems like it might have shaved some off? The last three tests were all ~ .25 s

leaden hedge
#

you could probably do all your comparisons really fast, by converting your requirements + obtained to a number like say your items are just claw, dash, djump and cdash
say you have claw + djump can do obtained = 1 + 0 + 4 + 0
then for requirements, says its just claw thats 1 + 0 + 0 + 0
then if requirements & obtained = requirements its reachable

unborn flicker
#

Unfortunately, most items depend on over ~20 bools logically right now

#

So I don't think there's an efficient way to convert that to an enum

#

Anything outside the top left corner of the map has a billion routes and settings involved (metaphorically)

#

Thanks for the suggestions though!

solemn rivet
#

Comments

unborn flicker
#

I added too many comments oh noes 😱

solemn rivet
#

Not that

unborn flicker
#

lagging the code I mean

solemn rivet
#

You're just solidifying the point that I'm the only one who doesn't comment his code

#

I know I should

#

But I just don't care enough

unborn flicker
charred parrot
#

commenting and organizing code?

#

pffft

#

sounds both dumb and gay

leaden hedge
#

well you have an array copy straight away, thats nice

unborn flicker
#

I can probably shave at least half that time by filtering out all the baldur kill items and duplicate spells/etc

#

And maybe more with some creative way to retain which locations we confirmed each progression to give access to, to be able to skip at least some tests on the next call

leaden hedge
#

you could probably make the function noticably faster just by making obtained into a list

#

and not even using obtained at all

charred parrot
#

the people in art just called me a code monkey

leaden hedge
#

and just adding to obtainedItems, then removing right after

unborn flicker
#

Still has to convert to array for ParseLogic, but I see what you're saying

leaden hedge
#
        private static List<string> GetProgressionItems(int reachableCount)
        {
            List<string> progression = new List<string>();

            foreach (string str in unobtainedItems)
            {
                if (LogicManager.GetItemDef(str).progression)
                {
                    int hypothetical = 0;
        obtainedItems.Add(str);
                    foreach (string item in unobtainedLocations)
                    {
                        if (LogicManager.ParseLogic(item, obtained))
                        {
                            hypothetical++;
                        }
                    }
        obtainedItems.Remove(str);

                    if (hypothetical > reachableCount)
                    {
                        progression.Add(str);
                    }
                }
            }

            return progression;
}
#

i mean parselogic should be able to take a list

unborn flicker
#

Yeah, I could clone it with a list argument

leaden hedge
#

you can still do

List<string> whatever;
whatever[x];
#

i mean you'd have to replace the default one anyway

#

and make obtained a list

#

it shouldn't be an array anyway, as it isn't a static size

unborn flicker
#

Yeah, the only thing ParseLogic even does with obtained is
stack.Push(obtained.Contains(logic[i]));

rain cedar
#

You could change this all into a bitmask

leaden hedge
#

well you have it as an array probably because the variable you have to pass into it is an array too

rain cedar
#

Would be way faster

leaden hedge
#

I already said that

rain cedar
#

Well it's a good idea

leaden hedge
unborn flicker
#

Would that not require computing a truth table for each item's logic, essentially?

rain cedar
#

No

#

You can still parse the postfix expressions

#

Just with bitmask tokens instead of strings

unborn flicker
#

Ah, now I see

leaden hedge
#

but you also definitely shouldn't be mallocing an array and copy from another array to it

#

when you can just use a list

unborn flicker
#

But really the ideal overhaul would be for ParseLogic to take an int argument

#

Or perhaps convert the obtained list into an int inside its body I suppose

leaden hedge
#

you'd always have it as an int

#

and just add 2^n when you pick up the items at position n in the list of progression items

unborn flicker
#

Ok, cool. That sounds way faster than the current system

jovial vault
#

exam done nice

charred parrot
#

how long until you AWAKEN fully

gilded lotus
#

how long until lazy notices im big fan

jovial vault
#

you fool

#

i am about to nap

leaden hedge
#

no

charred parrot
jovial vault
#

i feel like you have that on hand at all times

charred parrot
#

FaSteST fiNGErs in ThE wESt

jovial vault
#

i just realised ark is in this server

#

need to @ him and expose you

charred parrot
#

oh no

jovial vault
#

kdt vs ark would be interesting

gilded lotus
#

check your dms lazy

charred parrot
#

Zaliant we're not looking for more composers atm :/

#

we're not looking to add new people period

#

unless they're like

gilded lotus
#

reeeee

charred parrot
#

a god tier animator/artist

gilded lotus
#

thats me

jovial vault
#

please we need animators

#

i am dying alone

gilded lotus
#

i can draw stick figures

charred parrot
#

I will legit find someone mino have no fear

#

I'm working on a guy

leaden hedge
#

gay

jovial vault
#

lazy. wording.

#

he's going to come and be like "what do you mean your animation workflow is like this"

charred parrot
#

makes stuff like this

leaden hedge
#

also I have no problem with unity

#

besides the things about it that are shit

charred parrot
jovial vault
#

does he have animation work rn?

#

yeah those are p nice

charred parrot
leaden hedge
#

like why can't I access sprites, by name 😠

#

why do I either have to use the animator OR attach every sprite 1 by 1 OR write my own image parser

charred parrot
#

its a feature

leaden hedge
#

a feature that I can't use their built in atlas + sprite sheet unpacker, and use the name of those subsprites to access them

#

is the fact the animator for 2d is just the 3d animator, with no effort to actually facilitate features a 2d animation system wants+needs, a feature too

#

why is animation blending even an option on 2d sprites

#

how often do you blend between 2 sprites in 2d

charred parrot
#

KDT make HK 2 Electric Boogaloo

leaden hedge
#

i can't actually program a game buggy enough to be hk2

jovial vault
#

isn't that what we were doing lazy

charred parrot
#

shhh shhh shut the fuck up

jovial vault
leaden hedge
#

i think I can avoid getting oob within 2 minutes

charred parrot
#

I disagree

leaden hedge
#

I don't use unities physics ever

#

So its generally pretty hard to get oob

charred parrot
#

rb.velocity = new Vector2(xSpeed, rb.velocity.y); is all you need

#

boi

#

dun dun duuuuuun

leaden hedge
#

Nice

#

No way unity will ever fuck it up

#

I can think of literally 0 unity games with janky physics

charred parrot
#

its fine we're all fine

#

and to be fair it all leads back to that vector2 so if I want to change it it'll be easy

leaden hedge
#

the nice thing about unity is its renderer works

charred parrot
#

what a compliment

#

they're apparently updating physics quite drastically in the coming months though

#

something something dots?

#

not too sure of the specifics

leaden hedge
#

maybe games won't have that trademark unity feel

buoyant obsidian
#

trademark unity physics

#

fun stuff

urban olive
#

Someone pls help

#

Where does modinstaller put uninstalled mods

#

I made a mod to change the soul cap but accidentally uninstalled it

#

Like an idiot and now it’s gone from the installer

#

Wait can I just get a new copy off VS

#

Galaxy brain

#

How do I build it to a DLL again

hollow hearth
gilded lotus
#

C:\Program Files (x86)\Steam\steamapps\common\Hollow Knight\hollow_knight_Data\Managed\Mods\Disabled @urban olive

urban olive
#

Ty

#

My dumb ass just ended up building a new dll but now I know for future

solar jacinth
#

hello lock Jeever's dumb ass

gilded lotus
#

rude'

copper nacelle
#

modding-help is installing-mods-help

floral furnace
#

literally just press the build drop down lock

hollow hearth
#

mmmmmmmmmmmmmmmmmmm

#

okthen

solemn rivet
#

@urban olive if it's Uninstalled it's gone forever. If it's disabled, it's in the folder zaliant mentioned

#

Mino and lazy: there's some guy streaming art

#

You guys should contact them

solar jacinth
#

may i ask why they would contact someone who arts ?

solemn rivet
#

Oh yeah sugar is artsy too

jovial vault
#

art, sigh

weak lodge
#

wow someone actually good at art in modding

solar jacinth
#

only mino , not me tbh

jovial vault
#

i would disagree

jovial vault
#

don't post art here, this isn't gallery smh

#

also that's not not really good, at least for my standards

solar jacinth
#

it is better than most of the artist here

#

also that ralsei art

#

was

#

great

jovial vault
#

thank you

solar jacinth
#

yw

#

well you didnt give up on way of learning something

jovial vault
#

off topic but there's not a lot in comparing yourself to people less better than you and thinking you're better than them 🤔 it only makes your growth stagnate too

solar jacinth
#

you earned it

jovial vault
#

eeeeh i guess

#

i was initially planning to go into art which is why i got really good at it

#

then i was like 😩 what if i dont

solar jacinth
#

what if you do

jovial vault
#

it's not something i really like enough to do it as a career honestly

solemn rivet
#

Yeah

#

I think it's best to keep hobbies as hobbies tbh

#

Even if they make you some money on the side

solar jacinth
#

improve your hobbies

solemn rivet
#

As soon as a hobby becomes work... It doesn't necessarily stop being fun, but that stops it from being a release, a coping mechanism

jovial vault
#

^

solemn rivet
#

That's how I see it at least

jovial vault
#

that's exactly how i feel about it honestly

solemn rivet
#

Because even if you work with something you love doing and love doing what you work with... It's still work, you know? There's still pressure, deadlines, expectations etc.

floral furnace
#

omega this

jovial vault
#

also sugar you can most definitely get really good at hobbies. i got way above most hobbyists at art and had a lot of fun w/ it

solemn rivet
#

You still need something to get away

jovial vault
#

yeah

#

your destressing mechanism becomes your stress

solemn rivet
#

Yeah...

#

I wish I had your passion for art, mino

jovial vault
#

i just got good over a year

#

where's that image again

solemn rivet
#

I'm way too lazy for something that requires that much dedication

jovial vault
#

i mean you mod stuff

#

so i would disagree

solemn rivet
#

Badly

jovial vault
#

i gave up on art for a solid year because i was tired of putting in effort

solar jacinth
#

best comeback ever

solemn rivet
#

I wish I could do that to my phd ngl

jovial vault
#

and came back and suddenly got better so big think

#

aww

solar jacinth
#

sometimes the key to improve your skill , is a small touch . For art like brush settings etc....

solemn rivet
#

Small touchGWczoneTentacles

solar jacinth
#

im speechless

jovial vault
#

sigh

solar jacinth
#

its one of the rare times me being serious and you are like

#

amazing

jovial vault
#

i hope stuff w/ your phd works out btw

solar jacinth
#

phd dunq

solemn rivet
#

when things get too serious I like to lighten the mood with a silly joke

#

yeah, phd

#

ty mino

#

it's very stressful

jovial vault
#

i can imagine

solemn rivet
#

at some points I even stop liking maths altogether

#

basically what we were just saying

solar jacinth
solemn rivet
#

bugün saat

jovial vault
#

this is not portugese

solemn rivet
#

oh

#

my mistake

shy cloak
#

Doctor Tentacles when?

solemn rivet
#

soon ™

solar jacinth
shy cloak
#

noice

jovial vault
#

how was your day of birth

solemn rivet
#

what don't you understand sugar

#

oh yeah

#

how was it dapper?

solar jacinth
#

what the fuck is doctor tentacles ??

shy cloak
#

oh yeah

solemn rivet
#

it's me, sugar

solar jacinth
solemn rivet
#

I don't get your confusion

jovial vault
#

also gradow grimmwink just do art to destress from math like how i recently dropped art to take maths

#

who else could it be

solemn rivet
#

I can't, mino

jovial vault
#

ye i know

solemn rivet
#

I would, if I could

shy cloak
#

it was pretty good! overshadowed by family visiting, but none of my family celebrates so it was just a normal very busy day. Party's this weekend with my wife's family that actually celebrates.

solemn rivet
#

I mostly use gaming and modding tho

#

nice

jovial vault
#

that's cool!

shy cloak
#

yeah thanks for asking dudes 😃

jovial vault
#

yeah as long as you have something to destress with

solar jacinth
#

gradow can you please draw the head of the knight and send it here ?? i wanna see it

solemn rivet
#

no

#

if you've seen my streams you know how bad I am at drawing

shy cloak
#

See I had a question about commutation relations for a 5x5 rubik's cube the other day. If I'd have known you were a maths dude i would have asked

solar jacinth
#

yea i saw it

solemn rivet
shy cloak
#

I was trying to get that checkerboard quilt pattern thing done and got stuck with a few steps

jovial vault
#

gradow is the methematics person

solar jacinth
#

the way you write math formulas maggot

solemn rivet
#

what's wrong with the way I write math formulas sugar?

solar jacinth
#

problem is me

jovial vault
#

oh you should see how i solve math problems then

#

it just slowly devolves into chicken scratch

shy cloak
solemn rivet
#

oh yeah you weren't there last night mino

jovial vault
#

i had my maths exam :^)

shy cloak
#

Actually heres the issue. Technically still unproven because I solved the problem a different way

solar jacinth
#

proceeds to solve a math problem
hollowwow
fails at second question
wearytiso

shy cloak
#

I didn't know how to formalize it to see if it's even possible or not

#

I think it's impossible but I dont know how to "prove" it

solemn rivet
#

prove what?

#

that you can't get the checkerboard pattern on a 5x5x5?

shy cloak
#

If the moves are numbered 1 through 6, you actually only need 1, 3, 5. And I think there are some more moves you can reduce

#

No just that one picture

solemn rivet
#

I don't get that picture

#

what are 1,2,3,4?

shy cloak
#

I eventually got the checkerboard done, just using different stuff than in that picture

solemn rivet
#

are they the pieces of the cube?

shy cloak
#

Yeah it maps to the cube somehow. If you x, y a face, they'd be the pieces 2,2 2,4 4,2 4,4

solemn rivet
#

you lost me

#

I thought we were talking about a 5x5x5?

#

so each face has 25 pieces

shy cloak
#

Mostly I just needed to know if it was possible to take 1243 and change it to 1234 using the moveset on the bottom of the picture

solemn rivet
#

well,ok

#

that's basic symmetrical group theory

shy cloak
#

Yeah I made it weird. I have a map for myself on how to take an answer from that picture and translate it to cube

solemn rivet
#

ok

#

so you know group theory?

shy cloak
#

Vaguely ?

solemn rivet
#

or at least how to represent permutations using cycles

#

like the permutation that takes 1234 to 1324 is given by (2 3)

#

are you familiar with that notion?

shy cloak
#

sorry switched devices

solemn rivet
#

np

shy cloak
#

i'm not actually, but is that "2 switches with 3" or something much different

unborn goblet
#

p!!!!!!!!!!!!NG

solemn rivet
#

yup

#

"2 goes to 3 and 3 goes to 2"

shy cloak
#

so if I reduced the moveset to permutation representations then it would be easier

solemn rivet
#

so (1 2 4) would take 1234 to 2431 because "1 goes to 2, 2 goes to 4 and 4 goes to 1"

unborn goblet
#

y ping

solemn rivet
#

makes sense?

unborn goblet
#

i curse u all with smol pener now

#

ha

shy cloak
#

Perfect sense

solar jacinth
#

@unborn goblet

solemn rivet
#

jokes on you, got no pener

unborn goblet
#

REEEEEEEEEEEE

solar jacinth
#

@unborn goblet

solemn rivet
#

so now I got a brand new small pener

#

ty m8

shy cloak
#

I had small pener way before you were born dawg

solar jacinth
#

@unborn goblet
#4897

unborn goblet
#

c** u c***

solar jacinth
#

wha?

unborn goblet
#

wait no

shy cloak
#

it's a miracle i have children

solar jacinth
#

⎛⎝✘MLGFREAKHD✘⎠⎞
#4897

unborn goblet
#

i wanted to say can u cant

solemn rivet
#

ok, stop this

unborn goblet
#

but holy this looks cool

solar jacinth
#

sure

shy cloak
#

Thanks gradow I'll see if I can use that

unborn goblet
#

cucc, what does that mean again?

solemn rivet
#

ok, dapper, so basically

unborn goblet
#

its like zucc

#

and/or succ

#

idk

solemn rivet
#

you can prove that any permutation of four elements is just composition of permutations of 2 elements

#

any

#

in mathsy terms, we say that {(1 2), (1 3), (1 4), (2 3), (2 4), (3 4)} is a spanning set for all permutations of four elements

shy cloak
#

That's fair, except that with cubing I don't have access to those 2 element permutations

solemn rivet
#

yeah

#

that's why I wanted to understand your notation

#

because if it's just taking 1243 to 1234 using the permutations you have written, it should be fairly straightforward if you decompose them into cycles

shy cloak
#

I only had ((1 2) (3 4)), (1 2 3 4), and (1 4 2 3) or something similar

#

There's another problem with moves 3 and 4 though in that it moves the "slots" they're supposed to be in

#

Because it's a full rotation of the cube, no move involved. So it doesn't help move the #s into the right slots

solemn rivet
#

(1 2 3 4)=(1 2)(1 3)(1 4)
(1 4 2 3)=(1 4)(1 2)(1 3)

#

hmm

#

yeah, sorry, I'm lost in your notations

shy cloak
#

Yeah that's fair

#

I think the moveset is only 1 and 2: Either ((1 2) (3 4)) or ((1 3) (2 4)) or "mirroring" along either axis, and then what I called "Rotation3" where you can pick any corner and rotate the other three, so (1 3 4 2) or (3 2 4 1) or (2 4 3 1) or (2 3 1 4)

#

I never had like formal maths training beyond calculus, and it's been like a decade or more so my brain thinks bad with stuff

#

I'm really used to thinking for programming too which doesn't help when I'm trying to get back into math because variables are so similar yet completely different

unborn flicker
#

Really loving this diagram which omits that each top face is glued to the next bottom face, clockwise 😕

#

I wish I knew how to compute homology for the homology pset due in an hour

#

Well, we aren't doing homology over Z since our professor decided (correctly) that we couldn't handle modules, but over R so it's kinda easier

hazy sentinel
#

homathety

solar jacinth
#

▤▧▥▨▤

solemn rivet
#

I really should learn proper homology/algebraic geometry/algebraic topology

#

homothety can I ask you a question regarding homology groups?

unborn flicker
#

yeah

#

though like I said, we're doing homology on vector fields because we're bad at quotients zote

solemn rivet
#

that's fine

#

so, take a non-negatively graded chain complex X

#

and let H(X) be its chain of homologies

#

since each X_n is a vector space over a field, say K, we can look at its dual vector space, X_n* := Hom(X_n,K)

#

this gives us a cochain complex X*

#

non-negatively graded as well

#

sounds fair so far?

unborn flicker
#

yeah, I follow

solemn rivet
#

ok

#

so we can compute the homologies of this cochain complex, H(X*)=ker d/im d

#

but

#

let's go back to the original chain complex

#

we have the following ses defining the homology:
0 ---> Bn(X) ---> Zn(X) ---> Hn(X) ---> 0

#

so if we restrict our focus to finite dimensional vector spaces, the functor Hom(-,K) is actually a duality and, therefore exact

#

so we get the following ses
0 ---> Hn(X)* ---> Zn(X)* ---> Bn(X)* ---> 0

#

So Zn* is just coker d and Bn* is just coim=im (by the first isomorphism theorem)

unborn flicker
#

yeah

#

This is cohomology, right?

solemn rivet
#

what's the relation between Hn(X)* and Hn(X*)?

#

yeah

#

most places define cohomology as the homology of the cochain

#

but it seems to me that this is a more natural concept of co-object

#

are they isomorphic?

#

are they homotopically equivalent?

fair rampart
#

what in-

unborn flicker
#

interesting

jovial vault
#

good old maths

fair rampart
#

I'm out of here before my trying to understand this rots my brain

unborn flicker
#

I haven't given cochains any thought before, so I don't know what to make of it

solemn rivet
#

in the few examples I tried out, it seems they are in fact equal

#

but I can't, for the life of me, prove it

#

or even find a proof on stackexchange even

#

like, I have this result that I was trying to prove on my dissertation, and I needed cohomology. Using Hn(X*) it was impossible to prove it, but using Hn(X)* it was literally trivial to prove it.

unborn flicker
#

Oh, huh

solemn rivet
#

"impossible" in the sense that I couldn't do it, not that it was a logical contradiction or anything

unborn flicker
#

Yeah, as instinct I would guess that the diagram with the duals commutes, since this all feels well behaved(?) I haven't done anything with cohomology yet though, so I really couldn't say

solemn rivet
#

yeah...

#

I actually have never taken a formal course on homological algebra

#

so I am always doubting myself in every step

#

but I've asked people who know a lot about cohomology and they think those are the same thing, but can't think of a proof either

#

so for now I'm just assuming they are at least homotopically equivalent, because that's enough for me

#

since I'm going to localize on homotopies anyway

#

ty btw

shy cloak
#

mostly this channel is amazing btw

solemn rivet
#

No u

urban olive
#

Gradow are you a CS major

jovial vault
#

he's doing a phd in maths

solemn rivet
#

I'm a maths major

gilded lotus
#

I’m depressed major

shy cloak
#

@unborn flicker still have the dll chilling somewheres? Gonna play a bit because I'm lacking motivation today

unborn flicker
#

I'm in class now, but it should be 5th or 6th if you search from:me has:file

shy cloak
#

oh durp

#

i looked at releases on gh

#

thanks

jovial vault
#

on your phone in class hmm

unborn flicker
#

in the front row too

jovial vault
#

tsk tsk

shy cloak
#

yesterday at 6 pm pacific sound right?

gilded lotus
#

Modlog.txt

unborn flicker
#

yup

#

We are learning about kidneys, but we take lots of breaks

jovial vault
#

i thought you were a maths major?

buoyant obsidian
#

look a new mod

gilded lotus
#

Very cool but how does that work in Terraria since this is about that game

shy cloak
#

No this is RimWorld

jovial vault
#

ah you mean rain world

gilded lotus
#

Risk of rimworld

#

2

unborn flicker
#

Unfortunately, one sometimes must take useless classes Mino

#

So I am in Measure Theory and Algebraic Topology, at the same time as Physiology and European History

jovial vault
#

fair enough

#

im currently studying european history funnily enough

safe hamlet
#

hello people

weak lodge
#

sid returns

jovial vault
#

happy 2 am

shy cloak
#

What are "Long Checks"

unborn flicker
#

Right now: White Palace and Grubberfly

shy cloak
#

oh sick

#

you're a genius

unborn flicker
#

Once minor items are randomized, it will probably include Grimm notch, Colosseum pale ore, and a few other grub/essence rewards

shy cloak
#

as well as normal pale ores and notches or nah?

unborn flicker
#

?

shy cloak
#

I always wanted pale ore locations rando'd cuz I suck at low damage

unborn flicker
#

Those were the long items that would be removed

shy cloak
#

OH

#

durp ok

gilded lotus
#

homothety isn't so great? Are you kidding me? When was the last time you saw a modder with such an ability and finesse with C#? Homothety puts modding in another level, and we will be blessed if we ever see a modder with his skill and passion for the game again. 56 breaks records. Saleh breaks records. KDT breaks the rules. You can keep your statistics. I prefer the magic.

jovial vault
#

bring in the copypasta lads

unborn flicker
#

That's true. If you've ever seen me trying to figure out the difference between a list and array while coding rando on the fly, you've seen true genius

dusky lion
#

scills

jovial vault
#

at least you're still modding tho
the rest of the modding staff cant say that

shy cloak
#

using System.Linq; array.ToList()

gilded lotus
#

56 can

#

actually is he

#

still doing the watcher knights thing

shy cloak
#

It took me an hour once to figure out why .ToList wasn't working

unborn flicker
#

Speaking of data storage and such

#

Is it possible to add flags to a [flags] enum at runtime?

shy cloak
#

dynamic enums?

copper nacelle
#

wdym add flags

#

Add members?

unborn flicker
#

yeah

#

Like parse the xml then add progression items

copper nacelle
#

not afaik

unborn flicker
#

that's what I thought

shy cloak
#

i don't think there's such a concept as dynamic enums in C#, but you could make a dictionary do something similar

unborn flicker
#

Probably easier to just type it up once

copper nacelle
#

@jovial vault but I'm working on room rando ♿

unborn flicker
#

There's not that many progression items

jovial vault
#

56 youre beyond modding staff you dont count

copper nacelle
#

monkaHmm

unborn flicker
#

So I'll make a [flags] enum which has all the settings and progression items in it

copper nacelle
#

Homothety, make sure to set the values on the enum members

#

[flags] is just for a nice ToString

unborn flicker
#

And I'll preparse the logic to replace string item names with enum ints

copper nacelle
#

Also technically since enums are just ints you could do a dict

unborn flicker
copper nacelle
#

And just cast ints to enum members

#

Yeah

unborn flicker
#

That way converting item names to int to add them in will be easy

copper nacelle
#

like (Obtained) 8 is valid even though there's nothing for 8

#

Also mino Sean is working on like two mods

unborn flicker
#

so what's the problem with not having it defined for 8?

copper nacelle
#

nothing

unborn flicker
#

ok, that's what I thought

copper nacelle
#

which is why I said you could do it

unborn flicker
#

as long as I'm careful not to have a situation where it adds something invalid

copper nacelle
#

the only downside is no nice ToString and Enum.Parse won't work without defined values I think

jovial vault
#

ah what's he working on rn?

#

it's late and im running on my last brain cell

copper nacelle
#

Remade enemy rando and a summoner mod

jovial vault
#

aah i see

dusky lion
#

What happened to room rando

jovial vault
#

56

dusky lion
#

I c

safe hamlet
#

room rando when

#

also i was doing PoP at school, my laptop died at the final room 🙃

#

but PoP is not hard tho, it's definitely not as hard as people say it is

#

with infinite soul totems, it's very doable

dusky lion
#

@copper nacelle cg2 mod when 🤗

copper nacelle
#

I already did that

#

begone

#

awa even streamed it

dusky lion
#

I know that’s the joke

copper nacelle
#

safe hamlet
#

cg2?

copper nacelle
#

Finding a sln file when

#

Crystal guardian 2

safe hamlet
#

o

copper nacelle
#

I made a mod which replaced every enemy with cg2

safe hamlet
#

very nice

jovial vault
#

the only mod that matters

copper nacelle
#

@unborn flicker so if you're "adding" them at runtime via casts you'll want to store the string to int in a dict because Enum.Parse won't work with members that aren't defined at compile time

unborn flicker
#

Hmmm

#

I don't expect to add any more progression items

#

So I think for convenience it will be easier to just type this up once and never have anything break

#

there's only 30 or so, iirc

#

And it has to check against them even with vanilla placements, so it wouldn't even vary between settings

rain cedar
#

I would generate it fully at runtime

#

The enum seems kinda useless

unborn flicker
#

so generate it as a dict?

#

and then perform bitwise operations using the dict to provide values as necessary?

rain cedar
#

If it's a dictionary of string to int you're still doing string comparisons

unborn flicker
#

I mean store obtained as an int and use the dict to add items to obtained, rather

#

And use the dict to replace all the strings in each logic with ints at init

rain cedar
#

Yeah something like that

#

int is probably not enough, though

#

uint or ulong

unborn flicker
#

monka

#

Yeah that sounds good

#

So logic will become a list of "|", "+", and longs as strings, I suppose

#

Or would it still be slow to convert each long from string back to long?

rain cedar
#

You could dedicate the first couple bits to the operators

#

That way there's no strings at all

unborn flicker
#

Ah, perfect

rain cedar
#

Or a new struct with a token type and operand

#

Since it's a bit awkward to have operators in the mask

unborn flicker
#

Since I'm a bit inexperienced, could you explain what that means in more detail?

#

Sorry for the trouble

shy cloak
#

Why is logic changing to something obscure instead of readable?

leaden hedge
#

you should only need one bit right, just set the most significant bit i.e. negatives as a flag for don't read this as a literal, but an operator

unborn flicker
#

logic isn't changing

#

how logic is processed is changing

shy cloak
#

okay

#

still why

#

i am mostly curious, no judging....... yet.

unborn flicker
#

because right now it takes half a second to randomize, freezing the game

shy cloak
unborn flicker
#

because of string comparisons

shy cloak
#

But it only does it once right?

#

That's a small price to pay for simpler code imo

unborn flicker
#

I don't know if this is really making the code more complex

#

It just slightly changes how the xml is processed, and what we call to add to obtained items

leaden hedge
#

its not even simpler

#

99% of programmer can understand what a bitmask is doing

unborn flicker
#

Ok, so the idea for operands is that I replace "+" with -1 and "|" with -2?

#

And check that when parsing the logic

leaden hedge
#

and
a&b = a is leagues faster than

while(match || i >= str.Length || i >= str2.Length){
    match = str[i] == str2[i];
}

or however string compares are programmed

#

probably less naively than that but still probably pretty slow

shy cloak
#

Ah there it is

#

Didn't realize it was string comps in o(n^2)

leaden hedge
#

yeah you can do

    switch(logic){
        case -1: whatever;
        case -2: whatever;
        default: bitmask;
    }
unborn flicker
#

Nice, thanks

leaden hedge
#

aslong as you never use 64 bits

unborn flicker
#

right, ofc

#

that shouldn't be an issue, I think

#
         private static List<string> GetProgressionItems(int reachableCount)
        {
            List<string> progression = new List<string>();
            string[] obtained = new string[obtainedItems.Count + 1];
            obtainedItems.CopyTo(obtained);

            foreach (string str in unobtainedItems)
            {
                if (LogicManager.GetItemDef(str).progression)
                {
                    obtained[obtained.Length - 1] = str;

                    int hypothetical = 0;
                    foreach (string item in unobtainedLocations)
                    {
                        if (LogicManager.ParseLogic(item, obtained))
                        {
                            hypothetical++;
                        }
                    }

                    if (hypothetical > reachableCount)
                    {
                        progression.Add(str);
                    }
                }
            }

            return progression;
        }

This code causes the lag issues @shy cloak

#

It has to parse the logic for a lot of locations for each unplaced progression item whenever it's called

#

I think it was something like 90% of the randomization time came out of calling this function about 10 times, when I was testing last night

shy cloak
#

what's reachable count?

unborn flicker
#

reachableCount is the current number of reachable locations

#

So it's basically brute-forcing a list of all progression items which unlock new locations

shy cloak
#

yikes

#

The bitmask seems less scalable, but I guess there are finitely many items that can unlock new locations...

unborn flicker
#

I mean, there's always longlong zote

#

If I'm generating it from the xml data, it won't require code modifications to add new items

shy cloak
#

You're only iterating over unobtained locations, right?

#

can't you just break the for loop the first time an item unlocks a location?

#

I guess in some cases it'll keep going if an item doesn't unlock a location, but it should cut the run time by quite a bit, I would think

unborn flicker
#

No, because there is one unobtained location which is accessible, if this function is called

#

Oh huh, I guess reachableCount is 1 by definition, if this gets used

#

It would've been much higher in Sean's version

shy cloak
#

Oh this is the special case if there's only one location left?

unborn flicker
#

This is the first choice if there's only one location left

#

If it returns empty, then the randomizer starts guessing

#

which is actually much less resource intensive

shy cloak
#

so "unobtainedLocations" is a list of 1 item? or is that something different?

unborn flicker
#

unobtainedLocations is all unobtained locations. This occurs when reachableLocations is 1

shy cloak
#

Oh oh okay

#

So can you check if hypothetical >= 2 then break the inner loop?

unborn flicker
#

You could, but that wouldn't be random

#

I suppose you could randomly sort the order in which you check items

shy cloak
#

Oh snap

#

okay

unborn flicker
#

So I might do that in addition to implementing the bitmask

#

create a permutation and then draw elements from the list by index

shy cloak
#

The bitmask is probably the smartest way to do it; I'd probably either leave the wait in or do some weird stuff with the location logic

#

Reduce the RPN (postfix) to include "true" then reduce the logic if I have an item so it doesn't have to re-parse that logic every time...

#

I made a console app to play around with post fix logic parsing. Right now it can take a logic string from the xml and return the skips as a new logic string to display to the user

#

i'm not making sense probably, but I wanted the logic expressed only as the skips, if they were required for a location

#

For example if I'm looking at this logic: (CLAW + (DASH | SUPERDASH | WINGS | ((FIREBALL | SCREAM) + FIREBALLSKIPS))) | (WINGS + (DASH | ((FIREBALL | SCREAM) + FIREBALLSKIPS)) + SPIKETUNNELS + SHADESKIPS)

And have only DASH, FIREBALL, and WINGS it'll spit back: SHADESKIPS + SPIKETUNNELS

#

Because those are the skips I would need in order to get to this location

#

And once again i have contributed nothing to the current convo gg me

#

hey homothety you should try bitmasks

safe hamlet
#

how would i instantiate specific number of objects and start moving them at the same time? like the radiance nail fan

rain cedar
#

for loop

shy cloak
#

giant if block

safe hamlet
#

so i guess first instantiate them and store them and later add the component that moves them?

rain cedar
#

Why make them before you need them?

safe hamlet
#

i want them to move at the exact same time, instantiate adds a small delay

shy cloak
#

instantiate then disable, enable them when you're ready

safe hamlet
#

that would require storing tho, wouldn't it?

shy cloak
#

yeah

safe hamlet
shy cloak
#

I could be wrong in the nail case, but i think most of the stuff in the game is added to the scene by team cherry, and the FSM just enables and moves the thingies

safe hamlet
#

yea there's an object pool spawn for markoth's nail

unborn flicker
safe hamlet
#

why a while loop

unborn flicker
#

the greatest mystery of all

#

incidentally, I forgot both lines with i++

rain cedar
#

I'm gonna end up redoing the styling for all of this code anyway

unborn flicker
#

That's fine by me

#

I have minimal knowledge of conventions or optimality, so I'm happy just to make it work

rain cedar
#

You can download resharper if you want

#

Style helper

#

It has mostly good default settings

#

But I disagree with some of them

#

Like using var

solemn rivet
#

what's your opinion on using _ before variable names

#

cause resharper likes that

rain cedar
#

I like it

#

I used to do it until something else told me it was bad

#

But now resharper is telling me it's good so I'm validated

solemn rivet
#

btw

#

is there any downside to using var for foreach loops and such?

rain cedar
#

The only downside to var in any situation is less clarity

#

It doesn't change compilation at all

#

If it can't infer the type at compile time it'll tell you not to use var

solemn rivet
#

oh

#

so that's how var works

rain cedar
#

var is good in one case only imo

#

If you have some really really stupid data type initializer

#

Like csharp var thing = new List<Dictionary<string, Dictionary<int, List<string>>>>();

#

Type is still obvious and it halves the line length

solemn rivet
#

right

rain cedar
#

Better solution though is to not have that data type

safe hamlet
#

i use var when the type is clear

#

but then again i don't really pay attention to them most of the times

rain cedar
#

I have found something stupid

#

That's every half hour at 60fps

#

Realistically more like every 5-10 minutes

#

So if you get a small stutter every 5-10 minutes

#

Now you know why

safe hamlet
#

interesting

solemn rivet
#

wait wut

#

where's that

rain cedar
#

GCManager

solemn rivet
#

wut dat

safe hamlet
#

Garbage Collector Manager

#

C# normally does handle garbage collection, but GC.Collect forces it

solemn rivet
#

right

unborn flicker
#

That mistake took me way too long to find

rain cedar
#

You're using += and -= for the bitmask?

#

Is that the mistake or do you mean something else here?

unborn flicker
#

No the mistake was adding unobtained locations to progression

rain cedar
#

Ok well += and -= makes no sense

#

I guess it works

#

It's just really odd

unborn flicker
#

Yeah, I understand what you're saying

charred parrot
#

homo what are you doing

unborn flicker
#

There's no failsafe if it tries to add something twice that way

charred parrot
#

(also if that's not your preferred nickname my bad)

unborn flicker
#

I guess it should be "|" for adding a new item, right?

rain cedar
#

Yeah |=

unborn flicker
#

Oh neat, that's easy

rain cedar
#

And for removing &= ~thing

unborn flicker
#

I'll fix that then

#

I'm changing the way the randomizer parses item logic Lazy

#

Before it used a ton of string comparisons

#

But now there's a bitmask

rain cedar
#

It used to be recursive infix parsing

#

Probably should've gone further than just fixing that when I did

#

But it was good enough for the single pass randomization

#

Hey does anyone know if there's mods other than randomizer that rely on activeSceneChanged and/or sceneLoaded being called directly after initialization?

#

Because the API preloading is either going to break that or another thing unless I put in a lot of extra work

#

And if just randomizer is gonna break that's fine, it's a 1 line fix

safe hamlet
#

you mean mods that check for main menu and stuff?

rain cedar
#

Yeah

safe hamlet
#

prolly just randomizer

#

since most mods are bosses or specific gameplay stuff

unborn flicker
#

Benchwarp uses activeSceneChanged to check for main menu, but it only needs to work after s&q

#

That's a fix I borrowed from Mantis Gods, iirc, for the savesettings bug

safe hamlet
#

also how does preloading break it?

rain cedar
#

The Unity pipeline goes
Scene Loaded
|
V
Call Start on MonoBehaviours
|
V
Call activeSceneChanged

#

The relevant parts here at least

#

Previously mod loading was done from Start on the OnScreenDebugInfo script

#

Now it's done from a coroutine after reloading the main menu

#

So there's literally no way to load the mods in the same part of the pipeline with the current setup, since you can only wait for full frames, not pieces

#

I could fix it but it's really not worth the effort over adding 1 line to the end of randomizer init

safe hamlet
#

i see

unborn flicker
#

Ok, I think it all works now. Randomization time is pretty much unnoticeable!

rain cedar
#

The last one in the log doesn't look like it worked properly

#

There's no items other than the progression

unborn flicker
#

Only skills were randomized for that test

#

I did skills+charms+keys+easy, skills+charms+keys+geo+hard, skills+mag

rain cedar
#

I see

unborn flicker
#

Funny enough, based on that placement order it might have been a forced longnail baldur in logic

#

negated by wings at dnail, but whatever