Весь данный сайт был бы на много меньше по числу страниц если бы не требования алгоритмов поисковых систем, из-за которых малостраничные сайты показываются хуже, а страницы с небольшими текстами могут не попадать в поиск вовсе, из-за чего если не ориентироваться на эти алогритмы то сколько угодно может быть полезным сайт а его нигде не покажут в поиске. Так что пожелание сделать 1 абзац текста непоместившийся в начале страницы в сочетании с требованием алгоритмов ПС делать много больших текстов привел к написанию целой страницы.
Не все что планировалось получается, поэтому пусть далеко не все, но кое что из наработок предполагается выкложить, если неполучится данный проект целиком, то сохранится часть наработанного опыта, и может быть кому-нибудь накопленный опыт сможет пригодится. В одних случаях проблемы с освещением приводят к мысли конверсии 3D игры в 2.5D т.е. 3D модели в 2D пространстве (в этом случае расстояние от источников света до моделей значительно уменьшается и с освещением ичезают какие-либо неполадки). Проблемы с дальностью рендеринга приводят в свою очередь к конверсии в сектора - по аналогии одной массово известной игры - подобно и другим уже существующим в прошлом играм, если убрать единое пространство рендеринга. То же самое если делать конверсию в 2.5D - получается почти что клон как минимум 2 игр сразу. А делать полный аналог того что уже было ранее - особого желания нет - во всяком случае это совсем крайний случай - потому что такие игры уже существуют и на форумах критики ставят комментарии в стиле "...передранно все что можно было передрать у других...". Это далеко не всегда так - эффекты шейдеров часто похожи особенно если брать готовые примеры (прозрачные эффекты, мерцающие сферы, светящиеся корпуса и т.д. будут почти идентичны в разных играх т.к. програмные алгоритмы там часто почти одинаковые в результате они будут почти одинаковые и в разных играх) - применяя их к материалам кораблей получаются хоть и разные корпуса но с очень похожими эффектами поверхности. У экрана 4 границы, соответственно куда например приткнуть всплывающие сообщения - квадратные вверху - они есть у игр которые создавались под DX9 для 4:3 экранов, длинные сбоку - они то же есть - у игр на DX11 под 16:9 экраны т.к. в этом месте они не отнимают много пространства - это логичные места, остается по сути выбрать лишь будут ли эти кнопки квадратные или загругленные - в итоге многое получается похожим на то что уже есть, что кнопки что эффекты поверхности - когда таких совпадений сразу несколько да еще и жанр совпадает и тематика одинаковая - получаются похожие игры - какой вариант в итоге не принять получается похоже на других, или на одних или на вторых или на третьих - c этим явлением придется смирится, а одна из причин тому - урезание проекта под возможности того или иного движка - в итоге у многих этот процесс приводит к похожим параметрам и возможностям (если свет не работает на большую дальность, и начинает сбоить, то Сферическая планета для стратегии теряет смысл т.к. она предполагает отвод камеры далеко на уровень спутников а это приводит к сбоям - в итоге что бы не тратить расход на смену движка приходят к выводу что сфера отменяется и игра будет на плоской карте - на ней далеко камеру отводить ненунжно значит источники света можно расставить близко - солнце например и все будет работать как надо, т.к. на таких расстояниях глюков не возникает - но правда изначальные идеи такой подход отменяет целиком). Примеры похожих игр есть, их много, что бы не приводить названия этих игр - это независимые переиздания на Windows 10 другими студиями того, во что много лет играли под Windows 7 и 8 с чуть более яркой графикой но почти с теми же юнитами лишь совсем немного другого вида. Со стороны игрока не искушенного это вполне себе неплохо, а со стороны того кто играет давно - зачем, если он уже например наигрался в почти точно такую игру в прошлом, пачка новых юнитов и сценариев с другими текстурами сильно суть не меняет. Не до конца видя полный результат - получится или нет, часть опыта который можно выложить, выкладывается что бы позволить другим разработчикам более быстро преодолеть уже пройденные этапы. Полный исходный код конечно выкладыватся небудет. Его перекомпилируют и выложат в сыром виде на какой-нибудь сайт (так вышел MOO-III - выложенный в сыром виде без наполнения картинками, в результате разработчики так игру и оставили не наполнив целиком предоставив делать это фанатам т.к. игра распространилась среди игроков задолго до старта продаж) или с вставленным кодом троянов которые через этот самый exe будут в обход файрвола копошится удаленным админом в файлах жестких дисков ищя там разные фото паспортов, пароли от онлайн кошельков и т.д, так что это просто невозможно. Но отдельно взятые котороткие обрацы, возможно специально подготовленные для публикации их на сайте, может быть будет возможно выложить, например кое какие шейдеры или что-то в этом духе что можно будет объявить как свободное применение в том или ином виде.
Это раздел для тех кто захочет создать свою игру, в качестве посильной помощи желающим занятся разработкой компьютерных игр, на основе существующего субъективного опыта который был приобретен не за один день или месяц а за гораздо более занчительное время. В то же время нет желания что бы данный раздел сподвиг кого-либо кинуться в разработку игр, в России только за 10 лет как минимум два средних или относительно крупных проекта потерпели неудачу находясь на поздней стадии с готовыми демо, один даже проводил демонстрацию почти готовой игры за год до ее планового выхода (споры инвесторов, продажа доли одним из инвесторов другой игровой студии, закрытие проекта, включение идеи в другую будущую игру от другой студии, далее следы теряются, и т.д.). Что касается закрытых одиночных разработок на поздних стадиях с демо выложенных в интернет - их больше, некоторые сайты в замороженном виде есть и в 2020-х спустя 3-5 лет после остановки работ (техническое устаревание графики в процессе длительной разработки, выгорание разработчика - хотя все было почти готово, тут можно добавить изначально сложные в программировании движки взятые в работу).
В качестве очень весомого предостережения - лучше не начинать разработку компьютерной игры если нет свободных денег что бы потратить их на высоко рисковое дело, создание игры требует денег, времени, знаний - врмени потребуется много, по чайной ложке кода в выходной почти точно не подойдет, а недостаток знаний и опыта приведет к большим перерасходам. Это не только мнение администратора сайта но и многих других - даже целых студий. Лучше просто играть в игры и получать удовольствие от них в том виде в котором они есть, чем на много лет попасть в их разработку учтивая все риски которые могут дать о себе знать. Ненужно так же целиком рассчитывать на программиста который где-то существует которому можно заплатить хорошую сумму денег и он все сделает и порешает все технические сложные ситуации - находилась небольшая студия, она выставила высокую цену и получила отказ, после чего сама решила попробовать сделать задачу без денег, что бы занять разработчиков - у них неполучилось, оказалось что не смогли бы сделать даже за деньги, вопрос был решен долгими попытками в перемешку с большими перерывами и новыми попытками - тут нужен энтузиазм, запал, желание - вопрос денег, если это не какие-то совсем "сумасшедшие" деньги, в сфере бизнеса приведет к оценке сроков, паре попыток это сделать, отказу и переключению усилий фирмы на другие проекты которые просще и быстрее реализовать и превратить в доход т.е. может так получится что некоторые задачи за обычные по рынку деньги никто не возмется сделать, а кто возмется потом откажется - т.е. желательно многое уметь делать самостоятельно. Нужно реально оценить силы и сроки, часто лучше принять решение просто играть в игры а не делать их. Начав их делать может получиться так что просто играть в них уже неполучится - мысли будут посещать такие что - а как это сделано, а почему боеприпасы не расходуются как нужно, а где файлы с шейдерами можно ли их поменять, а почему AI штампует юнитов по порядку из очереди производства а не через план заказов, а как это изменить и начать пробовать это изменять вместо игры, и т.д. Дальше - на работу в офисе это так же очень плохо влияет - при переходе между работами спросят чем занимались последние 4-6 месяцев, игру делали? А как эти пробртененные навыки помогут вам на нашей работе? Вот если бы вы занимались в свободное время базами данных и их связью с программой "Бухгалтерии" это бы нам очень подошло а так получается у вас нет конкурентного преимущества, и вы скорее теряли навыки приобретая в последние месяцы ненужные для бизнеса и, это будет отказ в новой работе в итоге - тем более что работник после работы должен отдыхать а не снова сидеть перед компьютером делая свое Хобби и затрачивая на него силы - в общем, разработка своей игры не должна поглащять все время разработчика - половину нужно тратить на развитие требуемое бизнесу, иначе игра станет блоком - меткой по которой будут отказывать в хорошей работе стоит лишь о ней упомнуть где-то. Следующее предостережение уже для тех кто изучает 3D движки что бы зарабатывать делая что-либо на них для студий - это время потраченное на крупные 3D движки - большая троица условно бесплатных считающихся стандартом игровой индустрии - были форумы по котором погрузившиеся в эту тему студенты потратившие уже после завершения учебы по 3 года на работу в этих средах, не смогли найти себе применение (работу) - заказов нет, бизнесов которым это нужно так же совсем немного, вектор приложения их усилий оказался не востребованным - т.е. не стоит слушать все подряд рекламные посты которые создают по заказу для продаж курсов обещающих обучить 3D движкам для заработка больших денег тем кто их хорошо знает - часто в реальности это совсем не так как рассказывают в интернете. В общем - нужно самим думать. Что касается непосредственно разработки своей игры - если даже все получится - будет найдена подходящая программная среда, в ней будут исправлено все что нужно и дработано, за время разработки эта среда устареет технически и одна игра это максимум что будет создано т.е. применить наработанный опыт для реализации следующего проекта который с учетом опыта позволит быстро и просто реализовать следующую задумку - может быть просто не актуально - техническое устаревание, очень просто - exe не запустится в будущей версии OS без сложной облочки, обертки и т.д. а получится ли ее сделать или нет - неизвестно и отбить потраченное на долгий поиск решений задействовав отработанную платформу снова ее раз в новой игре может неполучится. Можно снова повторить что лучше просто играть в игры и не залазить в их разработку. То же самое с идеями со сбором денег - крупную сумму многие банки скорее всего заблокируют и не отдадут либо очень долго либо может быть совсем, потребуют документ от того кто их задонатил/отправил или еще что-нибудь а отправитель незахочет этими вопросами лишними для себя заниматься (он и так уже потратил свое время и деньги отправил, ему еще и лишние перезвоны/переписки будут вообще никчему что-то пояснять для чего и зачем он это сделал и зачем ему это было нужно) - небольшая сумма особо сильно не поможет - такие скорее всего пропустят на счет, а действительно ощутимую и за 2-3 недели скорее всего не отдадут - что бы не выпрашивали отдать могут пытаться отправить в суд, доказать что действительно нужно разблокировать их, в итоге половина может растратится на юристов, договора такие с финансовыми организациями прописываются что в таких ситуациях никто ни на какие возвраты не рассчитывает в случаях заморозки (разных таких необычных ситуаций - в договорах может быть такая заметка неважная на первый взгляд при заключении обслуживания при открытии счета по которой никто никому ничего особенно и не должен в такой ситуации) - т.е. можно не ждать сильно что кто-то компенсирует какие-либо издержки при блоке счета и т.д., а это происходит совсем не редко, и если у кого-то нет готовой суммы на создание игры и с подобной ситуацией столкнушвись хоть раз, рассчет на донаты быстро исчезнет просто за нежеланием тратить силы на выцарапывание денег из финансовых организаций - можно найти и почитать и даже посмотреть видео - отзывы об этом в интернете с множеством эмоциональных комментариев по этому поводу. По относительным субъективным оценкам для небольшой или даже средней не уточненной игры например на движках под DX11, потребуется бюджет в квартиры три - если трех квартир в наличии нет которыми можно профинансировать создание игры то от идеи лучше откзаться пока еще не начали ее реализовывать, в ином случае вполне вероятно что до конца можно не дойти - дофинансировать расходы донатами часто просто приведет к блоку счета - наиболее разумно, если есть такая идея то: нарисовать, представить, повоображать - и отложить в сторону - это сэкономит массу сил и времени, без готовой технологии - проверенной методики изготовления игры - очень вероятно что задумка в полном объеме не получится и столкнется с багом, техническим подводным камнем или чем-то подобным. Баг вызовет необходимость перерасхода ресурсов на наработку новых технологий и кода, либо потребуется полный отказ от изначального плана, преобразование игры в сторону упрощения и уже в упрощенную игру переносить уже ранее созданные модели - а такие игры могут быть не так интересны как ожидалось - ни игрокам ни разработчику (почему мало игр со сферическими плантами и игры идут на плоскости, почему много игр идут в квадратных пространствах, почему 3Д модели часто выглядят как пластиковые игрушки с подстветкой яркости - это части следствия сокращения изначальных идей под возможности тех сред которые были взяты на старте - а далее ограничение финансирование не позволяло провести работы по поиску нового решения что бы сделать иным образом.)
Ну а для тех кто это все прочитал. Для самых хардкорных разработчиков компьютерных игр есть DX и Vulkan - просматривая разные статьи от руководителей студий - те кто работал на Вулкане в чистом виде без движка - формируя на нем собственный движек под свои задачи, т.к. существующие движки не устроили по ряду причин, сообщают что если бы они знали все сложности, они бы не начали. Не пробуя по серьезному делать собственный 3D движек совет такой что лучше просто прислушаться к тем кто уже пробовал - вроде бы, этих же эффектов можно было достигнуть намного более простыми путями, во всяком случае речь идет о первых версиях среды - как все это продвинулось потом - неизвестно - может быть что-то поменялось с тех пор, однако речь современна эпохе DX11. Попробовав пару раз начать и там и там, работа в чистом DX или Vulkan не продлилась и полной недели, стало понятно что делать собственный движек лучше не рисковать - учитывая сколько недочетов с точки зрения использования разных готовых разработок было обнаружено, то 90-95% вероятность что будет допущена какая-либо ошибка, или в тенях или в освещении, либо в работе рендеринга камеры т.е работать будет но с глюками (силой эти мысли гонятся прочь что бы не начать это делать). Более разумно сосредоточится на применении существующих, уже готовых 3D движков. Сроки плановые можно брать в трое+ более высокие. За корпорациями - не угнаться - игры 2020-х высокой категории, например в Британии или США на передовом уровне графики и гигантских миров создают команды в 48 человек работая на старте по 2-3 года, затем увеличивая временно штат до 130 на пару лет, на время наполнения контентом, постройки улиц, проверки фасадов домов, создания ландшафта и т.д. потом штат снова сокращается до полусотни для завершения разработки еще в течении еще 2-3 лет добавления сценария. В таких играх есть и шерсть, и много анимации персонажей, и красивые виды, и солнце отражается от стекл и шейдеры меняют геометрию предметов разбросанных по локациям (и иногда - глючат и сыпятся баги, их маскируют и проект выходит со скрытой частью мира от игрока иногда скрываются входы убирая до 30% мира делая его непосещаемым т.к. посещая эти улицы в домах сверкают дырки или белые куски чего-то что по каким-то непонятным причинам ни у кого неполучилось исправить и убрать) - да, и подобного масштаба проекты сообщают о обнаружении критических неполадок на доработку которых трубуются еще дополнительные силы, а финансировать это скорее всего небудут, и проекты уходят в простой на годы скоращая команду до нескольких единиц, пока не найдут решение (подобные проекты сразу нацеливаются на передовые игровые консоли и компьютеры, инициируют их акционерные общества уже имеющие доходы от игровой индустрии - т.е. вкладывают в развитие доходы полученные от других игр и оборудования, с целью продвижения всей индустрии все новой и новой графикой и масштабами.)
В процессе разработки компьютерной игры накопилось некоторое число примеров кода, но выкладывать все из них точно не имеет смысла т.к. с задачей ознакомления с типичными примерами вполне справится пара пособий по C++ (Visual Studio 2017 в большинстве случаев подойдет как компонент среды разработки для многих движков в том числе и для Vulkan и для DX11 и для некоторых движков на DX12). Это самый быстрый язык (не считая ассемблер), многие другие среды разработки будут медленнее, какие-то раза в полтора или по крайней мере субъективно от 5%, так что если кто-либо начинает на чем-то другом лучше как можно быстрее перейти на C++, чем быстрее это произойдет тем лучше. В то же время какой-то графический визуальный фрагмент уже слишком сложен для ознакомления - с этой задачей лучше справятся учебные туториалы в самих 3D движках. В разделе планируется выкладывать только то на чем может возникнуть крупная остановка в разработке компьютерных игр, на что потребовалось очень много времени прежде чем было найдено верное решение и что отвлекло на себя внимание от непрерывного создания и наполнения игрового мира чем-либо, т.е. технические сложности потребляющие время разработки больше чем это кажется разумным, отвлекая силы и время от непосредственно создания самой игры.
Фотостоки - сервера с текстурами, в том числе платные, не стоит на них рассчитывать как на 100%-й источник лицензионной графики. Купленные когда-то CD, DVD, BD диски более надежны - с сайтов приходят письма с отзывом лицензий то на один то на другой комплект текстур или картинок скачанный ранее, например года через пол после скачивания, т.к. автор оказался не настоящим а взял текстуры еще с какого-то сайта, лицензия аннулируется а проблему дальнейшего их примненеия в проекте если это нужно предлагается решать с нарушителем, который может еще и оказаться в другой стране, либо удалить все текстуры нарушителя прав из игры - так что вопрос лицензионной графики требует более серьезной работы чем простой подпиской на фотобанках, как минимум на каждый комплект текстур нужно обладать еще одним, что бы поменять их получив отзыв лицензии на почту если такое произойдет - либо не покупать готовые а заказывать уникальные текстуры у авторов что бы исключить все ситуации с отзывом лицензий - это все лучше знать до релиза игры.