I’m done with the coding part of this little excursion and I’ve learned a lot about making a game during this phase. Visual Novels aren’t crazy intensive games, but they’re games nevertheless and you go through the same things you would while making a VN’s code as you would a normal game: Having to troubleshoot code a million times, getting music, art assets, voice acting if you’d like, and all in all, it’s been fun. It’s definitely something I want, and plan to do again, but this first small game I’m doing has had so many ups and downs, and it’s only been a week and a half of working on it! But I’m finally at the point where everything that needs to work in my script works, and I can move on to making music, and sending the asset list to my friend who’s doing the art. Yay!
There are so many useful things I’ve learned from this experience. Like, a lot of things I thought were broken code was me being a derp, and I’m lucky enough to have friends who know the python programming language who can help me out with things. So I showed my code to my friend, and he helped me so much with figuring out how to organize things more efficiently! The Ren’py forums are a good resource for asking and getting questions answered, but at the end of the day they’re mostly going off of what Ren’py says to do instead of using knowing python language to make the code a lot more streamlined. I learned a lot I’m going to take into making other story based games in the future and I wouldn’t have without asking for his help, so yet again another reason why my friends are awesome!
I’d like to make a list of the road bumps I hit along the way of doing this first coding outing, to both document what I’ve been going thorugh, and to hopefully help anyone who decides to jump into making a visual novel if they happen to stumble on this post! So I guess this is my development blog post of sorts, for now, because I’ll keep you all posted on how it goes when I have ot add in music, sounds, art, and hopefully finish the game! It’s a small project, so I’m hoping it won’t take too long…but at the same time, I’m dreadfully nervous that I’ll go to add all of those things and break my code somehow, fingers crossed that doesn’t happen XD
Things I learned while coding my first VN:
- Jump statements are probably the most important thing you can use. There were so many times where I thought my script was broken, only to find I hadn’t set a jump statement to jump to a label that tallies points. So the logic of the script kept on jumping to the ending that was right after the block of text when I really wanted it to jump to a points tally section to trigger evaluating points, so it could calculate what ending the player would get. Now I just use jump statements for everything, it makes life so much easier!
- Organizing your script was so important! There were a lot of times that I was rewriting things, and trying to figure out where I wanted to put what. If I had organized, and planned my points system, and how I wanted to write my script better, it would have gone smoother. For me, I know that’s definitely a learning form trying it ordeal, because I wouldn’t have figured out how I wanted to organize it if I hadn’t written it the way I did and went through this hurdle, so really valuable lesson.
- Make sure all of your points are the value you want them to be! I ekpt on trying to make the bad ending in my game trigger, because I had every menu labeled with the points in a sequential order. I hadn’t done that on one of the menus – the choice I was making that I thought was the lowest point value was really the middle path for the ok ending, and if I had actually checked that instead of skimming over it thinking the menu was fine, it would have made my life easier. And on that note…
- Always check your work! So many things I did were just me not checking every aspect of my code. After a certain point, I double, and dripple checked everything because that was better than having to comb through the script a bajillion times…which, I had to do anyways because that’s just a fact of coding lol.
- Another really valuable thing I learned was you don’t always have to use >= statements to evaluate points. On the Ren’py Forum, they always say have your points evaluated with a >= but my friend told me you can totally just evaluate if something it < or > and in my opinion, it just makes the coding make more sense, and skips over a lot of steps for the coding work. Else statements are really nice in that regard, too! Instead of having to figure out 3 point values, you can just say “If these two things are false, do this” and it’s nice haha. Learned that way later, when one of my elif statements was triggering the ok ending every time because I had set it to evaluate the threshold for the bad ending. So had to change that to just evaluate if it was < something and then use an else statement…and I hope that made sense XD
I’m so pumped to be done with the coding section of the game! Now onto music and sound effects. I told myself I’d be done with the coding by the end of this week, and I met that goal, so woo! Of course, I didn’t think all of this troubleshooting would be involved…but live and learn!
I’ll keep you guys posted on my next set of progress