Text Games

A place to discuss things that aren't specific to any one creator or game.
Forum rules
Ren'Py specific questions should be posted in the Ren'Py Questions and Annoucements forum, not here.
Post Reply
Message
Author
midiguru
Newbie
Posts: 3
Joined: Sun Mar 18, 2012 4:44 pm
Contact:

Text Games

#1 Post by midiguru »

Sad to say, I can't draw. I've written and released several text games, but I'm not satisfied with the way these games are displayed visually. I'm hunting for a system that will allow me to write a complex text game, yet give me a great deal of control over the visual presentation.

Has anyone used Ren'Py to create text-heavy, non-illustrated games?

I understand that there would be no parser for text input from the user, so all user input would be by clicking/tapping. Does Ren'Py support hyperlinks within text blocks? Can these be used to print new output to the main window? If a text block is too long for the visible window, can it be scrolled?

Can Ren'Py games (specific spots within the story) be saved and restored by the user? Is an undo function provided?

Sorry to ask such basic questions, but I figured it would be easier to ask the experts than to spend an hour poring over the documentation.

User avatar
papillon
Arbiter of the Internets
Posts: 4107
Joined: Tue Aug 26, 2003 4:37 am
Completed: lots; see website!
Projects: something mysterious involving yuri, usually
Organization: Hanako Games
Tumblr: hanakogames
Contact:

Re: Text Games

#2 Post by papillon »

Has anyone used Ren'Py to create text-heavy, non-illustrated games?
Look up Digital: A Love Story :)

RenPy can do text input, but most people aren't up to the job of writing a robust text-adventure parser from scratch, so it's usually only used for prompting the user for specific information. Clickable thingies and changing the current display based on them is certainly feasible. I have been *told* that scrolling is more complicated than would be nice; I haven't personally messed with it.

Load/save is basic and built in. There is a very robust undo IF you are working with standard renpy codes - just rolling the mousewheel up will reverse your course through the game and undo any changes made. It is possible, though, that if you hack things far enough you will encounter situations that break rollback or cause it to behave in an unexpected manner.

User avatar
SusanTheCat
Miko-Class Veteran
Posts: 952
Joined: Mon Dec 13, 2010 9:30 am
Location: New Brunswick, Canada
Contact:

Re: Text Games

#3 Post by SusanTheCat »

You might also want to look at some javascript hypertext frameworks. They work well with text.

Undum: http://undum.com/
Vorple: http://vorple-if.com/ (Built on Undum and now Parchment)

The Play: http://www.deirdrakiai.com/theplay/ (an awesome IF written with Undum)

Twine: http://gimcrackd.com/etc/src/ (Visual editor)

Textallion: http://anamnese.online.fr/site2/textall ... ation.html (Can make CYOA and export to Pen'Py)

I have seen some Ren'py projects that work like a story book, so I'm certain an all text story would certainly work well.

What have you used for your text games?

Susan
" It's not at all important to get it right the first time. It's vitally important to get it right the last time. "
— Andrew Hunt and David Thomas

midiguru
Newbie
Posts: 3
Joined: Sun Mar 18, 2012 4:44 pm
Contact:

Re: Text Games

#4 Post by midiguru »

Thanks, Susan. I've been looking closely at Undum/Vorple. At present, it is fatally flawed, in that the reader/user/player cannot save multiple game/story states and then reload a given state as needed. For any type of complex, branching interactive story, that limitation is a flat-out deal-breaker.

That's why I'm looking around for other options.

It turns out there's a mechanism in HTML 5 called localStorage, which should be able to store Undum story states. Maybe only a few lines of Javascript need to be added. But I don't want to spend weeks learning Javascript until I know that at the end I'll be able to produce a story.

localStorage has limitations: Saved games apparently won't be transferrable between one browser and another. But that's not a deal-breaker, it's just unfortunate.

midiguru
Newbie
Posts: 3
Joined: Sun Mar 18, 2012 4:44 pm
Contact:

Re: Text Games

#5 Post by midiguru »

papillon wrote:RenPy can do text input, but most people aren't up to the job of writing a robust text-adventure parser from scratch, so it's usually only used for prompting the user for specific information. Clickable thingies and changing the current display based on them is certainly feasible. I have been *told* that scrolling is more complicated than would be nice; I haven't personally messed with it.
Thanks for the details. I'm not planning to write a text parser ... I'm not nearly that masochistic. At the moment I'm interested in text output -- I should have been more specific with my question. In order to structure an interactive story, it is often (almost always) necessary to assemble blocks of text "on the fly" before outputting them to the window display. I'm pretty sure Python will let you concatenate strings, so that shouldn't be a big problem, though I would expect it to be more work than in a dedicated text game authoring system.

