#programming
1 messages ยท Page 79 of 1
I downloaded the screeps docs page as a pdf 
Beware it will not make you better at the game 

the console isnt running but the rest of my code is
so i cant fix a bug in the memory
srsly screeps
try restarting your game client? 
might be an auth issue
nah its fine 
i just hope they dont randomly run later

i fixed it differently tho
my code to get idle creeps off the roads worked
the tick that ran it used around 4ms of CPU time compared to my usual 1.5ms
it only runs once though, if it detects a road below it

unironically, checking if there's a road below and if so, choosing a random direction would work
but i needed to write this code anyway for source management
Man, I need some sleep. Brb in 4 hr
my pathfinding code is utter garbage 
tried to beat screeps at its pathfinding game 
Screeps uses a modified A*?
Im planning on using my own modified A* but ill need to do some testing
currently waiting for my builders to finish building the roads

In computer science, jump point search (JPS) is an optimization to the A* search algorithm for uniform-cost grids. It reduces symmetries in the search procedure by means of graph pruning, eliminating certain nodes in the grid based on assumptions that can be made about the current node's neighbors, as long as certain conditions relating to the g...

WHY ISNT THIS WORKING
js
this doesnt make any sense

if (opts.callback) {
console.log("spawn item has callback, adding to memory");
opts.memory._removeCallback = opts.callback;
}
opts.memory._removeFromQueue = toSpawn.queueid;
if (toSpawn.room) {
opts.memory.assignedRoom = toSpawn.room;
} else {
opts.memory.assignedRoom = spawn.room.name;
}
console.log("spawning "+toSpawn.role+" with opts: "+JSON.stringify(opts));
[09:58:59][shard3]spawn item has callback, adding to memory
[09:58:59][shard3]spawning scout with opts: {"memory":{"role":"scout","_removeFromQueue":33094,"assignedRoom":"E38N39"}}
where did _removeCallback go

i dont understand
at all
js experts 
isn't memory just strings
functions can cast to strings in js
it works exactly like you hope it doesnt
I have come to the conclusion that JPS is actually really efficient and the only way to improve pathfinding is by making better paths to find
https://zerowidth.com/2013/a-visual-explanation-of-jump-point-search/
The only way to make it better is by using flags or something
Screeps can see flags they pass right?
Decided to follow Pewdiepies lead and finally started decoupling myself from corporats this week 
oh there's a bug
I've got my own home DNS server and DNS filtering now
you can fetch all flags on the current tile i think
didn't they say everything in memory gets JSON.stringify'd
What about the tile to the right of the path they're on?
thats fine
functions should stringify
wait they dont stringify?
Can i put multiple flags on a tile?
is the plan to store it as a string and then use eval?
Shiro my expert 
to the right?
Aight going in taxi now bye
Ye
fixed 
do creeps even have a concept of "right"
you would have to track the direction yourself
but otherwise you just offset the position based on the direction and do the same thing
also can i just say that JSON.stringify not caring about you passing it a function and just outputting undefined is crazy
these 2 harvesters have different tasks, interesting
finally got it working

now i can pass arbitrary callbacks to creeps placed in the spawn queue
this gives clients to the spawning api much more control over unit init
mrp meow
Whar you sillying?
you should use serde and RawMemory instead i think
this is true because the subscript operator calls a function so in the meanwhile the object may change (i'm making it up but it's probably true)
currently my setup works fine, I plan on keeping most of the cache and memory rust side, but if I need to do more advanced stuff with the js json I'll switch to serde
the scout is on its way to check a neighbouring room
go my child
find victims
wait why are you going that way 
there's a wall there...
theres no exits bro ๐ฅ

how did you get tags like that to show on creeps?
why is Game.map.getRoomStatus(roomName) a medium cpu cost
this should be a real simple lookup

i wonder if i should build a scout that just goes to any room it can
modified the target room finder to filter out adjacent rooms of different room status than the parent
this will keep me inside the novice zone, for example
which avoids these weird walls placed on the exits that cause this problem
send a scout to my one and see if it makes it 
i legit cant get to u
the only room that connects us, some loser built walls along every exit
id have to pillage them first
lemme come take a look
yo shiro
whats up
im aware
i didnt say they're good at the game
but i still have to write so much code to murderize them
cant wait to see what my room eval gives them

