Tumgik
#PurpleLizardMan
purplelizardman · 6 years
Text
The History of Slimes
Slimes and Ooze
In modern RPGs, there are few monsters as iconic as the humble ooze. Enjoying a recent surge in popularity thanks to That Time I got Reincarnated as a Slime, a light-novel and anime of the same name, and their inclusion in dozens of popular titles, slimes have never been more prominent RPG and mainstream culture.
 On a recent project, I’ve had the odd privilege to journey down the short rabbit hole of the ooze’s origins. It was a fun journey learning about the myth, history, and culture behind oozes, but the best journeys are shared. I hope you will enjoy The History of Slimes as much as I have enjoyed researching it.
What is a Slime?
The ooze or “slime” (used interchangeably) is usually a weak monster in RPGs. It is characterized by an amorphous, ooze-like form, and is generally of low or non-existent intelligence. It almost exclusively attacks by ingesting its target, swiping with tentacles, or (rarely) using magic.
Slimes are unique in that they do not derive from classical mythologies. They are recent phenomenon in storytelling and one that’s gaining traction at a surprising rate. Before we uncover their origins, let’s take a journey backward through time.
Tumblr media
Slimes in Popular culture
Slimes are prolific in popular culture among the RPG crowd. They are featured in dozens of games, including the ever popular titles:
Dragon Quest 
Dungeons and Dragons
Minecraft
Mother Series
Final Fantasy
Not to mention, anime, manga, sci-fi, and fantasy novels.
The modern tradition of dewdrop, almost amicable slimes in RPGs dates back over three decades to the release of Dragon Quest in 1986, where it was so beloved that it became the series’ mascot. 
In all likelihood, Dragon Quest borrowed the idea of slimes from other RPGs such as “Wizardry: Proving Grounds of the Mad Overlord” (1981) which was a part of a wave of RPGs inspired by the famous “pen and paper” rpg called “Dungeons and Dragons”.
In 1977, the original Monster Manual hit store shelves and in it was one of the most iconic creatures of Dungeons and Dragons: the “Gelatinous Cube.”
Gary Gygax included this cube-shaped monster was mostly a joke: a transparent cube that fit perfectly into the 5x5x5 hallways of the grid-paper dungeons, travelling along and sweeping up anything in its path. It was a magical, monstrous Roomba, before Roombas even existed.
But Gary Gygax did not conceive of oozes in a vacuum, he had a little help to come up with the idea.
Slimes in Movies
There is no more iconic slime movie than the “The Blob“ a 1958 cult sci-fi horror classic, The Blob tells the story of a mysterious thing that falls from the sky and begins devouring everything it can find. As it eats, it grows. Then a group of plucky and unfortunate youths stumble into its feeding ground while on vacation.
At a runtime of 86 minutes, and with special effects that solidify its place as sci-fi cult classic, it’s well worth a watch.
But even Hollywood wasn’t original enough to invent the idea of a slime monster out of thin air.
Slimes in Sci-Fi
Before the cinema, slimes had a far more literary legacy in science-fiction.
One of the most iconic and disturbing representations of slimes was the Shoggoth from H.P. Lovecraft’s mythos. The Shoggoth first appeared in publication in 1929 and is a disturbing monster with the ability to shift its form, imitate speech, and wield its large strength to crush enemies. Perhaps unique about the Shoggoth, was that it was the first time slimes were presented as beings of higher intelligence than humanity.
Despite being a truly terrifying iteration of the slime, the shoggoth is far from its origins.
As early as 1926, we see the slime appearing as villainous monster in The Malignant Entity, published in the renown pulp magazine Amazing Stories. 
Tumblr media
During the early 1900s, the slime made a slew of appearance across pulp magazines. In 1923, it even made it to the front cover of Wierd Talesin the story “The Ooze.”
But the earliest recorded usage of slime as an antagonist seems to be in The Odyle a short story published by Charles Edmond Walk in 1907 in The Blue Book magazine.
It’s a story about a scientist who brings life to cells that start growing and just don’t stop. 
At last we arrive at the origins of the humble slime: the amoeba. 
Born in the early 1900s out of an intersection of rapidly growing medical knowledge and human fear of medical science, the humble slime is the embodiment of human hubris gone awry. It is the crystallization of the fear that we have waded too deep into the unknown waters where only gods and darker things dwell and that we have used that forbidden knowledge to make the device of our own undoing.
At least, that’s what the slime was and what it would still be, had not Gary Gygax and pulp movies from the 1950s taken an otherwise intensely threatening concept and transformed it into the humorous, lovable slime we all know today.
Notably, the slime still appears in its amoebic form in many space sci-fi iterations, including the popular turn-based strategy game series Masters of Orion and an episode of the original Stark Trek series: The Immunity Syndrome.
Unique to the space sci-fi version of the slime (amoeba) is that it is almost always large enough to engulf entire ships and sometimes even pose a threat to planets. It always represents an unending hunger and primitive, malevolent intelligence, such that negotiation is never an option.
Conclusion
The humble slime has enjoyed many interpretations during its short life. From the small, but dangerous amoeba, to adorable animated dew-drops, to dungeon cleaning roombas, the slime has been it all.
Outside of space sci-fi and space fantasy, the modern slime enjoys a whimsical feel due to the representation of the slime in 1950s cinema culture, and then again in the pen and paper game “Dungeons and Dragons” which enshrined its position as an iconic and somewhat silly monster.
How will slimes be in the future?
It’s hard to say, but there is a growing slime presence in modern media which, in the past, has lead to exploration and even humanization of mythic creatures, and the humble slime is no exception. Look for representations of slime that push the boundaries between humanity and ooze in a lovable and relatable way.
Happy sliming to you all!
  Do you have additional information about the history of ooze as a monster? Do you have a link to an online-readable version of The Odyle? If so, please leave a comment below.
The History of Slimes was originally published on Friendly Neighborhood Lizard Man
9 notes · View notes
purplelizardman · 6 years
Text
Roleplay Warm-up - Exercises to get into Character
If you watch any of the manifold streams of D&D and other role playing games, it may seem pretty easy to get into character.
They just do it and it looks so easy.
But as you play you find it’s a bit harder than it seems: scenes rarely play out as cinematically as they do in the podcasts, opportunities to roleplay come so suddenly and go so fast, the scenarios you find your character in are rarely the shining moments of triumph you expected, etc…
Let’s face it, getting into character can be tough, especially if you’re new to the genre. Video games and books provide you with characters with well defined personalities, often developed by an entire writing team. In comparison, most roleplay feels a little … flat. 
Tumblr media
And that’s OK! It takes years to become good at roleplaying and improv and even veterans need practice sometimes.
One of the best ways to “warm up” is to try to get into character: imagine how your character would act in a variety of situations to get a good feel for their personality. That way, whenever an unexpected situation crops up during the session, you already know, intuitively, how your character would act.
Ask yourself the following questions:
A day in the life.
Your character is at an inn, waiting for someone: what do they do while they wait?
Your character is running an errand, it was supposed to take 20 minutes, but they’ve been in line for an hour now. Someone cuts in front of them in line. How do they react?
When arriving at the front of the line, the clerk is extremely bureaucratic and dispassionately informs your character that the paperwork has been filled out wrong and she will not be able to help. How does your character react?
Your character just failed a task given them by a friend or relative. You know the task was important to them: how does your character handle the failure? How do they break the news to their friends/relatives/lovers etc…?
  Your character has fallen gravely ill and is bed-ridden for weeks.
What do they do during this time? Visitors are scarce, how do they handle the long, lonely hours? Who comes to visit them the most?
How do they handle facing their own mortality, knowing that each day may be their last and they may die in bed?
  Your character comes into an enormous fortune that cannot be spent on magic items, potions, scrolls, or equipment.
