LINUX.ORG.RU

Вышел INSTEAD 2.0.0

 , ,


5

5

Тихо и незаметно, накануне 5 летнего юбилея проекта, вышла новая версия интерпретатора текстографических квестов INSTEAD. Среди изменений по сравнению с прошлой версией можно отметить:

  • Лицензия MIT.
  • Код проекта после переоформления перенесен на github.
  • Игры теперь запускаются в песочнице.
  • Поддержка системы сборки cmake.

Полный список изменений можно посмотреть по ссылке.

Среди лучших игр на данном движке вышедших в 2013 году стоит упомянуть:

Скриншоты

>>> Подробности

★★

Проверено: Shaman007 ()
Последнее исправление: unfo (всего исправлений: 1)
Ответ на: комментарий от Kompilainenn

Ну откуда я знаю о каком месте идет речь? Я так могу всю игру пройти. Самое начало понятие растяжимое.

Короче помощь возможна только при сейве. А так - дошел до места где можно бросить кубик в робота и остановился. Нет времени телепатировать. :)

gloomy ★★
() автор топика

При запуске instead ругается «libpng error: bad parameters to zlib». Может кто подскажет с чем связана ошибка?

anonymous
()
Ответ на: комментарий от anonymous

Скорее всего мешанина с библиотеками (SDL2/SDL) или что то подобное. Какая система? Как сборка делалась?

gloomy ★★
() автор топика
Ответ на: комментарий от anonymous

сново не работает на вендройд 4.2.2 не нужно.

Проблема в том, что у меня и у разработчика порта это не воспроизводится. (Соответственно, работает) Лучшеб помог отладиться...

gloomy ★★
() автор топика
Ответ на: комментарий от skiminok1986

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

вот тебе лень подсказать? или ты поклонник садизма?

Kompilainenn ★★★★★
()
Ответ на: комментарий от gloomy

А с GTK3 как собрать? В CMakeLists вижу опцию WITH_GTK3, но она нигде не используется, только проверяется чтоб WITH_GTK3 и WITH_GTK2 одновременно не были указаны.

Lavos ★★★★★
()
Ответ на: комментарий от Kompilainenn

вот тебе лень подсказать? или ты поклонник садизма?

а я тебе предложил помощь. все, что тебе надо - дать мне сейв :) но тебе тоже лень. :)

gloomy ★★
() автор топика

Лицензия MIT.

Малаца!

Игры теперь запускаются в песочнице.

Для чего? Игра может сделать rm -rf / ?

vurdalak ★★★★★
()
Ответ на: комментарий от vurdalak

Для чего? Игра может сделать rm -rf / ?

Игра могла стереть фотки с котом, например. Теперь не может. :)

gloomy ★★
() автор топика
Ответ на: комментарий от vurdalak

Малаца!

Проприетарщики ликуют, ога.

Стыдно, стыдно выкладывать игру под пермиссивной лицензией, когда идёт Великая Борьба за Великую Свободу между богатыми проприетарщиками и Великим и Нерушимым Сообществом.

anonymous
()
Ответ на: комментарий от Kompilainenn

Чугунная стена есть только в твоей фантазии — всё там проходимо. Просто ты упёрся в неверное мышление.

Давай сейв — подскажем. Но ты ж сейв не даёшь. Что мне теперь перепроходить игру чтобы тебе подсказать?

skiminok1986 ★★★★★
()
Последнее исправление: skiminok1986 (всего исправлений: 1)
Ответ на: комментарий от gloomy

Скорее всего мешанина с библиотеками (SDL2/SDL) или что то подобное. Какая система? Как сборка делалась?

Система openSUSE 13.1. instead собирался в OBS по спеку из архива. Правда пришлось добавить в спек строку «%dir %{_datadir}/%{name}» в «%files», иначе не собирался пакет.

anonymous
()
Ответ на: комментарий от vurdalak

Вдруг мне понадобится заюзать исходники instead в проекте под cddl?

Переведи CDDL-проект под GPL, в чём проблема?

