Hi! I am trying to make simplest RTS game.
The question is: how to send the orders (classes or structures) to the server from a client and then back to all clients?
As it’s known, many of RTS games use so called command (order) based approach. Every unit has it’s own “order queue”, and we just put any given order for unit to it’s order queue and it starts to execute the orders in the queue.
In multiplayer game, I would like to send (synchronize) only the orders for units between server and players (instead of unit positions, health, etc). So a player sends an order to server and then server sends given order to other players and back to sender also. And then units start to execute given order on all clients simultaneously.
In my case an order is a class:
public class Order
{
public int orderType;
public Unit orderUnit;
// etc...
}
Notice please, orderUnit is a Unit class which derives from MonoBehavior and it represents the target unit in order. For example the unit that will be attacked.
Could you give some tips on how to send to the server complex data which include “pointers” to gameObjects which are instances of MonoBehavior class?
Or in general, how to implement this approach? In simple words, how can server say to a client: "Hey! Take unit “A”, and give him order “O”, and say him to cast a spell to unit “B”. How it could be implemented in UNet? Any common or practical tips will be very welcome ![]()
Thanks a lot.