AWS Logo
Menu

🏔️Kiwipoly: A New Zealand Board Game Adventure by Amazon Q CLI 🥝

Building a Monopoly-inspired board game featuring iconic Kiwi cities

Published Jun 10, 2025

Introduction

What happens when you combine the classic fun of Monopoly with the beautiful cities of New Zealand? You get Kiwipoly - a turn-based board game that takes players on a journey around Aotearoa, buying properties, collecting rent, and experiencing the charm of the Land of the Long White Cloud! In this blog post, I'll walk you through the development journey of creating Kiwipoly using Python and Pygame, from initial concept to a polished, publication-ready game now available on GitHub.

🎯 The Vision

The idea was simple: create a board game that celebrates New Zealand's iconic cities while providing the strategic gameplay that makes Monopoly engaging. Instead of generic properties, players would buy and trade famous Kiwi destinations from bustling Auckland to scenic Queenstown.
Game title screen showing "Kiwipoly - New Zealand  Cities Board Game" with Kiwi decorations
Game title screen

🛠️ Technical Foundation

Technology Stack

  • Python 3.6+: Core programming language
  • Pygame 2.0+: Graphics and game engine
  • Object-Oriented Design: Clean, maintainable code structure


Key Design Principles

  1. Simplicity: Easy to understand and play
  2. Visual Appeal: Professional, clean interface
  3. New Zealand Theme: Authentic Kiwi experience
  4. Accessibility: Clear text, no overlap issues
  5. Performance: Smooth 60 FPS gameplay

🎮 Game Features

Core Gameplay

  • Turn-based mechanics for two players
  • 20 New Zealand cities to purchase and develop
  • Property management with rent collection
  • GO space - collect $200 when passing
  • Random events through Kiwi Cards

Main game board showing the square layout with New Zealand cities, player tokens, and the center are
Main game board (game not started yet)

Visual Design

The game features a professional board layout with:
  • Color-coded player tokens for easy identification
  • Kiwi bird and kiwi fruit decorations in the center
  • Clear property information showing prices and rent
  • Visual dice with authentic dot patterns
  • Dynamic message system with perfect text display
Close-up of the dice area showing the visual dice, total, and roll button
Dice area and Player total money area on board

🏙️ The Cities of Aotearoa

Each city in Kiwipoly represents a real New Zealand location with authentic pricing that reflects their real-world significance:
CityCostRentRegion
Queenstown$200$25South Island
Wellington$160$20North Island
Christchurch$150$19South Island
Napier$140$18North Island
Dunedin$140$17South Island
Rotorua$130$16North Island
Auckland$120$15North Island
Nelson$120$15South Island
Tauranga$110$14North Island
Hamilton$100$12North Island
Palmerston North$90$11North Island
Timaru$80$10South Island

💻 Development Journey

Phase 1: Core Game Logic

The foundation started with implementing the classic board game mechanics:
  • Player movement and turn management
  • Property ownership and transactions
  • Rent calculation and payment
  • Bankruptcy detection and win conditions

Phase 2: Visual Interface

Creating the GUI was where Kiwipoly really came to life:
  • Board Layout: Square Monopoly-style design
  • Player Tokens: Color-coded circular tokens
  • Dice Animation: Visual rolling with dot patterns
  • Message System: Dynamic text display

Phase 3: Polish and Perfection

The final phase focused on user experience:
  • Text Overlap Issues: Solved with dynamic sizing
  • Message Box Problems: Fixed with proper positioning
  • Visual Consistency: Professional color scheme
  • Performance Optimisation: Smooth 60 FPS gameplay
Game in progress showing player tokens on the board, property ownership colors, and the message box
Game is in progress

🎨 Design Challenges & Solutions

Challenge 1: Text Overlap

Problem: Long city names like "Palmerston North" were overflowing tile boundaries.
Solution: Implemented smart text wrapping and dynamic font sizing:


Challenge 2: Message Box Positioning

Problem: Game messages were getting cut off at the bottom of the screen.
Solution: Fixed positioning with guaranteed visibility:

Challenge 3: Dice Button Functionality

Problem: Mouse clicks on the dice roll button weren't registering.
Solution: Precise collision detection with proper coordinate mapping:

🚀 Project Structure & Organization

The final project follows professional software development practices:
Code editor showing the clean project structure in a file explorer
Code editor with project structure

🌟 Key Features Showcase

Professional User Interface

  • Clean Design: No visual clutter or overlap
  • Intuitive Controls: Mouse and keyboard support
  • Clear Feedback: Visual indicators for all actions
  • Responsive Layout: Perfect text positioning

Authentic New Zealand Experience

  • Real Cities: Authentic New Zealand locations
  • Cultural Elements: Kiwi bird and fruit decorations
  • Local Pricing: Realistic property values
  • Kiwi Cards: New Zealand-themed random events
Close-up of the center board area showing the kiwi bird and kiwi fruit decorations
Board game centre with Iconic Kiwi bird of New Zealand

📦 Installation & Deployment

Getting Kiwipoly running is straightforward:
For different platforms:
  • Windows: scripts/run.bat
  • Mac/Linux: ./scripts/run.sh

🎯 What's Next?

The current version of Kiwipoly is fully playable and polished, but there's always room for enhancement:

Planned Features

  • Save/Load Functionality: Resume games later
  • Sound Effects: Audio feedback for actions
  • AI Opponents: Single-player mode
  • More Players: Support for 3-4 players
  • Property Upgrades: Houses and hotels system


Community Contributions

The project is open source and welcomes contributions:
  • Bug Reports: Help improve stability
  • Feature Requests: Suggest new gameplay elements
  • Code Contributions: Add new cities or mechanics
  • Documentation: Improve guides and tutorials

🏆 Lessons Learned

Technical Insights

  1. User Experience First: Perfect text display is crucial
  2. Iterative Development: Start simple, add complexity gradually
  3. Testing Matters: Thorough testing prevents user frustration
  4. Documentation: Good docs make projects accessible

Game Design Principles

  1. Theme Consistency: Every element should support the theme
  2. Visual Clarity: Players should never be confused
  3. Feedback Loops: Clear consequences for every action
  4. Accessibility: Design for all skill levels

🎮 Try Kiwipoly Today!

Ready to explore New Zealand through board game fun? Here's how to get started:
  1. Visit the Repository: [github.com/Darshitpandya/kiwipoly](https://github.com/
  2. Clone and Install: Follow the simple setup instructions
  3. Start Playing: Gather a friend and begin your Kiwi adventure!
  4. Contribute: Help make Kiwipoly even better

📝 Conclusion

Building Kiwipoly has been an incredible journey from concept to completion. What started as a simple idea to create a New Zealand-themed board game evolved into a polished, professional game that showcases the beauty of Aotearoa while providing hours of strategic fun.
The project demonstrates how Python and Pygame can be used to create engaging, visually appealing games with proper software engineering practices. From handling complex UI layouts to implementing game logic, every challenge was an opportunity to learn and improve. Amazon Q CLI helped nicely to build this game.
Whether you're a game development enthusiast, a Python programmer, or just someone who loves New Zealand, I invite you to try Kiwipoly and experience the joy of exploring Aotearoa one property at a time!
Ready to roll the dice and start your Kiwi adventure? Download Kiwipoly today! 🎲🇳🇿
Have you tried Kiwipoly? Share your experiences and suggestions in the comments below!
 

Comments