jueves, 2 de junio de 2011

Random Board Generator

When a game is started, part of the systems responsibilities is to generate a board on which players can play.

The generation of the board is not trivial as it sustains the game play and thus must facilitate a grateful experience from a players point of view. Generating boards that don't resemble a normal world on which cells are just put randomly so that a player can not move naturally in the terrain where he is put would end up meaning a frustrating experience for the player.

Thus it is important to somehow imitate the world we are living in so that continents exist, together with some islands. It is also important to generate certain group of cells in a uniform way, so that e.g. desserts don't border green cells.

When constructing a random board, we should have the following elements in place:
  • Climate: climate will dictate which kind of cells are more likely to appear in certain areas.
  • Tectonic plates: so that these dictate the latitude of the cell and thus the probabilities of being a water, normal or mountain cell.
These two elements should be combined in order to produce a realistic game board.

Main Game Play Mode

The primary gameplay mode in mPango is based on organization of units across the landscape of the territories controlled by the player. On this gameplay mode the player will be able to see an isometric perspective of the map on which she has the units deployed as well as the different cities and other useful information.

On this gameplay mode the player will be able to perform the following actions:

  • Interact with units:

    • Perform actions on own units: depending on the unit, the player will be able to perform different actions (attack, force, move, sleep, harvest, mine, construct, etc...).

    • Interact with other players by clicking on their units: establish a chat window, kick units out of their own territory, browse unit information (such as experience, number of different units per cell...)

  • Switch to other gameplay modes:

    • Diplomatic Gameplay Mode: by clicking on the diplomacy icon on the screen.

    • Economic Gameplay Mode: by clicking on the economy icon on the screen.

    • Science Gameplay Mode: by clicking on the science icon on the screen.

    • Militar Gameplay Mode: by clicking on the militar icon on the screen.

    • City Gameplay Mode: by double clicking on a specific city on the map.

  • Browse information from the map (such as resources, other players visible units and cities...).

On this gameplay mode the user will have available the most important information which includes:

  • Events that have happened as a result of the turn passed.

    • New citizens available.

    • New technologies available.

    • Cancelled agreements.

    • Start and end of wars.

    • Citizens killed.

  • Chat window in order to talk to other players.

    • There will be a general chat window for all players.

    • Players are free to create chat rooms (with password protection if wished) in order to communicate among them.

    • Players can anytime contact another player and have a one-to-one chat window with her.

  • Unit information in case a unit is active.

    • Experience points.

    • Life.

    • Weapons and Shields.

    • Cargo.

    • Tools.

  • City information about the activities taking place in the city.

  • Important global numbers such as population, food, resources...

domingo, 15 de mayo de 2011

Science Module - Part 1

The corner stone of the science module is the technology. A technology is what enables someone who owns it to produce certain units, constructions, enable political, commercial, diplomatic or economical features. In order to obtain certain technology a user must spend a defined amount of science points and have discovered all the prerequisite previous technologies.

A single technology can bring changes on different areas, for example Industrialism can provide with a new construction called fabric, a new political regime such as socialism, a new unit such as engineer.

At the end of each turn, a player will obtain a number of science points based on the following considerations:

- Number of citizens that the user has dedicated as scientists.
- Constructions dedicated to science (Schools, Universities, Laboratories, etc.)
- Taxes dedicated to science budget.
- Collaboration programs with other players.

The number of science points will be available for the user to assign them to the available technologies, so that if the user reaches the required number of science points for a technology, this becomes available.

Another way to obtain a technology is by sharing technologies with other players. Once a certain level of diplomatic relation among players as well as certain diplomatic technologies are available, players are allowed to exchange technologies in between them or even sell them for money.

Certain technologies can be patented, so that the first player that discovers them is the only owner of the technology and can ask for a license payment to other civilizations. This can happen among those players that reach certain level of understanding in commerce terms and belong to the same commerce and trade agreement.

Players can also steal technologies from other players by using the espionage module (milestone 2?).

