#programming

1 messages · Page 67 of 1

real sierra
#

wtf that was fast

tender river
#

not hard

stark needle
#

battlemage

opaque sigil
#

interesting, bun runs out of memory but node ends up with a stack overflow
guess jsc does not reuse the buffer neuro7

jagged turtle
#

💀

tender river
#

chat we're behind our target of 1k neuroPogHDs by the end of june get on it

#

actually the target was 1400 but we're not getting that at this point

opaque sigil
#

Not very neuroPogHD

warped narwhal
#

How many neuroPogHDs are we at rn?

rigid snow
#

i have noticed the usage of neuroPogHD has fallen significantly in the last month

#

just an observation neuroPogHD

real sierra
#

neuroPogHD i will never let this emote die

wary rover
#

I’m beginning to feel like a heap_bomb, heap_bomb

real sierra
tender river
#

fell off neuroSadge

rigid snow
final tinsel
#

got curious and booted up a llamafile to see what diff models would say when I ask "who is Neuro-Sama?", and Qwen3 14B did some pretty good deduction tbh

wary rover
#

does not appear to be widely recognized public figure
AI on AI slander is not only limited to Grok, huh?

real sierra
#

"neuropoghd is the best emote ever"

sage crag
rigid snow
#

for some reason it feels like i see it much less lately

tender river
#

propaganda is working

#

it has infiltrated your daily life

#

it's become so normal to you you don't even notice it

rigid snow
past crane
#

any1 have experience forking python

#

im gonna mod it and I have some questions

#

trying to prep a game plan to make sure its stable

real sierra
#

forking python?

#

you dont see that every day

sage crag
#

im sure its the most common one

rigid snow
#

i always wanted to fork a lua interpreter and make it more sane, but that at least seems more manageable

#

i would not touch python with a 10ft pole

#

pythons are scary snakes

past crane
#

I wanna do a pinpoint mod on the python.gram file. Which is the file that dictates syntax

#

And by pinpoint, I basically mean turn it into a forked DSL

tender river
past crane
#

if I put a specific import on top of a file, it means fork the syntax to instead follow custom rules. Those rules completely being custom down to the smallest detail

#

so rn trying to figure out how much of that file I can modify without causing cascading effects

sonic oriole
#

I have a question about streaming to everyone who streams. So I have a really good PC and I have decent Wi-Fi at best. I run a gigabyte of Wi-Fi but every time when I try to stream like very big games like expedition 33 or resident evil four remake the game runs so smoothly do my screen, but when I look at twitch, the game is so framing. Does anyone know how to deal with that cause I’ve watched so many YouTube videos changed the bit rate and done everything that every YouTuber has said?

past crane
sonic oriole
#

I’ve moved it down to 30 frames but the video quality on twitch makes it very framing, even though it’s nice and smooth on my end

#

I wanna believe it’s my Wi-Fi but I just upgraded recently so I really don’t know

faint sandal
#

I won't trust streaming with WiFi

fast pagoda
#

hey guise

#

u think this will do a good job

real sierra
#

you too are suffering i see

fast pagoda
#

of parsing the clearly json

#

coming from this

jagged turtle
real sierra
#

run length encoding mentioned?

fast pagoda
#

ye the pixel canvas is using it rn for sending the grid data to the frontend

real sierra
#

im of the opinion that the best compression scheme is just BWT then RLE repeated until the file size goes up instead of down

faint sandal
#

Bacon whopper tomato

opaque wharf
#

Or if you need compression do QOI neuroPogHD

fast pagoda
#

he's going the distance

sonic oriole
#

And my mom wouldn’t want the wire to be from the living room to my room

#

Is there like something else I’m able to do

faint sandal
#

no

sonic oriole
#

Not even an adapter

real sierra
#

progress on my AI for this weird RTS, it now automatically queues units up according to some simple rules, there's currently a unit type for resource collection and a unit type for upgrading the room controller neuroHypers

opaque wharf
#

But I don't know how your house is wired exactly

opaque wharf
wary rover
#

I feel like this game for coders is like Eurotruck Simulator for truckers

real sierra
#

always one upgrader unit

opaque wharf
#

Which yes, also needs real code to be done

real sierra
#

i tried bitburner but it was a bit too much like work

sage crag
#

i wonder who has sent the most neuroPogHD

real sierra
opaque wharf
real sierra
#

PauseSama the controller is getting energy...

#

it's halfway to upgrading to the next level

#

then i can build tons of new structures

wary rover
#

I cannot help but admire people who clock out of their jobs just to go home and play My Job: The Game

sage crag
#

nesus has 566 neuroPogHDs

#

just89 has 429 neuroPogHDs

#

together they are about 35% of the total neuroPogHD usage

hoary lion
tender river
#

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

opaque wharf
#

Chay crash out episode LFG

tender river
#

im fighting the compiler

#

and by fighting i dont mean like making it compile my code

#

i mean actual physical battle

opaque wharf
tender river
#

im in so uch pain right nooooooooooooow

opaque wharf
#

I can only wish all the best to you neuroPogHD

sonic oriole
fast pagoda
opaque wharf
#

Because using powerline means you don't really need to pull new cable

sonic oriole
#

I don’t know if my mom would want to do that though

tender river
opaque wharf
#

The standard is IEEE 1901

real sierra
#

update on RTS

#

whoever gave me the idea to track some stats like income as a metric

#

thank you

#

this was the numerical crutch i needed for constructing a strategy of some kind

stark needle
#

stop counting neuroPogHD and sleep instead

opaque wharf
#

Like that spreadsheet simulator game (was it EVE?)

real sierra
#

nah it totally went over my head the first time

fading olive
#

Yes, Eve Online has it's own Excel plugin

real sierra
#

i figured the game would provide every metric i needed via its api, otherwise i wasn't meant to do it as it'd be too performance-killing

#

now of course i see this is not the case

opaque wharf
tender river
opaque wharf
#

Or yes, a game but you build your own client neuroHypers

real sierra
#

oh i wanted some critical input on a very underused feature in this game

#

your units can say, in a publicly-visible chat bubble above them, arbitrary strings of text

#

any ideas for a good war cry

opaque wharf
#

Could also use taunt from monty python

#

"Your mother was a hamster, and your father smelt of elderberries"

olive sable
#

Goodmorning neuroWaveA

real sierra
#

neuroWaveA sam

#

did you count your neuroPogHD before bed

#

ive been told it helps one sleep

