Самодельная 16-битная игра про пони - "Трикси и алмазы"
После полугода работы, я представляю еще один игровой проект — одноэкранная игра в жанре «бей-собирай», про Трикси, чудовищ и алмазы.
Игра выполнена в стиле 16-битных игр для MS-DOS примерно 1990-95 годов, каковой и является. Она работает как 16-битное приложение для реального режима процессора x86, использует только основную область памяти 640 Кб (сама занимает около 300 Кб) и графический режим VGA 320x200, 256 цветов. Для запуска игры можно использовать как совместимые операционные системы (MS-DOS, FreeDOS, Windows в режиме эмуляции) на подходящих процессорах вроде 386/486 — так и более привычные для 2020 года способы запуска старых игр, например, DOSBox.
Подробнее об игре, способах запуска и планах — под катом.
Немного скриншотов игры:
Меню
Руководство
Геймплей
Дистрибутивы и zip-архивы с игрой:
Игра в виде zip-архива для 16-битных систем или DOSBox
tereshenkov.ru/trixie16bit/Trixie-1.0.0.1-DOS16.zip
Игра в виде дистрибутива для современных версий Windows с уже настроенным DOSBox
tereshenkov.ru/trixie16bit/Trixie-1.0.0.1-emulator-Win32.exe
Игра в виде zip-архива для современных версий Windows с уже настроенным DOSBox, но без системы установки и ярлыков на Рабочий стол
tereshenkov.ru/trixie16bit/Trixie-1.0.0.1-emulator-Win32.zip
Исходные тексты игры:
tereshenkov.ru/trixie16bit/Trixie-1.0.0.1-source.zip
Как в это играть
Самый правильный способ — достать из сундука свой системник 90-х годов с установленным MS-DOS, закачать на него по нуль-модему zip-архив с игрой и запустить из консоли или Norton-а файл игры game.exe или game_fpu.exe (второй файл предназначен для компьютеров с математическим сопроцессором, а первый может работать без него).
Минимальные системные требования для запуска на физическом железе:
Способ 1: Использование DOSBox
Нужно скачать архив с игрой, распаковать в каталог, подмонтировать его в DOSBox и запустить файл игры, любой из двух. Рекомендуемое число циклов — 5000, чтобы перевести в полный экран, можно использовать Alt+Enter.
Способ 2 (рекомендуемый): Использование дистрибутива с уже настроенным DOSBox
Нужно скачать игру в виде дистрибутива для современных версий Windows с уже настроенным DOSBox, запустить установщик и после завершения — запускать игру ярлыком с вашего Рабочего стола. Работать должно на любой Windows от XP и выше. Если нет желания использовать установщик, можно скачать zip-архив для современных версий Windows с уже настроенным DOSBox, распаковать его в любой каталог и запускать файл DOSBox.exe
Способ 3 (экспериментальный) Использование online-эмуляторов DOS
Я рекомендую вот этот
virtualconsoles.com/online-emulators/dos/
Загружаем в него архив с игрой, в консоли пишем game.exe и играем прямо в броузере. Есть проблемы — на некоторых броузерах эмулятор не работает как надо, установить закономерность не удалось.
Есть и другие сайты с эмуляторами.
После запуска игры, обязательно прочитайте раздел справки! Помимо двухстраничного сюжета, там описывается игровая задача и управление, которое нетривиально.
На чём это написано
Движок игры (работа со спрайтами и видеопамятью) — на ассемблере, компилятор NASM.
Игровая логика — компилятор Microsoft QuickBasic 4.5
Модель памяти — medium
Форматы спрайтов — индексированный PCX, сжатый RLE
Звуковые эффекты взяты из книги про QuickBasic.
Спрайты, к сожалению, почти все надерганы с Яндекс.Картинок — сам рисовать не умею.
Исходники игры доступны по ссылке выше, если вдруг найдутся желающие в них поковыряться.
Зачем это в 2020-м году
Потому что могу.
И ещё всегда, сколько себя помню, хотел сделать игру для ПК. Игру-то сделал, и год назад даже опубликовал финальную версию, но чувство легкой неудовлетворенности осталось — потому что хотел сделать ещё в те годы, когда «всем хватит 640Кб»©.
Теперь этот висяк длиной в 22 года закрыт. А почему игра с пони — потому что с пони всё становится лучше.
Перспективы
Мои личные хотелки и странные желания — данный проект закрывает полностью.
Но если игра придется по нраву хоть паре человек — я буду дорабатывать. В планах:
Благодарности:
Игра выполнена в стиле 16-битных игр для MS-DOS примерно 1990-95 годов, каковой и является. Она работает как 16-битное приложение для реального режима процессора x86, использует только основную область памяти 640 Кб (сама занимает около 300 Кб) и графический режим VGA 320x200, 256 цветов. Для запуска игры можно использовать как совместимые операционные системы (MS-DOS, FreeDOS, Windows в режиме эмуляции) на подходящих процессорах вроде 386/486 — так и более привычные для 2020 года способы запуска старых игр, например, DOSBox.
Подробнее об игре, способах запуска и планах — под катом.
Немного скриншотов игры:
Меню
Руководство
Геймплей
Дистрибутивы и zip-архивы с игрой:
Игра в виде zip-архива для 16-битных систем или DOSBox
tereshenkov.ru/trixie16bit/Trixie-1.0.0.1-DOS16.zip
Игра в виде дистрибутива для современных версий Windows с уже настроенным DOSBox
tereshenkov.ru/trixie16bit/Trixie-1.0.0.1-emulator-Win32.exe
Игра в виде zip-архива для современных версий Windows с уже настроенным DOSBox, но без системы установки и ярлыков на Рабочий стол
tereshenkov.ru/trixie16bit/Trixie-1.0.0.1-emulator-Win32.zip
Исходные тексты игры:
tereshenkov.ru/trixie16bit/Trixie-1.0.0.1-source.zip
Как в это играть
Самый правильный способ — достать из сундука свой системник 90-х годов с установленным MS-DOS, закачать на него по нуль-модему zip-архив с игрой и запустить из консоли или Norton-а файл игры game.exe или game_fpu.exe (второй файл предназначен для компьютеров с математическим сопроцессором, а первый может работать без него).
Минимальные системные требования для запуска на физическом железе:
- Процессор 386SX или лучше (оптимально работает на 486DX)
- Частота процессора от 30 МГц и выше (на 20 МГц игра работает, но заметно медленнее)
- Подключенный PC Speaker для звуков игры
- Видеокарта VGA, поддерживающая режим 320x200x256
- Цветной монитор
Способ 1: Использование DOSBox
Нужно скачать архив с игрой, распаковать в каталог, подмонтировать его в DOSBox и запустить файл игры, любой из двух. Рекомендуемое число циклов — 5000, чтобы перевести в полный экран, можно использовать Alt+Enter.
Способ 2 (рекомендуемый): Использование дистрибутива с уже настроенным DOSBox
Нужно скачать игру в виде дистрибутива для современных версий Windows с уже настроенным DOSBox, запустить установщик и после завершения — запускать игру ярлыком с вашего Рабочего стола. Работать должно на любой Windows от XP и выше. Если нет желания использовать установщик, можно скачать zip-архив для современных версий Windows с уже настроенным DOSBox, распаковать его в любой каталог и запускать файл DOSBox.exe
Способ 3 (экспериментальный) Использование online-эмуляторов DOS
Я рекомендую вот этот
virtualconsoles.com/online-emulators/dos/
Загружаем в него архив с игрой, в консоли пишем game.exe и играем прямо в броузере. Есть проблемы — на некоторых броузерах эмулятор не работает как надо, установить закономерность не удалось.
Есть и другие сайты с эмуляторами.
После запуска игры, обязательно прочитайте раздел справки! Помимо двухстраничного сюжета, там описывается игровая задача и управление, которое нетривиально.
На чём это написано
Движок игры (работа со спрайтами и видеопамятью) — на ассемблере, компилятор NASM.
Игровая логика — компилятор Microsoft QuickBasic 4.5
Модель памяти — medium
Форматы спрайтов — индексированный PCX, сжатый RLE
Звуковые эффекты взяты из книги про QuickBasic.
Спрайты, к сожалению, почти все надерганы с Яндекс.Картинок — сам рисовать не умею.
Исходники игры доступны по ссылке выше, если вдруг найдутся желающие в них поковыряться.
Зачем это в 2020-м году
Потому что могу.
И ещё всегда, сколько себя помню, хотел сделать игру для ПК. Игру-то сделал, и год назад даже опубликовал финальную версию, но чувство легкой неудовлетворенности осталось — потому что хотел сделать ещё в те годы, когда «всем хватит 640Кб»©.
Теперь этот висяк длиной в 22 года закрыт. А почему игра с пони — потому что с пони всё становится лучше.
Перспективы
Мои личные хотелки и странные желания — данный проект закрывает полностью.
Но если игра придется по нраву хоть паре человек — я буду дорабатывать. В планах:
- Больше режимов сложности (сейчас легкий режим от сложного отличается только скоростью регенерации маны)
- Элементы аркады
- Разные игровые уровни и задачи (выживание, охота, бесконечный режим)
- (вероятно) Перенос игры на что-то более современное и превращение в полноценную аркаду
Благодарности:
- makise_homura — за тестирование на DOSBox для Эльбруса
- kuzya93 — за тестирование на процессоре 386
- Корпорации Microsoft — за божественную IDE QuickBasic 4.5, которая даже спустя десятки лет — всё еще удобна в использовании, и позволяет делать код, а не бороться с окружением.
- Разработчикам NASM — за то, что их компилятор Ассемблера единственный, кто удовлетворяет аж двум условиям: свободный и собирает 16-ти битный бинарник.
252 комментария
Качал со второй ссылки.
UPD: Воспроизвести не удалось, можешь описать подробней?
Вот заснял Спойлерdrive.google.com/file/d/1B5NRJo70khocqBzkhRJxYNj2Mf527ttk/view?usp=sharing
Еще задумался — разумно ли, что в режиме бессмертия не работают прыжки, выстрел и подбирание кристаллов?
В закладочку, интересно пощупать будет-с!
«Таков путь»©
Мана только слишком быстро уходит имхо, даже на легком уровне.
Хитрость — не нужно монстров бить по одному, нужно их по 3-4 одним шаром истреблять.
Я не настолько бородат, не осилю.
Думаю без труда осилишь Laser Basic с ассемблерными вставками. =)
ru.wikipedia.org/wiki/%D0%91%D0%9A_(%D1%81%D0%B5%D0%BC%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%BE_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BE%D0%B2)
Первый мой ПК, всё-таки. Плюс 16 бит, нет проблем с операциями арифметическими.
Ну это ж Трикси, а не принцессы. Не те силы.
А вот с сопроцессором проблем не нашли, пашет и так, и этак.
В динамике, они более заметны на фоне, но по уму, как будет денежка, закажу пиксельным художникам эти пять анимаций.
— Зачем слова такие «юзаешь»? Пиши: «Игра лёгкая» и «Игра сложная».
— Так ведь намного лучше звучит.
Сейчас поправлю, спасибо что заметил.
В следующей версии добавлю, если будут заинтересованные.
Как детей разгоню на учебу в вузах — может, и займусь.
Может, я не понимаю специфики, но ромхакеры вовсю юзают asm68k или GNU AS для m68k (кому что нравится), и бед не знают.UPD: я неправильно проинтерпретировал слово «ассемблер»: не «программа-сборщик», а «язык»
1)…
2)…
3)…
4)…
Нормальные люди с дискеты с ДОСом грузятся и все )… Нормальные, да...)))
Самое первое знакомство с устройствами хранения данных, было в глубоком детстве, в виде притащенного отцом прибамбаса, похожего на стопку патефонных пластинок в круглом корпусе.
«Стоит отметить, что ленточные накопители, как правило, используются в тех сферах, где необходимо хранить очень большое количество информации. Например, в каких-либо крупных исследованиях. Так, магнитную ленту используют для записи результатов исследований на Большом адронном коллайдере. О преимуществах технологии в свое время рассказывал Альберто Пейс (Alberto Pace) — глава подразделения обработки и хранения данных CERN. Он отметил, что магнитная лента имеет четыре основных преимущества над жесткими дисками. Прежде всего, это скорость. Несмотря на то, что специализированному роботу требуется до 40 секунд, чтобы выбрать нужную кассету и вставить ее в считыватель, чтение данных из ленты происходит в четыре раза быстрее, чем с жесткого диска. Еще одним преимуществом магнитной ленты, по словам Пейса, является ее надежность. Если она рвётся, то ее можно легко склеить. В этом случае теряется лишь несколько сотен мегабайт данных. Когда выходит из строя жесткий диск, теряются абсолютно все данные. Глава подразделения CERN привел некоторые статистические данные, касающиеся надежности устройств. Так, в среднем за год в CERN из 100 петабайт данных, хранящихся на магнитных лентах, теряется лишь несколько сотен мегабайт. На жестких дисках располагается около 50 петабайт информации, и каждый год организация теряет до нескольких сотен терабайт в результате неисправностей HDD. Третьим преимуществом магнитной ленты является ее энергоэффективность, а точнее, экономичность. Сами ленты хранятся в неактивном состоянии, следовательно, они не потребляют энергию. Наконец, четвертое — это безопасность. Если злоумышленники получат доступ к жестким дискам, то они смогут уничтожить всю информацию за считанные минуты. В случае с магнитными лентами на это может уйти не один год.»
А не выиграешь — будешь на ZX-Спектрум (Синклер) оную игру переводить. Вручную… И на магнитофонные кассеты сохранять…
Прикольно, респект! =)
Извращенцы…
Это хороший вопрос. Я в процессе работы пересмотрел множество вариантов — по факту, если нужно разрабатывать для 16 бит и не красить паруса в черный цвет — то есть только два способа: OpenWatcom и Turbo C. Первый допускает некоммерческое использование частными лицами, а второй недавно был отдан в аналогичное использование компанией-владельцем, версия 2.1
Подробней об этом в посте про разработку расскажу.
Проблема в том, чтобы заставить его эмитировать инструкции для 16-битных процессоров.
-mtune=CPU optimize for CPU, CPU is one of:
generic32, generic64, i8086, i186, i286, i386, i486,
i586, i686, pentium, pentiumpro, pentiumii,
pentiumiii, pentium4, prescott, nocona, core, core2,
corei7, l1om, k1om, iamcu, k6, k6_2, athlon, opteron,
k8, amdfam10, bdver1, bdver2, bdver3, bdver4, znver1,
btver1, btver2
При включении этого режима компилятор начнет работать с сегментами кода по 64Кб, эмулировать самодельную кучу в пределах 640Кб, собирать дальние указатели из сегмента/смещения, наконец, использовать прерывания int 13h и int 21h для файловых операций? Если нет, то это тыква вместо кареты выходит.
Я тоже немного порылся насчет этого и пришел к выводу, что gcc это светлое настоящее, а для темного прошлого, выбор ограничен.
Мой говорит так:
Технически, наверное, это можно реализовать, но такого бэкенда, увы, к gcc ещё никто не написал и вряд ли напишет (учитывая то, что вроде как gcc не умеет во внутреннее представление gcc-ir меньше 32 бит, но тут я могу ошибаться).
gcc cross-compiler for 16-bit x86 processors (2019)
Может кому пригодится, как и SDCC
А вот это уже интересно. О.о Это вообще возможно? Там же столько завязано на особенности защищённого режима i386.
UPD: а хотя посмотрел, похоже, это не порт ядра Linux, а скорее написанное с нуля похожее ядро.
А указать ему что-то ниже i686 у меня не удавалось.
mov ax,123 он делает уже на -O1 или -O2 (да и на -O0 не сильно больше — типа mov di, a; mov bx, i; mov ax, 123; mov [bx + di], ax). При присваивании как раз-таки библиотечных функций не вызывается (кроме особых случаев, типа профилирования и санитайзинга, но мы не будем про них).
То есть, если это делать в цикле, то псевдокод будет такого типа
или такого?
Википедия пишет, что turbo pascal сейчас abandonware. То есть его нельзя официально купить, он не поддерживается и компания от него не получает доходов. Преследовать за использование тоже никто не будет и ущерб ты никому не наносишь.
Увы, только через GO32v2 extender
А это тоже экстендер?
UPD: на странице загрузок есть только DOS (GOV32v2)
1) Он работает как кросс-компилятор
2) Ему нужны еще NASM и Watcom, причем OpenWatcom мой не жует (вот в этом пока застопорился)
3) Формируемый файл очень жирный получается (правда, этим все компиляторы страдают, кроме OpenWatcom)
4) Для него нет IDE и отладчика, следовательно, это всё превращается в тыкву при попытке написать что-то сложнее Hello, pony!
Хотя конечно, это намного лучше, чем ничего — вся мощь ObjFpc в 16 бит, это реально круто, даже с учетом хлопот сборки и необходимости отдельно править файл.
Работает под DOSBox нормально, под 486 проверю завтра.
НО: exe-файл на medium модели занимает аж 16Кб, а аналогичная сборка в TP5.5 — дает 2Кб.
То есть, в условиях драгоценного ОЗУ это дофига и больше.
Потыкаю еще ключи компилятора на предмет выкидывания лишних процедур, но скорее всего, ожидать от кросскомпилятора безумной эффективности не стоит.
В любом случае, спасибо за наводку, всегда лучше иметь дополнительный инструмент.
Ну я не думал, конечно, что в 2020-м на паскале для доса нельзя просто так взять и легально писать что-либо.
Для DOS — можно.
Сложно сделать 16-битный код, с сегментами, дальними указателями, моделями памяти, вот это всё.
Будет запасным вариантом — можно, например, писать и отлаживать в Turbo, а собирать для выпуска уже в FPC.
Тот же самый не получится — хотя у меня и есть натуральный 486-ой, но кодировать серьезно непосредственно на нём — это страдание. А на современном ПК — это эмуляторы, даже лучшие из которых не дают эффекта 1-в-1
UPD: а, полистал дальше, там есть 8086. Сорян.
Из статьи
Мы не во Франции, самую малость.
Я стараюсь не использовать пиратский софт без крайней-крайней нужды, а на работе так и совсем не использовать. Мне моя задница дорога.
Не-а, он делает бинарники под DOS, но в режиме 32-битного кода, через cwsdpmi.exe. Туда же относятся FreeBasic и прочие. Под DOS — работают. Но не в 16-битном режиме.
Эти вопросы лучше уточнять не в википедии, а у правобладателя — embarcadero недавно отдали в свободное некоммерческое пользование turbo pascal 5.5 и turbo C 2.1
По более новым версиям, уточню, но сильно сомневаюсь.
Тот же QuickBasic 4.5 не вполне свободен — его можно использовать подписчикам MSDN, а без этого, я не уверен, ибо трижды общался с Microsoft, и два раза сказали «используйте», а в третий раз сказали «оформляйте подписку».
А там в таблице написано 8086… ну, я подробно не шарю, конечно…
Да уж, ну хоть Free DOS сделали, хоть за что-то уж точно не надо платить )
У нас это немного не так работает. За нелегальное использование ПО — наказывает не правообладатель, а местные органы, а им вообще пофиг, какой там давности софт. Есть программа на ПК? Есть. Нет на неё документов? Нет. Всё, уголовное дело готово.
Я ИП, могут быть проверки.
Если не продают, значит abandon. Ну он не может принести им прибыли, если они его не продают ) Неспособен! Значит невозможно им недополучить прибыль от твоего пиратства. Значит можно пиратить.
Есть смысл запариваться с лицензиями на живое ПО, но на давно мертвое то зачем?
Из собственности у меня только резиновый флот и велик «Урал», да компьютеры разного класса.
Но всё равно мало приятного, если драть начнут по всей строгости закона.
Доходит порой до смешного, что за GPL прилетают проблемы, ибо нет официального перевода на русский.
Это что вообще такое?..
Ну для забавы и сделано. Это даже как некоммерческий проект соберет максимум десятка два пользователей здесь и еще может десяток добавится, как выкину на old-games
Для серьезной (в рамках любительской серьезности) работы — конечно, совсем другие системы использую.
Всё остальное — это для случая, когда нет совместимого ПК. Для запуска игр какой-то нибудь dendy или sega — тоже толстые инструкции и жирные эмуляторы водят.
А так эмуляторы — обычно уже для того, что когда-то давно было написано для другой уже не живой (для которой кончилась поддержка производителем, и никто всерьез не пилит ничего) системы, и прогонять новые штуки через это — все-таки немного странно. Можно и эстетически косить под старые добрые (если делать это всерьез, разумеется). Я как-то ржаки ради за пару дней набросал подобие темы для тумблр, которая рисуется полностью текстом (с телефона не пашет, да и код в целом говна (да и стоило бы опираться не на хтмл, а нормальное апи)). Не делал парсинг оформления текста и репостов.
Спойлертак вот куда я гайд по жидкостям схоронил...
Не более странно, чем сайт, на котором тысяча мужиков някают, смотрят серии про пони и обсуждают Сумеречных Искорок с Принцессами и единорогами.
Если С компилирует слишком много мусора, то что тогда Питон генерирует?
Не такие и ужасные. Хотя да, порог вхождения в разработку ПО был чуть повыше. Как минимум, Ассемблер входил в список требований для разработки быстрых приложений, да и понимать железную часть было желательно хотя бы в общих местах.
Цифровая схемотехника и архитектура компьютера (второе издание) — Дэвид М. Харрис и Сара Л. Харрис
Она многое объясняет
Просто переведут всё в облако. Уже в общем-то мало задач, которым требуется прямо вот физическая машина. А дальше и того будет меньше.
Исправил.
По Интернету — не обязательно гигабитный, достаточно разделение вычислительной части и графической, а это реализовано с 1993 года, со времен Windows 3.11
Паяльник всегда эффективней криптоанализа. Просто большинство наших мелких бытовых грешков вроде хранения фоточек Селестии без накопытников или пиратской версии любимой игрульки — никому не интересны, хоть в облаке, хоть на ПК.
Сложности начинаются для юрлиц и состоятельных (от десяти лямов нала) частных лиц.
А о безопасности я думаю так:
1) Твоя информация лежит на чужих серверах. Её могут оттуда угнать, её могут продать (собственно, facebook сливает всю конфиденциальную инфу властям, это вроде давно известно), они могут случайно её слить — и ты вообще никак не повлияешь на ситуацию.
2) Владелец облака может уничтожить твою информацию просто изменив пару пунктов в договоре. Кажется, во всех современных договорах есть пункты о возможности изменения договора в одностороннем порядке, или типа того. И информация пропала. Когда она лежит у тебя дома, опасностей тоже много, но есть резервное копирование, а всё прочее — твоя личная вина.
3) Наконец, облака тоже не застрахованы от физических или вирусных поломок, и это тоже может убить информацию.
В облаках давно есть (пока ещё не везде, наверное, но в будущем точно будет везде) автоматическая проверка загружаемых папочек. Я проводил эксперимент, и меня в ВК автоматом забанили прямо в процессе загрузок пикч. Все электронные книги уже очень давно нельзя загрузить в ВК, потому что они автоматически заменяются на ссылку в магазин. Музыку нельзя скачать (А я её там копил. И что мне прикажете теперь делать с плейлистом, который я не могу скачать?)
Шифровать всё это лично для меня нет никакого смысла. А ценная инфа хранится на винтах. Правда, нужно задуматься уже о создании физических резервных копий, но винты стоят денег…
И здесь я согласен. Если я стану всемирно известным писателем, то удалю даже то, что считаю абсолютно нормальным, но что может вызвать санкции (пиратскую версию бесплатной игры, лул). А до тех пор — нi
«Файлы не пропадают!»©Нортон
Алсо, фоточки? Я только арты видел =)
Максимум какие-нибудь гуглы/майкрософты сотрудничают с нвидиями/интелами и по взаимному договору обогащают друг друга. Иначе я требую себе долю, хуле, прибыль обеспечиваю мегакорпорациям.
И то, даже так необязательно для этого делать что-то неоптимизировано: софтлоков достаточно, причем они есть в обе стороны. Почти все свежевыпущенное железо хочет работать только под десяткой, куча современного софта требует какой-нибудь последний .NET (и вовсе не потому, что кто-то кинул в кого-то кошельком, а потому что никто не хочет писать на ассемблере утрирую, а то кто вас разберет, и это естественно: трактор менее оптимизирован и жрет больше, чем человек с лопатой, но трактора не вымерли), который тоже крутится только под десяткой.
А однопоточное неоптимизированное говно от васяна как лагало 10 лет назад на топовом компе, так и сейчас будет лагать, может разве что не так сильно.
Программисты разные бывают. Для нахождения суммы таблицы, действительно, знаний за пределами функций SUM() не нужно. А вот для кодирования высокопроизводительных процедур или сложных систем с множеством связей — уже кое-что требуется сверх.
Ну нет, на это он дал ответ, что-то в духе «Я посмотрел стату, сейчас 90% мониторов это FHD, поэтому я сделаю только FHD»
Хотя он вроде говорил про то, що на меньшее все элементы не влезут или типа того. Если он рядом пробегает, пусть сам объяснит, я честно уже не помню.
Просто потому, что так намного проще кодирование, а если кому нужен фуллскрин — Alt+Enter к его услугам.
Правда, я и не говорю на каждом углу, что это правильно и профессионально. Это не совсем правильно и немного непрофессионально.
Не совсем, многим удобно играть в окне, но с высоким разрешением. Потому все нормальные игры имеют опции выбора размера окна и опцию фулскрин для этого размера. Но это сразу создаёт множество проблем для разработчика.
Ну нихера себе сравнил. Уборщик сможет запрограммировать ту же мультиварку? А робота? Программист — это не только игори)))
Использование готовых программ — не программирование. Как учил меня кот Икс — программирование это составление алгоритма для решения задачи на искусственном языке.
на синдарине чтоль?
Спойлер
Не согласятся даже некоторые люди, которые считают себя программистами. Из готовых ассетов можно сваять что-нибудь, не обладая серьёзными знаниями.
Даже я, не будучи программистом, когда-то в VB «создал» простейший браузер, правда, питавшийся системными браузерными ресурсами (IE, кажется). Сам исполняемый файл имел размер несколько десятков килобайт, а библиотеки для дистрибутива занимали больше полутора мегабайт.
Поздравляю — вы программист, пусть и самого прикладного верхнего уровня.
это пример программирования, не-программирования, или сложной задачи, решаемой без программирования?
Не бери в голову, я больше развлекаюсь, чем поддерживаю серьёзную повестку. Хотя за оптимизацию кода топлю почти что на серьёзных щах.
Ну, какая архитектура, показать, какой кусок кода что делает и т.д. Можно не очень подробно, просто, приобщить народ к Asm?
В смысле для современных проигрывателей, а не всей этой досбоксовско-ассемблеровской мумба-юмбы.
Спикер — это генератор последовательных импульсов заданной частоты и длины. В отличии от звуковых карт, где множество разных звуков идут рядом. Так что оратор ниже прав — нужно просто эмулировать спикер, посылая на звуковую карту несжатое аудио отрезки заданной частоты.
И так до конца.
Потом либо выпускаем этот файл на динамик, либо делаем конвертер, который эти отрезки переведет в новый WAV файл, запихав туда полученные частоты.
Я хотел это всё реализовать для игры, но понял, что не хватит времени. Возможно, позже займусь, тогда можно будет любые звуки проигрывать на динамике.
Если хочешь, сделаю тебе программу для этого.
А как из него звуки записываться будут?
Корень проблемы здесь — звуковая подсистема QuickBasic, которая из-за отсутствия многопоточности в DOS, вынуждена использовать обходные пути с буферизацией и прерыванием. По уму, нужно сделать собственный драйвер звука на спикер, через прерывания таймера. Но сил уже не осталось.
Пожалуй, просто сделаю опцию отключения звука. Дело нужно и в обычном случае.
Надо было сразу 16-битную игру делать. Оценка сравнимая :-)
Спойлер
486SLC/25 (DOS 7.10) немного слабоват (движения чуть замедлены), но в целом норм. Game_fpu.exe естественно мимо, т.к. в этом камне нет плавучки.
Спойлер
Автору респект, посту плюсъ :)
Какая частота процессора у 486?
И если будет минутка — зайди на 486 в файл DATA/options и включи отображение FPS, вот так
а потом напиши, сколько показывает в процессе игры, когда уже много спрайтов движется. Спасибо заранее.
25 МГц. Вот этот камень: уже не 386, но еще не 486.
В заставке 10, в игре стабильно 8 и не зависит от количества спрайтов (или же игра завершается до того, как я успеваю уловить разницу).
Выпущу, опция назрела, как и отключения звука.
Всё верно, у меня нормально работает на 30, а у тестера на 20 — 5-6 FPS.
Другое дело, что игры сравнимого класса вообще-то быстро работали даже на 386-ых, но видимо, их делали с умом.
Впрочем, уверен, что кто-то и такое пишет.
tabun.everypony.ru/blog/computers/193991.html
NTFS Сделал игруху про Трикси бедняга
и всё началось, а что там с кодом, программисты, обсуждение, горячие споры
и где то среди этого
«Ля Спасибо за игру, отлично сделано»
«пони показывает большой палец.PNG»
Как говорят психологи — «закрыл гештальт». Бейсик и Ассемблер под окаменевшую ОС. Мое почтение!
Немного скриншотов с запуска на Интел 586.
(возможно будут скрины с 386sx, если найдем ИСА\ЕИСА видео-адаптер)
386sx — работать должно, хотя и притормаживать будет.
Разумно, обновил.
Как будто есть другое
Кольцо Властииздание на русском про QuickBasic…А остальную информацию, включая модели памяти и способы связи с Ассемблером, нарыл тута
www.pcjs.org/pubs/pc/reference/microsoft/mspl13/basic/
Архив очень ценный, рекомендую его выкачать в сундук.