Chat:World/2021-07-18
rememberThis: Hellooo
rememberThis: how is everybody
WhaIe: if anyone wants to join a clash of code livestream: https://www.twitch.tv/senamonry
CodeAce: Hello World
dbdr: hey martinpapa69
martinpapa69: morning
dbdr: making progress?
martinpapa69: ye it looks like. I removed like 10 different stuff from the code, that i thought to be "hacky"
dbdr: minimalism is good :)
dbdr: from the training?
martinpapa69: from the training, and now from the "core"
HippocratesLlama: So I'm doing a league based challenge, my first that I've tried, and It says that I got the the ranking 1 spot but I can't see how I move on to the next higher league
HippocratesLlama: I have to wait a few minutes apparently lol
dbdr: no problem. there should be a countdown timer at the top of the screen before promotion
lawlmanx: hey guys I have problem that I am doing the exercise "Coders strike back"
lawlmanx: but it sometimes doesn´t even load
lawlmanx: It just says the boss won
Marchete: I'd like to know what's hacky :thinking:
Natjisu-Kid: so hard for newbie like me
martinpapa69: wouldn't say every stuff i removed is hacky, more like unnecessary complexity. I like my code as simple as possible. but, ye, once i get decent result, i can make a list :D
dbdr: top 2 to 5 is pure RPS I think
Marchete: :confused:
dbdr: I was #2 this morning
Marchete: indeed dbdr
Marchete: I find winrates as snowballing
Marchete: either 0% or 100%
Marchete: single initial gamestate
jacek: oh my
Marchete: rather deterministic NNs
Marchete: so RPS
Marchete: you were 1st for some time yesterday
dbdr: during a robo submit? :D
Marchete: no
dbdr: :o
dbdr: I thought at least robo was clearly better I mean he is
Marchete: he is
Marchete: spam submits, and at some point he tied and you don't
LINDI_SHAH: yo
LINDI_SHAH: :)
devguy: do enybody can help me out
jacek: with?
devguy: a puzzel with the name Temperatures
jacek: and whats the problem
devguy: i cant get the second number right
jacek: and what number do you get
devguy: first i need to type 1 thats good but by te second analasy i need a -5
jacek: because its closest to 0. or rather its absolute value is closest to 0
devguy: but how do i swith the numbers
jacek: dont hardcode the answers. for each test case you get different numbers and you need to print the right one
devguy: do you maen that i need to type te closest numer out of the optoins i get
jacek: yes
LINDI_SHAH: what this discord is useful for
LINDI_SHAH: :O
LINDI_SHAH: :nerd:
Marchete: anything I try is worse than all previous ones
MSmits: damn, I just replaced my hash table by unordered set and my bot is a factor of 3 faster :P
MSmits: i had a lossy hash table that overwrites previous results on conflict, usually thats so much faster that it doesnt matter you lose some results
MSmits: it bothers me though, that there's implementations of hash tables out there that are 2-3x faster than the std implementations
Marchete: don't you have some kind of "queue" on collisions?
Marchete: like a loop 0..4
Marchete: to check free spaces
MSmits: usually that is slower, for example when doing minimax
MSmits: at least that is my experience
MSmits: but if the hash table is not a bottleneck at all, then losing results is unacceptable
MSmits: did anyone ever convert one of those custom implementations that are faster than std, to something workable on CG?
MSmits: they're all huge projects
MSmits: but probably most of it is unnecessary
MSmits: like this: https://github.com/Tessil/robin-map
jacek: TT?
jacek: whats wrong if unordered_map ~
Marchete: your TT is turn based? like clearing data at some point?
jacek: for minimax i clean tt at the start of my turn
MSmits: unordered map works well, but benchmarks show it to be inferior
MSmits: https://tessil.github.io/2016/08/29/benchmark-hopscotch-map.html
Marchete: I don't know, I see a custom hashmap better
Parceni: is this discord or is it something else
MSmits: something else
Marchete: imo all these libraries are huge
MSmits: yeah thats what i said, but i think you dont need most of it
Marchete: I do the simple way, take some bytes from hash to point to a big array
Marchete: from there, check up to 4 hashes
MSmits: why 4?
Marchete: or 5
Marchete: whatever
Marchete: some small loop to avoid collisions
MSmits: so does that mean the hash key leads to a maximum of 5 results?
jacek: there was some custom hashtable implementation in connect4 solver eh?
Marchete: also you can add some key to "invalidate" hashes
Marchete: as a fast way to clean up
MSmits: yeah i usually have a counter
MSmits: next search has a higher index
Marchete: and that's slower than unordered_map/set?
MSmits: no, but it's lossy
MSmits: unordered_map/set does not lose a single result
MSmits: so do the others on the benchmark i just shared
Marchete: if you are losing
MSmits: and some are 2-3 times faster than unordered map
Marchete: then either your hash is bad or you don't have enough space
MSmits: your space is never going to be used homogeneously
MSmits: even with a good hash function
MSmits: so you're always going to need more room than you actually need
Marchete: on law of big numbers
Marchete: yes
Marchete: it will be mostly homogeneous
Marchete: it's like a random()
Marchete: it should be homogeneous on the whole range
Marchete: if not
MSmits: anyways, my point was not to compare lossy hashmap to lossless
Marchete: then it's bad
MSmits: i know a lossy hashmap can minimize loss to a small amount
Marchete: lossless can imply resizing
Marchete: clears() are costly
MSmits: yes, but you can reserve
MSmits: if you know how many irems
MSmits: items
MSmits: you can guess this
Marchete: just try
martinpapa69: do you put your object directly in the hashmap/set?
Marchete: debug to see collisions
martinpapa69: like unordered_set<MyType>
Marchete: I'd say with a big size
Marchete: like 2x your expected storage
MSmits: with a big size it becomes really slow
Marchete: a loop of 5 it should have near zero collisions
MSmits: but it would need to be 5 times as big right?
Marchete: 2x
MSmits: why 2?
MSmits: i mean if you store 5 items per key
MSmits: you need 5 times the roo
MSmits: room
Marchete: no
Marchete: I'm saying
Marchete: that your hash can have collisions
MSmits: where would you store the overflow of colliding hash keys?
Marchete: so to avoid them you allow some little search
Marchete: to find the nearest free spot
Marchete: that's the 5
Marchete: it should have a formal name
MSmits: oh
MSmits: i get it now
Marchete: you can also "save" the overflow on a reserve array
Marchete: if it's that important
martinpapa69: there is a built in stuff for that, dunno if you heard about it : unordered_multiset
RoboStac: they're normally called buckets
Marchete: "buckets"
Marchete: thx :D
MSmits: buckets arent normally in a fixed size array are they?
MSmits: aren't they like a vector structur?
MSmits: or something
Marchete: you can also have that
RoboStac: it depends on the implementation
Marchete: array of buckets then vectors
Marchete: but vectors will resize
MSmits: yes, but you would need those only on collision
Marchete: I'd say prefer static
RoboStac: for a lossless map you'll always need some sort of resizeable storage for hash collisions
Marchete: and collisions should be rare
MSmits: RoboStac Marchete *nearly* solves this by doing a search for empty places in static array
MSmits: but he still has some loss i guess
RoboStac: yeah, but at some point thats lossy
RoboStac: or really slow if you don't limit the search
RoboStac: (I do the same)
MSmits: I think this depends on how much loss you can tolerate
MSmits: do you have a percentage Marchete?
MSmits: for your general use of this ?
RoboStac: yeah - and sizes of buckets etc depends on hash collision rate / calculation times / chance of repeated lookups
RoboStac: so it's all very dependant on the exact problem
MSmits: yeah
MSmits: I am using it for D&B where a loss of 10% is apparently unacceptable.
MSmits: switching to unordered set gave me 3x speedup
Marchete: make a big array
MSmits: thats what i had
MSmits: but without the search you mention
Marchete: and if and only if you really need to be lossçless
Marchete: then add some resizeable alternative storage
Marchete: for when that little search failed
Marchete: 99% of the lookup/set will be fast
MSmits: i wonder how this will compare with unordered set
Marchete: 1% will be slow
Marchete: internally will be similar
Marchete: I imagine
RoboStac: unordered_* is usually slightly slow because the std spec places quite large restrictions on the implementation
MSmits: well thanks, I will put this on my list. Seems like a usefull skill/standard piece of code i need to have
MSmits: good to know RoboStac
RoboStac: iirc it's something to do with not invalidating pointers/iterators on changes to other parts of the map
MSmits: in other words, it's proper safe coding. Who needs that :P
MSmits: brb
VinhDaDen: i use Pascal hehe
Marchete: I feel your pain
jacek: use delphi
martinpapa69: ye, thats a rly good extension to pascal
TheViralClovers: amogus
TabulaRasa: hey, where can I find python libs available for bot challenges?
TabulaRasa: is there a wiki somewhere with a list?
RoboStac: https://www.codingame.com/faq
TabulaRasa: nice, thanks!
codeing: holla
codeing: what does anyone thing about RNN for classification problems ?
codeing: forecast prediction
codeing: in deep learning
MSmits: weather forecast?
codeing: yeah
MSmits: go do it I'd say
codeing: hmm
codeing: cool
MSmits: could have used your NN last week when i was on vacation
MSmits: they got it wrong every day
codeing: NN mean neural network
codeing: right ?
MSmits: yes
codeing: kk
codeing: why do they get wrong ?
MSmits: because weather forecast models are inaccurate
codeing: hmm
codeing: less that 0.5 ?
codeing: right ?
codeing: than*
codeing: inaccurate like ?
MSmits: what is?
MSmits: no idea
MSmits: they say it rains and then it doesn't
MSmits: if you want to put a number to that i'd say 1/pi
codeing: cheap
codeing: 1/pi = 0.3
MSmits: kinda
codeing: what model NN did you used
MSmits: i didnt
codeing: k
codeing: deep learning pretty cool
codeing: tata, cya
dbdr: weather forecast: today will be exactly like yesterday
dbdr: it's correct at ~75%
dbdr: after years of work and multi-million $ machines, you can get to 85%
MSmits: nice
dbdr: it's more satisfying to watch a bot go to random play to expert in one hour of training :)
dbdr: *from
codeing: @dbdr, with what deep learning model you get your 85 % ?
codeing: RNN or NN ?
dbdr: not me, just what I heard about that field
codeing: k
codeing: thx
IcyStar: does anyone know if there's a way not to reload the page when an error occurs ? Because it makes me lose the current map..
AllYourTrees: for producing a hash value for C4, can you just add the two bitboards together?
MSmits: no
MSmits: I usually use:
MSmits: inline uint64_t xorshift(uint64_t x) { x ^= x >> 12; x ^= x << 25; x ^= x >> 27; return x * 0x2545F4914F6CDD1D; }
MSmits: with
MSmits: p1 ^ xorshift(p2)
MSmits: might not be the best way
AllYourTrees: :eyes:
MSmits: you'll get collisions for sure, the questionis how many
AllYourTrees: kk
Astrobytes: Why not Zobrist?
MSmits: zobrist might work I guess. Don't know how they compare
Astrobytes: Zobrist is pretty standard for a lot of board games
MSmits: I would be interested to know in what way it might be better
RoboStac: for simple gamestates like this it's probably not worth it
RoboStac: it's good when generating a hash from the full gamestate is slow
MSmits: I see
RoboStac: it's basically the same idea as nnue - do small updates every move instead of getting to the end and trying to calculate everything from scratch. Good if you need the hash every move or if it takes a long time
MSmits: yeah that makes sense, it also prevents you from taking into account things about your state that stay the same
MSmits: which makes it more efficient
MSmits: full state hash tends to take everything into account
nulte: hi
MSmits: hi
linjoehan: hi
linjoehan: how often fo you play clash of code?
nulte: never
Astrobytes: 0 clashes/year
nulte: astro I dont think you should have lost this game
nulte: https://www.codingame.com/replay/570771728
Astrobytes: :rofl:
Astrobytes: No shit
nulte: im still trying to find an eval, its not easy, I managed to get 70% locally but bot gets placed around same rank on leaderboard :/
Astrobytes: I'm tweaking mine, hence the daft blunders :D
nulte: my eval has range of 0.01 - -0.01, might be bugged
nulte: lol
nulte: should be 1 - -1
Astrobytes: :D
jacek: oh my
Astrobytes: lol, I have a lop-sided eval
Astrobytes: I clearly need another coffee
Astrobytes: ffs :/
Astrobytes: that is a tough top 20
nkc20: ....................
ericlovesmath: I wasn't sure, but is Google/StackOverflow during Clash of Code allowed?
jacek: :scream:
jacek: anything is allowed frankly
Alex000reid: imagine if you couldn't use stackoverflow
Shozy: don't need to imagine
Shozy: or do you mean in general couldn't use stackoverflow?
Alex000reid: lmao even for coc I need that
derjack: hmm top20 with just 1ply search (ok, with 3ply 'solver')
derjack: the policy could be something
dbdr: bt?
derjack: now resubmited to random bot
nulte: :(
derjack: :upside_down:
nulte: I read that 4 depth is optimal
nulte: for ept
dbdr: 3 depth is optimal for ept
nulte: on bt?
dbdr: now you read two contradictory statements
nulte: ...
jacek: then try 3.5 depth
dbdr: which one is true?
jacek: depends on game and your eval obviously
dbdr: right. probabilistic depth
nulte: Still need to figure eval I guess
nulte: I thought this would be a simple game to evaluate
nulte: also on ept im doing player0_score - player1_score
nulte: Is this ok?
nulte: I never did EPT before
jacek: do you propagate the eval as-is, or scale it to win/lose?
nulte: no
nulte: i propagate the eval
nulte: so if player0 had eval of 0.8 and player1 0.7 I would backpropagate 0.1
jacek: ok
nulte: Should I backpropagete 1 / -1 instead?
nulte: if score0 > score1
jacek: nah, its alright
jacek: but you may want to adjust the C exploration
Wontonimo: what game are you two working on ?
Wontonimo: breakthrough i'm guessing from the recent submit
nulte: yes bt
nulte: yeah i think the C is a bit of a problem
nulte: I run out of nodes, never happened before to me
jacek: your eval is faster than simulating the game eh
nulte: hmm I have 5M+ evals on first turn
Wontonimo: wow
nulte: maybe my eval is just bad
nulte: :D
Wontonimo: that's a lot of evals
Wontonimo: for 3x3 tictactoe with bitboard i was only getting 200k-500k evals in 100ms
Wontonimo: (mcts)
nulte: this is with ept
jacek: evals?
nulte: 8 plays
Wontonimo: in 3x3 TTT, there are only 9 plays at the start, so i think it is a pretty good apples-to-apples comparison to ept with 8 plays
nulte: wont i have problem if I change C
nulte: but i still backpropagate 1 sometimes?
Wontonimo: a low C means spending more time building depth, and high C means exploring more unvisited (possibly better) branches
Wontonimo: i don't think C changes anything other than that
nulte: I see
nulte: problem might still be on eval I guess
Wontonimo: C=0 is like greedy DFS, C=inf is like BFS, C~= (max(score)-min(score))*2 is close optimal tradeoff
Wontonimo: so if you change your scoring functions range then you will have to change C
nulte: my scoring range is [-1,1]
jacek: bad sign while backpropagating?
nulte: Dont think so
Astrobytes: Did you try scaling your eval?
nulte: scaling eval?
Astrobytes: between 0 and 1 or -1 and 1
MSmits: lol, just made my D&B bot another 10 times faster and still not enough :P
nulte: its always in -1 and 1 range
nulte: the problem is that is almost close to 0.0
MSmits: D&B is really unique in that the algorithm is so much more important than any performance consideration
MSmits: nr 1 could translate his bot to python and still wreck everyone
nulte: o.o
Marchete: maybe all games are like that...
nulte: not the game for me then
MSmits: nah, not to this extent i am sure
MSmits: D&B has a divide and conquer approach that noone else uses. You split the board into subproblems
MSmits: that's why the nr 1 is so much better and also why I am able to get such ridiculous speed increases
Marchete: chains?
MSmits: well that's part of it. But it's more about floodfilling the board. As soon as a part of the board splits off, you can solve it separately
MSmits: not the score mind you, just whomever ends up in control
Marchete: chains and chain count
Marchete: i.e. domain knowledge
MSmits: yes domain knowledge
jacek: :unamused:
Marchete: so I repeat, maybe all games are like that... just we don't know how to get the domain knowledge
MSmits: then that's the difference
MSmits: the fact that we don't
AllYourTrees: what's D&B?
Astrobytes: dots and boxes
BlaiseEbuth: Dungeons and bacon
Astrobytes: :D
Wontonimo: or you could just train some kind of artificial intelligence to learn the domain knowledge :P
MSmits: it's the only game on CG my wife knows how to play
Marchete: :point_up_2:
MSmits: Wontonimo there's a very key difference though
MSmits: a NN will never be an exact solver in this sense
Wontonimo: yeah, i'm just joking
MSmits: it will only approximate
MSmits: it's a good point though
MSmits: even if it's a joke
MSmits: this is precisely why NN's are used
Wontonimo: just making a reference to the NN crazy that's sweeping CG (that I'm really loving btw)
MSmits: because the domain knowledge is too hard to incorporate otherwise
Wontonimo: and this is why git-copilot will not take our jobs (yet)
MSmits: what is git copilot?
Wontonimo: !?!?!
MSmits: I don't fly
Astrobytes: Smits lives under a rock Wontonimo
MSmits: that too
Wontonimo: google it, watch some yt videos about it. it does autocomplete for coding
MSmits: ah VS too
Astrobytes: :grin:
Wontonimo: it is really quite futuristic
nulte: # eval breakthrough
nulte: nothing :(
Wontonimo: and can code whole functions for you just using the description and name of the function
MSmits: nice
nulte: Should I take into account pieces row positions on eval?
Astrobytes: I would advise it
nulte: im kinda lost
Astrobytes: What happened to brute-force and ignorance? :D
MSmits: a while ago VS asked me whether i wanted it to use AI to make coding suggestions (beyond intellisense). Is this like copilot?
nulte: it only gets you so far
MSmits: I said no btw... so i dont know how that works
nulte: the brute force got top 20 which is not completely bad :p
Astrobytes: This is true
Wontonimo: copilot uses openAIs GPT-3 network but instead of being trained on language, it is trained on github public repos. It is scifi, truly
MSmits: cool
MSmits: GPT-3 is language processing?
jacek: nulte hmm, the home row seems important eh
Wontonimo: it is not autocomplete or suggestion, it is auto-coding of complete functions from just a description. it can write unit tests for the function also
jacek: "ai, make me the top1 d&b bot" and itll write it?
Wontonimo: haha
Wontonimo: no
reCurse: I'll be surprised if anyone remembers it as anything but a gimmick one year from now
jacek: oO
Astrobytes: Yeah, pretty much just poc currently I think
Wontonimo: https://www.youtube.com/watch?v=FHwnrYm0mNc "GitHub Copilot CRUSHES Leetcode Interview Questions!"
Astrobytes: also hi :)
Wontonimo: to your point reCurse, it does require API calls to do, and so I'm guessing the cost of using it will be staggering.
reCurse: That's the least of my concerns
Wontonimo: what other concersn?
reCurse: It's kind of hard coming up with a short version but there's plenty of criticisms that I align with
AllYourTrees: aren't there licensing concerns?
AllYourTrees: like it puts code that has a license from github into your code and the original authors dont get credit
reCurse: Namely it doesn't save you any time because you either trust the code blindly, which you will pay later by having to understand and fix subtle bugs, or end up having to read it all again, which again is slower than writing it
reCurse: Writing code is the least concern while coding
reCurse: It's just a gimmick
reCurse: A very nice technical achievement but with questionable practical use
BlaiseEbuth: +100
MSmits: this is the first thing i thought when watching the video
MSmits: wait... he's checking all the code
MSmits: so...
reCurse: Those who were fearing for their jobs are either joking or ignorant
MSmits: i am also not sure what it does. These code snippets are so small that it might be like the CG clash bots
jacek: reCurse afraid of losing game developer job
Wontonimo: i can see great value of having this for junior devs who are having a mental block, which happens all too often
reCurse: No I think it's just a crutch that won't help them either
MSmits: there might be some unforeseen benefits
MSmits: when people cant find a solution they often look on stack overflow
reCurse: It's like saying there's a benefit by having those automated proofs
MSmits: the AI does that for you now
reCurse: Not really if you don't end up applying it yourself
reCurse: You don't learn anything
Wontonimo: i'd like it, just to see a different way of coding than i would. I'd certainly use it to improve my skills, just like I use pair programming to do that
Wontonimo: and i learn stuff even when pair programming with someone much more junior than i am
reCurse: The stackoverflow answer often comes with very valuable context
reCurse: I'll still take that over gpt-3
nulte: I just hope no one has to use the code I wrote
jacek: you dont blindly copy paste code from stackoverflow? :o
reCurse: I'd probably ban its usage in a workplace if up to me
Wontonimo: indeed, if it came with the context and discussion/alternatives that are in SO, that would add huge value.
MSmits: say I am trying to code something and trying to come up with a description to help copilot solve it for me
Wontonimo: i don't think it will be a silver bullet, and unless the cost to use it is near zero I think it won't get adoption at-this-time
MSmits: the effort itself is a form of rubber ducking
MSmits: once you have the description right, you might no longer need the code it provides for you
MSmits: which is useful, you can use the decription you came up with, in your code base as comments
jacek: sometimes it could give you very bad code, but fixing or even rewriting bad code seems easier than making one from scratch
jacek: like with that godwin's law
reCurse: Imagine having to do something like that with copilot https://aiweirdness.com/post/655607559221379072/the-art-of-asking-nicely
jacek: noice. its like asking your sunconciousness to create something in lucid dream
Wontonimo: it's not going to write a whole system for you. I wouldn't use it on the NN work I do, but at where I work there is a lot of dumb repetitive angular code where i see copilot would crush it
reCurse: If I have to review what's written to make sure it's actually doing what's intended I didn't save anything
reCurse: Anyway'
reCurse: !remindme 1 year
jacek: Automaton2000 are you behind the copilot?
**Wontonimo sends calendar reminder
Automaton2000: or is it because i am not good at programming
jacek: hm
Wontonimo: HAHA
Wontonimo: my last €0.02, i don't think copilot is going to change much, and i also think it is going to have a crisis of marketability/profit. It would be fun to play with and I think useful as a teaching tool for super junior coders.
Wontonimo: https://www.reddit.com/r/ProgrammerHumor/comments/hx7xfy/were_safe/
Marchete: from my work: "A project is always ####, except when it doesn't"
Marchete: and I replied, then it isn't a ####
Marchete: "no no no, it is, except in some cases"
KiwiTae: :joy: Marchete makes you feel good about your motivation ><
Marchete: copilot would explode with user requeriments
Marchete: until that they they keep thinking the same
Marchete: even with counter examples of why that's a bad idea
jacek: then make ai that would know what they want
KiwiTae: its like ok google for programming lol
reCurse: True, one of the first things I turn off
KiwiTae: its gonna be handy for next cg contest, shortcutter: // i want my bot to win this game
reCurse: Reminder: First contest not to mention multiplayer or bot in advance :P
MSmits: we did have detective pikaptcha
jacek: you think its gonna be one long clash of code?
reCurse: Maybe some escape room contest shrug
reCurse: Who knows
BlaiseEbuth: :nauseated_face:
struct: another one?
reCurse: The fact they didn't copy the multiplayer contest template directly like so many others before says a lot imo
reCurse: Removing type, duration, faq, etc
struct: They did say in discord that they do not know what the next contest will be
reCurse: I'm fine with it being over actually
BlaiseEbuth: :(
jacek: youre retiring?
reCurse: Would be the smart thing to do
BlaiseEbuth: :cry:
jacek: :no_mouth:
Westicles: 500 tied winners with raffled prizes is a better way to push traffic than same old guys winning over and over
reCurse: And chess will keep that itch scratched for a while
jacek: huh
MSmits: there have been plenty of different winners over time though
MSmits: many that won only 1 time
MSmits: like closetAI, I think Robo (not sure if he won another), jolindien
reCurse: Heh used to have that contest leaderboard thing
reCurse: Most winners only won once
MSmits: yeah
reCurse: Only 7 did more than once
MSmits: there are a few guys that, when they participate have a high likelyhood of winning
MSmits: but they dont always participate and sometimes there's more than 1 of them
MSmits: like when you and pb 4 are both in, I would not predict
reCurse: Put your money on pb4, easy
MSmits: i would not put any money in
jacek: :money_with_wings:
Wontonimo: how's your newest NN doing reCurse?
Wontonimo: the one in diapers
reCurse: Trying to get him to sleep
Wontonimo: https://www.youtube.com/watch?v=AF_nfazQaek
Wontonimo: "Naptime"
Wontonimo: product innovation
jacek: any cheesy NN lately?
reCurse: Think I almost worked my magic but it's still buggy sometimes
reCurse: Crossing fingers now
jacek: kindergarten magic?
reCurse: Sleep spell
Wontonimo: aka rocking chair ?
Plantchant: tmw u get #2 in the league so you cant advance D:
Wontonimo: which league ?
Plantchant: only bronze
reCurse: Before I went MIA for 3 weeks I had a SL NN kick my ass at chess with 1k nodes, which might only indicate how terrible I am
struct: Whats SL NN?
reCurse: supervised learning
reCurse: Just took a bunch of engine games
struct: wasnt your ranking above 1.6k?
struct: elo*
jacek: and MIA?
struct: missing in action
jacek: oh
reCurse: I was still climbing on lichess when I was playing
reCurse: Almost 1.9k
jacek: SL, just like nnue guys train
reCurse: Though I'm pretty sure it was just a lucky streak
linjoehan: I'm 1.3k on chess.com and 1.5 on lichess, but thats for blitz I think I'm better at standard but I don't thave the time to test that
reCurse: That's weird, your ratings should have a bigger gap
linjoehan: 1.9 is massive man
reCurse: Not really
reCurse: 1.9 on lichess is like 1.2 on chesscom
reCurse: Or was it 1.3
struct: i think 1.3k
reCurse: Percentile wise anyway
Wontonimo: Plantchant, which multi ?
linjoehan: is that just because all the top dudes play at chess over lichess?
reCurse: Hard to do it accurately because lichess only shows distribution for last week and chesscom does alltime
reCurse: I'd tend to think lichess favors player with more skill under titled
struct: I think they use diferent rating system
reCurse: Glicko is still calibrated to have similar rating gap vs winrate if I'm not mistaken
reCurse: chesscom is very mainstream and the bigger numbers are usually on the lower ends
linjoehan: ah ok which one is closer to the one fide uses?
reCurse: Neither because it's more about the player pool than the rating system
reCurse: Your best bet is to use percentile until the top 1-2% then you're screwed
reCurse: IMHO
dbdr: what's a node in 1k nodes, reCurse?
reCurse: mcts node
reCurse: So a game state
jacek: using policy?
dbdr: aha, that's tiny then. limiting to make deterministic?
reCurse: Limiting to give me a fighting chance
reCurse: It's ruthless
dbdr: :)
jacek: youre playing chess960?
reCurse: No standard chess, that's what I have the data for anyway
jacek: oh
dbdr: do you beat the NN alone without search?
reCurse: Same framework as usual except without the RL part
reCurse: It's probably very easy at 2 nodes
reCurse: Let me try
dbdr: famous last words ;)
dbdr: I think alphazero chess NN alone was at 3000 elo. of course they have a huge net
reCurse: Yeah mine is the usual minimalist
reCurse: That's the angle I want to dig anyway
reCurse: CG-style constraints
reCurse: Not blundering so far...
reCurse: I'm surprised
jacek: you?
reCurse: lol
dbdr: I guess even inside the constraints, there must be a NN size / search speed tradeoff
reCurse: touché
reCurse: Yeah of course
reCurse: Something that doesn't seem too looked at as well which I like
jacek: usual CNN?
reCurse: Yeah conv is life
jacek: one hots are life
jacek: did you miss the cgzero craze
reCurse: ?
jacek: now 10+ oware bots are NN
reCurse: Eh...
reCurse: I don't mean to be disrespectful but I'm a bit... disappointed? Not sure.
jacek: oO
MSmits: marchete lowered the bar of entry I suppose
Wontonimo: oO also
Wontonimo: i think it's fab that marchete shared and so many people tried. it's a huge cost of entry, and this made it a lot more accessible to many
reCurse: I don't mean to diss the effort or say it's not great
reCurse: Just a very personal feeling
MSmits: I know why
MSmits: it took you a lot of effort to make everything work
MSmits: and now other people can get a jumpstart you did not get
MSmits: it's a very human response imho
reCurse: No it's not even really that
MSmits: hmm ok
reCurse: It's kind of robbing you of the reward for the effort you put?
MSmits: yours or the ones using it?
reCurse: You can't have as much motivation to get something to work if you can already see the end result
reCurse: Speaking for myself anyway
Astrobytes: Valid point
MSmits: sure, but something can be so hard to put off almost everyone
reCurse: That's why I speak for myself
reCurse: I'm sure for most it's great
MSmits: I will probably use parts of it sometime in the next few weeks
reCurse: But the presence of a solution would probably have killed my motivation if I hadn't started
Astrobytes: You'd already started though right MSmits? Prior to this
MSmits: well just getting the endgame book
MSmits: 36 seed book is on my drive
MSmits: finished
MSmits: uses like 40 GB total :P
Astrobytes: Dearie me
MSmits: still havent started on the meta mcts for 37-48, got sidetracked by D&B
MSmits: it's such a cool game :)
reCurse: Marchete if you read this don't take it the wrong way
Marchete: I don't, and I knew you thought that way
Marchete: I've heard having this conversation like 1 year ago
reCurse: Ok just making sure no hard feelings
reCurse: It's great work really
reCurse: Just makes me sad for some stupid reason :)
Marchete: don't worry
Marchete: It's OK, you are more competitive than me
reCurse: Why is 2 nodes still winning
reCurse: I'm sad now
reCurse: I'll blame lack of sleep or something
Marchete: enjoy parenthood
reCurse: Thanks
Marchete: and I mean it, even with sleep deprivation
reCurse: Oh it's 3 nodes (<=) that's why
Marchete: you'll miss those moments, they grow up FAST
jacek: 3 nodes vs 2 nodes?
reCurse: No 3 nodes is still bullying me
reCurse: Yeah that's what everyone keeps saying hehe
reCurse: Took 3 months off for that reason among others
BlaiseEbuth: Oh. There's babyCurse ! :o
Astrobytes: ah yeah, congrats man! Enjoy every moment :)
BlaiseEbuth: gg
reCurse: Thanks
Manchi_o6o7: How can I check integer overflow in C
martinpapa69: what is the operation you want to check ?
reCurse: 1 coffee > 3 nodes
Astrobytes: hehehe :)
reCurse: This is fun
reCurse: It baffles me how a small net with no search holds its own
jacek: how small though
reCurse: :zipper_mouth:
reCurse: It should fit on CG but barely
jacek: and what was the data, stockfish trainer?
reCurse: No I used CCRL
reCurse: So a few millions of engine games
reCurse: No filter
reCurse: I didn't think SL would work that well and yet
reCurse: So much stuff to try now
jacek: hmph
reCurse: ?
jacek: nothing~
reCurse: http://chat.codingame.com/pastebin/60c100f6-613c-4a83-93bc-2c8dc9ce46ed
reCurse: :)
Xezs2774: where can i report a bug on here?
reCurse: Forum or #bug-report on discord
Astrobytes: Or triage it here beforehand
BlaiseEbuth: Yet another bug in temperature, I guess... :(
FalINTOblivion0112: hey blaiseeburth
FalINTOblivion0112: how do you optimize mean max
FalINTOblivion0112: the contest
Astrobytes: Just use True AI and make it go brrrr
nulte: AVX
BlaiseEbuth: I don't
FalINTOblivion0112: i make init
FalINTOblivion0112: and create random crap
nulte: init?
FalINTOblivion0112: i initiate classes of cars
nulte: meanmax might be one of the harder games to make a decent AI
nulte: I never tried it though
FalINTOblivion0112: yeah
FalINTOblivion0112: it is very hard actually
FalINTOblivion0112: but im doing well
Wontonimo: have you tried GA for meanmax?
FalINTOblivion0112: what is GA
reCurse: garbage algorithm
FalINTOblivion0112: yes i have
FalINTOblivion0112: that is the algorithm im using right now
FalINTOblivion0112: reapers desecrate
Wontonimo: Genetic Algorithm
Wontonimo: Genetic Algos are pretty good at many things. If you'd like some tips, let me know
Wontonimo: PM if you'd like FalINTOblivion0112
FalINTOblivion0112: thank you man
FalINTOblivion0112: but generic algorithms are decent
Wontonimo: what algo are you currently using in meanmax ?
FalINTOblivion0112: distance thing
FalINTOblivion0112: am i even using an algorithm
nulte: are you doing any multi Wontonimo?
FalINTOblivion0112: dunno man
Wontonimo: i've been lazy lately nulte. Tron and C4 are probably next and shouldn't be much work at all porting what i have in other multis
Wontonimo: i really do like what Marchete did with NNs, and it so that is also high on my list to replicate
Wontonimo: i'm curious how i'd translate that into convolution for square/hex board games
Wontonimo: within the constraints of CG
martinpapa69: you worry about the codesize constraints ?
reCurse: This meme needs to die :)
jacek: what meme
Astrobytes: lol
Astrobytes: The codesize
jacek: it will die if they get rid of codesize limit
reCurse: It seems everyone's first thought of NNs on CG is worrying about size when it's the easiest obstacle
reCurse: A bit like worrying about O3 when pragmas are available
jacek: it is a problem with one-hots. the peasant convs guys won't get it
AllYourTrees: lol
reCurse: You're just not trying enough :)
reCurse: Besides I did NNs on CG for over a year without convs
martinpapa69: I'm pretty sure tho, that there must be a better way to encode, and input your data, than one-hot encoding, in a game like oware.
reCurse: Most likely
Westicles: Is it possible to make a contribution where you penalize based on codesize?
reCurse: Yes, it's called code golf
Westicles: I don't mean clashes...
reCurse: Me neither
Westicles: Then I don't get it
reCurse: Oh my bad for some reason I thought the SDK allowed it
reCurse: Guess not
Astrobytes: 'platform limitation' I guess
Westicles: Hmm, seems like it should be possible. Something along the lines of CGFunge Prime
reCurse: Well I guess you could print the source code on first turn and have the referee somehow compile it and... :P
Astrobytes: Definitely your territory Westicles :D
Westicles: Well, it is very possible I am too dumb to figure out the SDK
MSmits: yeah it works for CGFunge, so it's possible
MSmits: look at eulers code i guess
Astrobytes: If any past experience is to be taken at value I do believe you have this down Westicles :D
Westicles: Ha, well thanks Astrobytes for the vote of confidence :P
MSmits: +1
Astrobytes: ;)
MSmits: I think I almost cracked the D&B secret
MSmits: I feel it
reCurse: You didn't use enough bass?
Astrobytes: :rofl:
Astrobytes: well played reCurse
MSmits: that went woosh :(
Astrobytes: You forgot to make a cut around 100hz for the kick to get through?
MSmits: still woosh
MSmits: does this have something to do with me living under a rock?
MSmits: it's not that kind of rock though
reCurse: https://en.wikipedia.org/wiki/Drum_and_bass
Astrobytes: MSmits: https://youtu.be/Mg9YWdSkEXs?t=87
MSmits: oo
MSmits: ack, please go back to rickrolling me instead
Astrobytes: Dude please. That is A Tune.
MSmits: giving me A headache
reCurse: ngl it's kinda meh :p
Astrobytes: I picked it as a mid-point between current DnB and emergence of DnB from jungle tbh
Astrobytes: It kicks at a rave though, trust me
reCurse: Prefer when there's more melody shrug
Astrobytes: Ah see, this is neuro stuff, you want the liquid
reCurse: ...sure
Astrobytes: No really, liquid dnb is more melodic
reCurse: If there's something giving me a headache it's music categorization
Astrobytes: There's nothing worse, I agree. Especially when it's sub-genres of genres
Astrobytes: and sometimes sub-genres of sub-genres
Astrobytes: But hey, neither you nor me made those categories
reCurse: I'll just leave that to spotify to figure out what I want to hear
Astrobytes: Check stuff on Hospital/Hospitality label, should be decent
Astrobytes: Good Looking Records, Soul:R etc
nulte: spotify sometimes finds good musics
Astrobytes: Doesn't for me. I'm a fussy f***er
reCurse: Sure thanks, just gonna say d&b not that high on my favorite genres though
nulte: not even if you pick a song and choose play from this song?
nulte: play radio*
Astrobytes: Nor mine these days, but I have a rich past history with it ;)
MSmits: I like celtic music
reCurse: Play radio kinda sucks, but when you start building a playlist with a few songs not too far from each other you get pretty good suggestions in my experience
Astrobytes: I like digging for music myself (when I have time)
Astrobytes: MSmits: which kind? Quite a few Celtic nations
MSmits: https://www.youtube.com/watch?v=jiwuQ6UHMQg&t=864s
MSmits: i like many of those
MSmits: they use a lot of music like that in games as well. There's a famous skyrim mod that just uses music from this composer I believe
Astrobytes: I prefer my Celtic music along the lines of (it won't rip your ears off btw): https://www.youtube.com/watch?v=HlmOliCPMZ8
MSmits: the music is fine. I don't need the singing though
Astrobytes: You like that Disney woman
MSmits: yeah that's one of the few where I like the singing
nulte: is the bot finally doing something
nulte: or just luck
MSmits: which bot?
nulte: mine, breakthrough
Astrobytes: I'm not sure what I did to mine tbh
MSmits: oh ok
Astrobytes: Looks good man!
nulte: thanks
nulte: I made it solve sooner
nulte: I fee like my eval still has a long way to go though
Astrobytes: That worked well either way
nulte: yeah
nulte: top 10 is close now
Astrobytes: yeah, good work :)
nulte: my goal is to beat robo bot 1 match
Astrobytes: hehehe
Astrobytes: C4 vengeance
MSmits: code a meta mcts, put in his moves, let it run for a week :P
Astrobytes: lol the SmitsiHax
MSmits: yeah
MSmits: but really, don't do that :P robo doesn't deserve it
Astrobytes: oard
Astrobytes: woops
Astrobytes: lol
Astrobytes: wrong text area
MSmits: dont paste your bot here :P
nulte: I think i might have better chances if I improve the eval
Astrobytes: no pasting lol
nulte: i only want to beat him 1 time
nulte: i dont want to take his rank
Astrobytes: Yeah yeah
Astrobytes: :P
MSmits: well considering how deterministic his bots are, beating him once, may mean beating him many times
MSmits: but beating him once is the hard part :P
Astrobytes: And the awful thing is that they'll just retrain on you and you're screwed. But this is where MSmits comes in with his Grimoires
MSmits: yeah, well that works up to a point and only in some games
Astrobytes: True
MSmits: would be really easy to do in C4, harder in BT
MSmits: I mean in C4 it's even strong, nontargeted. Just letting the algo figure it out for itself. The statespace is that small
Astrobytes: I didn't realise BT was so deep tbh
MSmits: combined with mcts being that good
MSmits: BT has way more branching than C4
Astrobytes: Yeah ofc, but strategy-wise I mean
MSmits: BT is a very pretty game imho. It makes me sad that I can't write a better bot fo rit
nulte: I hate writing eval
Astrobytes: it's a great game, I totally love and hate it
MSmits: well I like experimenting with eval features, but i hate fitting the numbers
Astrobytes: I like seeing how it changes the behaviour, you gotta pick the right features first though
MSmits: yeah and I never really succeeded at that with BT
MSmits: it seems messy because of complex interaction between pieces
MSmits: it's what I ran into when trying to eval br2k compared to eval of csb
MSmits: at least csb has some low hanging fruit when it comes to eval
Astrobytes: Yeah, br2k had me at a wall. Must get back to that at some point, was a cool game
MSmits: yeah thats why i mentioned it. It also felt like a pretty game, but I also failed at that, relatively speaking
MSmits: I got stuck right before last boss
Astrobytes: Did better than me D:
Astrobytes: * :D
nulte: im done
nulte: https://www.codingame.com/replay/570865902
nulte: cya next multi
MSmits: gj!
MSmits: you beat the boss
Astrobytes: Nice sneaky win there :)
nulte: oh he didnt update his bt bot yet
nulte: he is gonna crush my dreams
MSmits: but he'll be polite and nice about it
Astrobytes: Alright I'm out fortoday, still logged in but don't expect a reply :P
Astrobytes: Goodnight/afternoon/evening everyone
Astrobytes: reCurse: Nice to see you back dude :)
MSmits: gn
nulte: gn
KiwiTae: https://imgur.com/a/TLaRCVC :joy:
KiwiTae: gotta make it fancy :grimacing:
nulte: wow
nulte: very nice
nulte: Will you make it frame by frame KiwiTae?
GrantSan: hold up how do you know the position of the checkpoints in coders strike back
nulte: you need to store them :/
nulte: and keep track of it I guess
nulte: Im not sure if checkpoint id is given on lower leageus
nulte: leagues*
FriendlyKh: in lower league
FriendlyKh: it automaticly change the checkpoint if the pod touch the checkpoint
FriendlyKh: but from the gold league
FriendlyKh: it gives you id of the checkpoint
FriendlyKh: so you have to change it by yourself
prINTint: can someone help me with my school project
prINTint: :confounded: plese
Wontonimo: nope, but i can help you with something on this site
prINTint: @Wontonmino no issues
prINTint: can someone help me with my school project
- confounded: please
prINTint: it is simply to write source code for shopping software
nulte: im sure you can do it
Wontonimo: or if you can't, your teacher will show you afterwards