olive sable
#

I actualy counted the amount of hours of sleep i will get

#

Which was 5

#

Not very fun to count

tender river
#

common misconception

olive sable
real sierra
#

speaking of which

#

any suggestions on how to target and kill enemies?

olive sable
#

Witch hunt NODDERS

real sierra
#

nono i mean in this game

tender river
#

on them

real sierra
#

nope

#

fog of war

#

i can only see rooms that have at least one of my units in them

tender river
#

no yeah i meant that its not units making individual decisions

olive sable
#

Bombs?

real sierra
#

oh

#

yeah

#

the AI is global

#

consider all units networked

#

im more worried about the small scale right now tho

tender river
#

you can assemble groups of units and send them to fight, plus retreat or ask for reinforcements when the enemy is too strong

real sierra
#

like, if there are enemies in a room

#

how do i pick which enemies my units should target

tender river
real sierra
#

im worried about the compute limit tho

tender river
real sierra
#

a bunch of problems in this space boil down to "attack the thing closest to you"

tender river
#

idr the specifics of how units work

real sierra
#

which ends up being a not fun calculation

ruby ice
#

"sudo kill -9 <id_RKN>" does cool things. It's a pity that it doesn't work as I would like

real sierra
#

and ranged and melee units

tender river
real sierra
#

pathfinding and target selection

#

there is built-in pathfinding which caches quite nicely

#

so that's not a huge concern

tender river
#

you can try incremental pathfinding, process some info on one tick and some on another

#

ah i see

real sierra
#

actually

#

one pathfinding problem is trying to get units to travel together

#

the built-in pathfinding works for singular units

#

trying to move a group in a fixed formation is much harder

#

i dont suppose there's a solution that would neatly wrap the fast built-in pathfinding

opaque wharf
real sierra
tender river
#

yeah i assume the issue is tight spaces and such

real sierra
#

using standard pathfinding may have the leader take a route that doesn't permit the formation

#

yeah

tender river
#

that does require basic BFS but thats not really hard

#

if you want you can leave gaps too

opaque wharf
#

Or just flood fill with initial value counted down

#

Now that I think about it Flood fill is BFS

tender river
#

if you want you can do something similar to BFS but with bias towards one or two directions too

#

to create various formations

real sierra
#

there is another option maybe

#

i can pass this to the pathfinder

#

with this i think i can set all the tiles neighbouring impassable tiles within a certain range as impassable as well

#

then i can pathfind the center of my formation

tender river
#

then some passable terrain may become impassable

real sierra
opaque wharf
real sierra
#

for simplicity, if im moving a 3x3 block

tender river
#

no please believe my misinformation

real sierra
#

then wherever i place the center of this block, it's either overlapping with impassable terrain or not

#

shouldnt be anything falsely marked as impassable

#

so then i just pathfind over the tiles that remain after setting any unfit tiles to max pathfinding cost

#

and the path that results should be one that would be valid for this 3x3 square to traverse

#

then i just fit my units into a 3x3 square and i win

tender river
olive sable
tender river
#
### ###
### ###

XXX
XXX
XXX

anyway
# = terrain, X = your units

here you cant move them in a 3x3 square through the tunnel but you can make them temporarily go into the tunnel and form a square again on the other end

real sierra
#

that seems rather hard to coordinate

tender river
#

this is easily achievable through bfs

real sierra
#

having the units disassemble and reassemble sounds painful

olive sable
#

Bfs NODDERS
(Idk boy that is but sure)

tender river
#

its not actual disassembling and reassembling its them moving as close as possible to the center unit

#

which is usually just a square

#

but not a square in case it cant be a square

opaque wharf
real sierra
#

but i dont want to track all that state...

tender river
#

you dont have to you can compute it as necessary

opaque wharf
#

As opposed to Depth First

olive sable
#

Breds first search niuh

#

What is bred searching for?

opaque wharf
olive sable
#

@trim valve any comment?

opaque wharf
real sierra
olive sable
tender river
#

i would think bfs is not much more expensive than just putting them in a 3x3 grid

olive sable
#

Just guesstimate, its fine

#

Probably

real sierra
#

guesstimate

opaque wharf
real sierra
#

honestly maybe i can worry less about cpu limit than i am

#

im only using 2% of my cpu limit right now

#

with 8 units running around

olive sable
#

Shiro wanting to minmax compute niuh

real sierra
#

i sure do

#

the game only allocates me limited compute per tick

opaque wharf
#

Also you can always switch strategy midways

real sierra
#

if i exceed that limit, my script stops running

#

and then my state is ruined

opaque wharf
#

When focusing on combat or exploration or resource collection

real sierra
#

then i have to figure out an algorithm for when to switch

#

sounds like 4 hours in MS paint drawing diagrams

opaque wharf
real sierra
#

mhm add neuro sama

tender river
real sierra
#

i did see a really weird feature earlier

#

you can mark segments of your memory as public

#

and then other players can read it

#

seems bizarre

tender river
#

probably for clans

#

wait its just public

real sierra
#

cant think of many uses for it solo, but i guess with friends you can export your vitals with a one-time pad or something

opaque wharf
real sierra
#

yeah its just public

tender river
#

well you can use encryption i guess

real sierra
#

yeah

#

just one-time pad it and you win

#

share a fixed key with your counterparts

tender river
#

one-time pad requires a single-use key

real sierra
#

nahhhhh its fine glueless

#

nobody will read into it that far

tender river
#

otherwise its not one-time

real sierra
#

ok then how about

tender river
#

aes-256-cbc? neuroPogHD

real sierra
#

n neurOMEGALUL

#

needs to be extremely lightweight

opaque wharf
#

Chacha it is

real sierra
#

probably just instantiate an LCG and take the nth element as an xor key, with n = current game cycle

#

true one-time pad

opaque wharf
real sierra
#

dont publish the code

#
            let selected = energyStructures.find((structure) => structure.structureType == STRUCTURE_STORAGE);
            if (!selected) selected = energyStructures.find((structure) => structure.structureType == STRUCTURE_CONTAINER);
            if (!selected) selected = energyStructures.find((structure) => structure.structureType == STRUCTURE_EXTENSION);
            if (!selected) selected = energyStructures.find((structure) => structure.structureType == STRUCTURE_SPAWN && structure.store.getFreeCapacity(RESOURCE_ENERGY) == 0)
#

is there a better way to do this

tender river
#

for loop and find all four at once, breaking if you found STORAGE

