Mama is Dead: How it's made
What should we expect in this post?
I would like to discuss what happened during the following chaotic stages:
- Conception
- Planning
- Friday: High Risk
- Saturday: Paving the Base
- Sunday: Content
- Extra: why the art stage breaks and how to fix it
- Extra: Character background
Conception
What the fudge do I do with comfort?
Idea 1: Comb Fort
It's a fort protected by messy-haired knights! |
You’re a knight trying to save the king trapped from the castle fort. You see the fort and it’s filled with intimidating knights. But the kingdom has sent the wrong person, you’re a hair stylist and all you see are the messy hairs under their knight headgear thingie. You comb them when they aren’t looking.
I've been trying to ideate stuff from this for almost an hour and everything seems boring. So I had to think of another idea because this was not going to be fun.
Idea 2: Game Jam Mama
On the right is the feed in the scope stage. The shapes on the left is what GitHub stage was supposed to look like. |
This. This seems really funny and meta. I don't really need to polish the features and I could just experiment with different gameplays. The gameplays are going to be shallow but I wanted to deliver a story to make it a unique experience. Since I found the concept so hilarious and doable, I'm sticking to this concept. I wanted it to feel surreal and absurd. That's my artistic motif!
<tbody
|
Planning
So I have 47 hours left. That's a lot! I really think planning pays off a lot so I plan really hard, and I have to know my priorities. One of my key goal is to deliver a working product. I don't care how awful it is. All I need is to finish this. When I reach a goal and I have to do something afterwards, I have the following questions in mind:
- Am I fixing a bug?
- Is the bug really that game breaking?
- Am I adding a feature?
- Am I done with this section?
- Do I still have more time to do my next task?
These questions helped me a lot, and they will play heavily in later parts of development.
Now that my thought processes of doing tasks is out there. I should also put out my game layout. My game layout is bigger than the end product, but I knew I'm going to cut off several of these things later down the line. So here's what Game Jam Mama was envisioned (in terms of sections):
- Startup
- Announce theme
- Recruitment: You need to recruit at least one person from different disciplines. You can't have too little or too much. This is the risky part. this involves dialog and I have never made a dialog system. This project would push me to do the dialog system.
- Scope: Mash the button! You fight everyone else to keep the scope down. (I found this part boring, so I made it both ways.)
- Trello: Drag the right things in the right places. This will be timed to keep the pressure. I'm not yet sure how to implement this during the time, but nevertheless, I kept it here. But as you all know, it 's not in the final product.
- Zoom: I wanted to have buttons all around that turn on and off randomly and you have to keep all "right" buttons toggled on. Pressing some buttons close some buttons. Internet connection may reset and some buttons "dependent" on the internet may turn off. I already have the technology for this, which was both used in Soulwork and Depreciation. My risk with this part was that I don't really know how to design this. This never got the cut.
- Coding: Step on bugs. It's really easy to implement.
- Art: Follow the line seemed boring but thematically it fits with the game so I have to make this. My primary risk with follow the line was how would I know if the player was in the line without burning your device.
- Music: It can only be a rhythm game. I already have made a rhythm game in the past so I'm not sure with how well can I make it in other engines or environments. My primary risk here is parsing the files and composing which takes time.
- Writing: You have random sentences and there would be a spot for you to add things. I did not have time to make this.
- GitHub: Using the things in Writing, I was planning to do this, but with more abstract things and a lot more blanks.
- Itch: I wanted to make the player feel like they actually made the game. You will be asked what's the game name and the tag line. I remembered that scene in Animal Crossing : New Horizons where the Tom Nook asks you for the island's name. I wanted that experience but everyone would scream Game Jam Mama. Your choice for the title won't matter, but at least the tagline's there.
- Ending: Based on all the data collected from previous game sections, I wanted to give you a preview of everything you made. I did not want you to feel like that it was all for nothing. Everything has to culminate and come together at the end. I wanted it to be personal.
Now that we know what our game should look like, we start with our high risks.
Friday: High Risk
Music
I'm too poor for FLStudio and such. |
The first thing I had to do was music. I can't estimate how long it would take to compose songs. I have never composed a song. I have never used an Digital Audio Workspace (DAW) ever. So it was the first thing I had to make.
Behold! This shall stand as empirical evidence of when Beathoven learns about Vocaloid.
I saw this thing called Amazing Bubbles so I'm going to use that as primary beat. The name sounds cute.
I also saw FatCheese! The name sounds funny, so that goes in the melting pot.
With a little bit of calculated mixing, and years of music school (0 years): I have been the midwife to the songs of the archangels guarding Eden. Take a look!
I wanted to add changeable BGM as an accessibility feature. I'm sorry I wasn't able to do that. I can't let you turn up the volume crank and ruin your ears as much as you love my obra maestra. Below's the MP3 file for the GameJamMama song. I don't know why would you want this but it's there. It's open source, anyway so feel free to uhh... do whatever you want with it. I guess. (itch.io's audio element don't work on Google Chrome, huh)
Source: https://media.githubusercontent.com/media/TurnipXenon/GameDevMama/master/Assets/...
Art assets
Thank you Harrold for your wonderful HarCat!HepCat's |
I'm not really an artist so I had to make the bare amount of assets. I made one character sprite for the overworld. I borrowed Harrold's HarCat. I made the tiles for floors and other assets. I'm anticipating more assets later, but I have to stick to making a working product first before I go that route.
Recruitment
This was my highest risk stage. I have to make the top down movement. I have to make the character interact. I have to have the dialog system. I wanted to do this in order. I was able to finish everything up to character interaction. My dialog system was not yet functional.
Saturday: Paving the Base
The dialog system was a pain! I was able to set it up but then I knew it was going to be a liability in the long run. I may continue making content and do my best to work around the dialog system. I can also refactor the dialog system. I did the latter. The refactor was not really on par with what I would like, but it would really reduce all the work I had to make for later parts of the game.
I made characters into ScriptableObjects which was extremely useful. Once I had a top down character object in the scene, I can simply change the Character attribute of that object and now we have a unique character. This design choice really helped me during the final hours.
One sidetracked thought I found during designing the dialog system is how my system doesn't work well with multiplayer systems. For the recruitment stage, the control system was made to be friendly for multiplayer systems. For latter iterations of the stage, I put the input receiver not on the actor or game object, but on a separate manager. With this design, I can interfere with the input system's top down control, and redirect the inputs into the UI or dialog system. The design seems to fall apart when you're making a multiplayer game, but.. I'M NOT MAKING A MULTIPLAYER GAME. I shouldn't think about how bad my current design is. I have to move on.
Copy! Paste!
The second stage I made was the scoping stage. I had to adjust the system such that it had the input receiver in a separate manager. I checked a previous dead team project I had, and took inspiration for the feed on the right. For the score, I only had to take the vertical position of the object, square it, and deduct that value from 100.
Sunday: Content
The bulk of the work was already done since I have the base. It was content creation time. I estimated that each stage would take two hours each to make, and I would finish around 12 noon before wrapping up.
Copy! Paste!
Well, it's actually scene duplication. What I really want to point out here is the heavy reuse of previous systems to create new ones. They all seem drastically different but they all are made of the same building blocks. It's now all up to design.
For the Coding stage, I only had to make a Bug object, which informs a ScriptableObject that they died to keep a score. When the game's over, the parent that childs all the bugs counts all its children and that's the score penalty.
The first inkblots visibly reproducing in during the first few seconds of the Art stage. Sketches of the spot where the ink blot should reproduce and when it should not reproduce. |
For the art stage, I had to be more creative and planned. As you first enter this stage, you see a single ink blot. Once it awakes, it can reproduce another ink blot. Each ink blot can produce only one ink blot. The ink blot delays reproduction when it reaches a border I assigned. Once it moves and reaches my other assigned border, they destroy themselves to not crash the game with the amount of objects in the scene. So how did I know if the player was in the ink blot. Ink blots report if they're overlapping with the player, but they also report when they leave. I count how many inkblots are overlapping with the player, so if the count is zero, the player was outside the range. I could have done it using the player instead but I don't want to modify the script for the player.
Composing the song in osu! |
For the music stage, I took HepCat's game logic. I had to compose the song in osu!, and I had to manually parse the notes since there were only 52 notes.
It was around 11 AM already. I had to wrap this up already.
I duplicated the scene for the Scope stage and started from there to make the Ending scene. I then had to test out if each stage connects properly with each other, and fixed some bugs along the way. The game was finished at that point but I had two more things to do. Confirm that it works on build, and I had to make the characters. I only had two characters during this points: HarCat the Jazz musician and Alex the database and dance programmer. (One thing I was not able to add in the game was their assigned roles during the credits)
Quick write up of the characters and their roles. In the final game, Yu is Ce and HC is HarCat. |
I had to draw all the portraits fast, and come up with dialogs really fast. I also had to make the dialog for the Scoping part during this time so I had no idea if they made sense during the time.
Then, I tried privately submitting the game before going public. I found one critical bug.
|
The ink blots were not reproducing fast enough so I had to tweak the speed, and rebuild everything.
Then, I made the game public, and I finally got it published!
That was a fun game to make! I really wish I could team up with other people next time, though. LOL
Extra: why the art stage breaks and how to fix it
The ink blots in the art stage are generated recursively. That is, the first inkblot you see creates the next inkblot you see. The game breaks because it cannot keep up generating smaller inkblots. Once it reaches the kill zone, the inkblot will be destroyed so no more inkblots will ever appear. This does not happen in the non-shipped Windows version, but it only happens on the HTML5 version, specially when you are multitasking or streaming the game.
|
To make it work for everyone, we have to do object pooling. Mark Placzek in their article about object pooling goes a lot deeper about this. Anyway, I could have fixed this by keeping a pool of fake dead objects, and reusing their corpses when I need them again. Will I bother to fix the game? Too lazy LOL. Let it be a remnant of the chaos of an actual game jam.
Extra: Character background
Alex
Alex is the first Game Jam Mama character! Wow! That's why he's the one presenting the game. Alex's appearance is purely based on someone I worked with on another term project at the time. I hope he's not reading this. LOL Anyway, he's gag was that I forgot to freeze the rotation. I actually forgot to freeze his rigidbody rotation, so I left it as is. Let the physics do its work on him. SPEEEEN!
I did not know that they had more specific roles that are not seen outside the game. Anyway, Alex is described as the database and dance programmer. He was the one in my term team often looking into the database stuff, so I assigned him as database programmer. Dance programmer cause he speens. I imagine him flossing while waiting for his Unauthentic engine game compile.
Also, no. I'm not doxxing the guy his based on.
I forgot to freeze his rigidbody rotation. |
Ce
I think Ce is one of the last few characters I made. I was in a hurry and I have a script for one of these programmers. I cannot think of something funny for programming despite being a programmer myself. So, uhhh... I have to take some quote-unquote inspiration.
Ce is the Unauthentic enthusiast. I think of her as some sort of a game engine evangelist who wants to flex their skills in game jams to show off how awesome their game engine is. If I had more time, I would characterize her as the character who always overscopes the game for a game jam.
Ce is totally based on (ゆーしえ) YUC'e's macaron moon girl. YUC'e her songs, as I would describe, are sugar in music form. You might get diabetes listening to her songs. Yes. I listen to YUC'e songs all the time. Yes, I love her songs. I listen to Future Cαndy almost everyday. Four out of five of my most listened to songs on Spotify are her songs. Anyway, all I'm gonna gosh about here is how much I love her songs. I don't really have anything to talk about Ce with some context in the game since she's one of my last few additions.
HarCat
HarCat is a placeholder art made by Harrold for HepCat. Does he show up in the final HepCat game? Hmm... Try to find it out yourself ;) I asked for permission to use his fanart (I guess), and tada~ Since HepCat is all about Jazz, HarCat has to be a Jazz cat! They try their best to do music, and they think their music is not good enough. So, he tries to make depreciative jokes about themselves. They think it makes everyone laugh, so they thinks it's okay. But really? Are YOU gonna let them slander themselves. You should listen to HarCat's jazzy music because their awesome sauce, and tell HarCat how good they really are!
Also, the reason why most characters have two roles was due to HarCat. I don't remember why, but I'm pretty sure it was because of him. I scrapped the idea later on because I was running out of time. HarCat was supposed to be a programmer, too. Then, I just changed his other role to Macarena expert.
May
May is the Aberrant artist. Okay, I have to Google search this up...
So, aberrant means "departing from an accepted standard". Sounds like an artist!
Anyway... May is fanart of my friend's unlisted OC. It was like 12 am (12 noon-ish in her timezone), and I was pinging her about I don't have characters. I need characters. Please give me characters to put in the game jam game. LOL So, she obliged and let me draw her OC. I don't know a thing or two about her OC but in this universe, May is an artist who likes to make Attack on Titan fanart. I don't know anything about Attack on Titan except that the music is bop, and I will do several questionable things for Revo himself. I think the aberrant adjective was based on something Attack on Titan lore. Based on my friend, also, is that she loves stationeries. She does traditional art a lot. It would be a kind of challenge to make art for a game from a very traditional art of perspective, huh?
I also checked out one of her dialogue. It says: "I'm May! I LOOOOOOVE drawing! I love drawing grocery stores! Don't like going to Dor-Mart with your toilet paper cahier?". This is inspired by Aeonix's art which I remember someone making an observation about how much often that he draws being in a convenience store or grocery store that he will just randomly find Aeonix in the store ala Miku at the soup store.
Sorry. The actual quality OC my friend has is out of the public's reach. It's like Plato's cave where the real people is her OC and my drawing is the shadows on the wall.
Rob
Rob is the heartless word printer. He may be a robot, but he sure loves writing extremely sad story. The angst. The what-ifs. The forbidden. Anyway, Rob gets worried that being a robot makes him less of a writer. He was originally programmed to write all these boring papers for all these white collar people. He slowly editorialized his reports. Someone did notice this but they grew fond of it. Although, it can get dark, cause ya know: business. But, they loved it anyway! This sparked something in him. Not in a short circuity way. He was inspired that he could be more than just a printer. He could write stories that had the human feel. I'm not sure about the ethics about this, but that's outside of the game jam's scope.
I don't really have external inspirations for Rob. Rob's gag is that he's a robot who makes all these angsty fanfics.
Sticko
Sticko's gag is his a stickman who does lineart extremely well. Uhh... That's it. I'm so sorry for the lack of Sticko lore. LOL I guess his more of a self-insert character like some vanilla power fantasy male protagonist.
Torpedo
Would it be funny if we had a turtle went zoooooom. How can you have that in a game jam. I'm giving you Torpedo, the speedcore musician. They compose fast-paced music with extremely high BPMs like from Camellia (かめりあ) and t+pazolite. One joke I had with Torpedo was tweeting about making a song with the same amount of BPM as the retweets the tweet will have. It's an actual thing that t+pazolite made.
I forgot about what the gag was about being a part-time utaite, and I cannot find any notes about why they are an utaite. Also, yes. This is Harrold's pet turtle.
Trombone
I think Trombone was the last character I had to make. Trombone has no background. I thought about naming them Trombone because their hair was yellow, and the first thing that came to mind was that trombone looked yellow. Are trombones yellow? I'm not even sure. Trombone is a rip-off of the male protagonist Lest in Rune Factory 4. I think one of his weird traits was that he hoarded mixers. Cause... He does 3D in... Blender...
Wade
I'm going to be completely honest. In the code, it says "chirp ghost writer", and I have no recollection about what the heck "chirp" stands for. Wade is a Chirpper microblogger. Wade upholds dril's philosophical chirp thinking it also applies to writing.
So, Wade's motto is: "oh, youvve written a few academic papers on the matter? cute. i have chirped over 100000 posts.". Wade has over a million chirps by now, They got so popular that influencers would pay them to ghost write their chirps.
Wade is a rip-off of the Animal Crossing character Wade.
My animal crossing character and Wade Animal Crossing wearing matching froggy tees. |
Updates
Update: Add links and correct formatting errors
Update: Added information about the bug in the art stage plus character backgrounds. I also added some links to the for the perverse ones out there.
Leave a comment
Log in with itch.io to leave a comment.