What do they buy? Do they spend like there’s no tomorrow?
Do they try to start a business or invest the money? Do they write a will?
Are they ‘showy’ with their money? Are they generous or miserly?
  Your character is lost in the wilderness for weeks.
Suddenly they come upon a stranger only to discover that stranger is also lost and has no meaningful survival skills; they may even be a liability.
Does your character stick it out with the lost-soul? Do they try to rob them? Do they try strike out on their own to increase their chances of survival?
After some time with this lost-soul, your character begins to suspect that they are hiding a secret and that they came out into the wilderness with a purpose. How does your character react to their intuition? Do they interrogate the lost-soul? Do they mind their own business?
  What is your character’s biggest blind-spot?
All people have flaws that they cannot or choose not to perceive, what is your character’s biggest personality flaw? Can you think of two example scenarios that display this flaw?
What is the one thing your character desires most in the world: is it love, friends, money, redemption, power, or revenge?
At what point would they be willing to sacrifice their friends to get it? At what point would they be willing to sacrifice their money, love, power, or chance at redemption to gain the object of their desire?
    For additional warm-up exercises try to place your character into real life situations of disappointment, frustration, or awkwardness. How a person reacts to these situations speaks volumes about their general personality and will help you to get a holistic view of your character.
The better you know how your character reacts in these circumstances, the easier it will be for you roleplay them in the impromptu flow of the game session.
    0If you enjoyed this article, you may also like 5 D&D Character Ideas and the Paragon of Luck [D&D 5e Build].
      Roleplay Warm-up – Exercises to get into Character was originally published on Friendly Neighborhood Lizard Man
12 notes · View notes
purplelizardman · 6 years
Text
Teleportation Master [5e Eliatrope build]
There’s a lot low level abilities that grant limited range teleport effects in D&D5e. This got me wondering: how much short range teleport can we pack onto a single character?
Unfortunately, after doing the research, the most effective way is to achieve this is to be a Wizard or (Shadow) Sorcerer and use spell slots on teleportation spells.
But that’s boring, so I changed the goals a little bit and decided to build a character based loosely off Eliatropes from the show Wakfu.
If you play D&D, you should give the show a watch: it feels like watching a D&D party with some good chemistry and great improv skills.
Tumblr media
That aside, I identified a few key Eliatrope traits from the show that I wanted to capture with the build (In order of importance):
Short range teleportation – a LOT of it
Laser – We need a laser
Speed – gotta be fast
Teleportation in D&D 5e
There’s a few different ways to add teleportation to a 5e character. This list isn’t comprehensive, but it’s pretty close:
Spells
Misty Step (level 2)
Blink (level 3, only sorta counts)
Dimension Door (level 4)
Teleportaion Circle (level 5)
Tree Stride (level 5)
Arcane Gate (level 6)
Transport via Plants (level 6)
Teleport (level 7)
Etherealness (level 7, only sorta counts)
Warlock Invocations
Relentless Hex
Feats
Fey Teleportation (Xan’s Guide, requires high-elf)
Classes
Warlock/Archfey Patron – Misty Escape (level 6, costs Reaction when taking damage teleport 60ft away)
Shadow Monk – Shadow Step (level 6, costs Bonus Action teleport 60ft from shadow to shadow)
Ranger/Horizon Walker – Ethereal Step (level 7, sorta counts, but not real teleportation)
Ranger/Horizon Walker – Distant Strike (level 11, teleport up to 10 feet before each attack)
Shadow Sorc – Shadow Walk (level 14, as Monk’s shadow step but range 120ft and no advantage on next attack)
Druid/Circ of Dreams – Hidden Path (level 10 teleport up to 60 ft as bonus action 1/WIS bonus per LR can also teleport others 30ft feet instead, but costs an action)
All in all, the list turned out to be significantly less than I was expecting. I have some hope that MORDENKAINEN’S TOME OF FOES will provide some more teleportation options, but I haven’t got my hands on it just yet.
  Mandatory Disclaimer
This build is not optimized for combat, merely for short range teleporting. It is a theory build and will not be top tier performant in combat.
  Putting It Together
Out of all the teleportation spells available to us, Misty Step fits the bill pretty well for what we want: it’s short range, low level (spammable), and it uses a bonus action so we can attack after using it.
If we start as a high elf, we can pick up a 1/short rest misty step via the Fey Teleportation feat. 
Tumblr media
If we pick up 6 warlock levels we can Blink and Misty Step (2 spells on our list) and we gain the ability to use a reaction on taking damage to teleport up to 60 feet away and turn invisible (once per short rest).
To recap: with just 6 levels, the PHB and Xanath’s Guide to Everything we have:
A High elf
With the Fey Teleportation Feat
Who’s a level 6 Archfey Patron Warlock
Who can Misty step up to 3 times per short rest
With an additional, reaction triggered teleport per short rest
Use Relentless Hex to teleport to a target we’ve hexed
That’s not a bad start and we can also pick up the Eldritch Blast cantrip to add some lasers onto our eliatrope. At a basic level, we’re already mostly there.
If we want to take it father and go full eliatrope, we have a couple of options:
10 levels of Circle of Dreams Druid
This option gets us the best short range teleport ability in the game: we can teleport ourselves or other (willing) creatures 1/WIS bonus per long rest. In other words, we have an ability that is better than Misty Step (longer range and more versatily) and we can use it up to 5 times per long rest.
The downside is that combining it with High Elf (our race) and Warlock (our other class) has very little stat synergy. Add in the Fey Teleportation feat and we’re looking at a character whose stats are a hot mess. If we still go with it though, we have a character who can:
Misty step 3 times per short rest (from warlock and feat)
Misty step an additional 11 times per long rest (from Druid spell slots)
Hidden path Teleport 3-4 times per long rest (from lvl 10 Druid ability)
Reaction teleport 1 time per short rest
On top of that we can pick up Blink thanks to the Archfey Patron, and Tree Stride thanks to our Druid levels, giving us a variety of teleportation options.
At this point our build can teleport A LOT, shoot lasers, and pick up a few other cool tricks from the Druid spell list. It’s really good at short range teleportation and not much else.
Tumblr media
We’re now level 16 and don’t really have anything to do with the last 4 levels except take more levels of druid to gain access to better spells.
We may be able to take 10 levels of druid instead of the warlock, but it becomes a little more difficult to retain the eliatrope flavor.
Instead of druid we could take:
7 Levels of Horizon Walker
 If we take 7 levels of Horizon Walker instead of druid, we can teleport up to 10 feat before each attack. This leaves us 7 more levels to fill in with 6 levels of  Shadow Monk and one final level of Ranger for the Ability Score Increase. We’re level 20, but we can:
Shoot lasers (pew,pew)
Misty Step (3 times per short rest)
Misty Step (3 more times per long rest)
Reaction Teleport
At will teleport in shadows
Teleport 10 feet before every attack
Use Etherealness without a spellslot once per long rest
Notably, this won’t make a very combat effective character due to how jumbled the stats are. But it certainly achieves a kind of anime feel, becoming the fighter archetype that zooms and teleports around the battlefield on a whim, punching things, hitting them weapons, or lasering them at will.
This could be a really fun character to play in a lower-power level game. Or even a fun antagonist: the PCs will have a difficult time pinning the character down, making them a great villain who doesn’t really engage so much as run from the PCs.
  If you enjoyed this article you may also like A Fistfull of Dice and The Eldritch Sniper.
  Teleportation Master [5e Eliatrope build] was originally published on Friendly Neighborhood Lizard Man
