#programming
1 messages · Page 67 of 1
not hard
battlemage
interesting, bun runs out of memory but node ends up with a stack overflow
guess jsc does not reuse the buffer 
💀
chat we're behind our target of 1k
s by the end of june get on it
actually the target was 1400 but we're not getting that at this point
Not very 
How many
s are we at rn?
i have noticed the usage of
has fallen significantly in the last month
just an observation 
i will never let this emote die
I’m beginning to feel like a heap_bomb, heap_bomb

indeed, theres been 571 in may but only 968 in june
fell off 
naaah that's crazy 
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
does not appear to be widely recognized public figure
AI on AI slander is not only limited to Grok, huh?


"neuropoghd is the best emote ever"
35% of all neuropoghd's in the server's history were in this month
for some reason it feels like i see it much less lately
propaganda is working
it has infiltrated your daily life
it's become so normal to you you don't even notice it


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
in terms of forked languages tho
im sure its the most common one
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
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
wouldnt that be lua
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
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?
it could be your streaming software and/or bitrate. what software are u using
I use OBS and I run 1080 P with 60 frames
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
I won't trust streaming with WiFi
you too are suffering i see

run length encoding mentioned?
ye the pixel canvas is using it rn for sending the grid data to the frontend
im of the opinion that the best compression scheme is just BWT then RLE repeated until the file size goes up instead of down
Or if you need compression do QOI 
he's going the distance
Good point the only thing is if I try to get an ethernet, the wire will be annoying
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
no
Not even an adapter
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 
You can try getting one of those ethernets over powerline adapter
But I don't know how your house is wired exactly
Simple rules are the best for swarm
I feel like this game for coders is like Eurotruck Simulator for truckers
two miners per energy source
always one upgrader unit
There's also a game titled bitburner
Which yes, also needs real code to be done
i tried bitburner but it was a bit too much like work
i wonder who has sent the most 

Yeah the lack of graphics do make it like that. They even have tutorial to use VSCode
the controller is getting energy...
it's halfway to upgrading to the next level
then i can build tons of new structures

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

doubt anyone's beating them
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Chay crash out episode LFG
im fighting the compiler
and by fighting i dont mean like making it compile my code
i mean actual physical battle
im in so uch pain right nooooooooooooow
I can only wish all the best to you 
That probably cost an arm and a leg betting
clang has hands
Well, compared to running a new cable it could be worth it
Because using powerline means you don't really need to pull new cable
I don’t know if my mom would want to do that though
clangs got nothing on me
It doesn't cause any noticeable interruption for other devices (sans radio equipment usually)
The standard is IEEE 1901
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
konii
stop counting
and sleep instead
I thought you'd have realized it the first time. A game with programming as a main mechanic and provides data just begs said data to be processed
Like that spreadsheet simulator game (was it EVE?)
nah it totally went over my head the first time
Yes, Eve Online has it's own Excel plugin
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
See also: spacetraders.io
counting
s is actually a good strategy for falling asleep
This is not strictly a "game"
Or yes, a game but you build your own client 

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
*Filtered
Could also use taunt from monty python
"Your mother was a hamster, and your father smelt of elderberries"
Goodmorning 
I actualy counted the amount of hours of sleep i will get
Which was 5
Not very fun to count

common misconception

Witch hunt 
nono i mean in this game
do you globally have info
on them
no yeah i meant that its not units making individual decisions
Bombs?
oh
yeah
the AI is global
consider all units networked
im more worried about the small scale right now tho
you can assemble groups of units and send them to fight, plus retreat or ask for reinforcements when the enemy is too strong
like, if there are enemies in a room
how do i pick which enemies my units should target
the key is to have good synergies and also the larger group
im worried about the compute limit tho
probably healers first, then highest damage, then the rest
a bunch of problems in this space boil down to "attack the thing closest to you"
idr the specifics of how units work
which ends up being a not fun calculation
"sudo kill -9 <id_RKN>" does cool things. It's a pity that it doesn't work as I would like
there are indeed healers 
and ranged and melee units
so pathfinding is your main problem?
pathfinding and target selection
there is built-in pathfinding which caches quite nicely
so that's not a huge concern
you can try incremental pathfinding, process some info on one tick and some on another
ah i see
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
Assign one unit the leader and the other target is keeping distance to said leader
the issue is that the game world has impassable terrain
yeah i assume the issue is tight spaces and such
using standard pathfinding may have the leader take a route that doesn't permit the formation
yeah
you can probably just assign N nearest reachable tiles around the leader
that does require basic BFS but thats not really hard
if you want you can leave gaps too
Or just flood fill with initial value counted down
Now that I think about it Flood fill is BFS
if you want you can do something similar to BFS but with bias towards one or two directions too
to create various formations
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
then some passable terrain may become impassable

