Доброго DateTime.Now!
В процессе разработки своей игры, сетевая часть выпочковалась в отдельный проект. Движёк ещё сыр, но я над ним работаю. Проект ценен тем, что для .net трудно найти нативный сетевой движёк.
Основные цели проекта:
1. Быть маленьким и максимально прозрачным.
2. Ориентирован на небольшие проекты. (сотни синхронизируемых игровых объектов)
3. Скрыть всю сетевую логику, при этом оставив возможность настройки.
4. Быть на чистом .net
Вот простой пример использования:
Code
// Создаём клиент и сервис
var service = new RealmService();
var client = new RealmClient();
// Регистрируем синхронизируемые сущности
service.Protocol.RegisterEntityType(typeof(TestEntity), new TestEntitySerializer());
client.Protocol.RegisterEntityType(typeof(TestEntity), new TestEntitySerializer());
// Подписываемся на события (тут событие добавления новой сущности)
client.EntityAdded += OnEntityAddedHandler;
// Устанавливаем соединение
client.Connect(new IPEndPoint(IPAddress.Loopback, 9876));
// Публикуем первую сущность на сервере
service.AddEntity(new TestEntity());
// Получаем сериализованную сущность на клиенте в обработчике
OnEntityAddedHandler(oject sender, RealmEventArgs e) {
var myEntity = e.Entity;
}
Если есть заинтересованные люди - буду очень рад. Приветствуются предложения по фичам и api. Желающие посодействовать в написании кода - приветствуются.
Код тут: https://github.com/brainster-one/khrusskДобавлено (09.03.2012, 20:40)
---------------------------------------------
Бинарники можно взять здесь: https://nuget.org/packages/Khrussk/0.0.1