Tips for keeping track of large projects/highly branching games?

A place to discuss things that aren't specific to any one creator or game.
Forum rules
Ren'Py specific questions should be posted in the Ren'Py Questions and Annoucements forum, not here.
Post Reply
Message
Author
User avatar
AsHLeX
Miko-Class Veteran
Posts: 556
Joined: Wed Dec 25, 2013 1:09 pm
Completed: Starlight Dreamers, Mysterious Melody, Town of Memories, Marked, To Fly, The Change, Him From The Past, A Forgotten Memory
Projects: Cafe Mysteria
Location: Malaysia
Contact:

Tips for keeping track of large projects/highly branching games?

#1 Post by AsHLeX »

Hi everyone! First off, let me thank you for taking the time to read this.
So the question is, to all the visual novel/game creators of large projects (or highly-branching projects) out there, do you have any tips for keeping track of everything? e.g. sprite expressions, character affections levels, character stats, route branches etc.
Specifically things like the maximum possible affection that can be acquired in one playthrough (do you just manually calculate them?)(for purposes of determining route progression requirements) and maximum possible acquired stats at any one time in the game.
I'm creating a visual novel with many, many, many, branches (for reference, the attached image below only shows the number of branches in the first 3 minutes of the game) and I'm already starting to lose track of sprite expressions, affection points, route branching (and reconnecting) etc.
IMG_20210519_221517.jpg
I'm currently using a combination of notepad (to keep track of sprite expressions), ren'py/atom (for scripting), word (for writing), and flowcharts on paper (for branching).
Currently, I'm only dealing with scripting, writing, images, and sfx. I can't imagine how much more confusing everything is going to get when I add in music and voice acting, so any tips would be highly appreciated! Like any programs that you would recommend, tips on how to not get overwhelmed, etc.
Thanks again!

User avatar
papillon
Arbiter of the Internets
Posts: 4107
Joined: Tue Aug 26, 2003 4:37 am
Completed: lots; see website!
Projects: something mysterious involving yuri, usually
Organization: Hanako Games
Tumblr: hanakogames
Contact:

Re: Tips for keeping track of large projects/highly branching games?

#2 Post by papillon »

Vague tips:

If the branching is getting out of control, consider how much those branches actually add to the experience. While some people (like me) love a lot of choice, many players find it stressful and that it makes it more difficult to get the outcomes they want.

Reconnect frequently. The more frequently you fork the thread, most likely the more often you need to pull it back into the main flow. It's possible (though not necessarily desirable) to have a game where the player is making choices all the time and yet the plot doesn't branch at all, because every time there's a choice, the player makes one statement, the person they're talking to makes one reply, and then the conversation returns to where it was going to go anyway.

Code: Select all

NPC: "Did you hear about what happened with Ms Havisham, the English teacher?"

    PC: "Is that the teacher who keeps a parrot in her room?"
  
        NPC: "What? A parrot?"
    
        PC: "Oh, never mind, that must have been someone else."
    
        NPC: "Right."
  
    PC: "I've never had her class."
  
        NPC: "Oh, you must have been in the other section."
  
    PC: "Oh, I hate her."
  
        NPC: "Yeah, I don't like her either."
    
NPC: "So anyway, what happened was this..."
There's three choices and three separate responses, but they all quickly jump back to the NPC telling the story, allowing you to return to a point where you know what sprite is onscreen and don't have to worry about what was going on in those little branches above. This doesn't need fancy flowcharting because these 'branches' don't have any real effects! They're just fluff and flavor. If your protagonist has set character traits, you can similarly easily do little reactions where the PC automatically says something based on personality type, but it doesn't really branch the story. Trying to draw them as a flowchart would make them look more complicated than they really were.

Many, many games will be broken down into a scene/calendar structure, so even if branches did get out of control in a past scene, you still start a new scene with all possible PCs in the same place. Organising the game by scene, you can also put your own restrictions on how many affection points, etc, should be possible. If the characters are going to an amusement park and you decide that it should be possible to earn a maximum of three points during this date, then you can look at the structure of just this scene and plot out the different ways to earn no points, one point, two points, or three points. You don't need to look at the whole game at once, just this scene. Then you can make a separate list which shows all the scenes where points can be earned and hte maximum nmber of points earned per scene, and from there you can see the number of possible character points over time.

I'm not really sure what you mean about using notepad to keep track of sprite expressions though. Are you trying to keep a list of all the expressions you think you'll need, separate from the code where you actually use them?

VillainousClown
Newbie
Posts: 8
Joined: Mon Mar 08, 2021 4:41 am
Contact:

Re: Tips for keeping track of large projects/highly branching games?

#3 Post by VillainousClown »

Something I can recommend are mind mapping tools like "Mindomo". It's easy to use and the clean design makes it easy to follow! You will end up with a nice looking flow chart. Pen and paper often end up looking messy and confuse the creator more than it should.