I think this is preferred than an impassable marked as passable
i dont actually think this is true
for simplicity, if im moving a 3x3 block
no please believe my misinformation
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
cost isnt boolean its a number so you can probably just /2 nearby tiles

### ###
### ###
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
this is easily achievable through bfs
having the units disassemble and reassemble sounds painful
Bfs 
(Idk boy that is but sure)
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
You'll have to deal with it either way if the tunnel is the only passage
you dont have to you can compute it as necessary
Breadth First Search
As opposed to Depth First
Bred catchings strays
@trim valve any comment?
Compute cost 
i didnt wanna say it 

i would think bfs is not much more expensive than just putting them in a 3x3 grid
if (willPassThroughTunnel) {
dont();
}
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
Shiro wanting to minmax compute 
Also you can always switch strategy midways
When focusing on combat or exploration or resource collection
scary
then i have to figure out an algorithm for when to switch
sounds like 4 hours in MS paint drawing diagrams
Let neuro-sama decide 
add neuro sama
make them dump your entire game state in public chat (opsec be damned) and hook up neuro to read the public chat
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
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
Or flexing
yeah its just public
well you can use encryption i guess
one-time pad requires a single-use key
otherwise its not one-time
ok then how about
aes-256-cbc? 
Chacha it is
probably just instantiate an LCG and take the nth element as an xor key, with n = current game cycle

true one-time pad
Me when I get the seed

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
for loop and find all four at once, breaking if you found STORAGE
is for loop faster 
or rather, find just one but use a comparison function
usually built-in iterators are better, aren't they?
From latest benchmark I know, yes
how did js go so wrong
does js have a function that finds the minimal value in a list using a custom comparator
you could use a reduce
Js have .find
Or yes this
well, unfortunately for loop it is
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
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;
}
}
OUTSOURCING
Bigger than undefined
oh right 1 > undefined is false
then set found to {structureType: null}
wait no thats not how it works
Or Numbers.negativeinfinity
the original is fine
Wait, is it?
no it isnt

you also have to add null to lookup or whatever
Imma move to the desktop just for this chay


idk shiro figure it out
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
Nah someone put their water bottle in the x-ray machine 
He be drinking that irradiated H2O
🔬 mhm theres water in this water
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;
}
}
this has different semantics though so it doesnt really work
Im scared, what does this mean?
Oh, I misunderstood the original code
compute is measured in cpu time i believe
But also, wtf are you doing shiro

In the original code
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
Oh so it's just finding the most preferred structure from the whole list
yeah
Yeah, I definitely misunderstood that one big time lol
oops 
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
You can also break early when you've found the most preferred structure
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
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
}
}
}
}
i would be scared to be your neighbour in this game
Nah, I'll just write some code and then forget the game exists after a while 
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 
Don't pull me to the game again now

if you let me get too far ahead i'll be unstoppable
ive got them placing roads automatically now
Someone should host a fan server so #programming can have competition sometime 
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








switched from private server to official server
the CPU limit here is 20 instead of 100

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

I can look into it when im back maybe
Server pc will be used for the gamejam probably anyways
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
is that what you needed a spiral for


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
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;
}
TIL of Array.every()
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
The pipeline is real boys
ryanair o7

Take this imaginary :bwaadow: on your trip

It'll serve you well
You got it

