Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
05.10.2007 14:01

Iriska
Участник
Зарегистрирован: 05.10.2007
Сообщений: 2

С чего начать разработку движка для текстовой игры

Преподаватель дал странное задание для курсовой работы по компьютерной анимации: "Напиши текстовую игру". Язык С, С++, библиотека OpenGL, никаких движков, только "самостаятельная работа и живой код". Знакомые сказали, что для написания текстовой игры нужно знать теорию создания компиляторов и построения формальных языков и еще кучу всего. К сожалению, они не смогли посоветовать ничего более конкретного, поэтому обращаюсь к вам.
Подскажите, пожалуйста, с чего начать, что почитать, нет ли известных алгоритмов анализа текста?
Я не питаю иллюзий, что у меня сразу получится нечто сотящее, но хоть что-то сделать надо.

Неактивен

0    0    #2
05.10.2007 14:53

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

Re: С чего начать разработку движка для текстовой игры

Скажи конкретнее, какую игру делать собрался.
Это может быть, например, рогалик(rogue-like), или текстовый квест с вводом через меню или через командную строку. Это также может быть игра "змейка", или тетрис, или что в голову взбредёт.
Какую именно "текстовую игру"?

Неактивен

0    0    #3
05.10.2007 16:35

Gremour
Участник (+1)
Откуда: Беларусь
Зарегистрирован: 09.11.2004
Сообщений: 234

Re: С чего начать разработку движка для текстовой игры

Действительно, зачем для текстовой игры OpenGL? И при чём тут анимация? Может имелось в виду "ТЕСТОВУЮ игру"?

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

Неактивен

0    0    #4
06.10.2007 18:13

Eten
Участник (+9, -307)
Откуда: Балаково, Санкт-Петербург.
Зарегистрирован: 21.05.2007
Сообщений: 1416
Вебсайт

---

Re: С чего начать разработку движка для текстовой игры

К примеру с OpenGL, можно сделать 3d эффэкты для самого текста, геймплея. Иначе говоря основа любой текстовой игры - это текст, его можно аниминровать (буквы), подсветку, мигание и прочую херь с возможностями 3d технологии. Можешь сделать квест, к примеру, вот:
сюжет в в жанре фэнтэзи, интерфес тоже в стиле фэнтази, классные буквы, как в Паркане в меню. При этом можешь анимировать и интерфейс и текст. Текст к примеру может светиться, переливаться светом, а когда меняется, падать или разбегается. Про интерфейс говорить не буду, сам должен знать все эти фичи в играх.
Я например, помню игру, в которой управляещь своей расой на родной планете, и развиваешь ее, там выход в комос, дипломатия, развитие, но вся игра в основном из текста.
Так, что смотри сюда:
1) Выбери жанр игры
2) Придумай весь свой сюжет
3) Продумай все возможности твоего геймплея (в меру твоих возможностей) исходя из твоего сюжета
4) Продумай дизайн и анимацию своей игрухи, так чтоб было и просто и со вкусом.
5) Сделай игру, так чтобы в ней основой был текст и она удовлетворяла твоим требованиям

У меня в школе на допю занятиях тоже была курсовая, в другую тематику прог, но тоже не слишком определенно, ничего выбрал нужное направление и создал программу, простую, но подходящую под условия задачи.
К примеру поиграй в квестовую игру на тему фаллоута, там и текст и анимация какая-никакая, но все же есть, а в основе текст.

Неактивен

0    0    #5
06.10.2007 22:14

HIman
Участник (+1)
Откуда: St. Oskol
Зарегистрирован: 23.01.2003
Сообщений: 164
Вебсайт

Я выбираю QSP !

Re: С чего начать разработку движка для текстовой игры

В твоем случае можно сообразить очень простую игру ТЕКСТовую - Лабиринт

1. Генерируешь лабиринт скаже 10 на 10 комнат можно больше можно меньше можно статический лабиринт и не морочиться с генерацией. В генерацию входит расставления дверей по комнатам, так чтобы был возможет выход.

2. Меню управления игры самое простое 1 идти в левую дверь если она есть конечно, 2 вперед, 3 назад, 4 в правую дверь.
Каждая локация в текстовом виде будет сообщать игроку на каких направлениях есть двери.

Вот  и все... смысл игры выбраться из лабиринта


Успехов...

Неактивен

0    0    #6
08.10.2007 09:29

DzafT
Участник
Зарегистрирован: 07.07.2007
Сообщений: 51
Вебсайт

Re: С чего начать разработку движка для текстовой игры

