Recently I started getting into watching streamers more often (thanks to the pandemic). I felt as if there wasn't really that connection between the audience and the streamer in Visual Novel games. That led to the creation of this project.
It is also inspired by polling style quiz games (like Kahoot).
What it does
RenTogether allows for a host to host their game to the public and allow the public to give their opinion on the choices that appear in a choice-based game.
The above use case is more of a workaround, though. The original plan was to have some sort of image recognition algorithm to automagically choose options from the window and provide them to the user. However, due to my team leaving and the infinite possibilities on what buttons can look like, I decided to create this input-based approach.
The good news is that this doesn't have to be the end. Thanks to some creative folks at DropBase they have created a platform for me to mix in the result from all the hosts into one database. This will become valuable training data for a choice-based approach in the near future!
Another approach was to apply hooks into games created with RenPy (origin of the name), but this was scrapped to allow for the aforementioned input-based approach (the code still lays undead in my local repositories ;) ). This can also become another possibility if I were to release this as a fully polished project (which is the plan).
How I built it
RenTogether was built using python, with a side of python, and a generous serving of python on top. I originally used ctypes when developing RenPy hooks. This led to me using python for the backend of the input based version as well. I made a very simple GUI as I was working alone and only had 36 hours, but I used the keyboard module, along with some others to bring the functionality that I wanted.
The server (RenServer) was also built using Flask and SocketIO and deployed using Azure. I actually didn't have any azure experience prior to the hackathon. It was a bit hard to get used to, but I was able to get up to speed once I downloaded the CLI. I also hosted it using Domain.com.
Challenges I ran into
I think my main constraint was time. I had originally intended on leaving the web app to some team members and focused on automatic choice detection. However, not everything can go in your favor. I had to skip out on many of the workshops I was interested in, but I think that I learned the true impact that team members really provide. There were many points throughout these 36 hours where I was fully intending to just give up. The motivation was low, and I had a lot of work to do. I think that I will really carry this experience with me in future hackathons if I ever have the horrible idea to work solo.
Accomplishments that I'm proud of
I am proud of what I was able to create in 36 hours by myself. As I stated before, I almost gave up a quarter of the way into this hackathon, but I decided to keep working and I produced a product that I would personally try out myself.
What I learned
I had actually never used socketio before. It was quite cool, and I think that I will totally be using it again. I also had no experience with Azure or their workflow, so I'm pretty proud that I was able to get that down so quickly.
What's next for RenTogether
I think the first and largest step will definitely be accurate data collection. After that, it's all going to be about producing the automatic choice detection bot to make RenTogether a fully-fledged product.