Bro's never to be seen again 😭
llc tag!!!
DONT make marketable plusified lilac into marketable playdough figure
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 
exercise for the shiro: test this code and fix it if it's broken
good luck 
// 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;
}

rip
I am alive
if not a secret where did you go
or are you going
My mom is doing it
It will be like 35 bucks shipping.
I originaly thought 14 but once you over 2kg its 20 bucks extra
WeeeeeeeWaLaWaLa(*≧ω≦)
bro survived the 1% survival chance ryanair boeing😭
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
is anyone on xdg-desktop-portals-hyprland, can u confirm that individual window screensharing works
nah don't bother then, ill just test it directly
i should try linux w/ hyprland at some point
every past attempt in a vm has been less than successful 
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.
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
yeah there were many-a-times i wanted to just switch to x11 because of desktop portal issues
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!!!
!!!!!
wait you went to sleep? at what point
"hey chat can you look over my screeps for a minute I'll be back"
This hotel has a dentist 
a few hours ago
"A few hours ago"
-> only slept a few hours
I like it in here
ok I need to go check on my screeps
the temptation is killing me
hello from pc 

it looks like something broke
they're still alive but the builders aren't building]

huh screeps looks neat
Oooh, we can host a Neurocord server 
it actually does support private servers 
the server backend is open source too
looks like that was my only bug
the builders are working now, constructing roads and stuff 

yeah the cpu unlock is pretty useful
but not necessary
you just need to write really efficient code without it
you can earn temporary cpu unlocks through in-game economy tho
neat
yeah
it does overall look like a nice game
i may need to go back through and optimize my code tbh
shame its javascript but it also fully makes sense
im at a baseline 3/20 cpu right now
its super cool, well worth the money i think
ive certainly gotten my time out of it
I might consider it
yeah, theres transpilers if you really wanna write in other langs
it mentioned wasm somewhere
Screeps has a rich third party development community which have built a number of tools, libraries and web applications.
If you have a tool not listed here, feel free to edit this article.
Use Caution
but I have no idea how "efficient" that is
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
hm
its an embedded browser i believe
kinda like the discord app
Yeha Iguess that it is electron
offline it probably just spins up a local webserver
by the description you need a local server
ah so the server runs the scripts in a sandbox, that makes sense
the actual server is here https://github.com/screeps/screeps
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
Look, I get you're excited for your birthday today (happy birthday) but sleeping is important
showing up to work on time is also important 
this is exactly the project mindset I do not mind supporting with 100€
Then sleep earlier 
the base game is super cheap right now
50% off
and it was only a few dollars to begin with
I have 5€ on my card right now 
The bottom one I assume so you have more processing power on the server
cycles and stuff
yeah

but that only applies to the official server
if you host a private or community server, there can be no limits
self hosted server has unlimited / pre-configured amount
its mildly weird to me how it measures execution time but it makes sense
esp w/ using javascript
imagine a NeuroCord tournament
iirc someone made a similar game in rust but you compile to risc-v and it uses qemu to run stuff
id lose 
this game is waaaaaaaay too deep in its features
which is obviously a lot better for measuring stuff like cycles
Rts gamers 
for one, all units are modular 
you choose any set of parts from which to assemble them
a game where you're given a potato and your job is to implement a firmware for it
just realised I replied to the wrong message but
point still holds
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
at some point someone here mentioned doing group programming "competitions" like that but I don't think it really took off enough

this would be an entertaining way to facilitate that
its basically a coding contest with a very amusing success metric

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

for me its easy to keep interest because there's so much depth
i would offer to host it on my computer but proxmox is rather unstable and i'm still getting dangerous crashes every so often
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
:mhm:
i see
so it's not just "make a solution for everything all at once"
yeah
it's one problem at a time
i think the way to go about it is gradual
my personal metric for success is how big can i get my colony
ig compared to galadiabots there's a lot less luck involved / points you'd get stuckk on
the main bottleneck for that changes as i play
whereas this seems more like an optimization game
there are some extra features like "starter rooms" and "safe mode" which help you get off the ground without getting rolled
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
honestly the more I look at how the cpu works the more it actually looks kinda neat
hooked one
very useful for combat encounters
tactical maneuvering is expensive
too many distance checks
always tanks my cpu 
I'll sit on getting the game for now, but it defo could be something I enjoy