2 notes · View notes
purplelizardman · 6 years
Text
Tales of Vesperia [Spoiler Free] Review
XXXX: “So… who’s gonna be my second?” [pause] Yuri: “…It would be my honor.” XXXX: “Guess yer stuck doin’ a job nobody much wants.” Yuri: “You too.” XXXX: “Heh. No kidding. Yuri. I was lookin’ forward to watchin’ ya go places. I’ll make sure to save you a spot in hell.” Yuri: “I don’t think they’d let me into the hell you’re going to.” XXXX: “Hah. I won’t forget that attitude, boy.”
-Yuri, the main protagonist of Tales of Vesperia (other name censored to avoid spoilers).
If you’re a fan of RPGs you should play Tales of Vesperia and with the Definitive Edition now available for order on Switch, XBone, PC, and PS4 (with remastered graphics and ALL the bonus content) there’s never been a better time to play than now.
The unique thing about this RPG is the exceptional quality. Aside from being one of the best titles of the titular “Tales of” series and therefore one of the best titles of the one of the most popular RPG series in Japan, it manages to break from a large number of entrenched RPG stereotypes with characters and a story that are still refreshing today, 10 years after its initial release.
People like RPGs for various reasons, but if you like RPGs for ANY reason, this game is for you. If you enjoy the:
Characters
Tumblr media
A badass with a good heart.
Tales of Vesperia sports an unusual cast. The main protagonist is a disillusioned thief who’s savage burns cut as sharp as his sword. 
But there’s so much more to the character!
Tumblr media
This dog has seen some things.
Right from the get-go, we see him paired up with his faithful, knife-wielding dog companion. It’s hot in the slums where they live and the water has gone out.
You instantly build up a love for the character’s relationship with his dog and the people of the slum as he ventures into the unfriendly upper areas of the city to retrieve (steal back) the missing part they need to restore running water to the slum.
What sets him truly apart from most RPG protagonists is that he fundamentally wants to be a good guy and do the right thing. No matter how jaded he becomes, his better nature shines through. This conflict between the reality of his world and his desire to do good leads him to make some tough decisions and makes the character memorable and believable.
At times you want to root for him, at times you want him to see a little bit of light, for something good to happen to him and for everything to turn out alright.
Throughout the course of the game, you’ll discover his backstory, how he came to be so jaded, and you’ll watch his character grow as he witnesses the consequences of his own choices.
Tumblr media
Pink and innocent.
Keeping him in check along the way is Estelle, a naive and good-hearted princess. Their dialog is magnificently written with Yuri’s palpable jade countered by Estelle’s undefeatable optimism. 
She gets a lot of jokes played on her throughout by various members of the cast, but it’s all in good fun and you get to see her really grow and develop from a two-dimensional rich, naive princess into a true world-traveler with a more enlightened perspective.
You’ll meet an intriguing cast of characters, each with their own goals and perspective and you’ll watch each of them grow on their journey to save the world. Even some of the villains are incredibly well-written.
Dialog
If you like humorous dialog, or dialog that is just well written, then this game is for you. Here are just a few out-takes from the game:
Skit (Estelle and Repeede)
Estelle: Hey, why is he letting Judith pet him?
Raven: Maybe the little pup’s a fan of pretty girls.
Estelle: B-But I’m a pretty girl too! [Repede moves away from Estelle as she moves towards him.]
Judith: My, my.
Estelle: Why doesn’t he like me?
Skit (Yuri can cook)
Karol: Yuri’s croquettes are the BEST!
Rita: How strange…They’re just balls of mashed potatoes, but..
Judith: There must be a secret ingredient
Raven: Oh yeah? What’d you put in it Yuri?
Yuri; Love
Rita; Agh..*Hack* *hack* Ick, blech!
Karol: Wh-who are you and what did you do with yuri…?
Raven: My hearin isn’t what it used to be. What’d you say was the secret ingredient?
Yuri: Love! The lady who ran the inn I lived at always said cooking was all about love. I put as much love in them as I could. So eat them with care, okay?
Karol: Yuri’s loved filled croquettes….
Rita: Ugh
Raven: I wish they weren’t so good.
Judith: A secret ingredient is a cook’s greatest treasure. You did not want to tell them did you?
Yuri: Actually I didn’t put anything special in there at all.
Skit (We know what Raven likes)
Estelle: This figurine is lovely!Yuri: A figurine? Id say its more of a toy, really.
Karol: You must not of seen many things like this in the castle , Estelle.
Estelle: Id like to see more of these figurines.
Yuri: and thus a figurine collector is born.
Judith: Oh some people are just more interested in aesthetics than others Yuri. Its not all that unusual.
Rita: Yeah, I really don’t have any other inrests outside of blastiea.
Karol: ive always been a fan of cool guild emblems myself.
Estelle: What about you Yuri.
Yuri: Huh? Ive never really given much thought to artistic sorts of things. I never really looked at anything in art.
Raven: ask me, ask me! Ask me what I like
All: girls
Raven:…Th…that’s right….
Rita: We know that’s right.
All of this optional dialog that brings out the personality of the characters, reveals their self-conscious tendencies, their likes, and even surprises you wouldn’t have known.
I’ve chosen this dialog to avoid spoilers for anyone who has not played game, but it goes without saying that the best moments of the game are tied closely with developments in the plot. Even as they face down a great threat to their world, the characters are always growing and learning about each other.
By the end of the game, you really feel like you know all the characters and the dynamics of relationships well. It feels like playing a game where your friends are the main characters.
Gameplay
The gameplay is on-point for Tales of Vesperia. The controls are easy to learn and the party dynamics are easy to change.
Tumblr media
What I like about the Tales Of series is that their combat is always energetic and involved: you control a character and move them around the battle while using special moves, attacking, or casting spells. You can even switch between characters if there’s one you really like playing or you need to control directly.
Trying out different party combinations is rewarding for the in-combat dialog alone, but your characters will also deepen their bond as they fight alongside each other, potentially unlocking more side quests and dialog options so can really get to know your favorite characters.
Inventory management is also pretty trivial. I recognize that a LOT of modern RPGs make this aspect kind of a pain, especially with resource gathering and item forging mechanics, but (fortunately) Tales of Vesperia ins’t bad about it! The only place where it gets kind of hairy is with weapons: always keep at least one of each weapon, you never know when you’ll need it again.
You can quest for better items or get them from enemies, but it never feels like a grind and you’re never waiting for that one drop with a 1/50 chance that hasn’t dropped in the 150 times you’re been farming this one monster. Instead the emphasis is always on the developing the story, the characters, and the world and even the item side-quests reflect that.
Summary
Each quest will deepen your experience of the world, characters, or the story while enough humor is seamlessly blended in to make it feel light-hearted between touching moments of deep emotion and characterization. 
The characters are well-written, their development and interaction makes each of the main cast, and some of the villains, feel real and alive. Throughout the game it’s a true joy to feel their relationships change and develop as the characters learn about each other and overcome their own pasts. 
The world is interesting and unique and you really get a feel for each region and city with it’s own ‘personality’.
The gameplay is fluid, easy, and energetic with very little inventory-management non-sense to bog down the game.
This game deserves a 5 out of 5.
If you like RPGs at all, for any reason, you owe it to yourself to give Tales of Vesperia a try. With the updated graphics and content of the Definitive Edition, there’s never been a better time to  play.
  If you enjoyed this article you may also like Roleplaying Exercises to Get Into Character and The GM’s Easy world Creation Kit.
  Tales of Vesperia [Spoiler Free] Review was originally published on Friendly Neighborhood Lizard Man
