@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.
@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@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.
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.
@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.