Devtober Day 1 - What is Untitled all about?


Untitled is not a real name, it’s because I’m still determining the exact focus of this game’s environment and lore. Even though I’ve been thinking of going in the direction of Sci-Fi, the reasons were all wrong. Without belaboring the point, I’m a fan of epic fantasy, and while I may still do some form of a space-based game because I love Space, my living-universe is going to be rooted in a fantasy setting.

For the Devtober month, my focus is going to be on creating a multiplayer procedural dungeon crawler. I’m hoping to carve out a feature set that will yield something playable at the end of the month, but there’s a lot to accomplish between now and then, so let’s review what I did today.

What is Untitled so far?

The video at the top serves at the starting point for Devtober, as I didn’t do much work this morning to make this work. Last night, I sent a gif to a few friends showing movement for one client, and when I woke up this morning, I realized I could randomize the ship color on the server, and everything should just work if I launched multiple clients.

So what exactly are you looking at? Well, there’s a lot of my code behind the scenes powering this, some of which I’m probably not going to use anymore this month due to the setting change. After all, I started off my saying how I’m making a fantasy game, but yet I show you movement between planets? Ah, the joys of having difficulties making up your mind as a solo developer.

The planets are generated using Magrathea, a pixel-art-esque planet generator I wrote. It’s fairly rudimentary, but it was a fun project, and I have a lot of ideas of where I want to take it. It’s fun enough I’m sure I’m going to keep working on it for some reason, but it probably won’t be part of Untitled within the next few days.

The client is written in Rust using my own custom engine, Kludgine. While I don’t think my engine is as fast as some of the engines written in Rust, I’ve been focusing on tuning my performance for low CPU usage and being able to run on incredibly low-end hardware.

I’m excited at the prospects of my User Interface framework, but it’s in its infancy right now. I suspect I will be making more progress on various aspects of it this month, including some basic Dialog/Modal support and probably a grid layout system of some sort.

What did you do on day 1?

  • Released a basws update that allows for server-side events of user disconnections to be sent along to the “logic” – needed it to remove the players from the scene upon disconnection.
  • Finally got ncog.id deployed again. I changed the workspace yesterday, and didn’t ever attempt to run the server locally after doing so. I was using std::file() to assign a name to the migrations, and moving files around tricked my migration engine into trying to re-run all of my database migrations. Sigh. All fixed now though!
  • To keep Devtober focused, I didn’t want to worry about players setting their names. I’ve opted to use Twitch’s OAuth to start with, and for now I’m just copying the Display Name across. Eventually you’ll be able to set your own name, but for now you’ll just be your Twitch handle.
  • Figured out how I plan on doing this game development open-source as much as possible. I am going to be using a private repository to host licensed assets that I can’t redistribute outside of the game itself legally. This same strategy can work if I want to keep some aspects of game logic hidden from the public eyes eventually.
  • Added a way to manually define a SpriteSheet using a strongly-typed enum to represent each of the sprites inside of the sheet. Kludgine previously supported importing sprites from Aseprite, but to keep myself focused on actual gameplay, I’m electing to use TimeFantasy’s excellent sets. As such, I wanted a way to bring these sheets into my engine in a more organized fashion than manually subdividing the image for each sheet.

What’s next?

My first goal is to create a demo where multiple players can connect, they’re assigned a random avatar, and can move around a multi-room dungeon. Beyond that, I’m not quite sure which features I’m going to prioritize first.

I’ll be back tomorrow with another update, although due to some real life obligations, I expect tomorrow will be less productive than today. Good luck to everyone else participating in Devtober!.

Leave a comment

Log in with itch.io to leave a comment.