just manually write code from console to kill them 
professionals have standards
yo wtf is this code their builders aren't bothering to repair the 1 durability walls
if i have to lift a finger for them to disappear, i haven't earned their removal yet
they didnt add gradual repairs 
pick one and fix it to full hp before moving to the next!
genius!
efficient!
amazing!
i wonder what happens if i send a manual scout over to their base
i wonder if any of the rooms between me and you will try to kill you
not much point killing people if you cant claim more rooms
plus most people in our zone know nothing about this game and it shows


true to their name
lemme create a simple scout quickly
const roomsOfInterest = _.uniq(
_.flatten(
Object.keys(Game.rooms).map(
(roomName) => Object.values(Game.map.describeExits(roomName)).filter(
(exitRoom) => util.getRoomStatus(exitRoom).status == util.getRoomStatus(roomName).status
)
)
).filter(
(roomName) => !Game.rooms[roomName] || !Game.rooms[roomName].controller.my
)
);

it doesn't know what to do with this scout
the room directly above me does not like anything entering
there are so many copies made here it hurts my soul 
it is what it is 

anyway, i think the only rooms between us 2 with an ability to defend itself currently is you and pandan0id
that is including you and me btw
(i can't defend myself currently)
the invader room is pretty spooky too
agreed
must've gotten rolled
or just wanted to respawn somewhere away from bigger players
always a bigger fish
indeed
anyway.. i should prob solve this
still got 3 options for defence
- just attack anything that isn't mine
- attack anything with attack and ranged_attack bodyparts
- wait for something to damage something of mine or get too close to certain structures, and then figure out the creeps interacting with that creep to grab the entire raid party
you may want to include HEAL in this group
screeps are not pursuant to the geneva convention
suggestion
conventions are suggestions by definition

success
should i leak one of my creeps code
damn you really wanted emphasis on it being up to me

import { chooseSource } from "../utils/utilFunctions";
export function shouldRun(creep: Creep): boolean {
if (Game.rooms[creep.memory.room].controller == undefined) return false;
return Game.rooms[creep.memory.room].controller!.ticksToDowngrade < 2000;
}
export function shouldOverride(creep: Creep): boolean {
if (Game.rooms[creep.memory.room].controller == undefined) return false;
return Game.rooms[creep.memory.room].controller!.ticksToDowngrade < 100;
}
// Harvest and then upgrade the controller
export function run(creep: Creep, end: Function) {
const controller = Game.rooms[creep.memory.room].controller
if (controller == undefined) return;
// Check if we have capacity left and are near a controller.
if (creep.store.getUsedCapacity() != 0 && creep.upgradeController(controller!) == ERR_NOT_IN_RANGE) {
const sources = creep.room.find(FIND_SOURCES);
const source = chooseSource(creep, sources);
if (source == null) return;
if (creep.harvest(source) == ERR_NOT_IN_RANGE || creep.store.getFreeCapacity() == 0)
creep.moveTo(controller!, { visualizePathStyle: { stroke: "#00ffff" } });
} else {
if (creep.store.getUsedCapacity() == 0) {
const sources = creep.room.find(FIND_SOURCES);
const source = chooseSource(creep, sources);
if (source == null) return;
if (creep.harvest(source))
creep.moveTo(source, { visualizePathStyle: { stroke: "#ffaa00" } })
}
}
if (controller!.ticksToDowngrade > 5000)
end();
}
export const name = "harvestAndMaintainController";
this task handles maintaining the controller level, it's kinda sketchy and hacky tbh
i mean i'm literally making sure the creep doesn't leave too early by trying to harvest to see if i'm meant to be harvesting 
it's sketch af
Anyone got experience with pyinstaller? I am banging my head around an ModuleNotFound error
i feel like there should be a way to check if i'm in range 
if you weren't meant to do things this way, spawnCreep wouldn't have a dryRun option
true
i am happy with the shouldRun and shouldOverride tho
shouldRun runs only when the creep's task is undefined (aka idle), while shouldOverride runs every tick
since shouldOverride allows me to define a situation where a task needs to be switched to asap, such as low controller untilDecay and low structure hitpoints
scout_33113 when it is sent to investigate E38N38 for the 10th time today 

i wonder @real sierra how do you handle tasks given to creeps, do you use a similar system to me?
first law of lattices never talk about lattices
i see
technically the creep def files are the one's actually assigning the task
i'll drop one in here in a moment
niche screeps feature #45368748793678
you can toggle ramparts to be traversible by hostile creeps

i can trap them
i would use it to abuse their ai 
infinite maze coming right up
assuming their units are coded to take a path to the controller instead of breaking walls if they can avoid it
you just install two ramparts and leave one open
when they get close to it, lock it and open the other


mad?
what about an infinite maze that rearranges itself
maze runner
ofc for your own creeps it can arrange to a corridor
do keep in mind that ramparts have a high maintenance cost
doesn't matter if you control the entire area 

just have your outer rooms dedicated to maze
scout is going somewhere new

scout is finally free
i need to upgrade my room controller for towers
guess i'll tell it to upgrade
hehehe i now know how to solve the function color problem now you just need to interpret functions in the correct category, category theory is truly magical
this upgrade is gonna take so long
lemme tell the builders to help
damn these builders lazy af
Shiro can i put multiple flags on a road tile?
you can stack flags, yeah
I'd assume that also works on roads
This will majorly improve my road system if possible
it doesnt seem to be an issue given the possible errors of createFlag but you would have to test to be sure
source: accidentally stacked 250 flags 
they
yeah, you still get every flag as a separate object
but iterating through them seems expensive if you stack many on the same tile
Im gonna just make each destination have a flag colour, and put the flags as direction changes
This is the greatest plan
Nothing can go wrong
wait till sam finds out about the cpu cost of placing a flag
What?
i might have to assign a "minimum creeps running task" value for tasks
The flags will only have an initial cost, it should save recources in the end 
cos i've got my builders trying to upgrade the controller and my harvesters are focused on keeping energy at spawn at 200 at least
i can cross a room with screeps pathfinding using 1cpu max
thats your cpu to beat

How much cpu does reading a flag take?
(i set it as an override condition, if spawn has less than 200 energy then it means it can't spawn even the most basic of harvesters, so it's set up to try keep it above 200)
but my creeps keep dying 
I will put the direction and how long in that direction to go in the flag name
The colour of the flag will be the destination type

I will beat 1cpu, maybe, hopefully 
here's me not even bothering to try to beat 1cpu currently
i just want level 3 controller 
If you only have 20cpu 1 is still a decent amount i think
yeah, 1/20 of your available compute
I will beat it
okay finally my creeps can focus on.. why is it not focusing on upgrading the controller
nvm my code sucked 
it's gonna take forever to upgrade this room controller 
i feel like this shouldn't be my priority currently
extensions were the source of many logic bugs in my code
how do they even behave
do they like
get used only if the spawn is out?
if so that's annoying, i don't wanna have to write a util function just to get the true available energy for a spawn
i have to manually define them
okay sure
i'll build a util to return the correct amount based on cost
wondered why my CPU usage was high, turns out, my move calls were taking like 80% of my CPU usage 
welp, at least I know what to optimize
now write async runtime for hblang

apparently all calls into Js from wasm are still pretty expensive, so the goal would be to keep as much in wasm as possible
wait juho
are you on the official server
?
donowalled
im not cool enough for juho
speaking of async runtime, konii did you see they (surely
) landed on a final version of async/await for zig 
Dude built a wordle solver that uses python packages and the uv dependency resolver
if i do it will still have the function color problem
solving it requires functions to be generic objects over a category that has a built-in interpretation but can be abstracted over which is only possible if you either use a language with partial evaluation (preferably deep unlike haskell) or write an entire interpreter or compiler for a language (meow)
huh is wordle np complete
i dont like zig async/await because it hides an abstraction but its a pragmatic solution
the new one?
huh is there a new one
I'm not up to date on my wordle lore so idk what that is
Oh lol
basically io as an interface is the idea i think
was too focused on playing
ye i'm on the official server, shard3 W33S25
dont look at my room though, currently its basically nonfunctional
we're over by E38N38
I didnt know where you were when I made this
though I might respawn, I dont have much novice area time left and i'm right next to a scary player
from here https://youtu.be/x3hOiOcbgeA?t=3650 if you're curious 
we have 12 days of novice time

i dont like the colorblind part
huh how come
Hates colorblind people

as i said, it hides too much behind an abstraction imo
it went one step further than rust in that, it may arguably be more ergonomic but imo its a step in the wrong direction
i like algebraic effects and free monads more
and also have some ideas i want to try in that regard
maybe you've heard of the "object algebras" approach to the expression problem
free monads are basically that but for functions

also today i came up with a way to have diamond problem-free classes with inheritance and traits with specialization in a single system which i find really cool
@real sierra @rare bridge pls nuke 
Noted
on it
thanks
sounds nice 
I might join the official server soon-ish, just gotta finish the turial first
i kinda want to look into first class environments too because it sounds useful for encoding functions as free monads
too much stuff to figure out...
but i did make so much progress today so i'm happy
Or if cloud decides to open the server sometime ill just immediatly go there
Aight, imma hop the border back to montenegro now
illegal immigration
Let's say, hypothetically, that I'm looking into learning Godot
How important would it be for me to learn what GitHub is
i think you should learn basics of git no matter what dev stuff you are doing
some people even use git for completely non dev stuff like configs and such
Ok, I'll read what's GitHub
git as free storage 
git != github, git is the important thing
github is just a place to remotely save your git repository
I mean git is the version control system, github is just a place to host git stuff online, it's not necessarily necessary for git. there is also sites like gitlab
ye, what Toast said

if even the screeps devs test in prod, surely i can too
Succes 
i improved my spawning code to take cost into mind
it'll now refuse to make big units unless it has the energy needed
but it won't get stuck and will still make smaller units
When im at the apartment

Border control had a dog

its terrifying
Yay
apparently they have an API for it
Wut?

What does a faction do?
no clue
Ig its just a non agresion agreement?
imagine the clan wars
I will produce tanks
only one person in the bottom right of our block is in a faction
A group of 12 screeps moving as 1 unit made for pure destruction
This is a great plan, i can see nothing that could go wrong
Does adding more cary body parts make you able to carry multiple screeps?
no
Aight
a notion that has grown on me is to ensure my creeps are making use of all their parts as often as possible
That is a method, but i dont think im going that way
less intended to be a method and more a metric
for spotting where you might need to specialize creeps
How to Git
Thats github
Use your repo
Oh ye my bad
surely a website can explain this better than we can
What the diffrence between git and gh?
a pack of apple and a grocery store
you can pack your apples in a box, with history of what was put in and out
Git is just local history?
and you "put" those boxes on the store
git itself is the core of everything, rather would say, github is just a remote
Ok
You can use everything that is on github locally as well. Github is a "remote" where you can push your changes
But as Shiro said, lemme find a GOOD source for this
cause of course, in 2025 the first search page is useless
Need a quick comparison between GitHub and Git?
Wondering what the difference is between Git and GitHub, and what the similarities are?
Here's the quick answer:
Git is a freely available, simple to install, open source, distributed version control tool managed and maintained by the Linux software foundation. Git facilitates collaboration betw...
and a source maybe more geared to the original question of "how to git"
as opposed to the tangent
might be handy

ty for your patience rytsty
they have a condensed page with examples too
https://git-scm.com/docs/gittutorial
they do huh
i wish we could have pull requests and issues as part of the git repo
radicle kind of makes it possible but also who tf uses radicle 
pull requests are just other people's branches you can pull locally if you want
issues yeah you dont use git for that
you can put them in an extra branch just for issues in md format if you want
would still be nice to have them as first class citizens in git imo, not that it'll happen realistically

HOP ON SCREEPS
eh issues are just not in the scope of git and you can just send ppl your patches. heck the git cli command does that for you
its good not to have everything in a single spec because it doesnt force you to e.g. a specific issue format
Technically git has pull requests https://git-scm.com/docs/git-request-pull
Does Git weight a lot
Is neuro run localy or on server. I just confused with vedal talking about the financial aspect of running her.
about 2kg give or take (/s)
but no, git is pretty lightweight
well it depends on how you use it i guess, if you commit a bunch of big files that will add up
yeah, Git itself is pretty small, but repos can get big sometimes
-# mostly if you use them incorrectly
someone remind me to fix my screeps pathfinding (they do not like the road)
no one knows
git clone --depth=1 my beloved
neuro is definitely being ran mhm
If I want to learn to make a AI friend for myself where would I start? What should be my first step in learning what direction i need to walk, digitally speaking. LLm? Code? Python? Any channel suggestions for a less dry approach would be appreciated too if possible. I am more artistically inclined and have ADHD so dry facts tend to turn my brain away so to speak.
both
my poor 12400f is really dying from 24b models ๐ฆ
vedal has to do finetuning which is impractical to do locally
i mean idk doesnt he have like 2 or 3 4090s. If neuro isnt like 70b plus then it should be possible im guessing.
as for where neuro's models run, nobody knows yeah
possible doesnt mean preferred
thank you ClojureScript very cool hash
are you hashing integers?
I am hashing maps
idk if this is even supposed to work yet, but I don't think it's supposed to be sequential like that 
@trim valve
nobody refers to anything but inference when saying to "run" a model
they mentioned "the financial aspect" which does include finetuning
sure
1v1 me on screeps 
Aight im back at the appartement

Still need to eat sometime, but firstmy screeps
๐
How bro's mic bg sounds in vc
I'm not back reading anything today 

For real, usually I can keep up. This screeps fever is crazy 
my brain is on fire

how do i
what is the ideal attack force composition
i know roughly how much lifetime damage i need to win
but how do i compose that into units
Maybe we need a dif channel/thread?
Gรถdel's incompleteness theorem when Gรถdel's completeness theorem walks in
nepotism 

Nah, is good here
Yep, this is why we can't have nice things in math or physics

i ranked up and the infrastructure system queuesd every building i could make

i guess i needed energy storage badly
i'm currently just making a bunch of extensions
so i can make better creeps
plus associated roads
i have no storage rn tho
cant make a storage until rcl4

protip that wasted 5h of my life
containers are neutral structures
even if you built them
which means FIND_MY_STRUCTURES doesn't include them
i just FIND_STRUCTURES regardless 
there's no chance my harvesters and builders would ever be in a situation where they're dealing with buildings which aren't mine anyway
when i build a turret in cloud's room and they repair it for me

what if the neurocord server happens 
repair uses find my structures actually
so thanks for the heads up
but you're able to build structures in other people's rooms??
not really
i was mostly joking
you can build up to RCL0 structures if you dont have ownership
which means roads and 5 containers
if that's happened my entire thing is cooked anyway

all my units CEASED

found the bug
the spawner will not spawn if the energyStructure does not contain itself
according to my metric, the best units are 50% move, 25% heal, 25% attack 
metric does not like ranged attack
i guess the trick is that heal cant be used if you attack
i should remove heal parts from my dps calc then
I believe it is just action order? At least looking at docs a lot of actions can be done in a single tick
The Screeps engine is Open Source, allowing people to run Private Servers on their own. The Steam Client even provides a tool to make launching private servers easier.
For players who want to run a he
yes, action order is why you cant heal if you attack

you could ranged attack and melee heal

wonder if it works with latest
The main world runs on Node8, but Ubuntu only provides an older version of Node6.
wow this is old
Working the mods to the bone 
Ikr?
Considering the server repo has only done lock file changes for a few years I'm leaning on yes
back when js was abysmal dogshit 
@real sierra the code i wrote to avoid overcrowding at energy sources works... too well
when a creep gets to the one energy source it realises it's crowded and LEAVES
lmao

come take a look at my area to see what i mean 

it's become infinitely better for sure, and the ecosystem has become better too. for example: good luck finding a sorta obscure package with types back then - now if you're using jsdoc types (as comments) instead of typescript you get weird looks, and if you don't have types at all literally nobody will use it
nice
Unless you're implementing an RFC that is 
Noble crypto save my ass a ton of pain
my creeps will now refuse to go to an energy source if it's occupied
lemme make it so it remembers not to go there
overabstraction goes BRRRRRR
the tutorial iteraly says "make one of the harvesters sudoku" 
Have you also considered making a dedicated unit just to harvest an energy source and carrying said unit with a transporter unit like what shiro does?
implementing a sudoku solver
You move from JS to typed language, yeah that's what you get 
We love Movex5 and Movex1 Workx2
hey uhh.. where are my builders
Reduced to scrap
atomizer go brrr
Is version control even a necessity
my economy crashed
It is a good idea to, once you start working with people even better.
yes
being able to go back to a working version in case you mess something up is good
o7 killed due to time limit
im tryingto understand this language to cod emy own shit
but wtf am i looking at here?
var harvesters = _.filter(Game.creeps, (creep) => creep.memory.role == 'harvester');
javascrjpt mhm
what is that underscore???
(creep) => creep.memory.role == 'harvester' is a lambda function, equivalent to:
function lambda(creep) {
return creep.memory.role == 'harvester'
}
the _ is a library
why we using underscores as classes here?
it's not a class it's a namespace
ye
theres probably a
const _ = require("lodash");
at the top of the script somewhere
it's just convention to name it _ for lodash
i see them as the same thing cuz python
Sam finally cave and learn JS for game related things 
time to unpythonify your brain then smh
oh it's just a name you gave to the library
and theres an object in it
it's the same as import lodash as _ if you had a lodash.py
the keys are function names the values are functions
In js, everything is an object
false 
RTFM
but yeah the module is an object
It is the same in python, _ isn't special
brother i do not know what a lambd even does
i just told you 
Even the primitives are wrapped in an object under the hood 
Lambda is a function
or maybe i didnt
its just an inline function
same as calling a function there
but skipping the lengthy definition
No
Yes
im going back to coding
think of it as
var harvested = []
for (var creep of Game.creeps) {
if (creep.memory.role === 'harvester') {
harvested.append(creep)
}
}
i never used that in python
Because it is very different 
semantically equivalent
you just pass a function to run on every element in the array
which in the case of filter has to return a boolean that decides whether to keep it or not
where list coprehension? 
no list comprehensions 
[].map
functional programming all the way

my code is refusing to add builders to the queue
i have no idea why my script timed out
shouldnt be possible
makes zero sense
must have been a cosmic ray
so what is the arrow/ "greater or equal than" doing?
where the FUCK are my builders
I think not all ES6 features are available
you talking about (creep) => creep?
But yeah, it supports most of ES6
that's just one way of defining a function
i dont think i've usedvar once in my code 
huh
are we still creeping

you dont need to?
theres not actually a problem with it mostly
function foo(x) {
return x + 1;
}
const foo = (x) => x + 1;
these are the same
function abc() {}
const abc = () => {}
javascript addicts will just insist on using other things
no var is just bad
see what i mean
Because var hoist things up
im failing to understand where the comma is supposed to be here
after the no
And it can make your code don't do what you think it should do
so dont use var?
Yes
const and let are preferred
Use let or const
so uhh... judging from my code: this SHOULD work
and then the variables will be scoped as you'd expect
oh
var scopes things more than desired
i am an idiot
let for anything you directly reassign, const for everything else
const also not the same const as you think it is

No, I wanna make everyone suffer 
im just gonna wing it
If you want to read about JS, the mozilla MDN is the place to go
mdn my beloved
TLDR
letfor defining variables you intend to direcly modifyconstfor variables you will not reassign(arg1, arg2, ...) => bodyis a shorthand for creating an inline function
okay
why not define the function at the start of the program? does lambda not use much cpu?
it's often for functions used in a single place
or functions that need to reference variables defined in the scope of the caller
i mean ye, but its in the main loop
C does that to you
e.g. with a lambda you could do something like
const multiplier = 3;
const nums = [1,2,3];
const multiplied = nums.map((number) => number * multiplier);
where the lambda function references multiplier from the current scope
can't do that if you pre-define it
tl;dr: fuck js
okay
Good, now explain currying 
i have never used map functio before ever in any lnguage lmao
Think of it like math
i am
array.map(fn) returns [fn(array[0]), fn(array[1]), ...]
you see that's the funny thing, you can 
i should be going over my lecture slides ugh
I am considering joining lots of different servers just for the emoji 
it's never to late too start getting addicted 
screep unemployment soonโข
i ussualy just do a for loop lmao
wtf am i looking at
i dont even want to know what kind of cursed runes you're engraving over there
ClojureScript 
TS
maybe i should join screeps too and do scala.js 

Golang and TS also look similar enough that MS is migrating TSC to Golang
dart 
So by extension, maybe golang
don't get your hopes up shiro 
uncomputable when are you opening screeps 
I forgot this language exists outside of flutter lmao
it doesn't 
shiro loves us ๐ฅน
When I'm done with my IRL stuff
So probably around the same time as Sam
TIL nim has a js target
chat check this out
man JS being accepted at #programming is weird
i might join the online server today if i finish the tutorial
tolerated
it is, acceptable
Tolerated? You don't see them loathing it at all? 
blender cycles renderer vs the disney RenderMan renderer
types overrated
the right one looks cool 
i store my typedefs in my brain 
*underrated

my brain is enormous, surely i wont forget the purpose of certain functions 
underrated for projects with other people
yea the right one is the pixar renderer with the disney shader
overrated for solo projects
actually i do wonder how hard it'd be do screeps in zig
i guess bindings would be the most annoying part probably
damn got baited, thought someone wrote bindings already
the tutorial is saying "lets wait for the builder to finish" and that litle fucker aint doing shit
Shard3?
it has anonymous structs 
shard3 is healthy rn
ok yk I think type is always broken in ML
moving quite fast in fact
tutorial, idk
do you actually need anything fancy for screeps or is it just writing into memory
yeah, for all the languages with strong typing writing the bindings is really annoying
Screeps code depends on a lot of constants too, and those don't technically have to be the same between servers (though in practice they should be)
not sure what this means
doesnt read files
there's console.log
but i mean its all exposed via api i think
no file manipulation, no web requests
no gpu access
the builder script didnt spawn in when starting tutorial 5, thats why it was doing jack sit

No web request? Have you forgotten what our beloved cloud tried to do here? 
not really? Like you have world state with creep memory and stuff and your own code that sends commands based on that. you could have your code be stateless and only work with the world state
have you forgotten how it ended?

It's not off the table yet 
why cant the builder get energy from the spawn?
it can if coded to
hihihi
also you dont have to get the response for the request the same tick
just send a request and check if it's done every tick after
that implies you can store some kind of handle to the request somewhere
good luck serializing that into memory

how does one manually assign a route to a screeps moveto?
Store request ID 
actually i guess global is available
And build a proxy
as in, give it a path?
to follow?
kinda ye
I mean you can deserialize it and store that in the json
okay thanks
but you also might like Creep.moveByPath: https://docs.screeps.com/api/#Creep.moveByPath
if all else fails you can do it with external help over the console
log a specific string to start the request, set a variable to the response when it's finished
oooho
Shiro, make a local server that cache the path 
Then you can use more than 2MB
i still dont think you can get web requests to work
there's more backend state that i feel needs to be kept
that is abstracted away
and probably cleaned up by the sandbox
if the server isnt up today ill join yall in the official server
@rare bridge ETA on server?
yay
I can probably make something cursed
Will try something when I'm at it 


i'll try get it working this week
i wonder why screeps is using more cpu than gpu
JavaScript
doesnt it run on web or something?
im sure theres still plenty of client side stuff, even if your sandbox runs server-side
the screeps client is a big browser wrapper from what i can tell
so all the netcode here is also js i imagine
Does anyone here happen to have a good oled screen? I have an hdr image but I can't actually check if it looks ok cause my monitor is sdr
found'ya 
wdym?
e37n34
but like, do i go next to someone or?
you're free to choose wherever you'd like
id pick a room with two sources
exactly what you're looking for is kinda up to you tho
wtf
has spawning gone too far

im sure it doesnt matter, but why is screeps using the igpu?
turned on my vpn and it works now. turns out my internet is not fine
but not in the way i thought
Noppers, I don't trust the portable boi's HDR
Yippie I'm not the only one (To be fair I had no part in my own crash, it crashed itself)
while (cost > budget || totalParts > 50) {
const newProps = {};
keys.forEach((key) => newProps[key] = nParts[key] / totalParts);
const toRemove = keys.reduce(function (best, key) {
const diff = newProps[key] - (proportions[key] || 0);
if (diff > best[1]) {
return [key, diff];
}
return best;
}, [0, 0])[0];
nParts[toRemove] -= 1;
cost = Object.keys(constants.PART_COSTS).map((partType) => constants.PART_COSTS[partType] * nParts[partType]).reduce((sum, cost) => sum + cost, 0);
totalParts = keys.reduce((count, key) => count + nParts[key], 0);
}
something is very broken here
i think im gonna annihilate all the yucky functional programming
any, if you put your mind to it
and go back to tried and true for loops
hopefully this fixes it

ok
im at that final
make-it-work stage of this new feature
ive written all the pieces
i just need to connect them
and boy do they not fit together well
Cue to the next shiro forgot to save 
Use duct tape
i am running out of duct tape
You need FLEX TAPE.
Anybody knows a good OCR for tabular data?
The table is a picture of printed document, not hand written or screenshot
im not sure where the free energy is coming from but its spawning shit
Why the
react 
What are you doing with git bro? 
Someone suggested me to use it
Do you mean a code editor with good git integration?
Trying to code stuff in godot if that helps
I'm still doing the git setup thing
fast


true...


QIS
crazyfish

why are we scouting this room again
