MoPark
Regular
Posts: 98
Joined: Sat Dec 31, 2011 7:05 pm
Projects: Kangaroo, Terminal Love
Location: DC
Contact:

Re: Text Games

#6 Post by MoPark »

I've been working on a (mostly but not entirely) text-based game in C, building the interface and everything essentially from standard functions. Though I've been enjoying myself, I wouldn't recommend doing that because you likely won't be able to get it to be cross-platform without modifying the code significantly for different operating systems, so I guess that'd be a good example of what not to do.

User avatar
OokamiKasumi
Eileen-Class Veteran
Posts: 1779
Joined: Thu Oct 14, 2010 3:53 am
Completed: 14 games released -- and Counting.
Organization: DarkErotica Games
Deviantart: OokamiKasumi
Location: NC, USA
Contact:

Re: Text Games

#7 Post by OokamiKasumi »

midiguru wrote:Sad to say, I can't draw. I've written and released several text games, but I'm not satisfied with the way these games are displayed visually. I'm hunting for a system that will allow me to write a complex text game, yet give me a great deal of control over the visual presentation.
Then Renpy would work for you. However you'd only be using a tiny fraction of what the system is capable of -- even at its most basic level. I can't draw either, (not enough to support an entire game, anyway,) so I use Photoshop and images gleaned from stock sites to make my pictures.
midiguru wrote:Has anyone used Ren'Py to create text-heavy, non-illustrated games?
I don't know of any games done that way off hand, but YES it can. Renpy is fully capable of reproducing any of the text games found on Choice of Games," for example, only WITH graphics and sound effects.

I'm an author, I write books, so working with strictly text is actually far easier than working with pictures, music, and sound effects. That's why I originally went with Renpy, because I could use the full extent of my writing abilities PLUS add music.
midiguru wrote:I understand that there would be no parser for text input from the user, so all user input would be by clicking/tapping.
There IS a way to have the player input text. I did a huge Mad-Libs game using this aspect.
midiguru wrote:Does Ren'Py support hyperlinks within text blocks?
Yes.
midiguru wrote:Can these be used to print new output to the main window?
If you use a hyperlink, it opens in a browser, not the game.
midiguru wrote:If a text block is too long for the visible window, can it be scrolled?
Having a scroll bar is possible, but the coding is old. It isn't readily compatible with the new coding, but it DOES exist. A better way, would be to use what Renpy has built into its system; simply allow the page to fill with text and have it stop. When the player hits the spacebar, the text clears and it fills with more text.
midiguru wrote:Can Ren'Py games (specific spots within the story) be saved and restored by the user?
YES. In fact it's built into the system and the number of saves possible is Unlimited.
midiguru wrote:Is an undo function provided?
As in where the player can go back a page or two and make a different choice? YES. That's also built into the system simply by using the Page Up key.
midiguru wrote:Sorry to ask such basic questions, but I figured it would be easier to ask the experts than to spend an hour poring over the documentation.
Not True. The tutorials on the Wiki page: http://www.renpy.org/wiki/renpy/doc/tutorials/Tutorials are actually very easy to follow.

FAQ: http://www.renpy.org/wiki/renpy/FAQ <-- Read this first.
Quickstart Manual: http://www.renpy.org/wiki/renpy/doc/tut ... Quickstart
Novel Mode: http://www.renpy.org/wiki/renpy/doc/tutorials/NVL-Mode
How to make an Otome Game: http://www.otome-games.com/index.php/ma ... otome-game (This is actually the easiest tutorial to follow, and it covers ALL the basics from playing with text to making menus to setting up flags.)

The Renpy system is quite user friendly to beginners, especially those who prefer to work with text. It's when you start designing complicated graphic interfaces and puzzle games that it becomes complicated.

Even better, this is an extremely active forum. By using the search function in the Renpy Questions part of the forum, you can find coding for just about any function you could think of, from how to make a hidden object game, to how to change every single aspect of the strictly coded framed buttons into a fully graphic user interface.

Just about anything you can think of can be done with Renpy -- Except true Animation. Renpy will not do anything beyond moving something around the screen. Gif images are right out.

Just to keep the record clear, "I" am a beginner, and I've completed 4 games of my own. :)

The first was strictly text, pictures, and music.
The second was a large scale Mad-Libs game
The third was a full Choose Your own Adventure game.
The last and most recent, was a Hidden Object game.

