ММО Сервер : Photon

Re: ММО Сервер : Photon

Сообщение Nolex 12 май 2011, 23:16

Пилю сервер Фотона. Нужно сделать паузу в определенном месте:

Вот пока сделал паузу через System.Threading.Thread.Sleep(25);
Синтаксис:
Используется csharp
private void HandleForStart(LitePeer peer, ForStart operation)
        {
            Log.Info("SLEEP");

            System.Threading.Thread.Sleep(2500);
            Log.Info("SLEEP25");

        }


НО, что-то похоже потоки как-то неккоректно работают, потому что во время того, пока идёт эта пауза, у меня подвисают другие события/операции.

Как еще паузу можно сделать? Подскажите пжл! :-?

p.s. Речь идёт именно о сервере фотона, оболочки юнити там нету :)
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: ММО Сервер : Photon

Сообщение sp00n 13 май 2011, 10:26

System.Threading.Thread.Sleep блокирует текущий поток, т.е. обработка любых событий в этом потоке приостановится. Может, Вам надо вынести Ваши другие события/операции в другие потоки? Если же Вы думаете, что блокируется и там - значит, Вы неправильно организовали другие потоки (если вообще их запустили). Как у Вас создаются другие потоки?

upd: Если же Вам надо в текущем потоке приостановить что-нибудь, используйте булевую переменную и счетчик какой-нибудь. Или даже без счетчика в OnOperationRequest проверяйте Вашу операцию на нужную Вам и, соответственно, изменяйте булевую переменную.
Ты молод, креативен, талантлив?
Амбициозен, уверен в себе, полон свежих идей?
А делать хоть что-нибудь умеешь?!
sp00n
UNITрон
 
Сообщения: 254
Зарегистрирован: 27 фев 2010, 20:43

Re: ММО Сервер : Photon

Сообщение zhbanito 13 май 2011, 13:03

Стоп-стоп-стоп, а в чем смысл паузы? Просто на низком уровне фотон работает с ретлангом и его моделью Актеров, может они где-то и начинают заикаться, когда вы у них поток забираете и просто блокируете в пустую...Кстати у меня таймеры отлично работают, может через них сделать паузу?
У меня вот от таких конструкций как Sleep, на стороне сервера, волосы дыбом встают. Итак всегда времени не хватает, а вы просто потоки усыпляете :)
zhbanito
UNец
 
Сообщения: 33
Зарегистрирован: 01 дек 2010, 15:29

Re: ММО Сервер : Photon

Сообщение Nolex 13 май 2011, 16:46

zhbanito писал(а):Стоп-стоп-стоп, а в чем смысл паузы? Просто на низком уровне фотон работает с ретлангом и его моделью Актеров, может они где-то и начинают заикаться, когда вы у них поток забираете и просто блокируете в пустую...Кстати у меня таймеры отлично работают, может через них сделать паузу?
У меня вот от таких конструкций как Sleep, на стороне сервера, волосы дыбом встают. Итак всегда времени не хватает, а вы просто потоки усыпляете :)

ДА, наверное через таймеры лучше.
Мне надо выждать паузу 10-15 секунд и потом послать всем актёрам команду "старт".
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: ММО Сервер : Photon

Сообщение gnoblin 05 июл 2011, 20:40

Серия уроков про фотон есть в следующем блоге:
http://mmocraftershaven.blogspot.com/

Первый вот:
http://mmocraftershaven.blogspot.com/20 ... art-1.html

Продолжение уроков здесь:
http://www.cjrgaming.com

Код к урокам вот:
https://github.com/dragagon/AegisBornPhoton#readme
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: ММО Сервер : Photon

Сообщение gnoblin 05 июл 2011, 21:32

Тема засвечена тут :D :
http://forum.exitgames.com/viewtopic.ph ... 3029#p3029
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: ММО Сервер : Photon

Сообщение gnoblin 13 июл 2011, 17:19

King's Bounty: Legions использует Photon :).
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: ММО Сервер : Photon

Сообщение sp00n 13 июл 2011, 17:30

Ждемс с нетерпением :)
We are really excited about the upcoming launch of Photon 3.
It will land within the next 4-6 weeks with great new features such as:

-- improved Unity integration
-- custom serialization methods
-- event caching
-- software-load balancer (part of the SDK)
-- new server2server interface
-- improved exception handling

Еще бы документацию сделали - цены бы им не было :)
Ты молод, креативен, талантлив?
Амбициозен, уверен в себе, полон свежих идей?
А делать хоть что-нибудь умеешь?!
sp00n
UNITрон
 
