Issues with multiplayer 4X game

Started by
11 comments, last by Acharis 9 years, 5 months ago
I'm currently working on a multiplayer game for the browser where players have to build an empire, somewhat similar to Civilization in how you have unsettled land and players start building cities. Tradegoods are incredibly important to the prosperity of empires and will be the main reason for war and diplomacy. And with technological progress(which the players have no direct influence over but is instead based on their way of playing) I want to change the importance of certain tradegoods/increase the defense against piracy/make it viable to have longer trade routes etc, so that the power of players will fluctuate and games remain interesting for a longer period. There will be updates at fixed intervals so the game will continue regardless of whether there are any players online or not. One regular interval for army and navy movements and one big less regular game update.
Now that I'm starting to playtest my game for the first times I'm starting to get worried of the nature of my game. One concern is that players have to wait a lot because there's only so much things they can do before they have to wait for an update. But my main concern is that players will be punished for not being online. If a player wakes up and half his empire is conquered it would be enough for that player to never play a game again.
So now I'm wondering if others here have experience with these kind of games and how I could minimize the negative effects of not being online. And I'm also wondering what you think of my game idea and if this would be something that you would like to check in on a few times per day and then continue doing whatever else you were doing.
Here some screenshots of my first playtests:
[attachment=24334:ss.png]
[attachment=24335:ss2.png]
Advertisement

Ah the ever struggle of asynchronous gameplay.

Originally, asynch games were developed for BBS, before the internet was even born, and they've evolved. We've seen them rear back their head back in 2008 and are stuck revisiting the complex issues of asynch gameplay.

First and foremost, to work efficiently, asynch gameplay can work in one of two ways:

- 'Ticks' are rare, and players have a long period of time to issue orders for that 'Tick' (my current 4X game is based around this concept, with each Tick taking anywhere between 1 to 3 days, depending on how aggressive the game is set to be).

- 'Ticks' are common, but forgiving. For this to occur, you have to give meaningful control to players that choose to login 3-4 times a day to do so all the while keeping longer term elements.

In E.V.E., though the game was mostly as MMO with limited persistence, players would choose what they wanted to research when they were online, but these researches/training would still carry on while the player was offline.

I think your best approach to this is similar to that: consider that the player avatar is permanent, and has its own ability to 'act' and treat the player as an advisor. Whenever the player pops in, he gets to direct the priorities of what the avatar will do during the day(s). If you can/wish, abstract actual control of movement. Say ships take a while to move, allow the player to set the ship helm for a given port, but let the movement AI worry about what path to take. That way, the player pops in, says he wants to reach 'Port A', and logs off for a few hours/days until he has arrived at his destination.

If possible, include a few AI controls such as: what do I do if I encounter an enemy during this time? Should I engage or flee? (note that I'm making wild guesses since I'm not very familiar with your game concept).

In my experience, asynch gameplay, when executed well, keeps having you coming back because it is dosing your ability to drain fun from it. You can't get bored by playing too much, when means it sinks in as a habit.

I'm currently registered on Planets.nu, and I always have 2-3 ongoing games at a time. On average, I get to play approx 15-30 minutes a day (one 'tick' in any of these games) so it is not very taxing on my life schedule, and it keeps me involved.

A very popular browser game like ogame gives the player the chance to keep in a relatively safe state his goods for when he is not online. If you ever played ogame you know I'm talking about fleet save strategy.

In ogame your main resource is your fleet. If left on a planet it can be destroyed by an attacker, but if flying it cannot. So, when you go offline, you put your fleet moving toward a far planet, keeping an eye to the hour of arrival, which would be an hour in which you are online.

Maybe a similar concept can be useful for you?

First and foremost, to work efficiently, asynch gameplay can work in one of two ways:

- 'Ticks' are rare, and players have a long period of time to issue orders for that 'Tick' (my current 4X game is based around this concept, with each Tick taking anywhere between 1 to 3 days, depending on how aggressive the game is set to be).

Doesn't this get boring very quick? Progress is rather slow so it will take days for anything meaningful to happen. Right?

I think your best approach to this is similar to that: consider that the player avatar is permanent, and has its own ability to 'act' and treat the player as an advisor. Whenever the player pops in, he gets to direct the priorities of what the avatar will do during the day(s). If you can/wish, abstract actual control of movement. Say ships take a while to move, allow the player to set the ship helm for a given port, but let the movement AI worry about what path to take. That way, the player pops in, says he wants to reach 'Port A', and logs off for a few hours/days until he has arrived at his destination.

