Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
02 Aug 2009, 13:47
Сообщение
#1
|
|
|
Думаю Сообщений: 187 Спасибо сказали: 33 раза |
Итак, есть сервер. Как он устроен?
*далее идут мои рассуждения, которые стоит подправить* Вообще, основных функции сервера две: отвечать на запросы клиента, и обрабатывать виртуальный мир, в котором происходит действие, вне зависимости от того, есть там игрок или нет (отключать пустые локации можно, но мы про это пока забудем). Первая функция вроде бы особой сложности не представляет - знай, обрабатывай себе запросы клиента о состоянии локации, перемещений вещей из сундука в инвентарь итд итп... Запрос поступает на то, что можно назвать комутатором - процедура, которая его дешифрует и отдает/создает данные в поток-обработчик, который и осуществляет действие - например переместить номер предмета из области памяти А (судук) в область памяти Б(карман), проверив возможность этого перемещения. А вот как идет обработка мира? Тоже куча потоков, а в каждом - тригеры респауна, АI мобов??? или как же все это выглядит???? -------------------- Без жаб! Спасем крепость!
|
|
|
|
03 Aug 2009, 11:38
(Сообщение отредактировал orgus - 03 Aug 2009, 11:54)
Сообщение
#2
|
|
|
banned banned banned Сообщений: 496 Спасибо сказали: 3 раза |
Цитата А вот как идет обработка мира? Тоже куча потоков, а в каждом - тригеры респауна, АI мобов??? или как же все это выглядит???? кхм... а взять движок и поиграться сложно что ли? Многие исходники обще доступны ... На сколько я помню ни каких там отдельных потоков, во всяком случае в том что я собирал... Например старые сырцы сога и дф ... Есть основной цикл .. game_loop_unix вроде функция из нее запускается уже вся обработка ... тебя интересует update_handler, у всех событий есть определенное время обновления... счетчик просто уменьшают до тех пор пока он не станет равен 0, тогда запускают обновление например mobile_update char_update quest_update obj_update и тд.. и снова инициализируют счетчик... вот и все ... |
|
|
|
05 Aug 2009, 17:09
Сообщение
#3
|
|
|
openhomm developer Сообщений: 214 Спасибо сказали: 39 раз |
Можно для начала почитать книжку:
[R.Penton] MUD Game Programming (2003). К ней прилагаются исходные коды. А потом можно самому начать писать. Или взять готовые и поковырять их. -------------------- |
|
|
|
05 Aug 2009, 18:14
Сообщение
#4
|
|
|
Думаю Сообщений: 187 Спасибо сказали: 33 раза |
о, за книжку огромное спасибо!
-------------------- Без жаб! Спасем крепость!
|
|
|
|
![]() ![]() |
| Текстовая версия | Сейчас: 9 May 2026 - 23:17 |
|
Copyright by Алексей Крючков
Programming by Degtyarev Dmitry |
|