Inspiration

iNearSports was created from our collective love for early 2000s motion control designed games, most notably Wii Sports. We wanted players to feel immersed in every swing with a device that most people have readily available - AirPods! Inspired by the Frutiger Aero aesthetic, we decided to recreate the game of Tennis using AirPods as motion-controlled rackets. To add our own charm to this game of Tennis, we created and rendered two characters, Meow Meow and Croak Croak, from scratch to show our passion for retro-style low poly characters.

What it does

iNearSports transforms your AirPods into motion-controlled tennis rackets. By connecting your device to a Mac, the game captures real-time motion data to translate your physical swings into in-game actions.

Once launched on macOS, players can choose to Host or Join a multiplayer match. By entering the host's IP address, a friend can connect over a local area network (LAN) for real-time 1v1 gameplay. With everything set up, you're ready to swing, rally, and compete in a fun, immersive game of tennis!

How we built it

We built iNearSports using Godot as our primary game engine, utilizing GDScript to implement player movement, racket behavior, collision detection, ball physics, and multiplayer networking. We also designed the game's UI to view different screens, allowing players to host or join matches over LAN and easily navigate the game.

For motion tracking, we used Swift and Apple's Core Motion APIs to retrieve gyroscopic data from AirPods. We packaged this data into JSON messages and transmitted them through UDP packets, which Godot receives through a dedicated port to update the tennis racket's movement in real time.

Finally, our team learned Blender to create custom 3D models of our playable frog and cat characters, working with meshes and materials before importing them into Godot. Combining these technologies allowed us to create a fun, immersive multiplayer tennis experience!

Challenges we ran into

Since it was our first time using Blender, we faced a steep learning curve navigating the interface and shaping our character models. Learning the basics took nearly 8 hours, it was a fun experience! Rigging was especially challenging, as our skeletons kept disconnecting, forcing us to redo the process around five times. We also struggled with texturing and UV unwrapping, which added another layer of complexity to bringing our characters to life. As newcomers to Godot, we faced a steep learning curve understanding the game engine. Using documentation and research, we learned to write GDScript to manage player attributes, movement, collisions, and multiplayer networking. Another challenge was designing and connecting different game screens, each playing a super important role in the overall experience. Creating gameplay mechanics, UI design, and networking required plenty of experimentation, debugging, and teamwork! In Swift, the difficulty with getting AirPod data was that with MacOS, it is very particular with permissions and allowing you to even get to the data in the first place. After creating a Plist file that declares the use and permissions for allowing us to interact with the gyroscopic data, changing main.swift, and navigating system permissions.

Accomplishments that we're proud of

We're incredibly proud of building a multiplayer game despite having little to no prior game development experience! With the creation of our own assets and combining it with other assets, we created a charming, presentable game with adorable characters and immersive gameplay. Seeing our ideas come to life has been incredibly rewarding, especially knowing how much we've learned about game development, 3D modeling, and multiplayer mechanics using networking in just 24 hours!

What we learned

Throughout the 24 hours of developing iNearSports, our team learned a TON about game development, 3D modeling, UI design, scripting with unfamiliar languages, motion tracking, and networking. With little to no prior experience, we challenged ourselves to explore unfamiliar technologies and turn our ideas into a playable multiplayer game.

Using Godot and GDScript, we learned how to implement player movement, collision detection, game physics, UI navigation, and multiplayer functionality. Through Blender, we gained hands-on experience with 3D modeling, rigging, texturing, and UV unwrapping, overcoming numerous challenges while creating our adorable characters. We also explored Swift and Apple's Core Motion APIs, learning how to retrieve AirPods gyroscopic data and transmit it through UDP packets to control in-game movements.

What's next for iNearSports

Given more time, we'd love to expand iNearSports by introducing more sports, playable characters, and game modes that support even more players! We also hope to bring the experience to a wider audience by adding Windows compatibility. Inspired by Wii Sports, we envision iNearSports becoming a collection of fun, immersive, motion-controlled games that friends can enjoy together from a distance. What we've built in just 24 hours is only the beginning, and we're excited to explore the possibilities ahead!

Built With

Share this project:

Updates

Submission history