lunes, 9 de mayo de 2011

The Board - Part I

A board is probably the corner stone of any strategy game and as such must be considered in the initial phase of the project. Let's try to enumerate the considerations we must comprise in order to sucessfully implement a board for the game:
  1. A board is a two dimensional matrix composed by rows and columns.
  2. The board must not have boundaries.
  3. Each unique combination of row and column is called a cell.
  4. A cell can hold different items: units, cities, resources, etc...
  5. A cell is surrounded by other cells with which it communicates.
  6. The board must be updated after every turn.
Let's try to ellaborate further on these topics so that we can get a clearer picture of what needs to be implemented.

  • A board as a two dimensions matrix
Basically what we are saying here is that the board of the game will have a set of cells arranged in rows and columns. Depending on the number of players the size of these two might differ. We will need to find the right proportions for the different number of players as well as for the resources we can count on for the development of the game. Taking into account that the total number of cells is the product of rows times columns, making either number too big will definitely have an impact on ammount of resources needed to calculate each turn.

  • The board must not have boundaries
The last cell of a row is followed by the first cell of the same row. The last cell of a specific column is followed by the first cell of the same specific column. The reason for this is to avoid having incommunicated spots that are apart from the rest of the board, making them unplayable for players that land on them.
  • Unique combination row and column = cell
This is basically a step forward from the previous definition. So we have a board that is divided into rows and columns, so that a cell can be expressed as an specific row and an expecific column. This also means that there are no two cells that are equal in the board (they can share the same attributes but they will still be account as different elements).

  • A cell can hold different items
As in every board game, cells are there so that we can put items on them. At this very moment I can think of units, resources and cities (this last one probably holds more than one cell). This means that a cell is a container for other objects of the game. At the moment this definition is good enough, but it will need more development in order to make the game interesting.

  • Cell communication.
A cell is communicated to the neighbor cells. This is important for things such as unit movement, resource harnessing or other related issues. It is also important to note that a cell is not isolated from other cells and events happening on neighbor cells might have a reaction on the cell.The board must be updated after every turn.
  • The board must be updated after every turn.
After each turn (or after the last player's turn), each cell of the board must be updated with the movements and changes that the game is producing. This leads us to the next element to be discussed and that will be the next article of this blog: the turn engine.

domingo, 8 de mayo de 2011


First of all, let us express a warm welcome to this project and encourage you to read along these lines so you get an idea of what to expect from mPango.

Secondly, we must advice you that this project is still being planned and all work needs to be done. Few code has been submitted by our first committer. This means that there is still plenty of space to cover, and if you were considering joining an Open Source project of the same nature as mPango, you should consider that this is the best moment as you could become a key player in the project.

There are some ideas of what is to be done but, as we are in the initial phase, there is still lots of things to discuss and decisions to be made.

What we know: this project is an open source web based strategy game that will most like be turn based. We have all played games like Civilization, Sim City, Age of Empires, Star Craft and so on. All those games are initially thought to be a 1 player experience type of games, but the richness of the functionality in them makes them candidates for the type of game we want to develop in this project.

Web technologies enable thousands of humans to interact in various forms. This project will leverage those same technologies that are available nowadays to create the best multiplayer (or should we say massive player) interactive game possible. We have to be realistic about the scope of the project and the limitations that the very nature of an open source project have. This probably means that it will be a lost cause to have a state-of-the-art front end with 3D graphics and astonishing sound effects. It also means that multimedia goodies as well as other features only private funded projects might have will not be present for some time.

Nevertheless, we all know how fun it can be to play a Risk board game, Monopoly, Hotel or any other game on which strategy, luck, persistence and intelligence come into play with the clear objective to beat the rest of the players. And this means that as long as we can provide a functional simple to use game on which players can develop their strategies in a fun way, we can provide some value with the project.

Time is a limitation that everybody has to live with and in the beginning the time we use for the project will be a gift for the sake of it. If things go well and we are capable of having an stable version of the game, we are determined to launch a server so that end users can use it.