Смертельный нейровирус Эйфория (NES версия)
Смертельный нейровирус Эйфория (NES версия)
Программист порта: Guyver X.B.M. (http://guyverperevod.byethost7.com)
Программа предназначена для запуска на NES (Dendy). распространяется в виде ROM файла.
Запустить можно на настоящей приставке,клоне, или эмуляторе.
Rom предназначен для запуска на эмуляторах, поддерживающих маппер MMC1 (т.е. на любых).
Тестировался на FCEUX 2.2.3; VirtuaNES version 0.93.
Эту версию запрограммировал Guyver X.B.M. У него есть свой сайт http://guyverperevod.byethost7.com Игра сделана на упрощённом движке для создания игр жанра IF на NES (Dendy).
Эту версию игры отличает красочное оформление. Многие игровые экраны снабжены небольшими рисунками, добавляющими атмосферы. Также, здесь более мощно сделаны некоторые анимации.
В целом порт вышел красочным и стильным.
Это рассказ выполненный в форме компьютерного приложения.
Что-то в духе интерактивной литературы. Рассказ короткий.
Сюжет в стиле киберпанка.
Инъекция неона.
Теперь я могу видеть алмазное небо. Звездочки перед глазами.
Тягучая едкая неоновая жижа поступает в кровь прямо в мозг.
Ангелы и небеса, состояние редкой эйфории. И небо. Небо неона.
Его иначе не увидеть. Неоновая связь.
А ее звали Дедли. Она была рядом. Это электрическая схема,
которая подключалась к моему мозгу, и брала из него питание для своей нейросети.
Микросхема — электроника. Мой мозг — биология. Неон — электрохимия.
Веб-страничка порта: http://www.dimalink.tv-games.ru/deadlyneuroefnesversion
Скриншоты:
ЕЩЕ БОЛЬШЕ СКРИНШОТОВ ПОД СПОЙЛЕРОМ!
- 16 октября 2019, 19:12
- 08
Это что, просто текст с картинками? А где геймплей? Какой смысл выпускать такую "игру" на NES?
По сути да, это экраны текста с картинками. Есть некоторые анимации для стилизации.
Порт вышел очень стильным. Этакая КИБЕР ПАНК литература в картридже с анимациями и картинками.
Литература в интерактивном формате в виде РОМ ФАЙЛА, в теории можно и на картридж!! о КАК!
Хочу отметить,что программистом тут выступал ГАЙВЕР. Он имеет свой ДВИДОК для текстовых и ИФ игр на приставку НЕС, ДЕНДИ. Писал он его на АССЕМБЛЕРЕ (NES ASM-003)!!!! Ну то есть большой герой)))
Ну игра относится к интерактивной литературе. И по сути стилизованная программа-рассказ. Ну почитать в спокойной обстановке стилизированный текст. На любимой приставке, держа в руках джойстик. Классно же)
Это киберпанк и на плату его поместить самое то. Ведь картриджи - это зеленые ,как правило платы.
Ну или хотя бы в виде ROM файла. Ну чтобы на эмуляторе погонять. Ретро киберпанк 8 бит стиль))) Ну и Гайвер как асеммблер программист)) Современное искуство на 8 бИТ киберпанк)))))
А зачем? Можно же было на Си.
Вот поэтому сейчас в играх нет оптимизации.
Зачем писать на Си/Си++ когда можно было на Си# или с каким-нибудь интерпретируемом языке на фреймворке?
Аналогично - зачем писать на ассемблере, когда можно было на Си? Ответ - минимизация кода по объему и скорости выполнения. На NES это важно. Там у тебя нет 4 Гб оперативы для обычного платформера на Геймекере.
Какие 4ГБ оперативы, наркоман что ли? Гамак ест в разы меньше Юнити, на котором ошалелые школьники делают бесконечные ассет-флипы в 200МБ результат компиляции пустого проекта. Иди им это скажи.
И ты упускаешь контекст - для ТЕКСТОВОЙ игры ассемблер не обязателен. Я понимаю если б там были двигающиеся спрайты с физикой. Писать на Си удобно, и никакого героизма в написании на ассемблере того, что удобнее и одинаково не будет тормозить на Си - нету.
Вот сделали бы джем по разработке игры на NES - там за месяц ты бы еле дошёл до вывода спрайтов на экран, а у меня уже была бы игра. Да, она бы тормозила, мне пришлось бы ПРОБЛЕМНЫЕ места переписать на ассемблере. Но твой подход вряд ли сработал бы лучше.
Вот поэтому сейчас в играх нет оптимизации. Вместо производительности выбирают удобство, потому что платформа это позволяет.
А какие игры есть У ТЕБЯ, чтобы их оптимизировать? И не мало ли их и короткие они, потому что ты занимаешься оптимизацией вместо разработки? Только не надо опять отвечать "Вот поэтому сейчас в играх нет оптимизации".
Есть системы жизнеобеспечения, где время критично и может стоить жизни человека. Но игры это ведь игры?
Сперва добейся.
Так это твой аргумент - "сперва оптимизируйте". Это нужно, но не повсеместно.
Суть понятна. Ты вот как бы не приветсвуешь направление такое с нагромождением систем и технологий,все в одном и само чтобы. А вот лучше, самому прописать. И не городить лишнего. Ну я как сумел сформулировал.
Навреное, это надо теорию программирования изучать. Чтобы понять, как такое направление называется.
Один путь писать самому - ровно что тебе нужно,второй путь юзать другие ресурсы,системы,подсистемы юзать для достижения своих целей. Автоматизировать какие то вещи, чтобы другие технологии брали на себя часть твоей работы. При этом не факт что оптимально получиться.
Надо будет спросить Гайвера)) может там по другому не получается)) Все настолько вот)
это прям тренд последних дней/месяцев.
Наверное. За рубежом вообще похоже очень хороший технический уровень. Там блин все есть. И НЕС программирование в том числе.
Давай такую же игру ещё на джем!
Только не на НЕС) и без ассемблера).
Так ностальгия же! Эмулятор в комплект положи просто.
Оформлено здоровски. Хороший простор для мистификации на тему ПОТЕРЯННОГО КАРТРИДЖА. Хоть крипипасту делай.
Давно сам мечтаю сделать свои поделки на NES.
Когда-нибудь доберусь до NESMaker-a.
Вроде там не нужно программировать на ассемблере.
Хотя немного непонятно, не разгневается нинтендо, если сделать игру на этом без разрешения нинтендо,
хз как это работает для homebrew поделок, и можно ли как-то на свои картриджи выпустить.
Я же уже здесь сказал, что и так не нужно:
https://gamin.me/posts/20594?comment=261036#comment_261036
Естественно можно. Ты сам недавно кидал целый каталог всего нелицензионного, с огромным разделом того что есть только на картриджах. Да, это нелегальное издание, про Свитч и все следующие консоли Нинтендо можешь потом забыть. С другой стороны, если ты не собираешься делать себе своё личное имя, студию или бренд, то литературным геймдевелоперским негром ты можешь вписаться куда угодно.
А если я ещё патреон прикручу к этому делу, как будет относиться нинтендо на это?
И имя можно заработать и сам по себе... Тут уже возникают вопросы.
Патреон на издание картриджей? Может скорее Кикстартер? Картриджи один раз издал и всё.
https://www.kickstarter.com/projects/morphcat-games/micro-mages-a-new-game-for-the-nes/description
Разве были случаи проблем с Нинтендо, когда издание своих картриджей без каких либо копирайтед материалов? Нинтендо уже не зарабатывают на NES/Famicom (не считая эмуляций на нес мини, и в ешопах, но это другое), думаю, проблем с изданием своих игр не будет.
С изданием на NES не будет. Просто спустя годы, если идти на какой-нибудь Super sWIItch 3, может всплыть старое имя/название команды. Мораль: не надо подписываться именем-фамилией если релизишь на картриджи или даже просто ROM за деньги, т. к. даже если Нинка не разрабатывает на NES, это означает что ты извлёк доход из чужих технологий, которые не придумывал, не финансировал и разрешения на них не получал. Конечно, ромхакеры, мастера своего дела, делали это тоже без разрешения, но это был чисто любительский интерес, некоммерческий, музейный можно сказать.
Просто я делаю новый муз ром, свой альбом, который хочу распространить на кариках и параллельно делаю игру на свитч. План набрать подписчиков с музыки и толкать им игру разваливается
А, ну если это не игра, то... Вот уж не знаю. Спросил бы ты тех, кто выпускает на картриджах. А если это ты сам, то мои соображения выше. Я конечно тоже не профессиональный юрист, это просто мнение.
Оформлено действительно симпатично!
Тру инди!
Не знаю, это DimaLink сказал что писать на ассемблере - героизм, я возразил. Насчёт C хотелось бы ответить "а что там знать-то", но как-то я теперь уже задумался. За участие - спасибо.
Понять бы ещё эти штуки в Ассемблере. Похоже я никогда его не осилю,
в Ассемблере какая-то совершенно иная логика, чем в других языках. :<
А в С большая часть кода сразу понятна, даже не изучая его...
Логика там одна и так же. Просто все действия разбиваются на очень маленькие блоки. Например, у тебя есть переменная result, и тебе нужно в ней вычислить сумму двух других переменных base_damage + bonus_damage. Для этого тебе нужно дать такие инструкции:
Загрузить base_damage
Сложить с bonus_damage
Записать результат в result
В процессоре ничего не происходит волшебным образом. Чего не знают высокоуровневые программисты, так это того, что вычисления происходят в регистрах. Это хитромудрое слово просто означает "ячейка памяти". Чтобы сложить два числа, достаточно одного регистра. Пусть мы пишем программу под процессоры архитектуры Intel x86 и это будет регистр AX (выбирается из списка регистров процессора под который пишется программа). Этого хватит чтобы сложить 16-битное число с другим 16-битным. Если результат превысит 16 бит, то 17-й бит будет в другом регистре, во флаге переноса. Если нужно складывать числа большей разрядности, надо выбирать другой регистр. Но в текущем выборе:
mov ax, base_damage
add ax, bonus_damage
mov result, ax
Сложно? Само по себе нет, но так на каждое вычисление. А если надо работать со строками (символами), команд становится намного больше. И работать будет только на процессоре заданной архитектуры. Написано под NES - будет работать только на NES (ну точнее на всех сопоставимых процессорах, но сам по себе процессор не существует, а на другом наборе железок программа не заработает просто так). Это вот хорошо что у нас сейчас есть эмуляторы. Но писать приложения под Windows (Linux, Mac, другие десктопы) в 2019 году на ассемблере - сомнительная затея, которую трудно будет поддерживать в работоспособном состоянии.
А зачем загрузить? Это инициализация переменной или нужно помимо инициализации ещё вот это действие делать?
Плюс тут есть вообще функции?
Или хотя бы операторы типа goto, gosub? (они могут быть аналогами функций)
Есть ли тут простейшие if и for?
Надо бы как-нибудь погуглить это всё, хотя вряд ли я смогу даже простой "Hello World" для NES на ассемблере написать)
Чтобы вычислить? Ну как в калькуляторе нужно сначала вбить первое число, иначе с чем работать? Надо его в ячейку записать, это я и обозначил как "загрузить".
Нет, в переменной к этому моменту уже есть нужное нам число. Мы загружаем это число ИЗ переменной в регистр - потому что только в регистре могут происходить вычисления. Переменная это просто что-то где-то в оперативной памяти, тогда как регистр - физически существующая (в реальном мире, а не в магическом мире программирования) в процессоре (да, в той квадратной штуке вставленной в материнскую плату твоего компьютера) ячейка куда попадает нужное количество электронов, чтобы представлять собой нужное число.
Есть, без них никуда.
Хорошие новости - есть. Плохие новости - без goto в ассемблере невозможно сделать цикл for, да и никакой другой цикл тоже. Потому что цикл в нём делается так:
Вместо 10 можно загрузить любую переменную.
В си-подобном коде это было бы:
Нет и нет. Про for я уже показал выше, а всё что ты пишешь в if например так:
Должно вычисляться в ассемблере поштучно и по порядку:
А если у тебя больше проверок в условии, будь добр считай их все по очереди пока не просчитаешь до конца всё. Есть автоматизированные способы это делать: https://ru.wikipedia.org/wiki/Обратная_польская_запись#Пример_вычисления_выражений
Мораль: оно тебе надо? :yak:
Важный факт: "Hello World" это программа, которую никто и никогда не пишет с нуля. Все Хэллоу Ворлды копируются с уже существующих предыдущих, поэтому задача состоит в копировании, а не в придумывании всех заклинаний, обрамляющих то что программисту на самом деле нужно от компьютера. Я имею в виду, если программа должна выводить одну строку, то она и должна состоять из одной строки. А на практике на том же C# тебе нужно писать:
Да, в современных IDE это всё сразу в шаблоне пустого проекта, но сколько мусора приходится видеть на экране, и сколько раз вычислять нужное среди ненужного?
https://excelwithbusiness.com/blog/say-hello-world-in-28-different-programming-languages/ - вот кстати подборка хэллоуворлдов на разных языках. Однако, где короче всего пишется хэллоуворлд, там совсем не факт что удобно делать игру, да и вообще компьютерную программу. Вот вариант для ассемблера собственно:
Я это к чему - чтобы освоить язык и/или платформу, нужно просто работать по уже существующим примерам. Ты себя просто недооцениваешь, другое дело что мотивация работать с ассемблером будет неминуемо падать, учитывая сколько времени требуется на написание программы на нём. И в целом рекомендации на нём делать игры я дать не имею оснований.
Образовательно! :) Сохраню себе куда-нибудь! Спасибо)
Одно время мне было интересно делать ассемблерные вставки в паскалевский код... Эх, времена