Magnagothica and my first LoRa!

A week ago or so, a new game came out from the creator of Kill Six Billion Demons (one of my most favourite webcomics that you should all go to read right now): Magnagothica: Maleghast

It’s a great world-building and incidentally it’s an idea for a type of setting that I have been thinking to make myself for years, and now someone plucked it straight out of my mind and made a really great version of it which just oozes style!

I have been enamored with this game since I first saw it. It hits ALL my buttons! Heavy Metal, Fantasy, Aesthetics, Boardgames. Only thing it could have done more is include even more metal genres as I’m not too keen on the extreme stuff and I’d love to see styles on Power or Prog Metal etc. But nothing we can’t extend ourselves!

But ye, as I mentioned, I’ve been hyperfocusing on it a bit too much. First I created a lemmy community for it. Then I started extending the music playlists for each house. And lastly I wanted to find a way to be able to not only create my own warband, but also to give individual art to each of my units. And for this, I finally had some necessary skills and hardware. It was time to train my first LoRa!

It took me a good 3 days to figure out how things work, create the necessary datasets, experiment with creation and retry until I got the hang of it. It didn’t help that the original artwork was, let’s say, challenging to work with. But I think in the end I am very proud to have managed to make something which seems to be capable of following the style well enough to create leaders and units.

I’ve found the best use of this lora is for Leader illustrations. To create a leader simply use the “necromancer, leader” tokens in your prompt. For leaders I suggest you set your Lora strength between 0.5 and 0.8. Remember to mention which house you want the leader to be in. The LoRa is pretty decent at copying the style of each house.

magnagothica maleghast, gargamox, drawing, necromancer, male, skinny leader, plain background, toxic green highlights, by tom bloom, sidecut haircut, chains, dripping, white coat###halftone

To generate units, you can choose to either generate unit portraits styles, or full unit illustrations. You can try to replicate the maleghast style with the halftone, or put “halftone” in the negative prompt to get a more sharp result. Personally I prefer to avoid the halftone look and try to make them look more full. You can also use the name of the unit to try to lead the lora to draw something like that unit. You can also use “ghoul” for humanoid undead and “abomination” for more monstrous looking units. For units I suggest you use model strength between 0.3 and 0.6

magnagothica maleghast, abhorrers drawing, full unit illustration, penitent, ghoul, scarred, spiky flail, plain white background, ochre highlights, by tom bloom###halftone
magnagothica maleghast, C.A.R.C.A.S.S., drawing, unit portrait, enforcer, ghoul, plain black background, fuchsia highlights, by tom bloom###halftone

You can check out the new LoRa on CivitAI, and as you’d expect you can also just try it out directly on the AI Horde!

Try it out and let me know what other uses you can find using this style. I think it has plenty of potential.

My first steam game

Hypnagonia now has an official steam page!

It’s not much but it’s mine 😀 It took me a while to gather everything needed to create the steam page as Steam is way way more thorough than Itch.io. The benefits over itch of course are the automatic updates you’ll be able to receive. And for me, hopefully being on steam might attract a few more eyeball than might become collaborators 🙂

Why my ADHD means I end up making an ugly video game.

Hypnagonia has copied a lot of design paradigms from Slay the Spire, primarily because I needed a baseline to start working on content, instead of getting stuck in trying to figure out all the details of the design for every aspect. But you may be wondering why almost a year since I started it, it still looks like something to manage servers. To explain that, I need to give some background.

How “battles” look in the latest version

As someone with ADHD, it’s very easy for me to be overwhelmed by the frontloaded effort needed to be able to start something as large as developing a new game, and give up. Copying the design of something else is way more conductive to jump straight into doing something I already know how to do well (in this case, coding and card game design).

I am very lucky that my “autistic comfort zone” so-to-speak is programming (and general PC use), so that counteracts my executive dysfunction to a degree that allows me to start working on something, just for the joy of having a goal to program something. I kinda think of this “autistic drive” as a car battery ignition. It allows me to kickstart myself to do something which is one of the massive blocking points of ADHD.

