Row/Col Cultivation (Excel Game)
If you can’t play in the embed google sheet there, you could try it here in new window.
Link: https://docs.google.com/spreadsheets/d/1Qa4mGd2M4V1Ep7lIjQOS8gvF_0m_g8qVLq4erCZQ6iI/edit?usp=sharing
Project Overview:
"Row/Col Cultivation" is an innovative puzzle game developed in Google Spreadsheets, combining farming simulation and strategic puzzle elements. Players plant and cultivate various flowers, each with distinct directional growth behaviors, and experiment with cross-pollination to create new plant varieties. The core challenge involves planning cultivation to achieve specific harvest goals within a limited number of days and available seeds.
Gameplay Mechanics and Systems:
Planting System:
Players select crops (initially red and blue, with others unlocking progressively) and plant them by selecting spreadsheet cells. Each plant type spreads uniquely each day when the "Next Day" button is pressed.Growth Patterns:
A key gameplay mechanic, each flower type spreads differently:Red crops: grow upward.
Blue crops: grow downward.
Yellow crops: grow diagonally (up-right and down-left).
Green crops (hybrid of red and blue): diagonal (up-left and down-right).
Other special crops had horizontal growth behaviors.
Cross-Pollination:
Planting crops strategically so that their seeds overlap on the same cell creates new flower varieties, adding complexity and depth to the gameplay.Biome System:
Each grid cell represented different biomes (like dirt or stone) that interacted differently with specific crops, introducing additional strategic considerations for planting and growth management.
My Contributions – Programming & Game Design:
I led the implementation of core mechanics, specifically focusing on systems such as:
Initial Prototyping and Core Systems:
Developed early prototypes demonstrating core gameplay, such as planting crops, daily growth logic, and cross-pollination mechanics. Later refactored this code to improve readability, robustness, and ease of adding new features.Level Initialization & Data Management:
Designed and implemented systems for predefined level initialization, removing randomness for clarity and controlled difficulty. Created a dedicated data sheet to manage game start-up variables (e.g., garden size, crops allowed, days allocated).Bug Fixing and Optimization:
Actively resolved critical bugs throughout development, including correcting crop-counting issues, ensuring daily progression updated properly, and improving overall performance.
Example Code Snippets:
Below is an example snippet from our Sidebar HTML, illustrating the crop-selection user interface and the interaction with the spreadsheet logic:
// Sidebar.Html - Crop Selection & Planting Logic function selectCrop(cropType) { google.script.run.withSuccessHandler(function() { document.getElementById('selectedCrop').innerText = cropType; }).setSelectedCrop(cropType); } function plantSelectedCrop() { const cropType = document.getElementById('selectedCrop').innerText; if (cropType) { google.script.run.addCropsToSelectedCells(cropType); } else { alert('Please select a crop type first.'); } } // Progress time to the next day function callNextDay(){ google.script.run.withSuccessHandler().nextDay(); }
You could also checkout all code from here:
New Code.zip
Insights from Playtesting:
Playtesting significantly guided the design direction, clarifying critical questions about gameplay structure and complexity:
Sandbox vs. Puzzle Gameplay:
Early feedback showed players preferred strategic puzzle-solving reminiscent of games like Factorio rather than open-ended experimentation like Little Alchemy. This informed our subsequent design decisions, leading us to focus on clearly defined puzzle goals.Visual Clarity & Player Planning:
Players initially found it challenging to predict crop behaviors. We addressed this by redesigning flower visuals to clearly indicate growth directions and creating more straightforward biome patterns to simplify planning.Performance Optimization:
Player feedback about buffering delays prompted optimization efforts. We removed redundant sidebar updates and relocated critical UI information directly onto the spreadsheet, substantially improving performance.
Art Style & UI Considerations:
We chose a clean pixel-art style to match spreadsheet aesthetics, ensuring visual clarity and readability. UI implementation emphasized immediate clarity—seed selection, remaining days, and crop counts were directly visible, reinforcing strategic decision-making.
Team Collaboration and My Role:
Programming & Game Design (Bo):
As the lead programmer, I was responsible for initial prototyping, gameplay mechanics, and refining the game's core loop. I also collaborated closely on designing game levels and actively participated in iteration based on playtesting.Team Contributions:
Alec: Game design, crop behavior logic.
Andy: Initial concept, iterative art assets, lead design.
Yiyang: UI integration, win conditions, bug fixes.
Shirley: UI art, button designs.
Reflection:
Developing "Row/Col Cultivation" was uniquely challenging due to the constraints and possibilities inherent to using Google Spreadsheets as our game engine. It highlighted the value of iterative design, clear visual communication, and responsiveness to player feedback. This experience significantly broadened my understanding of puzzle game design, systems integration, and efficient collaborative workflows in unconventional platforms.