Chris Pikul

Introducing Kismet

There is a game I've wanted to build for ages. With a decent name that I've already chosen (because we know that's the most important part). I call it Kismet. Kismet is defined in English as "destiny; fate". It originates as a Turkish word, which is fitting since I moved to Turkey for some years after I decided on the name originally, with no prior knowledge that it was the origin of the word. From there it goes back to Arabic "qisma" meaning "portion" or "lot", but I digress...

Kismet is a 2D-top-down RPG with a rich persistent simulated world. Dwarf Fortress was very inspirational in this regard. I would also say games like Elder Scrolls and other classic Euro-centric fantasy RPGs played a part. Essentially, none of the other titles reached that rich deepness that I was looking for. Something that felt unique every playthrough, with rich simulated history, where actions mattered and shaped the game world. Dwarf Fortress does this very very well, but was lacking the single-player adventure I was looking for (excusing Adventure Mode). I want to feel as if I am the character, and that the world is my oyster that I can craft as I wish.

Why top-down 2D? Because I figured it would be easier. That's really it, and because I can accomplish what I want it to do a bit quicker than having to deal with 3D assets. I figure the less work I have to do on art assets and rendering pipeline the more work I can put into the simulation and useful features. So what are those features?

Planned Features

... and plenty more to come and go as development starts.

The Plan

So that is a lot, and it reads as a lot looking back at it. How do I plan on doing this? Well first, I'm gonna make the job harder maybe before I make it easier. I plan on doing this all in C++. Some may scoff, some may say "just use Unity". I tried this before in Unity and didn't like it, also I just don't know modern Unity well enough. I'm ok with C++. Also, C# in general is out because I don't want to deal with Monogame and Unity like derivatives. C++ will give me more precise memory, threading, and intrinsics such as SIMD to leverage for the heavy simulation work.

Rendering wise, I'll just use Vulcan raw. It's a tile-map at the end of the day, so I should be ok with getting that up and working. I have no plans to port for OpenGL ES, mobile, Apple via Metal, or Linux for that matter. Windows only for now. But I can try to separate the rendering from the logic to make that possible in the future.

While developing, I'd like to write regular DevLogs to keep myself on track and to share with the world the tricks and tips I find along the way.

I do plan on charging for all this work, but it'll be a cheaper one-time purchase like the good old days. Additionally, I'd like to allow modding, but if it starts bricking my productivity I may hold off on it. I'd like networking and multiplayer but that's asking a bit much at this moment (although maybe... no! focus).

Anyways, thats the idea, that's what I'm doing on the side. Here's hoping...