Glass Bubble Week 1
This is development week one out of eighteen for Glass Bubble. If you don’t know what I’m talking about, you might want to read this post first.
A quick description of Glass Bubble is that it’s a narrative-focused game where you play as a wandering reaper whose job is to kill those who are supposed to be dead but still living.
Initially, I wanted the game to have combat in it, but after watching Egoraptor’s Sequelitis episode about Zelda, I questioned why I even wanted combat in the first place. Due to the narrative focus of the game, I didn’t feel like combat would add much and that it would take too long to implement. So, I ripped combat out entirely. Instead, Glass Bubble will be a point and click game.
I also realized while I was planning this game that creating assets for this game will take forever, so I will make a demo of the game that is more or less like one of the chapters in the game. This way, I can concentrate on making the assets (music, art, and story).
Anyway, this week I implemented hard shadows and player movement. Thanks to a long weekend, I was also able to do some additional work and I finished a draft of the script for the first person you talk to in the game, imported a lot of utility code from past projects, and wrote a partial dialog UI implementation.
Hard shadows was probably the most annoying thing to implement this week. I looked up a bunch of tutorials online on how to do it, ended up really confused, and ultimately got it done with help from my very awesome friend.
The implementation works by creating a mesh for each object that is the shape of the shadow. As you can see in the image above, shadows don’t check whether or not it will overlap with another shadow, so they have a tendency to overlap and cause the shadow to look darker than it should actually be. It also only works with convex shapes. I don’t think I’ll fix these problems though, as they won’t cause any problems for how I plan to use them.
Player movement using the keyboard was a fairly straightforward matter. I implemented some support for mice as well, but unfortunately it doesn’t feel that great yet.
I imported a component lister script that I like to have in case I have trouble finding a game object that has a certain component. It’s actually originally a script that was made by this person called Angry Ant, but I made a lot of useful modifications to it. You can find my modified script here.
I also brought over a library that I wrote for the game Port of Call that imports scripts from the engine Ren’Py for use in Unity. I also made some improvements to the library, like removing the requirement for Ren’Py files to be in a Resources folder.
With a good amount of coding already done for the game, I decided to start working on the script for Kelsi, the first person that Wanda meets in the game. Kelsi is supposed to be this caring, generally energetic, and nice person who works on a farm out in the woods. I hope I am able to express this personality even though you only meet her briefly in the game. Despite the fact that you only talk to Kelsi briefly, I was amused to find that after I had finished the draft, the script was already 130 lines long. Clearly, the dialog will take a long time to write. Here’s a small snippet from the draft:
Kelsi: You’re lost, aren’t ya?
"The girl strikes a pose, lifting the hoe to rest on her shoulder and pointing a finger at Wanda with her free hand."
"Before Wanda can reply, she talks again."
Kelsi: I knew it! I can see it in your eyes.
See you at week two!