Carl [he/him]

  • 26 Posts
  • 2.2K Comments
Joined 1 year ago
cake
Cake day: January 29th, 2025

help-circle


  • Back to working on Pykrieg today, big update coming up as I’m working on the first computer opponent! Right now my only goal is to have something that a) advances towards the opponent arsenal and b) maintains its lines of communication at least semi effectively, but this has proven a much more difficult task than I thought it would be.

    Right now the way it works is I get a list of all legal moves from the engine and evaluate them based on predefined criteria, give scores to each move based on how well or poorly it is evaluated, and then choose randomly from the top moves according to the scoring system. The result so far is pretty bad, but I’m not worried about the computer’s strength yet, just making something that works. The current canonical computer implementation of this game also has really bad AI, so I remain optimistic that I can make something better given time.

    It is very interesting watching the behavior change wildly as I make small adjustments to the move scoring parameters, +50 “maintain adjacency” causes all of the movement to become uselessly conservative as the AI refuses to march across the map, +25 “advance towards enemy arsenal” causes the AI to throw all caution to the wind in a mad dash towards the opponent’s command structure, outrunning its lines of communication in the process. A common failure mode I keep running into is that the AI loses contact with its combat units and then charges in with its relays instead of reestablishing communication.

    I’ve even seen some cool emergent behaviors! There’s an “interpose defensively” modifier that spots when an arsenal is threatened and tries to move a unit to protect it, and I’ve seen the North player preposition infantry in a mountain pass defending their arsenal and keep them there all game, effectively reacting to the South player threatening to attack through it and blocking off the possibility. But most games between two AI opponents currently end in either a stalemate or with one of the AIs accidentally checkmating itself.

    In general my AI seems to handle the “South” player much better than it does the “North” player, primarily because the North player can’t figure out how to get its units around the South player’s mountains, while the South player has a straight shot through the North player’s mountain pass… eventually. Every game that ends takes 200 moves or more, which is not at all how long this game takes with human players.

    I’ve been thinking I might learn how to do a machine learning thing to optimize the values, but I have no idea where to start with that. I wrote a pytest that has two AI opponents play a headless game against each other at processor speed, which is probably step one, and I guess I should make a list of values to test and have them play against each other hundreds of times while recording the results to see which values make for the strongest opponent. So I guess I do know where to start after all.


  • With Trayvon it was a random crank who got explicitly told by the 911 operator to stop following him who then went on to change his story about what happened multiple times. Now it’s just standard procedure.

    I worry about this shit because my younger siblings are mixed race and about this age. If ICE targeted my city like they’re doing Minneapolis I would tell our parents not to let them go anywhere alone because this could 100% happen to them even though they’re all citizens.



  • I mean in terms of general usability. I switched to Linux like two years ago, at that time I had a mid-tier AMD machine with no brand new parts, and I still had to spend many, many hours troubleshooting issues that I simply wouldn’t have had if I was on Windows. Even now I’ll unexpectedly hit things that I expect to Just Work and end up spending all day figuring out why they don’t.



  • I mean they do both suck in their own special ways, but as a Linux user myself it’s still a night and day difference between the level they’re at and the level any given Linux distro is at. The only Linux devices that approach the level of “it just works” that MS and Apple devices do are locked down ones like phones, Chromebooks, and the Steam handheld.




  • Every Linux distro basically runs into the wall that is “all of these little problems require large institutional money to solve” which means that hobbyists and even the professional Linux distro teams like Red Hat stand no chance because they’re being compared to Microsoft and Apple. They can get a product that works really well don’t get me wrong, but the amount of time and effort to QA at the scale the major companies do for their OSes is on another level.