How not only we built the 3D block puzzle game from scratch but also built our team and confidence 🧩

Applied Computing Foundation
8 min readSep 17, 2022

--

Intro

Introducing Team Avocado! We are a small group consisting of Audrey Paleczny, Evan Li, and Nina Li, our coach, Mr. V, and assistant coach, Siu Wu. We’ve been working on a game project since June of 2021, though we’ve been working as a group since March of 2020.

Even though we started off as inexperienced programmers, through our team meetings twice a week, we would prove to grow as programmers and teammates. We learned C# and Unity together, and we bonded by celebrating our successes and playing games together. While determining our common interests, our team gravitated towards making a fantasy RPG in Unity.

Tools and Communication

We used Airtable for setting up a main list of tasks, keeping track of our progress with meeting notes, and enumerating potential features for our RPG. For example, we had sections created for characters, locations, quests, challenges, items, spells, abilities, and even ideas for the menu UI. Airtable helped us stay organized with pseudo deadlines.

We created a Team Avocado Discord server with specialized channels to manage announcements, meeting agendas, and resources.

Each week, our group assigned someone to be the meeting facilitator and they would decide the team’s schedule for the week. This helped us manage our time and taught us how to lead meetings. After finishing an assigned task, we merged C# changes to our Github repository.

RPG Game

We started our RPG project with high expectations. We brainstormed sticky notes on

Google Jamboard and voted on ideas we liked. We prioritized quantity over quality by refraining from criticism during brainstorming to produce many unique ideas without personal biases. We learned that with more ideas, there are more chances for better ideas.

The RPG would feature spells, so we learned how to make a fireball in Unity. We were introduced to game objects, particle systems, and scripting. A “simple” fireball showed us that such a small component of the RPG took a lot of learning and effort. This was a huge reality check for us.

We thought about utilizing AI (GTP-3 or artbreeder) to generate art pieces and story content for us. However, AI was not the magic tool we hoped for. We realized it’s easy to think about the story, art, worldbuilding, and game features, but it’s difficult to actualize them. In other words, our imagination exceeded our skills.

We presented our RPG making plans to ACF teachers for their feedback and advice. This forced us to ponder how attainable our goals were. Before presenting, we reached a consensus to halt the project and start thinking about a more attainable project to work on. We learned how to “kill our darlings” instead of getting frustrated about slow progress.

Pivot

Team Avocado had to confront the sunk cost fallacy (the reluctance to abandon investment) and pivot to a project that would be more realistic and favorable for the team. We put our heads together and decided to recreate and improve a classic game from the 90s, which we called Block Puzzle at first, and later Bolke Puzle to differentiate ourselves.

Choosing an exciting and familiar goal kept the project approachable. The plan was to create a version of the game within the command line terminal to learn about the game’s fundamentals and practice our coding skills. Then, we would graduate to creating a prettier version in Unity.

This pivot came with many advantages. Mr. V already had experience teaching this game on the command line, making the new project less daunting. Narrowing the design scope also allowed us to focus on the more educational aspects of creating a game, like programming.

Personal Anecdotes

Evan: After spending weeks implementing collision detection, I spilled water on my computer and lost my progress. However, having gone through the grueling process of fixing my code once, bug-fixing the second time was trivial. Spending the majority of your time solving problems out of your skill level is simply the nature of coding. I found the process of solving difficult puzzles to be the allure of coding, as I received an immense sense of gratification every time I solved a tough problem that was previously unthinkable.

Audrey: Besides my development in leadership abilities, I remember staying after class to create a “do not press” button for our RPG project after learning how to create a functioning fireball button. After some guidance from Mr.V, I continued developing it by myself. The experience helped me build self-confidence and was much more fun than I had expected. I hope everyone will experience the same happiness from applying knowledge and creativity.

Nina: In the beginning, debugging alone feels pretty daunting but it is a lot of fun with others. At one point, clearing lines would leave stray blocks on the board. Testing when and how the bug occurs was more fun than I expected. When we figured out why that bug happened, and how to fix it, I felt super accomplished about my contributions. Over time, I became more confident and debugged by myself. I’m proud of how I overcame lots of obstacles like that throughout the project.

