#programming
1 messages · Page 77 of 1
WHY CAN I SEND 20 EMAIL NOTIFICATIONS IN A SINGLE GAME TICK
how
Game.notify
the game has a feature that lets you kinda
email yourself
mainly for alerts like "you're under attack" and whatever you want
and.. is your server configured to then send those mails?
mine isn't, but the main game could do it
cause that sounds abusable :D
look at them all queuing
that seems inefficient
omw to email shiro "happy birthday"

Cloud, you can try to make a proxy server with SSE
not a problem if i share that one here
pixel
So screeps -> proxy -> whatever else
out of interest, assuming I want to store the pheromones in memory instead of flags, would you say that can still be very efficient? I wonder if, assuming your workers are pretty dumb, it might be worth it
you only get 2mb of memory unfortunately
actually
if you use the RawMemory object
you're allowed to access up to 10mb
but you must use your own serializer
and manage memory segments on your own
so you exchange CPU with memory basically
damn 8mb extra for BYOS (bring your own serializer)

theres some other interesting features of raw memory
like being able to make segments publicly viewable by other players
and reading other players' public segments
putting a poison pill in my public memory
man I got shit to do but I SO wanna play around on your guys server now
rn we don't have a server, i need to look into it properly
not today..?
i wanna do it today, but i gotta see if email notifications would work + if any of these features with npc bots are limited to the main server
there's no way vro
even auto complete doesn't trust you

Brilliant
what if i plonk myself right next to shiro in game
when it says "schedule 20 notifications during one game tick"
im pretty sure that means it sends one email at the end of the tick
with all 20 messages in it
I forgor the details of how the batching works but there's a send interval in the account settings
lowest is every 5 minutes, so presumably you can't spam yourself any faster than that
oh true that also exists
lowest you can drop that is 5 min
idk the precedence order of these settings
i would guess the account setting takes precedence first
works now 

and then every time it procs, it checks if there are notifs that should've been sent by now
and then batches them in an email

