Calyros DevLog #5 - Introducing Calyros
Published on
I've been talking at anyone who'll listen to me about my project for the last few months - first offline and then on BlueSky and here. Times have been exciting for me.
Seeing as this is the fifth entry to my DevLog though, I thought it was about time I formerly introduced the project - and me.
Before I do that though, I need to issue a quick apology - this post is very late. Two weeks ago, I'd already written it, but as I was saving the file, the editor I was using crashed and I lost the post. My dog ate my homework.
Also, I said I would write about how I'd achieved networking for multiplayer in my game and whilst that post is in the works, writing the post has been more involved than actually writing the code, because I hadn't accounted for how much of my programming knowledge I now take for granted. I'll get that post out to you shortly though.
About me
When I read about game developers and how they build their games, they're not always forthcoming about their lives "before games".
That's not a criticism of them, I realise lots of people aren't comfortable talking about themselves. It can be helpful though to know what experience developers have (professional or otherwise) when they got started, so...
My name is Sam and I enjoy reading, watching and playing sci-fi and fantasy books, TV shows and games. I also love role-playing games -- both table-top and online. Most of all though, I like coding.
I started coding at about 15, but it took four more years for me to realise that I could do it for a living.
I enrolled at a technical university to study Web Programming, but dropped out after three months.
After that, I applied for lots of roles working with code and databases, but eventually landed a job working as IT support for a small business. In the role though, I was very lucky to have a supportive manager who helped me step sideways into software development.
I've been working ever since (for the next 15 years) as a software developer.
Finally, I'm the father of an 8-year-old, who's just starting to discover the world of games and books. It's especially cool when she likes the same things that I like and we can bond over them.
So, what have I been up to?
A few months back, I needed to develop something with some 3D functionality. I'd toyed around with Godot before (though I hadn't loved it then) and so decided to use that.
After the project ended though, I want to keep tinkering. I still felt as though I had an itch to scratch.
I began creating little visual experiments and playing with game mechanics - nothing serious.
As I tinkered though, an idea began to form. I wanted to build an RPG. Revolutionary, right?
I had tried to create a 2D RPG before (I mentioned having used Godot before) and I hadn't had much success.
In part, I think this was because at the time Godot felt complex. I might have been able to make my own game from scratch, but using Godot felt like swapping one learning curve for another.
Using it this time felt much more natural though. It'd been updated a bunch since I last used it.
The other thing is that working in 3D felt easier to me than working in 2D. I hadn't been prepared for that.
So, as I tinkered and got used to the tools, I decided my dreams were possible.
Introducing Calyros
I set to work creating my game but there were a few things specifically I wanted to keep in mind as I did it.
Immersion
Table-top games can give players a real sense of impacting the world around them. Storylines can be deep, entertaining and immersive and players have to deal with real consequences for their actions.
Whilst a lot of these benefits are a product of physically being in a room with people and having a game master who is adjusting the storyline based on player actions, I think it's possible to bring a hint of this to Calyros.
Role-playing
If you've ever played Dungeons & Dragons or something similar, you might've encountered players that want to spend the day say, honing their blacksmithing skills.
The problem is, that's not really fun for the rest of the party -- they're there to drink milk and kick-ass.
I'd like players to be able to indulge themselves in roles other than the classic "hero" role and I'd like for those roles to be every bit as deep and meaningful - albeit in a different way - as a quest to clear a cave of goblins.
Digital role-playing games can accomplish this better than table-top games can because you're not inconveniencing anyone else by doing it.
Like many teens, I really enjoyed playing MMOs - particularly RuneScape. For me, combat was never the draw of these games. Socialising and role-playing was. I liked the idea of becoming a master blacksmith and arming the heroes of the world.
It's usually the case though, that every player is a "hero" that might also happen to be a master smith or an expert alchemist.
Socialising
I've heard it said that MMOs did so well in part because social media was less of a thing. You could log in to a game and play with your friends - and that was novel.
There might be a hint of truth to this, but I also think that as the games industry began to grow, the focus shifted. As games became heavily monetised, we'd occasionally get new regions and monsters but everything else seemed to suffer, including player-to-player interactions. You couldn't tell whether players had bought their way to the top anymore.
Economics
I'm interested in building a game with a good economy. I'll be brief because I don't have everything ironed out yet, but having a strong economy in a multiplayer game is important. There's value in everyone knowing what an item is worth and being able to leave the game for a year, and everything you own not be worthless because of inflation.
The project
With those things said, here's what I'm working on.
I want to create a game that allows you to live in a fantasy world, in a role of your choice and have that role be entertaining and challenging, whether you decide to be a miner or a monster-slaying hero.
I also want to enable the kind of rich and meaningful player-to-player interactions that work so well in table-top games but seem to have been lost when they've been translated into the digital medium.
I also want player choices to shape the story that they experience and for players to be reliant on each other for the items or equipment they need - without being dependent.
As such, the game I want to make - as you may have already deduced - is a multiplayer role-playing game, with a heavy focus on the role-playing.
Challenges
Multiplayer games are hard
Yes, they are.
There's a bit of a cliché in game development that every new game developer wants to build and MMO with lots of monsters and skills for all their friends to play and what they don't realise is that it's a huge amount of time and money.
I appreciate that when people say this to new game developers they're not trying to crush their dreams, they're trying to say "start small". But it often comes across as "You don't have the money, skill or time to make this", which is much less helpful.
What they never mention though is that multiplayer games don't have be expensive, sprawling games. They can be small, too. There are solo devs and small teams who've built them.
With that said, I'm not taking the warning lightly. I know (I've already written the code) that networking adds a lot of complexity to projects.
I have reason to be optimistic though. As I said earlier, I'm a professional software developer and as it happens, networking is an area that I've worked a lot in.
This project could be too big for me, but if I keep the scope small and tight (I'm practiced in avoiding scope creep), I don't think it'll be the networking that lets me down.
I'm busy
I have a full-time job, a child and I live with my partner. Progress is going to be slower for me than if I worked on this full-time.
I'm hoping my experience will offset some of that a little, but I think I just have to be prepared for slow progress to see how it goes. On the plus side, there's nothing cutting-edge that I want to build, so I can limit the time spent on research.
I'm bad at art
I suspect a real struggle for me will be creating an an aesthetically-pleasing visual style for my game.
I also find it difficult to act on inspiration -- even if I can see things I know I like -- and create original art. I know that as with all skills, creating art is a matter of practice, but it's not something I've had a lot of practice in.
With that said, I've found it fun (and challenging) to create 3D models directly in code and had some reasonable success with that. I'm going to focus on doing that.
My plan for the time being is to put free or temporary assets in place and revisit the styling when I know the game is progressing.
ADHD
Earlier this year, I was diagnosed with ADHD. That's been really good for getting to know myself better and being able to put a name to challenges I face and find solutions.
But, it's also brought into sharp focus a truth about myself; I have a tendency to start big projects, working passionately on them and lose interest.
It's why it's taken me months to begin talking about this project (as much as I wanted to) because I didn't want to subscribe to something and let people down.
For that reason, I'm setting out clear and concise goals here and now that'll allow me to work on this project without negatively affecting my mental health.
Goals
Be realistic
The official goal of this project is NOT to create a successful multiplayer role-playing game. That's too much of an ask.
The first official goal is to have fun working on the project and share what I'm working on with anyone who cares to listen.
K.I.S.S.
Hurts my feelings every time.
Instead of building a whole world with a complex story and mechanics, I'm going to focus on creating something small - what I'm calling the "Garden". It's a small 64x64 map where I can build, test and refine all of my game mechanics.
Minimise waste
If the project doesn't work out, I don't want to walk away with nothing. So, as I write code I want to convert chunks of it into standalone libraries so that I can reuse them in any other projects I might want to work on.
Release something
Similar to the point above, if I decide I don't want to work on this project anymore, I'm going to release it. I'll open-source the project for anyone else who wants to use it however they like.
Bye for now
I'm really excited to start this journey and share what I've got with you.
If you'd like to come along with me, please subscribe below and feel free to ask questions or share thoughts with me on BlueSky.
~ Sam