Almost every project I have built started because something made me stop and think, “I wonder why that works that way.”
I like figuring out why games work, what makes players choose one strategy over another, and what happens when one small rule changes everything. Usually, the easiest way for me to understand something is to build it and see what happens.
Sometimes that becomes a strategy card game. Sometimes it becomes a Python program or a Roblox world. Most of the time, I finish with a better question than the one I started with.
🌐 Portfolio: charliebarra.github.io/portfolio
An original multiplayer strategy card game about mining resources, upgrading ships, taking risks, and dealing with whatever the hazard deck decides to do next.
I designed the rules, cards, resources, upgrades, and hazards, then tested the game with friends, classmates, family, and people from the local gaming community. Playtesting taught me that players use the rules that are actually there—not the rules I thought I had written.
Four Python projects, shown in the order I made them:
- Adventure Game — tracking inventory, location, and player progression
- Blackjack Program — randomized card draws, conditions, and win/loss logic
- Restaurant Ordering Game — Python Turtle graphics, user input, and incremental progress
- Multiplayer Board Game — four-player, turn-based game logic and player state
Explore the programming projects
Personal Roblox Studio experiments where I used building and Lua scripting to test how a space feels, where players go, and what they can do.
Explore the world-design studies
Competitive Pokémon has been part of my life for years. It taught me to prepare carefully, adapt when the plan stops working, and pay attention to how other players solve the same problem differently.
View my competitive-play story
- Game design and balancing
- Probability and player decisions
- Python programming
- Roblox Studio and Lua
- Cybersecurity and technical problem-solving
- Better ways to document how a project changes over time
- Python
- HTML / CSS
- JavaScript
- Lua / Roblox Studio
- Git / GitHub
- How much randomness feels exciting before it starts feeling unfair?
- Why do players understand some spaces without needing instructions?
- How do designers keep a competitive game interesting after thousands of players start trying to solve it?
- Why does fixing one bug sometimes introduce two more?
I do not think I will ever run out of questions. That is probably a good thing.