Найти в Дзене
Berckut

PYTHON, многопользовательская онлайн-игра WORLDSPACE (2)

Сразу хочу сказать, что создаваемая мною игра будет бесплатна для всех и в игре будет возможен донат. В процессе создания игры мною был придуман ее сюжет. Можно, конечно, и без него, но сюжет - это как дизайн-документ для программиста. Сюжет моей игры (и стартовый экран) приведен на картинке выше. Как уже упоминалось в первой статье - моя игра - это улучшенная (с моей точки зрения) версия оригинальной игры OGame, действие которой развивается в галактике и, как мне кажется - сюжета в данной игре нет совсем. Может это и не плохо, но моя игра будет довольно сильно отличаться от оригинала, поэтому, придумав сюжет для своей игры - я знаю, что для игры надо делать (как программисту), какие игровые механики (gameplay) в ней прописывать. Дальше приведу основные различия между оригинальной игрой и моей. В этой статье графические различия публиковать не буду, а в следующей постараюсь это сделать. В игре-оригинале есть ограниченное количество галактик. Игроку достается одна из
Стартовый экран создаваемой игры WORLDSPACE
Стартовый экран создаваемой игры WORLDSPACE

Сразу хочу сказать, что создаваемая мною игра будет бесплатна для всех и в игре будет возможен донат.

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

Как уже упоминалось в первой статье - моя игра - это улучшенная (с моей точки зрения) версия оригинальной игры OGame, действие которой развивается в галактике и, как мне кажется - сюжета в данной игре нет совсем. Может это и не плохо, но моя игра будет довольно сильно отличаться от оригинала, поэтому, придумав сюжет для своей игры - я знаю, что для игры надо делать (как программисту), какие игровые механики (gameplay) в ней прописывать. Дальше приведу основные различия между оригинальной игрой и моей. В этой статье графические различия публиковать не буду, а в следующей постараюсь это сделать.

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

Многое из вышеприведенного будет и в моей игре - возможен донат, нуб-защита, альянсы. Но в ней также будут и существенные отличия:

- значительно изменил формулы развития планет. В оригинале рост стоимости развития зданий и технологий растет просто жесткими темпами, а рост времени строительства и исследований - еще быстрее. При этом производительность зданий растет гораздо меньшими темпами - соотношение роста стоимости к росту производительности составляет 400%. Это огромный перекос в сторону стоимости. Я решил уменьшить эту величину до 160%. При развитии нескольких планет это вполне приемлемое соотношение. Тоже самое сделал и с временными затратами на исследования и строительство. В затратах по времени я вообще ушел от линейной шкалы роста и заменил ее на регрессивную - с каждым следующим уровнем рост по времени уменьшается и после определенного уровня он становится равным 1%. Проводил исследование в оригинальной игре и результаты поразили - для некоторых технологий на 50 уровне время на исследования составляет несколько десятков лет реального времени.

- наличие 7 рас в галактике;

- независимая и агрессивная раса искусственного интеллекта (это нейросеть, которая будет развиваться также, как и все игроки - с одной планеты и со стартовым набором ресурсов). В начальной галактике она представлена несколькими планетами, но во вселенной есть целая галактика, которая принадлежит искину. Развитие искина в отличии от игроков ограничено - он не может иметь экспедиционный корабль и не может находить артефакты, но его преимущество - он 24 часа в сутки в игре;

- экспедиционный корабль - его основная задача - поиск артефактов.

- бесконечная вселенная со множеством блуждающих звездных систем, множество галактик, пылевых туманностей, различных аномалий. В оригинальной игре число галактик ограничено, координаты всех планет всем игрокам известны, а здесь ничего не известно кроме своей, родительской галактики. Что находится за пределами родной галактики - можно узнать только в процессе игры;

- артефакты в игре. В оригинальной игре артефакты используются для улучшения различных характеристик флагмана, а также для временного улучшения каких-либо характеристик строений на планете. В моей игре артефакты отличаются тем, что их можно внедрить в инфраструктуру планет - качественное и постоянное улучшение всех характеристик строений на всех планетах, принадлежащих игроку. Также есть артефакты, улучшающие корабли, оборону и кое-что еще очень существенное, которое можно узнать только непосредственно в игре. Всего я придумал более 150 различных артефактов и думаю, что на этом их список не ограничится;

- возможность захвата планет противника (в оригинальной игре этого нет);

- возможность делать научный шпионаж - "воровать" технологии, которые у игрока могут быть лучше развиты и внедрять и себе (в оригинале такого нет);

- в игре есть два типа кораблей (бомбардировщик и рейдер), которые могут при атаке на противника в качестве целей выбрать различные строения и понижать их уровень (или уничтожить) - в оригинале этого нет;

- один из артефактов позволяет захватывать корабли противника, уводить их к себе на планету и включать их в состав своего флота (если нападение закончится победой);

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

- наличие ограниченного количества планет с аномально высокими характеристиками - планеты в центре галактики (около 100 планет на всю галактику). Здесь все планеты изначально имеют большую территорию развития и уровень производства всех ресурсов в два раза превышают чем на обычных планетах;

- отображаемая карта галактики, которую можно кликать и в которой находятся все звездные системы, входящие в галактику (в оригинале нет карты галактики - только текстовая информация);

- анимация движения флота (в оригинале нет анимации, присутствует только gif-анимация непосредственно самих кораблей, строений, обороны). Python, конечно, может использоваться для анимации, но это все таки интерпретатор, поэтому я решил сделать пиксельную анимацию кораблей - один корабль (или группа одного типа кораблей) обозначается одним пикселем определенного цвета. Можно использовать спрайты для анимации, но я пока этим вообще не занимался и не силен в этом. Если только в будущем. На 3D-анимацию я вообще не замахиваюсь - моих сил и умственных способностей вряд ли на это хватит;

- анимация различных действий на планете - строительство зданий, исследование технологий (в оригинале этого нет). Планирую использовать для этого gif-анимацию;

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

- в игре несколько нечеловеческих рас (пока придумал 4), которые находятся где-то во вселенных, от которых можно получать различные квесты и за вознаграждение их выполнять;

PS. Игру планирую запустить как коммерческий проект. Готов к взаимовыгодному сотрудничеству.