Most aggressive AoE II AI

Age of Empires is a challenging game with a steep learning curve and a community of experienced players. I was never able to climb back to the 1000 ELO I was given when I first started playing multiplayer. Naturally, this makes me lean towards custom lobby games with friends or single-player scenarios where I can dominate the AI—no matter how "expert" it claims to be. One of my favorite scenarios is starting a game in the Post-Imperial Age with infinite resources against a single expert AI, outproducing its army until it submits—almost like a deathmatch but more open-ended. The setup works well, but on some maps, the AI doesn’t behave the way I want it to, likely because it was designed for standard game settings. That makes it less challenging and a lot less fun, but I would still want to keep playing this scenario, because how fast paced and satisfying it is. The only logical conclusion? I need to write my own expert AI system for AoE—one that plays exactly the way I want it to.

Continue Reading →

Cracking a binary

Piracy is bad, but when you're a broke student and you find a cracked launcher for a game you want to play, you don’t ask questions. You simply replace the launcher with the "cracked" copy and start playing. Not me—I would never do it—but I know people who have. It’s wrong, very wrong, but at the same time, it’s fascinating how a single file you can't even read can bypass the security put in place by a multi-million-dollar game project. There have been several methods used to lock games down—and just as many tricks to break them open. I'll dive into some of the techniques used in the early 2000s to crack PC games, online Flash games, and mock license servers.

Continue Reading →

Multiplayer game server

Multiplayer games are always fun. Even if you're not a gamer, joining a lobby and playing with your friends is never boring. But making a multiplayer game? Not so much. As easy as it is to pick up a game engine and code a single-player action-adventure, adding multiplayer into the mix is not straightforward at all. There are game engines with built-in multiplayer networking support, as well as services and SaaS tools to manage game servers, but they all seem either too restrictive or a hassle to set up. At least, that's what I told myself to justify building my own multiplayer game server. So here I am, exploring how to make one. In terms of basic requirements, all I need is a remote server that can exchange game state data across users in a shared game session. Latency will definitely play a huge role, but I think I can work around it if I focus only on round-based or turn-based games. I'm choosing Elixir for this project—partly because I need an excuse to work with it.

Continue Reading →

Signing my name with shaders

Shaders are a magical piece of code that can turn a boring image into a trippy visualization. They include shapes, colors, patterns, animations, and more. What I want to do is sign my name using a shader. After all, what’s in a name? Nothing but some lines and curves—surely, a shader can handle that. There is plenty of documentation, tutorials, web playgrounds, and videos explaining shaders, so I’m not going to start with that. Instead, I’ll dive in head-on and see how far I can go. The goal, in plain English, is to generate a visualization using shaders that writes my name vertically, one letter at a time, on a 16:10 portrait canvas—like a highlighted pen. Then, I want my name to persist on the canvas while adding a pulsating glow and a gradient background. something like this...

Continue Reading →