added to ssh server
8
Constraints.md
Normal file
8
Constraints.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Constraints
|
||||||
|
This is a table of constrains / user requirments to make this game function.
|
||||||
|
|
||||||
|
## Terminal
|
||||||
|
| Name | Constraint |
|
||||||
|
|:----:|:-----------|
|
||||||
|
| Terminal Size | 160x70 |
|
||||||
|
| Font speck | UTF8 |
|
||||||
@@ -12,6 +12,18 @@ So, doing some research on how this. The best concolusion for this is a
|
|||||||
transactional server. This means that it is more about "playing cards" then
|
transactional server. This means that it is more about "playing cards" then
|
||||||
then like updating a game for a fps or something.
|
then like updating a game for a fps or something.
|
||||||
|
|
||||||
|
These transactions can range between:
|
||||||
|
- Entity List Transactions
|
||||||
|
- Entity Transactions
|
||||||
|
- Map Transactions
|
||||||
|
- Player Transactions
|
||||||
|
|
||||||
|
All transactions are just packets that get sent to the client to the server or
|
||||||
|
vice versa. A tranaction is anything that needs to be synced between the client
|
||||||
|
and the server. A good example on how this looks is like a command structure.
|
||||||
|
If an enemy wants to attack a player it will make a **attack transaction**.
|
||||||
|
This transaction will be sent to the client to perform this action.
|
||||||
|
|
||||||
## Transactions on a packet level
|
## Transactions on a packet level
|
||||||
I was doing some thingking about the transactional system and it's like playing
|
I was doing some thingking about the transactional system and it's like playing
|
||||||
cards. As you place a card and it gets checked if the card is possable to play.
|
cards. As you place a card and it gets checked if the card is possable to play.
|
||||||
@@ -19,17 +31,33 @@ Then if so, then, relay that command to the other clients. And now what dose tha
|
|||||||
look like on a packet level.
|
look like on a packet level.
|
||||||
|
|
||||||
```packet
|
```packet
|
||||||
|
|
||||||
|
# entity transaction
|
||||||
int id, int action, int argSize, args....
|
int id, int action, int argSize, args....
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
So for every entity this is what the packet looks like.
|
So for every entity this is what the packet looks like.
|
||||||
|
|
||||||
The packet consists of a id, action, argSize, and args. The id is refferanceing
|
The packet consists of a id, action, argSize, and args. The **id** is refferanceing
|
||||||
the **entity** id on the server. *This id is reflected on the clients*. The
|
the entity id on the server. *This id is reflected on the clients*. The
|
||||||
**action** is is the action id of that entity. This could be a attack command.
|
**action** is is the action id of that entity. This could be a attack command.
|
||||||
or just a simple move command. But all the server dose is just prosses these
|
or just a simple move command. But all the server dose is just prosses these
|
||||||
transactions see if they are valid, then, relay the transactions to the other
|
transactions see if they are valid, then, relay the transactions to the other
|
||||||
clients.
|
clients.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Transaction Path
|
||||||
|
This is the path of transactions that need to accure for everything to run
|
||||||
|
properly.
|
||||||
|
|
||||||
|
```
|
||||||
|
Server <map data> -> client
|
||||||
|
Server <entity data> -> client
|
||||||
|
Client <entity data> -> Server
|
||||||
|
```
|
||||||
|
|
||||||
|
The Server needs to accept and send entity data.
|
||||||
|
The Client needs to accept and send entity data.
|
||||||
|
The Client needs to accept map data from the server.
|
||||||
|
|||||||
Reference in New Issue
Block a user