Tag Archives: card game framework

A game about the demoscene

Working on a card game framework (CGF) can be tricky. There are tons of edge-cases in card interactions to handle, and a lot of the time one does not even think what functionality the framework they will need until some game requires it.

This is why working with OCTGN was so frustrating a lot of the time. A ton of things that would be quite useful to have for a card game were not supported and that led to endless discussions, arguments and borderline begging at the main developer (who was not a game designer) who very rarely saw the need for those features.

In order to avoid this situation, I decided once the card game framework was stable enough, that I would be working on my own game in parallel. Therefore the development needs of that game would feed the development of the framework itself.

To this end, I created Fragment Forge. It has already helped improve the CGF considerably, leading to massive additions such as the deckbuilder and a ton of additions to the ScriptingEngine.

I would describe the game itself kinda like a solitaire Android:Netrunner, but way simpler, since there’s no human opponent and “mind-games” involved. Rather it’s a pure race against the clock and the interesting aspects come from the deckbuilding and seeing how high in difficulty levels your deck can reach. Take a look at the gameplay video linked in the project page.

While it started as a way to improve the CGF, I’m honestly quite pleased with how it’s shaping up. It’s not the most amazing thing, but it’s tricky enough to tickle your brain a bit and the fragment shader card art looks dope AF. As development progresses, I’m hoping that I’m going to get more ideas to trick up the game and make the gameplay choices more interesting.

I’m also totally open to ideas, so let me know if you come up with any cool new additions, or otherwise let me know what you think in general.

I guess I should announce the Godot Card Game Framework here too, huh?

I don’t know why ,but I haven’t gotten around to posting about this on my blog. Anyway, in case you haven’t noticed, in the past 2 months I’ve been heavily working on a little something called the Godot Card Game Framework.

Read the link to see what it is, but if you are interested to know how that happened, here’s a recap:

After dropping out of OCTGN game development after Doomtown:Reloaded got cancelled by AEG in 20161 I was itching to start something to call my own. Especially since I felt all the knowledge I amassed with 5 years of coding card games in python was going to waste. Unfortunately the only programming language with which I really feel comfortable is Python, and PyGame…well let’s just say it leaves a lot to be desired.

Around early 2019, I was almost ready to try learning C# to start learning Unity, but by choice of luck, I happened to search for “Unity using Python” and one of the first results was Godot! And it was perfect! Features to compete with Unity, Lightweight, Free Software and best of all, Python-like syntax! It was as it was made with me in-mind!

After going through the documentation and tutorials I jumped in and started developing a hex-card game hybrid, but I was putting too much effort trying to make things work perfectly and not enough work making an actual game. Also my code was shite since I just did not have enough experience with Godot.

I took a break from that and decided to try and contribute to the Wesnoth Godot port which was fairly new at that point as well. I felt working with more experienced developers would give me some guidance and better coding practices. I did provide some pull requests mostly around documentation (since the whole codebase was utterly undocumented) and some refactoring to remove some “spaghetti”, and then went on a hiatus from development due to life stuff. And when I came back roughly 1 year later, I found out all my comments and contributions had been wiped clean as they refactored the whole thing from scratch and didn’t even bother to keep comments around.

Needless to say, I felt disheartened from that and was in no particular mood to contribute further.

At the same time, I had since started more actively lurking in the Godot subreddit and noticed that quite often, people would post about their progress2 with a card-based game they were designing and a ton of people would ask for some source code or other guidance, usually to little to no response.

I even was sometimes one of those people asking for advice, and I know how overwhelming it can be to want to create a game but having no idea where to start.

So I just decided that people need to stop reinventing the wheel, and to that end, I would make something to fill that need information on making a card game with Godot. I had the experience on what a fully automated card game needs, so I might as well use it, gawddamnit!

And If I’m going to do it, I’m also going to do it my way: Extremely perfectionistic! So this means tons of documentation and unit tests. Hell, I even sent PRs to make gdscript docs maker work for my purposes, something which has saved move countless hours of wiki editing.

Progress has been fairly fast since. I didn’t expect I would progress from this to this in less than 2 months! I even have some people sending pull requests which is awesome to see!

And that’s where we are now. I’ve just released v1.4 of the Framework and surprisingly even to myself, I show no indication of slowing down. I have instead started making my first actual game using my own framework, which most of the time just sends me back to add improvements to the framework itself to make it capable of doing what I need.

If you like what I’m doing, I will appreciate all words of support, new issues or feature requests and best of all, pull requests! 😄3

And if you want to chat further, feel free to hit me on Discord.

  1. I dropped out mostly due to burnout and dissatisfaction with the limitations of OCTGN if you want to know []
  2. Example post []
  3. Just make sure you read the contribution guide []