Что нужно знать для создания MMO игр?

Всем привет. Очень часто вижу много людей, которые хотят начать делать онлайн игры. К счастью, я тоже начал именно с них, и поэтому поделюсь знаниями, которые накопил за последние пару лет.
Неважно, кем вы будите — программистом, дизайнером или менеджером команды. Материал поможет вам стать на путь создания игр.

Поехали…

1. Чего я хочу?
Странно, но мало кто знает что такое MMOG. Обычно говорят — это онлайн игра как вов/ла2 и т.д. На самом деле не совсем так. MMOG с англ Massive Multiplayer Online Game, что означает Многопользовательская Онлайн Игра. Разбираем по порядку.

Мультиплеер — это способность играть в игру одновременно от двух и более игроков. Это не обязательно сеть! Вспомните гонки на Sony Playstation — экран разделен пополам… Вот что значит мультиплеер.

В сочитании со словом Massive мультиплеер превратился в Многопользовательскую игру, т.е. наличие большого числа игроков в игре.

Онлайн — возможность играть в игру по сети(локальная сеть, интернет). Т.е. играть в одну игру с нескольких компьютеров.

Теперь вы понимаете, что такое MMOG. Но, если посмотреть точный жанр Вов, Ла2 то увидите следующее: MMORPG.

Первые три символа нам говорят, что это MMO
Далее идет жанр RPG — ролевая игра(о других жанрах можно почитать на википедии).

Зачем это спросите вы? Затем, чтобы знать, какую технологию выбрать, насколько сложно сделать и т.д. Если вы захотите сделать Морской бой Онлайн, то это гораздо проще, чем Гонки на выживание Онлайн.

Значит, сперва мы должны сделать выбор, что мы будем делать. Далее, составить диздок. Это опишет то, что вы хотите получить.

2. Что мне нужно?
В зависимости от того, что вы хотите сделать, вам потребуются:

База Данных(бд) — место хранения данных об игре, пользователях. В любом игре(даже одиночной) присутствует средство хранения данных. Поэтому если вы хотите создать игру, то вам нужно разобраться с бд. Для новичков, которые хотят сделать MMO я бы посоветовал MySQL(одна из СУБД, т.е. система управления базой данных), т.к. она проста в освоении. Она поставляется в пакете Open Server вместе с веб сервером. Очень удобная штука. На тему Базы Данных будут статьи, так что не пугайтесь, сможете все изучить и понять.

Язык программирования — то, на чем пишут программы. Если вы хотите быть программистом, то этот пункт обязателен для вас. Что учить? Я советую C# из-за его простоты. Конечно, существует много споров на тему «Что выбрать» и, как правило, победителя нет. Но C# набирает в последние годы все большие обороты и я делаю ставку на него. К прочтению всем советую книгу "Шилдт Г. — C# 4.0 полное руководство". И, конечно, можете задавать вопросы на блоге или форуме.

Игровой движок — мехназим, с помощью которого создается игра. Это набор утилит, программ, которые упрощают процесс создания. Более точное определение можно почитать на википедии. Что выбрать? Я работаю с Unity3d и этот движок меня полностью устраивает. За что я его полюбил? Читаем.

Сеть — под этим словом я понимаю владение знаниями о протоколе, механизме передачи данных, проблемах передачи данных.
Протокол — правило передачи данных. Допустим вам нужно отправить бумагу по почте(обычная почта) своему другу. Вы кладете письмо в почтовый ящик, а друг его получает. Протокол — это то, как именно происходило перемещение бумаги, и что вы и друг сделали для этого. Например:
1) вы отправили письмо.друг получил.вам пришло уведомление о том, что друг получил. если письмо затерялось, то вам придет также уведомление
2) вы отправили письмо другу.друг получил. вам не пришло уведомление в случае получения или не получения.

Это и есть два разных протокола. Но это вершина айсберга По этому вопросу я постараюсь написать еще пару тем.

Сервер — это основа для MMOG. Начнем с того, что сервер — это программа, обрабатывающая запросы клиента и каким-то образом реагирует на эти запросы(посылает ответ, выполняет действия с бд и т.д.). Сервер может состоять из нескольких частей: одна часть контролирует физику в игре, другая перемещение мобов, третья — генерирует события…
Также нужно понимать, на каком языке следует писать сервер. Если у вас игра отправляет данные для рейтинга и сервер должен их обработать, то следует выбрать Php, Phyton или другой веб-язык, т.к. сократиться время написания сервера, затраты.

Я выделяю две группы серверов:
первая — сервера, которые должны вычислять что-то. Такие сервера я пишу на C#.
вторая — сервера, которые отвечают на запрос клиента(Запрос данных, сохранение данных и т.д.). Эту группу серверов можно писать на Php.

Обе группы работают с базой данных. Сервер из второй группы проще разработать, чем из первой.Сервер из первой группы требует больше денег, чем из второй, т.к. нужно арендовать машину(виртуальный/выделенный сервер) для запуска приложения.(хотя в дальнейшем, машина все равно покупается). Виртуальный сервер — это виртуальный компьютер, на котором стоит операционная система. Выделенный сервер — это отдельный компьютер с ОС. Вроде понятно объяснил:)

3. А что дальше?
А дальше — делайте. Неделание хуже делания. Везде вижу как пишут «да кидай это дело, глупая затея, ты нуб». Не слушайте. Вам важно получить как можно больше опыта. А он приходит только в процессе.
Вам определенно нужно научиться читать книги — именно читать. Из книг я получил 90% знаний. Остальное это форумы. Опыт сюда не входит. Поэтому если вы не любите читать — полюбите. Я буду продолжать писать статьи для новичков, чтобы им было легче познавать процессы создания MMOG(уже знаете ведь что это такое ). От вас жду готовых проектов, общения и фидбек.

Всем удачи, да прибудет с нами сила!

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.