If possible, include a few AI controls such as: what do I do if I encounter an enemy during this time? Should I engage or flee? (note that I'm making wild guesses since I'm not very familiar with your game concept).

That would require quite an advanced AI. Right now, players could order an army to march to the other side of a continent and with pathfinding it will find its way to that spot, but that's about as far as I can feasibly go. I can't imagine the coding horrors to program armies to engage other armies that are nearby without it being buggy or annoying to the player because it has engaged a superior army or didn't take into account any reinforcements etc.

Thanks for your response BTW.

A very popular browser game like ogame gives the player the chance to keep in a relatively safe state his goods for when he is not online. If you ever played ogame you know I'm talking about fleet save strategy.

In ogame your main resource is your fleet. If left on a planet it can be destroyed by an attacker, but if flying it cannot. So, when you go offline, you put your fleet moving toward a far planet, keeping an eye to the hour of arrival, which would be an hour in which you are online.

Maybe a similar concept can be useful for you?

This is exactly what I need but in a more medieval way. Putting armies inside cities and giving them a huge defense bonus would protect both the cities and the armies. Fleets should be able to hide in harbors. Thank for your reply.


Doesn't this get boring very quick? Progress is rather slow so it will take days for anything meaningful to happen. Right?

In this approach, every tick needs to be meaty: you need to have a lot to take care of during that turn.

I believe that a 15-30 mins "turn" everyday qualifies as a lot to do. Early turns tend to be much shorter, but game generally scales (1 turn per day for the first 15 turns for example).

It gives a more turn-based fell to the game, for sure, and it may not be for everyone, but I personally prefer this to hour-based ticks where I feel I don't have the ability to be in control of what happens.


That would require quite an advanced AI. Right now, players could order an army to march to the other side of a continent and with pathfinding it will find its way to that spot, but that's about as far as I can feasibly go.

Then give the player more control over it.

Set the moving as a series of player-set waypoints.


I can't imagine the coding horrors to program armies to engage other armies that are nearby without it being buggy or annoying to the player because it has engaged a superior army or didn't take into account any reinforcements etc.

Hm. I may not know enough about your design, but if your first instinct is that it is complicated and not that it's not fun, I'd reconsider. It seems fairly straightforwards to me (armies engaging automatically). Having coded something similar in the past, I didn't find it overly complex: the base system took me less than a day, and I polished it for a number of hours beyond that, but it hardly scales as something impossible?


This is exactly what I need but in a more medieval way. Putting armies inside cities and giving them a huge defense bonus would protect both the cities and the armies. Fleets should be able to hide in harbors. Thank for your reply.

Ah, a modern-inspired social-game-like then? There were a bunch of these on Facebook at some point during the last 5 years. You might want to look into Kixeye's games. They had a fairly popular game following that model (I can't remember the name, but it was a game about flottilas engaging one another in small coves/islands).

Sorry for the late response, I completely forgot to check the website for some reason.

Hm. I may not know enough about your design, but if your first instinct is that it is complicated and not that it's not fun, I'd reconsider. It seems fairly straightforwards to me (armies engaging automatically). Having coded something similar in the past, I didn't find it overly complex: the base system took me less than a day, and I polished it for a number of hours beyond that, but it hardly scales as something impossible?

Armies engaging by themselves is definitely not impossible, but it can definitely become complex if they have to check a lot of things like human players would do, otherwise they become easy targets and the feature actually does the opposite of what it was supposed to do.

Ah, a modern-inspired social-game-like then? There were a bunch of these on Facebook at some point during the last 5 years. You might want to look into Kixeye's games. They had a fairly popular game following that model (I can't remember the name, but it was a game about flottilas engaging one another in small coves/islands).

I mean that before a player goes offline, he garrisons his armies in his cities so that cities are protected by the armies and the armies are protected by the cities. This way an enemy won't be too vulnerable when he/she isn't online.

Some kind of 'while you are waiting' you do some effort/activity which optimises your controlled game assets(objects you control), which is independant of actions taken by other players upon those same assets.

If you put extra effort in while waiting (keeping you busy and interested) then the delay isnt as bothersome (and the longer your opponent takes is MORE the benefit to you)

Possibly some short minigame-like operations (which can be continued if interrupted) withing the game objects.

Probably subject to 'decreasing returns' so that the delay doesnt bend the advanatages too much for any player

