Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

The needs of a Text Adventure with RPG Elements?

edited February 2017 in Help! with 2.0
Hello everyone. I've been writing a story in Twine using its default story format for a very long time now but I've never wanted to publish my story using Twine since I felt it was only helpful in organizing my story.

I've looked for a game engine that could do what I've needed for well over 2 years now but my own shortcomings have made the task difficult. Just about ANY game engine could accomplish what it is I need, but I am NOT a programmer. I've learned several languages but am far from being competent with any of them and whenever I try to think for myself with the languages I know, my brain turns to scrambled eggs. Originally, when I first began writing my story in Twine, I thought Twine had limitations that made it impossible for me to create what it was I wanted within it. I know now that with some skill you can make some pretty fancy stuff with it. I think that I'd need to create my own story format to make the kind of game I would like with Twine however, and that's where my brain turns to scrambled eggs again. I'm hoping I can get some guidance and on where to begin and what kind of things I'd need to make in order to support the kind of game I'm making.

The kind of game I'm making would be part Visual Novel, part Text Adventure, part RPG and would be presented in the following manner:
gxyeeo.png
ofepem.png
mwvasz.png
(ignore the flavor text)

Here's a list of some features my game would need to function:
  • Web Fonts; specifically Cinzel or at least a way to use Cinzel as the primary font.
  • Text Color Coding; this would be needed to help the reader identify codex links of different types (people, locations, lore), as well as speech, attributes, and items.
  • Codex; a built-in codex that the player can bring up with a click at any time and put away at any time, letting them resume where they left off.
  • Inventory; some kind of inventory would be helpful but it would not need to be extremely in-depth. A simple listing of items you've acquired would be more than enough so long as the player can bring up this list and resume the story at any time, like the codex.
  • Attribute Checking; some support for saving various character and item attributes as well as checking against them for success and failure when making choices in the story. This could be done in the background, though a Attribute Window and Status screen would be preferable.
  • Adjustable HUD; the window containing narration would need to move or vanish according to what the player is doing. Sliding to the right to make room for the Attribute Window or sliding off screen completely for the Codex or Inventory.
  • Saved History; the narration window should allow the player to scroll up to see the entirety of their current chapter including the choices they've made thus far as well as an option to view previously completed chapters with all the choices they made.
  • Save/Load Functionality; the length of my story would make this a requirement. Multiple save files would be preferably.
  • Character Portraits; the portraits I have are not heavily animated, but some support for animation would be needed as the portraits would slide on and off screen as characters enter and leave scenes.
  • Sound/Music; self-explanatory.

I think that's about it.
The list must make me look like I'm over my head, and maybe I am. I've thought about giving up on several occasions, but what I've written for the past several years is very important to me and I'd like to present it to people in some fashion. I have the support of an artist, and I've tried to make up for the lack of programming with my own skills but I've discovered just how terrible I am at that particular area.

Regardless, if I must, I'll continue to try if someone here can help point me in a good direction.

Is Twine still a good option for me with my requirements?