User avatar
AsHLeX
Miko-Class Veteran
Posts: 556
Joined: Wed Dec 25, 2013 1:09 pm
Completed: Starlight Dreamers, Mysterious Melody, Town of Memories, Marked, To Fly, The Change, Him From The Past, A Forgotten Memory
Projects: Cafe Mysteria
Location: Malaysia
Contact:

Re: Tips for keeping track of large projects/highly branching games?

#4 Post by AsHLeX »

I separate my branches into main plot branches, and smaller branches for personality traits, and even smaller branches for sub-personality traits.
The branches always reconnect after about a couple of in-game minutes of playthrough.
This doesn't need fancy flowcharting because these 'branches' don't have any real effects!
I get what you're saying, but at the same time I'm losing track of how much sub-personality traits I add, so I feel like completely pretending those little branches don't exist isn't really doable either (e.g. the total number of choice that +1 shy stat might be 20 while the total number of choices that +1 energetic stat might only be 3, which makes deciding "progress" requirements more difficult. by progress requirements I mean not story progression, but little things like once a player is locked on as a certain "personality", the choices available to them changes to reflect that)
If the branching is getting out of control, consider how much those branches actually add to the experience. While some people (like me) love a lot of choice, many players find it stressful and that it makes it more difficult to get the outcomes they want.
That being said, you bring up an important point. I just realized that players don't need 4 variations of the same answer to up their 'confident' stat! And I find myself questioning how important a branch is to the main story before I go down that path.
Many, many games will be broken down into a scene/calendar structure, so even if branches did get out of control in a past scene, you still start a new scene with all possible PCs in the same place.
Mhmm! That's mine and it's really handy.
If the characters are going to an amusement park and you decide that it should be possible to earn a maximum of three points during this date, then you can look at the structure of just this scene and plot out the different ways to earn no points, one point, two points, or three points.
This was really helpful! I didn't even think about it. Setting a maximum number means that I don't have to keep track of the stat points as closely as I would have to otherwise.
I'm not really sure what you mean about using notepad to keep track of sprite expressions though. Are you trying to keep a list of all the expressions you think you'll need, separate from the code where you actually use them?
Yeah, because I plan on commissioning the sprites, so I don't actually have any sprites to use yet, I'm just writing the art commands with the '#' at the moment (e.g. #show haru_smile with dissolve, and when I have 1000 lines of codes, it just makes it confusing what expressions I've used and which I haven't - like haru_frown and haru_stressed might be pretty much the same expression, right? so keeping track of the expressions i've used stops me from accidentally writing similar expressions with different words)
Something I can recommend are mind mapping tools like "Mindomo". It's easy to use and the clean design makes it easy to follow!
I've used a couple of flow charts before in the past, but it never really stuck because I didn't like the way the arrows moved around ^_^" (I think I'm technologically challenged lol). That being said, I just checked out Mindomo and I like the interface, so I might give it a shot. Thanks for the recommendations!

Thank you VillainousClown and papillon!!! :D :D
Image
New demo out 24/12/23!!

User avatar
papillon
Arbiter of the Internets
Posts: 4107
Joined: Tue Aug 26, 2003 4:37 am
Completed: lots; see website!
Projects: something mysterious involving yuri, usually
Organization: Hanako Games
Tumblr: hanakogames
Contact:

Re: Tips for keeping track of large projects/highly branching games?

#5 Post by papillon »

I personally don't put sprite names in the code until the sprites actually exist. If I'm writing script before I have art I won't specify sprites and I'll go back and do them later. After some writing exists I have enough idea of a character's personality that I can commission sprites with what I think are the most important expressions and expect that I'm going to need to mix-and-match pieces to build a few extras eventually, especially for major characters.

Often with major characters once the faces do exist I'll make a big image grid showing all the different faces (just copying and pasting the faces, not the full sprites) with the name of each expression written under it. Then when I'm going through the script I can look over at that picture and pick out the most appropriate face and type the matching name. If absolutely no face fits, I can go tinker with the source art and try to create something new, then add that to the grid.

User avatar
tinysamm
Newbie
Posts: 23
Joined: Sun Apr 25, 2021 4:23 pm
Completed: Confession Center, Black Cherries, Scary Gourmet
Projects: Glamour Team Go!
Tumblr: tiny-design
itch: tinysamm
Location: Bellevue, WA
Contact:

Re: Tips for keeping track of large projects/highly branching games?

#6 Post by tinysamm »

Indeed. Unless you already have some existing sprites for your characters, you should avoid making too many assumptions about what expressions you'll be using for each portion of dialogue. In addition, if you're hitting a wall with how to keep track of the various branching points of your game, an alternative method for determining how the game progresses may be better served by saving visible or invisible stats associated with a given session of the game. Dating sims often do this to keep track of specific actions the player has taken with regards to each route, and unlocks specific events or dialogue branches only after the player reaches a certain threshold in a particular stat. If your branches feel like they're growing too intricate, perhaps you could briefly branch out for short sections of dialogue, then come back to the main story while tracking to some stat what your choice impacted ^^
-tinysamm

User avatar
Morhighan
Miko-Class Veteran
Posts: 975
Joined: Sun Jun 27, 2010 12:54 pm
Completed: AIdol, When Our Journey Ends, Forgotten Not Lost
Organization: MysteryCorgi
Tumblr: MysteryCorgi
Deviantart: MysteryCorgi
Soundcloud: MysteryCorgi
itch: MysteryCorgi
Location: USA
Contact:

Re: Tips for keeping track of large projects/highly branching games?

#7 Post by Morhighan »

I use yED and Articy Draft. They've both been handy programs for keeping track.

User avatar
ketskari
Veteran
Posts: 296
Joined: Tue Dec 21, 2010 6:22 pm
Completed: Asher, Sunrise, Tell a Demon
Projects: Asher Remake, TEoA
Organization: Sun Labyrinth
Tumblr: sunlabyrinth
Deviantart: sunlabyrinth
itch: sunlabyrinth
Contact:

Re: Tips for keeping track of large projects/highly branching games?

#8 Post by ketskari »

I'm really liking Zim Wiki right now.

It's great because you can drop text into any page. So I've used it for ren'py format dialogue before. It's also useful for keeping stuff like your story notes and marketing notes all in one place.

eezergoode
Regular
Posts: 58
Joined: Tue Aug 29, 2006 10:55 am
Contact:

Re: Tips for keeping track of large projects/highly branching games?

#9 Post by eezergoode »

I may be old fashioned, but anything I work on, I rely on a spreadsheet. I have tabs for everything. Character details, stats if used, locations if used, etc.

I am currently working on the first of what will (hopefully) be a total of 9 related games where events in one game can occur in another game, from a different viewpoint. This is obviously a nightmare, and I am still not sure why I am sentencing myself to what could amount to the next 30 years of my life regretting this, but spreadsheets make it sooooo much easier. Even within a single game, having everything I need to know, right at the click of a tab, is super helpful. With just a little know-how, you can even use them to track your decision branches by linking from one cell to another, even on a different page. (you can even link to a specific cell in another document, but that's too much, even for me.)

Like i said I may be old fashioned, but the main two tools I use, outside of Ren'py itself, are a spreadsheet and a series of word docs.

EDIT: I've not seen ZimWiki before. I just looked at it, and it does look to be a very helpful tool!
Eezergoode - AKA Rabid Penguin
Team Lead

It does not matter how slowly you go so long as you do not stop.
Confucius
Chinese philosopher & reformer (551 BC - 479 BC)

jeffster
Veteran
Posts: 361
Joined: Wed Feb 03, 2021 9:55 pm
Contact:

Re: Tips for keeping track of large projects/highly branching games?

#10 Post by jeffster »

1. For notes, I use DokuWiki. It's a full blown wiki engine, like MediaWiki, but for home use I like it better. It's easy to install, especially if you are on Linux (otherwise you can do it via Docker etc.)

The main point is to keep it clearly structured. Scenario, ideas, parameters, visuals - everything can be placed in hierarchically organized set of interlinked documents.

2. Well structured folders, files and code.

Keep the information on every topic together or easily addressed. E.g., you define everything related to characters and branches in one file, init.rpy:

Code: Select all

###### Characters ######
#### Romanceable:

## Anna:
define an = Character("Anna", color="#FCC")
# Expressions (images/char/*.webp):
define an_x = {
        "happy": "anna_happy",
        "mad": "anna_mad",
        "sad": "anna_sad"
        #...
    }
# How many points can be gained during day #:
define anna_love_daily = [
        3, 0, 2, ...
    ]

## Bruno:
define br = Character("Bruno", color="#FCE")
#...

###### Decisions ######
#### Chapter 1:

## Day 1. Afternoon meeting:
default ch1_met_alice = False
default ch1_assistant = None   # Clara or Simon
#...
3. Well documented code.

Put some brief overview at the beginning of every major part, so even years later, after you have forgotten everything, you could read and understand how it works.

4. Project planning.

Even a simple version of kanban is helpful:

- General ideas and thoughts.
- ToDo's (ready for implementation or in progress).
- What's done (every day you describe it in a couple of strings).

So you write down your ideas and work on them in a more or less structured manner. And keeping track of your progress helps your motivation.

jeffster
Veteran
Posts: 361
Joined: Wed Feb 03, 2021 9:55 pm
Contact:

Re: Tips for keeping track of large projects/highly branching games?

#11 Post by jeffster »

PS. Another useful thing is to use Github or Gitlab for your project.

Then you pretty much automatically:
  • keep backups of the older versions of your files , in case you would want to revert some changes;
  • use "issues" tab to track the implementation of your ideas, bug corrections and todos.
It has in-built activity tracker, wiki etc.

If you want to keep your project secret, you can install Gitlab locally on your computer.

Post Reply

Who is online

Users browsing this forum: No registered users