2022 – Chapter 1

Chapter 1 is a classic adventure game where you solve riddles and complete mini-games to try and save a princess. There are many ways to fail but few ways to succeed. This is one of the most ambitious team projects I have personally tried to run. I created all the gameplay, cutscenes, and animation and had my team help where they could.

– 16 min reading estimate –

Skills: Unity, Animator, PlasticSCM, Project Management, Level Design Tools, Teaching

Table Of Contents

The Product

During this game jam, I created a game called The Adventures of Sir Kanon Chapter 1 with a small team. It’s an adventure game you can find here:

It features:

  • Voice acting by a lot of folks around the world
  • 8 3D levels
  • Riddles
  • Puzzles where you may get lost 😉 I’m not telling you the answer!
  • New gameplay toward the end if you can get there

It was a project to help me work on improving my management skills and leadership skills. I learned a lot from it. This project was created in roughly 2 weeks’ time with folks from around the world I knew. Almost all of the game was built in one week. One week was just for prep and understanding the tools. The training I offered was before the game jam started.

And yes, yes if you look at the details we do have 2 versions of it. Pick which one you prefer. The less silly version has fewer bugs and is easier to play through.

The Backstory

I’ve worked on numerous game jams and thought I’d work on leading a game jam with a team of people with no game dev experience. I thought I could at least improve their lives by giving them an opportunity to grow and learn.

Teaching a Team

So from the very beginning, I expected to do this entire project by myself if I had to. I would make sure no matter what happened we would have something to deliver.

But I also hoped… Maybe I could teach my team how to do stuff and they would go out of their way to learn more in their free time and magically get good. Well, … Yeah no that didn’t happen. I spent a lot of time building tutorials and learning about this and that, I spent so much time just working on what I would teach that I didn’t end up teaching very much. I tried to create a short one-hour training every week by streaming on Discord. A short intro to scripting, a little about UI, some general stuff on animation… A variety of tutorials. I thought well, it’s much faster if I just make a video instead right?! Video editing won’t take that long… 

Well… After making an hour-long video that took me at least a week to set up, film, edit, cut, and then realize it still needed a lot of work I was disappointed. I realized my goal of teaching my team everything before the jam would not happen. But it was a nice idea and I actually like doing this sort of stuff even though I would need more time to do it right.

Here is the video I ended up spending so much time on :/

Tools to Save Time

Okay so. I knew a lot of this project would fall on me. What do you do if you worry about time? Yeah, use tools, obvious answer. A master is only as good as their tools and I figured it was the perfect time to learn new ones to master! So last year I bought piles of assets, tools, mini engines, and things of that sort. I had something perfect for an adventure game jam though: 

Adventure Creator

Here is a video preview if you want.

A new fancy tool. It’s basically a visual scripting tool with nice built-in adventure features so you can very quickly build out a game. I spent a lot of time reviewing videos and going through the documentation. More than I really planned but it worked out enough in the end. It is set up really well for a game jam! It would have been helpful if I knew this tool better before the game jam but you can learn a lot when forced to lol.

I can talk about the plus and minus of why coding should not be your go-to when designing a product and it even became an issue later when a newbie Unity programmer did use some code… To future-proof their work. Well, the code had to be dropped at some point which I expected, but he was able to address the issue and fix the problem later on. One reason straight-up code should not be introduced as an all-in-one solution is you might think you may fix one problem but you may just introduce a new problem by doing so and that was what happened later. So, you might have solved a problem but other users might not use your code how you expect… Also, visual scripting is good for folks just getting started with Unity. While I can script just fine in C# it can be much slower to reinvent the wheel. I needed to focus on speed so I used pre-built tools and options as much as possible.

Visual Scripting Example
Granted no one likes visual scripting going everywhere XD

I was pretty proud of how I was able to use the design and make work it both animation-wise and script-wise (granted the animations I did were a little hacky)

My favorite scenes in the game because of how complicated they were.

An example of meeting the snake
Behind the scenes of the snake scene

One of the complications was simply handling the lighting. I did a few tricks here to make it appear the lighting was changing and had to make some things time correctly… There are better ways to handle this but I had to take some shortcuts.

Shark cutscene
This puzzle was very hard for most players, it had 2 solutions but still many got lost in it

I was scratching my head on how to build out the design on this cutscene for a while. I was able to make it work, but I was unsure of how to make it appear something was coming up from below you for quite a while.

Version Control

I’ve worked with and without version control before and I knew what I did not want to use. My go-to GitHub Desktop proved to be too slow so I ended up using:

Plastic SCM

Originally I was going to use some *free* type of version control. I was going to use GitHub with GitHub Desktop and well it sucked even with LFS (Large File Support) setup. It was painfully slow, I literally spent 3 days just trying to upload some basic files and I got mad and was like this isn’t going to work (stuff kept timing out, breaking, etc, etc). Yes, I did have some help from someone who uses Git and he didn’t have any luck either.

I need something that lets me batch-upload hundreds of large files at a time that are likely a few gigabytes. So I really compared my options and decided to try Plastic SCM and man! This was smooth as butter!

In past experience I knew a lot of places where projects fail, get corrupted, and lose data, I’m used to using frustrating tools! Unity Collab was awful, it was so slow in the past that I shutter to consider all its limitations. I have used Sourcetree, TortoiseSVN, personal servers, and more.

I know the pain of merging, uploading, and everything else that comes up. I guess when working I take extra care to avoid merging whenever possible. First mainly because I have more experience failing than succeeding with version control and second because it feels like better work quality in a way. But I ended up merging things well, and fixing merge issues that came up (cough newbies were still learning how things worked)

XD Merging and zigzagging everywhere when learning to use the tool, it got smoother later. But you see my teammate sure tried hard to learn to use the tool.

Finally don’t worry about mistakes! 🙂 I actually, even liked merging and working with different branches, it made me a lot more fearless and more confident working with this tool and it says a lot about the tool. I actually started to feel like more of a leader sorta being in control of this section XD

Also wanted to mention it was cheaper than Github with LFS pricing. I ended up paying $5 for my whole 30GB project and used the free plan that includes 3 team members.

PlasicSCM compressed the 30GB down to 14GB which is awesome 😀

I was willing to pay $10 though if I had to. GitHub cloud storage charges by the download (and a few other things) and I had… quite a lot of team members redownloading the project so I’m glad I didn’t go with that. Not everyone really understood how to use the tool leading to a lot of downloading…

Tools I Ended Up Not Using

Well… I had a nice animation tool I found for free and I recommend it… But due to time I just manually handled adding talking animations to some characters takes about 5-10 mins easy peasy and I didn’t want to download another tool…Though I spent time learning it before the jam just in case.

An example of creating talking animation

Don’t overthink animation when you are on a deadline, almost all decent animation is just a few keyframes anyway.

Now if I needed to move a lot of his body and add in the more subtle gestures I would highly recommend UMotion Community since it’s free and gives you bones to animate with. The paid version includes IK which is really nice for advanced animation controls.

Besides that, I had a ton of asset packs. So I guess in the end I used 2 tools but you don’t need much to make something cool.

Voice acting

So this was interesting and all over the place. I spent a little time helping to coach some members on voice acting and I recorded a few lines myself. I don’t think I’m the best voice actor but I can put some stuff together. I tried to sorta go for Zelda’s voice from Botw for the princess. It was good enough. I originally was going to play other characters but like 2 days before it ended I met a kid who wanted to do voice acting and he did an amazing job. 

Now you might ask about music and sound effects. Did I prepare for that? Yep. Did I forget all about that yep… 😅 I’m only one person, but if I planned better I would have been able to get that in.

Design + Scope

Everyone knows design determines the scope, so keep your design small. Anticipate for expansion sure, but keep your design small to reduce scope. You can always add more or work on polish when you finish your original scope. But it’s always sad to cut projects that get too big. Less scope is better time management etc… And well. The project started off that way… But I made a lot of very very bad assumptions. 

Themes

Yeah, I just was dumb and assumed this would be like all other game jams, that a theme would be announced and we would work out some design after the theme. Boy was I wrong and that set off the whole project on the wrong foot. The great leader there not reading the directions. For this game jam, they wanted you to plan in advance and work out your design BEFORE the jam. So yes, despite a teammate asking me what my plans were and assuming they just misread I was completely wrong in this regard. Sometimes doing something so often can make you blind because assume you are right. 😅

So I scrambled to ask some folks about some design ideas and we wrote up a short idea, I expanded it slightly. It didn’t make much sense but was sort of funny. I was trying very hard to include a lot of people in this game jam, for better or worse. It would make it harder for me to add so many random folks without much game dev experience. But I always want to give people the opportunity to prove themselves and help them build confidence in themselves even if it may cause me some headaches. So there was this silly design, not well fleshed out but something I could work with.

Learning Tools & Scope

I was also trying to learn Adventure Creator during this time too. And then a family holiday came up and I ended up losing 3 days of work because I had forgotten about it eariler. I let someone work out the design of the script and flesh out the gameplay ideas further and would review some of it now and then. I didn’t have time to review it thoroughly but figured that I figured, like everything else we can always cut. I figured we would likely not get halfway through this new design. It was a huge and ambitious 10 levels with a variety of gameplay, cutscenes, and animation. I knew it was far more than we could achieve but for some reason, I was like A-okay we will do as much as we can. I wanted to see how far we would get. I also knew it would fall on me to make it happen so I thought, yeah sure I’ll tell cut later once I have a good idea of my pace.

And yes. I ended up cutting. The last two levels not only had me do a lot of voice acting which I was running out of time for but it required new gameplay elements and I hadn’t finished the new QTE (QuickTime events) yet and more left to do in another level. So I cut them. I just didn’t have time to do every role. (I did finish those QTE BTW.)

Also, that code bug did cause a last-minute headache and we were scrambling to work around it and I lost time from that as I quickly taught my teammate how to visually script that section instead. So I’m glad I cut early enough to leave room for this because I needed that buffer to address unexpected issues. I should have cut even earlier for a better product though.

Now lucky for me I also set up the website page earlier because I had no time towards the end. I knew time would be an issue. I was biting my nails metaphorically because it took like 15 mins to upload the thing and then I realized there was a bug and it was very much down to the line. I literally got everything set up 2 mins before submission time was over! 

Retrospective

So what would I do differently?

  • Plan earlier + cut earlier
  • Maybe work with people who know what they are doing so I don’t have to review as much. (also avoids some drama, as newer folks can’t understand why their ideas are not feasible in the timeframe) Reviewing work and assigning work is a job all on its own. I’m lucky I was able to assign someone to do part of that and delegate what I could. Then I had someone review their review before it got back to me to give me a little more buffer.

Realistically though I’d probably be even more ambitious though… I almost created 10 levels in 1 week… Just imagine if I had the proper time and training to do this right…

Ashley Hooper