Post Mortem Questions

What was your experience?

We learned a lot during our design process and came up with small goals to advance our big goals all the while having lots of fun learning and going through challenges together. During Mr. V’s mini-lessons, it was fun to follow along and test what we had learned. We wrote a LOT of code during this project. We have debugged in Visual Studio, coded with others, and watched our hard work unfold in Unity.

Reading The Lean Startup by Eric Ries was interesting and useful. We learned about vanity metrics: how to set goals that are meaningful and not arbitrary. We also learned that frequently testing our product and getting feedback can give us direction and help us improve.

Last but not least, we learned how to look at project needs next to our practical capabilities. There are essentially three things that a team needs for a good project: motivation, time, and skill. A team’s performance suffers if they lack even one of these, and possessing only one of three equates to running a race with one leg — it’s pretty hard.

What would we want to do differently next time?

In hindsight, we should have started documenting our progress a lot earlier in the project. We didn’t record our early design process or milestones. The ideal form of documentation would have been to write weekly updates on the project, so that progress could be easily tracked and looked back upon. Recording every week captures the authentic journey of the team, and looking back on that progress is motivating in a tangible way. Writing this legacy document would have been a lot easier as well if we had documented everything sooner.

What did we do really well?

Our team displayed a great amount of commitment and determination. We didn’t know C# or Unity before this project, but we persevered through and tried our best at every meeting. If we didn’t know how to do something, we asked for help and learned. If we were stuck, we never gave up. We came to the meetings and pushed past obstacles together as a team.

Furthermore, we did a great job collaborating and discussing goals and direction. When things weren’t understood or someone wasn’t too keen on a certain idea, there was always a heavy emphasis on communication and having a concrete understanding of our goals before we launched into things.

What was the most challenging part?

The beginning was definitely the most challenging. We had a group vision, but we weren’t sure how to move forward and achieve our goals through code. Sometimes, we felt unsure about when we should share ideas, and we were afraid of making decisions. When we all had different ideas and opinions, it was difficult to get an overall consensus and compromise. In the end, we learned that we need to talk things through as a team and do things one step at a time.

We had a really difficult time debugging at the start, as we weren’t used to seeing the names of many errors and didn’t know what they meant. Once we ventured into individual work instead of team instruction, someone could feel overwhelmed. To combat this, we made an active effort to write clear and readable code, leave informative comments, and intuitively name variables to facilitate collaborative programming.

Lastly, scheduling was a roadblock. We ended up having multiple schedule changes, and when the dust settled, our total meeting time per week was less than ideal. Combined with the fact that the whole team was incredibly busy outside of the meetings, progress was also less than ideal. To combat our problem, our team utilized when2meet, a handy scheduling application. Our team also had to make sacrifices, dropping or rescheduling other activities to make room for team meetings.

What was the most interesting?

The most interesting part was learning (Unity and C#) and working on different projects with others. We worked on R2H, the fantasy RPG, and now Block Puzzle. Our team didn’t follow a straight path as we went on many fun tangents. We learned a lot of different skills and tried new programming tactics along the way. For a few weeks, we learned python, C linked lists, and technical binary knowledge. It was incredible to collaborate with others, build a game we already liked, and add our own elements to it.

Conclusion

Team Avocado grew our technical skill, built friendships, and felt the triumph of a team mastering a huge challenge together. We experienced the joy of being wizards firsthand, creating something unique and interesting out of knowledge, and making reality with every commit to git.

This project enlightened us to the importance of having the right amount of time, commitment, and skill. We struggled a lot at first with the RPG idea, but after our pivot, we found our footing with Block Puzzle. With better goals, we managed our time more efficiently, found it easier to commit time to coding, and obtained new skills to keep up with the difficulty. We are super happy with this project and where it led us even though things were far from perfect. Though our Block Puzzle project concluded, Team Avocado will keep on learning, growing, and creating.

More on team’s Avocado game development journey: https://vimeo.com/748230354

Avocado game for you to try: https://teamavocado.itch.io/bolke-puzle

--

--

Applied Computing Foundation

Develop mastery in technical and collaborative skills; Empower young leaders to drive change in communities