However it’s not a trick that can always work, and it needs the right circumstances.

I got first interested in programming when I was 10 years old. I even pestered my mother enough to voluntarily go to 2 years of programming school back then – and sit through some of the worst lessons in programming one can have. Who the hell tries to teach 10-year olds Fortran by reading from the manual? Later on, I didn’t manage to get into university – due to just wanting to play computer games instead of studying for the exams. Instead, I went to a vocational school for programming for 2 more years.

When did I finally start programming for myself? When I was in my 30s. I literally learned programming and then didn’t do anything with it until I had the right circumstances. I tried multiple times to motivate myself to actually do something I knew I liked doing, but I couldn’t because I didn’t know what to do with it that was achievable for my skills. Things like making video games were out of the question as I had nowhere the skill needed to even begin. Yes, I know everyone starts like that, but try telling that to my stupid ADHD brain who does not get the concept of not getting the happiness chemical immediately.

What I truly needed was something I could start with very little programming needed and then built up my skills little by little, but having a clear but achievable improvement I could do.

In my case, my circumstances ended up being my interest in coding old card games in OCTGN, which requires very little code to start, but allows you to go bonkers with python if you want to (even if it doesn’t make it easy). The way it worked for me, is that I kept wanting to add more features, but each feature was just simple enough that I could see myself achieving it within a day or so. It kept me motivated enough to keep going.

All that worked pretty well until my eventual burnout after 7 years or so due to juggling too many projects at once.

The good news was that I had already picked up enough gamedev knowledge to give me some confidence. Once some of my burnout started to wear off 3 years later, I wanted to get back into card game design, but I didn’t want to touch OCTGN anymore. And then I discovered the Godot Engine (the way how is a post for another day) and after a few false starts, I got the idea to start on the Card Game Framework.

The reason why work on CGF is what worked, is because I had just enough knowledge of the things I needed to build (due to my experience with OCTGN), so that my autistic kickstart gave me enough momentum to overcome my ADHD executive dysfunction and head straight to Hyperfocus.

So, back to Hypnagonia, when I initially got the first concept for it, I knew it was way bigger than what I had done until now. Especially since I have no support network (I am not in a modding scene, and none of my contacts from my OCTGN, Android: Netrunner or Doomtown days seemed interested). So I knew I had to settle in the solodev role.

I also knew that if I tried to “reinvent the wheel” too much with my game, I will never get going as I will be stuck trying to think of how everything should work together until I give up due to complexity.

So early on, I decided to mostly copy Slay the Spire, as the granddaddy of the genre, while adding the few spins I wanted to use, which I knew were manageable for me. This means I settled to clone the UI look and core gameplay loop at least. The reason is, by now, I know how to program a GUI I can see in my head, and I know how to design card games, but I have no idea how to design good looking graphical interfaces, fancy animations, shader and effects or even any sort of art.

By using the StS layout, I could bypass my annoying brain trying to trick me out of doing something cool, by not having it get existential dread about trying to do something it doesn’t yet know how to do!

The main reason then why Hypnagonia still looks like so bad, is because I have no idea how to fix it, and any time I consider that I should do it, my brain goes: “Nope, you don’t know how to do it! Procrastinate a little instead. Reddit is just a button away!”

If I were to nevertheless stubbornly pressure myself to not do anything else except trying to improve the look of the game, I would procrastinate so much, I risk loosing my motivation for developing Hypnagonia completely. I had more than one close call with this.

For example, early on, I decided not to copy StS overworld mechanic (a map with encounters) because I wanted a more storyline-based experience. However I had no idea whatsoever what to replace it with. I got so demotivated that I couldn’t think what to do about it, I started distracting myself with other things. I was stuck and losing interest worryingly fast.

Fortunately, an experienced board game designer friend of mine agreed to brainstorm a little with me, and managed to throw an idea out that broke my “designer’s block” which eventually became the dream journal I have now.

So experience has taught me to know my limits. And at the current point, my limits are game UI/UX. Staying within the StS guidelines allows me to have a usable game. My plan is to make something playable end-to-end, even if not it’s not good looking and is full of placeholders. To salvage the rest, I just hope that I can attract specialist in the areas I cannot handle.

Every day I think about working on Hypnagonia, I need to kickstart my motivation and push through my urge to procrastinate “a bit” first. The way to do this, is to stay within my comfort zone, which is programming and game design.

So in the end, my autism helps me overcome my ADHD, but it has its limits. Therefore, the game look suffers.

I made an itch.io page

I always knew I had to do CI/CD for my development, but I just hadn’t given any priority yet. As such, until now I was still manually exporting Hypnagonia when I had a stable release, then manually uploading the html to my own site through scp, ssh to the site, and copy the files to the web directory. All so that I can link people to a bland page so that they can play the game online.

And for more feature-packed releases, I would also export the versions for Linux, Windows and mac, create a new github release and upload them there.

It was an unnecessary manual procedure and it always bothered me. But I had other priorities on my end and I kept pushing back the improvement on that end.

That is, until yesterday, where I run into this video introducing DevOps practices to game development:

And that kinda shamed me into going through with it.

Unfortunately interacting with my own webhost was always hacky and felt amateurish. So I decided to onboard Hypnagonia to itch.io. This provides me some benefits. As part of the community there, I can start getting more organic discovery. It provides some interesting metrics and very imprtantly, it’s an estabilished platform which means there’s plenty of guides and products to integrate it easily into my Continuous Delivery pipeline.

Unfortunately, I realized that embedding the game into itch.io doesn’t play well with my current viewport size and the “static” way I had designed it. And that was a rabbit hole…

First I adjusted my main menu screens to adjust automatically according to the viewport size. That worked OK-ish for not ridiculously-small resolutions. It’s fine, we can look at that later

But then I discovered that even small reductions in the viewport, make the cards look massive, as they are never scaled. So I needed to shrink cards according to the viewport size somehow…

Long-story short: I spent around 6 hours yesterday just giving the Godot Card Game Framework functionality to handle smaller resolutions somewhat gracefully. It’s not perferct, but it’s good enough to allow itch.io embed.

And since I was at it, I made some quality of life improvements. And wrote about them into an itch.io devlog.

I’m going to be writing some devlogs there now and then. Not sure how I will handle the integration with this blog. Maybe just post a link to them here when I write them? What do you think?

Seeking video game writers

If you’ve been reading this blog, I’ve been posting about my efforts to create my own game, Hypnagonia. While technical and game design has seen good progress, I am still thoroughly struggling to come up with a storyline and other similar concepts such as short stories for non-combat encounters and so on.

While I’ve pinged a number of people in the past and some have expressed an initial interest, I haven’t seen anyone yet show any initiative, and I’m not the kind of person who pesters people to help me for free. I don’t even know if that would help or not, but I just can’t do it. If someone to whom I’ve talked, doesn’t show any initiative afterwards, I just drop it.

To that end, I am making yet another attempt to find writers who want to collaborate in making a free software game with a surreal theme and psychological concepts. I already have a barebones idea of how the overarching story should go, but I am incapable to fleshing that out myself.

Due to the scope of the game, I have space for both writers who want to put a lot of effort, as well as those who only want to provide something occasionally.

  • I need a lead writer who will take over the overarching campaign concept, and build upon in their own style. You will have almost full creative control of the main storyline.
  • I need writers who will contribute short stories which to be injected into the game at various points. These include
    • Non-combat encounters inside the dream, which provide multiple-choice options for the player .
    • Storylines around each Injustice objective (example: Write the storyline events through which the player character will breakthrough out of their abusive relationship).
    • Ideas for new Torments and Character Archetypes.
    • Naming for cards with existing effects.
    • Thematic ideas for cards which I (or we together) will translate into game mechanics.

The important disclaimer is that this is a voluntary position, with full ownership of the end-product. You will be contributing your work into the Commons as the game is Free/Libre Software. This means not only will you retain ownership of your stories and ideas, but you will also have ownership of the final game product to showcase your talents elsewhere.

If this sounds interesting to you, please join my discord server and let me know in the #story-design channel. I repeat, I am not one to chase people around and I have a no-pressure approach to collaborators. If you want to help, I’d love to have you, but you need to provide your own drive to create! 🙂

I really want to create a video game that will truly enrich the commons. If you want to be part of this, join me!

Finally, a name

I’ve been working on my Godot-based deckbuilder for a few months now and I still hadn’t managed to find something to call it. I’ve been calling it “Project Dreams” to signify that it’s a provisional name, but it’s been really bothering me that I couldn’t find something appropriate.

So in the past few days, I took the time to start brainstorming for names in the discord server, along with the other contributors. My requirements for a name was

  • It has to be catchy (in a poetic or mysterious sense)
  • It has to somehow refer to one of the main themes of the game (dreams, torments, psychology, surrealism, therapy), preferably more than one at the same time.
  • Bonus points if it includes alliteration or portmanteau.

After tons of back and forth, I was almost done with choosing one of the options, but one of the last things I did, was throw the word “surreal” through a thesaurus, just to see what I find, and it showed me a word I’ve never seen before: Hypnagogia.

Hypnagogia is the experience of the transitional state from wakefulness to sleep: the hypnagogic state of consciousness, during the onset of sleep. (The opposite transitional state from sleep into wakefulness is described as hypnopompic.) Mental phenomena that may occur during this “threshold consciousness” phase include hypnagogic hallucinations, lucid thought, lucid dreaming, and sleep paralysis. The latter two phenomena are themselves separate sleep conditions that are sometimes experienced during the hypnagogic state

https://en.wikipedia.org/wiki/Hypnagogia

I don’t know why it was shown as a relevant word to “surreal”, but it immediately clicked for me, because with only a single letter change, I could create an interesting portmanteau.

Hypnagonia

In case you don’t get it, this is a mix of the aforementioned Hypnagogia + Agony (or “Αγωνιά in greek) and It hits so many of my requirements at the same time:

  • It refers to sleep
  • It references agony (being tormented by your own psyche is a core theme of the game)
  • The original word is close enough to the concept of surreality that the thesaurus brings it up as a suggestion.
  • It’s a portmanteau
  • It sounds exotic. Kinda like a fantasy setting
  • It is unique. I don’t conflict with anything else out there (from what I can see)

I did try a few other variations of this, but I believe this one is the catchiest. And I’m also fed up looking for names, so I just went ahead and finally renamed everything!

In case you’re interested, here’s some other names I was considering:

  • Retrospections
  • Remedy of Reverie
  • Theraltes (Therapy + Ephialtes)
  • Lucidium (Lucid + Somnium)

Where deckbuilders and surreality meet

After Fragment Forge reached its first milestone, I decided to take a break from game development for a bit to clear my head. I started playing a lot of the new interesting deckbuilders, such as Griftland and Accross the Obelisk, I started getting ideas on how to make an infinitely expandable single-player deckbuilder, that does not dilute its card base by constantly adding new cards. Those game’s power-creeping on behalf of the player also inspired me to think of a way to make a deckbuilder which had legacy elements which were not straight up making the game easier.

I just had to think of a theme to marry these concepts into the spire-like deckbuilder formula. The only requirement was that the theme was not vanilla-fucking-fantasy 🙂

Enter Hypnagonia. My first attempt at making a deckbulder using the card game framework work on a deckbuilder formula. Not wanting to reinvent the wheel from the start, I stuck close to the Slay the Spire formula, but added a few twists of my own.

The first one is that you don’t get a preconstructed starting deck. You also don’t do a pseudo-deck construction. Rather like Monster Train, you combine many decks together to select the archetypes of your run. In typical vanilla-fantasy terms, think of it like selecting a class, race, weapon and quest. Each of these comes with their own starting cards, and each archetype selected also can modify your character in many ways, such as modifying their starting health.

Then, on top of that, each archetype selected has its own pool of cards to choose from when drafting. The pool for each archetype is large enough that when you combine them all together, you end up with approximately the card-pool for a single character in other games of this type.

This allows me to add new archetypes, (for example, new “weapons”), without diluting the consistency of card types in any single run. Therefore making for an infinitely expandable game with no downsides. In fact, each new archetype added, increases the possibilities in a run exponentially.

As I said before, I absolutely wanted to stay away from classical fantasy tropes. I also wanted to make a game which is not all about the pure-violence if possible. Not because I have something against Violent games, but because it’s just such a common trope. Griftlands made a cool approach with that, allowing you to play the game almost completely peacefully if you so wish.

But in my case, I decided to move onto the surreal. Not only because it’s not a typical theme, but also because it allows for a lot more possibilities, as well as a lot of humor. Therefore this game will be played in dreams.

Making a game about dreams, allows me to make cards that are anything from typical fantasy, to sci-fi, to absolutely ridiculous. After all, our dreams don’t follow any particular logic and it would totally make dream-like sense for a magic sword, a plasma rifle and a rubber chicken to not only exist at the same time, but be just as effective as each other! In fact, this is why the Rubber Chicken is my very first item (i.e. archetype card pool) which I designed. I want to set the theme just right, you know?

This also gives me an opportunity to move away from the typical terms of violence and death that are typical in these games. I put a lot of effort into making the terminology of the game fit well into its theme. Therefore, you don’t “damage” your enemies, you “interpret” them. In turn, they do not “damage” you, the “stress” you out, and if you get stressed enough, you don’t die, you wake-up!

And this meant that I was making a game with a Thesaurus as my buddy :D. I think it gives the game archetype a nice coat of paint, and I am pretty proud with some of the terms I’ve come up with to signify typical aspects. It also means that I need to come up with different terms on behalf of the player and the enemies, for the same things, but hopefully it’s not too much to pick up. It also allows me to use creative terms which you don’t typically get to see a lot. For example, some Torments clutter your deck with useless cards. I call these, “Perturbations”.

Finally, the dream theme, allows me to create a legacy-aspect which makes thematic sense. But I’ll talk about this another day.

Until then, you can already try out the very first pre-alpha release.

Oh and btw, I am in great need of collaborators for this project. While I can handle the coding, the design, art, sound aspects elude me and I could also use support in coming up with ideas for archetypes, cards and campaign concepts.

If you are interested in jumping in, let me know! As always, this game is Free Software under the AGPL3, so any work you contribute belong to you and the whole human commons.

A call for playtesting and design feedback on Fragment Forge

With the milestone of 100 fully-scripted cards in Fragment Forge, I believe it’s time to switch the focus from prototyping, to playtesting. To this end, I’ve released v0.15 which contains all the latest cards, + 6 personas, over 3 different affiliations.

If you want to help, please download a client, or try it direct from the browser (executable application is way faster though). The application will also open a debug window when it runs. This is normal and you will be useful for any bug-reports.

You can use the single (for now) starting deck, or make your own.

At this point I’m particularly interested in the following:

  • Design Feedback: is the game fun? Is the deck-building interesting? What could be improved?
  • Balance: overpowered cards, broken combos etc
  • Fluff suggestions: Think a card’s name doesn’t fit? Lemme know! I am still looking for better names for the “Zippers” and “Champions” affiliations. Hit me with your best ideas.
  • And last but not least: Bug Reports

Feel free to post your feedback here at the issue tracker, or leave a comment on this post.

A tutorial will be forthcoming soon. Until then, please read the single player rules.

The game GUI is obviously rough around the edges, and the card layout leaves a lot to be desired, but I wanted something playable more than I wanted something pretty. Especially since the design might change in case the rules are adjusted.

It’s been a long road to this point, starting from scratch. Game design + Programming + Playtesting + Story design/Worldbuilding by myself is hard!

At this point I think there’s an interesting core in the game, but I’m not convinced it’s interesting enough to play solo repeatedly. I would be really happy to get some ideas on how to make the solo play more engaging.

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.