Well, maybe a little jam.
Dang it. I was really, really looking forward to the Unity Create with Code Game Jam this weekend. A chance to get back into Unity, to challenge myself and see what I could create in a few days, to make a new game and see what I ended up with. I envisioned spending almost the whole weekend sitting at my computer working on my game, and I foresaw a very enjoyable and productive weekend. And… it didn’t end up happening.
Oh, the Game Jam happened. What didn’t happen was my participation.
Or at least, not to the level I’d hoped.
I mentioned in my last post that I wasn’t able to start the Game Jam right at 9 due to work. Fair enough, but I could still start it once I got home. Only not right away, because I still had to come up with an idea, and then I had other things to get done. And I did come up with the concept on Friday, but I didn’t get anything else done on the game; I’d had a long week, with exams in every class that I taught, and I had a lot to catch up on… and had to get some rest. Still, not getting much done on Friday didn’t seem like a big problem. I still had the rest of the weekend, right?
No, as it turned out, I did not. I was also working on Saturday, but I thought it would only take a few hours and would still leave me most of the day for the jam. I mentioned in my last post that I had been a studio teacher, working with kids on film sets, but that due to the decrease in production due to the coronavirus, I’d had to get a regular classroom teaching job. Well, I hadn’t given up studio teaching altogether; even if I have a regular teaching job during the day, I could still get the occasional studio teaching job on weekends or holidays. And when my manager called me a few weeks ago (yes, I have a manager who arranges my work as a studio teacher) and asked me if I was available for a job on the 24th, I did remember that that was the weekend of the game jam, and I did consider turning down the job. But, well, I hadn’t had any studio teacher work in a while and didn’t want to make my manager think I wasn’t interested, and really, I could definitely use the money. Anyway, my manager said it was going to be a short job.
It wasn’t. It was an all-day job. On the plus side, I got overtime pay. On the minus side… well, I didn’t get any work done on the game jam Saturday either. Well, I didn’t get any work done actually on making the game in Unity; I did do a little planning in my head. For one thing, I figured I should map out the apartment where the game would start; I began thinking through what might make a reasonable layout for a one-bedroom apartment with a bedroom and bathroom, and finally figured there was no point in reinventing the wheel and decided to just pattern the apartment in the game after an apartment in Pasadena I used to live in.
Still, that was about all I managed to get done on Saturday. I didn’t even get anything done that night once I finally got home, because, uh, at the risk of oversharing, I developed a vexing case of gastrointestinal distress. Either something I ate on set disagreed with me, or, perhaps more likely, I’d simply eaten too much; there’s often a lot of free food available on film sets, and, well, I am weak. (I have actually been eating better lately than I used to; I’ve lost more than fifty pounds since the beginning of this year; but clearly I am not beyond the occasional succumbence to cibarian temptation.) Regardless, without going into too many unpleasant details, I will just say that my condition effectively prevented me from getting any work done Saturday night, either.
By midmorning Sunday, however, I had effectively recovered, but that left me only some eight or nine hours to finish the game. I spent the first two hours or so modeling the apartment in Blender, which might not have been the best use I could have made of my time. (Yeah, it’s a very simple model, and probably shouldn’t have taken me two hours; I am… not a skilled modeler.) I then quickly searched the Unity Asset Store for some free low-poly character models I could use, and then my next major task was getting the dialogue system working. I wasn’t writing a dialogue system from scratch; I figured I could appropriate the one I’d already written for Last Day to Live… but that turned out to be sufficiently tied in with other subsystems and game objects that getting it to work in another game was more of a hassle than I expected, though still no doubt much easier than writing a new system from scratch would have been. (When I get the dialogue system more polished, customizable, and user-friendly, I’m thinking of making it available on the Unity Store… but that’ll be a while.) And then, well, really the worst was over. I had a lot more work to do to get the game to where I wanted it—by which I don’t mean where I’d originally wanted it, but the much simpler level I’d resolved I’d have to settle for given my limited time—but it was just a bunch of small tasks that individually wouldn’t take long. (Oh… the dialogue system wasn’t the only thing I reused from Last Day to Live; I copied the character animation controller from there too, for what it’s worth… not that it was a very complicated controller, and it wouldn’t have taken me that long to remake it, but, well, my time was really running out.)
The Game Jam guidelines had said to leave at least an hour to get the game exported and uploaded; I cut things close and left only about a half hour, and then almost immediately regretted it. Everything took longer than I expected; I couldn’t install the WebGL Publisher package at all (I kept getting the error “getaddrinfo EAI_AGAIN api.unity.com” which… I have no idea what that means), but I ended up uploading my game to Unity Connect through the web and getting my submission in with just minutes to spare.
So… yeah. I did get in an entry to the Create with Code Game Jam, but it’s barely a proof of concept; it’s a pale shadow of what I’d hoped to get done. I wish I’d had the whole weekend to work on it; I’d have liked to see what I could have done with two more days of production.
Another thing I’m sad to have missed out on was the community. There was a Discord server set up for jam participants, but, again, having been at work all day Saturday (and, uh, otherwise engaged Saturday night), and then on Sunday having been frantically trying to get as much done as I could in the very limited time I had left, I never had a chance to create an account and join it until the chat was over… and then I couldn’t. To participate in the server, users were required to read a #welcome-and-rules post and then react with a robot emoji, and I couldn’t find a way to do that. Either I just wasn’t able to figure out how to do it (which is possible; I’ve barely used Discord at all), or reactions were turned off and no new participants were admitted after the Game Jam officially ended; either way, I missed out on that too, apparently.
Still, like I said, I did get something done. And I think I’ll keep working on this game. Oh, I want to keep working on Last Day to Live, too, but, uh, I think honestly Last Day to Live is a bit ambitious for my first real Unity game. I probably ought to start out with something a bit more doable, to get a finished game under my belt, and House of Secrets could fill the bill. So, yeah, I didn’t get much done for the jam, but I did get a bit of a start I can build on.
The very last thing I added were the instructions at the bottom of the screen—I figured it was important to let the player know what the controls were. And I just realized in my haste I made a stupid mistake—the instructions say you can move with ASDF; that should of course be WASD. Dang it.
The biggest thing I’m kicking myself for not doing—because I’d fully intended to do it; it would only have taken a minute; and I just basically forgot until I was already exporting the game and it was too late—was making the player reset to the start if they fall off the level. That means you have to reload the game if you do that, and that’s annoying. Blast. Other things I meant to do that would have been relatively quick, and didn’t, were adding a skybox and putting in exterior doors to the apartment (so the player couldn’t just saunter out the doorway and plummet into nothingness).
But of course, those are just the relatively quick things that I could maybe have done even in the limited time available. (Or maybe not; honestly I was cutting things really close—like I said, I finally got the submission in with only a couple of minutes to spare.) There’s plenty more I wanted to add, including but not limited to:
- Furniture. Yeah, the apartment’s looking awfully empty.
- Textures. It’s also looking awfully flat. (Er… no pun intended. You know, apartment, flat? Never mind.)
- Doors. I already mentioned the exterior doors I wanted to put in, but I also wanted interior doors between the rooms, which the player could open and close.
- More NPCs, each with their own secrets.
- Which secrets would have to be ferreted out by other means rather than just asking them point blank if they have any secrets, as is done with the party host in the current version.
- In fact, the first secret was going to come out by the player’s finding someone near death in the bathroom who would give the player an item that they said was key to a secret; once the player had that item, the host would talk to them about it and reveal the way to the first secret world.
- Oh… also the NPCs were going to have portraits. The dialogue system supports portraits to go with the dialogue (and in fact the dialogue in Last Day to Live does include character portraits). I just didn’t have time to draw portraits for the characters.
- Speaking of not having time to draw, I also wanted to have different cursors and dialogue backgrounds, more appropriate to the game. As it is, since I didn’t have time to make new ones, the current version of House of Secrets just uses the graphics from Last Day to Live, which are supposed to fit its vaguely Mesopotamianesque setting but are not such a good fit for a game set on present-day Earth. (Or at least with its hub set on present-day Earth.)
- The NPCs would move around, rather than stand in one place
- Camera control. I wanted the player to be able to use the mouse to change the camera angle. I did not have time to implement this either.
- I said above the “first secret world”? Yeah, there were going to be multiple secret worlds, all differently themed, and reachable different ways. One would be reached by walking through a closet. Another by throwing magic paint on a wall. And so on.
- A plot. Yeah, there was going to be some sort of story tying this all together.
- The cat, by the way, would also have a secret. And would talk. Eventually. You couldn’t get the cat to talk until you knew it was supposed to, though.
- A health system, with hazards and enemies that would damage the player on contact.
- On death, the game wouldn’t be over; the player would go to a sort of afterlife, where the character from the bathroom in the beginning would be hanging out and would have a way to send the player back to the land of the living…
- In fact, I was thinking it would be necessary to die at least once, because there’d be something from the afterlife area the player would need! (This would be hinted at; it wasn’t something the player would have to just blunder into). I hadn’t worked out the details yet, though.
- I was going to make walls in front of the player disappear (or maybe turn transparent?) so they wouldn’t impede the view. The apartment model is actually modular, to make this possible; the various walls are separate pieces. But, once again, I didn’t have time to implement this.
So, yeah, there was a lot more I wanted to do. Now, even if I did have the whole weekend, I probably wouldn’t have gotten all of this done, but… I’m disappointed to not have had the chance to find out how much I could have gotten done.
Ah, well. I’m hoping there’ll be another Unity game jam in the future. I mean, of course I realize there are lots of other game jams, and maybe I will participate in other game jams at some point, but still, I was really looking forward to this one, and I just… wasn’t able to get into it as much as I’d hoped.
But at least I have the beginning of a game now that I can work on and expand, and that isn’t quite as daunting as Last Day to Live. So expect to see more here in the future about House of Secrets. (Though I may rename it. I mean, it’s not a house; it’s an apartment; but… I don’t know; “Apartment of Secrets” just doesn’t sound as catchy.) I mean, I do eventually want to finish Last Day to Live, too, but… like I said, House of Secrets is less daunting and maybe more realistic as a first project.
Still bummed about not having had a chance to spend all weekend on the game jam, though. (Fun Fact #1: I’m pretty sure I’ve never used the word “bummed” before. Fun Fact #2: That is not a fun fact.)
Oh! I almost forgot! You can play the game here. (Well, okay, honestly, I did forget; I edited this post to add this paragraph after it was already posted.)