Making Your First Video Game
Welcome! I’m Lauren Thoman, and Coastal Keepers is the very first game I ever helped bring to life. Built in Unity for IndieCade Climate Jam 2025, it’s a tower-defense adventure set in a seaside village threatened by environmental disasters. In this step-by-step guide, I’ll walk you through how our team turned an idea into a playable game. You’ll learn about team setup, scoping, prototyping, production polish, and launch best practices.
Supplies
Tools Used (including, but not limited to):
A development PC or Mac (able to run Unity 2021.3 LTS)
Stable internet connection
Headset or speakers for audio testing
Sketchbook or digital drawing tablet for concept art
Note-taking app or notebook for story/design docs
Unity (https://unity.com/)
Procreate (https://procreate.com/)
GitHub (https://github.com/)
Discord (https://discord.com/)
itch.io (https://itch.io/)
Visual Studio Code (https://code.visualstudio.com/)
Form Your Team & Define Roles
Every game jam wins or fails on teamwork. We assembled a crew of fifteen members—including multiple designers, programmers, artists, sound engineers, writers, QA testers, and a marketing lead—and assigned clear “hats” so there was no confusion about responsibilities. We set up a dedicated Discord server for chat and voice, and a GitHub repo with a Unity-specific .gitignore so everyone could collaborate smoothly. Each sub-team held its own weekly meeting, and we convened a general all-hands meeting every week, led by the team leads, to align on progress and priorities.
Keep in mind that the ideal team size really depends on your project’s scope and your personal preferences. A very small team can move quickly but may struggle under the workload, while a very large team brings more ideas and resources but can tip into chaos if roles and communication channels aren’t tightly managed. Strike a balance that lets you cover all necessary disciplines without overwhelming coordination overhead.
Organize & Define Scope
Our six-week journey began with an entire week devoted to open brainstorming, where the only rule was "no idea is too big." During these sessions, we gravitated toward a tower-defense framework set in a coastal village, enriched by community-driven environmental storytelling. Instead of drowning in minutiae, we focused on high-level pillars: showcasing multiple disaster types, such as oil spills, hurricanes, and volcanic ash, and creating a diverse arsenal of towers, from lighthouse beams to bubble generators. Sketching the core loop of community interaction, defense waves, and repair downtime on a whiteboard gave us a shared vision without demanding every mechanic be fully fleshed out before we even started prototyping.
You can adopt this approach by carving out dedicated time for unrestricted ideation and encouraging every team member to contribute their wildest concepts without fear of judgment. Once a broad structure emerges, whether that’s your genre, setting, or narrative hook, capture those pillars as placeholders rather than locked-in features. Visualize your core gameplay loop with simple diagrams to serve as a guiding star, then deliberately postpone the fine details until after you’ve tested your first prototype. This balance of open creativity and focused structure ensures your team moves forward with clarity, purpose, and plenty of room to iterate.
Prototyping Phase
Prototyping is all about speed and efficiency, not perfection. Our design team started by listing the core features we needed, such as enemy spawning, tower targeting and zone sorting, and sketched simple flow diagrams to guide development. The programming team then translated those diagrams into pseudo-code, spun up a fresh Unity 2021.3 LTS project and committed it to GitHub with a Unity-specific .gitignore. Their first script was a bare-bones wave spawner that generated placeholder “Oilgae” enemies, while our art team quickly produced rough asset concepts and the sound team gathered temporary SFX clips for hits and sorting cues.
You can replicate this workflow in your own project by assigning your designers to define the "what" (features and flow), having your programmers sketch out simple code plans and implement minimal scripts and asking your artists and sound engineers to create quick placeholder visuals and audio. Commit early and often, then run a fast playtest to verify that your core loop, whether it’s sorting threats into "safe" and "hazard" zones or another mechanic, feels engaging. Once you’ve validated the fun you’re ready to dive into visual polish, balance tuning and user-experience improvements.
Production Phase: Playtest, Fix, Repeat
Once our prototype validated the core loop, we replaced placeholder assets with final art and sound. Our artist swapped gray-box sprites for vibrant characters and towers, while the audio lead layered in ambient tracks and satisfying SFX for tower attacks and disasters. We expanded content by adding additional disaster types, including volcano eruptions, hurricane storms, and a garbage ship invasion, and wove in community dialogue scenes written by our narrative team. Each evening we ran playtests, logged bugs in GitHub Issues, assigned fixes to the appropriate team members, and rebased the project so the next morning began with a stable, up-to-date build.
You can follow this same cycle by scheduling regular play sessions, prioritizing bug reports, and ensuring each day starts from a clean slate. Encourage your teams to collaborate on fixes in real time and keep your issue tracker organized so nothing falls through the cracks.
Launch Your First Game!
When we were ready to ship, we changed our Unity build target to WebGL, adjusted texture compression settings for faster load times, and removed unused assets to slim down the download size. On itch.io, we uploaded our v1.0.2 ZIP file, added eye-catching screenshots and a concise 150-word pitch that emphasized our environmental narrative, and clicked Publish. To kick off our launch, we posted a devlog on our Discord server and shared announcements on our socials, which immediately generated player feedback and suggestions for hotfixes and community polls.
To replicate this, prepare your build well in advance, gather promotional assets, and draft your pitch so it’s ready to go. Coordinate a synchronized announcement across your channels to maximize visibility, then monitor player responses to inform your first post-launch updates.
What's Next?
Shipping your game is just the beginning. We’re already planning patches to fix bugs, update assets, improve formatting and enhance audio so players keep coming back. You might use weekly devlogs and live Q&A sessions on Discord to maintain community engagement and rely on analytics to guide balance tweaks and feature priorities. By following the same rapid iteration process that brought Coastal Keepers to life, you can continue refining your game and apply this model to evolve any project after launch.