Ten minute game jam!

Cool, thanks for the link!

I say this…pretty much every year, but I’m thinking of doing a bit of a Christmas break code project. I usually do Advent of Code, but a) I missed the start this year, and b) last year some of the challenges were basically implementing rudimentary ascii game engines, and if I’m going to do that, I might as well do it for real.

I was thinking of either playing with Godot a bit (probably in 2d), or trying to hack at a roguelike idea I’ve had. Maybe both? Any recommendations for either a Godot getting started tutorial or a simple engine appropriate for roguelikes?

Godot is awesome! I did the Ben Tristem Udemy course about it and it was excellent. If you want to do a rogue like, check out libtcod or rot.js.

Looks like that course is on sale right now! I’ll check it out, thanks!

FWIW, this is the one I was talking about:

I worked through all of the projects/lectures and then had a great understanding of where to go. You probably could stop after the first projects if you feel like you have enough of a base to get started on your own project. I really like Godot a lot. It’s far easier to work with, in my opinion, than Unity.

Python like? Color me intrigued.

Advent of Code this year has most of the challenges around a “IntCode Computer”. Though it got to the point where it has ASCII input and output and Arkanoid-like games, so yeah. ;)

Anyway, Godot is great. Perhaps not the best choice if you’re going for a standard roguelike, but it’s certainly doable there if you want.

My little Gamemaker RPG project has come to seem like the great unattainable project in my life. I think about it all the time but have very little time to work on it, because at home with a little kid around I just can’t get the solitude and concentration it requires.

Every tiny step forward feels like a major victory. Today on my lunch break I solved a bug that had been eating at me for weeks, a mysterious failure of my scheduled NPCs to go to sleep at the appropriate time. They were failing a key if/then check because I had accidentally put a variable name in quotes. Fixing the bug created another one, but that one was easily squashed.

NPC scheduling and pathing is literally all I have worked on in this game for at least a year. It’s a thorny problem and one I am probably not a good enough coder to tackle, but I just have no interest in making a game where the NPCs are mostly-stationary merchants and quest dispensers. Lots of great games do that, from Divinity Original Sin to Grim Dawn. But it’s not for me.

These are great for small projects and prototyping and are free for 24 hours:

Wow yeah those look fantastic! Thanks for the plug!

Also

Nifty! Tiny RPG tile graphics make me happy

I made a Tetris clone game called Falling Crates, just to learn how Game Maker Studio 2 works. Given my level of incompetence, my game qualifies as a 10 minute game, but for good players it can go on for half an hour. :) I haven’t packaged it into an .exe yet, but maybe I’ll post it once I’ve done so. I’m not quite sure where to host a thing like this; I’m a little reluctant to place an unoriginal game on itch.io, for example.

Now I’m working on a chess game. I do have ideas for my own original games. I’m just enjoying learning how to code again – something I haven’t done since college many moons ago. Plus I’d like to learn something about how to make a chess AI. For now, my immediate challenge with chess is how to handle game state, team selection, and turn order. I’d like my game to allow human vs AI, human vs human, or AI vs AI play. And I’d like the user to be able to pick black or white. I suppose that’s several possible game states?

Incidentally, I really love Game Maker Studio 2 so far. The IDE is really pleasant to work with. I peeked at Godot but found it drab by comparison – sort of like Blender. For now I’m interested in making only 2D games, and GMS2 excels at that. If I get interested in 3D, I might try Unity.

Edit: here’s a screenshot from Falling Crates.

That looks great!

Thanks! It was an absolute blast to make. Took me about a week.

Congrats! It’s very cool to see a project through to completion… Regardless as to the originality. That’s a whole other issue!

I am not going to tell you what to do but If you wanted to break down your thoughts about the chess game into smaller pieces you could always try implementing a very simple game like tic-tac-toe. It has the same kind of game state as chess (in that there are two players that can be human or AI, and they alternate turns). However, the game itself is much simpler. So you could use that as a project to work out all those concepts and then take that framework and use it on a more complex game like chess. Just a thought!

Thanks for the advice on chess. I probably should have followed your advice on tic-tac-toe, lol, but I didn’t see it before I went ahead and plunged into chess. It’s actually going well. I didn’t have any trouble implementing turn-taking, but I’m ignoring the team-picking problem for now, so the player is always white. That problem is more acute in chess than tic-tac-toe, because the black king and queen are reversed. Maybe checkers presents the same issue? Maybe once I get the player’s side choice, I choose which of two board states to initialize?

Apart from that, I’ve made a surprising amount of progress: I have coded most of the movement rules (except castling and en passant), I can move and capture pieces, and I now have an AI that plays random moves. All that took me about a day. Today I’m going to start evaluating moves to make the AI a tad smarter. And I might try to implement side-picking.

I can see that memory management could be a huge issue here. That simple list of 20-odd possible moves (a ds_list in GMS parlance) will be replicated a thousand times over as the AI has to consider the dozens of responses to each possible move, and responses to those responses.

Hey, you got to live your dream… Keep going!

My limited understanding with chess programs is that since the opening moves are very well understood, most programs use a fixed series of moves for the opening and After those moves are all played out they then use AI later (maybe exhaustive search of some sort?) to determine move into the mid and end game.

I just googled it and I believe they’re called gambits. And I’m sure there are aggressive, moderate, and conservative ones. And of course different ones for each color!

So I believe the standard approach is to have the AI choose a gambit… Depending on lots of parameters like how advanced your opponent is and whether they’re playing white or black or whatever. Then the computer player would simply move down the gambit and make each move on his turn until all the moves have been made (or I guess until the board state gets too weird to keep pursuing the gambit). And then it would switch to a more generalized AI that would use… I don’t know maybe some sort of depth first move analysis tree? And that would be used from the mid game through the end. Or maybe near endgame there are standard moves… not sure.

Anyway, that technique would give you a leg up on How the AI would play though it’s still going to be a very complex undertaking.

You usually want to use some sort of minimax tree traversal with pruning. You’ll have to decide the depth of the search. That’s where the exponential complexity arises.

https://www.chessprogramming.org/Minimax

Are there good and open evaluation functions for a chess board? I think that would be key for something slightly competent.

I would think of it this way: the minimax tree traversal takes care of short term tactics (finding movement when you take a piece or the opponent does) but the evaluation function (how good a board state is) is actually what will drive the longer term strategy.

Like Charlatan says a table of patterns (board state and follow up move) for openings is probably standard practice and expected by good chess players who will likely be doing the same.