| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование игр, графики и искусственного интеллекта > Сервер online игры |
| Автор: Simargl 13.12.2007, 00:13 |
| Доброе время суток, возник вопрос: а как пишется серверная часть для онлайн игр, какие потоки там необходимо выделять, ну и т.д. по списку. |
| Автор: Simargl 13.12.2007, 23:55 |
| Ладно, раз никто не ответил, то возможно плохо изложил идею... попробую с другой стороны. Итак игра аля Arcanum, есть города, игрок может перемещаться между городами, соответственно могут генериться случайные встречи. За встречи, города, бои, добычу ресурсов отвечает сервер. Меня сервер интересует с сугубо технической точки зрения (не плохо бы было узнать как устроены сервера того же WoW или Ultima), в частности как там осуществлять работу с потоками. Как я думаю: должны быть потоки отвечающие за игрока, основной, отвечающие за жизнь "городов". ??? |
| Автор: Ryoga 14.12.2007, 01:00 |
| Шли бы Вы на ДТФ - я не думаю, что здесь кто-то что-то подобное реализовывал... |
| Автор: Simargl 14.12.2007, 01:05 |
| Ryoga: ДТФ - а это куда вопрос, снят, нашёл |
| Автор: Rickert 14.12.2007, 09:11 |
| dtf.ru - на будущее. |
| Автор: arilou 17.12.2007, 21:03 |
| Ryoga, ну вот прямо так уже и никто |
| Автор: Ryoga 17.12.2007, 22:48 |
| arilou, я ошибся? Тем лучше... |
| Автор: arilou 19.12.2007, 12:44 |
| Simargl, есть такой вариант: На каждый тип игрового объекта (NPC, инвентарь, квест, и т.п.) отводится отдельный поток на обработку. При таком подходе сервер хорошо масштабируется при увеличении кол-ва процессоров/ядер. Опишите конкретнее, что именно интересует. При разработке онлайновых миров очень много ньюансов и трудностей. |
| Автор: sparn 15.1.2008, 15:13 | ||
Это, мягко говоря, не лучшая идея Могу предложить такую схему: обьекты могут реагировать на два типа событий: а) действия пользователей или других обьектов б) действия по таймауту Таким образом все пакеты от игроков складываются в очередь и обрабатываются в пропорциональном количеству процессоров количестве(кламбур, но по другому не выходит написать И еще запускается такое же количество потоков для обработки таймаутов. Кроме того благодаря небольшому количеству потоков такую схему можно применять к каждой локации например(если их не запредельное количество конечно) |