1 note · View note
purplelizardman · 6 years
Text
ExcelDungeonCreator - Make maps on grid paper in excel
As often happens in the D&D Twitter community, today I saw a great idea on Twitter and I decided to help make it a reality.
  https://platform.twitter.com/widgets.js
For the Excel-savvy, you could also take it a couple steps further and make a macro that would color-in the cells with the marked color as you move through the sheet with the arrow keys!
— Origami Goblin (@OrigamiGoblin) October 1, 2018
https://platform.twitter.com/widgets.js
The Result
After a little bit of tinkering I came up with the following:
https://video.twimg.com/tweet_video/Doc7OzFV4AAfa_8.mp4
Now you can paint and draw dungeon maps in Excel and print them as if they’re on graph paper! Just select a color and use the mouse keys to move around, painting as you go.
You can add as many colors as you like.
Paint with the arrow keys or by clicking.
Columns are automatically sized to grid paper format (except the first two columns).
If the first four columns (A:D) get in your way when printing, just select them and hide before printing.
Conclusion
It was a short, fun project and there’s a lot of room to grow it i.e. applying colors to a selection, toggling paint modes, etc… While my schedule won’t allow me to keep developing it, feel free to take it, modify, and share it to meet your needs.
Requirements
To run it you will need:
Microsoft Excel with macros enabled
The template file (linked below)
ExcelDungeonMapperTemplate
Tumblr media
  Good luck out there and happy dungeon creating!
ExcelDungeonCreator – Make maps on grid paper in excel was originally published on Friendly Neighborhood Lizard Man
0 notes
purplelizardman · 6 years
Text
Super Critical TShirts
So … I have a confession. I got sidetracked again today and I made these.
Tumblr media Tumblr media
                Then I got sidetracked again and put them up on tspring.
How do you feel when you roll a natural 20? What if you could wear that feeling ALL THE TIME?
Unleash your Super Critical today!
For those of you who prefer the better saiyan, you can find his Super Critical TShirt here.
  Happy gaming to you all!
    Super Critical TShirts was originally published on Friendly Neighborhood Lizard Man
0 notes
purplelizardman · 6 years
Text
Writing Compelling Character Backstories
I often receive compliments on the character backstories that I write and the DM never skims my backstory. It wasn’t always this way: I used to just think of a cool character and write about it.
But then I’d get into the writing and before I knew it, I had multiple pages about this REALLY COOL character. 
The DM would skim it and none of the backstory would really come up, much to my disappointment.
Tumblr media
When you hand the DM your 4 page backstory.
Over time I developed a method to save myself from writing backstory that would go unread and, consequently, save the DM’s time.
A good backstory is:
Brief
Relevant
Connected
If you can write a backstory that does all of these you’ll be in good shape. 
Brief
“Brevity is the soul of wit.” -Shakespeare
People are busy: you and the DM. Be considerate of your time and the DM’s and don’t put a lot of extra detail into the backstory. Instead, crystallize it down into the essential points and let your character’s personality and backstory be revealed through roleplaying. 
Backstory gained at the table is worth 100 times backstory written on paper.
Reducing backstory down to its essentials also serves as the first gateway of quality: if your character backstory cannot be expressed in 3 short paragraphs or less, then your character concept is not well defined.
Don’t believe me? Let’s try a few examples:
One of the Maiar of Valinor, came to Middle Earth to oppose Sauron. Came to Middle Earth as part of the Istari, taking the guise of an old man in the hopes that the kings of Middle Earth would listen to his counsel. Bearer of Narya, the Ring of Fire.
Strained relationship with Saruman because of the gift of the Ring of Fire. On a quest to destroy the one ring and prevent the return of Sauron.
Refuses to be bound by any authority except the Valar who sent him to Middle Earth. Like Hobbits.
That was Gandalf right up until The Hobbit.
Let’s try another one:
Brother was kidnapped and tortured by gods who feared he would one day be their undoing. During the kidnapping, he received a scar from the War god, Aries. 
Was the youngest captain of Sparta’s armies. Received the (super cool) Blades of Chaos from Aries and became his champion, before Aries tricked him into killing his wife and daughter.
Now on a quest to redeem himself by killing the rampaging War god, Aries. Really likes breaking things and yelling a lot.
That was Kratos up until God of War 1.
The examples go on and on. If you cannot reduce the concept down to 3 short paragraphs, then you need to further define your concept.
This leads us to the second part of the method:
Relevant
Everything that appears in your backstory needs to be relevant. This means that it:
Ties the character to other characters, events, or places in the world. -OR-
Develops the characters ‘feel’ either via aesthetics (keep it minimal) or personality and disposition
That’s it. Describe where your character came from, an event or two of significance, their general disposition, and their motivation for adventuring. 
Tumblr media
Protip: It’s often helpful to your DM to provide a few ‘hooks’ on the side. A hook is something or someone that your character will pursue. No DM is offended if you hand them three hooks and say “Here’s three things my character REALLY wants and will leap for every time.”
This brings us to the last part of the method:
Connected
Tabletop RPGs are a social game: don’t have an anti-social backstory. Write in events and reasons for your PC to be connected to the others in the party.
DO NOT write a “lone wolf” backstory that gives your character nothing to care about and no reason to adventure with the group. While great roleplaying may allow such a character to develop at the table, that’s rarely how this backstory unfolds.
Instead the lone wolf often makes it difficult for the DM and other players to motivate their character, resulting in bogged down sessions and the character frequently being left out of decision making.
Instead, incorporate the other party members even if it’s just a brief sentence “Likes hobbits” “Values friends” “Unusually enthralled by warforged” etc…
Lastly, if your character is entering the game after level 1, make sure to tie in some motivation that is relevant to the current plot. This could be a reason to pursue the big bad evil guy, a desire or need to seek the plot McGuffin, or (if the others players are OK with it) even a close, personal relationship with one of the other Player Characters i.e. friend, cousin, sister, etc…
  Troubleshooting Tips
Writing is messy work and tabletop games can make it more messy. If you’re having trouble applying this method, here are some tips to make it easier:
What if I can’t write just 3 paragraphs?
Tabletop games are imaginative games and sometimes we can’t constrain our imagination to a mere 3 paragraphs. That’s OK!
When that happens, write your full story and keep it for yourself, think of it as the “Detailed Version” of the backstory that has the details you need if the DM or the other players ask for more information. Then take one sheet of paper and the Detailed Version: you’re going to use it to write a few things on that one sheet of paper:
Appearance – No more than 2 sentences describing your character’s appearance
Demeanor/Outlook/Personality – No more than 2 sentences describing  their personality and alignment
Backstory – No more than 6 sentences describing backstory
Adventure hooks/goals – Write 3 adventure hooks or character goals: things the DM can use to motivate your character
Relationships/contacts – Write 1-3 contacts or relationships that are important to your character. It could be another PC or it could be their mother, sister, best friend, teacher, etc…
If you are still stuck at this part, approach it kind of like writing a dating profile: keep it light, make it interesting. Save the detailed backstory for yourself and use it to build your own character knowledge.
Tumblr media
A sample 1 page backstory sheet (click for download)
When you are done, format your 1 page document so that it’s easy to read and hand it to the DM. No DM should consider it too much and most will be thankful to have all this information clearly described on one page.
What if I don’t know who I’m playing with or the major plot?
This is a common problem with new people joining a group or creating a new group. In this case, first work with your DM to discuss what a good character motivation would be, they will usually be able to give you a vague idea without giving away too much of the plot.
If you’re still having trouble, talk to another player and consider having your characters acquainted i.e. friends, cousins, adventured together before, went to wizard school together, etc… this can make it easier to build party cohesion and make character introductions flow smoother.
  A Real Play Example – Zan Zalladar the Insane Mystic
