Coral Reef Simulator Game
An entry for the Amazon Game Challenge, and also for my FIRST LEGO League kids
Published Nov 12, 2024
Last Modified Nov 20, 2024
Hi everyone,
I like building physics sandbox games. I love the more complex behaviors that emerge from a basic set of well-balanced rules, and being a developer allows me to play even more intimately with fine-tuning those rules. How much gravity is enough to simulate real gravity, but also compensate for limited computing power? Do I simulate pressure of particles against each other individually, or as a whole? What about the effects of heat?
This week I read about the Amazon Game Builder Challenge and I had a game idea for building a sandbox simulator for a coral reef that uses a multi-player component to include simulating the massive problems that the reefs are facing in today's oceans.
Backstory: In my free time I help coach a club of middle school kids here in rural Iowa. We're competing in the FIRST LEGO League program which, this year, has been focused on problems that researchers have when exploring or studying underwater environments. Our kids have been very interested in coral reefs but we realize that none of the kids have actually seen any coral, or have any first-hand knowledge about coral. So that's where our problem is: No first-hand experience with coral or the problems that the organism is facing. Then I got the email about the Game Builder Challenge and a lightbulb turned on.
Design:
1. Users can build and manage their own coral as part of a larger reef environment with other players. Every day a person gets a new coral polyp and can plant it wherever they like on a 2D map of the sandbox's ocean floor.
2. The simulator simulates growth (accelerated), through various variables that have to be managed: nutrition, sunlight, etc.
3. The simulator also simulates damage from humans: Tourism, fishing, climate change, ocean acidification, etc.
Amazon Q lowers the barriers to implementing projects like this. If you take a look at my game, the porthole graphic? All Q. I started with just a canvas and prompted "surround the canvas with a submarine portal." Then IT asked me if I wanted to put in bolts, and I did! Then it asked if I wanted a water effect, and I DID! It's still buggy but I'll go back to it later. I don't understand css animation yet! I can't wait to show the kids my significant progress. The generative AI Amazon Q component truly accelerated my development. I've been using these tools for web programming for a year now, and using it as an assistant it allows me, an amateur, to quickly produce high quality code. It also answered a lot of questions that I had for AWS S3 bucket configuration. The only downside was that the formatting of the Q code answers in inside of VS Code didn't allow me to scroll sideways without scrolling to the bottom of the answer first. Annoying, but maybe I just need a bigger monitor? Probably just a second monitor, but my laptop doesn't support it.
The AWS services will also allow me to leverage their api's for implementing server side requirements. Right now I'm just using S3 to serve up the project and the game data. The game data is stored as bitmaps that are downloaded on startup then uploaded as the game is played to share with others. I haven't implemented users yet, not sure if I really want to if this project doesn't go anywhere. Right now I'm just looking for engagement, feedback,and proof of concept. I really hate storing passwords and user data just for for fun. It exposes everybody's attack surfaces and is annoying to log in and track as a user. Please, AWS engineers, create workflows for proof of concept implementations. Sandboxes that reset every week or month? Test user credentials? IDK. Anyways, at some point I'll need to write some housekeeping lamdas.
I'd appreciate any ideas or feedback on my game or implementation!
Also, feedback on this form: it's deleting text after my cursor if I go to type in the middle of existing text. Like I accidentally pushed the Insert key. But not consistently. I'm swipe typing on an Android using Vivaldi.