Inspiration

I was inspired by Harry Potter and the idea of immersive aerial scenes. Flying has always struck me as a particularly intersting way to intake spatial information.

I found the null flight asset to be quite fun to play around with just off the shelf. Was curious to try it in a landscape setting and with the rooftop racers tutorial fit the bill. Was pleasantly surprised with the feel of it. The creator's youtube tutorial for customizing the flight object was going from spaceship to broomstick so I kind of just went with that. Have always been a huge hp fan and thought it'd be a fun 3d concept.

I wanted to try creating a twist on traditional races with an element of randomness or moving targets. This one allows random respawns based on various teleportation devices hidden along the field. It adds a dynamic element to the assets and replayability.

What it does

Allows user to fly around a field styled as a quidditch arena as portrayed in the wonderful world of wizardry from JK Rowling. Users can boost their speed by flying through the rings. When player enters the field it triggers race mode where the user is spawned to a random spot on the field and must make it to the red checkered finish line in order to stop the timer. Compete against other players for fastest finish.

How we built it

Using various public assets like the null flight, rooftop racers, pro game manager. Reskinned some assets, customized some scripts, added some VFX/SFX. Made heavy use of the trigger gizmo. Added some NPC characters for added intrigue. The LLM feature seems fairly robust in handling voices and coming up with unique sound bites.

Challenges we ran into

-importing custom assets from different software/sources -implementing textures/materials effectively -using the genAI to write/edit scripts -understanding and using other remixable worlds/assets -adopting tutorials to custom usecase -easy to write contradictory scripts / break code biggest challenge seems to be stitching bits and pieces from various assets and worlds. Encountered a lot of freezes/hangups regarding asset groups vs templates. Some of the features like the ai npc's seem hard to get going as the properties panel suggests it should work immedietly. It's not obvious that one has to set triggers and scripts to get it to react to the players. This is a challenge across all assets. It's hard to know what's missing or which settings need to be changed or what scripts need to be attached to get the basic functionality going. It's usually something quite simple or easy but it takes knowing or being familiar with that specific asset/tutorial. For example this current world doesn't have vocalizations with NPC's even though I might have it working in another world simply because the triggers/scripts don't copy over easily. The example that I found most helpful (think it was an official meta tutorial) for LLM integration uses the tycoon world but it carries a lot of bloat and other stuff that I have to work out how to place in my own world that may already be hitting capacity in terms of verticies or dynamics. Would be nice if there was a clear error chain that shows exactly what is needed for that asset to work. Maybe even tags to let people know what an asset needs a -trigger -script -spawnpoint (for ex) so people can just check off the list of tags rather than hunting around aimlessly. Digging through outdated documentation or various tutorial videos.

Accomplishments that we're proud of

-satisfying flight mechanics (twiddling around with parameters to get a good glide) -implementing some of the tutorial/templates correctly, getting things to work across worlds/levels -getting exposed to working on a hybrid codebase, first time working on software in a cooperative manner. as a solo/indie hacker I have limited exposure to dealing with non local codebases. would be nice if there was more clarity or transparency around what's under the hood there. I get a lot of bugs or breakages I think due to contradictions to the main codebase that each world uses but it's not clear what or how I'm doing it.

What we learned

How to customize assets implement typescript within the horizon worlds api/framework connect scripts/assets across different worlds how to prompt gen AI to write effective code how to implement ai NPC's that use large language models Each of these is an ongoing lesson but progress has been made.

What's next for Quidditch Practice

leaderboard for -fastest fliers of day, week, all time -furthest flown (most distance covered by a flier) ability to shoot or cast stun spells to other players scheduled Quidditch cup events with unique prizes/loot

Built With

Share this project:

Updates