Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
21.05.2004 00:06

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

В общем дело поехало...

12/05/2004 в 00:23 были начаты работы по созданию русской IF-платформы для написания игр с текстовым вводом команд. От DOS'а пришлось отказаться в пользу Win32. Пишется всё на Delphi.

По состоянию на сегодняшний день дела идут удовлетворительно. Вот только вывод информации на экран в консольном приложении под Win95 происходит немного тормознуто (реанимировал для тестов свой старенький компьютер: CPU:486 160МГц/Mem:40MB/S3 Virge DX 2MB/HDD:426MB).

Если кто знает, как в консольном приложении использовать свои шрифты (в полноэкранном режиме), просьба сообщить — буду очень признателен.

Постараюсь по возможности сообщать о ходе работ...

Неактивен

0    0    #2
21.05.2004 22:57

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Помимо низкоуровневых модулей для работы с экраном, клавиатурой, сжатыми данными и т.п. закончен модуль для вывода на экран определённым образом размеченного текста (типа html, но в тексте). Все теги разметки на русском языке, как, впрочем, и весь внутренний язык будущей платформы.
Для примера несколько тегов:
<ПО.ЦЕНТРУ></ПО.ЦЕНТРУ>
<СПРАВА></СПРАВА>
<ПО.ШИРИНЕ></ПО.ШИРИНЕ>
<ЦВЕТ></ЦВЕТ>
а также:
<КЛ.ЛЮБАЯ>
<КЛ.ВВОД>
и многие другие.

Неактивен

0    0    #3
22.05.2004 10:27

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Консоль ради текста. Мне нужен текстовый ввод/вывод информации.

Неактивен

0    0    #4
22.05.2004 14:51

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

А зачем это нужно? Мне ведь нужна работа в текстовом режиме. Вот я и работаю с консольным приложением. Зачем весь этот мудрёж с формами и т.п.?

Неактивен

0    0    #5
22.05.2004 17:18

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Под DOS я рисовал свои шрифты и без особых проблем подключал их. Как сделать это под Win32, я не знаю.
Что касается выравнивания и т.п., то это делается просто: либо текст выводится с нужной позиции, либо (если выраванивание "по ширине") промежутки между словами дополняются пробелами...

Неактивен

0    0    #6
22.05.2004 23:17

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Nash, судя по всему, с консольными приложениями работать тебе не приходилось, иначе ты бы знал, что всех этих проблем (ширина экрана и т.п.) не существует.

Что касается процесса, то в настоящее время идёт работа над транслятором-компилятором (или типа того — я не особо силён в терминологии), который будет переводить исходники игры в некий промежуточный код, который будет проигрываться отдельной программой. Не могу не выразить восхищение методом обратной польской записи, предложенного миру математиком (само собой польским) Я. Лукашевичем. Столь компактные правила, реализущие столь стройную и гибкую систему!.. Разве что в бухгалтерском учёте я встречал нечто подобное.

Неактивен

0    0    #7
23.05.2004 00:02

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Гениальное в своей лаконичности изложение основных принципов метода обратной польской записи: http://algolist.manual.ru/syntax/revpn.php
Главное пропустить первые абзацы. Суть начинается со слов "Во-втоpых, получение обpатной польской записи из исходного выpажения...". Прилагаемый там исходник не смотрел.

Неактивен

0    0    #8
23.05.2004 20:22

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Ребята, перво-наперво давайте определимся. В настоящее время я пишу именно движок. Причём пишу его пока что для себя. И начал писать я его потому, что написание игры на существующих языках программирования — вещь очень проблематичная (у меня есть две-три вещи, которые заброшены из-за того, что я начал просто путаться в нагромождении кода). Так что если-таки у меня хватит сил доделать то, что я затеял, в первую очередь вы получите не сам движок, а игру.

Неактивен

0    0    #9
24.05.2004 00:25

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Давайте наведём немного порядка в обсуждаемых вопросах.
Во-первых, организация конкурса от меня не зависит. Но это вовсе не значит, что если вдруг его потребуется провести, то я не помогу.
Во-вторых, игру я пишу не для конкурса. Поэтому его проведение никак не привязано к срокам её выхода.
В-третьих, раздел (а не тема!) называется "Разработка русской IF платформы". Поэтому тема не такая уж общая...

