The Start of Something New: Developing Coin Sweeper


Hello, everyone! My name is Siarhei, and I’ve spent over 10 years as a web developer, honing my skills in the tech industry. However, game development is entirely new territory for me. Recently, I found myself at a crossroads when I lost my job due to a downturn in the demand for web developers. Instead of returning to the same old routine, I decided to take a bold leap into the world of game development and create something of my own.

Programming has always been a passion of mine, but I was growing weary of working under someone else’s direction. This game is my chance to build something from the ground up, something that comes straight from the heart, rather than just following orders. However, I can’t do this alone—I’m going to need your help. Your feedback and support will be crucial as I navigate this new adventure, and if you feel inclined to donate, it would mean the world to me. After all, a good game developer runs on coffee and snacks!

The Concept of Coin Sweeper

My journey into game development began with a simple thought: "I want to make my first game." With no experience in game development and a strong desire to create something from scratch, I knew I needed an idea that was simple enough to implement. Visual design isn’t my strong suit, so I aimed for a concept that could be brought to life with basic geometric shapes and minimal visual complexity.

As I searched for inspiration, I knew I didn’t want to simply recreate an existing game like yet another Tetris clone. I’ve always been drawn to simulators, and as I pondered potential ideas, my eyes landed on something familiar—a robot vacuum cleaner silently charging in the corner of my room. That was my eureka moment! I decided that my game would revolve around this everyday device.

The next step was figuring out how to make the gameplay engaging and motivating for players. I initially envisioned the robot collecting coins that could be used for upgrades and power-ups. At this stage, I hadn’t even considered adding dust as a collectible; it seemed too complicated for me to implement as a beginner.

Then, something unexpected happened. While experimenting with the game’s coin system, I accidentally set the coin count to 1000 instead of 10, covering the entire floor in coins. To my surprise, the game was still playable, and as I began to collect the coins, I felt a surge of dopamine. The process of cleaning up the floor from coins felt unexpectedly rewarding. This was a turning point—I realized that the real satisfaction came from the act of cleaning, not just collecting coins. That’s when I decided to make dust the primary collectible, with coins becoming a rare and valuable secondary goal.

Another element I love in games is exploration and the thrill of collecting rare items. To capture that feeling, I decided that each level in Coin Sweeper should be randomly generated, allowing for a new experience each time. This also led me to introduce rare item spawns, including a collectible card system, giving players an additional goal: to find and collect every card by exploring every corner of the game.

Levels, or apartments, are randomly discoverable, adding an element of surprise and encouraging players to revisit old levels in search of keys that unlock new ones. The robot also has an experience bar, allowing players to track their progress and growth, adding a dynamic layer to the gameplay as you advance.

Development Journey So Far

When starting a first game, many developers spend a lot of time choosing between different tools and game engines. My journey was no different—I began by exploring various game engines I’d heard about, primarily Unity and Godot. However, as an experienced web developer, I had a set of tools I was already very proficient with. My core framework was React, which I felt extremely comfortable using.

While React isn’t typically seen as an ideal choice for game development, my desire to start as quickly as possible outweighed the need to learn a new programming language and game engine. I knew that diving into a new toolset would take a significant amount of time, so I decided to take a risk and stick with the tools I knew. This way, I could begin working on my first game immediately and gain practical experience in delivering a game. I figured that I could assess my approach after completing this game and then decide if I should switch to a more traditional game engine like Unity for future projects.

So, the decision was made. I chose to bypass the steep learning curve of new tools and instead focused on building my game from day one using familiar technologies. My tools of choice were React Native, Expo, Three.js, React-Three-Fiber, and Blender.

One of the greatest milestones in the development of Coin Sweeper was the implementation of random room generation. This feature took a considerable amount of time to get right. It wasn’t just about placing random walls; the rooms needed to be generated in a way that ensured a navigable path from the starting point to every room. Additionally, I had to place furniture randomly within the rooms while avoiding obstructions to entrances and preventing overlapping objects. These challenges were some of the most complex parts of the development process.

However, these complicated tasks only accounted for a fraction of the overall development time. Surprisingly, the majority of my time was spent on seemingly small details, such as ensuring a button looked consistent across both mobile and web versions. These minor tweaks, while essential, often brought little joy and consumed much more time than anticipated.

As of now, I’ve been developing Coin Sweeper for over two months, and I can already share some insights into using React Native for game development. So far, everything has been achievable; I haven’t encountered anything impossible with these tools. They offer a great deal of control over game logic—perhaps even more than a conventional game engine might. However, the trade-off is that many aspects have to be built from scratch, and while debugging code is straightforward, debugging game mechanics can be quite uncomfortable. Additionally, performance has been less than ideal.

Looking back, I can say that I’ve enjoyed using familiar tools to develop my first game. It has been a valuable learning experience. However, I’m fairly certain that my next project will involve a game engine, likely Unity, to streamline development and improve performance.

Coin Sweeper became playable fairly quickly, as I always aim to structure my projects in a way that allows me to demonstrate a working version at any stage. That said, I still believe the game is far from complete and not yet ready for a full release on platforms like the Play Store. I decided to publish it on itch.io at this stage because I’ve heard about the supportive and constructive community there. I’m hopeful that sharing my game now will help me continue development with valuable feedback from experienced players and developers.

Current Progress

