Topic: INSTEAD API

Решил вынести в отдельную тему вопросы по API INSTEAD.

Дело в том, что начиная с версии 1.2.0, в INSTEAD для автора появились новые возможности. При этом в
движок была заложена идея постепенного развития API.

Как это работает?

Если вы пишете в начале игры instead_version "версия api" то вы даете знать движку, что ваш код написан для INSTEAD >= 1.2.0
и при этом вам доступна та версия API, которую вы вписали. Например:

instead_version "1.3.1"

Сейчас версии API совпадают с версиями INSTEAD.

Но есть уже много игр, написанных до версии INSTEAD 1.2.0, и они работают на новых версиях INSTEAD. В этих играх нет instead_version и движок понимает, что игра написана для старой версии API.

Новое API дает множество преимуществ автору (снапшоты, глобальные переменные, изменяемые на лету функции, автоматическое форматирование, модули и пр..), а перенос старого кода на новое API тривиален. Поэтому нет большого смысла писать новые игры на старом API, что распространено из-за того, что для изучения INSTEAD были выбраны старые игры.

Рекомендуемые источники информации для изучения INSTEAD:

Игра "Погружение в INSTEAD" -- в официальном репозитории;
Обучение -- в INSTEAD;
Официальная документация и описание модулей на WIKI: http://instead.syscall.ru/wiki/ru/start
Статья о выходе INSTEAD 1.2.0: http://instead.syscall.ru/2010/06/new-1-2-0/

Перенос старого кода на новое API (нужно, если у вас часть игры написана в старом коде,
но вы хотите использовать новые возможности) вкратце сводится к следующему :
- Добавление instead_version "1.8.2" (текущую версию инстеда)
- Замена в обработчиках enter,exit,use,used ссылок на объекты самими объектами. Например:

Было:

use = function(s, w)
    if w == 'knife' then

Стало:

use = function(s, w)
    if w == knife then

- Удаление первого параметра у всех vobj. Изменить act у всех vobj. (Вместо цифровых идентификаторов в обработчик act комнаты передается имя vobj);

Re: INSTEAD API

Я пишу в кавычках и использую API 1.2.0 вроде бы.
А в чём такая закавыка, что все новые игры обязательно должны использовать новый API? Авторы лезут за примерами в игры, там всё по большей части на старом.

Александр Яковлев, к вашим услугам.

Re: INSTEAD API

Oreolek wrote:

Я пишу в кавычках и использую API 1.2.0 вроде бы.
А в чём такая закавыка, что все новые игры обязательно должны использовать новый API? Авторы лезут за примерами в игры, там всё по большей части на старом.

А кто сказал, что это обязательно? Просто иначе не будет новых возможностей, которые многие сочтут полезными.

Re: INSTEAD API

Эээ... Поясню еще раз.

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

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