Last Online: 1/25/08
David Cummins
Hi, I'm Dave. I'm not a game developer as such - I'm far too busy being a full time web developer. I was a huge gamer back in the 80s/early 90s, but gave it all up to complete my BSc (Hons) in Computer Science.
I'm fascinated by algorithms and innovative game concepts. I've been a member of the indiegamer forum for a few months, and have really enjoyed the ability to see what people are doing and discuss the state of gaming and potential directions forward. I don't play games as much these days because I find it hard to find games that I find worthwhile to spend my time on. Of course I do play the odd free online game because.... why not!
Some day I'd like to develop my own innovative and cool game... but I've seen just how much goes into creating something that's polished, rather than some mangy homebrew graphics with bad collision detection that only works on your version of Windows. So it'll probably be a while. ;)
I'm fascinated by algorithms and innovative game concepts. I've been a member of the indiegamer forum for a few months, and have really enjoyed the ability to see what people are doing and discuss the state of gaming and potential directions forward. I don't play games as much these days because I find it hard to find games that I find worthwhile to spend my time on. Of course I do play the odd free online game because.... why not!
Some day I'd like to develop my own innovative and cool game... but I've seen just how much goes into creating something that's polished, rather than some mangy homebrew graphics with bad collision detection that only works on your version of Windows. So it'll probably be a while. ;)
[center][/center]
Thoughts
I have many interesting theories about game development. I wish more developers would take that leap to the next level of interactivity. I understand the financial reasons why many don't, and also the technical reasons. Still, a guy can dream. Below are some of my dreams. I'll expand upon these when I can figure out how to add a blog to here. I'm beginning to suspect it's just based on a 3rd party blogging site that provides RSS feeds.
Less smart, more real
There's a lot of work that's been done on making NPCs act "smarter". I applaud that work, but I wonder whether it's reached a stage where the focus should shift to "more human-like".
NPCs' lack of appropriate emotional response damages suspension of disbelief. Firstly, an appropriate initial mental state is required, e.g. civilians in a war situation might be scared, confused, distrustful and conservative in their actions.
Secondly, the mental state needs to evolve. There should be multiple axes, e.g. trust, like, fear. It's possible to like someone but not trust them with your money. Or to trust that a commando will protect you because it's his mission, but fear his bloodthirsty ways. If the player kills children in front of NPCs they should react appropriately. If various axes are pushed too far the NPC may try to run away or turn on the player.
There should also be a level of emotion bleed to other avatars based on similarities. For example, the player commando killing children causes some spillover fear to all caucasian males, all people with big noses and squinty eyes, and all soldiers. Who needs dialogue trees when you can intimidate or reassure by your actions alone?
Adapting games to player psychology
Different players look for different things in the same game. Take Halo. Some players play cautiously, some charge in. Some mop up all enemies, others just go for the exit. Do they want casual fun or a hard-core challenge? Story mode or just blasting?
Various parties have investigated fun in computer games. They record player rewards and penalties over time, compare with player commentaries, heart rate, eye movement etc. I hope that from this data it would be possible to identify in-game cues that denote the level of fun. For example, if player rewards per minute fall under a threshhold, maybe they're not having fun. Or non-purposeful movement could denote boredom, or perhaps shooting inanimate objects.
The basic approach which be tailoring difficulty levels dynamically. A higher level would be detecting "lost" players and using NPCs or world events to lure them to where they need to be in order to progress. Another level again would be determining what the player's actual goals are. What means fun to them? Stop bombarding them with enemies and random quests, they're here for the story mode!
Human-level bot AI vs NP
I have been looking at AI research using Quake bots. Most requires some level of "cheating", e.g. path-finding requires pre-analysis of the entire map and does not respond well to map changes. In addition, narrow sets of tactics are designed by the bot writer, which the bot cannot exceed during play. Learning is rare, apart from tweaking probabilities or parameters which affect play in predictable ways.
The fundamental problem at the heart of this is the lack of ability to detect complex patterns in noisy data (e.g. the player performed this set of actions which resulted in my death, but what was the player's underlying tactic?) and the lack of ability to sythesize new ideas (e.g. now that I know what tactic the player is using, how will I beat them?).
I suspect that creating human-level bot AI is akin to solving an NP problem. An NP problem (non-deterministic polynomial time) takes exponential time to solve on existing hardware to the best of our knowledge. For example, finding the maximum size clique in a graph (group of vertices that are mutually connected) is an NP problem. It is trivial to perform when there are 3 vertices, but nearly impossible for 100 vertices.
However, for specific instances (e.g. a graph with 100 vertices where a certain set of vertices are joined) there are heuristics which will yield the correct answer in polynomial time. If all vertices are joined, or no vertices are joined, it is trivial (1 and 100 respectively). In my mind these correspond to very specific tactics, e.g. when the player is in the corner of room A and has less than half health, cut off their escape by shooting rockets from room B.
Other approaches are comparable to more general tactics, e.g. if a graph has V vertices and the graph consists of disconnected clumps of no more than log(V) vertices the problem can be decomposed to a polynomial number of polynomial instances. I suspect that in both situations an exponential set of polynomial heuristics is required to solve the problem, hence the hard-wired tactic explosion.
Less smart, more real
There's a lot of work that's been done on making NPCs act "smarter". I applaud that work, but I wonder whether it's reached a stage where the focus should shift to "more human-like".
NPCs' lack of appropriate emotional response damages suspension of disbelief. Firstly, an appropriate initial mental state is required, e.g. civilians in a war situation might be scared, confused, distrustful and conservative in their actions.
Secondly, the mental state needs to evolve. There should be multiple axes, e.g. trust, like, fear. It's possible to like someone but not trust them with your money. Or to trust that a commando will protect you because it's his mission, but fear his bloodthirsty ways. If the player kills children in front of NPCs they should react appropriately. If various axes are pushed too far the NPC may try to run away or turn on the player.
There should also be a level of emotion bleed to other avatars based on similarities. For example, the player commando killing children causes some spillover fear to all caucasian males, all people with big noses and squinty eyes, and all soldiers. Who needs dialogue trees when you can intimidate or reassure by your actions alone?
Adapting games to player psychology
Different players look for different things in the same game. Take Halo. Some players play cautiously, some charge in. Some mop up all enemies, others just go for the exit. Do they want casual fun or a hard-core challenge? Story mode or just blasting?
Various parties have investigated fun in computer games. They record player rewards and penalties over time, compare with player commentaries, heart rate, eye movement etc. I hope that from this data it would be possible to identify in-game cues that denote the level of fun. For example, if player rewards per minute fall under a threshhold, maybe they're not having fun. Or non-purposeful movement could denote boredom, or perhaps shooting inanimate objects.
The basic approach which be tailoring difficulty levels dynamically. A higher level would be detecting "lost" players and using NPCs or world events to lure them to where they need to be in order to progress. Another level again would be determining what the player's actual goals are. What means fun to them? Stop bombarding them with enemies and random quests, they're here for the story mode!
Human-level bot AI vs NP
I have been looking at AI research using Quake bots. Most requires some level of "cheating", e.g. path-finding requires pre-analysis of the entire map and does not respond well to map changes. In addition, narrow sets of tactics are designed by the bot writer, which the bot cannot exceed during play. Learning is rare, apart from tweaking probabilities or parameters which affect play in predictable ways.
The fundamental problem at the heart of this is the lack of ability to detect complex patterns in noisy data (e.g. the player performed this set of actions which resulted in my death, but what was the player's underlying tactic?) and the lack of ability to sythesize new ideas (e.g. now that I know what tactic the player is using, how will I beat them?).
I suspect that creating human-level bot AI is akin to solving an NP problem. An NP problem (non-deterministic polynomial time) takes exponential time to solve on existing hardware to the best of our knowledge. For example, finding the maximum size clique in a graph (group of vertices that are mutually connected) is an NP problem. It is trivial to perform when there are 3 vertices, but nearly impossible for 100 vertices.
However, for specific instances (e.g. a graph with 100 vertices where a certain set of vertices are joined) there are heuristics which will yield the correct answer in polynomial time. If all vertices are joined, or no vertices are joined, it is trivial (1 and 100 respectively). In my mind these correspond to very specific tactics, e.g. when the player is in the corner of room A and has less than half health, cut off their escape by shooting rockets from room B.
Other approaches are comparable to more general tactics, e.g. if a graph has V vertices and the graph consists of disconnected clumps of no more than log(V) vertices the problem can be decomposed to a polynomial number of polynomial instances. I suspect that in both situations an exponential set of polynomial heuristics is required to solve the problem, hence the hard-wired tactic explosion.
A selection of the games I like. There are many less popular games I also like which don't come to mind right now.
4
5
8
11





