If I can do this much without knowing a single thing about coding, imagine what you could do.
Ookami Kasumi ~ Purveyor of fine Smut.
Most recent Games Completed: For ALL my completed games visit: DarkErotica Games

"No amount of great animation will save a bad story." -- John Lasseter of Pixar

User avatar
SusanTheCat
Miko-Class Veteran
Posts: 952
Joined: Mon Dec 13, 2010 9:30 am
Location: New Brunswick, Canada
Contact:

Re: Text Games

#8 Post by SusanTheCat »

OokamiKasumi wrote:
midiguru wrote:Is an undo function provided?
As in where the player can go back a page or two and make a different choice? YES. That's also built into the system simply by using the Page Up key.
Being able to Undo is the default.

You can also set up blocks to prevent undo-ing after a certain point. In my NaNo game I am giong to let the player undo through the conversations, but now through combat.

MoPark wrote:I've been working on a (mostly but not entirely) text-based game in C, building the interface and everything essentially from standard functions. Though I've been enjoying myself, I wouldn't recommend doing that because you likely won't be able to get it to be cross-platform without modifying the code significantly for different operating systems, so I guess that'd be a good example of what not to do.
That sounds awesome. It's a great way to flex your programming powers.

I like Frankensteining code together. I am currently working on a mini project to implement Eliza (http://www.manifestation.com/neurotoys/eliza.php3) in Ren'Py. :D
[EDIT] To clarify: the website I pointed to is just an example of Eliza. That isn't my project.
Susan
Last edited by SusanTheCat on Tue Mar 20, 2012 12:00 pm, edited 1 time in total.
" It's not at all important to get it right the first time. It's vitally important to get it right the last time. "
— Andrew Hunt and David Thomas

DragoonHP
Miko-Class Veteran
Posts: 758
Joined: Tue Jun 22, 2010 12:54 am
Completed: Christmas
IRC Nick: DragoonHP
Location: Zion Island, Solario
Contact:

Re: Text Games

#9 Post by DragoonHP »

SusanTheCat wrote:I like Frankensteining code together. I am currently working on a mini project to implement Eliza (http://www.manifestation.com/neurotoys/eliza.php3) in Ren'Py. :D

Susan
Really? :shock:

Good luck.
I had it's DOS version and I really used to enjoying *chatting* with it...

User avatar
leon
Miko-Class Veteran
Posts: 554
Joined: Sun Oct 09, 2011 11:15 pm
Completed: Visual Novel Tycoon, Night at the Hospital, Time Labyrinth, The Buried Moon, Left of Center, Super Otome Quest
Projects: Lemon Project, Porcelain Heart, Dream's Dénouement
Organization: Team ANARKY
Contact:

Re: Text Games

#10 Post by leon »

OokamiKasumi wrote:
midiguru wrote:Can these be used to print new output to the main window?
If you use a hyperlink, it opens in a browser, not the game.
Actually I thought they only do in-game calls, so I checked the documentation - http://www.renpy.org/wiki/renpy/doc/ref ... #Text_Tags

Hyperlinks open in a browser, if they begin with "http". Otherwise, clicking a hyperlink will call a label with that name. This is useful for in-game definitions.

Funnyguts
Veteran
Posts: 417
Joined: Mon Aug 29, 2011 5:31 pm

Re: Text Games

#11 Post by Funnyguts »

Incursion is a text adventure made with Ren'Py, so you could draw some inspiration here.

MoPark
Regular
Posts: 98
Joined: Sat Dec 31, 2011 7:05 pm
Projects: Kangaroo, Terminal Love
Location: DC
Contact:

Re: Text Games

#12 Post by MoPark »

SusanTheCat wrote:
MoPark wrote:I've been working on a (mostly but not entirely) text-based game in C, building the interface and everything essentially from standard functions. Though I've been enjoying myself, I wouldn't recommend doing that because you likely won't be able to get it to be cross-platform without modifying the code significantly for different operating systems, so I guess that'd be a good example of what not to do.
That sounds awesome. It's a great way to flex your programming powers.
I suppose that's one way to put it, hah. Really though, I needed something with a Unix terminal-like feel for the effect of the game, and while I could have used a more advanced system with some clever graphics manipulation to get the same feel, I decided to simply build up from nothing but a black box terminal. Glad I did, learned a lot more about coding by doing that. Randomly in the process I even figured out how to code malware which is lol.

Unfortunately it still has some serious problems I'm trying to work on, especially in terms of lag on low-level systems. Probably should have used the Allegro libraries for C/C++, which would have made it cross-platform, but oops... Next time though, for sure!

Post Reply

Who is online

Users browsing this forum: No registered users