Lord Ba'al
Supreme Deity
Posts: 6,260
Pledge level: Half a Partner
I like: Cats; single malt Scotch; Stargate; Amiga; fried potatoes; retro gaming; cheese; snickers; sticky tape.
I don't like: Dimples in the bottom of scotch bottles; Facebook games masquerading as godgames.
Steam: stonelesscutter
GOG: stonelesscutter
|
Post by Lord Ba'al on Feb 7, 2016 16:38:43 GMT
I just had a thought that I wanted to share and I figured this might be the most appropriate place to do so. I have noticed that in (god)game development where the intention is to have a multi player game, the tendency is to develop a single player game first and then tack on multi player at a later stage. This does not seem to me to be the sensible route to take. I will explain why. In order to develop a single player game that involves an AI opponent, you will have to work very hard to create a decent AI that does not appear to act stupidly. You will likely go through many many iterations in order to get something fairly decent. This process will take up a lot of development time. Because of this it will take a long time before the game is in the hands of actual players. When it finally does there is a fair chance that the AI ultimately will turn out to not be quite up to the task. The reason for this is that each player is different and will play the game in a different way. This will likely have the outcome that many "holes" are found in the behavior of the AI that players can exploit. Back to the drawing board it is for the AI development to add tweaks and do some more iterations. On the other hand, let's consider what might happen if you build the multi player game first. First of all, because of the fact that the opponent AI does not have to be developed, the game will be in the hands of players much sooner. As soon as the game is in the hands of players the development team can receive feedback which can be processed. A human player will always be more intelligent than an AI player. By pitting two human players against each other it is possible to see strategies develop. Because each player is different, the strategies will also be different. However, when looking over an extended period of time and over an extended base of players, certain universal strategies will become apparent. Then you can select players who use specific strategies and make them play against players with specific other strategies to see what kind of results it gives. New strategies will thus emerge. All in all, by pitting human players against one another a wealth of information can be gathered about how the game can be played, potentially all sorts of possibilities will emerge that the development team never even thought of. All this information can then be put to good use when developing an AI opponent. What's more, it will make it easier to develop multiple skill levels for the AI opponents ranging from easy to defeat up till nigh on impossible to defeat. A simple AI will only take a number of basic strategies into account. A master AI will take all known strategies into account. And then of course various difficulty levels in between. You may even be able to create an AI that employs randomized tactics that will always offer a certain skill level but won't play exactly the same each time. For example, you could divide strategies into general strategies and deep strategies and then say, for this skill level the AI will randomly select 3 strategies from the list of general strategies and 3 strategies from the list of deep strategies. Okay I'm starting to rant and lose focus of my originally intended topic a bit. When people play a game against an opponent, they enjoy it more when the opponent offers an appropriate challenge. Human players will be able to find other human players that match their own skill level fairly easily. Finding an appropriate AI level to match their skills however may prove difficult in comparison. In order for every player to be able to have an AI opponent that is challenging and fun to play against, the AI will have to be completely fleshed out. During my write up and ranting I appear to have forgotten some of the nuances that I intended to discuss, so I will call it quits for now. Let me give a short recap though. Single player first- long development time before game gets into the hands of players
- many iterations between play testing and further AI development
- long time before the game may start generating income and publicity
- risk of ending up with a game that is not challenging enough
- risk of players losing interest in the game due to long development process
- risk of players losing interest in the game because they grow tired of play testing a game that is not fun or challenging enough
- risk of running out of development budget before the game reaches a state that is sufficiently playable
- risk of multi player component never being completed
Multi player first- shorter development time before game gets into the hands of players
- less iterations between play testing and AI development
- game may start to generate income and publicity sooner
- game will be playable, even if the AI opponent is never completed
- potential for much better developed AI in shorter overall time frame
I'm sure there are many angles and pros and cons that I haven't considered, but from what it looks like to me right now the second option is by far the better one. Please note that I have not addressed the fact that the human versus human multi player will require certain aspects such as networking to be developed. I don't know how complicated all that stuff is, but I suspect that it would take less time to figure out than to figure out a good AI opponent. Please also note that when I speak of AI in this post, I am only referring to an AI adversary. In either case AI will still have to be developed for followers and villages. This is something completely separate from having an AI that acts as a player. Okay, enough. Thoughts? Discuss!
|
|
|
Post by morsealworth on Feb 7, 2016 18:10:45 GMT
I remember someone developing adaptive AI that learned playing against each other. Can't quite point out who, though. I've got a feeling it was for PA.
|
|
Lord Ba'al
Supreme Deity
Posts: 6,260
Pledge level: Half a Partner
I like: Cats; single malt Scotch; Stargate; Amiga; fried potatoes; retro gaming; cheese; snickers; sticky tape.
I don't like: Dimples in the bottom of scotch bottles; Facebook games masquerading as godgames.
Steam: stonelesscutter
GOG: stonelesscutter
|
Post by Lord Ba'al on Feb 7, 2016 21:00:45 GMT
I remember someone developing adaptive AI that learned playing against each other. Can't quite point out who, though. I've got a feeling it was for PA. That is pretty cool. But can you trust an AI to come up with all the tactics that a human could? Or will it lead to such incredibly strong AI that it is absolutely undefeatable? In any case an AI would have to be developed first. In order to do so I think it would be best to start with human players.
|
|
|
Post by idem on Feb 8, 2016 3:44:05 GMT
Doesn't the game depend on A.I. heavily regardless of wether or not it's multiplayer? I mean, the game's mechanics depend on NPC believers, even in multiplayer. So if you're going to have to design A.I. anyway, might as well do A.I. god opponents. Besides, multiplayer code is a whole can of worms by itself, let alone servers to run the game on. Also, if the opponents are A.I., then the designer controls the pacing of the game. If the opponents are human, then the opponents control the pacing.
|
|
Lord Ba'al
Supreme Deity
Posts: 6,260
Pledge level: Half a Partner
I like: Cats; single malt Scotch; Stargate; Amiga; fried potatoes; retro gaming; cheese; snickers; sticky tape.
I don't like: Dimples in the bottom of scotch bottles; Facebook games masquerading as godgames.
Steam: stonelesscutter
GOG: stonelesscutter
|
Post by Lord Ba'al on Feb 8, 2016 6:03:09 GMT
Doesn't the game depend on A.I. heavily regardless of wether or not it's multiplayer? I mean, the game's mechanics depend on NPC believers, even in multiplayer. So if you're going to have to design A.I. anyway, might as well do A.I. god opponents. Besides, multiplayer code is a whole can of worms by itself, let alone servers to run the game on. Also, if the opponents are A.I., then the designer controls the pacing of the game. If the opponents are human, then the opponents control the pacing. Yes, I said that. But the NPC AI is detached from the player AI. And I think the player AI is far more complex as it has to appear to be human. And if multi player has already been decided upon then might as well get it out of the way first. At least you'll be sure you have it. And the game would then be ready for market in it's first incarnation.
|
|
|
Post by idem on Feb 8, 2016 13:26:53 GMT
Another problem you face is out of sinc problems. If you have A.I. believers in multiplayer, they all have to do exactly the same thing at exactly the same time on all involved computers. That's even harder than it sounds.
|
|
|
Post by Deth on Feb 8, 2016 13:39:51 GMT
Personally as long as they are not an attacking force or interacting directly with me I am not that concerned with what I see and what the other player sees. AS long as the meta is equal from what they see and I see I am OK if I see something slightly diffrent. I.E. I do not care if I see an enemy peep leaving one building and he sees it leaving another building.
|
|
|
Post by morsealworth on Feb 8, 2016 20:34:30 GMT
Personally as long as they are not an attacking force or interacting directly with me I am not that concerned with what I see and what the other player sees. AS long as the meta is equal from what they see and I see I am OK if I see something slightly diffrent. I.E. I do not care if I see an enemy peep leaving one building and he sees it leaving another building. Not if you toss a fireball in that building you see.
|
|
|
Post by 13thGeneral on Feb 8, 2016 22:22:17 GMT
I remember someone developing adaptive AI that learned playing against each other. Can't quite point out who, though. I've got a feeling it was for PA. That is pretty cool. But can you trust an AI to come up with all the tactics that a human could? Or will it lead to such incredibly strong AI that it is absolutely undefeatable? In any case an AI would have to be developed first. In order to do so I think it would be best to start with human players. Humans have a unique ability that is difficult to emulate or program into AI, currently, and that is our chaotic propensity at creatively ignoring the logical or intuitive solutions and doing the unpredictable irrational thing. Basically, we change the game by not playing fair, or by making new rules.
|
|
Lord Ba'al
Supreme Deity
Posts: 6,260
Pledge level: Half a Partner
I like: Cats; single malt Scotch; Stargate; Amiga; fried potatoes; retro gaming; cheese; snickers; sticky tape.
I don't like: Dimples in the bottom of scotch bottles; Facebook games masquerading as godgames.
Steam: stonelesscutter
GOG: stonelesscutter
|
Post by Lord Ba'al on Feb 8, 2016 22:33:12 GMT
That is pretty cool. But can you trust an AI to come up with all the tactics that a human could? Or will it lead to such incredibly strong AI that it is absolutely undefeatable? In any case an AI would have to be developed first. In order to do so I think it would be best to start with human players. Humans have a unique ability that is difficult to emulate or program into AI, currently, and that is our chaotic propensity at creatively ignoring the logical or intuitive solutions and doing the unpredictable irrational thing. Basically, we change the game by not playing fair, or by making new rules. You could program an AI to not always take the option that statistically would produce the most beneficial results though.
|
|
|
Post by echocdelta on Feb 10, 2016 10:39:45 GMT
Ok! I apologize for the delay here, I wanted to speak with tech people and clarify some things first. Preface - I'm not an AI Programmer but I'll try to explain the things told to me on the subject and also apply the design considerations we've made so far.
Firstly, Ba'al you're actually right in the gains we get from not including an adversary AI God over having PvP multiplayer, but this apparently does have a different set of issues with netcode, architecture and the complexity/depth of how far we can take things like NPC Pawns.
One of the problems highlighted to me was synchronization and where the data is passed or processed - is it client/client, or client/server, how will it handle DC, how will it handle abuse etc.
long development time before game gets into the hands of players
This is something I've personally pre-empted in Design. We're launching Phase 01 out of the gate as early as possible to provide a sandbox look at a single village, so that the players or testers/demo people have something to look at as quick as possible. Phase 01 doesn't have an adversary God AI for this specific reason - we want to see what you, as a player, does first in the game with a village. We want to test, iterate, collect feedback and add/reinforce parts of the game that are fun whilst crushing/cutting out things that people dislike.
many iterations between play testing and further AI development
This is true; we can't avoid this regardless. Many iterations for NPC village manager, many, many, many hours expected in the game also running automated without a God for QA to see how each game round plays. First we need to know that a village, without you or any God, can do the things it needs to. Then we add you, as a God, and they need to respond as you, the player, would expect. Then we add another village, and have them interact as you would expect. Then we add a second God, so on. Every single step of this includes testing, QA and feedback collection.
long time before the game may start generating income and publicity
Thankfully, the only danger of this is if someone else makes the same game before us. I can't control that, but I don't want to rush the game out either. Our minimum viable is Phase 01, which is where we want the public to have the change to play it.
risk of ending up with a game that is not challenging enough
I agree with this, we can definitely end up with a weak AI or not engaging gameplay loops that result in the player feeling unchallenged. I'm anticipating this in Phase 01 and it's partially why we're doing so many paper prototypes; trying to identify how players can win or resolve problems, seeing what would motivate them, what would hinder them. For example: I asked another designer to start the Phase 01 prototype on a whiteboard. Place homes, place a forest, place a mountain, now you spawn, how will you take the village? He did the grab Idol, smash Idol on village. We then cycled through problems; you don't have enough food, what do you do? You now don't have a forest, what do you do? There are boulders blocking the mine, what do you do? Basically, without adding anything new, we use our pool of user stories to overcome these things. We're looking to prototype these concepts in the gameworld literally as early as humanly possible, so that before we actually have anything that looks 'good', we will aim to answer these questions in a prototype level.
risk of players losing interest in the game due to long development process
This is a personal fear of mine, and I think it is a risk we take to do what is happening here - which is to engage and build with the community. Our best option is to release Phase 01 as a demo/test for members of the community, to use it to generate interest and also to see if our game is even 'fun' for people to experience.
risk of players losing interest in the game because they grow tired of play testing a game that is not fun or challenging enough
I agree with this, happened to me on most EA titles I own. They sit there, getting updates, but by the time of their release I simply don't care anymore. I'm open to discussing this one further.
risk of running out of development budget before the game reaches a state that is sufficiently playable
We hope that our skills in developing other projects will translate into this not happening. Hasn't happened to anything we've worked on yet and we've done a lot of internal calculations on what our milestones will take.
risk of multi player component never being completed
This is the primary risk. Seriously, this can happen to any game in development and we've seen sequels to AAA titles ditch multiplayer all together based on a range of problems.
Multi player first
shorter development time before game gets into the hands of players
Yes and no, for what we get back in no enemy God AI, we lose again in netcode and having to build the project in a specific way. But, we are looking to mitigate this as much as possible. The current gameplay loop and core mechanics can scale up for multiple Gods to exist in the same round. The design of the game is taking this into account, which is (for now) the best we can do until we know if the game is engaging or not.
less iterations between play testing and AI development
Less on AI testing, but more on human QA and testing sync/stability. AI development is sorted, sure, but we have to then worry about QA on 'are NPC villagers appearing on both players?' 'are values exchanged?' 'where is the data stored?' 'how many players/what ping/what conditions before drop?' etc. We can never escape QA/testing, we're going to eat that either way.
game may start to generate income and publicity sooner
I agree with this, especially with multiplayer we could get exposure much sooner than expected. Things like Twitch etc.
game will be playable, even if the AI opponent is never completed
Yeah, but we'll get chewed out still on not providing a single-player experience, probably rightfully so. Some people don't want to have to play other humans, but I agree with this point - game would have a complete state per say.
potential for much better developed AI in shorter overall time frame I still can't comment on this, I've been told that AI is a combination of the illusion of intelligence and the faking of player emulation. Basically, an AI can actually totally demolish a human player in most games, from RTS to FPS. Seriously, things like SorianAI in Supreme Commander or some of the twitch-shooter Quake bots are programmed to take full advantage of the ability for a computer to do everything it can to win. This includes cheating, being able to issue multiple commands on tick, awareness of player at all times etc. Some AI, even Chess, make mistakes on purpose to emulate human players. The quicker we can observe anyone playing any state of the game is quicker we can develop AI for it - including the villager AI.
Remember, no matter what we do, we're going to have to tackle (and are now tackling) the villager AI. Towns will need to grow without you, that's a primary part of the game itself. That requires a lot of AI.
Ba'al I'll try to poke them for more info and keep you up to date here! Thanks for that, a lot of food for thought for me to consider in the past couple of days!
|
|
|
Post by echocdelta on Feb 10, 2016 10:40:08 GMT
Humans have a unique ability that is difficult to emulate or program into AI, currently, and that is our chaotic propensity at creatively ignoring the logical or intuitive solutions and doing the unpredictable irrational thing. Basically, we change the game by not playing fair, or by making new rules. You could program an AI to not always take the option that statistically would produce the most beneficial results though. Exactly this.
|
|
|
Post by 13thGeneral on Feb 11, 2016 18:13:36 GMT
You could program an AI to not always take the option that statistically would produce the most beneficial results though. Exactly this. What about programming it to not always do something beneficial at all? Humans have a tendency, whether intended or from naivety, to do things that have no noticeable benefit. I honestly don't know much about programming. Oh, and on topic; I see the logic in programming the more complex multiplayer functionality, prior to implementing single player. I would assume once that framework is laid, it would allow for greater flexibility in partitioning out the basic mechanics and features. The other way around, to my understanding, would require completely reworking the structure to support the new system, as well as having to layer in all the new requirements. But I also have much to learn about game design.
|
|
|
Post by echocdelta on Feb 13, 2016 11:29:54 GMT
What about programming it to not always do something beneficial at all? Humans have a tendency, whether intended or from naivety, to do things that have no noticeable benefit. I honestly don't know much about programming. Oh, and on topic; I see the logic in programming the more complex multiplayer functionality, prior to implementing single player. I would assume once that framework is laid, it would allow for greater flexibility in partitioning out the basic mechanics and features. The other way around, to my understanding, would require completely reworking the structure to support the new system, as well as having to layer in all the new requirements. But I also have much to learn about game design. I believe that good AI design is based on the right balance of mistake and action. For example, just recently I observed the AI of XCOM 2 have no pathfinding, as in, if there is a chasm between you and the enemy, the enemy will move towards you instead of going left/right to the bridge to get to the player (the fact that this enemy was a melee character made it more visible). For a player, this is immersion breaking unless you can find a way for the player to tell their own narrative as to why that is a feature, not a bug. In comparison, even SorianAI in SupCom has a final stage in AI logic that 'caps' it out at a certain point - the way to defeat SorianAI in SupCom is to survive long enough for the AI to simply enter a loop and repeat the same actions, build the same things/same logic. The first 30 minutes is immersive, the last 30 minutes is you remembering it is an AI script. Mistakes are really hard, because a player can assume it is a bug. How that is framed, shown and presented to the player is really important. In TW: Empire, when a small city state declares war on your multi-continent empire, you assume it is a bug. In Civ2, when Genghis Khan declares war on you suddenly, you assume it is Genghis Khan being himself. Multiplayer, eventually, might be the better option over Singleplayer. I'd even go as far as to take a new route, as in, maybe Singleplayer shouldn't just be you vs. another God. Ponderous questions.
|
|
|
Post by Spiderweb on Feb 13, 2016 12:00:17 GMT
What about programming it to not always do something beneficial at all? Humans have a tendency, whether intended or from naivety, to do things that have no noticeable benefit. I honestly don't know much about programming. Oh, and on topic; I see the logic in programming the more complex multiplayer functionality, prior to implementing single player. I would assume once that framework is laid, it would allow for greater flexibility in partitioning out the basic mechanics and features. The other way around, to my understanding, would require completely reworking the structure to support the new system, as well as having to layer in all the new requirements. But I also have much to learn about game design. I believe that good AI design is based on the right balance of mistake and action. For example, just recently I observed the AI of XCOM 2 have no pathfinding, as in, if there is a chasm between you and the enemy, the enemy will move towards you instead of going left/right to the bridge to get to the player (the fact that this enemy was a melee character made it more visible). For a player, this is immersion breaking unless you can find a way for the player to tell their own narrative as to why that is a feature, not a bug. In comparison, even SorianAI in SupCom has a final stage in AI logic that 'caps' it out at a certain point - the way to defeat SorianAI in SupCom is to survive long enough for the AI to simply enter a loop and repeat the same actions, build the same things/same logic. The first 30 minutes is immersive, the last 30 minutes is you remembering it is an AI script. Mistakes are really hard, because a player can assume it is a bug. How that is framed, shown and presented to the player is really important. In TW: Empire, when a small city state declares war on your multi-continent empire, you assume it is a bug. In Civ2, when Genghis Khan declares war on you suddenly, you assume it is Genghis Khan being himself. Multiplayer, eventually, might be the better option over Singleplayer. I'd even go as far as to take a new route, as in, maybe Singleplayer shouldn't just be you vs. another God. Ponderous questions. I've always wondered can you base AI on environmental triggers, like time past + follower count + areas walked on=opponent behaviour trigger. Surely you can make a better fake AI from the randomness of how you play combined with rules than to truly have an intelligent AI? I guess I should read up on AI!
|
|
Lord Ba'al
Supreme Deity
Posts: 6,260
Pledge level: Half a Partner
I like: Cats; single malt Scotch; Stargate; Amiga; fried potatoes; retro gaming; cheese; snickers; sticky tape.
I don't like: Dimples in the bottom of scotch bottles; Facebook games masquerading as godgames.
Steam: stonelesscutter
GOG: stonelesscutter
|
Post by Lord Ba'al on Feb 13, 2016 12:13:33 GMT
Yeah that Genghis can be a genuine SOaB.
|
|
|
Post by morsealworth on Feb 13, 2016 20:39:45 GMT
You know, a heuristic AI (that's how environment-triggered AI is called) is actually kinda different to do because it is basically reflectory action simulated. And since reflexes can get complex and there are emergent actions formed from then the stuff requires good hardware and is fairly difficult to implement in the first place, not to mention the requirement for all the rules that it has to remember and resolve conflicts between. In fact, creation of a strong AI is a creation of learning-capable heuristic AI and that's a Nobel Prize material that can result in world communism (as in, machines overtake all production and people no longer suffer from scarcity due to the economical efficiency skyrocketing and a huge part of populace dying off in the first decades).
|
|
|
Post by idem on Feb 13, 2016 21:58:22 GMT
Something I'd like to see is an A.I. that plays long-term psychological games with the player. What I mean is, if an A.I. spends a while using one set of rules to the point where the player starts anticipating on it, then the A.I. switches to another set of rules. And then possibly back to the first set again or yet another. Making the player think the A.I. is going to do things one way as a way to trick them.
|
|