RyF Twiny RPG is an experiment - a prototype meant to help me with learning how to use Twine, and figure out how one - or more specifically myself - can go with this interactive fiction tool (which turns out to be much more and flexible than that basic description might suggest :D ).

Loads of thanks to the The Spring Clean Twine Jam initiative, which motivated me to publish this aging prototype.

RyF Twiny RPG is actually the first and only Twine game I've been working on - a few hours at the time over the past 2 years or so. I believe the total work time doesn't exceed a week's worth of full time of work, starting with zero Twine knowledge.

I tried to stick to the very minimal core mechanics of RPG, only injecting in new features when I thought it would add up to the global player experience without falling into feature creep.

The game itself is not "finished", and is presented to you as prototype - version 0.3.0.

It is a very simple and basic text rogue-like RPG that features:

  •  Permadeath
    • in this prototype version I've left the Twine save system active with multiple slots to save & load anytime, so you can try out things, or maybe take more risks than you would in a "classic" rogue-like situation.
    • you can save your death state in a save file and share it on any online for me or anyone to see it ( or just a screenshot :D )
  • Simple & very fast combat, (you'll see)
  • Experience & leveling - basic version with auto stat increase (life)
    • should be extended before version 1.0.0.
    • Currently working on a "choose your stat to increase" system :D
  • Loot ! 
    • You get generic loot, you sell it each time you return to town to get coins! 
    • loot should get new uses during your adventure before version 1.0.0:
      • trade with wandering merchant - not in game currently
      • consumme to establish camps - not in game currently
      • ...
  • Increasing difficulty mechanics:
    • over time, over depth of exploration,
    • about 24+ mob archetypes (trash, normal, elite, boss... with stat altering adjectives) - with adaptative stats relative to your progression/difficulty - spread over 580+ unique mobs,
  • Equipement & shops
    • weapons
    •  one potion to unlock - it's a secret, be should be easy to unlock
    • Shops!
      • well, actually  ONE shop - the weapon smith - currently opens on the 3rd day of your adventure
    • gods' shrines!
      • yep Gods plural - 5 unique gods, with two ways to honor them and gain their favors (daily / permanent) .
    • each sub-feature should be extended before version 1.0.0
  • Random - Random every where:
    • your character is completly randomly generated! Have you ever wondered about being a "maternal wood elf maiden, who was trained as a shamefully inept bard" or an "imperturbable dwarf lad, former henchman of the local gang"? Or even a " lethargic human lad, raised in the countryside"? Now you can!
      • name - generated relative to your race and gender,
      • adjective from 390+ entries,
      • race - 5+,
      • gender - 2,
      • back story - 50+ one word to one sentence,
      • for the moment, these have no impact on gameplay, but should have some before version 1.0.0, as well as additional option for diversity sake
      • no customisation
        • if you don't like your character, just start a new game to regenerate à random character :D ,
        • customisation should appear before 1.0.0, for people in need of some agency/control in terme of character creation.
    • 16+ biomes:
      • specific connexions rules to other biomes
      • specific bestiary (some mobs are share between similar biomes),
      • specific places and names,
    • Random encounters:
      • monsters (fight, fllee or die),
      • wandering NPCs (do nothing for the moment)
      • treasures (free loot!)  
      • explorative/mysterious/contemplative/plain simple moments and events
    • Choose your path - when completing a biome, you can choose where to go next from 2 random otions
    • a never ending world renewed every time you sleep or die.
    • more random things!
  • No story (yet) - story and other narrative elements should be added before version 1.0.0
  • No dungeons (yet) - should be added before version 1.0.0
  • No graphics (yet) - might add some ascii art stuff  here and there - please tell me if you'd like some.
  • No sound nor music (yet) -  - might add some basic stuff  here and there - please tell me if you'd like some.

I believe the game might be currently a bit hard to some - tell if you feel it that way.
Try to push a few days/levels in - good things happen to the resilent :D

I keep working now and and then, and decided to publish very "early" version after adding a few features in the context of the The Spring Clean Twine Jam to get as many feedbacks from you all, players and game developpers out there <3
I'll try to keep adding to it until the deadline.

If you find a bug or anything (typo - there are a lot of these, missing space, a big red error message :D ) , please feel free take a screenshot & save the game to a file, and pack that in a zip/rar for me to check it out ( add in a little text file explaining the context of the problem - always helps - if you feel like it). No obligations :D

Hope you like it - please leave comments about your experience in the game & thank you for passing by this page =^__^=

--RyF--

StatusPrototype
PlatformsHTML5
Rating
Rated 5.0 out of 5 stars
(1 total ratings)
AuthorRyFtheGameReaveR
GenreRole Playing
TagsPrototype, Roguelike, Singleplayer, Text based, Twine

Development log

Comments

Log in with itch.io to leave a comment.

Ry, I enjoyed playing a few runs of this game. Very unique concept and application, don't usually see Twine games that are this open-ended. Thanks for the fun!

Thanks for the feedback - glad you enjoyed it :) 