Сообщения: 254
Зарегистрирован: 27 фев 2010, 20:43

Re: ММО Сервер : Photon

Сообщение Eldar9x 07 сен 2011, 21:15

Toshik писал(а):Протестил их MMO демо, сервер локально: пинг начиная с одного коннекта ~270 ms


Ради любопытства потестил чистое приложение. Отправка операции и сразу ответ в виде эвента. То есть интервал времени, начиная с отправки opCustom и до точки в функции EventAction. Что в локальной сети, что на локальном компьютере пинг получается от 50 до 70 ms. Это нормально?
Eldar9x
UNец
 
Сообщения: 21
Зарегистрирован: 19 май 2011, 11:59

Re: ММО Сервер : Photon

Сообщение gnoblin 07 сен 2011, 22:43

в конфиге два ack delay поставьте 0 вместо 50 и будет пинг меньше :)
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: ММО Сервер : Photon

Сообщение Eldar9x 07 сен 2011, 23:55

gnoblin писал(а):в конфиге два ack delay поставьте 0 вместо 50 и будет пинг меньше :)


Сделал 0, стало 20-30. Вроде нормально ). Большущее спасибо!!!
Eldar9x
UNец
 
Сообщения: 21
Зарегистрирован: 19 май 2011, 11:59

Re: ММО Сервер : Photon

Сообщение gnoblin 07 окт 2011, 18:19

Мега профит:

Photon Indie October Sale

$399 for Unlimited Users & Servers

Autumn leaves are falling down ... and so do Photon Indie prices. We are in celebration mode!
More than 8,000 developers have signed up so far for Photon and we want to give something back to our fantastic Indie community:
So party with us and get a Photon Indie license for unlimited servers and concurrent users for just $399 during October.


http://shop.exitgames.com/products/phot ... gn=website
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: ММО Сервер : Photon

Сообщение Dos87 13 окт 2011, 13:59

Немного поюзал Фотон и задумался, а стоит ли платить деньги за сборку уже готовых решений?
Log, PerfomanceCounters, Dashboard и даже хвалёное "Highperformance S2S Api (native/c++)" (как я понял - это eNet) - полностью бесплатные фрэймворки. Конечно многие готовы заплатить и за это, но тогда придётся пользоваться неудобной отладкой (особенно когда сервер на удалённом компе) и на мой взгляд ужасной сериализацией.Не понимаю почему они не могли прикрутить что-то типа protobuf-net (только немного заточить под сетевой сервер) и сделать методы для сериализации напрямую в сетевой поток.
Dos87
UNIт
 
Сообщения: 64
Зарегистрирован: 28 июл 2010, 13:46

Re: ММО Сервер : Photon

Сообщение gnoblin 13 окт 2011, 15:21

Протобуф никто использовать не мешает.

В s2s там tcp (server to server).

Да, RUDP протокол сделан на основе enet.

Ещё ты забыл сказать что для многопоточности используется бесплатный retlang )).

Если игра не под браузер (иначе придется портировать enet) - тогда можно изобрести свой велосипед.

На создание и отладку велосипеда понадобится (мне точно) явно больше чем 400$. И думаю гораздо больше 1500$.

По такой логике, зачем юзать юнити - можно написать свой движок :).
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: ММО Сервер : Photon

Сообщение Dos87 13 окт 2011, 16:06

gnoblin писал(а):Протобуф никто использовать не мешает.

Я его уже внедрил. Просто, на платном сервере хотелось бы видеть похожее интегрированное решение. Можно было бы ещё, к примеру, добавить уровень сериализации и т.д.. Это избавило бы от неудобств, когда требуется частичная информация о классе. Пример:
Синтаксис:
Используется csharp
[ProtoMember(1, Level = SerializationLevel.Level1)]
public int Member1;

[ProtoMember(2, Level = SerializationLevel.Level2)]
public int Member2;

//Полная инфа
Serializer.Serialize(myStream, myObj, SerializationLevel.Level2 | SerializationLevel.Level1);

//Неполная инфа
Serializer.Serialize(myStream, myObj, SerializationLevel.Level1);
 

Сейчас приходится все эти "удобства" настраивать самому

gnoblin писал(а):Если игра не под браузер (иначе придется портировать enet) - тогда можно изобрести свой велосипед.

Не погуглил, почему-то был почти уверен, что он уже был портирован или есть толковая альтернатива)). В таком случае я был не прав)
Dos87
UNIт
 
Сообщения: 64
Зарегистрирован: 28 июл 2010, 13:46

Пред.След.

Вернуться в Photon

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

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