Below is an example of a backstory used in a real game. It was for a character being introduced into a higher level campaign. My previous character had been violently murdered and the party was in the far reaches of the arctic, meaning that the new character would have to come from one of the crew that was manning the expedition along with the PCs.
The character joined up right before the “planar exploration” phase of the game and I wanted a backstory that really reflected the heroic aspects of high-level play. While this is a bit on the longer side, it fit really well into the campaign and provided solid motivation for the character to stick with the party: he was a spy and the party was pursing leads straight to the doorsteps of the gods.
  Zan Zalladar was the oldest son of a wealthy merchant until his vessel met misfortune and sank during a long voyage. Seven years later, Zan emerged from a harbor in the human lands to find that his father had passed and his three younger brothers had taken control of the entire inheritance after presuming Zan to be dead. Eerily calm, Zan chose not to fight his brothers for the inheritance and, instead, enlisted in the navy. He has been serving on various ships ever since.
If you ask Zan Zalladar what happened during the seven years he was away, he will tell you that he was taken to the kingdom of the god of the ocean and there it was that Zan fell in love with his daughter. The god of the ocean did not think him worthy and so, to prove his worth, each day he was given a task to perform; each day Zan Zalladar completed his task and was allowed to stay another day. Love flourished between Zan and the goddess daughter of the ocean. However, no living mortal is allowed in the domain of a god for more than seven years and so at the end of those years Zan was sent back to the surface with the blessing of the ocean god and a promise of betrothal to his daughter should he ever return.
Zan knows there is only way to be reunited with his love: to become a god. Each day Zan works to prove himself, to grow and master and exceed himself. He will be reunited with his love or he will die trying.
  The DM really liked the backstory and ended up tying it one with one of the major antagonists of the campaign (an aboleth). The big reveal, worked out between myself and the GM as the character progressed, was that the character was actually insane and working for the Aboleth who he believed to be a god.
This is one of the longest backstories I’ve used in a long time, but it was worth it to capture the mythic feel as of our campaign. Practicing brevity is difficult and it takes time to master, but if you keep honing your writing skill you will save yourself and the DM a lot of time and unread backstory.
    For more writing tips, custom traps, NPCs, and encounters used in actual play or for more advice about building memorable characters and worlds, subscribe to our monthly newsletter.
    Writing Compelling Character Backstories was originally published on Friendly Neighborhood Lizard Man
0 notes
purplelizardman · 6 years
Text
GM's Easy Creation Kit (G.E.C.K.) - World Creation Kit (make vivid worlds, quickly)
As a GM, one of the most fun and daunting tasks you can undertake is the creation of worlds.
New gods, myths, legends, artifacts, heroes, villains, history, kingdoms, cultures, religions… there’s infinite room for creativity and no shortage of fun to be had!
The problem is that there’s literally infinite room for creativity. 
Knowing where to start can be tough and when rushing in head-first it’s not uncommon to find that you’ve wrote yourself into a corner. When this happens it’s easy to lose enthusiasm for the world you’re creating.
Tumblr media
It’s a problem I’ve encountered many times during my 7+ years of GMing. For each campaign I would create a new world and eventually I developed a set of methods that makes the world creation process fast and fun while producing vivid, consistent, and imaginative worlds.
It all begins with the first step:
Choose the Gameplay
Worlds in RPGs (both tabletop and otherwise) are not stand-alone constructs: they are meant to be played in.
The first step to creating a vivid and interesting world is to decide what type of game you want played in that world. 
Ask yourself the following questions:
What does the typical session look like?
Is it straight combat? Very little combat? A mix of puzzles, riddles, combat, and social encounters?
Are the players classical, good adventurers or are they mercenaries, space pirates, or planar pillagers, etc..?
Where do I see these encounters happening?
In dungeons? In cities? In spaceships? In temples built out of bones of decaying gods?
In locales that span a wide range of heavy metal album covers?
In all of the above?
How do I want to guide story progression?
Is the game entirely player driven or will NPCs and world events drive most of the plot?
Do the players exist within a command structure, fulfilling orders? If not, are they free agents on a mission, mercenaries for hire, or a rag-tag bunch of outcasts that gets into mischief?
Is the progression driven primarily by exploration, social encounters, or pre-determined events?
Choose Central Conflicts and Environments
Once you’ve answered the previous questions you should have an idea of how you see gameplay and plot unfolding in a typical session, in other words: the assumptions of your game. 
Now that you have a clearer idea of the assumptions you’re working with it’s time to build a world around them. 
Worlds are meant to be played in, so start with the environment: create a reason for the environment to be the way you envision. Give the players incentive to explore the environments that you’ve chosen.
Tumblr media
This ties in closely with the central conflict or theme of your world: if it is a war time campaign, the environment should be blistered with the signs of battles, cities will be impoverished, nature will marred by weapons of war. If an eternal winter has spread across the continent, everything will be cold and harsh, but nature may yet struggle on.
If the primary method of story progression is exploration, define a few interesting locales with good backstories and a home base, for example:
The material plane has been shattered to thousands of pieces. The players begin on a shrinking shard of the plane (a single kingdom), drifting through a dark sea of stars, gradually breaking into smaller pieces. On their journey they will likely encounter the Volcanic Stronghold of the Fists of Hextor, the Sunken Kingdom of the Drowned God, The Impossible Tower of the Mad Mage, etc…
In 3 short sentences we have defined: a central conflict/theme (the material realm being shattered), provided the players motivation for exploring (their realm is literally falling to pieces), and formed an idea of 3 interesting places for the players to visit.
A second example:
The gods could never agree on how the world should be, so they made two worlds and separated them by a thin veil. Now the veil is weakening and new, bizarre cities, towns, and kingdoms are popping up everywhere along with dangerous monsters in unexpected places. If it’s not stopped the players will lose everything familiar to them and their entire world. The players will probably visit the Crag of the Crab King, the Industrious  Imperium of the Formic Hive, and the Brain Bakery run by Granny and Grandpa M’Flayer.
We’ve outlined a central conflict/theme (two worlds colliding), provided player motivation (anything they know and love could be destroyed or swapped with something at any moment), and 3 interesting places.
Entire articles can (and will be) written on how to flesh out interesting locales and encounters. Once you feel you have enough interesting locales and a strong enough central theme to create new environments throughout the campaign, it’s time for the next step.
Create NPCs and Flesh out the Backstory
The environment implies the backstory of your world as your descriptions of the environment reveal the world illuminated in the light of the central theme. Yet it is the NPCs who will ultimately become the face or even the very personification of your world, it’s backstory, and its central theme. 
When writing NPCs it is important to flesh out the backstory of your world. The central conflict of your world is going to have 3 main facets:
Cause – How did the conflict come to be? i.e. creation myths, political events, a wizard did it, etc…
Resolution – How is the conflict resolved (the ultimate goal)? Gather artifacts, dethrone a mad king, etc…
Factions – Who’s on what side of the conflict and why? Doomsday cultists, angry gods and their followers,  bellicose Kings, devious dragons, the merchant guild, a rogue sect of angels, etc…
Define the factions you’d like to see in the world and the cause for their conflicts, then create the NPCs that will be agents and eventually faces of the faction. 
Tumblr media
Most important of all: make your NPCs interesting! Not every shopkeeper needs an important backstory or a quirk, but important NPCs do. Make the backstory related to the central conflict, but keep it personal so that your players will be motivated by it. 
Define a few NPCs for each faction that the players will interact with early on. At a minimum you should define a leader, a high-ranking officer, and one or two low ranking people.
You can get by with a short description of a name, personality/mannerism, and a sentence or two describing them and how they act.
For example:
Iara Tsun, the unusually tall dwarf who owes a life-debt to the King. She is never seen outside of her formal armor and never uses a word when a nod will suffice.
Tumblr media
Zorc the Mad, a half-elf mage with a dragon facial tatoo, obsessed with the summoning of demons. He wears a cocky expression to match his attitude and truly believes that summoning a powerful demon may allow him to free his son’s soul from hell. 
Auren the Keeper of the Gate, an immortal former-human who is mostly made of glowing blue stone; his former knightly robes hang off him in tatters. He speaks in a loud booming voice that sounds like it comes from far away; he has guarded this portal for ages and will allow only the worthy to pass and receive the truth contained beyond.
Rog Horf the disgruntled half-orc cultist in charge of new recruits. He keeps his cultist robes pristine and is mindful of prejudice, choosing to annunciate each word carefully, but feels he is woefully underappreciated for his talent and intelligence.
The best part about using the short description method is that NPCs can be inserted into nearly any role we need on the fly: their role in the game is only set in stone once they make an appearance on the stage.
This saves prep time and makes the game flow smoother, giving you a pool of NPCs to work with for when your players do something unexpected.
After you’ve defined the key factions and some interesting NPCs, spend some time fleshing out the myths and lore: this will make your factions and NPCs more believable. 
CAUTION!!!
A lot of GMs fall into a trap at this point and end up developing extensive lore, legends, religion, etc. While this is fun, you should finish out the “party facing” aspects of your world first i.e. develop the starting local, it’s NPCs, factions, and environment. The PCs will definitely see this part of your world, but there’s a chance they will never delve deep enough into the lore to learn the deeper and more obscure parts of your world backstory.
Focus on the parts the players will see first then, if you have time, feel free to circle back around to lore and flesh it out even more.
Finishing Up
At this point, you’ve identified your assumptions about the game, you’ve defined a central conflict, a motivation for players, the environment with several interesting locales, NPCs, and the backstory of your world.
All that’s left is the quests, plot hooks, and encounters. 
By now these should flow very naturally, but if you’re having trouble just look back at your NPCs and factions and ask “How would they get the party to help them? What would they do that would harm/hinder the party?” For example:
Would Zorc the Mad use an alias to post a reward for the retrieval of a magical artifact from a dangerous dungeon?
Would Rog Horf send the PCs out on his personal errands where chance encounters will surely alter their fate?
Would Iara Tsun require the PCs to prove themselves against an encampment of orcs that suddenly appeared in the lower quarter of the city?
Start with at least 3 potential plot hooks and get a feel for which one you think will be most impactful to your group (which one they will like or at least remember best). 
At this point: you’re done!
You’ve made a consistent world built around a central conflict, interesting locales, memorable NPCs, and enough plot hooks to start the adventure. Add more interesting NPCs, locations, plothooks, and factions as needed.
    If you enjoyed this article you may also like Active Player Agency – A Crash Course or A GM’s Guide to Communication