real sierra
#

is for loop faster susge

tender river
#

or rather, find just one but use a comparison function

real sierra
#

usually built-in iterators are better, aren't they?

opaque wharf
real sierra
#

Aware how did js go so wrong

tender river
opaque wharf
tender river
real sierra
#

oh wait i have an even better one

#

nvm i cant find it now

#

thank god i removed it

#

it was a gross chain of maps and filters

tender river
# real sierra ```js let selected = energyStructures.find((structure) => structure....
let found = {};
const lookup = { [STRUCTURE_SPAWN]: 1, [STRUCTURE_EXTENSION]: 2, [STRUCTURE_EXTENSION]: 3, [STRUCTURE_STORAGE]: 4 };
for (const item of energyStructures) {
   if (lookup[item.structureType] > lookup[found.structureType]) {
     if (item.structureType === STRUCTURE_SPAWN && structure.store.getFreeCapacity(RESOURCE_ENERGY) !== 0) continue;
     found = item;
     if (item.structureType == STRUCTURE_STORAGE) break;
   }
}
real sierra
#

gx_letsgo OUTSOURCING

real sierra
#

why do we set found to {}

#

to begin

tender river
#

oh right 1 > undefined is false

#

then set found to {structureType: null}

#

wait no thats not how it works

opaque wharf
#

Or Numbers.negativeinfinity

tender river
#

the original is fine

opaque wharf
#

Wait, is it?

tender river
#

no it isnt

real sierra
tender river
#

you also have to add null to lookup or whatever

opaque wharf
#

Imma move to the desktop just for this chay

real sierra
tender river
#

idk shiro figure it out

real sierra
#

im working on other code while you guys solve this

#

Ok go team

tender river
#

im working on json rpc actually i just remembered i solved it and am waiting on a compiler bugfix so um im reading the hott book

olive sable
#

Nah someone put their water bottle in the x-ray machine neuroMonkaOMEGA

#

He be drinking that irradiated H2O

real sierra
#

🔬 mhm theres water in this water

opaque wharf
#
enum StructureType {
    STRUCTURE_STORAGE,
    STRUCTURE_CONTAINER,
    STRUCTURE_EXTENSION,
    STRUCTURE_SPAWN
}

enum ResourceType {
    RESOURCE_ENERGY
}

interface Structure {
    structureType: StructureType
    store: {
        getFreeCapacity(type: ResourceType): number
    }
}

const energyStructures: Structure[] = []

let selected = energyStructures.find((structure) => structure.structureType == StructureType.STRUCTURE_STORAGE);
if (!selected) selected = energyStructures.find((structure) => structure.structureType == StructureType.STRUCTURE_CONTAINER);
if (!selected) selected = energyStructures.find((structure) => structure.structureType == StructureType.STRUCTURE_EXTENSION);
if (!selected) selected = energyStructures.find((structure) => structure.structureType == StructureType.STRUCTURE_SPAWN && structure.store.getFreeCapacity(ResourceType.RESOURCE_ENERGY) == 0)
#

Just finished typing it out first

#

Sheesh, just compile ts next time and copy paste the result lol

#
enum StructureType {
    STRUCTURE_STORAGE,
    STRUCTURE_CONTAINER,
    STRUCTURE_EXTENSION,
    STRUCTURE_SPAWN
}

enum ResourceType {
    RESOURCE_ENERGY
}

interface Structure {
    structureType: StructureType
    store: {
        getFreeCapacity(type: ResourceType): number
    }
}

const energyStructures: Structure[] = []

let selected: Structure | null = null
for (let i = 0; i < energyStructures.length; i++) {
    const structure = energyStructures[i];
    const { structureType } = structure;
    
    if ([StructureType.STRUCTURE_CONTAINER, StructureType.STRUCTURE_EXTENSION, StructureType.STRUCTURE_STORAGE].includes(structureType)) {
        selected = structure
        break;
    }

    if (structureType === StructureType.STRUCTURE_SPAWN && structure.store.getFreeCapacity(ResourceType.RESOURCE_ENERGY) === 0) {
        selected = structure
        break;
    }
}
tender river
#

this has different semantics though so it doesnt really work

opaque wharf
#

Is it counted by the # of operation?

#

The compute cost I mean

uneven pulsar
opaque wharf
#

Oh, I misunderstood the original code

real sierra
#

compute is measured in cpu time i believe

opaque wharf
#

But also, wtf are you doing shiro

real sierra
opaque wharf
#

In the original code

real sierra
#

i have units that need to fill their energy stores before using it on whichever tasks they have

#

at different phases in the game, different storage structures are available

#

some more preferred than others for withdrawls like this

#

spawns in particular require their energy for creating new units, so its not ideal to drain that completely; thus i thought it reasonable to only sap their energy reserves if they are full

opaque wharf
#

Oh so it's just finding the most preferred structure from the whole list

real sierra
#

yeah

opaque wharf
#

Yeah, I definitely misunderstood that one big time lol

real sierra
#

oops neuroTehe

opaque wharf
#

May not be obvious but don't forget to check the length of the energyStructure list and the first item if its already the most preferred one. Also perform additional check inside the if if it is a spawn

enum StructureType {
    STRUCTURE_STORAGE,
    STRUCTURE_CONTAINER,
    STRUCTURE_EXTENSION,
    STRUCTURE_SPAWN
}

enum ResourceType {
    RESOURCE_ENERGY
}

interface Structure {
    structureType: StructureType
    store: {
        getFreeCapacity(type: ResourceType): number
    }
}

const energyStructures: Structure[] = []

let selected: Structure = energyStructures[0]
for (let i = 1; i < energyStructures.length; i++) {
    const structure = energyStructures[i];
    const { structureType } = structure;

    if (selected.structureType > structureType) {
        selected = structure
    }
}
#

If the StructureType is not enum in your preferred order/cost then perform the lookup

real sierra
#

thank you very much

opaque wharf
#

You can also break early when you've found the most preferred structure

real sierra
#

i wasnt too worried about that for now, as the most preferred structure is very late-game

#

but certainly later on that's a good optimization

opaque wharf
#

Man, my tism just making me wanted to optimize it now lol. Wait

#

I believe this is all of the optimization that I mentioned

enum StructureType {
    STRUCTURE_STORAGE,
    STRUCTURE_CONTAINER,
    STRUCTURE_EXTENSION,
    STRUCTURE_SPAWN
}