ill keep blabbering about my progress and sending screenshots until you buy it
over the course of a few days, that is
oh actually there's a free web demo isn't there
is there?

and they released a live demo
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

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?
🥺
uuh


i accidentally deleted my entire .config directory
that's ok you don't need it ❤️
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 😭
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
start small 
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
make a single unit then figure out how to make it move places
nah I mean I like reading docs
That too ye
because then I avoid doing some really roundabout strat
well I guess not that many but
yeah that's valid
the majority are not needed
you'll be referencing the docs for Creep, Room and StructureSpawn religiously
the rest are occasional
true
Y'all gotta love https://spacetraders.io then
What is diffrence between world and arena?
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
Which one do i need to buy?
What?
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"
Bought it 

now I get to poach your concrete solutions to my issues 
be sure to post all your code 
it's ok it's just python and java squished together
I have never written a single line of js java in my life
Use typescript, stay sane
I have never written a single line of js java typescript in my life
I think they support wasm?
I think il just do c++ to wasm maybe
you'll have to see which languages have third party wrappers around the screeps API
otherwise you're gonna suffer
write the bindings yourself 
I might just watch a suick tutorial on js and wing it
that's the way to do it
yeah I will say you're probably not gonna be getting hit with too much js weirdness
just remember to put "let" before your variables
It cant be that hard 
Cant be harder than vulkan at least
try not to get "in" and "of" confused
no use const 
I'd personally write typescript instead of javascript but I am a sucker for types
const as const my beloved
it isn’t you’re right
still doesn’t make the actual object immutable 
all smoke and mirrors
I do
but when I started I forgot to use either 
At least it will have better type inference 
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
now I'm not sure actually, refreshing them is pricy
might be more expensive than making them anew
economy is hard
Shiro is procrastinating from the real issue of his embedded project
but the turret count limit is harder
perhaps I was using the embedded project to procrastinate from this all along

Any idea of what to eat for dinner?
If they're utf8, be careful not to bite between unicode boundaries
honestly I can't tell if I want to play screeps or just yearning to play factorio without realising
Bred 
The factories is calling
I want to play screeps but have to go to work 
why can't I just get paid to play screeps
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
just become a really popular screeps streamer
I'm sure it makes great content and isn't just boatloads of planning
Akchually the size of char is platform dependent. There's some DSPs where a char is 16 bit. 
youre probably missing an extension
get vedal to play it and then the funds will trickle down
provided chars are utf encoded they may span multiple bytes regardless
char is just a language abstraction of course
I'm sure C# Dev Kit would fix the problem, but it's not available in cursor 
edit your product.json, i assume cursor has one since its a vscode fork
https://github.com/flathub/com.vscodium.codium/issues/90
here's how they do it for codium

Just become disabled and leech on the disability wage 
if you play it on stream you can claim it as a tax wriye off
Decided to check out the vulkan triangle example code...
Its 1186 lines 
yeah, the memes weren't a lie
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
I find it funny that DeepSeek uses the word "vibe" in his thinking. Like, I didnt use it in the prompt
Isnt that just how it ussualy works???
When you ask the time its always in the unix timestamp systemp for everything ive used so far
and this is why people use opengl and webgpu

gl though u got this
It doesnt even seem hard, just a lot of work
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. 
Opengl is a lot more boilerplate tho
This has a lot les overhead
Just a lot more work
Anyways
Triple buffering

VK_PRESENT_MODE_MAILBOX_KHR my beloved 😍
I dont think opengl has that by default
Might be why i was limited to 6k fps
"limited" 😭
yes but in old engines where features are limited can be quite tricky
Just make your engine better 
oh just use modern engines
can they support windows xp?ofc not (in reality, im just stuck with that engine)
I should see how performance is on the new gpu
The goal is to make it run at 60fps on phones, to do that i need 5 digits on a 3090
a phone gpu and a desktop gpu will have pretty different performance killers
you most definitely do not need 10k fps on a 3090 for that
the presentation overhead will not be an issue on phones at all
you'll be much more limited by how much geometry you can render and how fancy your shaders are
Tbh i havent trsted mobile with the c++ version 
I just thought "2k extra fps is the best you can do?"
So ye...