Гмм... Ну и преподы пошли... Калькулятор лучше бы сказал написать...
Переспроси препода - что ему конкретно надо?
Зачем ему в текстовой OpenGl нужен?

Отредактировано DzafT (08.10.2007 09:30)

Неактивен

0    0    #7
08.10.2007 14:24

Iriska
Участник
Зарегистрирован: 05.10.2007
Сообщений: 2

Re: С чего начать разработку движка для текстовой игры

Спасибо всем, кто ответил!
Игра будет на тему поиска предмета в помещении (возможно, лабиринте). Мне посоветовали книгу  Андре Ламота "Программирование игр для Windows", там 14я глава посвящена текстовым играм. Написано нормально, могу посоветовать начинающим вроде меня ) Кажется, ее можно скачать по ссылке http://www.proklondike.com/contentview.php?content=266
OpenGL по замыслу преподавателя должен визуализировать то, что написано в тексте, а сам текст должен выводиться в консоли. Мне эта идея не нравится, потому что я предчувствую проблемы с кодировками в консоли (код должен быть мультиплатформенный Mac OS X и WindowsXP), да и странно это - игра в двух окнах.
Пугают слова о лексическом и синтаксическом анализе. Показалось, что это нечто вроде базы данных со всеми возможными вариантами ответов пользователя, но при чем тогда анализ?

Неактивен

0    0    #8
08.10.2007 18:51

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: С чего начать разработку движка для текстовой игры

Iriska написал:

OpenGL по замыслу преподавателя должен визуализировать то, что написано в тексте, а сам текст должен выводиться в консоли. Мне эта идея не нравится, потому что я предчувствую проблемы с кодировками в консоли (код должен быть мультиплатформенный Mac OS X и WindowsXP), да и странно это - игра в двух окнах.

Текст вообще-то можно тоже выводить в виде графики (в зависимости от нажатой кнопки программа отображает тот или иной битмап). Хотя тут я, увы, могу только теоретизировать - опыта программирования графических приложений, да еще в OpenGL у меня нет.

Iriska написал:

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

Ну, это в принципе и есть база данных всех возможных ответов пользователя. Анализ состоит в том, что в зависимости от ответа игра реагирует по-разному. ИМХО, надо сразу определиться с набором команд, понимаемых игрой (поскольку она тестовая и посвящена поиску предмета в лабиринте, то вполне можно ограничиться основными направлениями (север, юг, восток, запад + сокращения), ну, может, еще добавить команду "взять <предмет>" с синонимами и словоформами для глагола ("возьми, бери, брать"  и т. д.) и для предмета (предметов), которые можно брать). Необходимое количество реализуемых команд и словоформ в данном случае определяется исключительно вредностью конкретного преподавателя;).

При таком минимальном наборе лексический анализ будет состоять в том, что при наличии незнакомого ей слова в команде игра ответит "я не знаю слова <незнакомое слово>". В простейшем случае его можно реализовать развесистым оператором типа switch-case или поиском в списке.

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

> яблоко
> яблоко север
> яблоко взять

Команда должна начинаться с глагола!

> север яблоко
> север взять

После команды имеются лишние слова!

> взять север

В команде не может быть двух глаголов.

> взять

Необходимо указать, что вы хотите взять.

Примерно вот так. В простейшем случае пугаться совершенно нечего, а если преподаватель потребует чего-то более изощренного - пишите, будем думать.

Неактивен

0    0    #9
08.10.2007 21:18

Gremour
Участник (+1)
Откуда: Беларусь
Зарегистрирован: 09.11.2004
Сообщений: 234

Re: С чего начать разработку движка для текстовой игры

Действительно, странный препод. Если работа по компьютерной анимации, нафиг приплетать текстовый жанр? Не лучше ли было дать задание написать небольшую аркаду типа Comet Busters (он же Stardust)?

Неактивен

0    0    #10
09.10.2007 10:19

Eten
Участник (+9, -307)
Откуда: Балаково, Санкт-Петербург.
Зарегистрирован: 21.05.2007
Сообщений: 1416
Вебсайт

---

Re: С чего начать разработку движка для текстовой игры

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

Неактивен

0    0    #11
03.05.2011 00:58

Pirate
Участник (+2)
Зарегистрирован: 30.04.2011
Сообщений: 26

Re: С чего начать разработку движка для текстовой игры

Интересное у темы название. А начать надо с того, что попросить форумчан написать демки на языке русскоязычной платформы, которая лучше существующих.

Отредактировано Pirate (03.05.2011 00:58)

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru