Current time: 20.04.2024, 07:14 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Игры для терминалов
» Эмуляция терминала в браузере
Author Message
Berserker Offline
Administrators

Posts: 16484
Post: #31

packa, gamecreator, спасибо за идею. Личные рекорды вообще к читерам имунны. Это в дополнение к общим.

Quote:П.С. Друин страшный человек
В прошлом году мы заменили ему имплантант на новую версию. Боюсь, теперь мир обречён. Заголовок в газете: "Друин набирает 625 очко в змейке, съедая всё поле!"

gamecreator, понял. Хвост и голова должны двигаться одновременно. Исправил в локальной версии.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
09.08.2010 18:55
Find all posts by this user Quote this message in a reply
packa Offline

Posts: 1210
Post: #32

626, или это не Друин 148


подпись была удалена администрацией
просьба не использовать картинки с сайта heroeslibrary.net, так как на них ругается Chrome
09.08.2010 21:29
Find all posts by this user Quote this message in a reply
Efrit Offline
Administrators

Posts: 6183
Post: #33

Quote:Игра "змейка". Первая апробация эмуляции консоли.

Спасибо, кэп!
Я имел в виду - что это вообще за консоль, зачем её эмулировать, на чём она сделана - и как она привязана к нашему форуму? ...


Welcome to the soldier side,
Where there is no one here but me.
People all grow up to die,
There is no one here but me...
10.08.2010 09:32
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #34

мы потом будем приложения писать для нее.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
10.08.2010 11:26
Find all posts by this user Quote this message in a reply
Efrit Offline
Administrators

Posts: 6183
Post: #35

На чём?


Welcome to the soldier side,
Where there is no one here but me.
People all grow up to die,
There is no one here but me...
10.08.2010 11:39
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #36

на мутноскрипте наверно. Берс вроде ниче больше не придумывал.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
10.08.2010 14:40
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16484
Post: #37

Quote:Спасибо, кэп!
Я имел в виду - что это вообще за консоль, зачем её эмулировать, на чём она сделана - и как она привязана к нашему форуму? ...

   Браузеры по умолчанию не содержат средств для создания приложений для терминалов - то есть приложений с текстовым интерфейсом и стандартной функциональностью. В своё время для Turbo Pascal была библиотека CRT, в которой был реализован базовый функционал для работы с консолью:
  • Функции изменения цвета и фона выводимого текста
  • Управление видимостью и положением курсора
  • Установка текущего окна, относительно которого выводится текст и считаются координаты курсора
  • Очистка текущего окна
  • Вывод текста с поддержкой спецсимволов, таких, как перевод строки, которые должны быть обработанны по особому, а также автоматической прокрутки
  • Проверка состояния клавиатуры, нажата ли в данный момент какая-либо клавиша
  • Ожидание нажатия клавиши и получение её кода
  • Сложная функция чтения ввода текста с поддержкой базового редактирования

Чем удобен текстовый интерфейс?
  • В мире существуют десятки тысяч терминальных игр/программ, в том числе и на приставках/тетрисах
  • Консольные игры писать проще, так как не нужна особая графика и музыка. Можно вложить силы в саму игру
  • Консольные приложения писать проще, чем гуишные

   HTML/Javascript содержит средства для написания эмулятора консоли и библиотеки функций для неё с приемлимыми трудозатратами (1400 строк текста, не кода).