Неактивен

0    0    #10
24.05.2004 00:27

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Nash написал:

Olegus
Я понимаю, ты решил писать трансляцию исходника с нуля? Не переводить синтаскис твоего языка, скажем на Паскаль, и  трансляции его с помощью Pascal Web Script'a или Innerfuse Pascal Script?

Я не настолько крут. Будет компилятор для получения кода игры в определённом формате, и будет виртуальная машина (так это вроде называется) для проигрывания этого кода.

Неактивен

0    0    #11
29.05.2004 12:15

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Вроде как получилось реализовать работу с массивами, пока предусмотрено только три вида массива: одномерный ("Список"), двумерный ("Таблица"), трёхмерный ("Кирпич", название рабочее, если кто придумает что-то подходящее — сообщите).

Неактивен

0    0    #12
02.06.2004 01:00

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

"Куб" так "куб". Трехмерный массив может пригодится для моделирования пространства.

Насчёт переменных: в моей платформе определения переменной с указанием типа будет не нужно (хотя нужна будет инициализация или типа того) — её тип будет определяться присвоенным значением. В выражениях будет происходить автоматическое приведение типов и т.п.
Все массивы будут динамическими. Можно, конечно, загнуть насчёт двумерных и трёхмерных массивов разной формы (треугольник, пирамида и т.п.), но немного подумав я это решил отложить.

P.S. Не думайте, что описанные фичи отняли бОльшую часть времени (на тему — ковыряясь в мелочах, забыл о главном)...

P.P.S. Различные примеры из других платформ весьма интересны и познавательны, однако не стоит превращать эту тему в FAQ по этим платформам. В то же время, я ни в коем случае не запрещаю некоторую отвлечённость в разговоре. Но придерживайтесь меры...

Неактивен

0    0    #13
02.06.2004 10:34

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Поскольку переменная может менять тип при присвоении значения другого типа, то вопрос, где она была впервые объявлена не стоит так уж остро. Другое дело, что из-за подобного подхода ряд ошибок будет проявляться не на этапе компиляции, а на этапе выполнения кода, — это действительно проблема, но тут уж ничего не поделаешь.
Возможность создания своих процедур и функций будет (вот только стоит ли разделять эти понятия?..), будет также разделение переменных на глобальные и локальные, будет возможность подключения модулей, т.е. кусков кода (или откомпилированных модулей, что сделать реально, но нужно хорошенько продумать) из внешних файлов.

Неактивен

0    0    #14
22.06.2004 12:36

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Дело хоть и медленно, но продвигается. Пока всё на стадии проектирования с программными "набросками" реализации некоторых алгоритмов. Так, вроде удалось разобраться и спроектировать работу со свойствами и методами объектов платформы...

В настоящее время работаю над реализацией в платформе работы как с типизированными переменными, так и с переменными без типа.

