Руководство для начинающих создателей MMORPG игры.
Эта статья описывает первые шаги в создании массивно-многопользовательской онлайновой игры. Она предназначена для независимых разработчиков игр, которые обладают ограниченными ресурсами и небольшим опытом. После прочтения данной статьи Вы будете знать, что нужно для начала, и получите несколько советов относительно того, что стоит и чего не стоит делать.
Автор: Radu Privantu
Предисловие от переводчика
Руководство для начинающих создателей MMORPG игры
Шаг 1. Оценка своих знаний:
Шаг 2. Создание эскиза разработки
Шаг 3. Разработка внутреннего протокола для передачи игровых данных
Шаг 4. Клиент
Шаг 5. Безопасность
Шаг 6. Создание команды
Шаг 7. Развеем мифы
Заключение
Об авторе
Предисловие от переводчика
В последнее время очень широкое распространение в мире игр получили многопользовательские онлайновые игры (MMOG — massive multiplayer online game), которые рассчитаны на огромно-большое количество игроков. Конечно, все слышат только об успешных проектах, которые собирают серьезные финансовые доходы. Это и привлекает большинство новичков в игрострое в этот жанр. Однако, мало кто реально представляет себе, какие проблемы и задачи стоят при создании такого рода игр, какими знаниями надо обладать и т.п.
В результате – взявшись сразу за создание такого проекта, новичок быстро понимает насколько все сложно и запутанно. И бросает все, разочаровавшись.
Цель данной статьи – дать начальное представление желающим сделать свою игру в стиле MMOG, о том, какими знаниями надо обладать, что нужно уметь и к чему быть готовым. Ведь не секрет, что если человек пробует что-то раз и результат отрицательный — то повторно возвращаться он к этому вряд ли будет. Поэтому хотелось бы предостеречь еще раз желающих окунуться в мир создания таких игр и предложить им еще раз все обдумать и взвесить. Может, стоит начать с более простых игр, чтобы просто получить требуемый минимальный опыт?
Статью такого типа мне хотелось написать уже давно, но я не обладал достаточным опытом в этой сфере. В просторах Интернета мне попалась статья Radu Privantu, который является основателем и руководителем проекта Eternal Lands (www.eternal-lands.com). С его письменного разрешения я перевел эту статью на русский язык.
В статье говорится о создании MMORPG (ролевой игры), но я думаю, что описанное в ней относится ко всем типам массивно-многопользовательских онлайновых игр.
Автор статьи: Radu Privantu.
Оригинал статьи: http://www.devmaster.net/articles/building-mmorpg/ (статья написана 06/08/2004)
Перевод: AlexKom
Руководство для начинающих создателей MMORPG игры
Эта статья описывает первые шаги в создании Вашей массивно-многопользовательской онлайновой игры. Она предназначена для независимых разработчиков игр, которые обладают ограниченными ресурсами и небольшим опытом. После прочтения данной статьи Вы будете знать, что нужно для начала, и получите несколько советов относительно того, что стоит и чего не стоит делать. Самый первый шаг – это оценка Ваших знаний и возможностей. Вы должны быть готовы к ожидающему вас разочарованию из-за потери времени на создание того, что Вы просто не можете сейчас сделать.
Шаг 1. Оценка своих знаний:
Требуемые знания:
- 1. Знание как минимум одного языка программирования. Сейчас среди разработчиков наиболее популярный язык С++, по причине его преимущества в эффективности и скорости. Visual Basic, Java или C# также могут быть использованы в этом качестве.
2. Необходимо ознакомиться с графической библиотекой. Популярный выбор это SDL, OpenGL либо DirectX/Direct3D.
3. Определиться с сетевой библиотекой. Вы можете выбрать WinSock, SDL_net или DirectPlay.
4. Иметь опыт в программировании игр. Для примера, иметь понятие что такое: очередь событий, многопоточность, разработка пользовательского интерфейса (GUI) и т.п.
Очень рекомендуется знать:
- 1. Клиент-серверное взаимодействие и архитектуру построения таких систем.
2. Создание кросс-платформенных приложений. Вполне возможно Вы захотите создать вашу игру, и главным образом клиент таким образом, чтобы он мог запускаться на различных операционных системах. Для этой возможности я рекомендую использовать SDL, OpenGL и SDL_net.
3. Разработка под веб (Интернет). Это понадобится, если Вы захотите предоставить желающим возможность просматривать статистику по игрокам, информацию о сервере, или любую другую информацию через вебсайт.
4. Защита и администрирование. Вы же не хотите, чтобы кто-то взломал Ваш сервер?
5. Работа в команде, управление командой. Вам нужна будет команда, которой Вы сможете успешно управлять.
Шаг 2. Создание эскиза разработки
Я заметил, что много людей пишут в форумах сообщения о поиске команд для разработки MMOG. Многие из них начинаются такими словами: «Мы – начинающая компания/игровая студия и нам нужны 3 художника, 2 программиста, 1 музыкант и т.д. для создания инновационной, никогда ранее не существовавшей MMOG, в которой Вы будете иметь полную свободу действий и возможности изменения мира и т.п. Мы оплатим Вашу работу по окончании разработки, когда мы сделаем на этом немного денег». К сожалению, с современными технологиями и ограниченной пропускной способностью (сетевой) Вы не сможете создать динамического мира. Попытка создать что-то невозможное приводит к провалу. Правильней будет начать с малой, полностью рабочей, расширяемой системы и архитектуры.
Основная архитектура программы:
Сначала, попробуйте сосредоточиться на создании простейшей клиент-серверной модели, где будут введены следующие возможности:
1. Создание нового персонажа
2. Сохранение этого персонажа (на стороне сервера)
3. Вход в игру персонажем
4. Создать возможность общения с другими
5. Создать возможность передвигаться по миру в 3D
Задача сохранения информации о персонаже на первый взгляд выглядит довольно простой, но это не так. Например, есть два способа это сделать: использовать базу данных или использовать файлы. Далее в таблице приведены преимущества и недостатки для каждого из вариантов:
Базы данных
Преимущества:
Недостатки:
Файлы
Преимущества:
Недостатки:
Теперь, когда Вы определились, как сохранять информацию о персонажах, Вам нужно решить какой сетевой протокол Вы будете использовать для клиент-серверного взаимодействия: TCP или UDP? TCP известен как более медленный, но зато более аккуратный, он требует дополнительной пропускной способности. На практике, я не замечал каких-либо проблем при использовании TCP. Если у вас предусмотрена достаточная пропускная способности сети, TCP – это хороший выбор, по крайней мере, для начала. UDP может быть очень неприятным, особенно для начинающих. Помните о том, что первичные тесты движка и игры будут делаться в Вашей локальной сети, поэтому все пакеты будут приходить к месту назначения в таком же порядке, что и отправлялись. Но это не может быть гарантировано при работе через Интернет, т.е. в реальной среде. В то время, как обычно пакеты прибывают в заданном порядке, некоторые из них могут теряться, и это постоянная проблема для Интернета. Конечно, Вы можете разработать свой протокол таким образом, чтобы клиент/сервер могли восстанавливать потерянные пакеты. Но это тяжелый процесс, который не рекомендуется для начинающих.
#MMORPG, #онлайн игры, #создать игру
10 июня 2006 (Обновление: 14 апр 2011)