Как я делал MMO-игру

Сегодня начался мой отпуск, самое время начать делать онлайн-игру, в которую я сам хотел бы играть. Вот решил описать процесс в этом блоге, это ж типа дневник/журнал. Может кто найдет, почитает, поймет как (не)надо делать MMO-игры. Да и мне было бы невредно переложить на "бумагу" свои мысли относительно проекта...

...Я решил что это будет пошаговая онлайн-игра в постапокалиптическом сеттинге с готическим уклоном. Пошаговая, чтобы игроки не тыкали лихорадочно в иконки спецспособностей. В игре должна быть тактика, в идеале на уровне шахмат. Постапокалиптический сеттинг, потому что в этой благоустроенной жизни хочется челенджа, необычных ситуаций. Постапок самое то. Ну а готический уклон, потому что таких игр мало, а желающих погрузиться в готику много. Не хотелось бы мне страдать (или наслаждаться?) эскапизмом в одиночку.

Детали мира буду раскрывать постепенно, пока скажу, что все крутится вокруг идеи АПОКАТАСТАСИСА. Закончился Армагеддон, прошел Страшный Суд, но Бог не отправил грешников в Ад, а даровал им второй шанс. Они могут дальше жить на Земле, пока не сделают нечто, что позволит им воссоединиться с Богом и близкими, которые уже пребывают в Раю. На земле также остались демоны, которых не уничтожили во время Армагеддона. Можно будет играть на их стороне. Цель - установить власть Зла на Земле и идти на штурм ворот Рая. Будет еще третья сторона - нежить. Это всякие оборотни, вампиры, личи. Когда-то они были людьми, которые отказались от своей души, потому что выбрали вечную борьбу на Земле, а не бесцельное существование в Раю. За них тоже можно будет играть, их цель - хранить равновесие между людьми и демонами, потому как Земля будет существовать до тех пор, пока не победили ни те, ни другие.

Сначала я думал делать сервер на [Visual C++]/[Win32 API], потому что так можно сделать очень производительный сервер, обрабатывающий 10.000 одновременных сетевых запросов (через Input/Output Completion Port), и, впридачу, сделать файловую базу данных, доступ к которой, благодаря тому же IOCP практически вообще не требовал бы ресурсов процессора. Ну, а клиентом была бы программа, тоже написанная на Visual C++. Но потом я подумал, что необходимость скачивать клиент может отпугнуть некоторую часть игроков, а еще надо писать обновлялку файлов... Короче, я выбрал браузер в качестве клиента. Ну, а поскольку Java-сервлеты предоставляют удобный способ обработки HTTP-запросов и при этом сопоставимы по скорости вычислений с программами на Visual C++, то Java - это то, что мне нужно. При этом меньше проблем с хостингом, можно начать с обычного виртуального хостинга за 100 баксов в год. Данные будут храниться в файле и при старте сервлета полностью загружаться в память с помощью сериализации, а при его остановке - записываться обратно в файл. Если на игрока тратить по килобайту и сделать пока лимит в 100.000 игроков, то на хранение данных об игроке и его шмоте понадобится всего лишь около 100 мегабайт. Если игроков станет больше 100.000, то, думаю, вполне можно будет позволить себе сервер с 16 гигами памяти :). Да, забыл сказать, что финансовая поддержка проекта планируется через микротранзакции, есть одна идея как сделать так, чтобы донат не влиял на крутизну игрока...

...На улице похолодало до 21 градуса, самое время пойти гулять. Продолжение следует...

Комментарии

Успехов в начинании! Жду продолжения.

Submitted by MaxImuS on
Любопытно будет пронаблюдать за развитием!

А за месяц можно собрать браузерку на Java?

Submitted by Militari on
Quote:
Militari писал(а):
А за месяц можно собрать браузерку на Java?
Скорее нет, чем да. А как оно на самом деле - посмотрим на практике.

А что больше всего времени займёт при создании браузерки, как Вы считаете? На будущее, что бы сравнить.

Submitted by Militari on

Определенно наполнение контентом, потому как движок делается очень быстро.

А очень быстро это сколько времени? И какие проблемы с наполнением контента?

Submitted by Militari on
Quote:
Militari писал(а):
А очень быстро это сколько времени? И какие проблемы с наполнением контента?
Очень быстро - это пару месяцев :)

Контент просто так не накидаешь в игру. Все должно быть более-менее продумано. Это то, за что гейм- и левел-дизайнеры получают свои деньги.

То есть, браузерку не потянет один человек?

Имею в виду, человека занимающегося дизайном игры, уровней, интерфейсов, созданием арта, написанием сценария...

Submitted by Militari on

Наверно не потянет. Надо еще программирование знать и, желательно, HTML.

Знаю-знаю... ток не так хорошо, так что было бы хорошо найти программиста)

Submitted by Militari on

GameDev.by