agtors / agtors/agar.core

Seamless world game

オープン
#7 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
question
主要言語
Scala
スター
2
フォーク
0
PR マージ指標
30日以内にマージされた PR はありません

説明

## Seamless world game

How do we create a game server that permits unlimited freedom of movement and game play on an expansive map with no apparent boundaries?
We can Implement a variant of the _Map-Centric Game Server_ pattern that subdivides the world map into smaller region maps distributed across a uniform grid. Each region will be manage by a `ActorSystem`.

`ActorSystem` servers manage region maps and control all game behavior that occurs on them. Each region map occupies a single cell of the large uniform grid that comprises the entire virtual world map.

## Moving Between Maps

To support moving player characters across region map boundaries, we’ll need to:
- `ActorSystem` need to know each *other* and know their location (maybe they need to know only the neighbor)
- An actor should be responsible to move actor in a another system.
- Implement support for serializing the player character and all relevant game state

![](https://i0.wp.com/gameserverarchitecture.com/wp-content/uploads/2016/03/seamless_world_game_server_pattern_boundaries.png?ssl=1)

## Seeing Across Boundaries

To support the ability for players to see game objects across region map boundaries:

- Enhance the server visibility system to include game objects on a map adjacent to the player character’s current map that should be visible to that character. This is the subsystem that determines which game objects are visible to each other.
- This means that the area server for each region map must send position, orientation, and state update messages to the area servers of adjacent maps when game objects are within some visibility threshold of a region boundary.
- In turn, these adjacent area servers must track these remote game objects in its visibility graph as if they were local, but located beyond the normal map extents.

## Game Play Across Boundaries

1. Implement support for sending game events initiated by a player character or resource on one region map to actors on an adjacent region map’s area server. You must use the virtual actor #10 .

2. the scope of work here could range from player kill another to actor consume a resource.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。