Создание игрового сервера

Сеть в Unity3D

Re: Создание игрового сервера

Сообщение Golandez 25 авг 2013, 19:33

Node.js+ Socket.IO
Ты нужен только тогда,когда нужен.(С)
Сказать спасибо
Аватара пользователя
Golandez
Пилигрим
 
Сообщения: 1637
Зарегистрирован: 06 авг 2009, 13:55
Откуда: Харьков
Skype: lestardigital

Re: Создание игрового сервера

Сообщение Sality 27 авг 2013, 22:23

Что такое по сути своей сервер? Это модуль отправки принятия пакетов. И модуль (пул) потоков. Все. Далее идет разбор пакетов по вашему личному протоколу и реализация игры. То есть сам движок сервера пишется за неделю, а если уже писали, то за пару дней. Все остальное это реализация игры, а она может быть ооооочень сложной, так что вы не путайте ядро сервера от игры. Тутор писать нет смысла, так как само ядро уже написано и переписано миллион раз.

Если вы хотите научится сами, берите самую простую игру и пишите к ней сервер. Потом вторую игру, ну а дальше вы сами все поймете как действовать дальше.
Аватара пользователя
Sality
Старожил
 
Сообщения: 771
Зарегистрирован: 26 ноя 2011, 15:31
Откуда: Украина

Re: Создание игрового сервера

Сообщение v.bykovskij 02 сен 2013, 12:10