Example - I have a widget Factory on the map and I can 'help' it to be built faster by doing X manipulations and once in operation I can 'help' it product a bit faster (my decision which is priority to apply MY attention too) for something I consider most critical OR give broader attention to multiple assets (objects) which will (because of decreasing returns) reap the most benefit for the effort I expend (in that delay waiting time).

Of course it requires an additional; internal mechanism for the 'objects' to be (graphically) presented and interfaced with (managed0

-----

Myself I always did wonder how well the 'online' versions of some games (like Civilization) actually worked when it took so long for 'your turn' to come back around again. I never did play them to find how they solved the 'sit and twiddle your thumbs' part of thatmechanism or what measures they took to prevent players from monopolizing the time (taking a long time to do THEIR turns) -- for games that arent long delays like the old postal games (which had a fixed weekly schedule)

--------------------------------------------[size="1"]Ratings are Opinion, not Fact

You wrote "multiplayer" in the title but in the post you described everlasting MMO. These are different beasts, you design them completely different way (they almost have nothing in common).

Generally there are 3 categories:

1) Multiplayer - played by up to 16 players typically, everyone start at the same time, everyone (more or less) ends at the same time (example: http://planets.nu/ )

2) MMO with resets - played with minimum hundreds players, anyone can start anytime but since ther game has reset the competitive players usually start at the beginning of the era/reset, it has high score of soem sort arter era/round ends (example: http://www.lordsgame.com - my game smile.png)

3) everlasting MMO - played with minimum hundreds players, anyone can start anytime but the game never ends and there are tons of old powerfull players, extremelly hard to balance long term (example: http://europe1300.eu - my game smile.png)

(note: one day I will be able to put my games in all 3 examples, you will see biggrin.png)

Which one are you trying to make?

Stellar Monarch (4X, turn based, released): GDN forum topic - Twitter - Facebook - YouTube


Now that I'm starting to playtest my game for the first times I'm starting to get worried of the nature of my game. One concern is that players have to wait a lot because there's only so much things they can do before they have to wait for an update. But my main concern is that players will be punished for not being online. If a player wakes up and half his empire is conquered it would be enough for that player to never play a game again.

You have two things in conflict here. If there is an advantage to being online (e.g. more actions), then those who are offline clearly lose this advantage. I don't think there is any way to avoid making a fundamental game design choice here. However, just because the game-play must make a clear choice here, doesn't mean you cannot address the corresponding issues that arise in another way.

If your game "update" loop is infrequent, you can address the "boredom" issue in other ways, as mentioned by allowing each player to participate in multiple game instances against different players. More than just allow them actually, encourage them by building an appropriate way to manage their ongoing games and to switch between them. The more engaged players can have plenty of simultaneous games to keep them satisfied even if some games might be against more casual players who only participate once or twice a day.

Another idea might be to allow the players to specify the update rate as they start a game instance. You might even cater for this in matchmaking, where players are pitted against players with similar usage patterns (e.g. similar timezones and desired update frequency).

If you're update rate is frequent, to avoid punishing casual players perhaps an idea might be to allow each empire to be managed co-operatively. So for example you could allow several casual players jointly control an empire against a more engaged player. This could allow the game to progress much faster than if each player had their own empire, and opens some interesting social opportunities.

Another idea might be that each game instance could have have a dynamic update rate, where for a number of hours a day a particular game is in a higher intensity mode, but for the rest of the day the rate is drastically reduced or even paused while the majority of players are elsewhere (e.g. work or sleep, again timezones pose an interesting problem). Even just allowing the participants to pause the game until an agreed time has similar benefits.

Obviously, some of these ideas might only make sense as the numbers of users increases, at the start you might not have enough users to sustain such options.

You could go the route some of the old BBS games took. Give them so many actions per unit of real-time. This could be 100 per day, or 4 per hour, or anything that makes since for your game. You might also want to cap these stored actions up a maximum of a few days worth. That way someone who plays a lot gets a little bit of an advantage, but someone who plays every couple of days isn't hurt too much.

For armies/battles, they could be inherently slow. If I send my army to attack you on Monday. They're in transit on Tuesday (so you have 1 day to react to it) And then the battle plays itself out on Wednesday.

EckTech Games - Games and Unity Assets I'm working on
Still Flying - My GameDev journal
The Shilwulf Dynasty - Campaign notes for my Rogue Trader RPG

This topic is closed to new replies.

Advertisement