Inspiration

I've always loved detective adventure games. I remember playing the Blade Runner 1997 game and the excitement when you found something new as you discovered the world. But NPCs always felt so scripted. With the power of LLM backed NPC, the characters in the world could come to life and be a part of the game mechanics.

What it does

The game is a short single player experience. You are dropped onto the USSS Sagan Outpost with the mission to find out who murdered the commander. To do so, you walk around the environment and inspect objects in the world to find clues. There are 4 AI powered NPCs in the world that you can talk to. Ask them questions to find additional clues. When you think you know who the culprit it, go to the main computer and input your guess and the clues you think prove the culprit is guilty of murder.

How we built it

I built this project solo. I went to the MPK Worlds Creator Academy in late September. I started working on the project on Sept 29 with about 75% of my daily time. I started by getting familiar with the Asset Library and building out the space. I then had to figure out how I would translate the idea into game mechanics. I wanted all of the clue finding to be interactive, so I decided players would need to actually inspect the objects in the world. But I wanted the player to feel like a detective, like they could use different tools to help identify clues. So I added in some tools the player can use during inspection mode.

All of the clues, inspectables, and characters are data driven. The data for all of those are in json files. This helped me iterate quickly. Especially with the NPCs, all of their knowledge and their ability to lie is defined in data files.

I am not an artist, so I heavily relied on the Asset Library and generative AI for 3D meshes. I also used AI to generate sound fx for the world. I wrote all of the code with assistance from Cursor.

Challenges we ran into

The biggest challenge I ran into was being new to the platform and figuring out how to do various things. For example, camera's need to be run in a local script. I set this up but I was having issues getting network broadcast events on that script. I found that I had to send a network event through the owning player.

Another big challenge I ran into is wasting time to get around the script conflict errors. This seemed to happen to me quite often. But after posting into the Discord, I got some feedback from another Creator that helped me avoid it. It still happens, just not as much.

Accomplishments that we're proud of

I'm proud of the whole thing! I can't remember the last time I made an entire game by myself. The system I wrote to identify what NPCs say and find if there is a clue in there is pretty cool. I also think the object inspection / clue identification is pretty cool as well.

What we learned

I learned alot about the platform. The toolset is easy to use but limited. I also got to flex my level design and game design muscles a bit. I'm a programmer and have worked in teams for all of my career. So having to make design choices and layout the level were something I haven't had to do much over the last 10 years. I didn't feel terribly limited by the tech. The main limiting factor for me was time.

What's next for Murder In Orbit

There's a lot I would like to get to. This game was originally designed as a two player game. The idea would be that the investigators could have different personalities (good cop, bad cop) and that NPCs would respond accordingly. Some NPCs would respond more truthfully to good cops, and some to bad.

I'd also like to add more variation to the clue discovery in inspection mode. I think it gets a bit repetitive to rotate the objects and change tools. It would be cool if you could zoom in and maybe each tool actually had a different mechanic associated with it.

Finally, the mystery itself has some holes in it. I'd like to do a full pass on the clues and character knowledge to make the mystery more compelling.

Built With

Share this project:

Updates