На момент написания данного текста протипирование Xil столкнулось со значительными трудностями нехватки вычислительной мощности настольного компьютера.
Проект в RAM памяти подрос до 350 Мегабайт в неоптимизированном виде (можно уменьшить), при мастшабировании звезд на многие многие тысячи пока в них небыло
красивой гравитации все еще как-то обнадеживало на удержание приемлемого FPS, но с добавлением запланированного функционала к ним
весь FPS рухнул. Он становится слегка приемлемым лишь при ужатии игры до критически неприемлемого числа звезд (что целиком не соответствует целям и задачам т.к. развернуть тут более 40 империй и множество технологий в таком маленьком аквариуме неполучится), и то при экстримально символическом флоте низко полигональных кораблей. Это все совершенно не то что предполагалось и требуется провести поиск решения данной проблемы.
Разделение на разные exe в формат клиент-сервера ограничено TCP протоколом из-за необходимости его синхронизации по кадрам и объем передаваемых
данных небольшой (фильм можно закачивать целыми кусками по 1 мегабайту на максимальной скорости, получая их сохранять на диск, в случае с игрой ждать закачки целого мегабайта нельзя, данные нужно сразу отправлять на экран, что бы небыло задержек, передаются они малыми порциями и между каждой порцией идет синхронизация на кторую уходит много времени, из-за чего общий объем передаваемых данных в пересчете на FPS (доли секунды) недостаточно большой) т.е. в 1 секунде 1000 милисекунд, если на передачу данных о игровом мире для каждого 1 FPS (кадра) затрачивать например 16 милисекунд и умножить их на число FPS получается например 1/3 от секунды вычислительного процесса нужны на получение данных в клиент-серверном решении (переводя часть вычислений на второй exe файл принимая от него данные рассчетов по TCP/IP понижается вычислительная мощность каждого потока), если этот процесс вывести на отдельное ядро эти
данные все равно нужно синхронизировать в игру т.е. передать в сцену набор параметров, это делает фрагмент кода который требует время на свою работу, можно рассчитать на супер сервере хоть сотни тысяч звезд и планет, но передать их
в сцену разом неполучится. Некоторое количество передать можно без снижения скорости игры, но это очень ограниченный объем данных каждый кадр. Получается что и в том и в другом случае затрачивается время которое отнимается от времени вычисления сцены, снижая FPS (пытаясь повысить объем вычислений переводя
их на другие файлы или компьютеры все равно в итоге происходит столкновение с мощностью только 1 ядра
в котором синхронизируется вся сцена для вывода на экране (синхронизируется информация из разных вычислительных процессов) и которое не может выделить все время только на обработку передавемых в приложение данных). Но для проверки технических возможностей как раз и нужны предварительное прототипирование и тесты. Первые варианты решения проблемы которые появляются это снижение скорости рассчета (замедление) всей сцены, переводя
ее в замедленный режим сохраняя FPS, но бесконечно это делать так же невозможно иначе теряется ощущение от самого игрового процесса. Требуется оптимизировать приложение под многоядерность (это быстрее чем передача вычислений по сети, но ограничено числом ядер процессора) и вынести часть рассчетов за пределы одного exe файла. Предполагается высокая вероятность через некоторое время найти какое-то техническое или программное решение. Это достаточно долгая в реализации задача, поэтому пока произошел переход от
прототипирования к теоритической составляющей.
Технологий предполагается много, но не бесконечно, чем они более новые тем более сложные и дорогие, не все но в основном, этим способом они позволят играть долго не раскрываясь все сохраняя многие неизученными для интереса при повторной игре. Казалось бы на последнем этапе изучения технологий есть другие направления которыми может увлечь стратегия на тему научной фантастики в космосе, экономика, колонизация, торговля с другими империями, войны. Но не все совсем так.
Сами технологии когда их в конце мало, недоставляют особой радости раскрытия, потому что их мало, их внимание сосредоточено часто на том когда они будут исследованы - это снижает интерес к остальным направлениям развития в игре. Поэтому технологий даже после долгой игры должно быть много, а их скорость исследований недолжна быть совсем уж медленной, а интерес и реиграбельность должна сохряняться несколько иным способом.
Вместо увеличения времени на изучение небольшого числа технлогий последнего периода что бы увеличить время интереса к игре, не делать этого. А увеличить число самих технологий которые можно в достаточно примлемом темпе продолжать изучать, но повысить сложность самой игры добавив в нее больше механизмов и завимодействий взятых из реальных и научно фантастических сюжетов, таким образом игрок будет естественным образом более часто сталкиваться с новыми сложностями которые затрудняют достижение доминирования над другими игроками и приводят к повторной игре снова создавая цепочку сложноей и вероятностей на пути интесивного технологического развития как бы заставляя игрока начинать заново со некоторого числа условных стартовых технологий.
При большом числе научно фантастических технологий доступных к исследованию на протяжении игры даже после длительного времени в ней к ним должен продолжать сохранятся интерес, их скорость исследований недолжна быть слишком медленной что бы сохранять интерес их открытия в итоге. Просто игра в большинстве случаев - около 95% будет завершатся из-за сложности, например на пол пути октрытия большинства научных исследований. Существует теория вероятностей, если играть в одиночку в военную игру где можно бегать пехотинцем по карте то трудно представить что можно в ней выиграть у множества противников пробежав всю карту по диагонали и ниразу не получив попадание, и не проиграть, можно столкнутся с превосходящими силами противника или в пути, или наткнутся по дороге на укрепленные сооружения и быть подстреленным во большинстве случаяв потому что противника много по всей карте со всех сторон. В научно фантастической стратегии то же самое - потенциальных противников допустим более 40 империй, и в процессе игры появляются новые, все так или иначе развиваются, в какой-то момент времени должно произойти военное столкновение с какой-нибудь агрессивной цивилизацией (если небудет какого-то военно-экономического альянса с супер крупной империей) можно 1 раз выиграть, потом победить еще раз другую империю, выиграть у 3-й, но их много, и в конце концов какая-то да и окажетя сильнее цивилизации находящейся под управлением игрока. Т.е. вместо того что бы делать долго исследуемые технологии можно создать очень много технологий с достаточно неплохой скоростью изучения, просто в большом количестве, а игра будет завершатся задолго до того как они все будут исследованы просто по теории вероятности исчезнуть сначала в малых войнах, потом в средних и потом в крупно масштабных если до них дойдет, с общей очень высокой вероятностью завершить игру полной победой над всеми будет крайне непросто.
Нечто выполняющее подобную функцию но крайне грубо можно встретить еще в серии научно фантастических игр Master Of Orion, когда цивилизация игрока достигает высокой мощи - флот, колонии, наука, и даже слегка опережает хотя бы одну цивилизацию AI, то может пробудится древняя цивилизация "Орионцы", которые огромным флотом с высокими технологиями прилетают к игроку и разрушают его до уровня 1 планеты, (они прилетают и к AI игрокам если они достигают определенного уровня могущества) в результате кроме как позднее начать заново ничего не остается, но уже с учетом полученных знаний. Но сейчас это кажетя достаточно грубой реализацией усиления реиграбельности и сохранения интереса к так и не достигнутому уровню развития.
Никаких искуственно созданных читов для ИИ быть недоложно. Вместо того что бы делать технологии крайне долго изучаемыми их можно не растягивать по наукоемкости слишком сильно, а сделать их много, но так, что бы в игре было так же и много факторов усложнаяющих ее. Войны увеличивают сложность с ростом числа цивилизаций многократно, при равноценном AI который играет честно. Кроме этого добавляются такие события как риски повстанческих войн с применением сверх современных вооружений способных уничтожать цивилизации целиком в случае их применения. Возникновение подобных ситуаций только по реалистичным сенариям целиком исключая искуственное наведение неприятности на игрока. Наборы событий которые реально могли бы происходить и усложнить игру добавляют сложности понижая шансы раскрыть все технологии в сумме с войнами и числом других империй (которые вообще совсем не обязательно воинственны).