Jose Alejandro Gómez Castro
5 min readMay 29, 2018

--

CHESS KING (Online Multiplayer Strategy/Rol Game) IDEA

Diagram Design of a Online Multiplayer Game o f Strategy / Role based on components and data centralization.

“A closeup shot of chess board game pieces at a restaurant in Rotterdam” by Maarten van den Heuvel on Unsplash

Game of Role and Strategy (PC and Google Chrome)

Local: 1 Player | Online: Multiplayer

Description: In 1955 Martin Luther King is positioned against the civil rights movement of African Americans and develops a war against racial segregation in the southern United States, the game is won by avoiding the assassination of the twentieth century (the death of Martin Luther King) in Memphis, Tennessee on April 4, 1968.

Rules:

  1. Characters can choose between several game styles: (Chess, Checkers, Sudoku, Domino, Checkers, Mahjong, backgammon, Tic tac Toe, ..)
  2. The characters will be limited to the characteristics and behavior according to the style they choose (only for battles).
  3. The battle scenarios will be boards adapted to the style.
  4. There is only one world of custom size: B (big) — M (med) — S (small).
  5. The games have a time limit (param).
  6. The games have a maximum of clans (param).
  7. You can ally with other clans for a common reason.
  8. You must make decisions, answering specific questions throughout the exploration to gain allies.
  9. The exploration allows the development of skills finding allies NPC’s.
  10. Exploring you will find chess tips to prepare your strategy.
  11. The characters of each side will take the characteristics and the behavior of the chess pieces (only the positions) to give them versatility of strategies and to captivate the attention of the user throughout the development of their plans of attack and war games between clans
  12. The game is developed based on exploration to raise resources and strengthen the clan to win the table strategy battles against enemies.
  13. The battle is developed as a chess game limiting the attack positions depending on the positions allowed by the regulation, however the result can be varied with respect to the attack power and residual life of the characters in conflict.
  14. Clan characters can obtain weapons and potions to increase their attack power and vital defense.
  15. Natural disasters affect the state of the game.
  16. The groups are divided into player, clan, club, community.
  17. The player can evolve his attack power by learning new techniques to potentiate his strategy and more power by getting weapons or tools.

General Architecture (Patterns)

  1. Client / Server
  2. Micro services architecture

High level system

Scripting System (config of initial behavior)

The scripting system allows modeling easily the logic of the game, for example the “static” behavior of the NPC’s in the exploration and the main world, without the need to recompile, hierarchically modulating aspects or details of the game in question, in some cases the engines of the game allow it to remain in operation at the same time a new script is loaded, this allows to centralize static functions of the game. The AI ​​functionality of the NPCs and the enemies in the strategic battles between clans will be added in external components according to the version of the game, allowing the scalability and flexibility of the game.

Components diagram.

The interaction between the different subsystems of the software is specified on this diagram.

Classes diagram.

Design and implementation (Patterns)

  1. Fly-Weight (Scenario, Objects).
  2. Singleton (Player Player).
  3. Factory (Items).
  4. State (Character characteristics, Agent-based simulation).
  5. Adapter (Controls, Mods).

Fly-Weight pattern

The Fly-Weigth pattern comes to solve the problem of creating large quantities of objects, to store these objects without a large memory cost, it relies on objects that store the shared (intrinsic) states that can be used by several objects simultaneously, this reduces in large quantity the weight of the data in a server. Its purpose is to eliminate the redundancy that occurs when having a large number of objects that contain identical information, in addition to achieving a balance between flexibility and performance (trying to be more efficient using the minimum resources necessary to reduce the use of RAM).

When it comes to searching, it consumes a little more time, however, the saving of storage depends on how many instances can be reduced, this means that not applying the pattern, would increase storage costs and when applied would increase the cost depending on of the execution time.

Patron Adapter

Using the Adapter pattern it is possible to create a new access interface to a specific object, so it provides a mechanism of adaptation between the demands of the client object and the server object that provides the functionality.

References

agentes.wordpress.com. (n.d.). agentes-inteligentes-y-videojuegos.

David Vallejo Fernandez, C. M. (n.d.). Desarrollo de videojuegos — 2da Edicion : Arquitectura del Motor de Videojuegos.

Erich Gamma, R. H. (n.d.). Patrones de Diseño: Elementos de Software Orientado a Objetos Reutilizable.

Media, O. (n.d.). Software Architecture Patterns.

To know more about this project/idea, you can write to the e-mail, josegomez.dev@gmail.com, we would have to speak directly to carry it out.
I start this model in 2016 for the “Components” Course in Cenfotec.

By the way... I still find it a completely exciting project.
Let's Build Together!

Feel free to leave a comment!

--

--

Jose Alejandro Gómez Castro

Creative technologist, Modern Javascript Software Engineer & Musician 🤠