Showing posts with label dark souls. Show all posts
Showing posts with label dark souls. Show all posts

Friday, January 15, 2016

DIY Kill-Bot: A.I. Plays Dark Souls PVP

Description: A screenshot of a giant headless rock creature (golem) kicking an
armored knight square in the butt. Heehee, butt.
The Dark Souls series is known for its punishing difficulty in single player mode (and making it even worse for pirates who accessed it early) and its cut-throat competition in player versus player strategies. One user on gitHub going by the handleMetal Crow decides to combine his love of programming, his passion for playing Dark Souls PVP and desire to have an AI do his bidding into making his own bot that can play Dark Souls PVP and shared it with the world.

What's really interesting to me, coming at it from a non-technical viewpoint, is how much of this project was complicated by the fact that for all the strategy talk surrounding Dark Souls, the system is a closed system, making it sort of akin to trying to peer into a sealed black box. As he explains, he had to pretty much reverse-engineer the game:
In order to have the AI do anything, i needed to be able to feed it data about the game state. The simplest and most direct way of doing this is would be to have it watch various variables in the game code, such as the enemy's x and y location, and then use that with the AI logic. However, since the game's code isn't open source, i needed to reverse engineer anything i wanted to use.
Ok, so maybe that doesn't sound that surprising, right? Just point a program at a game, observe it crunch some numbers, and you're done? As it turns out, writing a bot to play against a human is really tricky-- and not just because us humans can be highly illogical. Nope, Metal Crow had to teach the bot to avoid backstab damage, and he had to create a sort of neural network to do it. He explains:
{In PVP]...the primary combat isn't standard attacks, but the backstab metagame. This is a beautifully complex mechanic, which allows players to instantly damage another player if they manage to get behind them and close to their back. Unlike standard attacks, an AI cant dodge this very simply, because it is executed instantaneous, there's no windup the AI can see and roll away from. The backstab metagame with humans revolves around identifying if a person is about to go for a backstab, then dodging it or countering it ahead of time. Unfortunately, even though I can easily identify backstab attempts when I play, I cannot for the life of me translate it into discrete logic. Its just something I know from experience, I cant really explain it. However, it is vital the AI be able to detect and dodge backstabs, so I needed to figure out a way to teach it.
So how well does it work? You can watch a teaser video of it in action below:


Monday, August 11, 2014

Is "Social Gaming" A Misnomer?


 
Leigh Alexander has a great article in The Guardian that delves into multi-player games as a social activity in general, and the recent beta of Bungie latest game, Destiny, in particular. An excerpt:
I watched a colleague of mine play through the beta of Bungie’s latest game, Destiny. It has all the beauty and heft of a massive, futuristic space opera, it has a gorgeous user interface, and it will be a high-end online game where friends can do missions together forever. It is a genius way to do business: create a game where the mode of participation is endless investment. As Destiny is a cutting-edge product you feel almost peer-pressured to participate. 
It is social in that business sense: you must collaborate with and keep up with your friends, ensure that your statistics and equipment – your fitness for competition – are ever increasing. You participate excitedly in this capitalistic metaphor.
Yet are people really playing “together”?
Jenn Frank tackles the idea of socialization-- or the lack thereof-- that happened between her and Ted (her fiance), and how utterly alien it felt for her (she was traditionally the sole "gamer" in a relationship) to feel like a so-called "game widow", especially when Destiny seemed to designed to be a constant, always-on experience:
Later, Ted tells me there is no “pause,” not in the sense where games often have a “pause.” He isn’t even playing multiplayer; he is on a solo mission. “I can’t put the game down,” he explains to me, helplessly. 
This, I do understand. 
I am not angry with Ted. I am furious with Destiny, however. Due to a design flaw—in this case, the flaw is with a game that cannot be paused—I am finally experiencing true relationship strife.
And while this phenomenon may sound most familiar to those who play MMORPGS like World of Warcraft and its ilk, Jason McIntosh wrote about a similar strain on his relation with another game that has no pause feature even though it's not always a multi-player game: Dark Souls. As he explains in "Dark Souls: Pain Without Pause":
But for most of the game your character is strictly alone in their world; you often see the flickering shadows of other players rushing past, but cannot interact with them in any way. And indeed, I never reached any true multi-player segment, so as far as my own experience is concerned, the lack of a pause button serves only as another tool the game uses to mold the player into the correct mindset for disciplined play... 
Whether it was bad for me just then or completely unworkable for me at all remains to be seen. I can offer none of this contextualization as an excuse for my behavior; I became an unpleasant jerk while playing this game, and that was awful and I never want to have that happen again.
Personally, while I've been on both sides of the divide over the years, I've seen a shift recently in that many AAA game companies try to design it so that they capture as much your your attention and investment of time and money that it can often end up having a detrimental effect on one's social life and relationships. Of course, moderation is the key, but a system like Destiny seems to be working very hard to upend that part of the equation.

What do you think, readers?

Share This Post