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?
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.
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.
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.
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.
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.
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.