Intro

Why this guide was made

When I made walk in the sun in 2022 - I made plenty of mistakes. Happy mistakes! But mistakes nonetheless. They cost me time, time that could've been better spent fixing spelling mistakes.

I had a lot of basic questions I couldn't find a solid answer for - what size should my sprites be? What's the best way to write a VN script? Is there an easier way to do X? (The answer is always YES.)

Disclaimer

This guide was written in 2024. By the time you read this, some of the information may be out of date. Engines update, programs become obsolete - the internet may be very different in one, five years time. I hope I'm able to make a guide that is general enough to help, and not be bogged down with time-speific information.

This is not a complete and cohesive guide on how to do everything ever. I am simply giving you a jumping off point, and answering the basics. Think of this as more of a quick-start guide than anything in-depth.

You may notice this guide leans heavily towards visuals, and more art-related quesions. That is my area of expertise. I have tried to be equal in all areas, but I have likely skipped over a fundemental or step in another area.

In the future, I plan to mirror this guide on github and other hosting sites.

Always do your own research, and do not take my word as gospel. Thank you!

Read the official Ren'py documentation. It is there for a reason.

Remember to back up all your work. It's important because it is yours, and yours alone. You are a human being who created something, it is apart of you. Don't do yourself a diservice and forget.

How to use this guide

I have provided a table of contents.

Use Ctrl + F to search for a key term.

Picking a Game Engine

This is the software that creates your game.

The game engine influences what you make. Some engines are more suited to certain gameplay. Do your research.

Game Engine Pros Cons Payment Examples
Ren'py Tutorials, VNConf, discord, documentation Learning curve, can be difficult to do complex things Free DDLC, Queen Beast, Coquette Dragoon
RPG Maker if you want something more interactive for the player, this is your tool. Easy to use and get going, big community, plugins. Paid. Goes on sale frequently, so keep an eye out. Your Turn to Die (RPG Maker MV)

It's important to get comfortable with the engine you end up choosing. Some listed above require more learning and love than some of the plug-and-play options. This is what you'll be spending the entirety of your project working with - so you'll get acquaintance with your engine's quirks. Find one that you have the most fun with (or try to not tear your hair out when you encounter an issue).

There is no right or wrong option here, it's simply up to your preference.

I work in Ren'py, so this guide will be focusing on that.

Coding

Skip ahead... I know you want to. You want to add all the images and pretty things first. I understand.

YOU DO NOT NEED TO BE AN EXPERT TO MAKE A GOOD GAME. You will learn as you go. Start off SMALL. Maybe your first goal is the change the main menu background and the font. Don't attempt to reskin the save/load menu screen. That's for project 2 or 3.

If I can code, you can too. And remember - a nice lick of paint can hide the most cowboy of codes.

At this point I've assumed you've downloaded Ren'py and have the QuickStart guide bookmarked.

Source Code Editor

This is where you write your code.

There are others, but VS Code is the most common and has Ren'py extention you can install.

VS Code

Ren'py Language install link.

Indent Rainbow. Extention that adds colour blocks to help visibility.

File Types

All your file types must be

filename.rpy.

Ren'py will not load any other filetype.

File Organization

Folders. Lots and lots of folders.

Pretend you've been hired to work on a project, everyone else has left and you've been left to do some last minute work. What would you rather?

