Навигация
· XNA FAQ
· С чего начать
· Конкурсы
· Обратная связь
· XNA Блоги
Сейчас на сайте
· Гостей: 1

· Пользователей: 0

· Всего пользователей: 3,684
· Новый пользователь: headron
Последние фото
Эх, чуть не проспал закрытие.
Эх, чуть не проспал ...
Альбом: XNA Engine

GB
GB
Альбом: XNA Engine

South Park Coon & Friends
South Park Coon & Fr...
Альбом: XNA Games

Блоги
yavshoke
» XboxOne - интерес...
dampirik
» Push уведомления ...
dampirik
» Реклама,статистик...
Chort
» XNA и StartCoroutine
Chort
» Curve Class
dampirik
» Реклама, статисти...
dampirik
» Увеличение скорос...
dampirik
» Реклама, статисти...
general
» Распаковка DxtCom...
general
» Как работать с XN...
Поддержка
microsoft.com
1gb.ru - Дом для вашего сайта
Статистика посещений:

Просмотр темы
 Распечатать тему
Мой первый Dedicated сервер.
Kwasti
#1 Распечатать сообщение
Опубликовано 25.12.2013 08:33:20
Младший специалист


Сообщений: 31
Зарегистрирован: 11.11.13

Строгих правил наверно нет, для создания подобного сервера, но все-таки не хочется наступать на чужие грабли, дайте пожалуйста совет, какой вариант лучше использовать?

пробовал два варианта, первый:
1. проект WindowsFom, показалось удобнее управлять сервером.
2. В основном окно накидал нужных контролов(лог, нагрузка, список подключенных игроков, командная строчка для управления серером)
3. в отдельном потоке создал класс для работы с сетевыми подключениями.
4. по таймеру вызывал обработку мира (типа как Update в XNA)

но подумал что вызов по таймеру может отличаться от вызовов update() в XNA по кол-ву тиков например и будет не согласованность с клиентом.
поэтому решил переделать сервер в чистый XNA
1. написал свои контролы: Label, ListView, TextBox, Button
2. а дальше все в принципе как и в первом варианте.

в плане удобства: сейчас при втором варианте, для удобства управления, не помешало бы контекстное меню для списка подключенных игроков, писать контрол придется опять. а в будущем может еще что понадобиться..
вот и вопрос, прав ли я был, что перевел все на XNA? или зря заморачивался и стоило все оставить на WinForm?

Возможно кто-то посоветует вообще консоль и вообще не заморачиваться и управлять командной строкой..
но хотелось бы все-таки обеспечить достаточно высокую скорость работы сервера и в то же время иметь какие-то минимальные удобства в управлении.

после всех этих мыслей, возникла новая, м.б. стоило вместо таймера, просто создать третий поток для сервера XNA, который был бы наследником Microsoft.Xna.Framework.Game и в методе update() проводить изменения в мире. (чтобы уж совсем приблизить сервер к XNA и оставить удобство в управлении)
тут возможно лишняя обработка от WibdowsForm будет притормаживать сервер. (по крайней мере когда запущен клиент XNA и я начинаю быстро двигать какое-нибудь окно от винды, то ФПС падает до 40-50.)
Изменил(а) Kwasti, 25.12.2013 08:47:22
 
dampirik
#2 Распечатать сообщение
Опубликовано 25.12.2013 10:30:39
Аватар пользователя

Ветеран


Сообщений: 957
Зарегистрирован: 21.02.10

Много слов, но не понятно: в чем проблем и что в итоге должно быть.
Если пишете под винду то и на сервере винда должна быть.
Если весь вопрос заключается в выборе – как управлять сервером, все зависит от того что он делает. Старт, стоп, рестарт – вполне хватит консоли. Если читать логи – то они пишутся в файл/бд оттуда можно без проблем и сторонними средствами читать, что и правильнее. Если какая-то тонкая настройка, топ по нагрузке, распределение чего-либо то гуя/либо рассмотреть возможность административного клиента.
А так, какое-либо управление на винформах/веб/консоль – Ваше право, нечего такого в этом нету.
Я не вижу смысла синхронизировать тик сервера и игровой тик игры – это разные вещи.
У Вас в голове такая не слабая каша, Вы уходите в частности при этом вообще не думая об общем, а это ой как не правильно.
P.S. Если Вы хотите, чтобы Вам помогли дельными советами, постарайтесь получше описывать саму проблему.
Блог - dampirik.blogspot...
 
Hellmapper
#3 Распечатать сообщение
Опубликовано 25.12.2013 12:25:49
Аватар пользователя

Старший специалист


Сообщений: 440
Зарегистрирован: 03.07.11

Как было сказано выше: Зачем синхронизировать? Засовываешь на сервере в новый поток бесконечный цикл и там обрабатываешь подключения.
 
Kwasti
#4 Распечатать сообщение
Опубликовано 25.12.2013 12:26:16
Младший специалист


Сообщений: 31
Зарегистрирован: 11.11.13

Dedicated server - это выделенный сервер некой игры, вынесенный за рамки клиента и позволяющий как минимум больше подключений.
Что именно делает сервер это не важно, итак ясно что он обсчитывает весь игровой процесс.
сейчас вопрос по оболочке сервера..

