A little over a year ago, I set out to complete a strange task: I wanted to build a visual novel in Unreal Engine 4. To some people this seemed like using a rifle to shoot a fly. I was even prepared to admit they were right. But once I got deeper into the UE4 engine, I didn’t regret a single thing.
The short answer to why I love using Unreal Engine 4 is this: the engine can accomplish just about anything I imagine, and it can do so quickly. It’s a wonderful engine to work with and it’s capable of so much.
That said, Ren’Py is still a wonderful tool to create traditional visual novels. If you don’t plan on adding 3D elements or complex mini-games to your narrative, then there’s probably no reason for you to switch to UE4. BUT if you want to expand the boundaries of a traditional visual novel and set yourself apart from the other VNs out there, I can assure you that UE4 might be a great tool to accomplish that.
How to Get Started?
When I started my first VN project in UE4, I struggled to find helpful resources. Not many people had tried to create a traditional VN system within UE4. I found a VN marketplace plugin, but it only functioned for very small-scale projects, and was completely unwieldy in terms of handling a large script or rewrites. So after a lot of searching and banging my head against the computer screen, I set about building my own system from scratch.
Now, one game and many months later, I want to share what I’ve learned with the game dev community at large. I’ve started a video tutorial series that will help you build the foundation of a VN system within UE4. This system is designed to handle large-scale projects and gameplay elements beyond just dialogue. You can begin by writing your script in a typical Open Office or Word document, then convert it into a spreadsheet and import it into UE4.
Watch the Video Tutorials Online
Part 1: https://youtu.be/qj_6dfzqaO0
- Create your text scene in a spreadsheet (4:05 )
- Create a structure in UE4 (8:45 )
- Import your first scene as a datatable (13:02 )
Part 2: https://youtu.be/KuHardkG37M
- Create a Scene Template Blueprint (1:09)
- Create an NPC character actor to launch the scene (2:56)
- Enabe click events (6:30)
- Spawn Scene Template when NPC is clicked (9:15)
- Feed the datatable rows into the Scene Template (13:57)
Part 3: https://youtu.be/ljaf1PHGq1Y
- Track the scene array with a Row variable (1:36)
- Create a widget to display the dialogue (4:08)
- Set text variables within the widget (9:18)
- Create widget from Scene Template and track as variable (11:14)
- Set widget variables from the Scene Template Blueprint (13:18)
Part 4: https://youtu.be/w7LxY8fZzdc
- Add dialogue widget to viewport (0:44)
- Track whether the row is finished displaying (2:11)
- Add an input to advance the text (4:26)
- Increase row number for next line (5:23)
- Enable input on the Scene Template (7:00)
- End scene and destroy actors when scene is finished (7:58)
In the tutorial series created so far, I don’t yet get to branching dialogue or character sprites. But if people find this first series useful, I may go on to create tutorials about that later. You can also find my posts about the VN system on the UE4 Forums.
Meanwhile, we’re running a Kickstarter for our current visual novel project, Echoes of the Fey – Fantasy Visual Novel Series! If you enjoy my work or find my resources helpful, please support us!