I basically just create a polygon and move the vertices around. The points move around more or less based on their heat.
The most difficult part was finding a way to determine the players progress, but I found a polygon clipping library that allowed me to compare areas between polygons
Also, I made the game in a month as a challenge to myself
Here's a video I made explaining some of my process and a mechanic as an application for a programming school.
It's in swedish though, sorry about that
What went right
We, a team of two, set out to make a story game. This was our thesis project, and we wanted to answe the question "does the design of UI affect how people make moral decisions?". We chose a story game with very clear moral decisions to get as clear results as possible. However, due to creative differences, I chose to not continue working on the game after our tuition had ended.
In any case, the result was an interesting and immersive experience, but the results of the study were mostly inconclusive. There were two versions of the game. One where your current "karma" level would be displayed clearly, and every choice button was accompanied by a button with a correspondingly "evil" or "good" design (whose designs were informed by studies). The other version had the same design for each button and was missing the karma meter. In the first version, we saw a very slight bias for people to motivate their choices simply based on being "good" or "evil", and in the second version more people explained their motivations with sympathy for characters or more complex answers.
During the project, I made all of the systems and put together the story graph. I would have liked to show you some prototypes of my work, but there was little documentation done during the process. There had to be a lot of different ways the story could progress. One of the ways was an "action", which is kind of like a blackboard value. Any action could be set at the end of a dialogue, and in the future, the story could branched on whether or not the value was set. For example, the blood blessing is controlled via a tag. If you have enough negative karma, and you have the pet, the forest king will offer you a blood blessing. Later, when a certain battle is about to begin, you will be faced with a much easier battle because of the tag "bloodblessing". This system allowed for great flexibility when it came to branching. However, there were many places where it was lacking. For example, adding a numerical tag was not possible. That would have allowed for the money tag to be an "action" instead of a unique value.
The interface for a story section
The story graph
Some work has been done on the game since I left the project, but a vast majority of the programming was done by me
We had just been taught Unity in our programming class, and I couldn't wait to make something. So I started by making what I'd imagine a lot of people make: space invaders. And I just wanted to add more and more and more, so I did. I added a laser, 25 different enemies, a level select screen, bosses, you name it. Talk about bloated! Eventually, some time later when I'd gotten better at programming, I revisited and made an editor for it, because that sounded like fun. Unfortunately, I didn't decide to go with any sensible serialization, and I wrote my serialization in some combination of xml and plain string processing. I can't do anything with that code now, because of how old it is, but it's a wonder it worked at all!
My main focus here was getting the timing to register correctly. This involved putting the key presses in a list during a separate update loop and processing them all during a different update.
The editor works, and the levels can be saved. I would have liked to make a custom file type to store both the map data and the audio file. As of now, the game can be played, and songs can be created, but there are many issues that would need to be worked out. Still, as a tech demo, it works!