эм... а чем эта картинка отличается от той, что на 5-й странице находится?
Цитата (Red)
тьфу ты, перепутал
и эта картинка тоже уже выкладывалась в этой теме ранее. причём тоже на 5-й странице, чуть ниже предыдущей. и это немножко настораживает. всё же то сообщение было от 25.10.2012. было время отрендерить другую картинку. ну, там, с другого ракурса, хотя бы. все правила форумной игры Дуэль Программистов
Сообщение отредактировал noname - Пятница, 29 Марта 2013, 14:15
doxl, второй скриншот темнее других, хотя на нём как раз больше всего жёлтых лампочек. если лампочки не горят, то почему они жёлтые? а если горят, то почему так темно?
ну и написал бы ещё пару фраз о том, чем интересна твоя генерация. а то народ может не оценить задумки.
я обнаружил два серьёзных недостатка:
1. мы находимся в узком "стакане", ограниченном с трёх сторон. слева ничего нет. снизу мир уже ограничен и очень близко. сверху тоже мир ограничен, во всяком случае, в тех вариантах, что генерились у меня, я ни разу не смог забраться выше одного экрана. основная масса блоков- в нижней половине экрана. выше- крайне редко. самый верх практически всегда пуст.
2. я прошёлся подальше направо(иногда пробивая по пути блоки), а потом решил вернуться на лево. и пошли лаги. если очень долго идти вправо то тоже начинает лагать. вообще, какая бы замечательная ни была генерация, если мы работаем с "бесконечным" миром, надо, в первую очередь, позаботиться о том, чтобы не лагало. иначе никто играть в твой большой мир не сможет.
теперь о хорошем:
я понял так, что смысл задумки в том, что имитируется генерация невероятно большого мира, и это происходит быстро? это интересно.
суть замысла, видимо, в том, что те участки мира, которые игрок впервые видит, генерятся именно в тот момент, когда игрок их впервые увидел. хорошая идея. осталось только качественно её реализовать.
вообще говоря, в "бесконечном" мире скорость работы не должна зависеть от размеров мира. отсюда вывод: должна обсчитываться только область вокруг игрока.
если в сцирре поддерживаются указатели, то создаваемый мир можно хранить в двумерной двусвязной сетке (это как двусвязный список, только + ещё одно измерение).
если в сцирре нет указателей, то можно хранить мир в максимально большом массиве.
в обоих этих вариантах можно генерить такой мир, в котором можно двигаться на все четыре стороны. генерёжка "на лету". игрок всегда находится в одной и той же точке экрана, двигается только мир относительно игрока и двигаются координаты игрока по массиву или указатель по сетке.
каждый раз, зная координаты игрока, перерисовываем только то, что видит игрок и, тем самым, затираем предыдущее изображение.
в двумерном массиве очень легко вычислить, какие ячейки куда отображать.
в сетке указателей немного сложнее. могут быть разные варианты решений. можно, например, от указателя на ячейку с игроком отрисовывать всё по спирали наружу.
в той программе, которую я скачал здесь сейчас, видимо, создаются всё новые и новые объекты стен. и в конце-концов получаются лаги. в том варианте, что предложил я, вообще не нужно объектов. ну, или если в сцирре картинки рисуются на фон объектами, то нужен всего один объект. как-то так. сразу скажу- сцирру я не видел и не запускал ни разу и не имею о ней ни малейшего представления.
Победить можно одним из способов: 1. Запечатать определенное количество локаций. 2. Победить в битве с Древним.
насколько я понял, запечатываются порталы или с использованием улик(5шт?) или особой печатью, которую можно найти в других мирах.
во время передышки можем или применить предметы или просто нажать ОК.
во время движения перемещаемся, движение заканчивается либо если кончаются очки движения(обычно можно двигаться 3раза) либо если нажали ОК- тогда происходит что-нить там, где мы оказались. ну, ещё монстры могут и во время движения напасть, они отмечены значками черепов на карте. каждая клеточка на карте- особая: в больнице можно лечиться, в порту можно продавать трофеи, а кроме того могут происходить какие-то игровые события. так же можно перемещаться через портал в иные миры, а из иных миров обратно(после чего портал закрывается и это есть хорошо, но если запечатаете его, то будет ещё лучше).
итак движемся, собираем улики и трофеи, лечимся, покупаем и наблюдаем кучу разных событий каждый ход.
пытаемся запечатывать порталы. если это будет получаться плохо и древний в конце-концов проснётся, то будет тяжкий финальный бой. проще до этого не доводить.
я пробовал играть за самого верхнего героя. по-моему, для начала- самое то. он умеет избегать любых боёв с монстрами.
после этого можно внимательно изучить правила и попробовать поиграть кем-нибудь другим.
Добавлено (26.03.2013, 21:56) --------------------------------------------- а теперь замечания:
я в музее после одной аномалии повысил какой-то навык. НО мне не сказали какой именно. это надо исправить.
при продаже трофеев в порту не говорят, 5 чего я получу в обмен на 5 трофеев. я не сразу понял, что я получу именно 5 денег. в первый раз я надеялся получить улики.
Твоя теория не более обоснована, чем все остальные.
ну, да- она менее обоснована, чем, скажем, любая из научных теорий. а разве могло быть иначе? такова судьба теорий диванных философов. что не мешает им иногда оказываться верными. впрочем, я не хочу сказать, что именно моя теория верна- просто какая-то версия.
ну, да- она менее обоснована, чем, скажем, любая из научных теорий.
с другой стороны, её начало полностью совпадает с Теорией Большого взрыва, и в этой части она ровно так же обоснована, как и эта научная теория. а дальше моя теория строится на двух допущениях, которые лично мне не кажутся такими уж невероятными: - процесс развития может завести очень далеко и дать невероятные возможности влияния, в том числе и на прошлое - рождение нашей Вселенной может быть результатом влияния кого-то, имеющего невероятные возможности(Бога)
Где доказательства? Или хотя-бы на каких основаниях сформировал данную теорию?
доказательств, естественно нет. я же не нобелевку защищаю, а делюсь мыслями на форуме.
что касается оснований, то смотри выше:
Цитата (noname)
у меня было два вопроса: до каких пределов может дойти однажды запущенный процесс самоусложнения нашей вселенной и как так получилось, что возникла наша вселенная, в которой возможны сложные процессы, жизнь, возможен этот самый удивительный процесс самоусложнения.
это не простые вопросы и они связались у меня воедино. почему бы и нет?
у меня было два вопроса: до каких пределов может дойти однажды запущенный процесс самоусложнения нашей вселенной и как так получилось, что возникла наша вселенная, в которой возможны сложные процессы, жизнь, возможен этот самый удивительный процесс самоусложнения.
боюсь, меня могут принять за школоту, но всё же хочется поделиться:
пришла в голову такая версия:
точка сингулярности => Большой Взрыв и возникновение времени и пространства => рождение звёзд и планет, химическая эволюция => биологическая эволюция => технологический прогресс => продолжение этого самоусложняющегося процесса, дети земной цивилизации осваивают космос, удивительные достижения прогресса и невероятные трансформации цивилизации, растут познания и могущество => однажды звёздная цивилизация достигает своего пика и становится, фактически, Богом => Бог знает и может всё, Его бытие выходит за рамки времени и пространства и Он выполняет свою миссию.. то единственное, что имеет смысл делать, то единственное, для чего Он рождён: Он создаёт начальные условия возникновения нашей Вселенной => точка сингулярности => Большой Взрыв.. так возникла наша Вселенная.
другими словами:
запущенный когда-то процесс самоусложнения вселенной, высшей точкой которого сейчас является технический прогресс, будет продолжаться и однажды приведёт к возникновению Абослюта. все правила форумной игры Дуэль Программистов
Код выглядит пугающе, но большое спасибо что прокоментировал. Я не буду копировать твой код, а сделаю свой на его основе. Если получится)
ну, мой первый выложенный здесь архив содержал алгоритм и относительно простую прогу. и там можно было попытаться разобраться и сделать что-то своё на его основе.
в последнем архиве разобраться уже не так просто, но я старался комментировать всё что только возможно. не знаю, насколько имеет смысл избегать копирования.. но, да- если поймешь что там да как, то тебе легче будет изменять его под свои потребности. все правила форумной игры Дуэль Программистов
а почему бы и нет? я же не пишу игру. я пишу прогу, которая получает какие-то входные данные и выдаёт какой-то результат. потом- другую прогу и т.д.
Цитата (stalker5889)
например, одна прога будет заполнять лабиринт двойками и вырезать в нём комнаты нулями
Например такую функцию я писал.
да, я уже прочёл выше. это можно было сделать разными способами. в идеале прога должна уметь размещать заданное количество комнат заданного размера, если это вообще возможно. но я пойду более простым путём, исходя из того, что коридоров обычно должно быть заметно больше чем комнат. вообще- посмотрим.. вроде бы мой способ должен давать неплохую упаковку комнат. но если нет- придётся его переделать.
Цитата (stalker5889)
Прошу просвятить невежду smile
не понял- к чему это? о чём?
Цитата (stalker5889)
И так делал. Получается некрасиво.
ну, если пустые углы комнаты будут иметь обе нечётные координаты, то должно получиться нормально. то есть, вообще, мой старый алгоритм создаёт узловые точки на полях с обеими нечётными координатами, соединённые стенами или проходами. если же считать углами комнаты внешние поля, которые должны быть всегда со стенами, то они должны иметь обе чётные координаты. в моём старом аглоритме клетки с обеими чётными координатами всегда имеют стены. тогда будет получаться что-то вроде этого: #O###O# #OOOOO# OOOOOO# #OOOOO# ###O### проблема только в том, что таким способом в лабиринте может получиться много зацикливаний.
ну, дело вкуса. если тебе нужны комнаты с ровно одним выходом, то при генерёжке шаблона будешь генерить стены вокруг комнаты. моя генерация не должна давать зацикливаний вообще(если их не было в шаблоне). вообще, моя генерация даёт основу лабиринта. зацикливания можно сделать позже, на основе анализа лабиринта. об этом я тоже напишу и, возможно, дам какую-нить прогу.
и, да- писать буду долго. не потому что сложно, а потому что я ленив и вообще, даже бываю иногда чем-то и занят.
Добавлено (16.03.2013, 22:03) --------------------------------------------- ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------ сегодня поднапрягся и сделал прогу генерации шаблона комнат практически с нуля до конца.
прога не совсем идеальна, и к тому же я там добавил горизонтальную сплошную стену, перечёркивающую комнаты, но эта прога подходит для проверки генератора лабиринта, который я напишу.
нормальных прог, генерирующих шаблоны, можно будет потом наделать. и ненормальных тоже. чтобы проверить генератор лабиринта.
если я смогу ещё один раз так напрячься, то новый генератор лабиринтов будет готов. он будет отличаться от старого. лабиринты будут получаться не из таких ровных линий. новому лабиринту нужно уметь быть гибким, чтобы нормально увязать любой шаблон.
и, да- решил выложить файл на всякий случай. надёжнее, когда работа хранится не только на винте, но и в тырнете: http://yadi.sk/d/PLLAyYND3K3lk
сли я смогу ещё один раз так напрячься, то новый генератор лабиринтов будет готов. он будет отличаться от старого. лабиринты будут получаться не из таких ровных линий. новому лабиринту нужно уметь быть гибким, чтобы нормально увязать любой шаблон.
звучит немного пугающе, но на самом деле ничего сверхсложного нет. алгоритм генерации такого лабиринта я уже упомянул в этой теме выше:
Цитата (noname)
можно было пробивать не по две клетки в выбранную сторону, а по одной. только тогда надо внимательно проверять соседние поля. мой алгоритм проверяет только одно поле- то, до которого пробивается. а если вы решите пробиваться по одной клетке, то необходимо предварительно проверить, что рядом с ней нет уже пробитых ранее полей. иначе вместо лабиринта может получиться открытая поляна.
начинаем строить лабиринт от точки входа(она должна быть указана в шаблоне) и распространяемся далее. если встречаем в шаблоне '0', то это место "заливаем" пустотой '.' так же как в графредакторах заливают область цветом. заливка, собственно и есть та "открытая поляна" которая получается если допускать рисование пустот рядом с пустотами. то есть, заливка делается так: - отмечаем встреченный ноль пустотой '.' и заносим это поле в список - пока список не пуст: --- выбираем первое поле из списка --- заносим в список все соседние с ним поля с '0' --- удаляем выбранное поле из списка всё!
но тут есть пара тонких моментов: когда генератор лабиринтов вызывает в заливку, требуется, чтобы заливка вернула лабиринту список полей, от которых можно попытаться строить лабиринт дальше. это означает, что удалённые из списка поля следует добавлять в другой список, который функция заливки будет возвращать тому, кто её вызвал. как-то проверять эти поля не зачем- генератор лабиринта сделает это сам.
на реализацию этих алгоритмов у меня может уйти 2 часа упорной работы. но прямо сейчас у меня есть чем заняться: подвалила работа, от которой я устаю. скорее всего, сделаю лабиринт примерно к концу следующей недели.
задача: разместить в лабиринте вход, три ключа(красный, синий, зелёный), три двери(красная, синяя зелёная) и три сундука(красный, синий, зелёный) так, чтобы игрок, вошедший в лабиринт через вход, гарантированно имел бы возможность добраться до каждого сундука. но при этом, чтобы до сундука можно было добраться только после прохода через дверь такого же цвета. изначально все двери заперты, но могут быть открыты ключом такого же цвета.
и, да - я так подумал.. прежде, чем перейти на новый генератор лабиринтов, хорошо бы до конца разобраться со старым. итого, решение задачи(предполагается, что лабиринт строится по алгоритму, данному мной в архиве RL_Gen_1.rar):
простое решение:
в двух словах, простое решение заключается в том, чтобы при генерации лабиринта размещать ключи раньше сундуков, а сундуки отделять дверьми.
а теперь распишу эту мысль детально:
допустим, мы строим лабиринт 9х11. тогда в нём будет 4х5=20 узловых точек(тех самых, которые попадают в список и точно будут пустыми к концу генерации. если считать координаты от (0,0) включительно, то все поля лабиринта с обеими нечётными координатами будут узловыми точками).
выберем любую узловую точку в качестве точки входа в лабиринт, и с неё же начнём генерацию лабиринта.
в простом варианте мы размещаем в лабиринте 3-и ключа и 3-и сундука, всего шесть элементов(а двери поставим перед с сундуками). 20/6= 3 целых и 2 в остатке. исходя из этого мы первые 2 узловые точки не трогаем, а каждый следующий элемент размещаем в каждой третьей узловой точке.
может быть, эти рассуждения могут показаться сложными, но на самом деле же просто всё: суть в том, что если во время генерации мы поставим в какую-то узловую точку объект1, а потом в какую-то из следующих, объект2, то мы гарантированно из точки генерации сможем пройти к объекту1, избежав попадания в поле с объектом2. поэтому, разместив ключ раньше двери мы гарантируем, что ключ никогда не окажется за дверью(относительно героя, идущего из начального поля генерации). можно ли дойти до объекта2 в обход объекта1? это может сложиться по-разному.
итого мы считаем создаваемые алгоритмом узловые точки и располагаем элементы в следующем порядке: - точка входа- на первом же созданном поле, с которого начинается генерация - красный ключ на 5-м поле - красный сундук на 8-м поле - зелёный ключ на 11-м поле - зелёная дверь на 14-м поле - синий ключ на 17-м поле - синий сундук на 20-м поле в-общем, не так уж и сложно вычислять эти цифры для лабиринта любого размера. но обычно игроделы рогаликов точно знают размеры лабиринта, которые им нужны. в этом случае вычислить эти цифры ещё проще))
то есть, делая очередной пробив(а каждый пробив добавляет к лабиринту новую узловую точку) мы наращиваем счётчик и сверяемся с ним. и если мы пробиваемся к 5-му узловому полю, то вместо двух пустот подряд делаем пустоту и красный ключ.
а если мы пробиваемся к 8-му узловому полю, то(внимание!) вместо двух пустот подряд, делаем красную дверь и красный сундук. красная дверь окажется между двумя узловыми полями, а к сундуку невозможно будет попасть в обход красной двери.
можно ли найти дверь раньше ключа, или можно ли найти зелёный ключ раньше красного? это уж как сложится. зависит от лабиринта. но всегда будет способ найти ключ раньше двери и всегда будет способ найти красный ключ раньше зелёного.
почему получается так, что нельзя найти сундук раньше двери? потому что мы их размещаем не в узловых полях, которые генерятся в случайном порядке, а мы размещаем дверь в коридоре, соединяющем узловую точку сундука с лабиринтом.
в-общем, если вы поняли что и почему получается именно так, то вы поняли всё важное относительно свойств нашего алгоритма генерации лабиринтов))
если вы разобрались с простым решением, то готовы освоить и более сложное.
в более сложном решении нет ровно никаких хитростей но есть необходимость учитывать некоторую информацию.
заведём ещё три массива для хранения инфы об узловых точках.: R, G, B. а так же будем запоминать координаты трёх сундуков. если сундук ещё не размещён, то пусть в его координатах хранится (-1,-1), чтобы мы могли понять, что его пока нет.
ключи и двери будем располагать точно так же как и в простом решении. и даже сундуки будем по-началу располагать так же. но потом будем эти сундуки перемещать. (на самом деле хорошо бы разместить их слегка пораньше, чтобы синий сундук не оказывался всегда на самом последнем поле откуда мы его больше никуда не переместим ввиду того что генерация закончится. в этом варианте лучше бы всё разместить в первой половине генерации, но в-общем, главное- понять суть. а детали каждый сделает так как ему лучше).
по-началу, в массивы R,G, B при каждом пробитии заносим 0 в ячейку, соответствующую новой узловой точке. после размещения красной двери в массив R занесём не ноль, а 1. это означает, что в эту точку можно попасть только через красную дверь. в дальнейшем, если пробитие осуществлялось из точки помеченной в некоторых из этих трёх массивов единицей, то и новую точку тоже помечаем единицами в этих массивах. таким образом получится, что каждый раз, пробиваясь к новой узловой точке, мы уже знаем, какие двери необходимо пройти, чтобы к этой узловой точке попасть. это ключевой момент сложного метода.
теперь о сундуках: - если в новую узловую точку можно попасть через красную дверь, то переносим красный сундук в неё(для этого мы запоминали координаты сундука). так же поступаем и с остальными сундуками. - есть тонкий момент: если в новую узловую точку можно попасть только пройдя через несколько дверей, то перенести надо только один из соответствующих сундуков. просто потому, что в нашем массиве все объекты отмечаются буквами и два сундука на одну клетку мы не поместим. - не факт, что следующая точка будет дальше предыдущей- может оказаться и ближе.. но мы добьёмся того, что сундуки будут находиться неизвестно где за дверьми.
ещё момент: вас достало то, что в нашем лабиринте нет зацикливаний? выберите несколько случайных стен между узловыми точками и если обе узловые точки абсолютно одинаково помечены в массивах R,G и B, то стену между ними можно смело пробивать- вы не создадите пути в обход двери.
Добавлено (22.03.2013, 19:53) --------------------------------------------- ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------ короч, сделал.. не очень хорошо- всё на костылях, но хуже всего, что новый алгоритм генерации лабиринтов порочен по своей сути: он иногда создаёт сам себе непроходимые препятствия. без комнат это не заметно, но когда объединил его с комнатами и хорошенько потестил, то это всплыло. не всегда генерацией удаётся охватить весь лабиринт.
самое простое и красивое решение- вернуться к своему изначальному ровненькому прямоугольному лабиринту, и генерить комнаты и стены так, чтобы они хорошо вписывались в лабиринт. у такого решения будет один большой недостаток: не любые шаблоны будут корректны. шаблоны придётся генерить так, чтобы они подходили под лабиринт.
вообще, ещё проще сделать обычную нормальную генерацию без всяких шаблонов, а если нужно сгенерить какой-то особый уровень: с большой ареной в центре или ещё что, тогда писать особую генерацию специально для такого уровня.
ещё возможно такое решение: у нас есть список комнат, которые могут быть на данном уровне лабиринта. и во время генерации лабиринта, постепенно в лабиринт подставляются какие-то из подходящих комнат. возиться потом с шаблонами комнат ещё..
хочу ещё заметить, что брать на себя какие-то обязательства- это знатное попадалово. тема вродь интересная и вродь есть пути решения, но бывает интерес пропадает. вообще, обязательства- это плохо.
на данный момент мне уже хочется переделать всё с самого начала.
ещё тут есть такой момент: для любой конкретной игры сделать всю генерацию было бы проще. я же пытался сделать что-то очень общее и очень универсальное. это всё же сложнее.
надо дважды хорошо подумать, что именно делать. пусть это будет не сильно универсальная штука, но пусть это будет какой-то нормально работающий пример генерации лабиринтов с комнатами. короч, да- буду думать.
вернулся к старому способу генерации лабиринтов и комнаты генерю специально под них.
генерация комнат не оптимальна- её можно упростить. но работает- и ладно. я уже устал от этих лабиринтов.
выкладываю генератор шаблонов с комнатами + генератор лабиринтов по шаблону: http://yadi.sk/d/IvufBE1F3XeYA вроде бы всё работает.
ну вот, отделался наконец!
не буду больше никому ничего обещать и никого ничему учить. лучше буду игры писать. и, может быть, даже исходники выложу. с подробными комментами. но- не обещаю.
V-V-Lev, делает большие не простые игры, в которые нужно вникать и разбираться. интересная такая склонность.
в этой ролевухе(а на форуме наверняка тусит много любителей ролевух) очень важно научиться драться. автобой почти всегда убивает врага, а это не всегда хорошо. зато хорошо, что в игре автобой есть, потому что даёт представление о битвах.
претензии к игре: - башни магов слишком мутные. хорошо бы их подрисовать - я вхожу в первую башню магов даже когда хочу упереться в камень рядом с ней - невозможно подойти к дереву сзади слишком близко. почему? ведь героя прекрасно видно за деревьями - замок или что там находится за фонтаном- слишком плоский
а так вообще- зачётно! стиль соблюдён, бои прикольные, история, общение с персонажами. в-общем сделано много чего. это не простая комплексная игра от V-V-Lev. такую игру не только не просто сделать, в ней ещё и не совсем просто разобраться. хотя и проще чем со смертными мирами. все правила форумной игры Дуэль Программистов
Сообщение отредактировал noname - Воскресенье, 24 Марта 2013, 15:55
К сожалению, для игры в оные - необходимо иметь особое, парсерное, мышление. ИМХО
тут та же ситуация, что и с квестами. лично мне редко удаётся пройти квест без солюшена. и поэтому квесты мне, в-общем, не нравятся. НО те, квесты, которые я таки смог пройти сам, не подглядывая- стали самыми любимыми моими играми. это Larry-1(VGA), Quest For Glory-1(VGA), Normality(ищите полную версию!).
и, да- даже в лучших парсерках встречаются(на мой взгляд) нечестные головоломки и есть ещё такой эффект, что мышление у всех разное и кто-то может успешно решить сложные головоломки, но споткнуться на какой-нить простой, но которая не укладывается в голове именно у него. в итоге, к большому моему сожалению, такой перспективный жанр вместо наслаждения игрой, зачастую заставляет заниматься нудным и безуспешным подбором, что где и как применить. все правила форумной игры Дуэль Программистов
Сообщение отредактировал noname - Суббота, 23 Марта 2013, 18:38
но я ведь хочу наставить этого наркомана на путь истинный, лол
хочешь помочь ему сделать игру лучше? даёшь ему советы? полистав тему я нашёл только один твой совет: "уче рузкей", остальное- неконструктивная критика вообще без указания, в каком направлении следует работать, чтобы улучшить игру.
1ceberg, то предъявляешь, что у него "банальный " сюжет. автор, проявляющий удивительную терпимость к твоей "критике" поинтересовался, чем сюжет банален. оказывается, тем что он про зомби-вирус в городе. а потом заявляешь, что против сеттинга игры ничего не имеешь. ты вообще сам-то понимаешь, что хочешь от автора?
про оформление- автор пошёл тебе навстречу и спросил, какой вариант оформления лучше. ответа он не получил. так что претензия про "убогость оформления" так и осталась убогим неконструктивным наездом.
1ceberg, какой результат вообще должен быть от "наставления автора на путь истинный"? что он должен сделать? сказать: "игра гамно" и выпить яду?
если уж берёшься критиковать игру, то старайся, чтобы твоя критика несла хоть какую-то пользу. моральная поддержка- это один вид пользы. указание на то, что и как можно было бы улучшить- ещё один вид пользы. и нужно быть готовым к тому, что у автора может быть своё видение и спокойно к этому относиться.
Короче, можете подсказать интересные, проработанные текстовые игры (жанр не имеет значения)? И есть ли вообще такие?
конечно, есть. бриллианты жанра- это трушные парсерные игры на не русском языке, обычно без графики.
но есть и русскоязычные и менюшные. в них играть гораздо проще, но они явно ниже уровнем.
я бы мог посоветовать тебе что-нибудь конкретное, но, боюсь, наши вкусы сильно различаются.
если хочешь найти ответ на свой вопрос, а заодно найти и текстовые игры, то спрашивай их здесь: http://ifiction.ru/
и наверняка тебе сразу понасоветуют всякой фигни. потому что вкусы у людей другие. но если продолжишь искать и копать, то найдёшь и то, что тебе по вкусу.