Реализация основана на создании Ширина * Высота одиночных span-элементов, отображающих каждый по символу, что есть существенная нагрузка на браузер, особенно если консоль велика, но позволяет регулировать отображение (символ, цвет, фон, прозрачность) каждой отдельной ячейки. Как и во всех терминалах используется моноширенный шрифт без указания конкретного, что позволяет браузерам использовать те шрифты, которые у них есть. Нормальная кроссбраузерная работа с клавиатурой крайне тяжела по причине разности реализации браузеров, их багов и отсутствия спецификации в этой сфере. В то же время консоль требует вполне чёткой работы с полным контролем разрешения/запрета обработки стандартной реакции на клавиши.
   Ещё одной проблемой является, собственно, ввод текста. Коды клавиш слабо корелируют с кодами символов. И здесь в браузерах огромная лажа.
   Наконец, javascript использует один поток и везде, кроме Оперы, это ещё и основной поток вкладки. Это значит, что большинство функций по своей природе асинхронны, а мы привыкли писать: Write('Вас зовут: '); Name = Read();
   Проблема асинхронности глобальная и моя реализация не берётся её решать (решение обычно сводится к эмуляции потока, как в примитивном виде сделано в Rpg Player). Для клавиатуры было выдвинуто требование работы с буфером обмена, по крайней мере конкретная вставка любого текста. Я использую элемент textarea (TMemo) единичного визуального размера за пределами экрана для перехвата событий клавиатуры. При потере фокуса элемент убирает красную границу с консоли, что сразу становится видно. Три ключевых события поддерживаемые браузерами (ИЕ здесь и далее не имеется в виду) KeyDown. KeyPress, KeyUp перехватываются. У каждого браузера свои особенности работы с ними, но в целом удалось вычленить общую функциональность и даже добавить новый тип событий Input, то бишь ввод. Таким образом в данный момент консоль полностью работоспособна.
   Реализация змейки - просто интересное дело и, собственно, проверка работы на практике. Я планирую вторую версию с поддержкой хотсита, разными бонусами и врагами.
   Идея создать эмуляцию терминала пришла к концу первой реализации ФЯП. Для того, чтобы из ФЯП можно было иметь доступ к консоли (а значит запускать игры на ФЯП из постов), нужно написать обёртку к каждой функции библиотеки, иначе кулхацкеры будут делать гадости.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
10.08.2010 20:51
Find all posts by this user Quote this message in a reply
FallenAngel Offline

Posts: 834
Post: #38

Дошёл только до 42...
(This post was last modified: 10.08.2010 21:17 by FallenAngel.)
10.08.2010 21:17
Find all posts by this user Quote this message in a reply
Efrit Offline
Administrators

Posts: 6183
Post: #39

52. В принципе, до восьмидесятки смогу дотянуть наверняка - пока что я паузу вообще не юзал. А вот насчёт сотни - уже вряд ли...


Welcome to the soldier side,
Where there is no one here but me.
People all grow up to die,
There is no one here but me...
10.08.2010 22:06
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16484
Post: #40

Уважаемые игроки. Сейчас максимальная скорость - 1000/30 /сек. Иными словами шаг игры - 30 миллисекунд. Стоит ли увеличивать эту планку до 40-50? При 50 имеем 20 FPS, что потянет и гружёный фаерфокс при более сложном геймплее, но может быть играть станет не так азартно? Тем более, что Друин уже полторы сотни вытягивает, да и Эфрит до 52 дошёл.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
10.08.2010 23:18
Find all posts by this user Quote this message in a reply
Efrit Offline
Administrators

Posts: 6183
Post: #41

Я бы до 35 увеличил и на этом остановился...


Welcome to the soldier side,
Where there is no one here but me.
People all grow up to die,
There is no one here but me...
11.08.2010 06:04
Find all posts by this user Quote this message in a reply
Druin Offline

Posts: 1272
Post: #42

Я паузу стараюсь не юзать... Имхо тока мешает... Но на работе инохда приходится...


Image: pooh_door.gif
11.08.2010 11:38
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #43

приделать к движку буфер ввода не помешает.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
11.08.2010 22:21
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16484
Post: #44

Что имеется в виду под буфером ввода? Ты пожмякал все клавиши и дальше змейка ужасные вещи творит?


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
12.08.2010 00:04
Find all posts by this user Quote this message in a reply
Druin Offline

Posts: 1272
Post: #45

Я думаю гамадел имел ввиду, что при попадании в будущую таблицу рекордов мона было ник вводить... Или я не угадал?..


Image: pooh_door.gif
12.08.2010 00:12
Visit this user's website Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group