SejaDev853, Другой полом вспомнил: Игра Desperados первый была рассчитана на ЭЛТ и была пиксельной природы, но играть-то на ЖК в штатном разрешении хочется. Игру хакнули, но на одном уровне, который по «везению» вложился в ширину большинства экранов, видео на движке перестало работать.
SejaDev853, Я помню такой полом: на «средних» мобильниках (128×…) летящий по баллистической траектории снаряд проходит над головой героя (если прилечь), а на «крупных» (176×…) — прямо в героя, ложись не ложись.
Примерно тогда я сменил Moto V180 на SonyEr Z550i, так что опробовал игру на том и другом.
SejaDev853, С поломками геймплея из-за разных разрешений экрана я знаком с Java ME. Хотя там из-за малых разрешений всё было пиксель в пиксель, никаких «непрерывных».
SejaDev853,
• «Непрерывная» = единица движения меньше, чем пиксель. Примеры: Braid, Hollow Knight, Planet of Lana.
• Пиксельная — единица физики, может, и меньше (даже в Super Mario она 1/256), но изображение составлено из здоровенных пикселей и экранное движение идёт по ним. Примеры: Shovel Knight, Hyper Light Drifter.
• Матрица преобразования = видовая матрица — матрица 4×4 для перевода из мировых координат в экранные.
• Квадратный/неквадратный пиксель — ну, думаю, понимаете. Равные у него стороны или нет. Сейчас склоняются к квадратному, но последнее неквадратное — это 1280×1024 на мониторе 4:3.
• Игра «сломалась» — поломка геймплея, рендерера или чего-то ещё. Примеры: враг атакует из-за краёв экрана и хрен достанешь, или наоборот — идём и видим наперёд врага, которому ещё не дали команду атаковать, или у вражеского рывка есть конкретная дальность и на широких экранах он не достаёт и сам попадает в неловкое положение, или уровень в ширину умещается в особо широкий экран.
• Промежуточный холст — имеется в виду не прямо на экран, а на доп. картинку. Так, например, рендерят в гонках зеркало заднего вида. А в пиксельных играх — избавляются от ошибок округления.
• MIP-текстурирование — тебе в 2D вряд ли понадобится, но это использование текстур разного размера для экономии памяти, оптимизации доступа и улучшения картинки (разрешение завышено — рандомные пиксели, занижено — мыло).
• Островок текстуры — непрерывный участок текстуры.
• Псевдо-векторное — лучше всего видно в надписях Team Fortress 2, которые на любом разрешении чёткие, как будто векторные.
• Шейдер — программа для видяхи, отвечающая за создание визуальных эффектов.
My1Name, Посмотрев на это, я лично считаю, что будущее игр за нейронными шейдерами. Они смогут сделать мех как у этой псины, только в реальном времени и будут отвечать исключительно за мех. Или кирпичи, или траву. А то теперешний игровой мех ну крайне читерский. А игровой процесс останется традиционный: судейство автогонок определённо объективнее, чем у фигурного катания.
My1Name, Если посмотреть видео со щенком, видим там огромную кучу киноляпов.
1. Не уверен, что кед так надет на левую ногу.
2. Кеды разного цвета.
3. Вместо поводка драная верёвка.
4. Эта верёвка то висит в воздухе, то попадает в руку хозяйке.
5. Движения щенка очень сомнительны.
6. В кадр попадают три пальца, и на всех разных маникюр.
7. Пола куртки пересекается с ногой.
8. Хозяйка приседает — правая нога остаётся выпрямленной.
Так что я крайне сомневаюсь, что все эти киноляпы — дело трёхмерного движка. Наоборот, больше похоже, что 99,9% работы выполнялось в 2D. А трёхмерное представление сцены самое что ни на есть неортодоксальное и перегон этого представления в формат движка представляется излишним.
My1Name, Ещё раз: 3D-движок — это куча утилит, полезных для игр (не нужны), метод хранения сцены в виде моделей, ригов, текстур и т.д. (не нужен), метод управления видеоплатой (нейродумалка работает быстрее и качественнее, но совершенно неконтролируемо). Мне больше сдаётся, что она строит очень грубый трёхмерный вид сцены, любым методом (хоть в лоб — а совсем не игровым 3D-движком) преобразует её в 2D, а потом уже в 2D нейронкой наводит красоту.
My1Name, Как раз на 3D-движок не похоже — по той причине, что 3D-движок (в традиционном его понимании) принимает на вход 3D-модели и прочие данные о сцене. Его возможности ограничены, зато он полностью контролируем, что важно в играх.
Нейродумалка вольна делать что угодно и потому её результат значительно богаче, чем у движка, но из-за этого «чего угодно» допускает киноляпы. Некое подобие (!) 3D-движка может применяться в самом начале, когда надо раскидать объекты по планам. Да хоть, извините, майнкрафт воксельный! — чтобы примерно понять: тут здание, тут девушка и т.д. А окончательная доработка — в 2D. Самое интересное, что многие свойства объектов реального мира нейросеть узнаёт просто из-за огромной обучающей выборки. Так, она как-то узнала, что кусаешь еду — остаются следы зубов.
SejaDev853, На СОВРЕМЕННЫХ мониторах матрицу преобразования строят исходя из квадратного пикселя. Это будет чуть сложнее, чем на кинескопах (там обычно исходили из разрешения 4:3), но этот механизм вполне можно отладить, запуская игру в окне.
SejaDev853, Отдельный вопрос — экраны «диких» размеров вроде 4к×1080. В таком случае придётся сделать окно таких размеров, чтобы игра не «сломалась». А остальное — чёрное.
Смотря какой API используете и какая будет игра. Допустим, в пиксельных общепринят механизм, когда сначала игру рендерят на промежуточный холст нужного разрешения (скажем, 640×480), а потом этот холст увеличивают на нормальный экран. В 3D и «непрерывных» 2D собирают матрицу преобразования исходя из разрешения экрана.
Если игра 2D и «непрерывная», типа Hollow Knight, просто определите размер объекта в пикселях на желаемом экране (например, 1080p), округлите до степени двойки и рисуйте.
Aledosdasas
Интересный пример про НЕимущественные права. Основан на реальных событиях.
Пример 1. Шутник взял и нарисовал на фотографии ВОВ лукасовский AT-AT. Нарушены неимущественные права? НЕТ, это просто шутка. (Имущественные права на грани нарушения, AT-AT тоже должен откуда-то взяться, но это другой вопрос, и на подобные мелкие нарушения часто закрывают глаза ради всеобщего добра.)
Пример 2. Тупой бильд-редактор взял и вставил эту фотографию в учебник. Нарушены неимущественные права? ДА, право на неприкосновенность. Он выдал шутку за оригинал.
NikiI, Регистрация программы может решать только в двух случаях:
1. Споры о плагиате.
2. Чтобы пришедший позже товарный знак хотя бы оставил в покое.
Есть и другие способы решить то и другое.
Может зарешать, если они НЕ УСПЕЛИ зарегистрировать товарный знак.
И ещё одна фишка: тупое название типа TileMapEditor товарным знаком быть не может.
floppa322, Полагаю, когда источник случайности дорогой (физический), программисты будут стараться не отбрасывать, а строить аппроксимацию F—1 получше, через какие-нибудь эрмитовы кубические кривые. Хорошему источнику — хорошая аппроксимация, верно?
floppa322, В компьютерном деле используется функция распределения (прямая или обратная) всегда, когда её можно эффективно найти. Допустим, для симуляции гауссова распределения проще выкинуть треть сгенерированных чисел и пару (x,y), случайно попавшую в единичный круг, превратить в пару гауссовых, чем считать гадкую функцию. А не попавшую — выкинуть. Но это уже оптимизации. Обычно находят число от 0 до 1, и F—1(ω).