The Passionate Programmer: Unveiling Tech Side Projects that Inspire
By Barbara Brutt, MAXX Potential Content Marketer
- Posted:
- Apprenticeship
“Research shows that play is critical for adults’ well-being too — but many of us don’t play enough anymore.” Saya Des Marais writes in “The Importance of Play for Adults” in PsychCentral, and the article continues, “Playing is just as important for adults as it is for children.”
Play driven by curiosity is one of the best tools that technologists have at their fingertips to expand their skill set, solve a problem, and explore the options available to them with technology. Making time for this type of playful discovery can be challenging, and it can be an easy space to have fun while improving hard skills. That’s why we believe so strongly in tech passion projects.
We believe play, curiosity, and initiative are powerful motivators to learning, and MAXX Potential hosted an internal Hack-a-Thon this year to encourage Apprentices to follow their curiosity and explore tech areas that interest them. A number of Apprentices took part. Most of the projects demonstrated a certain level of playfulness, and we’re excited to highlight two passion projects.
Eureka: A Text-Based Adventure Game by Joelle Carbonell
Joelle Carbonell, MAXX Apprentice Level 3, created a game where adventurers have a mystery to solve. She wanted to explore text-based game creation. This project required Joelle to plan out her time, organize code, practice using Python, and problem solve when she ran into problems.
“Zork the Great Underground Empire was the inspiration, but also any other text based game.” Joelle explained her vision for the game. “Eureka is a text-based adventure game. You read the descriptions and prompts and then are able to type back into the game. It will interpret your instructions and give you feedback.”
Working on the Eureka passion project, Joelle had the opportunity to learn about using dictionaries, inheritance, debugging techniques and writing test cases. She shared that she found it challenging to get started on the project because she found so many different ways to organize the code. When she finally committed to a design with the help of ChatGPT, she shared, “Later, I did realize that some things were off; for example, the way I stored inventory, but it was not as difficult as I anticipated to fix that.”
Joelle noted that the project allowed her to get better at using Python and motivated her to keep learning. This larger but low stakes project helped her to manage her time. She had a specific timeline, and knew she wanted to play test so she created her own due date ahead of the deadline so she could playtest the game and work on issues. Joelle shared, “I also knew that if something was really getting me stuck, I could change as much as I wanted about the game to fit my limitations so that also made it a low stress way to learn.”
Passion projects are never really done, and so it’s exciting to find out what steps Joelle has in mind for the future of Eureka. She pointed out that she didn’t make a User Interface for the game, but that it’s something she’d like to have in the future. Joelle also specified that it would be helpful to include a button for players to save their progress, rather than requiring players play from start to finish in one sitting.
“Because I am a beginner, I was really focused on the technical parts of the game, but I really should have spent more time on the creative parts.” Joelle considers her overall experience. “In the beginning, it encouraged me to procrastinate because I would get stuck somewhere but not want to work on the story or which puzzles to include until I was sure what my coding limits were. However, working more on those parts first probably would have led to better design and could have driven the direction my technical challenges would have taken.”
“Starting is often the hardest part. Once I found the first little bug to solve and got it working, I was excited to keep going.” Joelle shared advice for those who are interested in diving into their own tech passion project. “I think it is also important to have skill appropriate challenges. If you start too big it is easy to be discouraged and give up.”
Tactics Game Prototype: a 2D Turn-Based Tactics Game by John Tarongoy
John Tarongoy, MAXX Apprentice, created a game that he would compare to Advance Wars or Fire Emblem, but look closer and you might notice a certain level of fantasy alongside the WW2-esque tanks and trucks. Players take turns, trying to complete objectives or destroy the opposing player’s units first.
A lot of John’s motivation for the artwork of the game comes from a bit of worldbuilding. He wanted fantastical elements, so he added dragons, magical fuel, and witches. His game ponders the idea of dragon knights alongside mass produced warfare, and he considered what these dragon knights might feel when they are “no longer the masters of the sky, instead hunted down by faster and more heavily armed fighter planes, similar to how WW1 shattered the idea of a ‘chivalrous war’ with the reality of industrial warfare.”
John shared the inspiration for this tech passion project. “I always loved video games and specifically tactics games like Advance Wars. I wanted to try my own take on the genre while also learning a new game engine and language.”
The project provided lots of opportunities for learning, and John rose to the occasion each time. He shared how he had a specific vision in mind for the game. While he could have followed the recommendations of the guide he found, John leaned into the option to research more about Godot’s in-built A-star pathing algorithm, and he was able to implement a new system that allowed for weighted pathfinding.
“I did a search on similar problems other developers had and studied solutions that they tried in order to see if I could implement it in my own project.” John shared one of the ways he sought to solve the challenge he faced. “One solution I implemented ended up having a massive performance dip when trying to calculate the potential movement of a unit with high mobility, but I was able to identify the issue and solve for it, which was to make sure the algorithm did not double back on tiles it already determined were passable.”
John found that the experience of planning, coding, and problem-solving his project gave him valuable perspective. Even the simplest tactics game can require a lot of coding. This project pushed him to set his goals and tasks, improving his understanding of time management. He explained about coding, “Learning the way Godot’s scenes and singletons work was an eye opening experience for someone who is more familiar with Java or C object-oriented programming. As the native Godot language, GDscript, is much like Python, it also helped me refresh my understanding of that family of languages.”
“Honestly as an artist, making the little unit sprites was the most fun part.” John knows that visual design plays an important role in a tactics game. In a limited pixel palette, every single pixel can completely change how the art looks, so deliberately using pixels can spark a lot of creativity. John emphasizes, “Recognizability is extremely important in a tactics game where you have to give the player all the information they need in order to make the best decisions for their strategy.”
When considering future iterations of this passion project, John pointed out that he’d want to further refine the internal logic of the unit statistics and figure out how to implement the opposing player and unit attacking. Another step might be to add AI for a computer opponent, create unit attack animations, and more.
While a tutorial can be a starting place for a passion project, it’s important to not stay there. John points out that it’s good to, “…push for learning how the engine works and other key functions so you are able to make your own code instead of purely copying the tutorial verbatim. Little things like making your own game sprites and learning how to adjust properties to fit those are good starts. This helps you earn some independence in coding and learning how to properly search for and absorb knowledge is a valuable skill.”
At MAXX Potential, we are passionate about helping individuals launch or advance their tech career. If you are interested in becoming an Apprentice, please find more information about Career Lab here.
MORE POSTS
Interview with Jasleen Bindra, MAXX Alum and IT Services Analyst
AI-Assisted Work to Augment Your Team
Director of Emerging Technology, Tucker Mahan, named a finalist for the ELITE (Emerging Leader in Tech) Award
How Tech Apprenticeships Deliver Real-World Expertise
Interview with Jasleen Bindra, MAXX Alum and IT Services Analyst
Spellbinding Solutions: How AI and Automation are Conjuring Up Potential
AI-Assisted Work to Augment Your Team
MAXX Potential Celebrates Finalist Nominations in Prestigious Richmond Technology Awards
Director of Emerging Technology, Tucker Mahan, named a finalist for the ELITE (Emerging Leader in Tech) Award
Why the Push for More Tech Skills in Schools Might Be Misguided
New Job Seekers are Rated at 55.8% Readiness
The Passionate Programmer: Unveiling Tech Side Projects that Inspire
Hack-a-Thon Projects Shared by Apprentices
Is Your Workforce Ready for Generative AI Adversaries?
Defending Against the Deep