Может подскажет кто где есть простые примеры со связкой unity+node.js, уже неделю мучаюсь(
п.с помелу уже нашёл, но не смог запустить [curved_hands]
v.bykovskij
UNец
 
Сообщения: 5
Зарегистрирован: 16 сен 2012, 21:40

Re: Создание игрового сервера

Сообщение Golandez 02 сен 2013, 21:22

https://github.com/NetEase/UnitySocketIO раздел API, скачайте библиотеку, посмотрите, код довольно таки понятный, библиотека с пасхалкой(не даст по дефолту прочесть эвент на клиентской стороне). К node.js установите модуль socket.io. Шлются/ принимаются как мессаги, так и эвенты.
Ты нужен только тогда,когда нужен.(С)
Сказать спасибо
Аватара пользователя
Golandez
Пилигрим
 
Сообщения: 1637
Зарегистрирован: 06 авг 2009, 13:55
Откуда: Харьков
Skype: lestardigital

Re: Создание игрового сервера

Сообщение v.bykovskij 03 сен 2013, 11:59

да её я уже видел, пытался сделать по примеру

Синтаксис:
Используется csharp
Client client = new Client(url);

client.Opened += SocketOpened;
client.Message += SocketMessage;
client.SocketConnectionClosed += SocketConnectionClosed;
client.Message +=SocketError;

client.Connect();

private void SocketOpened(object sender, MessageEventArgs e) {
    //invoke when socket opened
}
 


но в итоге юнити ругается почти на все переменные + эта библиотека не компилируется под веб плеер(
v.bykovskij
UNец
 
Сообщения: 5
Зарегистрирован: 16 сен 2012, 21:40

Re: Создание игрового сервера

Сообщение seaman 03 сен 2013, 12:33

Пространство имен подключили?
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Создание игрового сервера

Сообщение Golandez 03 сен 2013, 14:43

Кроме ddl- ok в проект нужно положить папку со всеми скриптами из архива. Подключить пространство имен SocketIOClient и SocketIOClient.Messages
Ты нужен только тогда,когда нужен.(С)
Сказать спасибо
Аватара пользователя
Golandez
Пилигрим
 
Сообщения: 1637
Зарегистрирован: 06 авг 2009, 13:55
Откуда: Харьков
Skype: lestardigital

Re: Создание игрового сервера

Сообщение v.bykovskij 04 сен 2013, 07:19

Весь код

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using SocketIOClient;
using SocketIOClient.Messages;
       
public class clients : MonoBehaviour {

        // Use this for initialization
        void Start () {
                Client client = new Client("http://192.168.1.1/");             
                client.Opened += SocketOpened;
                client.Message += SocketMessage;
                client.SocketConnectionClosed += SocketConnectionClosed;
                client.Message +=SocketError;          
                client.Connect();      
        }      
        private void SocketOpened(object sender, MessageEventArgs e) {
                  //invoke when socket opened
        }      
        // Update is called once per frame
        void Update () {       
        }
}
 
У вас нет доступа для просмотра вложений в этом сообщении.
v.bykovskij
UNец
 
Сообщения: 5
Зарегистрирован: 16 сен 2012, 21:40

Re: Создание игрового сервера

Сообщение Golandez 04 сен 2013, 09:04

Покажите содержание в вашем проекте папки Plugins и пака скриптов, который шел вместе с библиотекой.
Ты нужен только тогда,когда нужен.(С)
Сказать спасибо
Аватара пользователя
Golandez
Пилигрим
 
Сообщения: 1637
Зарегистрирован: 06 авг 2009, 13:55
Откуда: Харьков
Skype: lestardigital

Re: Создание игрового сервера

Сообщение v.bykovskij 05 сен 2013, 06:09

я создаю пустой проект, поэтому мусор не должен был мешать.. может конечно ошибка спряталась в текущей сборке SocketIO
У вас нет доступа для просмотра вложений в этом сообщении.
v.bykovskij
UNец
 
Сообщения: 5
Зарегистрирован: 16 сен 2012, 21:40

Re: Создание игрового сервера

Сообщение v.bykovskij 05 сен 2013, 06:10

хотя скорее всего в моих руках [curved_hands] =_)
v.bykovskij
UNец
 
Сообщения: 5
Зарегистрирован: 16 сен 2012, 21:40

Re: Создание игрового сервера

Сообщение Golandez 05 сен 2013, 09:05

Найдите отличия со своим кодом и почитайте о сущности событий и подписке на них.
Синтаксис:
Используется csharp
public class clients : MonoBehaviour
{
        Client client;
        static string socketUrl = "http://127.0.0.1:7000";
       
        void Start ()
        {                              
                client = new Client (socketUrl);
                client.Message += SocketMessage;
                client.Opened += SocketOpened;      
                client.Connect ();
        }
               
        void SocketOpened (object obj, EventArgs messag)
        {      
        }
       
        void SocketMessage (object obj, MessageEventArgs e)
        {
        }
}
Ты нужен только тогда,когда нужен.(С)
Сказать спасибо
Аватара пользователя
Golandez
Пилигрим
 
Сообщения: 1637
Зарегистрирован: 06 авг 2009, 13:55
Откуда: Харьков
Skype: lestardigital

Re: Создание игрового сервера

Сообщение craw1er 11 окт 2013, 12:06

Golandez писал(а):https://github.com/NetEase/UnitySocketIO раздел API, скачайте библиотеку, посмотрите, код довольно таки понятный, библиотека с пасхалкой(не даст по дефолту прочесть эвент на клиентской стороне). К node.js установите модуль socket.io. Шлются/ принимаются как мессаги, так и эвенты.


А как можно прочесть и отправить эвент на клиентской стороне в UnitySocketIO?

client.Emit( "test", "test" ); - сервер никак не реагирует на такую отправку клиентом.

Если получать эвенты на стороне клиента, то e.Message.Event = null
Но в e.Message.MessageText можно получить текст сообщения, но его нужно парсить как-то самому: {"name":"message","args":[{"text":"6793","nick":"457"}]}
тут могло быть что-то умное
Аватара пользователя
craw1er
UNец
 
Сообщения: 41
Зарегистрирован: 14 апр 2009, 00:10

Re: Создание игрового сервера

Сообщение craw1er 02 ноя 2013, 08:00

Вобщем помимо того, что не работает эмит и прием ивентов на стороне клиента в UnitySocketIO есть серьезный косяк с большой нагрузкой на CPU.
тут могло быть что-то умное
Аватара пользователя
craw1er
UNец
 
Сообщения: 41
Зарегистрирован: 14 апр 2009, 00:10

Re: Создание игрового сервера

Сообщение Golandez 02 ноя 2013, 10:19

Эмит и эвенты работают, на CPU нагрузки нет(я такого у себя не ловил). Давайте разберем проблему на тестовом примере.
Ты нужен только тогда,когда нужен.(С)
Сказать спасибо
Аватара пользователя
Golandez
Пилигрим
 
Сообщения: 1637
Зарегистрирован: 06 авг 2009, 13:55
Откуда: Харьков
Skype: lestardigital

Пред.След.

Вернуться в Сеть

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3