v0.0.1 is the version I published today. It’s playable and includes most of the core mechanics I envisioned for Coin Sweeper. Here’s what’s been implemented so far:

  • Random Level Generation: Every level, or "house," is unique, with a varying number of rooms ranging from 3 (more common) to 20 (rare). This keeps each playthrough fresh and unpredictable.
  • Random Furniture Placement: I’ve created a limited set of furniture models in Blender, and even with this small selection, rooms now feel much more populated than before. Some furniture, like beds, can hide items, adding a layer of challenge. Plus, the ability to move under furniture adds depth to the gameplay.
  • Locked Rooms: Doors to rooms are initially locked, requiring you to find a key before you can access them. This adds an element of exploration and discovery.
  • Dust Collection: Adding dust to the game was a major milestone. It significantly improved the game's enjoyment factor, especially when I implemented a feature where the dust is attracted to the robot through suction.
  • Power-Ups: Currently, you can find spare batteries that allow you to charge away from the docking station, or sand clocks that increase the level time. These power-ups add a strategic layer to the game.
  • Coin Collection: Coin collection was one of the first mechanics implemented, even before rooms were added. Coins serve as a resource for upgrades and repairs.
  • Robot Upgrades: Collecting coins, dust, and keys gives you experience, and with each new robot level (or "generation"), you can spend points to increase speed, suction, or battery life. This progression system makes the game more dynamic as you advance.
  • Robot Parts: The robot has components like an engine, battery, filter, sensors, and wheels. These parts wear out over time, requiring you to spend coins for repairs. In the future, you’ll be able to purchase more advanced parts to further enhance your robot.
  • Temporary Opened Apartments: When you unlock a new apartment, you have a limited time to enter it. If time runs out, you’ll need to pay coins or use spare keys to open it again. I’m currently considering whether to keep this feature as is or modify it, so your feedback would be greatly appreciated.

Features Still in Development:

  • 3D Town for Apartment Selection: I’m working on replacing the current apartment selection screen with a 3D town where you can choose which house to clean. This should add more immersion and make the game world feel more alive.
  • Dust Growth Over Time: I plan to implement a feature where dust accumulates over time if you don’t clean a room for an extended period. This will add an additional challenge for players who like to revisit previous levels.
  • More Power-Ups: I’m considering adding more power-ups, such as a temporary speed boost or a power-up that lets you collect more dust in a shorter time. These will help make the game even more dynamic.
  • Collectible Cards: I’m also planning to introduce collectible cards to the game. These cards will add another layer of replayability, as players will be motivated to explore every corner of the game to complete their collection.

The Road Ahead

Coin Sweeper is already in a playable state, but there’s still plenty of work ahead to polish and enhance the overall experience. One of the first areas I need to focus on is improving the interface. Right now, it’s not as intuitive or clear as I’d like it to be. My goal is to make sure players can easily understand what they see on the screen, how to interact with it, and why certain elements are important.

I also plan to introduce a tutorial to guide players through the core features of the game. This will help explain the mechanics and ensure that everyone can enjoy the game without feeling lost.

Visual effects are another top priority. The game currently feels a bit slow and lacks visual excitement. I want to inject more life into it, so players genuinely enjoy every moment. This means adding more power-ups, furniture, textures, and room types. I’ll be working on polishing the visuals, and I’m considering adding a cartoonish outline to objects to give the game a more stylized look.

In addition, I’m planning to create a secrets gallery where players can see all the hidden items they’ve found and know if they’ve missed anything. I also want to introduce rare upgrades or parts, like a map or radar, that players can discover. A shop where you can buy new robot parts is also on the horizon.

One of the biggest challenges is game balance. Right now, it’s not quite where it needs to be, and I’ll be focusing on fine-tuning it before the game is fully released.

As for new mechanics, there are some core features I’m committed to implementing, while others may depend on your feedback. I won’t reveal which is which just yet—I want to hear your thoughts first. If you have ideas or think a new feature could enhance the game, please leave a comment. I’m also considering adding a voting system so you can prioritize the features you’re most excited about, but that will depend on whether there’s enough interest.

In the long term, I plan to complete the base functionalities and then focus on adding more content and implementing new features based on your feedback. Your input will play a crucial role in shaping the future of Coin Sweeper.

I need your Feedback and Support

As Coin Sweeper continues to evolve, your feedback is more important than ever. I’m actively seeking input from the community to help shape the game into something truly special. Whether you have ideas for new features, suggestions for improvements, or even just thoughts on the current gameplay, I want to hear from you.

This game is still in active development, and your insights can make a significant difference. Your feedback will directly influence how Coin Sweeper grows and improves over time. If there’s something you love, something you think could be better, or a feature you’d like to see, don’t hesitate to share.

Your support is also incredibly valuable. Developing this game on my own is a challenging journey, and every bit of encouragement helps keep me motivated. If you’re enjoying the game and want to see it reach its full potential, consider leaving a comment, sharing your ideas, or even making a small donation. Your contributions—whether through feedback, support, or donations—are deeply appreciated and help me continue to develop Coin Sweeper with passion and dedication. Together, we can make Coin Sweeper the best it can be.

Thank You

This journey of creating Coin Sweeper has been a whirlwind of excitement, challenges, and personal growth. Transitioning from web development to game development has been both thrilling and daunting. Every day brings new obstacles, but also new achievements, and each line of code feels like a step closer to realizing a dream I didn’t even know I had.

There have been moments of doubt, where the challenges seemed overwhelming, but what keeps me going is the passion I have for this project and the thought that someone out there might enjoy playing what I’ve created. This game is a reflection of my journey, my creativity, and my desire to make something meaningful.

If you’ve enjoyed the game so far, or if you believe in the potential of this project, your continued support means the world to me. Donations are always welcome and greatly appreciated—they help sustain my development efforts and make this journey a little easier. A cup of coffee and some snacks go a long way in keeping me focused and energized as I work to bring this game to life.

Thank you for being part of this journey with me. I’m excited to see where it leads, and I’m grateful to have you along for the ride.

Files

index.html Play in browser
Version 0.0.1 Aug 16, 2024

Leave a comment

Log in with itch.io to leave a comment.