User Tag List

Страница 6 из 8 ПерваяПервая ... 2345678 ПоследняяПоследняя
Показано с 51 по 60 из 80

Тема: Внутренности программ

  1. #51

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    811
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Супер, еще бы управление удобное сделать. Или wasd или курсор+пробел, но не asd+пробел
    Если думать по геймпадному, asd + пробел становится понятней. Но конечно стрелочки я добавлю, тут я даже не подумал написать про управление -- думал не об этом.

    Кстати удивительно, как игра может смотреться и ощущаться вполне нормально несмотря на то, что все движения в ней сделаны по знакоместам, а вся обработка примерно 4 кадра в секунду.

    Приблизительные идеи о достижении плавности:
    1. враги становятся спрайтами
    2. координаты потапа и врагов обретают дробную часть
    3. тайлы, которые используются для определения коллизий, остаются, но заменяются пустышками

    Предвижу много вопросов на стыках клеток, но по идее если сохранить всю логику по клеткам, должно быть решаемо. Не факт, что результат не будет восприниматься странно из-за того, что мы в дробной позиции, а координата для коллизии еще не доросла до округления в нужную сторону.
    Больше игр нет

  2. #52

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,386
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,365
    Поблагодарили
    1,315 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я не против плавности, но это будет уже несколько другая игра.
    Что можно было бы улучшить в ремейке потапа для вектора:
    1. Свести к минимуму тиринг. Скорость классической векторовской версии вполне достаточная, но главгерой при движении помаргивает. Ну и в векторовской версии есть недоработка - если задеть exit боком, то он частично сотрется и так останется, это тоже можно поправить.
    2. Попробовать реализовать на бейсике. Вот тут конечно тяжко. Или свести функцию бейсика к вызову подпрограмм на асме или что-то такое сделать с бейсиком, чтобы он сам что-то мог. Кстати, есть версия на бейсике и для советского компа на ВМ80 - ПК8002. Правда там аппаратные тайлы и спрайты и портированный туда msx basic.

  3. #53

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    811
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Было бы интересно понять, насколько другая. Пока это в Godot, цена эксперимента не так велика. Тут еще не знаю как оценивать. Сам я тот еще игрок к сожалению: когда начинаются уровни с пролетом над огнем итд у меня терпение лопается очень быстро.

    Тиринг в Векторовской версии никогда меня не напрягал. Кстати в эмуляторах MSX мельтешня заметна гораздо сильнее, но оно и понятно. Вот идея перенести целиком на бейсике забавная, но боюсь, что тут самый простой способ -- это перенести сначала соответствующий бейсик. Ну и я не знаю, что именно в бейсике вызывает такие атомные тормоза (похоже, что правильный ответ "всё"), но если не переделывать в нем что-то радикально, шансов догнать оригинал тут по-моему никаких нет.
    Больше игр нет

  4. #54

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,386
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,365
    Поблагодарили
    1,315 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Ну и я не знаю, что именно в бейсике вызывает такие атомные тормоза (похоже, что правильный ответ "всё"), но если не переделывать в нем что-то радикально, шансов догнать оригинал тут по-моему никаких нет.
    Могу только согласиться

  5. #55

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    811
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Могу только согласиться
    У тебя большой опыт ковыряния в бейсиках. Что в них так тормозит? Например, они правда парсят каждую строчку по мере исполнения и никак этому нельзя помочь? Токены ок, но кроме токенов остаются аргументы функций и арфметические выражения, они видимо вычисляются каждый раз на ходу? Если попробовать на миг забыть наследие Альтаира с 8К памяти, что можно в бейсике изменить, чтобы сделать его быстрее. Объективно, не примериваясь на собственные ресурсы, но и не меняя язык, не превращая его в компилятор итд, а вот именно в рамках того, чем он является.
    Больше игр нет

  6. #56

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,287
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    202
    Спасибо Благодарностей получено 
    1,456
    Поблагодарили
    946 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    на ZX есть `компиляторы` которые на самом деле не переводят строку в маш.код,
    а конвертят её в формат более быстрый для передачи в интепретатор.
    например Tobos

  7. #57

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    811
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    на ZX есть `компиляторы` которые на самом деле не переводят строку в маш.код,
    а конвертят её в формат более быстрый для передачи в интепретатор.
    например Tobos
    У меня тоже была мысль первая -- зачем останавливаться на подмене операторов на токены, если можно все прожевать в деталях (но так, что бы потом можно было восстановить). Для листинга и редактирования можно потерпеть как фарш проворачивается назад, а для исполнения все же иметь то, что легко исполнить, а не легко отредактировать. Но пока я не знаю что на самом деле там происходит, так что это все так, слова и жестикулирование.

    Константы можно было бы хранить в обработанном виде. Тут правда трудно соблюсти однозначное соответствие между текстом и внутренним представлением. Как отличить 0003 (ну захотелось мне так написать) от 3. Например так: токен "const-int", 3, индекс строки "0003" в таблице строк. Больше памяти нужно, ну и что.

    А выражения как обрабатываются? Каждый раз строится дерево с нуля (наверное на ходу прямо исполняясь) ?
    Больше игр нет

  8. #58

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,386
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,365
    Поблагодарили
    1,315 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В "постмикрософтовских 3.2" бейсиках, крайне популярных на советских компах с ВМ80:
    1. Каждое обращение к переменной приводит к ее поиску по имени в области переменных
    2. Константы каждый раз переводятся во внутреннее представление
    3. Каждый переход/вызов подпрограммы приводит к поиску строки с требуемым номером по всей программе
    4. Отдельно можно отметить наличие только 4х байтной плавучки (хотя и довольно хорошей в своем классе) при отсутствии 8-16 битных целых. Тут более поздние микрософтовские бейсики (в т.ч. msxный) отыгрываются, у них есть целые.

    - - - Добавлено - - -

    Ну и можно вспомнить микрософтовский компилятор бейсика для CP/M. На нем в принципе можно писать программы для вектора, но это отдельная история.

  9. #59

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    811
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да тут вообще непочатый край. Отсутствие целых это особенно ржавые вилы. Я наоборот предпочел бы целочисленный бейсик.

    Про номера строк я даже не подумал подумать. Если правильно помню, то строка -- это два байта номер строки, байты токенизированной строки, 0. Длины нет. Получается, что переход на строку где-то в конце программы перелопачивает весь листинг? Зло, что тут скажешь. А можно применить творческий двоичный поиск -- тыкаемся просто в середину всей программы, ищем ближайший 0, определяем номер строки за ним и так далее ? Или так и сделано?
    Больше игр нет

  10. #60

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,386
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,365
    Поблагодарили
    1,315 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Если правильно помню, то строка -- это два байта номер строки, байты токенизированной строки, 0. Длины нет.
    Перед этим идет адрес начала следующей строки, т.е. все плохо, но не совсем. Переход на строку резво скачет от строки к строке, проверяя только номер.

Страница 6 из 8 ПерваяПервая ... 2345678 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 0
    Последнее: 10.07.2008, 12:31
  2. Внутренности от компьютера Агат
    от ed4mk в разделе Барахолка (архив)
    Ответов: 7
    Последнее: 20.03.2007, 17:34
  3. Тестирование программ
    от Vitamin в разделе Программирование
    Ответов: 5
    Последнее: 23.01.2005, 21:46

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •