SpeakEasy -- my first game jam


Hello! I'll be talking about my process in participating in first game jam, Mini Jam 186: Evolution :) 

I hope that it showcases well the process of game development and my motivations, because I found this a nice process and want people to see that and feel that it's possible for game development to be an expressive process :] 



I got into this because I saw a bug some code my brother was writing one night, and asked more about it, and eventually got to know about the game jam: "Evolution", "failure is progress" 

My game, SpeakEasy, was a unification of two concepts -- one of them was the game jam's theme, while the other is on... social situations and small talk. 


As someone who finds it hard to figure out what to respond when asked questions like "how's life", I find that something I want to express is the difficulty of figuring out an interesting response to that question. I think it's too boring to just say "same as usual" or whatever, but I don't usually have one single thing that occupies my mind for some time, but instead a lot of different things. 


Thinking about "evolution", I imagined using a genetic algorithm on text -- the concept is kind of like an AI generating a response by having a bunch of candidate responses, then deciding how well they work and discarding the bad ones, while combining the new ones to try to get better responses, which mimics the process of evolution. 

And "failure is progress" made me think about "survival of the fittest". 

If it were merely AI generating a response, it's kind of boring. However, in the "deciding how well they work" step, if it were humans instead deciding... the algorithm's output will reflect the human's judgement, the human's personality to some extent. 


And it would let the player experience the process of thinking through thoughts and trying to refine (/ "evolve") a thought to something that works as a response to small talk. 


I thought about this idea at night when I was trying to fall asleep, and I realised that I think this is a rare scenario in which I have an idea I like, and I do want to pursue it. And so I joined my first game jam. 



When I first made the game, all I was thinking of was having a genetic algorithm to generate text and let players decide which to discard or keep. As some technical detail for those interested, I use facebookresearch's SONAR model that reconstructs text from embeddings, and did a genetic algorithm on the embeddings. As for the implementation of the genetic algorithm, I was inspired by this research paper https://arxiv.org/abs/2406.05873v1 "Conserving Human Creativity with Evolutionary Generative Algorithms: A Case Study in Music Generation" 


However, when I got the game working, I found it unexpectedly difficult to get a thought that was an okay response. When I deleted thoughts, all the re-generated thoughts would quickly approach each other and converge to be the same. While this is good for a genetic algorithm as it means it has converged, it tends to converge before it becomes something I am satisfied with. This is kind of interesting as it also sounds like converging to local minima in machine learning :) 

So, I added the persistence and randomness settings. Persistence would slow down the convergence, while randomness is known to help AI get out of local minima -- so these were inspired by my experiences with AI and how to make it train well, haha. 

I also added a reset button to restart. 


(I need to admit something... the "randomness" setting... it doesn't randomize the embedding (what the idea behind the thought is), it only randomizes the decoder (how the idea is translated to text). So, when you use randomness and get some interesting text that's not just a combination of some text you already have, this randomly-gotten interesting text cannot be transferred to other ideas that use it. 



Something interesting, though, was that in making this game and looking at the final product, analogies can be drawn that can aid in self-discovery of the process of thinking. 

For example, just like how in this game, the thoughts can quickly converge to something I'm not satisfied with, in real life, I also sometimes think of responses but then keep getting stuck at a single response that I don't like but I can't stop thinking about. And the only way to get out of it is to restart my thinking process (but when others ask me a question in real life and i take some time to think, the more time i spend thinking, the more awkward it gets aposidkfhnpawoeskfdh, so i'm also hesitant to restart) 


I hope that, through this game, players may be able to see from the perspective of a "socially awkward"(?)(not sure if that's the right term though) person when it comes to small talk, or maybe discover more about themselves. 

My game can be downloaded here: https://qwerkeyemo.itch.io/speakeasy ; Or I think it might've been attached to this devlog? I don't know it's the first time I'm using this platform. But I've only tested the windows download so far, so if the game fails to run on mac or linux, then you might want to inform me and I'll try again (the export was rushed in 10 minutes  oops because I was sharing the computer with my brother, who is working on a different game for the game jam, and it was approaching the deadline, and I didn't want to keep him waiting too long) 

Though it can only run if my computer at home is connected to internet, not overloaded, and running the webserver (since decoding the embedding to text requires some computational resources and isn't very convenient to do without needing to run python code). If it doesn't seem to work, you can discord me at @unhexhexium. (with the full stop!!) (i think i set my discord to allow messages from everyone) 


Lastly, I hope that this was an interesting read and hope that this was a beautiful game development process for you all :) 


P.S.: Additional tidbit of information for yall: the reason why I didn't publish to web is because my home computer running a web server is using http and not https, while most use itch.io as https. A https (secure) website cannot use http (insecure) things (it'd be misleading if they could), which is why connections to my computer to run embedding-to-text won't work in my web version of the game :( 

P.P.S.: I played the game myself and my high score is 1 HAHA (so I guess I'm not great at it) (my brother got 3 though, and 3 is the highest) 

P.P.P.S.: I'm looking at it now and kind of cringing at the... (I'm not sure what word works here... babyish?) design of this game... I'm not great at designing 😭😭😭 

P.P.P.P.S.: Also I keep forgetting to say this, but my brother helped me kind of significantly with the game engine part -- since i didn't know how to do collisions or connect events at the start. 

Files

windows.zip 33 MB
3 days ago
MACOS.zip 60 MB
3 days ago
linux.zip 27 MB
3 days ago

Get SpeakEasy

Leave a comment

Log in with itch.io to leave a comment.