Приветствую всех на моем канале, посвященном разработке многопользовательской онлайн-игре Worldspace, написанной на языке программирования Python. В этой части расскажу о сути игры.
Как и в большинстве стратегий, основная суть игры заключается в добыче и накоплении ресурсов, строительство космического флота, обороны, а также ведении боевых действий с противником. Так как в игре планируется 5 враждебных друг другу рас, а также раса искусственного интеллекта, то и противниками могут быть игроки других рас и искусственный интеллект. Нападения внутри рас невозможны.
Галактика представляет собой скопление звездных систем с планетами и в каждой звездной системе есть еще астероидное поле для добывания ресурсов. Распределение рас по галактике - случайное, но по количеству звезд в каждой расе одинаковое количество - каждой расе принадлежит по 7.678 звездных систем и по 107.494 планеты.
Карта галактики представлена картинкой галактики (200*200), где каждый пиксель - это какая-то звездная система с 14 планетами и одним астероидном полем. Каждый пиксель на картинке - это какая-то звездная система. Размеры планет, а также состав астероидного поля по содержанию ресурсов у всех звездных систем разный - для генерации галактики сделал специальную программку. Звездные системы находятся в пространстве 1-199 по горизонтали и 1-199 по вертикали. Навигация по галактике осуществляется нажатием управляющих кнопок в меню "галактика" - лево-право-низ-верх - перемещается экран (зеленый квадрат, центр квадрата - звездная система), отображаются координаты звездной системы и отображается состав звездной системы. Также можно кликать по галактике - экран перемещается в точку клика, отображаются новые координаты и появляется состав звездной системы. Еще один способ навигации - непосредственный ввод координат в координатное поле - справа от кнопок управления. После введения координат экран перемещается по новым координатам и отображается состав звездной системы.
Все расы между собой одинаковы - преимуществ в чем-либо ни у кого нет (хотел сделать какие-нибудь различия, но мозги закипали на этой стадии и что-то вразумительное не получалось).
Раса искусственного интеллекта - ею населены звездные системы возле черной дыры - они вроде как охраняют эту область галактики, где самые интересные планеты. Искусственному интеллекту принадлежит 36 звездных систем с 504 планетами. Не все планеты заселены этой расой, а всего 200 из них. Больше не решился пока сделать, боюсь, что вычислительных мощностей может не хватить. Планеты под управлением искусственного интеллекта - это большие предобученные нейросети, которые я обучал специально именно для этой игры. Они, как и человек, прекрасно управляют развитием принадлежащих им планет - строят здания, добываю ресурсы, строят корабли и оборону, совершают межпланетные и межзвездные полеты, воюют между собой (воевали, когда их обучал, но в игре они между собой не воюют, а помогаю друг другу в развитии и при необходимости могут действовать сообща - общаются между собой (для общения используют очень ограниченный набор слов русского языка - их словарный запас состоит из 3.000 слов - слова в единственном числе именительном падеже, неопределенная форма глагола)). Теоретически, они могут общаться и с игроками, но на практике проверить пока не получилось.
Дальше про механику. В оригинальной игре пространство для игры представляет собой конечное количество звездных систем и планет, которые всем игрокам известны и доступны. Первоначально и у меня также планировалось, но мне это не нравилось. Долго ломал себе голову - как этого ограниченное пространство избежать. Придумал))). Первая галактика - это только начало масштабной игры. После достижения определенного уровня развития технологий в игре игрок может выходить за пределы своей галактики - галактика в игре это не конечное пространство - это только первый шаг в игре. При помощи экспедиционного корабля игрок может выйти за пределы галактики и картографировать (расширять) вселенную. После возвращения на родную планету экспедиционного корабля игроку становится видна новая часть вселенной, которая абсолютно неизвестна другим игрокам (при условии, что другой игрок случайно не отправит экспедиционный корабль по тем же координатам). Игрок получает координаты тех объектов во вселенной, которые открыл его экспедиционный корабль. Что находится в этом пространстве - ни кому не известно, генерация этой части вселенной происходит в момент нахождения экспедиционного корабля в экспедиции. То, что открыл экспедиционный корабль - известно только игроку, отправившего корабль в экспедицию. Что там может быть? Отдельные звездные системы, скопления звездных систем, галактики. Количественный и качественный состав галактик и звездных скоплений - абсолютно случайная величина, генерируются только во время экспедиции во вселенную. Единственное ограничение - во вселенной зарезервированы определенные координаты, в которых находятся 5 галактик на тот случай, если количество игроков в первой галактике превысит определенное число и расселение новых игроков будет происходить в новых галактиках. Получив координаты новых объектов игрок может их сообщить другим игрокам, а может и самостоятельно их осваивать ни кому ничего не говоря. Пространственные размеры вселенной зависят только от уровня развития технологий игрока - чем больше уровень технологий, тем большее пространство вселенной он сможет картографировать.
На этом третья часть цикла статей заканчивается, продолжение следует...
PS. Игру планирую запустить как коммерческий проект. Готов к взаимовыгодному сотрудничеству.