GM’s Easy Creation Kit (G.E.C.K.) – World Creation Kit (make vivid worlds, quickly) was originally published on Friendly Neighborhood Lizard Man
0 notes
purplelizardman · 7 years
Text
Turning the Real World into Fantasy Art [D&D meets GIMP]
  Hello readers! 
In my continuing exploration of GIMP I’ve stumbled across a fun hobby: transforming the real world into fantasy.
How do you turn the real world into fantasy?
  It turns out that there are a lot of very high quality pictures of the planet Earth floating around on the internet. Some are breathtaking, others still astonishing in their beauty, but all of them look like pictures of the Earth.
      This is the chief obstacle to using them in a fantasy role-playing game such as Dungeons and Dragons. The contrast between beautifully surreal fantasy art and the mundanity of real world photos is often so drastic that it breaks immersion.
By using a few simple techniques and an image editor such as GIMP, you can transform real world images, making them more surreal and giving them a hand-painted kind of feel and then incorporate high quality fantasy imagery into your game.
I spent last evening (about 4 hours) transforming 4 real world images into fantasy art. I’m going to talk about them a little bit in detail.
The Foggy Mountain
I found a picture of a mountain shrouded in fog. It looked very pretty but, most likely due to Tolkein’s subconscious influence, I associate mountains with winter and cold, dangerous things. So I set about “turning” the image. It’s kind of like “turning undead” but instead of  turning zombies to ash with holy power, I turn earth imagery into fantasy art through the power of nerdiness and determination.
I didn’t spend a lot of time on this one (about 3 minutes). But it illustrates how easy it is to change the feel of an image very quickly, By just changing the color balance, and applying a blurring filter (Van Gogh) we achieve a colder, more ominous feel.
In hindsight, applying the blur effect was unnecessary. 
                        A River Runs Through It
The next batch of terrain turned out much better and took roughly 20 min of time. 
  The original picture: a lively river exploring an ancient canyon, was BEAUTIFUL, but not surreal. 
Once that was done, I applied a simple pixel-grouping algorithm (I believe this one was set to group 6 pixels at a time) and it was done. The canyon and the river look great. 
Next time I will pull the sky out into its own layer to keep it separate from the rest. The pixel-clustering technique does not work very well on clouds.
A Cursed Mansion
    While surfing the internet, I found a picture of a house at once bizarre and appealingly (beautiful?) symmetrical that stack op to the sky like some sort strange, reverse pyramind block tower.
It was not great leap to see that this house was meant for magic:
This piece was bit more complex than the previous ones and took about an hour and a half.
When working with a piece like this, it’s important to stick to basics: separate out the different portions of the image (foreground, background, features) into different layers. In this case, the house, the grass, and the sky make up the 3 main layers of the image.
The sky was, without competition, the most difficult part of the image. It turns out that applying cheap tricks and gradients to clouds not work very well; they require a more dedicated touch.
Happily though, the obstinatence  of the clouds led to a great discovery: the dark aura emanating from the house.  
At first it was a mistake: I’d simply forgotten to fill the layer with transparency and so there was a large, house-shaped grey blob in layer when I distorted it with some water colors. Seeing the result, I channeled my inner Bob Ross and decided that the clouds had led me to a “happy little accident”. The mansion would be cursed from that moment on.
After that, adding in the ruined grass, the stained glass and the door was easy. Though I wish I’d had a bit more time to adjust the color, contrast, and brightness on the door to make it “blend” a little better.
Forgotten Holy Ground in the Forest
        Turning the Real World into Fantasy Art [D&D meets GIMP] was originally published on Friendly Neighborhood Lizard Man
0 notes
purplelizardman · 7 years
Photo
Tumblr media
For today’s Caturday picture I have the honor of presenting you a dog of exceptional breed, practiced in the art of observance, and perhaps even a bit of skullduggery.  This is, of course, none other than Sherdog Holmes, who we see relaxing in his study with his pipe.
What case vexes Sherdog Holmes so? Is it the murders on Barker Street, the missing diamonds, the tales of a great beast lurking in countryside? Perhaps it is that his landlady is coming to visit soon and he’s really not sure how to approach such an awkward social encounter. 
Whatever great conundrum makes his wheels turn one thing is clear: no animal should ever be this deep in thought.
  Do you have a fuzzy critter you’d like to see featured on a Caturday post? Just reply in the comments or reach out to me directly.