Comments

    • Web Fonts; specifically Cinzel or at least a way to use Cinzel as the primary font.
    • Text Color Coding; this would be needed to help the reader identify codex links of different types (people, locations, lore), as well as speech, attributes, and items.
    All of this is possible with CSS.
    • Codex; a built-in codex that the player can bring up with a click at any time and put away at any time, letting them resume where they left off.
    • Inventory; some kind of inventory would be helpful but it would not need to be extremely in-depth. A simple listing of items you've acquired would be more than enough so long as the player can bring up this list and resume the story at any time, like the codex.
    • Attribute Checking; some support for saving various character and item attributes as well as checking against them for success and failure when making choices in the story. This could be done in the background, though a Attribute Window and Status screen would be preferable.
    This is possible with almost any programming language using variables, and is certainly possible in Twine. You'll probably want to use SugarCube 2, not Harlowe (the default story format is Harlowe).

    For the "Codex": you'll can use the passage() function to store the player's current position within the story, and the StoryMenu to show the Codex:
    ::StoryMenu
    [[Codex][$return to passage()]]
    
    ::Codex
    This is the Codex!
    
    [[Return to Game|$return]]
    

    Or something. You just need to write the control logic.
    • Adjustable HUD; the window containing narration would need to move or vanish according to what the player is doing. Sliding to the right to make room for the Attribute Window or sliding off screen completely for the Codex or Inventory.
    There are JavaScript libraries for resizable/movable "windows" rendered as CSS elements, like JQueryUI. You'll pretty much need to use SugarCube if you want to include other libraries--I don't think it's impossible in Harlowe, though.
    • Saved History; the narration window should allow the player to scroll up to see the entirety of their current chapter including the choices they've made thus far as well as an option to view previously completed chapters with all the choices they made.
    • Save/Load Functionality; the length of my story would make this a requirement. Multiple save files would be preferably.
    Again, SugarCube includes a save system with multiple slots. The Saved History part won't be easy to implement, but it's possible through <<display>>, <<append>>, <<linkappend>>, etc. I will say that the scrollable history will probably present the biggest challenge for using Twine, but it's still not impossible by any stretch.
    • Character Portraits; the portraits I have are not heavily animated, but some support for animation would be needed as the portraits would slide on and off screen as characters enter and leave scenes.
    • Sound/Music; self-explanatory.
    SugarCube has audio macros for sound. Twine1.4.2 has image importing, but any version of Twine will allow images. Basic animations can be handled through either animating your own GIFs, or by simply using CSS animations and crossfading background images to simulate expressions changing or what-have-you.
    I think that's about it.
    The list must make me look like I'm over my head, and maybe I am. I've thought about giving up on several occasions, but what I've written for the past several years is very important to me and I'd like to present it to people in some fashion. I have the support of an artist, and I've tried to make up for the lack of programming with my own skills but I've discovered just how terrible I am at that particular area.

    Regardless, if I must, I'll continue to try if someone here can help point me in a good direction.

    Is Twine still a good option for me with my requirements?

    I don't think you're as in over your head as you seem to think you are.

    Twine is just an IDE for CSS, HTML, and JS. HTML5, specifically, is incredibly powerful and used to make games all the time. JS is one of the most versatile scripting languages out there, and CSS is super easy to learn and use. In short, I think you need to start here and focus on learning about web design in general, and then use Twine to simplify and organize your project.

  • edited February 2017
    Chapel wrote: »
    For the "Codex": you'll can use the passage() function to store the player's current position within the story, and the StoryMenu to show the Codex:
    ::StoryMenu
    [[Codex][$return to passage()]]
    
    ::Codex
    This is the Codex!
    
    [[Return to Game|$return]]
    

    Or something. You just need to write the control logic.
    The above technique can have issues if there are more than a single menu item. (eg. Codex and Inventory)

    If the player goes from one menu entry to another menu entry before returning the the last game related passage they can end up in the "Dreaded Endless Menu Passage Loop" ™.
    (eg. selects Codex then Inventory before returning to the last game related passage.)

    This comment in the How do I create a link that returns to the previous story passage? thead explains the semi-official method to get around the DEMPL issue if you decide to use the SugarCube story format.

    note: The Basic "return from menu passages" handling for Harlowe thread demonstrates one way to handle the same DEMPL issue if you plan to keep using Harlowe.
  • greyelf wrote: »
    The above technique can have issues if there are more than a single menu item. (eg. Codex and Inventory)

    If the player goes from one menu entry to another menu entry before returning the the last game related passage they can end up in the "Dreaded Endless Menu Passage Loop" ™.
    (eg. selects Codex then Inventory before returning to the last game related passage.)

    This comment in the How do I create a link that returns to the previous story passage? thead explains the semi-official method to get around the DEMPL issue.

    Good catch, thanks.
  • Thanks for the response!
    I'll look into it as I continue writing, though programming has always been a bit beyond me. I haven't touched HTML since I was in high school and never got into JS.
  • I'd be interested to see how some of these mechanics are implemented. :) Particularly the side images of characters with the resizing issues that may occur for different window sizes / mobile devices / etc, and how the text might adjust to not be hidden behind them. Also the scrolling text windows.
  • Though looking at it, not sure if Cinzel is the best font.
  • Don't get to hung up about attributes - a good RPG is about the characters personality, not about precisely how strong/smart/pretty they are. You may be able to get by with a simple feat system ('Great Strength','Great Warrior','Great Intelligence' etc... ) to describe this in game terms. Stats, XPs and levels do not make an RPG system (they make an upgrade system).
Sign In or Register to comment.