Is it possible to make a true "massive" battle game?

Started by
21 comments, last by jefferytitan 10 years, 1 month ago

Is it truly possible to design a big battle game?


Of course.
Anything is possible, except time travel to the past and the Star Trek holodeck.
Your "big battle game" would be easier to design than to implement, as you already experienced.

I should clarify that I am aiming for a simple browser text-based like http://www.urbandead.com/.

The programming is pretty much done. Server-side: node.js, socket.io and etc. Client-side: HTML5 canvas, using socket.io to communicate with the authoritative server.

I was thinking if I could design a game around this simple setup. I didn't mention these at first because I wanted general inputs and ideas from different genres and types of games.

Advertisement


I should clarify that I am aiming for a simple browser text-based like http://www.urbandead.com/.
The programming is pretty much done. Server-side: node.js, socket.io and etc. Client-side: HTML5 canvas, using socket.io to communicate with the authoritative server.
Sockets? You are trying to kill a fly with a cannon. Something like UrbanDead is done with trivial HTTP. Unless you plan some realtime stuff (which can be probably also done via AJAX). Anyway, I can't recall meeting any fellow pbbg dev who would be using sockets (directly), maybe except for some chat script. Generally, just download a script of one of these games, it should make it more clear how these are done (I feel that you are trying to approach it as if you were making a full blown 3D MMORPG while the sufficient approach is to make it like a sophisticated HTML website).


In Strongholds the player, sooner or later, will be needed to join a house, and later a faction. From then on, he and his faction will fight to conquer and control as much of the country as possible, in a contest with other houses and factions. From that point, the real game starts. The game was DESIGNED to be played by the factions, by communities. Also, by using the vote system for control of the parish, even new players will feel like they can contribute and will commit to the game.
Sounds interesting, can you write something more about this setup (the relation of houses to factions and those parishes)?

Also, can you drop a link (there are several Strongholds, I'm not sure to which one you refer to)?

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

I should clarify that I am aiming for a simple browser text-based like http://www.urbandead.com/.
The programming is pretty much done. Server-side: node.js, socket.io and etc. Client-side: HTML5 canvas, using socket.io to communicate with the authoritative server.

Sockets? You are trying to kill a fly with a cannon. Something like UrbanDead is done with trivial HTTP. Unless you plan some realtime stuff (which can be probably also done via AJAX). Anyway, I can't recall meeting any fellow pbbg dev who would be using sockets (directly), maybe except for some chat script. Generally, just download a script of one of these games, it should make it more clear how these are done (I feel that you are trying to approach it as if you were making a full blown 3D MMORPG while the sufficient approach is to make it like a sophisticated HTML website).


Well...yes, Urband Dead is trivial HTML/PHP/MYSQL. But that results in severe limitations with the game design. E.g. you need to refresh the page to see if someone attacked you. Not having real time combat really irks me. IMHO AJAX is kinda a round-about way to make real time work. Why not just use socket.io? I am running node.js as my backend anyway, so its a natural fit. I tried AJAX before and found it incredibly complicated to work with compared to socket.io. This probably just boils down to individuall preference.

My initial approach was to make something like Pardus and Zombie Pandemic in real time. But my day job takes up too much time for me to finish programming all the details of an RPG or hire artists. And I really want to put a game out there to get some experience running a node.js/socket.io PBBG. So I thought to cut my development short and design a game around what I have really done: dump all the players on a large grid based map and have them fight each other in a two sided war.

(I feel that you are trying to approach it as if you were making a full blown 3D MMORPG while the sufficient approach is to make it like a sophisticated HTML website).


Actually, I am really curious why you feel that I am trying to approach it as if I were making a full blown 3D MMORPG.

Because node.js + socket.io + mongoDB + HTML5 Canvas is a natural replacement/upgrade for Apache + HTML + PHP + MySQL that Urban Dead and traditional PBBG uses. But they have not ever been used for a full blown 3D MMORPG (and I don't think they are suitable). The only "HTML5" MMO I know of is Browserquest, and it is 2D.

Furthermore, a full blown 3D MMORPG would require working with a 3D engine, sophisticated server/networking, enemy AI etc. None of which I am even remotely considering or working on. It is really just real time Urban Dead and really very simple programming.

Actually, I am really curious why you feel that I am trying to approach it as if I were making a full blown 3D MMORPG.

Because node.js + socket.io + mongoDB + HTML5 Canvas is a natural replacement/upgrade for Apache + HTML + PHP + MySQL that Urban Dead and traditional PBBG uses. But they have not ever been used for a full blown 3D MMORPG (and I don't think they are suitable). The only "HTML5" MMO I know of is Browserquest, and it is 2D.
No, it sounds OK now. I thought you were making UrbanDead and trying to learn sockets on the way (which would make no sense). But if you make it like Pardus and already know sockets it's another story.

A few technical notes:

* The setup you use is very rare, definitely not a natural upgrade for PHP+MySQL (I know several BG devs and never heard of anyone using such combo :D), but again I move around text/static 2D "PBBG scene").

* Another thing, about the mongoDB and other NoSQL databases. Yes, it's true most websites can benefit from NoSQL since these are basicly reads. But BBG is a special case. Concurrency and writes are your major problem. For this you *really* want a full blown relational database (MySQL). NoSQL is a downgrade for a browser game.

It's a very common misconception, mostly because NoSQL is simply better for 99% of cases and it should and will replace MySQL over time. The whole problem is that browser games are the 1% where it's inferior :)

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

No, it sounds OK now. I thought you were making UrbanDead and trying to learn sockets on the way (which would make no sense). But if you make it like Pardus and already know sockets it's another story.

A few technical notes:
* The setup you use is very rare, definitely not a natural upgrade for PHP+MySQL (I know several BG devs and never heard of anyone using such combo biggrin.png), but again I move around text/static 2D "PBBG scene").
* Another thing, about the mongoDB and other NoSQL databases. Yes, it's true most websites can benefit from NoSQL since these are basicly reads. But BBG is a special case. Concurrency and writes are your major problem. For this you *really* want a full blown relational database (MySQL). NoSQL is a downgrade for a browser game.
It's a very common misconception, mostly because NoSQL is simply better for 99% of cases and it should and will replace MySQL over time. The whole problem is that browser games are the 1% where it's inferior smile.png


