Dexus
> Laser basic это ещё то извращенчество. Ничего интересного не сделаешь, тот же самый тормозной интерпретатор Бейсика. В том же Boriel Basic кросскомпилировать на zx и то больше перспектив.
У тебя какое то странное восприятие реальности. Все ж давно понимают что универсальных и при этом абсолютно эффективных инструментов нету. Всегда нужно идти на какие то компромисы чтобы достичь результата в разумные сроки.
gamedevfor
> У тебя какое то странное восприятие реальности.
Ошибаешься.
> Всегда нужно идти на какие то компромисы чтобы достичь результата в разумные сроки.
Речь по ретроплатформы, на которых порой каждый такт берегут, и компромиссы далеко не всегда приемлемы.
Для зумеров это неведомо - любой говнокод провернется компилером и потом прожуётся с многомегабайтными кэшами процессора, а про такты вообще никто уже давно ничего не знает.
Есть разумные компромиссы, а есть потеря производительности _в_разы_, по сравнению с тем что можно сделать руками на ассемблере. Весь игровой цикл фактически приходится в ассемблере делать, и только меню какое-нибудь на ЯВУ (паскаль это или си или бейсик). И много это меню на ЯВУ времени кодеру сэкономит?..
Ретро-кодинг - не для любителей компромиссов.
Dexus
> Есть разумные компромиссы, а есть потеря производительности _в_разы_, по сравнению с тем что можно сделать руками на ассемблере. Весь игровой цикл фактически приходится в ассемблере делать, и только меню какое-нибудь на ЯВУ (паскаль это или си или бейсик). И много это меню на ЯВУ времени кодеру сэкономит?..
На том же LaserBasic-е можно было написать платформер типа марио за один вечер.
Написать же Elite на LaserBasic-е подозреваю что будет невозможно.
Так а разве с современными движками это не так? Всё тоже самое... Почему то мы не видим GTAVI от васяна за один вечер.
То есть нужно исходить от задачи которая перед тобой стоит. Скажи что тебе нужно и тебе скажут есть ли инструмент для этого. А так чтобы от балды писать на сишечке и получить DOOM3 на спеке, то так не бывает.
gamedevfor
> На том же LaserBasic-е можно было написать платформер типа марио за один вечер.
И... есть такие? Написанные?... Пусть и не за один вечер?
Ответ прост: Это было просто невозможно. LB для этого не подходит. Он вообще ни для чего не подходит. В мире существует полторы игры которые с помощью него написали.
Я пробовал (ещё в лохматом 1994м). И плюнул.
А вот на AGD куча игр написано. И на La Churrera тоже достаточно.
Потому что они создают откомпилированный код, а LB остается интерпретируемым "языком", который чтобы работал нужно загрузить весь LB за раз. Весь объём памяти. И при этом он тормозит.
А по поводу якобы "компилятора" LB:
I can’t recommend the Laser BASIC ‘Compiler’ to anyone. It is expensive, hard to use and — in the final analysis — almost useless since it makes little difference to the speed of most BASIC programs. It is most short-sighted of Ocean to launch this program on their new ‘IQ’ label. It is not a compiler at all, in the usual computer-programming sense, because it uses the same tokens as slothful ZX BASIC. There’s no sign of the ‘fast machine code’ generation promised in Ocean’s press release.
Dexus
Тот же Ocean выпускал просто шквал платформеров, думаю что они были написаны на чем то близком к LaserBasic-у. Если бы они делали это на ASM-e то скорее всего это были бы глючные игры, но багов критических не было. На ASM-e делали штучные хиты типа Elite, но такие игры на поток не поставишь.
А рынок требовал кучу игр здесь и сейчас. Но на скорую руку получались только JetSetWilly от васянов.
gamedevfor
> Если бы они делали это на ASM-e то скорее всего это были бы глючные игры, но багов критических не было.
эм... ты точно программист?
Для того чтоб выпускать множество "однообразных" платформеров, достаточно было сделать один раз основной код и потом его использовать везде. И от выбора ЯП это вообще ни как не зависит.
Mirrel
> Для того чтоб выпускать множество "однообразных" платформеров, достаточно было сделать один раз основной код и потом его использовать везде. И от выбора ЯП это вообще ни как не зависит.
Я б не сказал что их платформеры были однообразные. Тогда народец еще был весьма переборчив и кормить их одним платформером в разных вариациях не получилось бы. То есть логика игр точно писалась не на ASM-e, ну а ядро графики (скроллинг, перемещение и вывод спрайтов) могли зашить в спец команды бейсика.
>эм... ты точно программист?
Это тебя нужно спросить, потому как программист точно знает как легко можно наделать багов в ASM-e.
gamedevfor
> думаю что они были написаны на чем то близком к LaserBasic-у
Неправильно думаешь. _Все_ делалось на асме. Лазербейсик - это просто коллекция процедурок графических, плюс-минус нормальных, которые они оформили для "начинающих" через хэндлер бейсик-ошибок. Ocean вообще по большей части издатели. Своих игр у них не так много. Но это не суть. Само собой код между проектами постоянно мигрирует, совсем с нуля не часто пишется, но факт в том, что пишется он на асме, ни на каком-то движке, или бейсик-компилере/улучшателе. Таких игр (которые не на асме) в целом практически и не было (если не считать откровенное тормозное говно, которое чаще сейчас делают всякие ретро-недо-гики). И не надо выдумывать то чего не было, экстраполируя нынешнюю индустрию на то что было 40 лет назад.
Были конечно и движки в то время, которые авторы из проекта в проект тащили (и эта однотипность очевидна). Тот же движок для текстовых адвенчур, например. Или движок который использовали в робокопе и в бэтмене. Или изометрические движки, которые в целой пачке игр использовались(их вроде 2 основных). Но чаще это просто уже имеющийся код предыдущей игры, чем прям вот "движок". Или в худшем случае - коллекция процедур и функций, из которых собиралось что-то новое (разумеется на асме).
gamedevfor
> То есть логика игр точно писалась не на ASM-e, ну а ядро графики (скроллинг, перемещение и вывод спрайтов) могли зашить в спец команды бейсика.
знаешь сколько материала уже было готово и сделано на ассемблере ближе к 1990-му году? Сколько из этого кода вообще стоило менять для его использования? Почти ни сколько?!
Большая часть не делалась на ассемблере, а просто уже брался готовый ассемблерный код, который почти везде подходил, хотя бы для работы с той же графикой. А уж у фирм наверняка заготовок было больше чем у обычного пользователя.
> Это тебя нужно спросить, потому как программист точно знает как легко можно наделать багов в ASM-e.
Сколько? Я занимаюсь программированием на ассемблере, отлаживаю код и смотрю чтоб он "не ломался". Но ты хочешь сказать что люди не смогли одну и ту же функциональность отладить в течении нескольких лет? 5-ти? 10-ти? В программе где использовалось меньше 48 Кб? Серьёзно?
Mirrel
> Сколько? Я занимаюсь программированием на ассемблере, отлаживаю код и смотрю чтоб он "не ломался". Но ты хочешь сказать что люди не смогли одну и ту же функциональность отладить в течении нескольких лет? 5-ти? 10-ти? В программе где использовалось меньше 48 Кб? Серьёзно?
Я ж говорил не про ядро графики, а про логику каждой игры. А логика в каждой игре уникальна и делать её на ASM-e чревато багами и длительной отладкой. И ради чего? Логика игры не кушает много ресурсов в платформерах чтобы делать её на ASM-e.
gamedevfor
>А логика в каждой игре уникальна и делать её на ASM-e чревато багами и длительной отладкой.
На нее приличная часть времени и уходила, помимо спрайтов и придумывания карты и "сюжета".
> И ради чего? Логика игры не кушает много ресурсов в платформерах чтобы делать её на ASM-e.
Что значит "много ресурсов не кушает"? Все процессор и ресурсы кушает, второго "ядра" для логики нету. И если ты надумаешь логику затормозить всякими "небыстрыми" процедурами, у тебя вся игра ушатается.
Я допускаю, что часть игр в каких-то местах использовали что-то вроде байт-кода, но я не встречал такого в играх которые дебажил (их, правда, было не так много).
Dexus
> Что значит "много ресурсов не кушает"? Все процессор и ресурсы кушает, второго "ядра" для логики нету.
он имеет в виду, если логику поставить правильно, то её вполне хватает "на один-два экрана".
gamedevfor
> Я ж говорил не про ядро графики, а про логику каждой игры.
лигика так же могла быть на ассемблере. Изначально могли на каким-нибудь бейсике реализовать, но позже переводили всё в ассемблер и отлаживали. Потому что бейсик - это узкое место, которое годится только для запуска игр и для совсем простых игр.
А сложную логику, ни кто не будет делать на бейсике, потому что результат будет плачевным. Представь, если игру "Чёрный ворон" делали бы на бейсике. Это надо просчитать всю карту, всех противников на карте, всех союзников на карте... И ещё успеть обрезать все не нужные объекты и прорисовать нужные... Это тоже в логику входит!
Dexus
Даже в LaserBasic она не ушатывалась, а если там сишечка была то и тем более не ушаталась бы.
Mirrel
> Потому что бейсик - это узкое место, которое годится только для запуска игр и для совсем простых игр.
Вообще то были всякие QBasic-и, дело вообще не в самом бейсике, а в реализации самих интерпретаторов/компиляторов для него.
gamedevfor
> Даже в LaserBasic она не ушатывалась, а если там сишечка была то и тем более не ушаталась бы.
Назови игры на Laser Basic, хотя бы одну. На основании чего это "даже"?
Фантазер.
Какие Qbasic'и на спектруме лол?