My game development studio, Witchcult


#1

Hello Rustaceans!

I would like to announce to you my own little game studio that i like to call Witchcult!

I’m currently in the last few months of my education as a game programmer where I’m working on my first game through this little studio of mine, working under the mentorship of a game industry veteran.

Now, the reason why I’m posting on this forum is because I’m writing my own game engine, and of course that engine is written in Rust!

So feel free to follow me on social media, and maybe even consider becoming a patron to help keep me working full-time and independently on my game and engine after my education grant ends in a couple of months! :slight_smile:


https://twitter.com/WitchcultGames

Thank you very much for your time.


#2

Exciting!
Could you share some details about the tech stack and the architecture of the engine?


#3

Absolutely.
Although, It’s not that much to talk about really, because right now the engine it self is just a library crate that I have written to supply myself with 3D rendering capability through OpenGL ES 3.2 via the gl-rs crate for rendering function loading and the glutin crate for cross platform window creation and event handling.

Other then that I have built some utilities for saving and loading user settings, a state stack for popping and pushing different game states implemented via a simple trait, a simple tool for converting conventional 3D model files to a simple binary format that the game engine then can load and a prototype of simple internal messaging system to allow different parts of code to pull and push information between each other, such as the settings manager automatically saving settings when they are changed.

I have also implemented a basic version of the GJK algorithm for collision detection, and upon that I have based a simple physics system, but this only works in 2D scenarios as of now, since I’m still having some problems with extending the GJK to three dimensions. :blush:

Ohh, and I have also built the underlying maths library for working with 2D and 3D graphics, things like vectors, matrices and quaternions, and a simple pseudo random number generator based on the Xorshift128+ algorithm. :slight_smile:

So absolutely nothing spectacular, but it serves it’s purpose and I really enjoy developing it and I love to have such intimate knowledge of my most used an crucial tool when developing my games, namely the engine.

So not that much of an “architecture” as of yet, but on the horizon, and the two next big features I want to add to the engine is audio playback, and I’m currently looking to PortAudio for implementing this feature, since it is cross platform and has a rust crate wrapping the c library, and then there is the issue of implementing a good Component Entity system for the engine, something that seams to be something of a hassle to implement in rust, especially if you want to implement it via data oriented design, as I do! :slight_smile:

Also, in the somewhat near future, I will probably upload the source code to git hub under an open source license for all to see and mock, but right now I just want to sit down and work on my first game and not worry about maintaining a publicly available open source project. :stuck_out_tongue:


#4

Very cool! But why go at it alone? Especially when, as you say, you’re eager to get started on the game itself.

Have you looked at Amethyst? It’s an actively developed active project with a very capable team.

They’ve already solved a lot of the problems you’re currently pondering.


#5

Yeah, I’ve had a bit of a look at Amethyst already, and a couple of other Rust based options, but since this little project of mine also Is part of the final stages of my education as a Game Programmer, building the engine on my own was something I wanted to do from a purely educational point of view.
But other then that I also enjoy building the basic stuff for my game myself, things like the mathematics library etc.
And I also find it to be a big motivator for me personally to have a very intimate knowledge of my main tool, the game engine, and since my requirements from the engine are quite simple when all I said and done, I felt that the time spent implementing a simple engine, and automatically gaining a very intimate knowledge of said engine while developing it, would be worth it, especially when considering the time it would takes to learn how to work efficiently with someone else’s engine. :slight_smile:


#6

Sounds very cool :slight_smile:

Do you have any plans to open source your code? Private code is still fine if you go that route but it could be a great asset for learning. Either way, if you made blog posts about your development, I know that quite a few of us would be interested in reading!

Good luck.


#7

Yeah, I will probably put the source code for the engine up on GitHub at some point, when I have had the time to cut down on a few of the “shortcuts” that I have taken that other might not be son keen on! :wink:
And right now I don’t want to have to deal with maintaining a publicly available Open Source project.

I probably won’t open source the code for the game it self though, but I do plant on some sort of blog to document the development of both the engine and the game, and I am actually planing to set up a live stream to allow those interested to tune in and follow along as I develop the game. :slight_smile:

But before any of that I need to put a couple of week more into the first prototype of the game before I start to really push for getting people to following a stream or support me through Patreon. :slight_smile:


#8

Ok, thanks for an extensive reply. Looks like you are going the route of re-implementing everything yourself. There are plenty of established (and whatnot) libraries for graphics, math, physics, ECS, and so on.

Doing from scratch is a fine learning exercise, but I don’t see it being the most straightforward way to actually making games, so the announcement of a gamedev studio appears to be slightly off now…