Изрядное количество хлопот доставляет реализация операций присваивания и сравнения на равенство через один знак "=". Обозначать эти операции по-разному (как в C или Delphi/Pascal'е) на мой взгляд не очень разумно.

Неактивен

0    0    #15
24.06.2004 13:39

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

dennis написал:

Использование РАЗНЫХ символов для присваивания и сравнения в C/C++/Inform — отнюдь не роскошь. Это бинарные операции, могут использоваться в любых контекстах, и иначе различить их нельзя.

Ясное дело, что не роскошь. Говоря проще, в C/C++/PHP/т.п. различие в обозначении этих операций обусловлено в первую очередь тем, что в этих языках можно использовать операции и сравнения, и присвоения в рамках одного действия (или как это там называется).
Я при проектировании платформы от этого сознательно отказался.

Неактивен

0    0    #16
09.08.2004 00:16

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Работа идёт, хотя лето, солнце и т.п. несколько снижают темп...

Неактивен

0    0    #17
31.08.2004 14:39

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Жаль, что нельзя менять шрифт. Хотя и несколько странно...

Неактивен

0    0    #18
01.09.2004 00:12

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Под DOS я и сам использовал самодельные шрифты. Написал даже редактор шрифтов. Под винды это, увы, непременимо.

Неактивен

0    0    #19
02.09.2004 14:24

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

В любом случае это совсем не то, что я мне нужно.

Неактивен

0    0    #20
15.09.2004 19:58

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Не знаю. Но вряд ли.

Неактивен

0    0    #21
12.03.2005 18:10

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Как это ни удивительно, но дело идёт...

Неактивен

0    0    #22
21.03.2005 00:00

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

В настоящее время идёт доработка транслятора базового языка платформы в байт-код. После этого будет создана "виртуальная машина" для проигрывания этого байт-кода, а следом за этим пойдёт реализация работы с объектами платформы: сложными типами данных, предметами, локациями, словарями, парсером и т.п. (и усложнение виртуальной машины)... Дел много, но они движутся в нужном направлении...

Неактивен

0    0    #23
03.04.2005 00:28

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Кое-что вырисовывается...
Минимальный (и традиционный) текст программы выглядит так:

Код:

{Программа}
{НачалоРаботы}
  НаЭкран("Привет, мир!");
{КонецРаботы}
{КонецПрограммы}

Объектный файл (типа ассемблерного представления байт-кода) получается такой:

Код:

; Объектный файл создан компилятором xXxxxxxx.Xx (c) 2004-2005 Olegus t.Gl.
; Дата компиляции: 03.04.05 00:22:18
;
; ТАБЛИЦА СТРОКОВЫХ РЕСУРСОВ
STRING 0 , Привет, мир!
;
;СТАРТОВЫЙ МОДУЛЬ
;Тело модуля
1: FUNC_NEWSTACK
2: PUSHS 0
3: ADD_PARAM 
4: FUNC_CALL_INT 23001
;КОНЕЦ СТАРТОВОГО МОДУЛЯ

Работа на этом останавливаться не собирается...

Неактивен

0    0    #24
04.04.2005 15:16

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

А что именно интересует?
В настоящее время завершается рзработка базового уровня: арифметические, логические и строковые операции и функции, операторы ветвления, операторы циклов, работа с процедурами и функциями.
Работа с объектами: локациями, предметами, персонажами, словарём и т.п., будет начата в ближайшее время.

Неактивен

0    0    #25
10.04.2005 00:51

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Потихонечку работа движется. Не так быстро, как хотелось бы, но всё же... Базовый язык — это всё-таки основа.

Неактивен

0    0    #26
10.04.2005 14:44

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Однако, работа над контролем за ошибками, которые может допустить программист, — адский и очень кропотливый труд...
Кроме того продолжается работа над процедурами и функциями, создаваемыми программистом.

Неактивен

0    0    #27
17.04.2005 23:25

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

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

Неактивен

0    0    #28
23.04.2005 09:49

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

ifn00b написал:

Единственное, что тревожит как программиста - нумерация строк, поскольку это может (по собственному опыту знаю) привести к нерациональному использованию аналога команды "goto", что очень осложняет разработку более-менее серьезной программы.

А причём здесь нумерация строк? Они пронумерованы в объектном файле (для контроля и только), в исходниках для goto ("перейти") будут использоваться метки.

Неактивен

0    0    #29
24.04.2005 22:39

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Переделка объектной (или как там её) модели на "Глобальный контекст — Модуль объекта — Модуль процедуры/функции" занимает очень много времени и сил. Однако в результате как-то само собой решились вопросы использования констант, а также предупреждения о неиспользовании тех или иных переменных. К тому же сдвинулась с места работа с созданием процедур и функций. Отшлифовался немного вопрос видимости переменных, а также процедур и функций. Доработан вопрос возможности перекрытия переменных, процедур и функций Глобального (общего) модуля переменными, процедурами и функциями локальных модулей.

Рутина, но без её реализации подойти к самому интересному: объектам игрового мира, невозможно...

Неактивен

0    0    #30
12.05.2005 06:38

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Прошёл год с объявления о начале работ. Дел было сделано не так уж мало, но и недостаточно для каких-либо демонстраций. В 2004 году по ряду причин (часто личного характера) работа топталась на одном месте. Основной прорыв был сделан в начале 2005 года, после чего можно с уверенностью говорить о том, что результат всё-таки будет.

Неактивен

0    0    #31
09.01.2006 11:54

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: В общем дело поехало...

Дела идут со скрипом, времени настолько мало, что не удаётся даже толком высыпаться. Однако ко второй годовщине с начала работ, что-нибудь да приготовлю...

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru