LINUX.ORG.RU

Вышла еще одна игра для INSTEAD - интерпретатора простых текстовых приключений

 , ,


0

0

Небольшой квест: «Одна старая история» — история о программисте-параноике и его войне со злом.

Интерпретатор STEAD (Simply Text Adventure) позволяет проигрывать игры, которые по жанру являются смесью визуального повествования, текстового квеста и классических квестов 90-х.

>>> Скриншоты и описание

>>> Скачать.

>>> Сайт проекта

★★

Проверено: Shaman007 ()

Ответ на: комментарий от gloomy

Эээ… как-то так :) // Не проверялось, ибо пересобирать прямо сейчас не могу.

: diff unix.c /home/new/unix.c
54c54
< snprintf(save_path, sizeof(save_path) - 1 , "%s/.insteadrc", pw->pw_dir);
---
> snprintf(save_path, sizeof(save_path) - 1 , "%s/.instead/insteadrc", pw->pw_dir);

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

Это не правильно, так как каталога .instead может не быть. ;) Так что в каком-то смысле текущая схема правильная.

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

> Выложил сборку n810 на ftp форума n8xx.com О, спасибо! Попробую сегодня. Там правда надо бы и тему переделать книжную под 800x480.

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

А save'ы сохраняются туда мистическим образом? Уж не знаю, кто в программе за это отвечает, я вообще руби больше как-то :}

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

А save создают этот каталог -- т.е. это продукт деятельности игры. Можно сделать и так и так. Оба варианта на мой взгляд подходят. Поэтому, инициатива в ваших руках (хочется немного отдохнуть). :)

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

Не, с C я далеко не уеду, давно было в последний раз :}

Deleted
()

Угу. Теперь мои фичреквесты (мб есть что, с Lua не работал) :
1) Анимация (различные каринки для одной и той же локации в зависимости от условий)
2) В инвентаре сделать разбиение предметов по группам (доспехи, оружие, еда etc)
3) Возможность ассоциации предмета с картинкой (возможность сделать меч с максимальным/минимальным уроном и показать, как он красиво выглядит)
4) В инвентаре показывать количество предметов. Типа: Деньги (5000), Ящик (4)

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

> 3) пока можно покликать на title ;)

Не сообразил бы :)

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

Ответы.

1) Уже есть (собственно это реализовано в обоих квестах). pic может быть функцией.

2) можно сделать прямо в игре, используя lua.

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

4) реализуемо в самой игре, lua. nam может быть функцией.

В любом случае, движок, кончено, направлен на определенный тип квестов, вроде тех, что есть сейчас. Но большинство вещей могут быть сделаны в самой игре, за счет lua скриптинга.

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

побольше интересных игр на этом движке, рюшечки не нужны. Главное чтобы игралось как будто книжку читаешь :)

alt0v14 ★★★
()

Собирал instead-0.8.6 под MOPS Linux 6.0

Сначала не обнаруживался пакет lua5.1, несмотря на его наличие:

---------------------------------------------------
$luac -v
Lua 5.1.2 Copyright (C) 1994-2007 Lua.org, PUC-Rio
---------------------------------------------------

Потом правда я заметил, что у меня этот пакет в системе зовется просто lua и сделал соответствующие правки в Rules.make.standalone

Собралось. Но теперь после выбора игры в стартовом окне падает с ошибкой сегментирования. =(

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

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

Как остальные SDL игры? Работают? Что говорит gdb? Или запустить с valgrind?

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

$ gdb sdl-instead
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i486-slackware-linux"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb)
(gdb) run
Starting program: /usr/local/bin/sdl-instead
Failed to read a valid object file image from memory.
[Thread debugging using libthread_db enabled]
[New Thread -1214576960 (LWP 12192)]
[New Thread -1214837872 (LWP 12195)]
[New Thread -1223226480 (LWP 12196)]
[Thread -1223226480 (LWP 12196) exited]
[Thread -1214837872 (LWP 12195) exited]
[New Thread -1214837872 (LWP 12237)]
[New Thread -1223226480 (LWP 12238)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1214576960 (LWP 12192)]
0xb7d1f253 in strlen () from /lib/libc.so.6
(gdb)

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

>Как остальные SDL игры? Работают?

Из других SDL-ных на этой машине у меня только freedroid-classic и он работает нормально.

>Или запустить с valgrind?


Та же ошибка сегментирования.

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

(gdb) backtrace
#0 0xb7d90253 in strlen () from /lib/libc.so.6
#1 0xb7ea9711 in open_file () from /usr/lib/libSDL_mixer-1.2.so.0
#2 0xb7eb3b08 in ?? () from /usr/lib/libSDL_mixer-1.2.so.0
#3 0xb7eb91ff in ?? () from /usr/lib/libSDL_mixer-1.2.so.0
#4 0x00000001 in ?? ()
#5 0x00000002 in ?? ()
#6 0xbfc1b597 in ?? ()
#7 0xb7e61458 in main_arena () from /lib/libc.so.6
#8 0xb7e61158 in main_arena () from /lib/libc.so.6
#9 0xb7e61150 in main_arena () from /lib/libc.so.6
#10 0x00000000 in ?? ()
(gdb)

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

Не понятно, что происходит. Выглядит так, как будто проблема в SDL. Возможно, разные заголовочные файлы/библиотеки? Можно попробовать запусить win версию из-под wine. :)

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

>Не понятно, что происходит. Выглядит так, как будто проблема в SDL. Возможно, разные заголовочные файлы/библиотеки? Можно попробовать запусить win версию из-под wine. :)

Тут, на работе, у меня все равно колонок нету, так что пока не важно. Могу поиграть и с -no-sound. Вечером попробую запустить дома, там у меня не такой старый дистрибутив.

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

У INSTEAD английский интерфейс есть, или только русский?

По-моему, без английского в официальный Gentoo не примут.

question4 ★★★★★
()

Правильный ебилд

Люди! Предыдущие ебилды не учитывают некоторые изменения, которые автор внёс между версиями 0.7.4 и 0.8.5. В результате — мусор в / . Пожалуйста, смените ебилд на этот (проверено на 0.8.7):

# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

inherit games

DESCRIPTION="INSTEAD quest engine"
HOMEPAGE="http://instead.googlecode.com/"
SRC_URI="http://instead.googlecode.com/files/${P/-/_}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""

DEPEND="=dev-lang/lua-5.1* 
	media-libs/libsdl
	media-libs/sdl-mixer
	media-libs/sdl-image
	media-libs/sdl-ttf"
RDEPEND="${DEPEND}"

src_unpack() {
	unpack "${A}" || die "Cannot unpack archive"
	cd "${S}" || die "Directory ${S} doesn't exist"
	cp Rules.make.system Rules.make || die "Cannot copy Rules.make.system"
	sed 's/lua5.1/lua/; s:DESTDIR=.*:DESTDIR=:; s:BIN=.*:BIN=$(DESTDIR)'"${GAMES_BINDIR}"':; s:$(DESTDIR)/share:$(DESTDIR)'"${GAMES_DATADIR}:" -i Rules.make || die "Cannot patch Rules.make"
	sed 's:$(DESTDIR)/share:$(DESTDIR)'"${GAMES_DATADIR_BASE}:" -i desktop/Makefile doc/Makefile || die "Cannot patch makefiles"
}

src_install() {
	emake DESTDIR="${D}" install || die "emake install failed"
	prepgamesdirs
}
question4 ★★★★★
()
Ответ на: комментарий от gloomy

>Подняли форум
Не охота регится, такой баг: в информации напиано "Версия для Windows" :)
З.Ы. Linux 2.6.30-gentoo-r5

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

Там написано два имени: Автор движка И автор порта под windows :)

Хотя может стоит сделать надпись понятней.

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

Английский интерфейс есть, можно убрать define при сборке.

Из всех CFLAGS убрать -DRUSSIAN достаточно, или есть что-то ещё?

Но игры-то только русские :)

Думаю, перевода туториала хватит :) Могу перевести, если с английским трудно.

Заодно вот такой вопрос:

На сайте GNU make рекомендуют оставлять DESTDIR пустым (http://www.gnu.org/prep/standards/html_node/DESTDIR.html), а /usr/ или /usr/local/ задавать в переменной PREFIX.

ip1981 предложил такой вариант для Rules.make.system :

PREFIX=/usr/local
DESTDIR=
BIN=$(DESTDIR)$(PREFIX)/bin/
STEADPATH=$(DESTDIR)$(PREFIX)/share/stead
THEMESPATH=$(STEADPATH)/themes
GAMESPATH=$(STEADPATH)/games
ICONPATH=$(PREFIX)/share/pixmaps 

Есть какие-то причины для нестандартного использования DESTDIR?

Соответственно, для desktop/Makefile будет:

install -d -m 0755 $(DESTDIR)$(PREFIX)/share/applications
install -m 0644 instead.desktop $(DESTDIR)$(PREFIX)/share/applications/instead.desktop
(Кстати, зачем там последняя строка дважды?)

Для doc/Makefile:

install -d -m0755 $(DESTDIR)$(PREFIX)/share/doc/instead
install -m0644 *.jpg *.html *.txt $(DESTDIR)$(PREFIX)/share/doc/instead

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

> Из всех CFLAGS убрать -DRUSSIAN достаточно, или есть что-то ещё? Достаточно.

Насчет DESTDIR -- там действительно все запущено. Попробую привести Makefile'ы в порядок. Основная сложность -- должно работать для Windows, для /usr/share и для ./ путей одновременно.

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

В след версии внесу ваши изменения. И попробую написать man. :)

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

Насчет tutorial. Была попытка первода -- но с тех пор он (tutorial) уже изменился. Если переведете -- будет замечательно. :)

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

> Основная сложность -- должно работать для Windows, для /usr/share и для ./ путей одновременно.

Сейчас нормально работает с DESTDIR и без PREFIX? Тогда просто надо перенести нынешнее содержимое DESTDIR в PREFIX, и все упоминания $(DESTDIR) заменить на $(DESTDIR)$(PREFIX). Мне кажется так.

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

Да -- я заложил это в svn. Но для верности (перед выпуском версии) надо собрать debian пакет, win версию и ach пакет. :) + я хотел кое-что поправить из мелочей. Через день два -- выпущу 0.8.8

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

Работает.

Ебилд:

# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

inherit games

DESCRIPTION="INSTEAD quest engine"
HOMEPAGE="http://instead.googlecode.com/"
SRC_URI="http://instead.googlecode.com/files/${P/-/_}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""

DEPEND="=dev-lang/lua-5.1* 
	media-libs/libsdl
	media-libs/sdl-mixer
	media-libs/sdl-image
	media-libs/sdl-ttf"
RDEPEND="${DEPEND}"

src_unpack() {
	unpack "${A}" || die "Cannot unpack archive"
	cd "${S}" || die "Directory ${S} doesn't exist"
	cp Rules.make.system Rules.make || die "Cannot copy Rules.make.system"
	sed 's/lua5.1/lua/;'  -i Rules.make || die "Cannot patch Rules.make"
	sed 's:PREFIX=.*:PREFIX=/usr:' -i Rules.make || die "Cannot patch Rules.make"
	sed 's:BIN=.*:BIN=$(DESTDIR)'"${GAMES_BINDIR}:" -i Rules.make || die "Cannot patch Rules.make"
	sed 's:STEADPATH=$(DESTDIR)$(PREFIX)/share:STEADPATH=$(DESTDIR)'"${GAMES_DATADIR}:" -i Rules.make || die "Cannot patch Rules.make"
	sed 's:DOCPATH=$(DESTDIR)$(PREFIX)/share:DOCPATH=$(DESTDIR)'"${GAMES_DATADIR}:" -i Rules.make || die "Cannot patch Rules.make"
}

src_install() {
	emake DESTDIR="${D}"  install || die "emake install failed"
	prepgamesdirs
}

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