I’m also taking commissions for 12×12 art prints of your animal delivered right to your door.
Sherdog Holmes [Caturday 6] was originally published on Friendly Neighborhood Lizard Man
0 notes
purplelizardman · 7 years
Text
Rocket Dog [Caturday 5]
Hello readers!
Today’s Caturday picture is of a dog!
This rare, majestic animal had aspirations of an extraterrestrial nature. That vaguely hot-dog rocket shaped body, that determined look tinged with a slight regret: born too soon to sail the stars, too later to name them. It filled me with inspiration to bring the animal’s burning passions to life in the digital medium!
In this picture we witness a union of past and present as elements of 1950’s Sci-Fi clash with their more modern contemporaries and Space Dog 3000 takes flight into the world of his dreams. I now have the honor of presenting you with our very own Rocket Dog:
burning out his fuel, out there alone…
If you like this picture, check out my other Caturday pictures, with a new one every Saturday!
Rocket Dog [Caturday 5] was originally published on Friendly Neighborhood Lizard Man
0 notes
purplelizardman · 6 years
Text
Scrolling Credits in RenPy
This is part 4 of a 4 article series on some useful techniques for making a RenPy game. We’ll show you how to implement a simple inventory system and build an intelligent menu for a shop/vending machine that reacts and responds appropriately to player inventory and stats.
The other articles are listed below:
Stats/Inventory system
Dynamic menus and dialog based off
Tumblr media
Stats
Event Triggers
Recursive menus that continue until all options are exhausted
Theme music
Credits
Scrolling Credits in RenPy
In my first RenPy project, scrolling credits was undoubtedly the most difficult problem I faced.
Googling it lead me to a very verbose and seemingly complex, but powerful solution in of about 40 lines of code.
Unfortunately, after playing around with the proposed solution I didn’t get it to work and, being in a time crunch, decided to develop my own technique which uses just 4 lines of code in total.
You can see this in action in the credits for my RenPy tutorial game Dwarf Arte Online (android, PC).
Step 1 – Grab an Image Editor
The first thing I did was open up an image editor, my preferred weapon of choice is the free and powerful GIMP.
I created a credits image with a transparent background, adding the text to the image exactly where and how I wanted it displayed.
This had the added benefit of allowing me the option of embedding images and stylistic designs into my credits, though I ran out of time to do so.
Step 2 – A Few Lines of Code
Once I had my credits image saved in the images folder of my RenPy project, I simply had to create a credits label with the following four lines of codecode under it.
label credits: $ credits_speed = 25 scene black show credits_image at Move((0.5, 1.0), (0.5, -1.0), credits_speed, xanchor=0.5, yanchor=0) with Pause(credits_speed+10)
That’s it!
First we set a convenience variable called “credits_speed” which will be the time in seconds that it takes our credits to scroll.
Then we turn the scene black.
Then we load in our credits image (called “credits_image”) in the center, but just below the screen. Our credits begin automatically scrolling up once we reach this line of code.
Lastly, we tell RenPy to wait for 10 seconds after the credits have scrolled.
While you don’t need to make the Pause that long, the Pause prevents PenPy from moving further down our script file, so it needs to be at least as long as credits_speed or you will cut your credits off in the middle! 
Conclusion
This is a quick, easy, and reliable technique for producing good looking and highly customized scrolling credits in RenPy.
The inclusion of credits as images has no impact on performance and gives the creator total control over the presentation. 
Found a better technique? Let me know in the comments below!
    Looking for more RenPy tips? Want to find good, royalty free music for your games? Looking for quality, royalty free art for your games?
Find all this and more in the Friendly Neighborhood Newsletter.
See you soon!
  Scrolling Credits in RenPy was originally published on Friendly Neighborhood Lizard Man
2 notes · View notes
purplelizardman · 6 years
Text
Dynamic Menus and Dialog In RenPy
This is part 2 of a 4 article series on some useful techniques for making a RenPy game. We’ll show you how to implement a simple inventory system and build an intelligent menu for a shop/vending machine that reacts and responds appropriately to player inventory and stats.
The other articles are listed below, links will be added as the articles come out.
Stats/Inventory system
Dynamic menus and dialog based off
Tumblr media
Stats
Event Triggers
Recursive menus that continue until all options are exhausted
Theme music
Scrolling credits
Building a Dynamic Menu
At it’s core, building a dynamic starts with a simple “if” statement after a menu choice. i.e.
label vending_machine: menu: "A reshing beverage" if money.level >= 1: "You purchase the bevage, it looks delicious." $money.dec() $beverage = resource(1) "You don't have enough money" if money.level < 1: "You walk away sadly." "Maybe you should get a job?"
Different options will be displayed if the player has certain items or stats (in this case, ‘money’), or if certain flags have been triggered in the game. 
  But what if we want to enhance this menu so that our vending machine/shop has an manageable inventory?
There’s multiple ways to do this: we’ll start with the simple solution that should work for 90% of projects out there and then more into a more advanced solution that is powerful and infinitely extensible, but somewhat more complex.
A Simple Method for Shop Inventory
To give the vending machine its own inventory we first need to use some Python to declare what the vending machine can sell:
$ vending_inventory = ['sword','pizza','potion']
 Now we just need to modify our menu options so that only items not purchased yet show up in the menu:
label vending_machine: menu: "A sword, you're not really sure why it's in the vending machine." if 'sword' in vending_inventory: $vending_inventory.remove('sword') "The sword clanks out of the vending machine." "A pizza...it has pineapple on it." if 'pizza' in vending_inventory: $vending_inventory.remove('pizza') "The machine yields the pizza. Hopefully you won't regret this." "A potion, it might be too strong for you to handle." if 'potion' in vending_inventory: $vending_inventory.remove('potion') "The potion rolls out of the vending machine. Cherry flavored, alright!" "It seems to be empty.You bought everything!" if len(vending_inventory)==0: jump some_other_menu
As each option is ‘purchased’ by the player, it disappears from the menu. When the menu is empty a special option to leave the vending machine is shown.
This allows us to re-use the same menu each time the player visits the vending machine.
Since the option to leave the vending machine is revealed only when the player has purchased everything, this will force the player to purchase everything before leaving the machine. If you do not want this behavior, simply remove the “if len(vending_inventory)==0” from the last option and the player will be able to walk away at any time.
This method is good for very simple shop/inventory dynamics, but it becomes difficult to maintain. If you put in the code for purchasing items (deducting ‘money’) and adding them to the player inventory, it gets to be rather long and difficult to read.
At that point if you decide to change something, you’re now hunting through lines and lines of messy code just to change it!
If your game is large, this could be exhausting.
A Power Method for Inventory and Stats
We can make our life’s easier in the long run if we’re willing to put in a little bit of work upfront. 
In the last tutorial we declared some Python code at the start of our sript.rpy file. We’re going to do that again, but with some modifications:
###custom python stuff init python:#declare a python black so we can write python code class Player:# a generic class to represent the player def __init__(self): self.stats = {'love':0,'money':0} self.inventory = {'cookie':1} def change_stat(self,stat,modifier): self.stats[stat] = self.stats[stat] + modifier def change_inventory(self,item,amount): if item in self.inventory: self.inventory[item] = self.inventory[item]+amount else: self.inventory[item] = amount player = Player()#a player object class vending_machine(self):#generic vending machine class def __init__(self):#declare default vending machine inventory self.inventory = {'cookie':3,'rusty sword':1} self.costs = {'cookie':1,'rusty sword':5} def player_can_afford(self,item_name): if self.costs[item_name] > player.stats['money']: return false return true def purchase(self,item,amount=1): player.change_stat('money',-self.costs[item_name]) player.change_inventory(item,amount) self.inventory[item] = self.inventory[item] - amount def has(self,item): return self.inventory[item] > 0
This time, we’ve consolidated stats and inventory into a Player class which has 3 methods:
__init__(self): this method set our default stats and inventory for the player in this case, love and money are 0. Fortunately, our player starts with a cookie.
change_stat(self, stat, modifier): this method adjusts a stat by a given amount.
change_inventory(self,item,amount): basically the same as the above method, but modifies inventory instead.
This gives us an intuitive way of interacting with player stats and inventory. i.e.
$player.change_stat('love',2)#add two love $player.change_inventory('used napkin',1)#gain one used napkin
Now we combine this with a vending_machine class which has the following 4 methods:
__init__(self): this method sets the default inventory and cost for a vending machine object. This is useful if you want all vending machines to have the same cost or carry the same inventory.
If not, you can always override the inventory and cost variables for your specific vending machine. If you’re comfortable with Python, you may even modify this method to take inventory and costs as an argument.
player_can_afford(self,item_name): this method gets the cost of the item_name, if it is more than the player’s current money it returns false otherwise it returns true. This will be useful in the next section when we put it together in a dialog menu.
purchase(self,item,amount): this method handles the transaction for us: deducting the items from vending_machine inventory, deducting the cost from the player, and adding the item to inventory.
has(self,item): a simple method that checks if the vending machine is sold out. Useful for cleaner code in dialog menus.
This technique allows us to declare our vending machine inventory and costs in one, single spot at the top of our file, making it trivial to locate and adjust it on the fly while keeping our dialog options uncluttered by cumbersome transaction code.
Putting it together
Now that we’ve created meaningful player and vending_machine classes, let’s put them to use in a smart dialog menu:
$shady_vend = vending_machine()#this is here for convenience, it should be declared in the initial Python block at the top of the file label shady_vending: menu: "Cookie $[shady_vend.costs['cookie']]" if (shady_vend.player_can_afford('cookie') and shady_vend.has('cookie')): "You buy a delicious cookie". shady_vend.purchase('cookie') jump shady_vending "All out of cookies." if not shady_vend.has('cookie'): jump shady_vending "Cookie $[shady_vend.costs['cookie']]" if (shady_vend.has('cookie') and not (shady_vend.player_can_afford('cookie')): "You are too poor to afford this cookie =( jump shady_vending "Rusty Sword $[shady_vend.costs['rusty sword']]" if (shady_vend.player_can_afford('rusty sword') and shady_vend.has('rusty sword')): "You buy a delicious rusty sword." shady_vend.purchase('rusty sword') jump shady_vending "All out of rusty swords." if not shady_vend.has('rusty sword'): jump shady_vending "Rusty Sword $[shady_vend.costs['rusty sword']]" if (shady_vend.has('rusty sword') and not (shady_vend.player_can_afford('rusty sword')): "You are too poor to afford this rusty sword=( jump shady_vending "leave": "This machine's a little shady" jump get_outta_here
Thanks to our convenience code, our smart menu turned out fairly legible: an option is shown if the player can afford it and it is not out of stock. The player can leave the vending machine at any time by choosing the “leave” option.
It will look something like this:
>Cookie $1
>Rusty Sword $5
>leave
Once a player purchases an item, all the inventory and money code is handled generically with the ‘shady_vend.purchase’ method. We then jump the player back to the same menu which will now update with the new inventory.
Next Steps
There’s a lot of potential next steps for this technique. You may want to show the number of items available for purchase in the dialog menu using RenPy’s string substitution [] technique. 
You may want to take it a step farther and create a method that generates the menu option text dynamically based on if it’s sold out or if the player can afford it. Right now we are still using 3 dialog options for each possible eventuality:
In stock, but the player can’t afford it
Out of stock
In stock, and the player can buy it
By adding in another convenience method, it is possible to condense these down to two functions that return the appropriate dialog and call the appropriate code.
  Check out our next RenPy article on using music in your game!
Dynamic Menus and Dialog In RenPy was originally published on Friendly Neighborhood Lizard Man
3 notes · View notes
purplelizardman · 6 years
Text
Inventory and Stats in RenPy
This is part 1 of a 4 article series on some useful techniques for making a RenPy game. We’ll show you how to implement a simple inventory system and build an intelligent menu for a shop/vending machine that reacts and responds appropriately to player inventory and stats.
The other articles are listed below, links will be added as the articles come out.
Stats/Inventory system
Dynamic menus and dialog based off
Tumblr media
Stats
Event Triggers
Recursive menus that continue until all options are exhausted
Theme music
Scrolling Credits
Stats and Inventory in RenPy
If you’re reading this article, you’re interested in the fastest, most efficient way to set up stats and/or inventory management in RenPy and how to use stats/inventory to impact the player’s experience and dialog options.
Python
The easiest way to implement S&I (Stats and Inventory) is to simply declare a Python code block at the top of your scritp.rpy file. Here’s an example from the sample RenPy game found here:
# The script of the game goes in this file. ###custom python stuff init python:#declare a python black so we can write python code class resource:#this is a convenience class for handling resources def __init__(self, starting_amount): self.level = starting_amount def dec(self): if self.level > 0: self.level = self.level - 1 def inc(self): self.level = self.level + 1
The init python: block tells RenPy that the following lines will be python code.
I use the concept of a resource in this example which could be currency i.e. 50 gold coins, a stat i.e. 18 HP, 32 Heart, or even a single use item i.e. The Master Key. A resource is simply anything that we need to track if the character has it (or not) and how much they have.
For convenience, we create a resource class that is going to handle how accruable resources behave. In this case we defined three methods for resources.
__init__:
This is a special Python method that handles how the class is instantiated. In this case, that means how we create new resources for our Player Character.
def __init__(self, starting_amount):
We can create a new resource “love” later on using the following code:
love = resource(0)
dec:
This function handles decreasing our resources. We put a simple check in the function to make sure that resource values do not go into the negative.
inc:
This function is used to increase our resource. In this case, I never wanted to increase or decrease by more than one, but if you wanted to, say if the character has a job and has just earned $100 you could use something like this:
def inc(self,amount=1): self.level = self.level + amount
where amount will default to 1 if we do not provide one.
Creating the Resources
When we put it all together, we can now declare new resources in two different ways. 
Inside a Python control block (recommended for stats):
label start: python: love = resource(0) booze = resource(0) money = resource(0)
or inline using RenPy’s $ syntax for single line Python:
$love = resource(0) $booze = resource(0) $money = resource(0)
Making Magic Happen
Our S&I system is all setup and ready to go. It’s time to put in in action.
Thank’s to RenPy’s fantastic support for conditional statements, this turns out to be pretty trivial.
Let’s say we want to show different dialog choices base on a certain resource i.e. money:
label vending_machine: menu: "A reshing beverage" if money.level >= 1: "You purchase the bevage, it looks delicious." $money.dec() $beverage = resource(1) "You don't have enough money" if money.level < 1: "You walk away sadly." "Maybe you should get a job?"
In this example we present the player with two choice menu options: “You don’t have enough money” or “A refreshing beverage”.
If the player has less than 1 money, they will see only the “You don’t have enough money” and then be derided by the game.
If they have at least 1 money, then they will only have the option to choose “A refreshing beverage”. Once they choose it, the player’s money is decreased (by 1) and the player gains a new beverage resource.
  Next Steps
If the player’s going to be purchasing things frequently, consider creating a purchase method that checks to see if the player has enough money. If the items are unique, or there’s no need for the player to have multiple items, consider writing some generic “gatekeeper” code that informs the player they are A) too broke B) already have the item or C) have successfully purchased the item.
In the next tutorial, we’re going to implement an inventory and purchase system for our vending machine that does everything listed above.
Inventory and Stats in RenPy was originally published on Friendly Neighborhood Lizard Man
6 notes · View notes