если коротко то я просто хотел узнать, о предпочтениях у других, кто как создавал свой выделенный сервер, может кто поделится своими мыслями.

Это первый мой сервер, хоть и программирую не один десяток лет, это мое хобби, но сетевыми технологиями заинтересовался только сейчас, конечно нет наставника, кто подсказал, направил. Кроме форумов искать наставника мне негде.

В ответ на P.S.: Я бы описал проблему если бы была, но пока прошу совета.

Все варианты имеют право на жизнь. Как и все автомобили могут ездить, но вот разница в них огромна.

какие-то сомнения грызут мне душу, вот и обратился на форум.
А может просто свои тараканы чет взбесились. И вижу черта там, где ничего нет.

P.S. тики я использовал только для обработки игрового сюжета.
подключения и обработка протокола у меня организованы на основе событий и сообщений от игровых клиентов
Изменил(а) Kwasti, 25.12.2013 12:28:25
 
beaver
#5 Распечатать сообщение
Опубликовано 25.12.2013 12:49:19
Аватар пользователя

Администратор


Сообщений: 1772
Зарегистрирован: 22.02.09

Kwasti написал:
сейчас вопрос по оболочке сервера..

Серверу не нужна оболочка, серверу нужны сервисы/службы/демоны.
Оболочка (правильней - консоль) - это клиент, хоть и неигровой.
 
CSharpCraft
#6 Распечатать сообщение
Опубликовано 25.12.2013 15:19:31
Аватар пользователя

Специалист


Сообщений: 190
Зарегистрирован: 27.03.13

Я встраивал в сервер игровое ядро xna (оттуда update мира на серве), а все что связано с игрок лежит в отдельных (общих) библиотеках
 
dampirik
#7 Распечатать сообщение
Опубликовано 25.12.2013 15:46:34
Аватар пользователя

Ветеран


Сообщений: 957
Зарегистрирован: 21.02.10

О_о зачем? Чем Вам обычный таймер не угодил?
Блог - dampirik.blogspot...
 
CSharpCraft
#8 Распечатать сообщение
Опубликовано 26.12.2013 14:45:43
Аватар пользователя

Специалист


Сообщений: 190
Зарегистрирован: 27.03.13

dampirik написал:
О_о зачем? Чем Вам обычный таймер не угодил?


В некоторых случаях так удобнее
 
Kwasti
#9 Распечатать сообщение
Опубликовано 27.12.2013 09:56:06
Младший специалист


Сообщений: 31
Зарегистрирован: 11.11.13

А еще вопрос у меня встал по хранению данных игрового мира.
в некоторых источниках утверждали, что самый быстрый способ получения нужных данных это ч/з файловое хранилище, и мол только при кластерной структуре использовать нужно SQL, во всех остальных лучше файловое.




 
Yozka
#10 Распечатать сообщение
Опубликовано 27.12.2013 11:10:58
Аватар пользователя

Старший специалист


Сообщений: 268
Зарегистрирован: 18.04.12

Брехня, лучше SQL.
Так быстрее, есть возможность запусков несколько серверов с использованием одной базой.
Тут вопрос стоит в другом, наксколько хорошо знаешь sql. От умения писать запросы, проектирование базы будет зависить скорость всей работы.
 
http://isera.info
beaver
#11 Распечатать сообщение
Опубликовано 27.12.2013 12:24:32
Аватар пользователя

Администратор


Сообщений: 1772
Зарегистрирован: 22.02.09

Yozka написал:
Брехня, лучше SQL.

Не совсем. БД - для быстрых операций чтения/записи. Файл - для длительного хранения с доступом на чтение.
Всё от задач зависит.
 
Перейти на форум:
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Мини-чат
Вы должны авторизироваться, чтобы добавить сообщение.

27.08.2014
Я умею немного на asp.net + html и css

22.08.2014
на ASP mvc 3 есть пару проектов. Могу помочь, если нужно. Обидно, если закроется Frown

21.08.2014
я тоже ноль

21.08.2014
Я в вебе только с php занимался да и то на уровне чтоб работало.

21.08.2014
Я в вебе полный ноль…

21.08.2014
Переводить его надо, хоть на ту же азуру. И двиг менять на что-то современное. Если есть веб-разрабы - можем скооперироваться. Один делать не буду.

21.08.2014
не знаю всех нюансов по оплате и все хорошее когда нибудь заканчивается

21.08.2014
А что случилось?

21.08.2014
похоже сайт будет работать до 28го числа

09.08.2014
Апи пока не видел. Но есть приложение в магазине Live Lock Screen BETA, так что думаю скоро будет

08.08.2014
Я про API для Update1. На нем работает это

08.08.2014
А что именно нужно? Чтото и сейчас открыто http://msdn.micro.
...105).aspx

06.08.2014
Кто-нибудь слышал об открытии доступа к Lock Screen Api?

31.07.2014
VPDExpress на базе MVS 2012, ни в какую не ловит исключения. Даже если их сам создаешь. И всех так?

25.07.2014
С днем системного администратора причастных к этой профессии! По случаю - тортик от жены

RSS каналы сайта
XNA - Новости
XNA - Статьи
XNA - Форум
XNA - Галерея
XNA - Файлы
Время загрузки: 0,09 секунд 8,710,121 уникальных посетителей