anonymous
()
Ответ на: комментарий от gloomy
~> ldd /usr/bin/sdl-instead
        linux-gate.so.1 (0xb773e000)
        libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0xb767e000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7661000)
        libSDL_ttf-2.0.so.0 => /usr/lib/libSDL_ttf-2.0.so.0 (0xb7659000)
        libSDL_mixer-1.2.so.0 => /usr/lib/libSDL_mixer-1.2.so.0 (0xb7609000)
        libSDL_image-1.2.so.0 => /usr/lib/libSDL_image-1.2.so.0 (0xb75e9000)
        libm.so.6 => /lib/libm.so.6 (0xb75a3000)
        liblua.so.5.2 => /usr/lib/liblua.so.5.2 (0xb756f000)
        libc.so.6 => /lib/libc.so.6 (0xb73be000)
        libdl.so.2 => /lib/libdl.so.2 (0xb73b9000)
        libesd.so.0 => /usr/lib/libesd.so.0 (0xb73ad000)
        libasound.so.2 => /usr/lib/libasound.so.2 (0xb72c3000)
        libpulse-simple.so.0 => /usr/lib/libpulse-simple.so.0 (0xb72be000)
        libpulse.so.0 => /usr/lib/libpulse.so.0 (0xb726c000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xb7131000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0xb711e000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb7112000)
        /lib/ld-linux.so.2 (0xb773f000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7076000)
        libmikmod.so.3 => /usr/lib/libmikmod.so.3 (0xb7020000)
        libvorbisfile.so.3 => /usr/lib/libvorbisfile.so.3 (0xb7016000)
        libFLAC.so.8 => /usr/lib/libFLAC.so.8 (0xb6fd6000)
        libpng16.so.16 => /usr/lib/libpng16.so.16 (0xb6f9a000)
        libjpeg.so.8 => /usr/lib/libjpeg.so.8 (0xb6f42000)
        libtiff.so.5 => /usr/lib/libtiff.so.5 (0xb6ece000)
        libaudiofile.so.1 => /usr/lib/libaudiofile.so.1 (0xb6e90000)
        librt.so.1 => /lib/librt.so.1 (0xb6e87000)
        libpulsecommon-4.0.so => /usr/lib/pulseaudio/libpulsecommon-4.0.so (0xb6e12000)
        libjson.so.0 => /usr/lib/libjson.so.0 (0xb6e07000)
        libdbus-1.so.3 => /lib/libdbus-1.so.3 (0xb6dba000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb6d97000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb6d8c000)
        libz.so.1 => /lib/libz.so.1 (0xb6d75000)
        libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0xb6d48000)
        libogg.so.0 => /usr/lib/libogg.so.0 (0xb6d40000)
        libcrypto.so.1.0.0 => /lib/libcrypto.so.1.0.0 (0xb6b87000)
        liblzma.so.5 => /usr/lib/liblzma.so.5 (0xb6b5d000)
        libjbig.so.2 => /usr/lib/libjbig.so.2 (0xb6b50000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb6a62000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb6a45000)
        libwrap.so.0 => /lib/libwrap.so.0 (0xb6a3a000)
        libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0xb69c4000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xb69c0000)
        libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0xb6847000)
        libspeex.so.1 => /usr/lib/libspeex.so.1 (0xb682f000)
anonymous
()
Ответ на: комментарий от anonymous

ldd /usr/bin/sdl-instead

на первый взгляд все ок, я бы сказал, что скорее всего что-то не так со сборкой SDL_image. А другие игры на SDL работают нормально?

Можно поразбираться, но лучше тогда в конфе: instead@conference.jabber.ru, а тут это будет неудобно.

gloomy ★★
() автор топика
Ответ на: комментарий от gloomy

Ага, понятно. Добавил 3 юза для включения/выключения gtk3/iconv/libsdl2:

# $Header: $

EAPI=2
inherit cmake-utils games

DESCRIPTION="INSTEAD quest engine"
HOMEPAGE="http://instead.sf.net/"
SRC_URI="mirror://sourceforge/${PN}/${PN}_${PV}.tar.gz"

LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="gtk3 +iconv sdl2"

DEPEND="=dev-lang/lua-5.1*
	sdl2? ( media-libs/libsdl2
		media-libs/sdl2-mixer
		media-libs/sdl2-image
		media-libs/sdl2-ttf )
	!sdl2? ( media-libs/libsdl
		media-libs/sdl-mixer
		media-libs/sdl-image
		media-libs/sdl-ttf )
	gtk3? ( x11-libs/gtk+:3 )
	!gtk3? ( x11-libs/gtk+:2 )
	iconv? ( virtual/libiconv )"

RDEPEND="${DEPEND}"

src_configure() {
	mycmakeargs=(
		-DCMAKE_INSTALL_PREFIX=""
		-DBINDIR=${GAMES_BINDIR}
		-DDATADIR=${GAMES_DATADIR}/${PN}
		-DSHAREDIR=${GAMES_DATADIR}/${PN}
		-DDOCDIR=${GAMES_DATADIR}/doc/${PN}
		-DICONDIR=/usr/share/pixmaps
		-DMANDIR=/usr/share/man
		-DDESKTOPDIR=/usr/share/applications
		$(cmake-utils_use_with gtk3 GTK3)
		$(cmake-utils_use_with !gtk3 GTK2)
		$(cmake-utils_use_with sdl2 SDL2)
		$(cmake-utils_use_with iconv ICONV)
    )
	cmake-utils_src_configure
}

src_compile() {
	cmake-utils_src_compile
}

src_install() {
	cmake-utils_src_install
}
А когда в cmake появится возможность выбирать версию LUA?

Lavos ★★★★★
()
Последнее исправление: Lavos (всего исправлений: 1)
Ответ на: комментарий от Lavos

О! Спасибо! cmake сделал и поддерживает AMDmi3. В git когда появится - тогда и будет - пока решили на эту опцию забить вроде.

