Ого, хорошо. Я его скоро обновлю по последним предложениям. Вот первые наброски главной странички сайта (в архиве). Я собрал также чуть-чуть всяких элементов оформления и сделал во flash
исчезающую голову кота, но пока не могу найти этому всему достойное применение.
Про мышь - как мне объяснил отец, у новой мыши есть две дополнительные кнопки. Одна для перемещения назад в эксплорере, другая -
вперёд. Можно использовать это для меню в игре.
Предложение по формату скриптов для вызова объектов и персонажей (эффектов и т.д.). Не знаю, как назвать, в общем, аналог tik.
Можно таким же макаром закодировать. Напрмер, вместо части кода из armyant.tik
Code
classname Actor
setsize "-36 -36 0" "36 36 72"
eyeoffset "0 0 64"
statemap ai/c_armyant.st
name "ArmyAnt"
manatype medium
visiondistance 1000
//simplepathfinding
proj_accuracy 0.5
proj_leading_accuracy 0.5
enemy
health 100
turnspeed 10
cache w_musket.tik
cache models/prj_bullet.tik
attachmodel w_musket.tik tag_weapon 1 "" 0
bloodmodel blood_spray_green.tik
deathshrink 5
classname - одна из стандартных команд, если таких команд в движке игры меньше 2^16, её можно закодировать двумя байтами (ни или
меньше в битах, всё зависит от точного количества команд)
*пробел между командами* тоже стандартный символ, см. classname
Actor - один из нескольких правильных значений для classname - ещё есть object, effect и т.д. Закодировать можно, например, 3 или 4
битами.
"новая строка" тоже стандарт, см. classname
setsize - тоже одна из стандартных команд движка, кодируем как и classname.
"-36 -36 0" "36 36 72" - координаты объекта. Здесь могут быть только действительные числа. Кодируется двумя тройками числового типа
данных, например word. Эти тройки разделены служебным разделителем.
eyeoffset - см. classname
"0 0 64" - одна тройка чисел без разделителя (например, WORD,WORD,WORD).
statemap (см. classname)
ai/c_armyant.st - путь. Не является стандартным примитивом или командой для Game engine, поэтому придётся кодировать каждый символ.
Но не в системе ANSII, а в системе, например, ANSI, так как некоорые символы не могут быть в имени и пути, а буквы национальных
алфавитов не включаются, только латинские. Также, заглавная это буква или большая в пути значения не имеет, поэтому ещё минус 23
возможных значения для символа. То есть примерно бит 6 на символ.
name - см. classname
"ArmyAnt" - имя для вызова персонажа. Символьный тип данных, не может содержать буквы национальных алфавитов, но может - заглавные
и маленькие латинские. Также не может содержать символы, которые можно трактовать по-другому ("*","/",,""",и т.д.)
visiondistance - см. classname
1000 - число. Тип данных числовой, действительный, неотрицательный (расстояние, на которое видит воин, не может быть меньше нуля)
// - обозначение комментария. Стандартное, так что делаем выводы (см. classname)
simplepathfinding - см. classname
proj_accuracy - см. classname
0.5 - неотрицательное действительное число от 0 до 100.
proj_leading_accuracy - см. classname
0.5 - см. 0.5 выше
enemy - см. classname
health - см. classname
100 - число здоровья. целое, всегда больше нуля.
turnspeed- см. classname
10 - неотрицательное действительное число
cache - см. classname
w_musket.tik - см. ai/c_armyant.st
Дальше, надеюсь, всё понятно...
Плюсы этого: 1) невозможность "синтаксических ошибок" 2) значительно уменьшенный размер
Минусы: невозможно разобрать, что написано, в простом редакторе. Но если есть специальный редактор, он при открытии раскодирывает
файл в кодировку ANSI, при сохранении - кодирует обратно или (!) сообщает об ошибке.