industry practice - game building in ren'py

 Game Building in Ren'py




This blog contains all documentation of building our game within Ren.py. This involves our testing and messing around with the software, learning new techniques and also coding our game from start till finish. We as a group all equally worked on coding our game, each giving each other different roles and responsibilities within the coding aspect.

Katie, our director, was in charge of the majority of the coding. They input the entire script into the game, as well as coding things such as the different choices and routes. My job was import and code in all the sprites, expressions, transitions and music. I had to make sure all the scenes looked nice and that sprites were displayed properly, as well as making sure every scene and sprite transitioned into one another and there were no overlaps or glitches. Louie was in charge of the UI and Home screen, and was tasked with coding the UI screens and also changing all the assets such as text and option boxes, as well as changing the text font. 
We worked on the coding portion of our game as a group and divided our tasks equally. We worked on call together for long periods of time and each helped one another when we were stuck and constantly sent our workback and forth to make sure it all went well.

Testing and Experimenting in Ren'py


Before we started working, we began experimenting and testing different things within Ren'py. We didn't know how to use the software, so we spent a few hours experimenting with the software, learning what different codes did and figuring out how to change and import certain things.


These are screenshots of me experimenting with fonts, and learning how to import them into Ren'py. Ren'py only accepts certain types of font files, ttf (TrueType Font) being one. To change the font you must go into the gui.rpy. Here, text colour, size, font and placement can all be altered.




We also experimented with changing backgrounds and sprites. We found out that UI assets and home screen assets were in the gui folder within games files, and the background images for the actual game and sprites had to go int the images file. This is because Ren'py only scans for images for certain things across specific files. As well as this, we also learnt that naming files was very important too. For example, background images had to begin with bg, so that the game could register what type of file/image they were.



We managed to change the home screen, and also later learnt how to change the text and placement of buttons on the home screen too.

When we had familiarised ourselves with the software and learnt the basic controls, we decided to begin coding our game. Before we properly began, we also downloaded a software called Visual Studio Code. Beforehand, we were using Word to manage through the coding documents. This however was very inefficient, as word isn't designed to be a coding software. We also downloaded an add-on for Visual Studio that allowed us to share files with one another, allowing us to all work on the script and coding at the same time as one another. This was incredibly useful, as it meant we didn't have to keep transferring game files to one another and updating it on our OneDrive we had for our group.



Beginning Coding - Coding the Script


The script coding portion for our game was worked on by Katie. They worked on coding all 5 days of our script into the game, as well as the choices and python. Katie worked on this overtime, and kept us updated along the way.  At this point in the game, all that would appear is the text boxes and options. There were no transitions between scenes, backgrounds or character sprites, as it was my job to import those.


When they were almost done with importing the script in, I began starting to add the sprites, assets and backgrounds via our Live share Link on Visual Code which allowed us both to work on it simultaneously.


Coding - Adding Sprites, Transitions and Music

Now it was my turn to add in the sprites, backgrounds, transitions and music. These are the things that really bring the game together, making it feel complete and bring the storytelling together. With a variety of different sprites, it is easy to tell emotion through the text displayed, as their are sprites with expressions to help audiences infer the tone of text. As well as this, backgrounds and music can also help to infer feelings and emotions. These are all really important parts of the game so I wanted to make sure it went well.


I started by importing all our image files into ren.py, as well as our music files. This included sound effects, background music, and all our sprites and backgrounds resized to fit our aspect ratio. We keep everything organised in designated folders in order to not get overwhelmed with files and work.



When everything was imported, it was time to begin coding them in. For sprites, coding them to appear and disappear is quite simple. the show command shows an image. the at command shows the placement of the sprite (these need to be set up manually at the start of the script with labels as shown below). The with command allows a transition to be applied. This process is relatively simple, but very repeptive. As we wanted out sprites to look like they were talking when their text appeared on the screen, I was constantly coding in open and closed expressions in for each time different characters spoke. This took a long time, but I think it created a much better effect than of a sprite with no expression changing or talking pose. 

When the sprites and backgrounds and music where in the game, it changed the feel of the game completely. It started to feel like it was really coming along! There were still a few things we needed to tweak and change, but we were happy with how our game was coming along!


When choosing the background music, I made sure that all of it was 100% free use to make sure we were following copyright laws. I used a website called Bensound.com, which houses 100s of different music to use. On the website it confirms which songs are copyright free and free for commercial usage.

Bensound.com


Coding - UI and Aesthetics 


Next, it was time to update the UI, Home screens and other small tweaks like fonts. This was mainly done by Louie, but we all worked in a call together as he did this, helping and giving feedback. Katie and I also went through the script simultaneously changing small things and making sure everything looked good. Once the UI was in place, all we had left to do was import a few missing backgrounds in certain areas as we were still waiting for them back from Edward. I ended up making some of the missing backgrounds instead. (these can be seen in my assets and UI blogpost).




When adding a font into our game, we had to be mindful of copyright protection. Because of this, we used a copyright free 100% free usage font called Catways. We gathered this font from dafont.com, a trusted sight used for finding and downloading fonts.

Catways font : Dafont.com.




Finalising

Finally, after everything was imported we went over a few final things before publishing our game! I made and added transition scenes at the start of each new environment, to show players what day and location the story was currently at for better clarification. As well as this, I also added short descriptions of the different endings when they were reached to make sure the game didn't stop abruptly. I also created a credits page, using assets Louie had made, we worked together to make a credit page. 





Katie also suggested we add a helpful links page at the end of the game, to let people who play our game that help is available if they need it or felt like they related to the content within our game to remain as respectful and helpful as possible.


Changes after Feedback/Testing


After we had completed our game, we conducted both alpha and beta testing. Our alpha testing was completed while our game was still in production, and I have a blogpost dedicated to it. We conducted beta testing after we had finished everything in our game, but we still wanted to gather feedback on things we might've missed or ideas of things we could add or change. I have a blog dedicated to this too. After we gathered enough feedback from people who had played through our game, we once again called and discussed things we could change. We made these final adjustments during Class and also Katie updated our script a final time!


Completing our Game


Finally after everything, we completed our game! All 3 of us put in a lot of effort and worked together consistently to work on our game and help each other whenever we were stuck or needed feedback on something. I am really glad we all collaborated well and communicated with one another through our coding process, as it made this portion go much smoother and quicker than I thought it would! I think we all did a really good job, and I'm really happy with our outcome. There are a few things I would've changed if we had more time, such as maybe adding more sound effects or smaller aesthetic touches like animated our backgrounds or sprites, but I think our game still turned out really well.


When we were happy with everything, we published it to itch.io! A link to our game can be found on my blogpost dedicated to talking about the uploading and Itch.io process.



References:

Anon, Music for video creators - hear the difference [online]. Bensound.com. Available at: https://www.bensound.com/ [Accessed 16 May 2025].

Anon, Catways [online]. Dafont.com. Available at: https://www.dafont.com/catways.font [Accessed 16 May 2025].

Comments