gloomy ★★
() автор топика
Ответ на: комментарий от gloomy

на первый взгляд все ок, я бы сказал, что скорее всего что-то не так со сборкой SDL_image. А другие игры на SDL работают нормально?

Хороший вопрос. Играми практически не интересуюсь, потому без понятия, что есть на SDL.

В вики есть некий список игр http://en.wikipedia.org/wiki/List_of_games_using_SDL. А в репе нашелся Frozen Bubble из списка и без проблем запустился.

Если еще какая инфа от меня нужна, могу отписаться здесь. Но вот до конфы вряд ли доберусь.

anonymous
()
Ответ на: комментарий от anonymous

В общем кажется, что все таки что то не то со средой сборки. Например, .h файл взялся от другой версии (png или SDL) а либа - от другой. Но тут сложно это выяснять - итеративный процесс. Чтоб просто посмотреть инстед - можно в конце-концов в wine запустить. ;)

gloomy ★★
() автор топика
Ответ на: комментарий от Kompilainenn

> Я просто намекал что там долго из этой комнаты не выбраться

О_о вашу ж мать, автор-то молодец.

отлично %)[/sarcasm]

ЛОР читай @ спойлеры лови!

:-D

я ещё игру не открул а уже знаю что из белой комнаты так просто не выйти... как теперь играть , с таким спойлером %)

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 2)
Ответ на: комментарий от anonymous

Скорее всего я бы сказал так: SDL_image был ранее скомпилирован с другой версией libpng. Не той, что зацепилась сейчас.

gloomy ★★
() автор топика
Ответ на: комментарий от gloomy

Это с клавиатурой. ;)

один раз [много лет назад] я видел как мужик на работе с серъёзным видом весь день (за рабочим местом) — набирал команды в чёрном терминале..

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

user_id_68054 ★★★★★
()
Ответ на: комментарий от user_id_68054

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

там именно фактически _не_выйти_ долго. А так есть чем заняться.

arkhnchul ★★★
()

У вас же всё равно есть lua. Зачем писать логику движка на си? Там ужасная низкоуровневая каша, и притом завязка на *nix. Такие вещи сами просятся на скриптовые языки, или хотя бы что-то повыше уровнем.

К слову, нельзя свои идентификаторы начинать двойным подчеркиванием.

unsigned ★★★★
()
Ответ на: комментарий от unsigned

Почему на unix? Windows, OS X, S60, wince - везде собирается. На си вообще то только отображение по сути. Логики там не много. Игровой - нет вообще. Только интерфейс же.

__ - для внутренних идентификаторов - почему нельзя?

gloomy ★★
() автор топика
Последнее исправление: gloomy (всего исправлений: 1)
Ответ на: комментарий от unsigned

Но вообще, защищать свой код, конечно не буду.

Наверное, все можно было сделать лучше. Если бы был подобный движок, не делал бы свой.

Можно форкнуть инстед, можно написать новый лучше, можно сделать инстед на love2d. Если кто то сделает лучше -я буду рад и закрою свой INSTEAD. :) Честно.

__cache_t исправлю - убедил. :)

gloomy ★★
() автор топика
Последнее исправление: gloomy (всего исправлений: 2)
Ответ на: комментарий от gloomy

Всё равно там много мелких действий, которые на си требуют целой портянки, а на подходящих языках - пары строк. Например, перебрать файлы в каталоге. Или логика меню у вас - десятки «else if(!strcmp...». Ручная работа с юникодом, со строками, с памятью... По кроссплатформенности - видел где-то stat и ещё что-то юниксовое, видимо вы под каждую платформу код пишете.

Не, я не нападаю, работает - и отлично :) Просто, имхо, труда затрачено больше чем нужно. И порог вхождения в проект повышен.

По идентификаторам - стандарт:

All identifiers that begin with an underscore and either an uppercase letter or another underscore are always reserved for any use.

unsigned ★★★★
()

Хм, у меня при запуске выдает ошибку:

Error: /usr/share/instead/stead//stead.lua:3159: attempt to call field 'gfind' (a nil value)
stack traceback:
	/usr/share/instead/stead//stead.lua:3159: in function 'instead_version'
	/usr/share/instead/stead//stead.lua:3445: in main chunk
Error: /usr/share/instead/stead//stead.lua:3159: attempt to call field 'gfind' (a nil value)
stack traceback:
	/usr/share/instead/stead//stead.lua:3159: in function 'instead_version'
	/usr/share/instead/stead//stead.lua:3445: in main chunk
Fatal error! Can't init anything!!!

Если заменить gfind на gmatch, то все вроде работает. Странно, еще же в Lua 5.1 переименовали эту функцию.

pevzi ★★★★★
()
Ответ на: комментарий от pevzi

Да. Это единственный gfind. Я сегодня выложу 2.0.1. Бинарные сборки можно оставить. С lua 5.1 тоже проблемы нет. Спасибо!

gloomy ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.