enum ResourceType {
    RESOURCE_ENERGY
}

interface Structure {
    structureType: StructureType
    store: {
        getFreeCapacity(type: ResourceType): number
    }
}

const COST_LOOKUP = {}
COST_LOOKUP[StructureType.STRUCTURE_STORAGE] = 0
COST_LOOKUP[StructureType.STRUCTURE_CONTAINER] = 1
COST_LOOKUP[StructureType.STRUCTURE_EXTENSION] = 2
COST_LOOKUP[StructureType.STRUCTURE_SPAWN] = 3

const energyStructures: Structure[] = []

if (energyStructures.length > 0) {
    let selected: Structure = energyStructures[0]
    let selectedCost = COST_LOOKUP[selected.structureType]
    if (selectedCost !== 0) {
        for (let i = 1; i < energyStructures.length; i++) {
            const structure = energyStructures[i];
            const { structureType } = structure;
            const currentCost = COST_LOOKUP[structureType]

            if (currentCost < selectedCost) {
                if (structureType === StructureType.STRUCTURE_SPAWN) {
                    if (structure.store.getFreeCapacity(ResourceType.RESOURCE_ENERGY) === 0) {
                        selected = structure
                        selectedCost = COST_LOOKUP[selected.structureType]
                    }
                } else {
                    selected = structure
                    selectedCost = COST_LOOKUP[selected.structureType]
                }
            }

            if (selectedCost === 0) {
                break
            }
        }
    }
}
real sierra
#

i would be scared to be your neighbour in this game

opaque wharf
#

Nah, I'll just write some code and then forget the game exists after a while neurOMEGALUL

real sierra
#

if you write good enough code that's a perfectly valid strategy

#

there's api functions to send yourself emails if interesting things do happen neurOMEGALUL

opaque wharf
#

Don't pull me to the game again now

real sierra
#

if you let me get too far ahead i'll be unstoppable

#

ive got them placing roads automatically now

opaque wharf
#

Someone should host a fan server so #programming can have competition sometime hehe

real sierra
#

if i had a server pc id totally do that

#

i think we could rope tons of people here into it

#

i can already see the 50 creep "Evil's Holy Army" detatchment showing up to steamroll some poor guy trying to learn javascript

real sierra
#

switched from private server to official server

#

the CPU limit here is 20 instead of 100

olive sable
#

I have a pc left, but i dont write javascript so nah

real sierra
#

nor do i

#

its just like weird python

tender river
olive sable
#

I can look into it when im back maybe

#

Server pc will be used for the gamejam probably anyways

real sierra
#

ooh

#

i found some eye bleach code

#
// finds the nearest empty construction tile around the given position
    findConstructionTileNear: function(room, x, y) {
        const areaData = room.lookAtArea(Math.max(0, y-20), Math.max(0, x-20), Math.min(49, y+20), Math.min(49, x+20));
        let r = 1;
        while (r <= 20) {
            // dy = -r
            for (let dx = -r; dx <= r; dx += 2) {
                const dy = -r;
                if (x+dx < 0 || x+dx > 49) continue;
                if (y+dy < 0 || y+dy > 49) continue;
                const conflicts = areaData[y+dy][x+dx];
                if (conflicts.every(function (c) {
                    return (c.type == 'terrain' && c.terrain != 'wall');
                })) {
                    return {x: x+dx, y: y+dy};
                }
            }
            // dy = r
            for (let dx = -r; dx <= r; dx += 2) {
                const dy = r;
                if (x+dx < 0 || x+dx > 49) continue;
                if (y+dy < 0 || y+dy > 49) continue;
                const conflicts = areaData[y+dy][x+dx];
                if (conflicts.every(function (c) {
                    return (c.type == 'terrain' && c.terrain != 'wall');
                })) {
                    return {x: x+dx, y: y+dy};
                }
            }
            // dx = -r
            for (let dy = -r; dy <= r; dy += 2) {
                const dx = -r;
                if (x+dx < 0 || x+dx > 49) continue;
                if (y+dy < 0 || y+dy > 49) continue;
                const conflicts = areaData[y+dy][x+dx];
                if (conflicts.every(function (c) {
                    return (c.type == 'terrain' && c.terrain != 'wall');
                })) {
                    return {x: x+dx, y: y+dy};
                }
            }
            // dx = r
            for (let dy = -r; dy <= r; dy += 2) {
                const dx = r;
                if (x+dx < 0 || x+dx > 49) continue;
                if (y+dy < 0 || y+dy > 49) continue;
                const conflicts = areaData[y+dy][x+dx];
                if (conflicts.every(function (c) {
                    return (c.type == 'terrain' && c.terrain != 'wall');
                })) {
                    return {x: x+dx, y: y+dy};
                }
            }
            r++;
        }
        console.log("Failed to find an empty building spot around ("+x+", "+y+") in room "+room.name);
        return null;
    },
#

thoughts

tender river
#

who needs functions when you have copy paste neuroPogHD

#

i approve

real sierra
#

loops are expensive

#

copy paste is free

tender river
real sierra
#

chayleaf you see right through me

tender river
opaque wharf
real sierra
#

ok well i got my code in a place im happy (?) with

#

time to let it simmer for a night and see how far it gets by tomorrow

#

chose the worst starting room humanly possible too, just to stress test it (i wasnt paying attention at all)

#

thank you all for your help, may my screeps grow up strong and healthy

tender river
# real sierra ```js // finds the nearest empty construction tile around the given position ...

i'm so sorry i got bored of the book

