CreatorsOk
vrengames
vrengames

patreon


Lab Rats 2 Prototyping - Damn it Jim, I'm a Programmer, not a Writer

v0.8.0 of Lab Rats is out, and so far everything seems to be nice and solid. That's given me a week between it's patron and public release to do some work on the prototype for the sequel. Lab Rats 1 has plenty of work left to finish on it, but it's nice to take a break and look towards the future. Over the next few weeks I plan on doing a series of posts about my design thoughts and decisions going into the sequel. To start off I'm going to be talking about why I picked Ren'py for Lab Rats 1 and 2.

For anyone who doesn't know, Lab Rats is build on a platform called Ren'py. Ren'py is free and open source, and purpose built for creating visual novels. If you've played a visual novel of any type recently, there's a good chance it was made using Ren'py. Deep down, Ren'py is built on Python, a programming language that focuses on creating simple, clear code.

When I first started developing Lab Rats 1 I had about 6 years of programming experience, but I hadn't had a chance to write more than a "Hello World" script in python. Ren'py offered me the chance to learn a new language, and provided a framework that let me start producing content right away. Writing a scene in Ren'py is as simple as:

sis "Hey there!"

me "Hey Lily, how's it going?"

sis "Oh, it's fine."

All of the menus, formatting, and other things that make a visual novel work are handled behind the scenes. That was a great asset when starting development, because I could produce real, tangible results in a few hours. That ability to just sit down and write has produced results, to the tune of 220 000 words of dialogue in Lab Rats.

Unfortunately, that simplicity has a cost. Every scene I want to add to Lab Rats requires me to sit down and type it out. Each branching path in the game is hand written, and variations are hard coded so they cannot be reused. Each major scene added to the game takes about 4 hours to write, and with 5 characters in the game a relatively small update that adds one major scene for each takes 20 hours of dev time without even worrying about new game mechanics or adding images.

Producing content in this way has other problems as well. When a scene is written I have to assume a certain outfit for each character, or I would be forced to write a slightly different version for every single different outfit in the game. Imaging those different outfits would be a colossal task as well, growing with the number of outfits introduced into the game. If you were able to have different mixtures of outfits, the problem only gets worse. That's stopped me from adding often requested features like having girls wear different outfits when you talk to them, because any scene that triggered from there would have the wrong descriptions and wrong images. Solving this would require a fundamental change to the way content is designed for Lab Rats.

With Lab Rats 2, I'm going to be putting in the time and effort to build a solid base that solves these problems and focus on my strengths as a developer. At heart I'm a programmer and game designer; writing and artistry are secondary skill I exercise when I have to. As much as possible, I will be seeking to make dynamic and flexible systems, rather than creating individual scenes. By doing this from the start, I'll be able to add more varied content, more quickly as we move forward with development. I'll be putting out posts with the details of these systems as they're developed, starting with the new outfit system and the new sex system.




Comments

First, shout out to you for having a game that I am a fan of just as much as Akabur games and being way more responsive and keeping the masses happy with updates and legit gameplans, you are a rare breed and I have followed your game sinc v0.03 and have been super excited for every update. I think my favorite part of lab rats outside of the obvious of course, is that I have learned a shitload of ren'py and have had constant flashbacks to my python days so I share the same sentiment as Magnus in that I like seeing your mechanics and how they are implemented and as simple as it is its such a tight well oiled system even after the updates that parse the scenes into their own scripts. Someone new who is curious can open it up and you leave things labelled and even put suggestions in your tags that offer fascinating insight. I have personally enjoyed going in and being able to modify a few values and I have yet to play with anything that didn't do exactly what I had expected (outside of random encounters spamming accidently after a typo) but your game has reinstated my love for this kind of mechanical stuff. I hope the next game leaves it open to people like us to play and discover.

It certainly will be. As long as my projects are supported by you lovely people, I'll keep making them as open as possible. In fact, I've designed a number of the systems in LR2 to be easily mod-able: adding new pieces of clothing, new sex scenes, and new locations will be simple and compatible with the rest of the game.

Vren

I hope Lab Rats 2 retains a degree of "open source" to it, as I enjoy reading through the code to discover how you get the various scenes to work. (Yes, I'm frustrated ex-programmer whose career took a detour)

Magnus Carolinus

ahh cool

David Swain

Different mechanics, details about that will be revealed later (mainly because most of them are under heavy development right now, so it may very well change by the time you guys see it). Old characters will appear in the game. For your last question, a simple yes to everything.

Vren

I'll keep my cards close to my chest for a little bit until I can drop an early prototype for you guys to try out, but I'll answer a few things. It will be a sequel, but with a much wider setting and a different set of gameplay mechanics. The MC will be the same one from LR1, and the other characters should appear as well (Although the details on that are being left for a later date).

Vren

It does, and it's pretty painless to integrate some python code into mostly Ren'py segments. Variables are all handled as python variables (Denoted with a $ symbol at the start of the line) and can be called from within text segments or used to break up if/else blocks. A statement might be something like: $ variable_1 = True if variable_1: $variable_2 = "Hello" else: $variable_2 = "World" me "The word to print out is [variable_2]!"

Vren

I feel like the way Ren'Py works is rather close to Haskell's idea of a monad (design pattern). If you can figure out monads, then maybe you will understand how to make it more composable :)

lolred

Wow, keep up the good n hard work! :)

Kravenar Games

I must admit to being unfamiliar with ren'py, does the engine allow any access to the code "layer" at all, for example I am working in Twine 2 at the moment which is also a human level tool but it also recognises HTML and Javascript tags so my current project is strewn with if statments and variable calls to allow for different situations within the same texts body.

David Swain

Now you've got me curious about your next project. You don't have to reveal anything at this stage, of course, but these were the questions that came to my mind: Lab Rats 2: is this an actual title or merely a working title? Are you going for an actual sequel (whether a direct sequel about the same characters or an indirect one in the same setting) or is it more of a thematic sequel (similar premise, different setting) or even a remake?

Hollow49

sweet, is Lab Rats 2 going to have different mechanics? as an example the love meter on dating my daughter, or a free roam map like summer time saga. Another question, are you planning to bring some of the old characters to the new game? Lastly, are you going to make the girls change clothes or personality depending on the level of drugs/corruption they have taken?

Nicolas

Is there not a database driven GUI editor for Renpy scenes/games, or is absolutely everything manually coded in a plaintext editor? I assumed the scene files were generated by an engine based from a series of criteria; I didnt know everything was human-coded.

sleepwalker

Ask away! Lab Rats 1 is a full game, and was designed to be from the start. When I started development I played around with Ren'py for a few days to see exactly what I could do with it, then roughed out a plan for the game and set to work. Lab Rats 2 will certainly benefit from the experience, but it will be a dramatically different game (otherwise I would call it Lab Rats 2.0).

Vren

If it is ok for me to ask, is Lab Rats 1 like a "demo test" to see what you can do with the software? I asked since some developers do that, they don't call the game a "demo test" once they restart the project, and I feel like that what you are trying to do with this one.

Nicolas


More Models and Creators