can I ask a random stupid amateur question
Yes
also fps is kinda a bad metric especially at this stage
Ye i know, frametime and such is better
Of the 0.150ms, 0.120 is swapping buffers with opengl
no sorry questions are banned today
try again tomorrow /s 

(just ask, someone will answer if they know)
it's really stupid, but could I use AI to assist with my learning with programming or is that actually harmful to the process
It depends
it depends how you use it
Jinx

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
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
Then ask it. It should be able to explain
gambling watch!!!!!

The craftsmanship of this is insane tho
Shadow is probably the least paid luxery watch enjoyer i know
does it actually work
will it actually give me money if I win?
it's a 336000$ watch
Ye it has the full rotation mechanics and everything

no, like I would get how this thing works and how to use it, but idk where to use it when I have to use it
it's hard to explain
That price has a decimal pount 4 digits too far right for me
As if i could afford it
gawddamn
furthermore feel free to ask questions here about stuff it generates (as long as its not like an entire app that's just completely generated and broken or something)
at what point do they get rid of the clock ands and just give you cool little mechanical trinkets on your wrist
Idk all their watches are just miniature stuff
I'm not even going to ask for price
fick
Same company that made the watch of that certain internet personality with the working bugatti watch

Oh ye
You mentioned that in a diffrent server

This one right?
thank you amd software
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
2 fps 🔥
I'm like 90% sure blenders ui only refereshes on interaction otherwise its like 1fps
so it kinda checks out
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

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
no I like VSync
please make it an option to use FIFO 
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 
yeah, default setting can be based on the device 
IIRC yes, or at least close to free
It is if you have a dev account, which costs 25 bucks apparently
If i put in ads it will pay for itself 
gate progression behind watching ads
Surely people will actually download it, right???
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

wtf is that price
cheap
where on earth are you looking at domains
like please consider a real domain registrar like porkbun
scam price: buy now for practically free, renewal in a year will cost an arm and a leg
So the other site is scamming me?
Motherfuckers
damn cloudflare doesn't do ph
yeah I was gonna suggest cloudflare but it didn't support it
yeah some registrars charge extra
vercel domains 
so many registrars do
get yourself a .gay domain before the month is over. its a steal
It doesnt need to be ph lmao
holy 
Idk what ph even is
phillipines presumably
i just checked and that's godaddy
i was right nice
so yes they're probably going to try and scam you
cloudflare is a good registrar to default to 
I dont need a brand rn, but it would be pretty cool to hzve one when im actually selling out
I'm using INWX for all my domains
mhm
Erm.fish studios 
Nerd i own bwaa.moe

true
Im making shadow ceo, this means he pays my taxes and i use his ip
Silliness going on?
I still dont really understand this
koniifer
A company owns it and you rent it?
📺

i own 192.168.1.210
be google and own ur own tld
because legal reasons
well, if you have the money and power you can operate your own domain
maybe you could if you're a registrar
otherwise I doubt ICANN allows it

you can request a completely new tld and become its owner. If you happen to have the money and usecase
there was a point even google.com has expired and some dude sniped it
The last semester of my college does go over starting your own studio, if you wish to follow that course
No thanks
what does that mean? your own studio
Too much papers
You make games, and you have a brand
Nd do taxes ig
And lots of tax writeofs
yeah, TLDs are AFAIK actually owned, not just rented
expensive though, and you still have to listen to ICANN so there's little point in it unless you need a lot of domains or just want brand status
New gpu? Taxwriteof
New desk?
New ac unit?
Its all deductable
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

i do what ICANN't, buy a domain off konii today
so long, fool, thanks for the neuros
is com available
with what tld 
konii can you sell me google.com
you know, https://com/
i can sell it to you 
the tld itself
no
this
uhh










ofc not (in reality, im just stuck with that engine)
"
