Catch! (Around the World)
Catch has to be one of our most favourite childhood games. Something about just throwing and receiving a ball does wonders for your serotonin. Since all of our team members have relatives throughout the entire world, we thought it'd be nice to play catch with those relatives that we haven't seen due to distance. Furthermore, we're all learning to social distance (physically!) during this pandemic that we're in, so who says we can't we play a little game while social distancing?
What it does
Our application uses AR and Unity to allow you to play catch with another person from somewhere else in the globe! You can tap a button which allows you to throw a ball (or a random object) off into space, and then the person you send the ball/object to will be able to catch it and throw it back. We also allow users to chat with one another using our web-based chatting application so they can have some commentary going on while they are playing catch.
How we built it
For the AR functionality of the application, we used Unity with ARFoundations and ARKit/ARCore. To record the user sending the ball/object to another user, we used a Firebase Real-time Database back-end that allowed users to create and join games/sessions and communicated when a ball was "thrown". We also utilized EchoAR to create/instantiate different 3D objects that users can choose to throw. Furthermore for the chat application, we developed it using Python Flask, HTML and Socket.io in order to create bi-directional communication between the web-user and server.
Challenges we ran into
Initially we had a separate idea for what we wanted to do in this hackathon. After a couple of hours of planning and developing, we realized that our goal is far too complex and it was too difficult to complete in the given time-frame. As such, our biggest challenge had to do with figuring out a project that was doable within the time of this hackathon.
This also ties into another challenge we ran into was with initially creating the application and the learning portion of the hackathon. We did not have experience with some of the technologies we were using, so we had to overcome the inevitable learning curve.
There was also some difficulty learning how to use the EchoAR api with Unity since it had a specific method of generating the AR objects. However we were able to use the tool without investigating too far into the code.
- Working Unity application with AR
- Use of EchoAR and integrating with our application
- Learning how to use Firebase
- Creating a working chat application between multiple users