omw to put myself rightn next to shiro (it's a strategic move)
go for it
see you in 13 days (i will die)
FYI, creep.moveTo will by default explore other rooms while pathfinding too
so if a creep cant get between two points in your room, it might try going through adjacent rooms to find one
my defense code is not smart enonugh to distinguish between civilian and military creeps 

war crime speedrun
i might have to start somewhat away from you shiro
cos your immediate rooms only have one energy source
there are some nice rooms in this novice area
idk why i didnt pick one of the ones with 3 sources

is the server up ?
nah
we're on the official server
cloud coming to farm CPU to get some pixels

im almost to my first decoration 
gambling in screeps 
i found one but there;s enemies in it 
wait lemme mess around with auto-complete
or you build walls to max hp

idk if you've done the math on that yet
but walls can have absurd health
But are your creeps smart enough to build the walls when they break?
yeah i think this is my sign to stop coding for today 

my auto-complete might be evil herself im not sure
neurotic neurons would true on this
i love the last one
same
God I just wish I vedal would let me fix Vedal's latency vs intelligence problem
ok thats it this is absolutely my sign
yeah thats a sign
i think my screeps have reached peak for this era
i think it'd be funny to invade and then like 500 defence creeps just appear out of nowhere to delete their existence
until they upgrade the controller to level 4 i dont think i needs to touch them
"appear out of nowhere"
spawn time:
alright, E37N34, now to build
do you mark each other as friendlies or how do you prevent attacking each other
if you want that functionality you have to code it yourself
part of what sparked the earlier discussion of putting a signed token in your public segment
hmm
non issue anyway
me and cloud cant get to each other atm
@rare bridge whats your approach gonna be
no clue 

FYI, in case you find this helpful
also i tested your emails for you
each of those is a separate notif
its pretty fascinating to watch the timelapse of a room
you can see the macro behaviour so much more

i saw
Hello everyone,
I’m planning to build a PC mainly for AI tasks, including heavy fine-tuning and other multi-core demanding workloads. Here is the spec I’m considering:
CPU: AMD Ryzen 9 7900
RAM: G.SKILL DDR5-6000 64GB (2x32GB)
Motherboard: MSI MAG B650M Mortar WIFI
SSD: ESSENCORE KLEVV CRAS C930 M.2 NVMe 2TB
Case: Appco U30 Marine
Power Supply: Micronics Classic II 850W 80PLUS Gold Full Modular
Cooler: Thermalright Peerless Assassin 120 SE
The total price is about 1,450,000 KRW (roughly 1,100 USD).
I plan to buy a used RTX 3090 later, and add more RAM if needed. I also frequently run multi-core intensive workloads.
Do you think this setup is suitable for AI fine-tuning tasks? Any advice or recommendations for improvement would be greatly appreciated. Thanks in advance!
i dont have enough expertise to offer any advice i'd be confident in
watch out cloudburst your controller is gonna downgrade in 16 hours
You don't need much CPU, all you need is a ton of GPU
Finetuning and other types of training are GPU-heavy tasks, especally needing a lot of VRAM
On a CPU, good luck finishing this century
I plan to buy a used RTX 3090 later,
Well, until you do, your PC is not very useful for AI
Before I buy the 3090, I won’t do tasks that require such a powerful GPU. I don’t need it right now.
Then you're fine
Note that even with a 3090 you won't be finetuning anything massive
get a h100 
If you've got 40K to spend, sure
https://huggingface.co/apple/DiffuCoder-7B-cpGRPO
Didn't see apple randomly releasing a qwen coder fine tune based on that diffucoder paper
@real sierra big news: typescript unlocked

METAPROBLEM SOLVED
ive realized i might hit a problem ive never had before
time to finally make silly little creeps do stuff
oh?
i didnt code in the 50-part creep limit
it wont be an issue for like
another many hours still but
if my spawner capacity keeps growing
eventually my code will prob try to make a unit with more than 50 parts
and it'll just clog the queue with units that cant be built
and then everyone dies 
but solving this problem in a way im happy with is
that may be a problem 
The knapsack problem is the following problem in combinatorial optimization:
Given a set of items, each with a weight and a value, determine which items to include in the collection so that the total weight is less than or equal to a given limit and the total value is as large as possible.
It derives its name from the problem faced by someone w...

NP-complete
shiro you're lucky it even has a solution
i dont like doing NP-complete problems in under 20ms 
np complete is better than undecidable
anyway there are many different subsets of the problem which are solveable
idek if this is a problem worth solving, my current solution sidesteps it
do i get fs in screeps
you get raw memory
and there are many heuristics (like "just take the biggest one that fits")
i mean
specifically my problem is
given a set of parts with fixed costs, a set of desired relative proportions of these parts, and a max budget, how do i produce the set of parts with total cost closest to but below the budget while adhering closely to the desired relative proportions
the current solution i have finds the "single item cost" from the proportions, then divides the budget by that to get a multiplier, and then multiplies that by the individual proportions and takes the floor of each to ensure below budget
it's quick but the flooring step often leaves much of the budget unused
so i wanted to see if i can add a step to use the remaining budget
but its the knapsack problem at that point i think
do the parts have the same weight?
there are a few part types, and i can include effectively unlimitedly many of each part type, but each part type is associated with a different weight
look at the remaining budget of each category, figure out the biggest one, see if you can add it to your blueprint or whatever, and then repeat until you can't fit anything anymore
its not the knapsack problem because you're trying to stay close to the ratio
well
i think the ratio stops mattering at this point
and my reasoning is
i think we can add at most one more of each item at this point
since floor of the post-multiplier count should remove at most 1 potential part of that type
so i think the ratio restricts the part types i would consider adding
anyway since the weights are fixed the only way you couldn't possibly produce more parts is if the cheapest part is more expensive than the remaining budget
but im either adding a part of that type, or not adding it
still sounds like what I suggested lol
whats the problem, just add more parts of arbitrary type?
the problem is that ultimately i would like to do Math.round instead of Math.floor in that one step
if we have a theoretical desire for 1.8 of a part, i would prefer to include 2 of it than 1
bad idea that can get you over the limit, but then of course you can just do the same operation but subtract instead
but it might put me over budget
yeah
but idk which to subtract
either way
i need to find a set of items to add/subtract
to get closer to the budget goal
dont you have total part counts?
you can store their count at least and then just remove the one thats the most above the ratio (some part will ultimately be above it unless the ratio you've produced is perfect in which case you can remove an arbitrary one)
"the most above the ratio" as in?
the ratio is 234:123:567 but after producing whatever you're currently trying to schedule you'll have 23:12:56, then 234/23 < 123/12 > 567/56 so you can just remove one of the second part if you have to
shiro have you never balanced arcospheres
and then find whichever one is furthest above the target
and remove a part of that type
a what
arcospheres
niuh
its pretty simple theres λ, ξ, ζ, θ, ε, φ, γ, ω arcospheres
and you can randomize them or flip their polarity


the recipes that use them constantly randomize what they use so you have to keep a steady supply of every arcosphere

is this from that one Factorio mod
and if you accidentally make your arcospheres too similar you can stop being able to convert them to other arcospheres
space exploration
right
i've never done it btw 
i want to write a regex engine for the lsp at some point
space exploration is pretty cool
played it for 500h, got to the mid game and had to temporarily stop playing because my 5600x couldnt keep up, only giving me 15 ups no matter what optimizations I did
since its in the spec
i wonder if there's a regex engine that JITs the regexes
pcre does it apparently
(i actually have no idea why the lsp spec even mentions regexes)
okay it's for snippets apparently
so the lsp wont have to have regex support
my plan has been foiled
i'll have to do it some other time
writing a regex engine sounds like fun
I havent gotten anything done in screeps because I have been thinking about the data structures that I need to have, I think im slowly getting it, still need to figure out how to treat multiple screeps as a singular unit for later on
well i added this
whether or not it works, and how expensive it is to compute, is a different question
METAPROBLEM TRAP 
hi
i mean, you can assign roles to screeps
lmaooooooo
priorities
just use wasm, check instruction count. surely that'll give you an estimate :P
byter when i Game.cpu.getUsed()
I mean, yeah, but that's reactive, not proactive
instruction count estimate doesnt help when the main slowdown is a loop
dynamic programming my beloved
arrays have persistence
nice memory limitation screeps, i can store all i want in arrays
they do but your code may be restarted at any point
so you can pretty much only use it for caching
it wants to spawn 14 harvesters
(i built a job system to spawn creeps so i'm not pointlessly trying to spawn creeps when i can't, but i can still say "hey i need these" and it'll do it.. eventually)
Screeps is a performance centric game- the better your performance the more you can accomplish in each tick. Caching is an extremely important element in performance optimization, and Screeps provides

@real sierra my job code is working 
my spawner only spawns when it thinks it needs to

so now i have energy
so i can start letting them upgrade my room controller
okay my creeps don't have an idle job, but i wanna give them "jobs" as well as "roles"
so a role would be it's overall purpose in life, so "harvester" harvesting energy and giving it to extensions and spawns
Is he seever up?
Okay 
i'm playing on the main server rn
I am back to civilization 
wb!
We went to ada bojana, and were planning to go back via the river
That was just a bunch of forest tho so we had to backtrack the whole way

And it was all just plastic and trash on the beach
And nudists too ig
but the role "harvester" could have jobs such as "harvestAndStore", "havestAndUpgradeController", etc, but all of them have a default "idle" task which tells them to get off a road if they are on one, and just do nothing
@real sierra thoughts on the above?
mhm!

i'm calling them jobs cos it makes sense in the system i'm building (where a creeps actions are defined by their jobs), state would, imo, be the actual action it's doing currently
i might expose that in case it's useful
like, a harvester may have a job of "harvestAndStore" and currently doing "harvest"
the simple task of bringing an item from A to B can involve calls to withdraw, transfer, moveTo and of course your idle routine if needed
and given many of these may persist for only a single tick, i haven't found need to store it
i also find that many of these current state particulars can be inferred from the game world itself
but that may only be true with how ive organized things

i might have oversimplified
the way i plan to do things is that a role is immutable from birth to death
a creep is spawned to do one subset and is specialized for that role
im currently operating on the same idea
makes sense to me since their body parts often need to match their intended actions
but a creeps current task (might be better to call it task than a job) may be different, and in some cases, shared between different roles
and may be different based on the current room state
Is there a clock system ingame?
it makes sense to me to have creeps take actions based on a current sub-task than just their role, with their role more deciding how they transition between sub-tasks
you can get the current tick as a number
yes, that's my vision
Under my rule a screep shall never be idle

The dictatorship starts as soon as im back home
Where is this? It looks quite big.
at the rate my creeps are upgrading my room controller, it should almost be done tomorrow
i dont even know what RCL4 unlocks
I have never been to Montenegro, but I have been to Italy and Vienna near there.
So whar may the silliness going on be this time?
the idea is that if i have a few defence creeps, they should be able to switch from idle or wandering tasks to defend tasks due to exterior factors, such as hostile forces being detected
It's not surprising that there are piles of garbage on the beach, depending on the cleaning frequency of the management department.
its just a drill 
creep.my
room.find(FIND_HOSTILE_CREEPS)
doesn't that get every non-me creeps?
yep
I have, returned
feels slightly overkill
if anyone who knows how to code is wandering creeps into your room
its not for peace talks
true
but i do see your point
so you can always
room.find(FIND_HOSTILE_CREEPS, {filter: (creep) => creep.getActiveBodyparts(ATTACK) + creep.getActiveBodyparts(RANGED_ATTACK) > 0})
Iggly and i have a peace agreement, im sure its fine
either that or detect actual attacks against my stuff 
ooh
Cue the next day
theres a cool obscure game feature i keep forgetting about that might help you here
I would like to ask what programming language you usually use.
Sam: "Et tu, Iggly?"
hblang 
check out room.getEventLog()
*not really but i have written the most code in hblang lately
const precomputeMatrix = new PathFinder.CostMatrix();
for (const wall of room.find(FIND_STRUCTURES, {filter: {structureType: STRUCTURE_WALL}})) {
precomputeMatrix.set(wall.pos.x, wall.pos.y, 31 - Math.clz32(wall.hits));
}
the things i do for efficiency 
Wtf is a costmat?
you can supply a custom pathfinding tile cost dictionary to the pathfinder
I only know C language and Python
You hear that Sam? The sound of silence 
Hes probably still sleeping
Anyways gtg, leaving the nudist beach
@rare bridge why are all your units standing still
@olive sable Do you travel in Montenegro or do you live there?
Sam casually dropping a bomb
Are you local?
He is implementing the art of war
Confuse your enemy by not knowing what you're doing yourself 
at least i still have this
I take back what I said. Sam going on vacation and in exchange got Shiro addicted to screeps while infecting the whole server is more fun and chaotic that I love it 

bwa
Are you all computer majors, or is programming a hobby of self-study?
I'm curious, what is your ratio of bwa to meow?
more bwas i think
I'm not a programming major. But my major requires me to be able to somewhat program
i'm a math major
im not a major i hated my uni only having 2 courses where i learned something (both maths related) and dropped out, i think i should've done a math major instead of an IT major
me too
I study automobile engineering, and CNC engineering and intelligent driving need the participation of some programming.
either way in hindsight dropping out really helped me in life later so i don't regret it
they're refusing to talk to the room controller
Hey, we're close then. I'm mechatronics
They shy
Math major, quite impressive.
i like how the example strings for testing string algos are like "ababababa"
Or is having issue and getting silent treatment 
i convinced them to talk
We were both mechanical majors, so we can all enter the factory in the future.
Convinced or "convinced"?
now one really wants to go to the energy and another one really wants to talk to the room controller
nvm it decided to turn around????
OH
THE SECOND IT LOSES 1 ENERGY IT GOES AND GETS MORE ENERGY 
True
The god of minmaxing 
sr latch time
okay, time to implement tasks because this is the exact reason i want to implement it 
Cloud out here, writing better solutions in less than 1 day
Take a note shiro 
You're getting steamrolled 
How many academic years does your master's degree require? My master's degree is three years.

The only master degree of mechatronics engineering that I know of are in FH Aachen, Germany IIRC. And it's around 3 years too
Then we are almost the same.
I think we have one in our country too, but knowing the higher ed minister here, I think I'm better off saving and taking my master there 
As opposed to RMS?
rms?
German universities have high requirements for academic completion. Fortunately, I am not a German student.
Root-Mean-Square
a metric for combat strength
the theory is that a unit's total lifetime damage is (damage per tick) * (ticks alive)
the former is easily known
the latter is proportional to their own HP for a fixed amount of incoming DPS
Mhmm, looks about the same here. My old college used to have a high academic requirement to graduate too. Publishing a paper on a well known scientific journal is one of them
so total lifetime damage is approximated as (unit dps) * (unit health)
specific lifetime damage would be that divided by average DPS of my attacking force
how do i convert this static building score into HP^2/T tho
needs to have same units to be reasonably added
Have you graduated with a master's degree? To be honest, studying for a master's degree in Germany is also a superman.
They can't
what would it even mean for a building to have DPS? Besides that turret thingy
its even worse than that
my wall has dps 
this score is intended to represent the difficulty of reaching the core of the enemy base from the edge of the map
figuring out dps would be a funny way to priortise targeting tho
I have not. My strategy for higher ed is get a bachelor first, then get work experience, then master. I think it helps to have a work experience because otherwise having master without work experience will over-qualify you for most junior-position
building a way for tasks to end themselves in combination to the task controller to prematurely end a task depending on external factors
they just call the end() function and they'll stop and the task controller will decide a new task for them
Then I think DPS is a poor meaure for it
i wonder if i should make idle tasks just always check for conditions for being met or if idle should end every tick to do that..
i dont wanna turn it into DPS
i want to turn it into lifetime damage
current thought is to convert it to the damage i expect to take as a result of having to break through enemy fortifications
This
i can convert it to the sum of the health of the fortifications along the cheapest path to the interior
and then multiply by expected incoming DPS
Using DPS in your calculation assume you're always taking damage over the distance

Yep
That's right, too, but I'm still going to take the postgraduate exam first, because my work experience conflicts with my plan.
You do realize that cloud will also implement counter-measure against this later right? 
this is only one part of the room eval
if cloud adds enough countermeasures then its probably just a hard room to attack
and ill go for someone else

Cue to cloud back reading and finding out that chad who leaves a whole maze for enemy to solve
writing pathfinder helper with caching
find the weakness of the in-game pathfinding engine and exhaust the attacker's cpu
is there a method to find my distance from another thing
manhattan or euclidean
coolio,thanks
ive become the screeps docs

im copilot
at least you're not ai like vedal needs 
Im on vacation
No

I will ve doing bachelor independent game production this september.
awawa
I wasnt there on purpose
The beach just happened to be like that
Axelotl 
Enjoy your vacation, except for the damn beach garbage.
The Mediterranean is really beautiful, but unfortunately I only saw it on the plane and didn't have a chance to go to the beach.
Its a lot steaper than the belgian coast
In belgium you have to go like 25m into the water to get knee height, here its just immediatly deep
this method is crazy expensive 
it maxes my CPU bar on use
i guess 4 pathfinding calls and 6 or so reduces will do that
See this shiro? 

enjoy tech debt forever
you will have to redo your paths the moment you build more roads

and if a creep stands in the way of one of those paths, its joever
Just build your paths in a way to make pathfinding easy


I will try the 2nd tutorial as soon as im at the hotel, which will take like an hour or so
Tomorrow we'll be gone to albania all day so no screeps 
okay i think i cooked with this task code

Overmorrow is some type of fort so we dhould have time left for screeps
The day after that is beach day, so also time for screeps 
Wednesday is the final day so also time for screeps
my code has a bug and i cant find it 
Next nuked song idea Sam
i have an array that looks like this
[[{"x":1,"y":26,"dx":1,"dy":-1,"direction":2},{"x":2,"y":25,"dx":1,"dy":-1,"direction":2},{"x":2,"y":24,"dx":0,"dy":-1,"direction":1},{"x":2,"y":23,"dx":0,"dy":-1,"direction":1},...],...]
and am trying to process it with this eyesore
const staticScore = rangedDPS * staticScorePaths.reduce((min, path) =>
Math.min(min, path.reduce((acc2, p2) =>
room.lookForAt(LOOK_STRUCTURES, p2.x, p2.y).reduce((acc, s) =>
acc + ([STRUCTURE_WALL, STRUCTURE_RAMPART].includes(s.structureType) ? s.hits : 0), 0)
, 0)
)
);
but the result is undefined
The outer reduce has no initial value
you should get an autoformatter
shouldn't be a problem i think 
i also am just
unsure of what to put there foran initial value
can we reduce this code to a shape
do a 999999
Suuure

where is my infinity constant
that's because Number(undefined) is NaN because undefined gets converted to string first and can't be parsed as a number because js moment
any language worth its salt has a constant for this
Number.infinity
Number.POSITIVE_INFINITY or Number.NEGATIVE_INFINITY
Yeah, I just never assume anything when coding in JS 
For all I know those method could return 1, object, bananas, or nuke
i love when my method returns chr(sum(range(ord(min(str(not()))))))
Jokes on you, the last one is actually real
I spent too much time in the docs
The sign of addiction is showing 
thought that said addition and i was like
➕
It has no sections 
[] == "" evaluates to true 
Now this is just math addict lol
but ![] == !"" is false
That's some yummy conversion
thats not so weird
wait yes it is
?
when is the type coercion performed
and to which types
The notion of array compared vs string literal is already weird as it is

Don't try to comprehend it
js brainrot took over 
Just embrace the chaos
Alsi shiro, js min accept destructuring
So you can just
const data = []
Math.min(...data)
wait what
If data length is more than N it will fail tho (I forgot the specific length)
really?
Yes
[] == "" is true because strings implement iterable, so "" is pretty much just [] (i am bullshitting this)
but ![] == !"" because [] is truthy and "" is falsy, so ![] == false and "" == true
Screeps is psy ops so more people learn JS 
uhhhhhhh
yeah basically this, but more detailed:
[] gets coerced to string which is basically [].join(",") so "" == "" // true
"" is false because every empty string is falsy
![] is false because the ! makes [] coerce to bool skipping string, and Boolean([]) is true
???
which meeaaannns.... [] == ![] evaluates to true. 
yup also this is true
principle of excluded middle defeated once and for all 
this is too easy to figure out why it does, not good enough for confusing people
"It is wednesday my dude"
yes but then "" == [] is also easy to get
one would perfectly reasonably but incorrectly assume that it's because strings are iterables like arrays or something, or are char arrays in js

There's a meme song which the lyrics is just that
it's incredibly pricy to calculate tho
offload it
also i can't test my harvestAndStoreEnergy task cos the only storage is full 
Cloud is always trying to offload things out of screeps 
guess i'll hop in a sandbox
Just like your namesake
i can hear sam laughing at "64 cores"
"Move things to cloud" 
i would explain what i meant
but i don't wanna give shiro an advantage 
maybe later
how about doing the opposite
i dont need an advantage 
I'm gonna have to work on screeps to make sure Shiro~ doesn't destory me any more than I already am.
move your compute to screeps servers
Chay be out there doing the most cursed thing as always
i don't currently 
i have a number of expensive operations that i only run once in a while to use bucketed CPU
i should prob check my cpu usage
cloud invents profiling
On 1st day 
I'm waiting for Shiro~ to just nuke the entire map once the rest of us get used to the game.
I'm just getting something done in the sandbox hopefully before I get overran.
my code works perfectly
function profile(fn) {
const fname = String(fn).split('(', 1)[0];
return function(...args) {
const c0 = Game.cpu.getUsed();
const rv = fn(...args);
console.log(fname+": "+(Game.cpu.getUsed()-c0)+"ms");
return rv;
}
}

yoink (it takes remote control of my pc)
profile
the high latency on createCreeps was an error log

theres not even any enemies in here
i might set up automated alerts if i have high CPU usage
something i set up early was this
log: function(s) {
console.log("<span>["+Game.time+"] "+s+"</span>");
},
warn: function(s) {
console.log("<span style=\"color:#FFCC33\">["+Game.time+"] "+s+"</span>");
},
critical: function(s) {
console.log("<span style=\"color:#FF5555\">["+Game.time+"] "+s+"</span>");
},
oh good idea
actual godsend for my eyeballs
alright, i need to write code for controlling tasks
log: function(s) { console.log("<script>alert('" + s + "');</script>"); } 
does that work
one way to find out
vote in ligatures poll
why did it spam alert boxes too
why do i have xxs in screeps
it wasnt just one
HELP
THEY KEEP POPPING UP
OH OF COURSE
ITS IN THE CONSOLE HISTORY NOW

EVERY TIME A NEW CONSOLE MESSAGE WRITES I GET A NEW ONE
curse of popup
please tell me clearing console fixes this 

I will definitely be catching up on all of this context that is probably pretty important.
now you know that console.logging any user-generated content is a bad idea
i currently only log room names
which are fixed
but thats good science
dear future screeps player,
do NOT print my creep names to the console
you WILL regret it
please wire 10BTC to my wallet to unencrypt your files
wait wait you can use it to run arbitrary computations in the browser that send the result back to the game

nah prob not
outsourcing success
its all in the console.log call
i'mma test that wan sec
unless you mean using the fact that console updates rerun the script stuff
but i dont think you have API access from there
actually can't be bothered
and theres no other way to exfil from the console
is the server up
Damn the wifi is ass here
not rn

screeps players: refuse to play the game, insist on modifying the game's engine
screeps server host: refuses to get game engine working, plays the game
Game engines are my speciality
oh my creeps died
time to make doom in the console
and my code autocreated new creeps to replace them
What are those?
I dont html
you literally have the console you can send the result back via the console
wait
you cant
you could send it back to a human
but your code cant read the console
i guess you do have API access tho dont you
wait
?
a place to put js inside html
no i think it stillf ails
is this read only then?
because the script tag updates upon a new console message being sent which only happens when you call console.log from the main script
i wonder how badly my room scores, check my room @real sierra
i cant check it since i have no creeps/structures in your room
but if i implemented everything right your room would score 0
its free 
I have fogured out thzt the wifi is good if i keep hhe door open 
will fix in a few mins just need to write tasks for them 
i need to stop helping cloudburst
(tho also programming the code to handle task deligation is important too)
they're making too much progress

"too much progress" shiro my creeps do not MOVE rn
Then make them move
nevermind
Is quick, its easy, and its free: not dealing with js
someone was setting up a rust environment earlier and sent a screenshot of endless type defs for screeps
have not heard from them since, only conclusion i can draw is that rust killed them
Classic rust
its called data modeling and it does kill you
Its time to play screeps 

Nah wait i should shower first
waiting for the gpu implementation

chayleaf gave me an idea tho
Dang it, funky town was on a store radio and I blame @olive sable for my reaction
@olive sable
console.log('<canvas id="glcanvas" width="1" height="1"></canvas><script>const canvas=document.getElementById("glcanvas");const gl=canvas.getContext("webgl");alert("has gl: "+!!gl);</script>')
you can access webgl from the console
there's your gpu access


What in the name of Holy Evil did I just witness
bro gemini chill
science
if chayleaf can figure out exfil from console to script then you can in theory run things on gpu and get results in your main script
tho i dont know the specs of the gpu over at screeps hq 
might be integrated graphics at best
actually i dont know if the console runs over there
prob doesnt
cloud's units are standing there menacingly
i must unlock nukes for MAD


i will make the greates screeps gamengine ver
its loading... wifi bad
yay
I will not be able to get screeps till I get paid on the 12th, but I will hopefully join you guys then. On a side note, how is the rust bindings coming along? (I am a massive rust nerd)
I think that's rust bindings guy typing rn
how convenient 
Not dead yet although i almost died while designing the system. I currently have ~300 lines of code and bascially 0 functionality 
bro cant afford 7,50. need to start a go fund me
but now it's all coming together and things should be much smoother now that I have got the foundation done 
welcome to the starting line 

times are tough ok
That's crazy, you can afford the expensive game
when I started screeps I used to think "wow, I can't believe they give you so little CPU unless you pay"
Yeah, I'll give them to you once the 3090 is here and I have the money
you have till my birthday
but more and more I'm thinking "how bad does your code have to be if you need more CPU"
meanwhile your code is O(n!) 
And in how long is that?
its the 22nd
Of this month??
just upper bound n and treat that as the O(1) constant time with potential savings if you're lucky
they went to bedge
I think from what I can tell I may be getting more money again maybe next month or the one after
just give it whn you can spare it, preferably sooner than september
So maybe during next week

Would be very cool
Sam is becoming a dealer here
Well, you sure have some cheap ones
Soon he'll go around breaking people's legs for not paying the GPU taxes
Does it even run on Linux, because if not, I couldn't play even if I had the money
It does runs yes
Arch btw
Silly
Well, guess I at least know that if I ever have the funds to get it
I'm on Mint Cinnamon, probably should work if Arch does
Can different region gift to another region?
idk why, has something to do with on of the gigbyte apps
On steam
I would assume
@real sierra i have run into an issue: i can't actually test my code 
this laptop is decent, but bluecreens like once aa month just cuz why not?
In the US it is beyond worth it for 3090s
nvm i can test saved
Laptop moment
mhm doesn't work
3050 moment ye
Scam laptop
it was only 600
I'd rather be chased down by Sam then pay for a 3090 here
????
i5 12500h and 3050 laptop for 600 is prett good deal imo
As long as it isn't 2gb vram I sleep
Looking at the picture from before, I don't think he's that athletic so you have a chance to outrun him 
you also want one? shipping will cost more for you tho
I still am mad I got scammed with my 3060 laptop
shiro and cloud feel free to ignore my illegal bussiness practices
They're probably too busy playing the fun looking game to notice
Nah I'm close as well
i dont have a tax number, so if i start doing this regularly the belgian irs will come after me
you also want a 3090?
Man, I miss when our government tax id was separate from our citizen id
my code is dealing with how my creeps handle inaccessable energy sources
you'll have to give me better value per dollar than I have for my current gpu
Tax evasion 101 was like everywhere then 
(my current gpu was free)

I just don't test things like this until they cause an error
this is like breaking bad for tech nerds
this is why my entire creep loop body is in a try catch
But shipping to the US and customs tho...
just lie
Lest you wanna build those starlink submarine
I was personally saying just say it is parts
Ahh, yes. The tried and tested method of the ancient art called lying
my creeps are priortising the controller over creating more of themselves
ngl kinda want that behaviour
It is like $50 bucks cheaper including them if I remember correctly
...what?
Oh, so the price there is THAT fucked huh. When shipping international and custom is cheaper than the selling price minus shipping local
$800 avg
More likely 850
i upgraded the controller 
Whar does that mean?
the room controller needs to be upgraded to shit in screeps
How very silly
if it makes you feel better, the price scaling is not linear
(this does not make anyone feel better)
i might actually reach RCL4 by the end of the night

those changes i made were crazy
can you change a module name?
i typod
I wish, I temp named one bwaa and didn't see a way to change it in game

fuck i pressed delte
Is the server up yet?
@rare bridge hi someone has a question for you
nuh uh
i love that when one of my creeps dies, 5 logistics units descend on their corpse to loot them of any energy they had
like vultures
🦅 🦅
🦅 🦅
The american way
my screep is shooting laser beams
I'm still working on more mining stuff
surely not in the tutorial 
i give up writing this code for now i can leave my creeps inefficient
i should prob focus on defence cos i have none of that rn
i still dont get js syntax, its bad
Time for the most cursed notes I've done in a bit
but first, gonna make a task that directly attempts to upgrade my controller
i dont like te console.log stuff in the tutorial, it spams
I was on VC while doing tutorial and my friend was saying how bad it was for spamming
nah its fine 
unless the people next to you are SUPER locked in
you dont need to worry
tho tbh the way my code is working rn i could easily revive myself

wrote a task to allow me to upgrade just by changing a memory value on the room
let's see...
wait were you just doing everything in a single room
yes
ive written most of my code to generalize to more rooms but i wont know for sure that it works until i claim another
well, i'm sure your neighbors will be kind enough to give you that opportunity
ha nerds
I've already generalized the tutorial code a bit so that it is able to handle mutipule rooms.
haven't tested it yet
For now I'm dealing with mining and pathfinding.
i have 4 creeps and they all wanna store 49 energy into the spawn
ML datasets are making me use a lot of python hidden functions
how do you emty the memory?
__iter__ 
room id?
for (const key of Object.keys(Memory)) {
delete Memory[key];
}
something like that?
While writing notes these bois are just vibing
I am here, lying on the floor trying to sleep while watching #programming descend into madness with JS and screeps 
fr tho
#programming is consumed by screeps
sounds like a great time 
It is
join us
can someone here do it for me pls






not rn





wait does that profiling function actually work?





