Язык игры должен быть обьектно-ориентированным, с
механизмом сообщений (исключений). С++ подобный, но без всех его наворотов:
нет шаблонов классов, нет наследования классов, упрощен синтаксис. Оно
бы конечно хорошо все это иметь, но интерпритатор будет тормозить. Здесь
как всегда противоречие между универсальностью и скоростью.
Зато есть исключения, как системные, так и задаваемые
пользователем. Исключения можно посылать другому обьекту - в даннм контексте
они будут сообщениями.
Так же естественно есть набор системных классов/функций
(описание надо продумывать). Обсуждение вынесено в виртуальное
ТЗ
Существует ограничение на время
выполнения программы в такте: каждому оператору/системному вызову присваивается
некая оценочная стоимость (например, арифметическая операция - 1, обьединение
строк - 2, вызов функции выдачи всех юнитов в зоне видимости - 100)
и в такте программе можно выполнить действий на заранее заданную сумму
(10000, к примеру). Если программа не успевает выполниться, то на крыше
юнита зажигается красная лампочка ;) и в следующем такте выполнение
начинается с последней выполненной операции.
Пусть максимальния сумма стоимости операций за такт
является опцией игры:1000 - блиц, небольшие программы; 10000 - нормальная
игра; 50000 - умные, но тормознутые...
.. продолжение следует ...
|