Ah, I see. On top of my day job and this hobby, I also do a little bit of freelance web design (now you know why I can't finish the full graphical RPG lol). Node.js etc is "natural" in the sense that people seem to expect it to outshine the old setup. Yeah, its still very new technology and not many use it.

I chose MongoDB because there seems to be more support for it with node.js, than there is for MySQL. I got the DB externally hosted at MongoLabs. To be honest, I am not sure about the NoSQL vs SQL thing. So thanks for bringing it up. There really seems to be some concern, e.g. http://gamedev.stackexchange.com/questions/5316/nosql-is-it-a-valid-option-for-web-based-game. Will look into it.

Thanks for the input and discussion. The web developer in me wants to talk more about this but we should get back to the design aspects.

So, thanks to everyone's input, I have a rough draft of the game. It is really bare bones right now: basically Urban Dead, without the zombies, only players running around. Instead of one city, I split it into several mini-cities (free instant travel between them) to reduce spread people out and might put caps on the max no. of players in each mini-city in the future.

Its real time, but combat is less hectic than Urban Dead: attacks are not instantaneous. There is a short (1-2 seconds) lag before it goes through, to allow players time to think and react. Right now there is nothing else except the basic "attack" function.

Now, the question is: What are the key features that make a "massive" battle game fun? What would compel people to play this genre?




In Strongholds the player, sooner or later, will be needed to join a house, and later a faction. From then on, he and his faction will fight to conquer and control as much of the country as possible, in a contest with other houses and factions. From that point, the real game starts. The game was DESIGNED to be played by the factions, by communities. Also, by using the vote system for control of the parish, even new players will feel like they can contribute and will commit to the game.
Sounds interesting, can you write something more about this setup (the relation of houses to factions and those parishes)?

Also, can you drop a link (there are several Strongholds, I'm not sure to which one you refer to)?

Certainly. First the link:

If I'm not mistaked this is the main site: http://www.strongholdkingdoms.com/

However, to be certain it is worth noteing that the game is available through steam:http://store.steampowered.com/video/248160?snr=1_5_9__400 (the game is free, this is a link to a starter pack aka: premium buy)

Now for the Houses and Parishes system:

http://help.strongholdkingdoms.com/index.php/Parishes_%26_Capitals (official wiki)

Basically the world( on the first world made playable the whole of UK) is split into Countries( England, Ireland, Scotland, Wales)

Each Country is split into Provinces
Each Province is split into Countys

Each County is split into Parishes

Each Parish has about 6-8 player controlled cities.

Now for the House System:

http://help.strongholdkingdoms.com/index.php/Factions_%26_Houses

Each Faction(basic guild/alliance) can and should belong to a House. Mostly anyone with a high enough rank can make a faction.

A House is made up from an alliance of Factions. There is a set number of Houses in the game, who fight to win a round.

BONUS: Due to the low population at the start of the game, the players developed a higher faction rank, which was not expected or designed into the game by the devs: Basically an Alliance of Houses, and firstly an "exploit", or better yet said, a PLAYER-MADE-MUTATION of the basic SYSTEM of the game, it's a spoken agreement between houses to "team up" and go for the win togeter, picking turns for each member to win.( Each round a different House in the alliance gets the win), DOUBLE BONUS: As you can imagine, this turned the game into a fun, toned down "Game of Thrones"-like battle, full of betrayals and deceit and stuff.

Now, for the politticall system: Each Faction earns a number of points, generally from having control over parishes and provinces, coutnries, etc... the bigger the piece of land, the more points they get. A House's points is gatehred by the total of each of it's faction's points.

Now: Each Player gets to vote for the Steward of his Parish->

Each Steward of a parish can vote for the Sherrif of a County->

Each Sherrif of a County can vote for the Governor of a Province->

Each Governor of a Province can vote for... yes, you guessed it, the King.

And that's pretty much"the gists of it" however, the game is filled with little design gems that merit exploring and analizing. If you really want to make such a game(masssive player base-dependent), I'd suggest exploring it, playing it for a couple of days. It's fun, trust me. However, if there was a design flaw, it'd be that it's really complex. It takes a while to fammiliarise yourself with the whole system, which can take a lot of wiki-reading.

Thats interesting. In Stronghold Kingdoms, is it possible (and has it ever occurred) that one side "wins" and conquered everything? Or is the game made in such a way that the war is perpetual and cannot be won?

Thats interesting. In Stronghold Kingdoms, is it possible (and has it ever occurred) that one side "wins" and conquered everything? Or is the game made in such a way that the war is perpetual and cannot be won?

Theoretically, yes, it can be done, as any player can conquer any other player's city and vote.

Practically... mmmhhmm, really not likely. Perhaps the devs thought of that(players going way to overpowered), so they introduced the concept of Rank. Now the rank is pretty much what you can guess, You start from a Serf ( If I remember correctly), then work your way up to nobility. Each rank upgrade comes with its benefits. Each rank has a maximum allowed cities the player can control. Also, a player, to be eligeble to vote at all, reqires a certain rank. The higher the vote value, the higher the rank required.

However, after the player reaches max rank, he can still "upgrade" his rank in order to be able to build/control more cities, albeit a very expensive ordeal. And with the existance of city armies, and parish armies( players and parishes have different armies, and different walls, and each can be conquered/sacked individually, however a player cannot gain control of a parish by force of arms.

However the main reason this doesn't happen is built in the core design: The game is dependent on a huge player base( as I stated before). And, due to its huge player base, and its accent on Houses, the game is balancing itself out. There is simply a bit too much to conquer, too many to fight on all fronts if you want to win. Also, the game provides some other points systems you need to guard and keep in check:

For example, Parishes own a flag. Each Parish starts of with a flag that can be "stolen" by force of arms( but not the control of a parish, which can only be taken by eligeble vote.) And flags, besides their role in strategic buildings building in the parish(ordered by the steward)((Each parish has its own buildings which provide both army space for it and production bonuses for its cities.)), provide a great deal of points. In that sense, a House with more territory might lose the round for having been outscored by another one, which, for their lack of land, made up in flags, and other points.

A player can actually be "wiped out" loosing all his cities and armies. He retains his rank, but can't really play in the round anymore. When that happens, the players points do not drop suddenly, and the fation does not suffer a point decrease, for as long as that player is still aprt of it. So player must be careful to not lose at least one city.

There's also the always-existent resource race. There are many types of resources in the game, which cannot be exploited everywere, and there is a built in system for trading and using ( for example in training troops) of those resources. Players need to be attentive on that aspect as well.

It must be said though that each round is of a fixed lenght. The winning House is the one with the highest score at the end.

And the list goes on and on... Therefore I do not know of any House to reach such a complete victory, yet I may be mistaken, as I haven't played the game in a while.( It is quite lenghty)

This topic is closed to new replies.

Advertisement