// finds the nearest empty construction tile around the given position
    findConstructionTileNear: function(room, x, y) {
        const areaData = room.lookAtArea(Math.max(0, y-20), Math.max(0, x-20), Math.min(49, y+20), Math.min(49, x+20));
        for (let i = 1; i <= 40; ++i) {
            const delta = i % 2 ? 1 : -1;
            for (const vertical of (i === 40 ? [false] : [false, true])) {
                for (let j = 0; j < i; ++j) {
                    if (x >= 0 && x <= 49 && y >= 0 && y <= 49 && areaData[y][x].every(c => c.type === 'terrain' && c.terrain !== 'wall')
                        return { x, y };
                    if (vertical) y += delta;
                    else x += delta;
                }
            }
        }
        console.log("Failed to find an empty building spot around ("+x+", "+y+") in room "+room.name);
        return null;
    }
opaque wharf
#

TIL of Array.every()

olive sable
#

Time for more vulkan teading in the plane

#

Going on vacation means turning battery protection off and power saving on

#

Im already on 50% at 8am like damn

amber fractal
hoary lion
#

i love torturing myself with math

olive sable
hoary lion
#

smol plane

#

relatively

#

node 18 eol

noble zodiac
#

ryanair o7

amber fractal
olive sable
#

Welp, going dark

#

Ill be back in like 2-3 hours

#

Unless i crash and die

amber fractal
#

Take this imaginary :bwaadow: on your trip

olive sable
amber fractal
#

It'll serve you well

olive sable
#

If i die carry me legacy on

#

And make shadow do the thing

amber fractal
#

neuro7 You got it

olive sable
#

Bye

hoary lion
stark needle
#

Bro's never to be seen again 😭

tight tinsel
#

llc tag!!!

stark needle
stark needle
#

thats what happens

#

when u don't buy into my crypto coin

hoary lion
#

DONT make marketable plusified lilac into marketable playdough figure

hoary lion
#

do something 😭

tender river
# real sierra thoughts

also shiro the optimal way to look for the closest tile is not spiraling through a regular square but spiraling through a square rotated by 45 deg

#

like this

####4####
###434###
##43234##
#4321234#
432101234
#4321234#
##43234##
###434###
####4####
#

(incidentally, or rather not incidentally, this is precisely the bfs visit order)

#

and didnt know you were british ReallyInnocent

hoary lion
#

anyway

#

gn

tender river
# real sierra thoughts

exercise for the shiro: test this code and fix it if it's broken
good luck neuroPogHD

// finds the nearest empty construction tile around the given position
    findConstructionTileNear: function(room, x, y) {
        const areaData = room.lookAtArea(Math.max(0, y-20), Math.max(0, x-20), Math.min(49, y+20), Math.min(49, x+20));
        if (areaData[y][x].every(c => c.type === 'terrain' && c.terrain !== 'wall')) return { x, y };
        for (let r = 1; r <= 20; ++r) {
            for (let x0 = 0; x0 < r; ++x0) {
                const y0 = r + 1 - x0;
                for (const [x, y] of [[x + x0, y + y0], [x + x0, y - y0], [x - x0, y + y0], [x - x0, y - y0]]) {
                    if (x >= 0 && x <= 49 && y >= 0 && y <= 49 && areaData[y][x].every(c => c.type === 'terrain' && c.terrain !== 'wall'))
                        return { x, y };
                }
            }
        }
        console.log("Failed to find an empty building spot around ("+x+", "+y+") in room "+room.name);
        return null;
    }
trim valve
uneven pulsar
#

I am pretty mutch fucked up

#

It literally got destroyed

maiden grotto
#

rip

olive sable
#

I am alive

rigid snow
#

if not a secret where did you go

olive sable
rigid snow
#

or are you going

olive sable
#

I am in dubrovnick now

rigid snow
#

croatia

#

have you sent the gpu to superbox already ReallyInnocent

olive sable
#

My mom is doing it

rigid snow
#

cool, i thought you bought it and left instantly

olive sable
#

It will be like 35 bucks shipping.
I originaly thought 14 but once you over 2kg its 20 bucks extra

#

WeeeeeeeWaLaWaLa(*≧ω≦)

stark needle
# olive sable

bro survived the 1% survival chance ryanair boeing😭

olive sable
#

Lake

#

Mountains

stark needle
olive sable
#

Anyways, im 85/288 pages into the vulkan docs thing.

#

Still havent seen a single vertex being uploaded

#

It doesnt seem to not be that difficult actually, just need to specify a lot of data

#

And the devug stuff needs to all be done manually

safe path
#

is anyone on xdg-desktop-portals-hyprland, can u confirm that individual window screensharing works

dry charm
#

I can switch on Nix if you want

#

takes a good minute

safe path
#

nah don't bother then, ill just test it directly

dry charm
#

There were others who were using hyprland here iirc

#

Wait, I can just build it in a VM SMILE

trim valve
#

i should try linux w/ hyprland at some point

#

every past attempt in a vm has been less than successful catdespair

scarlet arch
#

speaking of desktop portal: It works in the dev-only communication thing we use (GatherTown), but the moment I try to share something in Teams it craps itself. even pulls down everything with it so my webcam dies too

#

amazing software

#

and it's not even like my setup is... exotic. Arch with KDE and Firefox lol.

real sierra
#

good morning programming

#

I'm so tempted to turn on my computer just to check on my screeps

#

feels like I got a new goldfish or something

#

and have to check on it every 5 mins to see if it magically died while I wasn't looking

safe path
#

i would never experience these problems if i used gnome or plasma i think, since their desktop portal implementation is actually complete

#

but i want to use sway!!!

#

!!!!!

unkempt citrus
#

wait you went to sleep? at what point

ruby timber
olive sable
#

This hotel has a dentist neurOMEGALUL

real sierra
olive sable
#

"A few hours ago"
-> only slept a few hours

real sierra
#

it is what it is

#

(that's my coping mechanism activating btw)

safe path
#

unrelated note, whoever named their library libmagic needs a prize

olive sable
#

🏆

real sierra
#

I like it in here

#

ok I need to go check on my screeps

#

the temptation is killing me

olive sable
#

Bro is an addict

real sierra
#

hello from pc neuroHypers

#

it looks like something broke

#

they're still alive but the builders aren't building]

olive sable
trim valve
#

huh screeps looks neat

real sierra
#

oh

#

i typed "move" instead of "moveTo"

dry charm
#

Oooh, we can host a Neurocord server mmLol

real sierra
#

it actually does support private servers YES

#

the server backend is open source too

#

looks like that was my only bug

#

the builders are working now, constructing roads and stuff neuroHypers

trim valve
real sierra
#

but not necessary

#

you just need to write really efficient code without it

#

you can earn temporary cpu unlocks through in-game economy tho

trim valve
#

neat

real sierra
#

yeah

trim valve
#

it does overall look like a nice game

real sierra
#

i may need to go back through and optimize my code tbh

trim valve
#

shame its javascript but it also fully makes sense

real sierra
#

im at a baseline 3/20 cpu right now

real sierra
#

ive certainly gotten my time out of it

trim valve
#

I might consider it

real sierra
trim valve
#

it mentioned wasm somewhere

real sierra
trim valve
#

but I have no idea how "efficient" that is

real sierra
#

wasm is pretty efficient as a language

#

not sure how it translates into screeps

#

but seen as screeps is browser-based, i cant see it being inefficient

#

the CPU limit is in milliseconds, so if it's strictly faster then you're good

trim valve
#

hm

dry charm
#

wait is it running in-browser?

#

how does it emulate offline then

real sierra
#

kinda like the discord app

dry charm
#

Yeha Iguess that it is electron

real sierra
#

offline it probably just spins up a local webserver

dry charm
#

Or it doesn't even run in your browser

#

and run the code on the server all the time

real sierra
#

i dont think that part is true

#

i think it can run locally in private

dry charm
#

by the description you need a local server

real sierra
trim valve
#

ah so the server runs the scripts in a sandbox, that makes sense

dry charm
#

So everything is calculated on server via sandbox

#

yeah

real sierra
dry charm
#

For the future, we plan to open-source the code of all the system for you to launch Screeps simulation on your local machine and study it.
HOLY BASED

#

I wish I had 100€ to spare

unkempt citrus
real sierra
dry charm
#

this is exactly the project mindset I do not mind supporting with 100€

real sierra
#

AND ITS NOT MY BIRTHDAY

unkempt citrus
real sierra
#

50% off

#

and it was only a few dollars to begin with

dry charm
#

I have 5€ on my card right now evilWheeze

trim valve
dry charm
# trim valve

The bottom one I assume so you have more processing power on the server

#

cycles and stuff

trim valve
#

yeah

real sierra
#

but that only applies to the official server

#

if you host a private or community server, there can be no limits

dry charm
#

self hosted server has unlimited / pre-configured amount

trim valve
#

its mildly weird to me how it measures execution time but it makes sense

#

esp w/ using javascript

dry charm
#

imagine a NeuroCord tournament

trim valve
#

iirc someone made a similar game in rust but you compile to risc-v and it uses qemu to run stuff

real sierra
#

this game is waaaaaaaay too deep in its features

trim valve
#

which is obviously a lot better for measuring stuff like cycles

real sierra
#

and waaaaaay too granular

#

no idea how to optimise any of this

unkempt citrus
#

Rts gamers WICKED

real sierra
#

for one, all units are modular WAYTOODANK

#

you choose any set of parts from which to assemble them

trim valve
#

just realised I replied to the wrong message but glueless point still holds

real sierra
#

well if someone does end up playing this game and getting addicted and starting a private server

#

i would be interested

#

i will most certainly lose

#

but i would be interested

trim valve
#

at some point someone here mentioned doing group programming "competitions" like that but I don't think it really took off enough

real sierra
#

this would be an entertaining way to facilitate that

#

its basically a coding contest with a very amusing success metric

trim valve
#

tbh my only worry is I do the same thing I did with galadiabots and quickly lose interest instead of getting really involved

real sierra
#

for me its easy to keep interest because there's so much depth

stray dragon
real sierra
#

its easy to start with baby steps

#

like making a single unit

#

telling them to go get energy from a source when they're empty

#

and telling them to deposit it at spawn when they're full

#

but you naturally run into new issues as you grow

trim valve
#

:mhm:

real sierra
#

like how to construct roads

#

how to construct defenses

stray dragon
#

i see

real sierra
#

how many of each unit to make

#

what your units should actually look like

stray dragon
#

so it's not just "make a solution for everything all at once"

real sierra
#

yeah

stray dragon
#

it's one problem at a time

real sierra
#

i think the way to go about it is gradual

#

my personal metric for success is how big can i get my colony

trim valve
#

ig compared to galadiabots there's a lot less luck involved / points you'd get stuckk on

real sierra
#

the main bottleneck for that changes as i play

trim valve
#

whereas this seems more like an optimization game

real sierra
#

NPC invaders wont show up until you reach a sufficiently high room control level

#

and late-game there's tons of advanced features, like crafting and player markets

#

plenty to chew on for a while

#

but you can ignore almost all of it at the beginning which i appreciate

trim valve
#

honestly the more I look at how the cpu works the more it actually looks kinda neat

real sierra
#

gx_ez hooked one

trim valve
#

I kinda like how it models the ability to burst

#

😭

real sierra
#

tactical maneuvering is expensive

#

too many distance checks

#

always tanks my cpu Deadge

trim valve
#

I'll sit on getting the game for now, but it defo could be something I enjoy

real sierra
#

ill keep blabbering about my progress and sending screenshots until you buy it

#

over the course of a few days, that is

trim valve
#

oh actually there's a free web demo isn't there

real sierra
#

susge is there?

trim valve
real sierra
#

coding and they released a live demo

rough bloom
#

the Screeps server isn't packaged for Nix yet, it's neurover
maybe I'll give it a shot too, I knew of the game for years but your yapping has slightly motivated me

real sierra
#

this makes like

#

4 people interested

#

that's already enough to justify a neurocord server

#

and @safe path will play too right vanor

#

and @rare bridge

#

you'll both play screeps with us?

#

🥺

safe path
#

uuh

real sierra
rare bridge
safe path
#

i accidentally deleted my entire .config directory

real sierra
#

that's ok you don't need it ❤️

trim valve
#

playing through the tutorial I have no idea exactly how much I'd enjoy it

#

I think it probably would be fun I just need to read a bunch of docs beforehand 😭

olive sable
#

I feel like the cpu lock is one of the fun parts. Minmaxing performance

#

Im down to set up a server and play in 2 weeks or so

trim valve
#

I get the feeling a lot of the game is going to revolve around coming up with better strategies instead of brute force optimizing code

real sierra
#

make a single unit then figure out how to make it move places

trim valve
#

nah I mean I like reading docs

real sierra
#

same but there's too many docs for this

#

trust

trim valve
#

because then I avoid doing some really roundabout strat

real sierra
#

well I guess not that many but

trim valve
#

yeah that's valid

real sierra
#

the majority are not needed

#

you'll be referencing the docs for Creep, Room and StructureSpawn religiously

#

the rest are occasional

trim valve
#

true

opaque wharf
olive sable
#

What is diffrence between world and arena?

trim valve
#

I think world is just a massive map with a bunch of players that evolves overtime

#

and arena is more of a battle, so rounds probably have an end condition

olive sable
#

Which one do i need to buy?

opaque wharf
real sierra
#

I'm playing world

#

world is the MMO one with the online map

#

idk about arena

#

I need to avoid the pitfall I made last time of "wow this worked so well in my head but I didn't realize how many details I glossed over"

olive sable
#

Bought it okp

real sierra
#

now I get to poach your concrete solutions to my issues neuroSmug

#

be sure to post all your code YEP

olive sable
#

I have never written a single line of js in my life

real sierra
#

it's ok it's just python and java squished together

olive sable
#

I have never written a single line of js java in my life

opaque wharf
#

Use typescript, stay sane

olive sable
#

I have never written a single line of js java typescript in my life

real sierra
#

java is just a messed up C#

#

with a bunch of vital features absent

olive sable
#

You get the point

real sierra
#

they're all just

#

C with headaches removed

olive sable
#

I think they support wasm?

real sierra
#

they do (maybe?) idk how to use it tho

#

RTFM

olive sable
#

I think il just do c++ to wasm maybe

real sierra
#

you'll have to see which languages have third party wrappers around the screeps API

#

otherwise you're gonna suffer

rigid snow
#

write the bindings yourself neuroTroll

olive sable
#

Aybe not

#

Idk

#

Ill see

real sierra
#

I didn't know JS when I bought the game either

#

was a great way to learn

olive sable
#

I might just watch a suick tutorial on js and wing it

real sierra
#

Ok that's the way to do it

trim valve
#

yeah I will say you're probably not gonna be getting hit with too much js weirdness

real sierra
#

just remember to put "let" before your variables

olive sable
#

It cant be that hard NeuroClueless
Cant be harder than vulkan at least

real sierra
#

try not to get "in" and "of" confused

rigid snow
trim valve
#

glueless I'd personally write typescript instead of javascript but I am a sucker for types

opaque wharf
rigid snow
#

all smoke and mirrors

real sierra
opaque wharf
#

At least it will have better type inference NeuroClueless

real sierra
#

typescript overrated just write good code

#

first compile 0 errors

#

hmmm

#

I wonder about the merit of using turrets vs creeps for defense

#

creep lifespan gives them an inherent upkeep

#

so turrets might be more cost effective in the long run

#

oh turrets are expensive

#

I probably need to actually use the creep refresh feature for more expensive units, they're not worth losing and remaking

sage crag
#

mrrp mrp meow

real sierra
#

now I'm not sure actually, refreshing them is pricy

#

might be more expensive than making them anew

#

economy is hard

opaque wharf
#

Shiro is procrastinating from the real issue of his embedded project

real sierra
#

but the turret count limit is harder

real sierra
scarlet arch
opaque wharf
#

Any idea of what to eat for dinner?

real sierra
#

chars

#

they're byte-sized

scarlet arch
#

If they're utf8, be careful not to bite between unicode boundaries

trim valve
#

honestly I can't tell if I want to play screeps or just yearning to play factorio without realising

scarlet arch
#

Bred nyasHug7

opaque wharf
#

The factories is calling

real sierra
#

I want to play screeps but have to go to work Sadgi

#

why can't I just get paid to play screeps

pastel nymph
#

Does anyone here have experience using C# in cursor? Is it possible to make intellisense have a function descriptions? For reference, 1st screenshot is vsc, 2nd is cursor

trim valve
#

glueless just become a really popular screeps streamer

#

I'm sure it makes great content and isn't just boatloads of planning

shadow sinew
sage crag
real sierra
#

OfCourse get vedal to play it and then the funds will trickle down

sage crag
#

char is just a language abstraction of course

pastel nymph
sage crag
sage crag
pastel nymph
olive sable
unkempt citrus
olive sable
#

Decided to check out the vulkan triangle example code...
Its 1186 lines neuroMonkaOMEGA

opaque sigil
#

yeah, the memes weren't a lie

lament igloo
#

i got this random idea of an afk offline reward system on a old rpg maker engine like WOLF RPG Editor
here if some of you are interested:

  • find a way to get current time somehow
  • find a way to convert it into a value, so something like a unix timestamp
  • when its time to store time. so lets say... player plants a tree. get current time > convert into value > and store it somewhere (preferrably on a more persistent system)
  • exit the game to test and wait for a few hours
  • when player runs the game again, it checks if stored time > required time. if true, tree grows
wary rover
#

I find it funny that DeepSeek uses the word "vibe" in his thinking. Like, I didnt use it in the prompt

olive sable
#

When you ask the time its always in the unix timestamp systemp for everything ive used so far

sage crag
#

gl though u got this

olive sable
#

It doesnt even seem hard, just a lot of work

shadow sinew
#

The boilerplate to get to a triangle isn't hard no. What's actually hard is all the manual dependency tracking and cache invalidation which OpenGL does for you.

#

To the point where even engine devs don't get it right. neurOMEGALUL

olive sable
#

Opengl is a lot more boilerplate tho

#

This has a lot les overhead

#

Just a lot more work

#

Anyways

#

Triple buffering neuroNOWAYING neuroNOWAYING neuroNOWAYING neuroNOWAYING neuroNOWAYING neuroNOWAYING neuroNOWAYING neuroNOWAYING neuroNOWAYING neuroNOWAYING neuroNOWAYING

#

VK_PRESENT_MODE_MAILBOX_KHR my beloved 😍

#

I dont think opengl has that by default

#

Might be why i was limited to 6k fps

trim valve
#

"limited" 😭

lament igloo
olive sable
#

Just make your engine better NeuroClueless

lament igloo
#

oh just use modern engines
can they support windows xp? troh ofc not (in reality, im just stuck with that engine)

trim valve
#

glueless I should see how performance is on the new gpu

olive sable
trim valve
#

eeeh

#

sorta?

olive sable
#

Its not a 1 to 1

#

But it kinda checks out

trim valve
#

a phone gpu and a desktop gpu will have pretty different performance killers

rough bloom
#

you'll be much more limited by how much geometry you can render and how fancy your shaders are

olive sable
#

Tbh i havent trsted mobile with the c++ version neurOMEGALUL

#

I just thought "2k extra fps is the best you can do?"

#

So ye...

dire trout
#

can I ask a random stupid amateur question

olive sable
#

Yes

trim valve
#

also fps is kinda a bad metric especially at this stage

olive sable
#

Of the 0.150ms, 0.120 is swapping buffers with opengl

rough bloom
rough bloom
#

(just ask, someone will answer if they know)

dire trout
#

it's really stupid, but could I use AI to assist with my learning with programming or is that actually harmful to the process

olive sable
#

It depends

trim valve
#

it depends how you use it

olive sable
#

Jinx

trim valve
olive sable
#

Dont make it write code for you

#

Ask it questions

#

Or if you do make it write code, dont just blindly copy paste

#

Try to understand why and how it does things

dire trout
#

I mean, i tried it once to help assist to develop something, and I understand the process, but individually I don't really understand the functions fully I think

#

like I would get how it works

#

but idfk how to actually use it

olive sable
#

Then ask it. It should be able to explain

stark needle
#

gambling watch!!!!!

olive sable
stark needle
#

The craftsmanship of this is insane tho

olive sable
#

Shadow is probably the least paid luxery watch enjoyer i know

dire trout
rough bloom
stark needle
stark needle
olive sable
dire trout
#

it's hard to explain

stark needle
#

i got this watch as an ad on yt

#

Lmao

olive sable
#

That price has a decimal pount 4 digits too far right for me

stark needle
#

As if i could afford it

trim valve
stark needle
#

it's 500k$

trim valve
#

at what point do they get rid of the clock ands and just give you cool little mechanical trinkets on your wrist

stark needle
dire trout
dire trout
stark needle
#

Same company that made the watch of that certain internet personality with the working bugatti watch

olive sable
#

You mentioned that in a diffrent server

trim valve
olive sable
#

This one right?

trim valve
#

thank you amd software

dire trout
#

right now I'm trying to make a discord bot that helps with event management (yes I know there is this very useful app called calendar)
but I'm still stuck on the base stuff smh

rough bloom
trim valve
#

I'm like 90% sure blenders ui only refereshes on interaction otherwise its like 1fps

#

so it kinda checks out

olive sable
#

2fps for a render is pretty decent

#

Or is it the actual program?

rough bloom
#

the actual program probably

#

normal application UIs can use OpenGL too, but they only render when required

#

but AMDs software doesn't know that, they just see how often it presents frames

olive sable
rich ibex
# olive sable The goal is to make it run at 60fps on phones, to do that i need 5 digits on a 3...

if you plan on coding vulkan for performance, taking a look at this is very helpful https://docs.vulkan.org/samples/latest/samples/performance/README.html, there are even specific pointers and tips for coding for mobile gpus (mali gpu's specifically) in some of the sections. https://docs.vulkan.org/samples/latest/samples/performance/swapchain_images/README.html this section also talks about not using the mailbox present mode for mobile unless you need low input latency

olive sable
#

Yeye, mailbox is bad for power

#

Its prefered for dektop tho

rough bloom
#

no I like VSync
please make it an option to use FIFO catSUS

olive sable
#

I will make it an option ye

#

Im pretty sure emsctipten does vsync by default

#

So this is more like for a downloadable app

#

I wonder if google play store is free neuroThink

rough bloom
#

yeah, default setting can be based on the device ShyNodders

rough bloom
olive sable
#

It is if you have a dev account, which costs 25 bucks apparently

rough bloom
#

ye

#

not worth it for testing, but if you have an actual release then mabe

olive sable
#

Ye

#

I need to figure out copyright first anyways

#

Im freeloading on veds ip

olive sable
rough bloom
#

it actually might if you keep it up for long enough neurOMEGALUL

#

then again, ads

#

eww

olive sable
#

"Watch an ad to support the disabled pleading "

#

Moral blackmail my beloved

rough bloom
#

gate progression behind watching ads

olive sable
rough bloom
#

no, but assuming a cent per ad, you only need like 2500 ads to break even

#

idk ad prices but that doesn't sound too bad

olive sable
scarlet arch
#

wtf is that price

olive sable
#

Having a brand costs money

#

This is rigged

rough bloom
#

cheap

trim valve
#

where on earth are you looking at domains

#

like please consider a real domain registrar like porkbun

rigid snow
# rough bloom cheap

scam price: buy now for practically free, renewal in a year will cost an arm and a leg

olive sable
opaque sigil
#

damn cloudflare doesn't do ph

trim valve
#

yeah I was gonna suggest cloudflare but it didn't support it

opaque sigil
#

yeah some registrars charge extra

rigid snow
#

vercel domains neuroTroll

trim valve
noble zodiac
#

get yourself a .gay domain before the month is over. its a steal

olive sable
trim valve
olive sable
#

Idk what ph even is

opaque sigil
#

phillipines presumably

trim valve
opaque sigil
#

i was right nice

trim valve
#

so yes they're probably going to try and scam you

opaque sigil
#

cloudflare is a good registrar to default to neuroPogHD

olive sable
#

I dont need a brand rn, but it would be pretty cool to hzve one when im actually selling out

noble zodiac
#

I'm using INWX for all my domains

trim valve
#

like consider the following

#

I should probably change my domain to a different tld

rigid snow
olive sable
#

Erm.fish studios neuroHypers

stark needle
olive sable
olive sable
#

Im making shadow ceo, this means he pays my taxes and i use his ip

stark needle
#

😭 😭

#

nooooo

nocturne olive
#

Silliness going on?

olive sable
#

Yes

sage crag
olive sable
#

I still dont really understand this

stark needle
olive sable
#

A company owns it and you rent it?

sage crag
#

how menacing

#

bwa

stark needle
olive sable
noble zodiac
#

I own localhost

#

real and true

stark needle
#

i own 192.168.1.210

olive sable
#

Why cant i just, not rent it?

#

Buy it

stark needle
#

be google and own ur own tld

opaque sigil
#

well, if you have the money and power you can operate your own domain

rough bloom
olive sable
noble zodiac
#

you can request a completely new tld and become its owner. If you happen to have the money and usecase

rigid snow
#

there was a point even google.com has expired and some dude sniped it

olive sable
opaque sigil
olive sable
#

No thanks

noble zodiac
#

what does that mean? your own studio

olive sable
#

Too much papers

olive sable
#

Nd do taxes ig

#

And lots of tax writeofs

rough bloom
olive sable
#

New gpu? Taxwriteof
New desk?
New ac unit?
Its all deductable

noble zodiac
#

ah, running a business. Sadly I know about that

#

heck you dont even need a business. If you do home office you can already write off pc parts, desks, chairs and what not

#

you can even write off suits if you see a customer once a year

olive sable
sage crag
sage crag
#

so long, fool, thanks for the neuros

rigid snow
sage crag
#

with what tld enub

trim valve
rigid snow
sage crag
sage crag
#

com.[tld]

rigid snow
#

the tld itself

sage crag
#

ok

rigid snow
#

no

rigid snow
sage crag
#

uhh

rigid snow
#

where embed