(+2)

One of the wounding messages for enemies says "It's wounds are deep" -- that should be "its". There is also a typo of "ressources" during some spoil scenes.

This looks very professional, but is very simple as a game. Without visuals or other personality to the areas and enemies, there's not much incentive to keep exploring. I'm also not entirely sure how the combat works -- sometimes I'll get hit multiple times in a row even when I choose to fight. If there's some sort of miss mechanic, you should make sure to provide a message for that.

I like that you give the player feedback on how badly wounded the enemy is without explicitly showing HP. A big problem in a lot of these games is that I have no idea how strong the enemy is and whether I should retreat if the enemy's strength is totally opaque, but telling the player everything can make it too easy.

I've made a similar engine in Twine myself if you'd like to compare notes, though it's a pretty different focus (jRPG based instead of roguelike).

Would you be willing to share your source code for this engine?

(3 edits) (+2)

Hello and thanks for the bug report & feedbacks :D I'll try to fix the bugs for the next version.
The game still has no objective and many mechanics are missing, so I understand and am totally comfortable with the lack of incentive in its current stake. It will evolve :D
There are many "subtle" informations given to the player about the difficulty of an enemy:

  • first - the base name: a cursed branch or root is weaker (both in HP & strength) than a cursed bush or a Treant. In the same vein, a King, Grand priestess or Vizir is way stronger than a scout or a gatherer.
  • second - the "first" adjective: you have noticed I guess the adjective each mob has an adjective attached to his name (ie: "frail owl"). This defines additionnal stat bonuses on the mob (ie: "frail" gives the mobs a slight disavantage from its "normal" variation) - fear the legendary, ancient and ancestral ;-)
  • third - the "second" adjective: yes, you can't see it if you fight normaly by just attacking, but there is a second adjective the mob that gives him different stat modifiers. This adjective, as well as the mob HP and power can be viewed if you successfully analyze the mob during the fight :D But you might fail to analyze it and get hit instead (but you can train the wisdom or luck stats - via gods only for the time being - to increase your analyze chance ;-) ).
  • Base rule - the more HP and impressive name a mob has, the harder it is (and it hits).

Difficulty also increases the longer you advance in an adventure without returning home (resets when returning home) + a base difficulty is added each day that passes. (permanent difficulty upgrade).
There are a lot of "subtle"/small things like that in the game for the player to discover. I call them "silent" feedbacks - things that appear to be of little to no reason or use, but that actually do weight in the balance of the game and can help the player to slowly understand the little secrets about the game mechanics.

The fight is a "simple" dice roll / "coin flip" with chances of hitting splitted between the player and the enemy. If the player chance to hit is 58%, then the chance that the monster hits is necessarily 42%. Hit chances starts at 50% and a modifier is applied to take into account the player stats (weapon, level, strength, luck, current thirst etc..), the mob stats and type, as well as the difficulty factors ( global day progress, adventure length...).
This means that when you choose "fight", the only two possible issues are you hit or you get hit.
The modifier's equation is a far too complex for its own good, and really bad in term of design & balancing/fine tuning :D ( = it's bad)
I might scrap it and redo this section of math entirely (it's not may specialty), witout changing the core of the base fight mechanic ( I want to keep it very simple).

Critical hit is rolled after the hit is validated. It uses its own "flip a coin" chance with stat modifiers.

I don't mind sharing the full game script, I'll just drop it around version 0.8.x or 1.0.0 - when I'll have cleaned up the mess there is all around (I keep declaring and feeding my variables in many passages and multiple time - bad design, terrible idea for debugging, tweaking & balancing :D Some systems from the first iteration are still in there, but have since been replaced by scripts in specific passages but were never removed/cleaned up etc...)
If there is an aspect in particular you would like to know more about, I can give you the source tutorial/script I copied / was inspired by :D

Please do Ry