Inspiration
After much initial debate on what primary area of wellness we wanted to address, we found inspiration in something unexpected. Our group mate Noah jokingly remarked, “What if we played iSpy in space?” From there, we told ourselves that we should incorporate fun games that allowed astronauts to interact with those at home. We knew that video calling and other forms of communication existed with those beyond the atmosphere, so why not come up with some interactive entertainment? Asynchronous games would be played between those who have a large distance to provide them the availability to play at convenient times while also being competitive.
How we built it
We built SpaceQuest using a combination of front-end and back-end technologies to create a seamless, interactive experience for astronauts and their loved ones. The app’s front-end is developed with React Native to ensure cross-platform compatibility, allowing users to connect effortlessly on both iOS and Android devices. For real-time data management, we integrated Firebase, which handles essential functions like user authentication, friend requests, and data storage for images and game interactions. This setup ensures a smooth and secure experience for users, maintaining connectivity across distances.
Throughout development, we initially tested each mini-game in a Flask-based Python environment. Using Flask allowed us to prototype game mechanics and logic in a lightweight, web-based setting before moving on to the final implementations in React Native. For the Jigsaw Puzzle game in particular, we worked with puzzle.js and fabric.js to create draggable jigsaw modules, which helped us experiment with the interactivity of puzzle pieces. These libraries were invaluable for designing and refining the puzzle mechanics, making it easier to eventually translate the functionality to a mobile setting with React Native. This progression is visible through our original “Backend” folder in our repository.
Each game within SpaceQuest offers unique functionality tailored for an engaging experience that fosters connection. The Trivia game, for example, pulls questions from the Open Trivia Database API (https://opentdb.com/), which provides a structured, regularly updated set of questions across multiple categories and difficulty levels. Integrating this API ensures a high-quality and constantly fresh source of trivia content, allowing players to enjoy challenging and reliable questions every time they play. Meanwhile, the iSpy and Jigsaw Puzzle games take advantage of Firebase’s storage capabilities to upload, retrieve, and display photos asynchronously, allowing users to take snapshots or select existing images directly within the app.
Challenges we ran into
One of our biggest challenges in developing SpaceQuest was converting the Jigsaw Puzzle game. Initially, it was built in Flask and Python, utilizing Python libraries to manage the puzzle logic. Rebuilding this in React Native without those libraries was complex and required a meticulous approach to maintain the game’s functionality. Additionally, saving images for the photo-based games introduced new hurdles. Instead of using Firebase’s Realtime Database, which wasn’t suitable for storing images, we had to use Firebase Storage. We then had to create links between each image and its respective name for the iSpy game to ensure the guessing game could work effectively. To keep the gameplay fresh, we implemented randomization of images so users couldn’t rely on memorizing photos. This intricate setup allowed for a seamless experience in both iSpy and Jigsaw Puzzle, enhancing the interactive and competitive aspects of SpaceQuest.
Accomplishments that we're proud of
SpaceQuest is a wellness app that helps astronauts stay connected with loved ones through a set of interactive mini-games. The app includes iSpy, Trivia, and Jigsaw Puzzle games, each designed to foster social interaction and cognitive engagement. Users can send friend requests to connect, and play asynchronously, allowing for turn-based interaction that fits different schedules. For iSpy and Jigsaw Puzzle, users take or upload photos that become the focus of the game, while Trivia offers a database of verified questions. Each activity adds points to a shared leaderboard, gamifying the experience and creating friendly competition that brings family and friends closer, no matter the distance.
What we learned
In building SpaceQuest, we deepened our understanding of using React Native for mobile/wen app development, particularly in the context of creating interactive, game-related features. Transitioning our initial Flask prototypes to React Native taught us valuable lessons about adapting web-based game logic for mobile devices and handling asynchronous gameplay. We also gained practical experience with Firebase, learning to balance its real-time database capabilities with Firebase Storage to handle image uploads and retrieval effectively. This project reinforced our skills in managing cross-platform interactivity, optimizing performance, and designing an engaging, scalable app that prioritizes user experience.
What's next for SpaceQuest
For the future, we’d be excited to enhance SpaceQuest through expanding the variety of mini-games, potentially introducing memory and logic-based games that could further promote cognitive engagement for astronauts. Even something like direct voice communication or VR/AR implementations could prove to create a more immersive and entertaining experience. Lastly, we’re considering options to further gamify the experience by introducing weekly challenges or achievements, which could encourage sustained engagement and make the leaderboard even more interactive.
Built With
- api
- fabric.js
- firebase
- flask
- javascript
- json
- opendtb
- puzzle.js
- python
- react
- react-native
- typescript
Log in or sign up for Devpost to join the conversation.