: ( I dont know what these files are... They're loose and free... : ) They all have homes now!

It's important to practice good file management. If you don't - everyone hates you. Future you will hate you. Trust me. Don't make life harder for yourself.

Naming Conventions

You may find it easier to think of each file like a chapter of a book, acts of a play, or sequences and scenes in a film.

Ch1_1.rpy

Ch1_2.rpy

Or

Sc1_1.rpy

Sc1_2.rpy

Sc2_1.rpy

Again - this is a personal preference. As long as someone else can look at it and understand, or more importantly - future you can understand - you're good to go.

Helpful Tools

Lint+: Ren'py Word Counter by KigyoDev

Word counter for Ren'py - includes stats for character wordcount, wordcount per file, amount of choices and much more!

Ren'Edit: The VN Tool for Beta Testers and Editors by Theo

A plug-in that enables a GUI overlay to mark typos, bugs and other issues.

Writing

Depending on how you like to write, you may find it easier to keep coding and writing separated. Here's a list of the most commonly used ones.

You might find writing in a separate program hindering, and choose to write directly into your source code editor. Whatever works for you!

Text Editors

Editor Pro Con Payment
Google Docs Browser and desktop version, easy to share and comment with teammates, beta testers etc, good amount of storage. Recent AI intergration has downgraded its spelling/grammar check. Free.
Notion Browser and desktop version, easy to share and comment with teammates, beta testers etc. Big learning curve, free version does not have everything. Has a free version, subscription-based payment plan for other versions.
LibreOffice Free, does everything you'd want a text editor to do. Hard to share documents between people, doesn't support straight/dumb quotes. Free
MS Word Free online version, does everything you'd want a text editor to do, supports straight/dumb quotes. Paid version includes everything. Free online version, subscription-based payment for desktop version.
Scrivener If you're coming from a screenwriting background - this is the best setup, can make moodboards, sitcky notes, a lot of features helpful for world-building. Clunky to move files over to source code editor, not made for this work in mind, a lot of features you might not end up using. One-time payment.
Twine Browser and desktop version avaible, built in flowchart system, easy to use, great for vizualizing choices. Barebones. Free.
Notepad Easy and simple. Uses plain text, so it's easy to move over to an source code editor. You can straight up write your code in it. Barebones. Free.
Pen and Paper Can't beat it! No backups, you have to write it, you might lose it. Surely you have a pen and paper lying around.

A good habit is to use # (hastag) as a way to keep notes. EG.

char a "Hello world!"

#add full CG here

#add dissolve transition

char b "Hello!"

Ren'py uses plaintext - it's a good idea to see if your text editor can disable smart quotes (Also known as typographer's quotes. These are the "curly" form of quotes that hug the sentence.). This will save on you having to replace them later on in the coding stage.

In google docs, you can disable them by doing the following:

Tools > Preferences > Disable "Use Smart Quotes"

You can disable them on MS Word as well.

Visuals

ADV and NVL

These are the two ways VNs are presented.

ADV

Gore Screaming Show

ADV (ADVenture) - this would be the most common style of presenting VNs today. This consists of a textbox, with a character sprite taking up the majority of the screen.

The textbox is usually on the bottom - but you have plenty of VNs that use speech bubbles instead.

NVL

Screenshot from Type Moon's A Witch on the Holy Night Screenshot from Type Moon's Fate: Stay Night

NVL (NoVeL) - this is when the textbox takes up the majority of the screen.

You do not have to pick between them, if you wish. Ren'py makes it fairly easy to swap seamlessly between the two. Look at games you like, GUI you like - what do you like abut it? How does it help the story, the mood? Choices are not made randomly. You are in control of everything.

GUI

What does GUI mean?

GUI is the graphical user interface. GUI and UI are used interchangably a lot, but I'll be refering to all user interface as GUI in this document.

This is everything the player can see; from the game icon you click, the font you use, the textbox, the size of the text, how the menu looks, the menu icons - all that and more.

Why is it important?

There's nothing wrong with Ren'py's default GUI. But it is the default. GUI plays an important part in selling the story you wish to tell.

For a lot of people - it's a turn off. It makes it look like you don't care. I don't agree with that - but it happens.

soundless-save trophies-save
Screenshot of the save/load screen from soundless: A MODERN SALEM IN REMOTE AREA Screenshot of the save/load screen from trophies

Look at these two save screens. What are they saying about the story? What feelings are they trying to get across? How does it add to the overall experience for the player?

Below is a VNConf talk which goes in depth about UI design.

Accessibility

Have you played a VN and you can't change the text speed? Or had a voice actor annoy you? Maybe you want to hear the JP voice actors, and not the EN ones? Those are all accessibility options. Make your VN a pleasure to read. Make it easy.

For example - I will exit a game if the text is too small. I will not give it a shot. It could be the greatest story in the world - I don't care. I can't read it. It hurts.

Give your players the option to change it.

Text

Here's a fantastic write-up on marrying readability and aesthetics together for font choice.

GUI Templates and Guides

Easy Ren'py GUI

Feniksdev created this template to make changing the GUI simplified. It can be found here.

Ren'py Accessibility Add-On

A bundle that includes options for text, sound and visual cues. It can be found here.

QOL Features

These are not make-or-break features, but think of adding them if your project allows it.

Sprites

What size should my sprites be?

Ignore the people who talk about 4k. That's ridiculous. If I catch you drawing sprites at a massive size for no good reason...

Mostly likely, you are going to make a VN with the 16:9 ratio. This is the ratio of your average PC screen. You may want a "retro" feel, and pick 4:3. The minimum size you need to draw is based on this.

Another thing to note is your textbox size and transparency. Don't accidently cover up hand gestures or poses!

x2 the size you want is perfect if you plan on zooming in on the images and wish to keep the quality. Export at 72dpi. THIS IS A GAME. NOT A PRINT. DPI DOESN'T MATTER.

A good rule to remember is people will play your game on the smallest screen possible. What matters more is the composition of your scenes.

What file type should they be? / Exporting

Get into the habit of exporting the smallest file size you can. No one wants to download a 40 minute Ren'py game that's over 4GB. It looks like you have no idea what you're doing. It's your job as a Gamedev to par down your file sizes. It's easy! To see a full list of what file extentions Ren'py supports to display a image, please look at the Displayables in the Ren'py documentation.

PNG

Does the job, but not ideal as file sizes can add up quickly if you have a lot of images.

JPG

If there is no transparency - export as a JPG.

WEBP

Learn to love WEBPs. I have. CSP recently updated to support .webp. Photoshop and many other opensource art programs have supported webps for a good while now. It's time you did to.

Here's a lesson I've learnt working in animation and media - NO ONE CARES IF IT'S IN 4K. They're watching a lets play on their phones while washing their dishes. Your audience is not playing your game on a massive screen.

Desktop Icon

Inside your game/gui folder - there is a file called windows_icon.png. Replace this. If this doesn't work, delete your temp files.

FAVICON

This is the little icon that sits in the game window and the exe file. The usual sizes are 32x32px or 16x16px. You can make a 180x180px file and then export it as a smaller size. You can use an online converter, or GIMP.

Side Images

These are the small character portraits found on the side of a textbox.

persona-si dr-si cd-si
Persona 5 side images SDR2 side images Coquette Dragoon side images

The above are all different ways to use (or not use) side images. The idea is clarity on which character is speaking.

You can find the documentation on side images here.

Layered Sprites/Layered Images

Throughout your VN, you want your characters to convery different emotions. Maybe your characters change clothes. Maybe they have different arm poses. You could export all these sprites as standlone bodies, but your diskspace would increase, and you'd be wasting your own time. The solution? Layered images!

Layered images allows you to have a base body sprite, which you can layer expressions, eyebrows, hairstyles on top.

You can find the documentation on layered images here.

You can find an in-depth tutorial on how to set up the code, sprite files and more by gruntsteel. This is a fantastic resource.

I recommend watching Mado's (Creator of Bad Faith, and the malViolence series) video on how she approached her sprite making. It's a great guide.

If you're looking to do something a bit more complex, there is Fenikdev's tutorial about how to Masks with Layered Images.

Asset Reduction

Backgrounds

Coming soon!

But I can't draw!!!!11!!!1

Yes, you can. Everyone can draw. You can convey the emotions and characters in your way. Isn't that powerful?

Screenshot from Higurashi: When They Cry

The most famous examples are the When They Cry series. I disagree with the popular notion that these are lesser. How? They show strong personalities. They sell the story. They make Higurashi.

Don't sell yourself short. Take photos. Learn 3D. You're making a game because you have a desire to create, to have fun, to speak in your own voice. Don't look down on that.

Your VN might not even need images. Maybe it needs just one.

Animation

Coming soon!

Audio

Audio is one of the most critical parts of visual storytelling.

The Ren'py documentation for audio.

SFX

girl "I'm leaving!"

#closing door sfx

We have the above example of a girl leaving the room. But how does she close the door? Does it close gently? Does she slam it shut? Does she leave it swinging open?

SFXs are a wonderful way to add depth to a scene, to add charcter, to built tension. What would the lack of sound say? Are you trying to isolate the MC? Is something awful about to happen? There's so much to consider, and we're only closing a door!

Music

Coming soon!

Creating a New Audio Channel

Coming soon!

Publishing

Coming soon!

Marketing

You finished your game! Congratulations!

...Now what?

You have to let people know! You have to let people know about your game!

And how do you do that....? Well... You tell them!

If you're doing this as a solodev, this can seem like ANOTHER massive task that you can push to the back. DO NOT DO THIS. Talk about your game! Post updates! Don't fall into "oh but I don't want to spoil it" / "It's not good enough to post yet". Post it anyway.

Let me tell you a secret. No one cares about your game as much as you do. Even if you post about plot spoilers, share spoiler CGs... You are your own games BIGGEST FAN. You have been there from day one. It's your goal to make people understand that it's worth their time, that it's worth discovering the story you wish to tell. Apart from you, no one knows why your story is important. Most people using (insert socmed here) are looking at your post for less than 10 seconds. Don't worry about "reposting" or "spamming people"... You want people to play your game. You're gonna have to post. You're gonna have to post enough to get people interested.

Look at memes and posts that go viral. You don't have to try very hard. You just have to be consistant. Don't fall for the age old "Oh, I'll just post it and hope my game blows up cause it's good."

That's not going to happen. You are not likely to blow up randomly. No one blows up randomly. You're just not seeing the groundwork they did.

How do I start marketing?! When should I start?!?!

Now.

Arimiadev has a website where she documents every aspect of marketing for visual novels. It is a goldmine of information. I'd reccomend starting with her article on marketing for visual novels in 2024.

A great tip I learnt from these blogs is marketing =/= advertising. It can be very difficult to put yourself out there. But you can make marketing all your own. It's another skillset you have to develop.

Marketing Tips

Everything is an Asset! This is a great talk on how to use what you have to market. You already have what you need!


Amiriadev speaks on marketing your game in a constantly shifting socmed space.

Other Guides

Arimiadev's How to Make Visual Novels guide & resource list. Includes terms and lots of helpful resources for beginners.

Credits

Coming soon!