@Zerglingman@lonelyowl Working with other people’s coding examples makes my head hurt. Not even writing code yet; just trying to wrap my brain around the concept. Still having difficulty understanding that first lesson! Oof. Hopefully it will be easier once I start to dig into the mechanisms myself.
@Zerglingman@lonelyowl Either of you work on ML yourselves? I am wondering if it’s better to prioritize getting to and defeating high-value targets (like bosses) or whether it’s better to prioritize defeating any target.
The benefits of the second I think are immediately apparent. Killing any enemy gives a virtual certainty to kill high value targets, but the drawbacks seem similarly drastic. That is that the bot will just run around killing everything and perhaps run into loops where a baddie spawns, bot kills, new baddie spawns, bot kills, old baddie spawns, etc.
The second wouldn’t face this drawback, but it’s drawback is it would be very rigid and would need multiple models for different areas, increasing the size requirements drastically.
Yeah, that's the point of reinforcement learning. You define some simple reward function, and the algorithm will learn how to maximize it. For example, the further player will walk through level without dying, the bigger the reward, and the algorithm will decide what to do with enemies, who to kill in first place and how, or maybe it will prefer to just speedrun the whole thing without murders.
@lonelyowl@Zerglingman Can you set multiple rewards that have equal weight? Like for example gaining experience points and making it through a level the fastest way possible? I should probably just read more on the subject, but the way you put it helped everything click in my head just now. Perhaps you’ll be more insightful than an article on the subject.
Like for example gaining experience points and making it through a level the fastest way possible?
Yep! Just keep it in mind that the algorithm will maximize the reward function, so it is possible that it will figure out that just speedrunning without harvesting any experience is still the easiest way to do so. This thing is used to find the best strategies to maximize the reward in the first place, not to mimic certain behavior. If you wish to make it mimic certain human-player like behavior, i believe it’s also possible, but will require some tinkering.
@lonelyowl@Zerglingman In particular I am trying to come up with a bot that you can PvP with ultimately, which would be really rad.
I think I am simply putting too much thought into it, a problem I have had with ML since I first learned of it. Having had it explained to me in a way that I can better understand has opened my eyes to my critical error in the first place. This is not something I have to baby.
@lonelyowl@Zerglingman So I think I’ve settled into a comfortable paradigm in my head, and learned everything I can from reading though I did confuse myself again trying to read into it. I love when that happens and now it’s time to focus on trial and error. I think once I’ve got movement down the rest should come naturally especially because the code-base I’ll have to work with will be rather minimal in the end. At least that’s my expectations going into it.
On a bit of a side note, I was looking into using python code in other languages because I may need it, and figured I’d find a native language version for a different coding language. I look into it and find it uses Python wrappers. :angryglitch:
@lonelyowl@anonymous Yeah, you can write specialised stuff and it will almost always be better.
Although in FPS they tend to just aimhack so "good" is debatable.
Teaching a neural network is less effort on your part, and more adaptable across games.
@Zerglingman@lonelyowl Mostly the less effort part, but all the moving parts confuse me. As you can see I barely made it through “use a ML library”. Let alone figuring out how to execute proper bots in games.
I’m hoping my laziness will ultimately translate into a bot that can be used across multiple games.
@Zerglingman@lonelyowl Now that I think about it the PvP portion would be pretty hard too, depending on the game. Then add on top making it realistic.
This way could potentially solve the “bots in open world” games problem and you could actually feel like you have a living world. Hell someone some day might even implement chat AI and then you never have to play with another nigger ever again.
@anonymous@lonelyowl It's pretty trivial to make open worlds that don't suck already, with procedural generation. Which is different from random generation, which tends to get bland after 10 minutes.
Let me put it this way: imagine your favorite MMO. Now imagine dropping a template into a private server instead of having to waste potentially thousands of hours making a bot specific to that game that you’re unlikely to ever reuse. Now imagine this for every open world game.
Would slash the need for “realism” (which for some games is mandatory :vomit: ) in private servers. This would in turn encourage more of them.
Obviously people should demand more single player games. In the meantime, and for nostalgia’s sake, we could potentially have drop-and-train bots.
@Zerglingman@lonelyowl One other bonus I completely forgot to mention is the boost this would give to bots in games where the PvP is far superior to PvE (shooters and Diablo-style in particular). But this of course assumes people don’t demand single player and on top of that don’t demand single player bots.
@Zerglingman@lonelyowl Well Diablo would be one, especially Diablo 2 where some content is locked behind multiplayer restrictions. RTS’, strategy. I could probably think of more if I had to.
@Zerglingman@lonelyowl Well I am not sure what you mean but I think you mean these are all games you play against another person or bot? I suppose in my head I was thinking PvB = PvE. In any case games like Diablo would still benefit, and shooters as well. It could also lead the way to more realistic environments and mods in games in general.
@Zerglingman@lonelyowl I suppose I disagree. Not so much on the base premise but that it’s not always the case. For example there’s a single player to StarCraft, but the multiplayer might as well be a completely different game. However for StarCraft at least you can add bots to the game, as a stand in for players. Which at least implies both were meant for people to play by themselves at least in theory.
Just "starcraft dataset", or "starcraft player actions dataset". There are already shitload of different datasets of different stuff, i suppose it wouldn't be hard to find one for your game if it's popular.
The only stuff i've had a hard time to find is anything nsfw, on the past job we tried to create an automatic filter of "hatefull content" and there were absolutely no labeled data of corpses and blood 🥺
Add comment