Deep Dive - COGG Online Prototype and Play


I couldn't be at the COGG Online Prototype and Play, but I decided to showcase the game anyway and just write up the long form of the presentation and leave it in the discord channel for people to read at their leisure. Here's the presentation verbatim (minus some event-related niceties).

--== Game Design Discussion ==--

The over-arching goal for the game was to make a game without any graphics that didn't feel like it was missing the graphics. Not because I have anything against graphics, I just can't draw.

The obvious solution was an audio-only game, but that would be complicated, so I did something completely different.

I've always liked point-and-click games, so building an narrative-heavy experience appealed to me, and using text as the graphics was (to me) an obvious bridge between zork and king's quest.

Very early on in the ideation phase I considered things like using different fonts or different colors to convey theme, which largely fell by the wayside in favor of the super-minimalist word-art-on-black aesthetic in the final game. That was sort of a lucky coincidence, as less work resulted in a style that lent itself well to the "terrifyingly alone in the head of a panic attack victim" story I ended up telling.

The "text popping up everywhere and getting in the way" was a very early concept that did make it into the final, as well as animating individual letters int the "Blow on the tea" text that tried to resemble steam wafting up from the hot tea. And of course I messed up the collider on that thing so it's hard to click.

One idea I wanted to get in but ended up cutting for time was the concept of a conversation minigame. Imagine a person (made of text maybe, or not, it doesn't matter) at the center of the screen, and a cylinder that surrounds both them and you, and projected on the cylinder are dialogue options for how to proceed in the conversation. Some are large and growing, representing thoughts that you can't get out of your head like "omg you smell terrible", but probably shouldn't say. Others are small and nondescript, representing a response that requires perception and thoughtfulness to come up with in the course of a normal conversation. The panic attack scene was the closest I came to executing this idea, and while that was satisfactorily hectic and frustrating (thanks also to the music - thanks Javier!), there aren't any repurcussions to choosing one answer over another, so it's kind of a cop-out. Illusion of gameplay instead of actual gameplay.

--== Story Discussion ==--

The theme of the Game Jam was "Community" and because I like being difficult, I decided to be as obtuse as possible and wrote a story about a person discovering a connection with their grandmother despite them being separated by time and space (and death, but that's only alluded to). So really there's three communities at play here: a work community that is suffocating and toxic, a family community that has lapsed but is always there, and the dramatically negative effects of being alone (lack of community) at a difficult time in your life. Anyway, I'm very happy with the story, but trying to get clever with the theme DID NOT win me any points with a lot of the people judging the game jam. About a third of the players who left comments (and 1 of the 4 judges) seem to have gotten the gist of it, so while I don't regret the decision, I definitely did not successfully execute my intentions.

Also, the name of the project was named Herbal Tea Simulator as a joke more than a week before the theme was introduced, so I spent some time just sort of staring off into space wondering how I was going to reconcile those things.

--== Story Tech Discussion ==--

The story is written in ink, which I'm still grappling with, to be honest. It's in sort of an uncanny valley between text and code that I just have trouble looking at. I don't regret using it, I just don't feel like I have a great command of it yet.

Ink has lots of interesting things like functions and external variables/engine integrations, but I ended up not using any of those for this just because I got tired and chose sleep over fancy stuff.

There are loops to generate "rooms" in the game that return the player to a familiar set of interactive elements. Only to a point, though, as there is a lot of "click thing, thing disapears forever". That's came out of experimentation, and I ended up using that for two reasons: 1) it drives the story along by getting rid of "click thing three times to make sure there's no more content" and 2) it reinforced the idea of being out of the world and inside someone's head, where they only perceive things that are necessary in the moment. The big game design joke there is that the only 2 things that persist past their usefulness is a trap that gives you a bad ending. (sugar and blow on it).

--== Game Tech Discussion ==--

In terms of displayable objects, ink has choices and responses, and that's pretty much it. Responses can have "tags", for doing things in the game engine like playing music or something, but choices don't. Unfortunately, I wanted responses to be largely static (subtitles) and choices to be super dynamic, so I had to roll my own tag parser. You can see the markup all over the ink file linked above.

The main tags were anchors (placement in the world), shift(offset from the anchor), color and size (which I didn't end up using, but they're there), actions (which I also didn't end up using, but would have done things like a camera shake when drinking hot tea), and special controllers that added a script to the object at runtime (like the unclickable text in the panic attack, that's just a script that moves it onClick instead of execuing the choice).

Anchors were a way of placing things in the world that I didn't really like. Imagine a 3x3 grid of anchors set back from the camera, and another centered anchor half as far away. Just about everything in the game is dropped onto one of those 10 anchors, which was super easy to prototype but didn't end up looking like I wanted. Instead of fixing it with some positioning and alignment system, I just added the "shift" tag, so thing could all be attached to the same anchor and be more "next to" each other.

There are a couple specialty anchors, but the most interesting one is "everywhere" which takes the prefab that is dropped onto it and duplicates it and then makes it appear and disappear at various spots on the screen. Going further with this system would involve a lot more specialty anchors doing specialty things, I think.

Choices have a default unity prefab that is just a textmesh object and a collider for registering clicks, which also made prototyping easier. It sets two delegates: a default click response function (send the choice index to the ink engine) and a default display function (put the literal choices text into the textmesh, parent it to the specified anchor, and show it on the screen). Specialty controls just overwrote those two functions and it worked automagically. For example, most choices used 3D text (simple helvetica plugin) instead of the default textmesh. And the teacup also overwrites the click response to first animate the object toward the camera, play a sound effect, and then send the choice to the engine to redraw the scene.

Speaking of, redrawing the scene every time you click something is one "bug" that I kind of wish I had fixed. All the code is there to search the scene for choice display elements and reuse them instead of destroying them every time a subtitle appears and recreating them when it's time to interact again. Really I just had to hook it all up and bugfix, but I got bored and skipped that feature for this project. Just as well, I still don't think I've figured out a satisfying solution for the problem of "it looks like I should be able to click on more things while the subtites are up".Maybe just dim the screen, but that feels like it would kind of suck. /shrug

--== Art Discussion ==--

Art, right? Yeef.

Originally I just wanted to have text that stood there or moved around a bit. But the more I thought about that, the less excited I got about it, especially after looking at the Unity TextMeshPro options. Super flat, super boring, and super busy when not boring.

In another universe I might have gone straight to blender to make 3D text, but in this one I found a unity plugin called Simple Helvetica that made super-basic 3D text really quick and simple that could then be translated and scaled like normal meshes in Unity. That was exactly the constraints on full 3D modeling that I needed, because it led to the sylistically simple word art you can see in the game.

The first thing I made was the teacup that used the P as the handle, and put the word TEA in the U. Man I was so pleased with myself when I made that, you don't even know. The fridge was next, then the cupboard. I wish I could have done more with animations, but it's all super bespoke translations and rotations using DOTween scripted sequences, so it took a long time for anything beyond just "rotate the fridge door to -90deg on the Y-axis". Another spot where a real 3D program would have been useful.

The thing I disliked most was the Computer. It sort of conveys the idea with the O being the monitor, and the rest of the word is kind of the desk, but I don't think it ever really worked right. It was a throway text line, so it wasn't worth putting more time into. Television with the V as the rabbit ears antenna is a bit better, but still kind of a stretch.

BEERS felt good in my head, but was a huge pain to place in the scene. Using blender maybe it would have been easier to put the letters on the top of the can and rounded out the extrusion of the letters so it read as beers from the top and looked like cans from the side. As it is, they're sort of hard to read and sort of hard to see as a 6-pack, and that's after A LOT of futzing with it.

Positioning "real" things in the scene was also NOT IDEAL. It raised lots of great questions like "Why is the TV floating in the middle of the room?" and "why are the beers bigger than the fridge?". I had an idea for zooming in on a choice to imply walking to the fridge before opening the door and spawning in the fridge contents, but ended up cutting it for time. It's not terrible as-is, just a little jarring. Err, I mean, it's a uhh, an exercise for ... your imagination! Yeah, that's it.

--== Music Discussion ==--

Javier's great, he threw the game tracks together in record time and with just very cursory direction "the player is losing their mind, and the music tracks them as it gets worse but also sometimes better". That's terrible direction! It's not even what the game ended up as! Anyway, it turned out great and really brought a lot of much-needed life to the game.

--== Future thoughts ==--

There's a lot of polish that would go into moving forward with more games of this type. That said, there's an elegance to the minimalism that I'd want to hold on to.

Some ideas:

Polish:
 - It's pretty easy to make 3D text in blender, so that would open up a lot of options for building objects with fonts or mesh modifications that are more illustrative of what they represent.
 - Objects shouldn't disappear after every choice, especially when they just reappear in the same place for the next choice.
 - I'm sort of back and forth on materials for the text objects. It would be welcome on some 3D objects that need to stand out (or together).
 - Choices need to highlight-on-clickDown and executing after a short delay so that it would be more clear what the system was responding to, especially when the player is trying to click small things on busy screens. I don't think it can be execute-on-clickUp just because trying and failing to click a specific thing is the only skill mechanic in the game :)/:(

Better:
 - There isn't technically a game anywhere in there. Not dying at the end and maneuvering around the panic attack are neat, but I'm not confident that has legs to survive a bigger game.
 - Having a better space-organization system to replace anchors would be nice. Maybe specialized scenes with unique anchors, or a system that places objects in the scene and does some magic to avoid overlapping. That sounds hard.
 - It currently doesn't support sub-scenes, so like being able to "sit" at a computer and scroll through a list of choices (like displaying web search results) or checking your mail, or whatever the player is doing.
 - Conversations system for adding more characters.
 - There's no sense of space, currently, which helps when you're in your head but isn't great for the stuff set in the real world. Being able to move toward a clicked thing would help out a lot for putting the player in the world.

Get Herbal Tea Simulator

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.