Game Designer: Data-Driven Systems and Gameplay
I design game systems and then use player data to fix them. Over 5 years and 12 titles across mobile, PC, and web: 2 commercial releases, a graduation thesis, and more than 10 student and jam projects. I came into design from statistics, which is why I iterate with spreadsheets and analytics.
Selected Projects
5 projects · 2 case studies + 3 showcase cardsI built this on what I learned from Idle Kingdom Builder: deeper progression tiers and a monetization layer using reward ads and IAP. I instrumented Unity Analytics to snapshot player state at 4 milestones, which surfaced two economy bugs and a timer persistence defect. Five fixes went out across v1.70 and v1.81, and the July 2026 data pull measures what they did. It has 600+ organic downloads and a 4.2/5 rating with no marketing spend, a median session around 6 minutes, and a top 10% of players who average 15 minutes or more.
My first published idle game. I designed the core loop and economy from scratch, using Cookie Clicker's formulas as a reference and tuning them toward a slower, more deliberate pace. It shipped on Google Play with 1000+ organic downloads and steady engagement in the early weeks. Without an analytics pipeline I had no reliable way to see where players dropped off, and that gap is what pushed me to build the analytics system for Cyberpunk City.
This project taught me the scope management principles I later applied to shipping my solo idle games on time.
2.5D Metroidvania developed as a graduation project at PUC-SP. I started as game designer, then took on developer and producer duties as the project progressed, which meant core systems, parkour mechanics, and the art/sound pipeline. I led the scope cuts needed to ship a playable vertical slice with a team of 6 inside academic deadlines. The examining committee received it well.
The clearest example of me building real-time combat architecture and animation state machines against a hard deadline.
Souls-like combat demo built for PUCJam 2023 on the theme: "Sacred". I designed and programmed the core fighting system: hitboxes, animation trees, life/death state, and combat balancing. It won Best Art at PUCJam 2023 against every team that entered at PUC-SP, newcomers and seniors alike.
Stealth-action game set in an alternate 2031 Brazil, with Metal Gear Solid and Splinter Cell as clear references. I designed the level layout, the core stealth and shooting mechanics, and the narrative, which mixes espionage with absurd comedy in a Brazilian geopolitical setting. We built it for CtrlAltJam#3 with a team of 4.
Currently Working On
In development · updated as builds shipA third-person stealth immersive sim from Jhorro Productions. The tension comes from systems reacting to each other, not from scripted moments. Announced for PC and Steam Deck, with full release in Q2 2027.
My biggest project so far, and the first commercial title Jhorro Productions is developing and publishing in-house. Thief, Dishonored, Metal Gear Solid, and Gloomwood are the clear references. The player is a spy in a Gothic-Victorian city where information is the best weapon and combat kills the spy about as fast as the guard. The systems core is done. Right now I'm building the cathedral levels, the second combat slice, and Steam Deck input.
22 Shipped Systems
Additional Work: FoxTales Studios
Student studio · PUC-SP · 2020-2023 · Game Designer & 3D ArtistCase Study: Idle Cyberpunk City Clicker
220 players before the overhaul · 36 after · 7 tracked events · July 2026 pullFlying blind after the first game
Idle Kingdom Builder shipped with 1000+ downloads and solid reviews, but no analytics pipeline. I had no visibility into where players dropped off, or why. Cyberpunk City was growing steadily and had the same blind spot. I needed a way to see inside the player journey without blowing the budget.
Milestone snapshots, then a wider net
The free Unity Analytics tier limits how much you can send, so the first pass was 4 snapshot events tied to credit milestones (1K, 1M, 1B, 1T), about 7 parameters each. After the fixes I widened it: the same events now carry around 33 parameters, plus SessionStart, AdWatched5x and AdFreeBuilding. The old event names stayed, so the pre-1.40 build still works as a baseline.
Economy validates, three bugs surface
The click-to-passive transition behaved as designed. The data also caught a clicker counter mapped to the wrong variable, and a timeElapsed persistence defect that invalidated the higher milestones. The expensive one was offline production: offlinePercentage already included the bonus and CalculateProduction() multiplied it a second time, which compounded to roughly 38,000× normal CPS on late-game saves. Leaving the app overnight paid better than playing it.
Five fixes, then a second read
v1.70 and v1.81 carried five fixes: corrected instrumentation, timer persistence, an offline rewrite with hard ceilings on rate, window and multiplier, rebalanced upgrade multipliers (passive 3.5×, clicker 7×), and an IAP boost that was off by one. In July 2026 I pulled the data again and read 36 post-overhaul Android players against the frozen 220-player baseline.
What the second read changed
The opening curve landed where I wanted it. Time to the first milestone rose 85% (194s to 360s) and clicks rose about 30% (302 to 394), while buildings bought held flat at 13 and 12. Players spend longer and click more without changing what they buy. The mid-game overshot, though. Median time to 1M went from 824s to 3,503s, a little over 4×, further than I was aiming for. Upgrades are at least doing their job now: 14 owned at 1M against 10 before, and clicker upgrades went from 0 to 6, since the old counter never recorded any.
The wall moved too. My earlier read was that 1M → 1B was the choke point, a 73% drop. In the new cohort that step converts better than it used to, 27% to 38%, and the one that slipped is 1K → 1M, 42% down to 36%. So the next tuning pass belongs earlier in the curve than I thought. I'm holding that loosely: the post cohort is 36 players at 1K and thins to one by 1T, so the far end is anecdote rather than measurement.
Monetization and retention only became visible with the new events. Rewarded video has 175 views and a single German player accounts for 120 of them. That same player holds the 1T record and had watched 111 ads by the time they got there, so ads hold up as a progression route at the far end. The median player reaches 1K having watched none. Session opens have also stopped clustering at install: days 8 to 24 carry 58% of them against 19% in the first two days. There is a returning core now, and that is who the next ad-pacing test should target.
Case Study: Guardian's Falls
Team of 6 · 12 months · Scope management · Graduation thesisAmbition outpaced capacity
The month-1 design doc planned for 4+ zones, 8 parkour mechanics, combo combat, skill trees, and layered narrative. Team of 6. No dedicated programmer. 12-month academic deadline.
Prototype fast, cut decisively
We built early prototypes covering the full mechanic set and tested which ones actually supported the core loop. Then a structured beta with categorized feedback. Features that weren't pulling their weight got cut.
Ship what works, not everything
The final demo covers 3 zones with streamlined movement (sprint, slide, dash), dash-strike combat, and environmental storytelling. Progression is linear so the level design can introduce mechanics in sequence.
Demo shipped + 3 design principles I still use
Shipped a coherent vertical slice. The committee acknowledged the design trade-offs involved. The scope and iteration lessons from this project shaped how I approached both idle games afterwards.
What We Envisioned vs. What Shipped
The original doc was deliberately ambitious. Dream big first, then scope down to what the team can ship well. I handled design, C# programming, and production. No dedicated programmer on the team.
| System | Month 1 Vision | What Shipped | Status |
|---|---|---|---|
| Movement | 8 mechanics: vault, slide, wall jump, grab/climb, swing, roll, sprint, free jump. Stamina system gating usage. | Sprint, slide, dash. Stamina cut entirely. Removing the resource gate made movement feel fast and expressive. Vault, wall jump, and grab/climb were prototyped, then cut for clarity. | Evolved |
| Combat | 3-hit combo tree, slide attack, bounce attack, power punches, sprint attack | Dash-into-enemy strike. Combos made players stop and chain punches. The dash-strike let them keep moving. It emerged from prototyping, not from the original doc. | Simplified |
| Zones | 4+ zones (Moonlit Meadow, Bond Fracture, Jade Jungle, Innerlake) + Hub | 3 zones shipped. Hub removed. Progression is linear, not branching. | Simplified |
| Progression | Skill tree, NPC quests, HUB, backtracking, left/right difficulty choice | Linear progression across 3 zones. No skill tree. No hub. Mechanical mastery carries the progression. | Cut |
| Narrative | 4 cardinal guardians, trauma metaphor, intro cutscene, NPC dialogue, symbolic enemy design | Environmental storytelling carries the narrative. No cutscene. No NPC dialogue. World-building is embedded in level design. | Evolved |
| Enemies | 3 types per zone + mini-boss + final boss, thematically symbolic designs | Generic enemy types. Focus shifted to making combat feel responsive rather than narratively themed. | Simplified |
Mechanic Spotlight: Dash-Strike Combat
Combat is movement
Instead of standing still and executing combos, the player dashes into enemies to attack. The original doc specified a 3-hit combo tree and special attacks. Early prototypes had them working. In practice, they pulled the feel in the opposite direction of the movement system. Combos made players stop. The dash-strike kept them flowing.
What I Carried Forward
Scope is a design skill
The original doc had 8 movement mechanics. The shipped game has 3, and they feel better. This mindset shaped how I built both idle games: start with the minimum viable loop, not the maximum vision.
Test before you're ready
Even rough testing with non-expert players surfaces problems you can't see from the inside. Beta testers caught navigation issues and control pain points we had gone blind to.
Mechanics must talk to each other
The combo system fought the movement system. The dash-strike emerged because we prototyped both and noticed the conflict. The design doc was a guess, and prototyping is what told us the guess was wrong.
Design Documents
GDDs, QDDs, LDDs, and design tests: How I think on paperAbout
Game designer with a statistics background. I build first and iterate constantly, and I try to settle design arguments with evidence rather than taste, whether the problem is economy tuning, mechanics, levels, or narrative. Over 5 years in game design across 2 shipped mobile titles, a graduation thesis, and more than 10 student and jam projects. Based in São Paulo, Brazil.
Alongside shipping games, I teach game development and design to kids and teens. Over 300 students across three schools, content adapted for ages 8 through 17. It's the best training I've found for studio communication: if a 10-year-old can follow your explanation of a state machine, your spec will probably survive a cross-discipline review. It also means I can scope a lesson the way I scope a milestone. Break a complex system into deliverable chunks, check whether people actually understood, adjust before moving on.
My core is systems and economy design, but I work across disciplines regularly. The Genshin Impact quest doc covers narrative and quest structure. Bagre Noturno combines stealth mechanics with alternate-reality storytelling. Cyberpunk City's atmospheric lore ties world-building back into the progression systems.
A lot of the approach comes from studying how Valve teaches Portal's mechanics through play, and how Half-Life guides players with lighting and architecture instead of waypoints. That kind of invisible design only holds up if you playtest obsessively. Kojima's influence shows up in the ambition: trust players with complex systems and meaningful choices, and reach depth by iterating rather than by cutting things down.
- Engines
- Unity, Unreal Engine 5, Godot
- Design
- GDDs, economy modeling, level design, quest design, playtesting
- Data
- Unity Analytics, spreadsheet simulation, Python, R
- Code
- C#, C++, SQL
- Art
- Blender, Maya, ZBrush, Adobe Creative Suite
- Languages
- Fluent English, Native Portuguese, Basic Spanish
Contact
Currently seeking a systems or gameplay design role · Open to remote or relocationLet's talk about your next game.
Have a role, a project, or just want to talk shop? Email is the fastest way to reach me. I usually reply within a day.








