Text Based VN Advice

Heya! Im Ace, and I want to make a game! More specifically, a VN with managment mechanics that i dont know yet how to fit into a VN, namely because my experience lies in Gamemaker and not Renpy like i plan to use.

Im gonna explain context and then get to my question.

I want to make a game where the MC is fattening up mecha pilot women, and the main mechanics would be:

  • Lifestyle managment
  • Relationship managment (VN stuff)
  • Mission managment (possibly if i can fit it in)
  • Resource managment (food, money, ext.)
  • Suspicion managment (not letting others catch on)

My question is, if you more experienced devs were to design a game like this, what would be some tips or advice for it?

Thank you in advance!

5 Likes

I should also clarify, when i say text based, i dont mean no graphics. I just mean the game will be primarilly carried out through text

I don’t know how rpg maker does things, but for a project like you described a very handy thing about ren’py is your game doesn’t all need to go in script.rpy. Could have saved myself a lot of headaches if I’d known that at the start. Likewise- screens don’t only need to go into screens.rpy. Make a plan on how you’re going to organise your scripts for each system/character etc and use the default script file as basically an index.

If you’re familiar with python programming ren’py should be fairly straightforward for you.

After planning how to organise the file structure- with the number of what seems like interconnected systems you’ve got going on I’d sketch out their functions and how they interact with each other and get a basic UI set up. Doesn’t need to be perfect or pretty to start with. Aim for functional. Pretty can come after it works. It’s easier to bug fix a plain/simple UI for functionality than one with bells and whistles because those extra bits that are nice but not necessary need their own fixes.

1 Like

Unless you are already familiar with the complexities of branching or otherwise nonlinear narratives, I’d stay away from that for your first foray. Mind you, not being text only means you can crib on visuals to sell your scene descriptions in ways that relying entirely on text just can’t do, but ultimately the workload is much the same - for every additional state the character(s) can be in over the course of the game, you will need an additional scene descriptor, and that need will carry on from that point forward.

So, keep your scope reasonable, control for your state potentials, and remember that individual sprites on an independent background is substantially less work for you than fully rendered scenes, especially if you don’t do a good job with the first two points.

1 Like

I see! Thank you, both of you!

I have some experience with programming, but ive never used python specifically too much so that’ll be slightly new territory. I can say though that the point about non-linear storytelling is true since ive dabbled in novel writing and even getting one set of story lines to connect right is hard, let alone many different changing ones.

All in all im kinda out of my depth; im practicing art currently, which is coming along decent enough, and i have experience with both writing, programming, and music. I wish i couldve found a programmer before tbh, because that’d probably make life 100x easier since i could focus on the art side full-time lol.

Either way, ill figure this out!

Hey, I’m currently working on a project in Ren’Py myself but I would be down to joining a project, where I don’t have a looming mountain of drawing to do at the end. I’m also practicing art, but it’s taking longer than I’ve expected.

I also think I could put together a story that is both non-linear and something that we could actually finish in a reasonable timeframe.

If you’re interested, you can DM me, so we could brainstorm some ideas.

Hey Ace, my game, Feed My Affection, is built in Ren’Py and has resource management systems like this already built in. A lot of it is incomplete, but it currently has a working inventory system for resource management, and character stats for things like affection, appetite, stomach capacity, etc.

You are welcome to download the latest free built and look at the code. It’s been made fairly easy to navigate — you can check out “inventory.rpy” to see how the inventory system works, for example, and most of the code has been commented thoroughly. You’re also welcome to copy any code from it directly if you want to, although given your situation, my advice would be to use it as a learning example.

Thank you! That is immensely helpful for when i get home Tuesday!

My general advice for getting into Ren’Py is :

  • Hack an existing Ren’Py game that you like. One with weight gain and without images, or with minimal art, is nice for this. “Slice of cake” or “Tramp”. (Or take Tonbelly up on their suggestion, or check out my game A Unique Diet for simple branching paths or Unstable Frienemies for an example of sprawling multipath life sim emulation.) In any event, just add a few small things one at a time and you’ll have Ren’Py 101 under your belt in no time. (If you want a task, why not try out Slice of Cake for a while, then modify it so that the Old Friend character has more weight stages. Then add more options for when you hang out. Then add options that only show up when certain prerequsites exist. Then add a few different endings - retirement if the PC gets rich enough, happily marry the old friend, move in with your now-adult adopted kid if they’ve done well enough, etc.)

  • Check out the lemmasoft forums. There’s enough Ren’Py data out there that most current 'AI’s can feed you effective data, but the folks over on the forums have answered years worth of beginner questions and have a large number of “here’s how to do this thing you wouldn’t think Ren’Py was capable” posts.

  • Play through the tutorial that comes with Ren’Py! You don’t need to memorize anything in it, but with a half hour of messing around you’ll see a lot more of what the engine is capable of than you will in almost any game made with it, and the code is as tight and neat and copy-able as it can be.

Something I do, that’s not strictly speaking ‘good coding technique’, but that works well, is dropping a string of three or more X characters (‘XXX’, ‘XXXXXX’) inside a comment line whenever I hit a branching point in what I need to program or start a function call / location jump that I won’t be doing right away. Then if I have to set things down for a while, or don’t end up returning to that bit until after it’s out of my personal RAM headspace bucket, I can ctrl-F XXX and be reminded of what I still have to accomplish but might have forgotten about.

1 Like

You generally want to use

<comment start> TODO:

Many IDEs and code editors will automatically format it correctly and even make a list of all TODOs that you added.

1 Like

Tramp really (over)heavily uses Classes in a way that is more Java-coded than Pythonic, though it’s nothing the language doesn’t support. It does make it a poor choice for learning from, though, IMO.

Ren’Py is a weird environment to code in. It’s actually built for novices, with some quirks that actively go against Programming Best Practices, including heavy use of the Assembly “jump” statement, which is blatantly anathema to structured code, but absolutely essential to scripting in Ren’Py. That said, you can do some powerful stuff in it with judicious use of the full Python suite - basically anything shy of a fully animated real-time game.

ETA: Like, if you’ve ever played Gabriel Knight 3 or anything in that style, Ren’Py is absolutely capable of doing that. But don’t try to build a shooter, adventure game, platformer, or RTS in it.

Actually, the platformer might be doable, so long as it isn’t a hardcore platformer with timing and pixel precision.

2 Likes