I'm implementing turn-based combat in my idle game.
It can be played actively to beat challenges (like a regular turn-based game) or passively for idle farming (random moves are used, food is consumed automatically, like Idle Iktah). It's like all the other skills in that there's a way to do it actively and idle-y.
I'm combining my interest in pokemon and genshin for the mechanics. Characters have a stat setup, moves, and types, and the types are varied and fit the theme of mythic+internet.
And a central mechanic is that moves apply elemental stacks and those stacks combine/react. That idea is similar to genshin and replaces the buff/status system from pokemon.
That's the idea at least.
It sound convoluted but the main reason why I'm adding this system is that it solves multiple problems at once. First, since my game doesn't have a single character you "play as", a turn-based game is a way to have characters to collect, level up, and "play as". I like pulling a new character in Genshin and raising them up, but Genshin's per-character grind has always felt like a mess to me. It's like, a new character is too weak to use unless they're maxed, but by the time they're maxed, they're too strong to use in basically anything but endgame stuff. I wish it was more like an enjoyable grind with a well-defined goal.
Second, having characters on a team to do any kind of fighting gives an "out" for resources. I basically was playtesting my idle game where farming is just for making furniture, and I realized that OSRS isn't the same game if mining+smithing isn't for making better armor.
Other stuff that I did was I added in game controllers and event controllers and event emissions and stuff like that. Honestly, if I hadn't done that stuff myself in gamemaker, I'd struggle to understand what the purpose of that architecture is. Even though the game runs exactly the same as before, it feels more to me as a developer like a game. Also I had to restructure things so that the client gets the map data as a payload, so that I can hide secrety secrets server-side.
My plan is to migrate to godot at some point. If this sees the light of day, I dream of it on browser, steam, and mobile. I can't really get that to happen while maintaining multiple codebases.
Sketching out plans for the map:
I'm trying not to let this get into too much scope creep lol. But I'm also just trying to let myself have fun and not make shipping my goal. At the end of the day, this started as a prototype to learn about how a browser idle game works with server-authoritative game data, and since then I've learned about how that works with different kinds of active gameplay as well. It's genuinely been really interesting. It's crazy how much you can do with basically just timestamps. Idle gameplay can literally just be clients sending API requests to register initiating idle farming at a given time, and everything else can be calculated from that. The active fishing gameplay can be server-validated by having the server create a gameplay instance with a seed, which it can send to the client for simulating any kind of gameplay, and the server can take action-intentions from the client and compare it to the server's simulation to confirm rewards. That's definitely not, like bot-proof, but the fact that it works at all is nuts.