Jesusemora changed the title to Prototype Card based RPG combat .

Jesusemora I realized that the project was taking too long, over a month to model each mech is too much, It would've taken me at least a year to get to a playable game, It was not feasible at the moment.

Card games, a lot of them lately. (It doesn't make sense to me, since I'm not into them.) And turn-based mech battles are very fresh and exotic. Maybe it would make sense to release a small prototype, for example, only with battles without a story (or with a very truncated)?

    Tomcat Card games, a lot of them lately.

    perhaps, but I find each to be different, there are a lot of things that can be done with cards.
    card games are easy to code if you know what you are doing, and good practice. they also don't require as many assets and these don't need to interact directly with each other. It lets you focus on the code while using placeholders.
    I'm unfortunately better at coding than I am at art.

    Tomcat turn-based mech battles are very fresh and exotic.

    but I saw at least 8 different turn based mech games in the last month. like mech engineer, mech tactics, and one called metal storm coming out this year (I'm gonna have to rename 😆 ). There are also older games like into the breach and battletech. I don't think it's that fresh, though it doesn't matter.

    Tomcat Maybe it would make sense to release a small prototype, for example, only with battles without a story (or with a very truncated)?

    I thought about it, I would have to add victory and defeat conditions, which should not take long. most of the bugs were fixed.


    but this was about making a game I could finish within the next few months, It doesn't matter if I end up selling it or releasing it for free, I feel like I need to take that next step in game development, because I have a lot of impressive prototypes but not much to show. The good thing is I'm reusing assets from some of those prototypes 😃.

      Jesusemora but I saw at least 8 different turn based mech games in the last month.

      Strange, maybe I missed it, but I haven't come across that many. But there are much more card games 😸

        Tomcat ok maybe I got confused, many are not tactical games, but they are mech games. and many new games have anime style too.
        that said, I haven't seen many upcoming card games, other than slay the spire 2 (which I had never heard about before they decided to move to godot).
        but the ones I've seen there are 3 types: there are puzzle games, there are multiplayer yu-gi-oh style games, and there are roguelikes.
        my idea is similar to a roguelike but I will try to give it a more linear story and levels, and the combat system is different, I will use mostly cards for everything and only the enemies will be not cards.

        so let me explain, each card will be an action that one of the characters can take. I haven't decided if there will be some energy resource like mana for playing the cards, or if you just play cards until your hand is empty, but I should add a button for reshuffling the hand and ending the turn, so you don't consume the one use cards like the chair.

        I'm planning on having item cards for a simple inventory, and character cards to have companions join you. you can form a party of up to 4 characters, and each will come with their own deck that is added to your cards.

        so far I'm planning to add 4 classes: barbarian, wizard, rogue, and either knight, cleric or druid

        you can then edit your deck and chose the cards you want.
        there will be some sort of level, you go into an encounter and draw cards.
        you fight the enemies in front of you until you defeat them or die, then go back to the level.
        when a character is killed, their cards will be removed from the deck and maybe also hand, so you will have to keep a variety of cards instead of relying on a single character.
        finally, there will be some kind of town where you could shop, heal the characters, find missions, etc.

        that's more or less the game. I might cut some content so I don't over-design a too big game again.
        I will try to finish it by October.

        update: I made a rudimentary character creation menu and some characters.
        these characters will appear in the inventory or maybe around the world and it will be possible to change their armor and equip them with weapons.
        the sprite will remain in the same position like in elder scrolls 2, which will make it easy to paint the armor sets and weapons over.
        the characters are currently made out of a number of sprites, one for the body, one for each clothing item, and one for the head. there is also one for the ears and one will be added for the hair.
        I used a shader to change color, maybe it's not the best approach, but I couldn't think of anything else. it still works in the browser though.

        so that's it, the character appearance is 70% done, next is character class which will incorporate starting decks, and then some sort of level for moving between encounters.

        I've been working on gameplay, added two new card effects.
        the first one lets you draw cards of a character class.
        cards can be one of 5 classes, these are "normal", which can be used by anyone, "barbarian", "wizard" and "rogue".
        the second one lets you draw cards containing an effect.
        I used this last one on the Rage card, it now draws 3 "damage" cards from the deck.

        I also added some better placeholder art, automatic enemy spawning, and damage to the player party. I also implemented block, which is like extra health.
        the cards I made so far are:
        Sword attack, throw rock, throw axe: they deal damage.
        throw chair: deals a lot of damage and is removed from the deck and play after using it.
        rage: draws 3 damage cards and get reshuffled
        second wind: heals 8, draws a card and gets reshuffled
        fireball: wizard card, deals a lot of damage and gets removed from play but not from the deck
        shield: gain 4 block
        healing potion: heal 4

        I'm trying to think of new effects and cards to make, I think next will be some card that applies bleed, some AOE, self damage, discard cards, maybe some curse and more things like burning, freeze, etc.

        update: added the discard mechanic with some difficulty. it looks really cool.
        added a new card reckless attack which deals 10 damage and discards a card.
        for discarding cards I had to create a variable queue_discard to which are added the number of cards to discard. then, when the card_played function runs (after playing a card), it picks random cards from the hand and discards them. I then create a PreviewCard and tween it on screen to look like its being tossed.
        This gives me an idea, discard cards by class and effect.
        a barbarian card that picks a random card of another class and discards it.
        update: added a mechanic to generate random cards of a class, and one to discard cards of a class, but they only work with one class at a time.
        I made lots of fun barbarian cards:
        indomitable spirit: generates 3 barbarian cards, heals 2.
        random rubish go: discards a random wizard card, generates a barbarian card and deals damage.
        mead: heals 1, generates a barbarian card and gets removed from the deck.
        these hands: generates 1 barbarian card, deals 4 damage.
        so barbarian is turning into a class that deals damage, discards cards, and then generates random cards to replace them.

        I also added a end turn button that reshuffles the hand, this way you can save certain cards (like 1 use) for later encounters, or non-reshuffling ones.

        miniupdate: I have been working on improving the animations and little things, though I should be working on enemies and levels.
        I managed to put the cards into a fan, I did it for sort_hand as a test, now I need to apply it to the other animations. I also added the effect of the cards burning when they are discarded, I think it's good enough.
        I also added an effect when hovering over the cards, they not only appear in front of others but also get a border highlight.



        The placeholder card graphics look cool but I need to make it more clear which cards do what.
        There will be 3 types of cards: "normal" cards like attacks and shields, "magic" cards with effects, and "one use" like the chair.
        The will have to be something to differentiate the cards that get reshuffled, the ones that don't get reshuffled, and the ones that are removed from the deck.
        I've also been thinking of giving each card a different color per class. I need to make some new assets.
        Normal cards: grey like stone or paper.
        Barbarian cards: will have a reddish background and look like rock. special cards will be red with a golden border.
        Rogue cards: I'm thinking orange or brown, like cloth or paper. special cards will be orange/brown with a dark steel border.
        Wizard cards: Blue like water. magic cards will be blue with a white border.
        Druid: Green like vegetation. magic cards will be dark green with a colored border.
        and some maybes for the future:
        Cleric: White like stone, magic white with a golden border.
        Paladin: yellow. Necromancer: black. Witch: purple.

        Jesusemora card games are easy to code if you know what you are doing

        😆 isn't the case for everything ?

        In order to complete at least a single project, I advise you to lower your expectations and accept imperfect and incomplete game, or you'll never end anything !
        You could look at Cave Crawler or Putrid Shot Ultra to figure out a good game doesn't need most of cosmetics to be good or more.

        Looks at changelog of many indie games, astonishing games have a lot, really a lot, of iterations, starting from unnoticed, boring, flat game to something smooth, with very nice visuals and sounds/musics. For instance Infinitode2.

        Big studio/prof. devs won't show much iterations they've been through and as they're pro, it's faster/more effective (sometimes) for them than indies who don't already master (almost) everything like someone who seek for a full-time job.

          JusTiCe8 Jesusemora card games are easy to code if you know what you are doing

          😆 isn't the case for everything ?

          well no, the way I'm coding it I can start with a modular base and add mechanics over time.
          the good thing about card games is that you only need some image for the card and text, and I am kinda good at making lots of renders fast.
          Card games can be very complex or very simple, I don't need to make full rigged 3D models or sprites, and using renders means I don't have to worry about performance or how to fit the models together.
          Not having to worry about animations, not having to worry about timing or combining these animations, not having to worry about movement of enemies, collisions, it takes a big weight off my back.

          Tbh I have never done a card game before, I'm kinda winging it, but it's going well so far with the CardEffect resources and a single card scene and tweened animations combined with the Control drag_n_drop.
          If I had to start over I would probably do it in 3D like everyone else, since it would allow the cards to flip around and follow a global transform rather than the Control layouts.

          JusTiCe8 In order to complete at least a single project, I advise you to lower your expectations and accept imperfect and incomplete game, or you'll never end anything !

          I know, and I'm trying, It's so hard!

          JusTiCe8 You could look at Cave Crawler or Putrid Shot Ultra to figure out a good game doesn't need most of cosmetics to be good or more.

          I've already started downgrading the visuals, I replaced those rendered card backgrounds with something simpler, though for clarity reasons. I'm also seeing a scenario where I start to use drawings for the cards, I still consider these placeholders.

          JusTiCe8 Big studio/prof. devs won't show much iterations they've been through and as they're pro, it's faster/more effective (sometimes) for them than indies who don't already master (almost) everything like someone who seek for a full-time job.

          well big studios have lots of people working on different parts of the game, I'm alone, I can't just say "this part isn't my job", because everything is my job.
          I like posting what I'm doing to hear some feedback, maybe hear some ideas.

          update: made a great change, previously dragging a card on to an enemy caused them to immediately take damage. now, dragging a card with effect will cause a particle to spawn at the portraits and move across the screen, hitting the enemy in the face. It's so fun now.
          And with that I will stop working on the combat and focus on making levels. I'm thinking of making these out of cards that fold out from a deck and offer 1 to 3 choices for the player. Still not sure if I will allow backtracking or just make a more roguelike linear level.

          this was exhausting. I managed to create a level generator!
          the idea was to proceduraly generate a linear level with an entrance, an exit, and some things in between.
          I also made a deck that draws the cards on the "table".

          I faffed around for far too long trying to first make a system to generate a map through a modified pathfinding algorithm and then for some reason (performance maybe?) tried to cramp the data into a linked list of interface resources, which would then retrieve tile card resources for the world card class.
          but decided to abandon it after it became too difficult to follow, I left some of the map generation and instead left the data in an array and used a simple pathfinding to get the adjacent unexplored nodes.

          now, the map starts by the deck drawing 1-4 cards, and then when clicked on a card it moves the player avatar and draws adjacent cards from the deck without repeating.
          If I had more intelligence right now I would make the bitmask work to get better connections, but just having tiles that are not drawn I think is enough.
          btw this part is 3D to take advantage of better card animations, the player will not animate and instead act as a cardboard cutout that moves up and down towards the card, like a tabletop game. it is using a viewport because I could not be asked to create yet another copy of the player for 3D, but I could change it later.

          4 days later

          so a lot happened:
          the code is getting more complex but I managed to connect the map scene to the combat scene. I also made some improvements to the map generation. there was a bug that caused only 4 cards to be generated, because it was random, now it fills almost the entire map because it's based on a number of cards. I need to find a middle ground between the two.
          now combat cards are drawn and I can add any other type of cards, because I input an array and it fills a position in the path every 3 cards. entering a combat card causes combat to start (almost too immediately).
          defeating the enemies takes you out of the combat and back to the map, and you can enter another combat card. combat cards get depleted, but I haven't work on art for the world yet.
          this is an actual game now, It's only missing defeat conditions and some end, but it's just a matter of adding more world cards.

          I also added a menu for changing resolution, volume, going fullscreen and exiting the game.

          I also added an animation to tell the player that a card is reshuffled, the card kinda falls near the general "deck" area and out of the screen (need to tweak it too).

          when it comes to new cards, I added only two:
          use the head: damages an enemy but also damages allies, and then the card returns to the hand to be used again. this card is diabolical.
          shiv: the first rogue card, this card damages a random enemy when drawn. the effect it has is that it draws a card.

          so: barbarian has cards that generate cards of his own class, discard random cards, heal a little, and can also damage friendly characters.
          wizard will get powerful one use spells like fireball, and some cards that return to hand after being discarded.
          rogue will have cards that deal damage when drawn or shuffle other cards into the deck. I'm also thinking some traps and maybe effects like bleed. I need to think more about it, for now if there's a mechanic that I like, I will add it.

          the cards have a number but I'm not using it, the cards will not have a cost, you can play as many cards as you want until your hand is empty. "let's just say you don't pay with points". this is what will make my game different from others deck-builders.
          So I need a new use for these points, like some special ability that charges, or just experience.

          on the art side, doing renders I think will be too difficult, so I will be drawing all the cards by hand and then (maybe) painting them.
          I was going to use gimp but I'm tired of the stupid GTK3 sliders, it's very annoying. gimp used to be good back in I think 2.6, but they ruined it.
          So I tried another program I had very little experience with: Krita. Krita is so much better than gimp, it has shortcuts, I can add a layer by pressing Insert. I made a potion and was much faster and more comfortable.

          don't mind the grunge, these are from an old drawing.
          I'm going to replace most of the art, at least the art in the cards. the character will remain as it is, and the enemies are a maybe.

          Now I gotta go and start drawing.

            Jesusemora Now I gotta go and start drawing.

            Watch out. May take months, possibly years.

              Jesusemora So I tried another program I had very little experience with: Krita. Krita is so much better than gimp, it has shortcuts,

              Yeah, I started using it a couple of months ago and it seems really good. As for Gimp, well, I tried it 20 years ago and it never really clicked for me. Have been mostly avoiding it since then.

                update: I didn't have much time, but I used it well. I came up with a new algorithm for generating the map that is just PERFECT. I got the idea from the gimp maze filter, so I started to think of a way to do it.
                I use the same pathfinding algorithm, but when finding neighbors, I check that the neighbors-neighbors in voxel3 sum a total of 5 or more (every tile starts at 1), and then when adding them to the path I set the tile in voxel3 to 0.
                what this means is a sort of tree with random roots is formed, but the roots never touch and there is an end. and it's much cheaper that the wave function collapse people keep talking about so much.

                I also added a new rogue card:
                ace up the sleeve: shuffles a copy of your hand into the deck.

                xyz Watch out. May take months, possibly years.

                luckily I have a pile of old drawings to use in a hurry.

                Toxe Yeah, I started using it a couple of months ago and it seems really good. As for Gimp, well, I tried it 20 years ago and it never really clicked for me. Have been mostly avoiding it since then.

                apparently krita is used to draw anime.
                I have been using gimp for over 15 years, it didn't seem bad to me. but the devs have made some very bad decisions, and add to this the deplorable state of GTK usability, like the fact that old gimp versions are not available, compiling GTK2 is f***ng impossible, the stupid thing is written in C, but it was this one annoying GTK3/4 slider widget that drove me crazy with how finicky it was, that was the rhinoceros that broke the camel's back.

                • Toxe replied to this.

                  Jesusemora Krita is so much better than gimp

                  These programs have slightly different purposes. I use them together. Painting, yeah, is easier in Krita.

                    Jesusemora and add to this the deplorable state of GTK usability, like the fact that old gimp versions are not available, compiling GTK2 is f***ng impossible

                    Ugh, this is giving me PTSD. 😆 GTK was truly terrible back in the day and the UI of the old Gimp versions that I tried using was atrocious. But to be fair to Gimp I should really give it another try these days.

                    Thinking about it, weren't they working on a modernized version 3 or 4 or whatever to be released Soonâ„¢?

                      Tomcat what IS gimp better at? the only advantage I see is more filters and maybe opening obscure formats, but we have so many more alternatives these days, you just have to go and try them.

                      Toxe Ugh, this is giving me PTSD. 😆 GTK was truly terrible back in the day and the UI of the old Gimp versions that I tried using was atrocious. But to be fair to Gimp I should really give it another try these days.

                      I actually liked the older version better, it might have been ugly, but it was made with practicality in mind. GTK these days thinks its f**ng apple, with their menu-less windows and gnome integration and fancy yet unusable sliders. The only thing it has going for is it's stable and works.

                      Toxe Thinking about it, weren't they working on a modernized version 3 or 4 or whatever to be released Soonâ„¢?

                      KDE3/4, a GUI written in C that forces you to write a CSS. the worst of high and low level programming rolled into one. It has been in development since forever.

                      update: fixed a lot of bugs, glitches and small details and worked a bit more on map generation. also worked towards connecting the parts of the game so I can release a demo soon.
                      the player now spawns in a tile, and can only move to adjacent tiles left, right, up and down of the current tile. the code is still very messy, but it doesn't matter, I think the "combat" phase is more important.
                      I added some placeholder images to the world cards so I could setup the shader.
                      I made some assets for character avatars, like a wizard's robes and a helmet, then connected it to the character creation part and cleaned up a bit. in the character creation it is now possible to select a class and it displays the cards.
                      I also had to remake the Minotaur to add a death animation, I will add new enemies eventually, for now you go around town getting jumped by minotaurs, and it will probably be like that in the demo.

                      I also made some assets for the cards and added two new rogue cards:
                      You've activated my trap: draws 3 rogue cards
                      We don't need this: sends a non-rogue cards from the hand back to the deck

                      I noticed from playing the game that the hand tends to get filled with garbage cards from generation, and undesired cards. When using "ace up the sleeve" you don't want to duplicate a card like "use the head" or simple attacks like throw rock. while reckless attack can be used to get rid of these cards, it has a risk of discarding good cards. "We don't need this" gives a change to get rid of undesired cards, and since it returns them to the deck instead of discarding, cards with discard interactions can be removed from the hand this way.
                      "You've activated my trap" on the other hand plays really well with sneak, since it draws rogue cards, it can draw the sneak attacks or useful rogue cards.

                      Hopefully I will have a demo ready this month. as soon as I can add victory and defeat conditions.
                      In the demo you will play as barbarian (with the barbarian starter deck) and maybe rogue if I keep adding cards. you will explore a town that unfolds like a maze and search for the exit.
                      I should add some "discover a new card" event to make the game more interesting than just fighting the same enemy over and over again, but I will need the ability to edit the deck for that, which will take some time because it requires yet another set of inherited classes and card assets (maybe I can reuse PreviewCard).
                      There will hopefully also be some "buildings" with events by then.

                        I've arrived with the follow announcement:
                        GTK is bad.

                        cool game by the way. i think your mechs are cooler, but make a man create something he doesn't want to, and the result is invariably trash. you do you.

                          packrat cool game by the way. i think your mechs are cooler, but make a man create something he doesn't want to, and the result is invariably trash. you do you.

                          it's not that I don't want to work on the other game, but it's a big project, I planned too much. Things take time and I'm a solo dev. I will revisit it in the future, I always do, but for now I'm trying to actually finish a game and publish it on a time limit, sort of like a game jam, to get better.

                          update:

                          Jesusemora I also had to remake the Minotaur to add a death animation, I will add new enemies eventually, for now you go around town getting jumped by minotaurs, and it will probably be like that in the demo.

                          Jesusemora make the game more interesting than just fighting the same enemy over and over again

                          Good new everyone! after saying this I began to think and yes, fighting the same enemy over and over can get boring.
                          So I looked around my folders and found some monsters I had completely forgotten about (Or didn't remember having finished them). They were complete with animations so all I had to do was render them.
                          A lizardman and a skeleton. the lizardman was missing a death animation so I made one quickly, and added the skeleton to the game. Maybe I should've put some texture on the shield and spear, but it looks pretty good:

                          They even had a "raise" animation so I'm thinking that these could respawn or be summoned by some boss.

                          Update: added the lizardman, it has 2 variants, one with a club and one without. the one with the club deals more damage.

                          And with this I have ran out of monsters. I would have to edit the models to add more detail or finish the others. there's a dragon and wyvern models but have no texture or animations, some imps and demons also lacking textures and animations, a ghoul missing some animations and a texture, and a death knight (also missing animations and textures).
                          I also improved the map generation yet again, and I think this will be the last time. It's pretty robust, it generates the exit at the other side of the map, and even multiple paths, and all separated by at least one tile, with empty spaces:

                          the combat tiles also now spawn random enemies, either one minotaur, 1-5 lizardmen, or 1-5 skeletons.

                          Update again:
                          added two more rogue cards. while this sounds like little, they came with entirely new mechanics that allow for more card types.
                          Instigate: (couldn't think of a better name) for the rest of the encounter, increases all damage by 1. this effect is immediately updated on all cards descriptions and future cards and it works. I also made an alternate effect that increases healing, could also be used to reduce healing, and enemies could also reduce damage dealt by cards in theory, but may not be a good mechanic balance wise.
                          Shank: this card deals 3 damage and applies 1 tick of bleed. and with this I introduce yet another set of classes with the buff/debuffs for enemies. the bleed happens at the start of the enemy turn and goes away after the ticks are depleted.
                          With this I also introduced damage types and resistances. skeletons can get the bleed effect but receive 0 damage from it due to 100% bleed resistance. I may change it so they don't get bleed debuff at all, I may not.
                          With this it will be easy to add other damage types like fire, maybe ice, and lightning, and more.
                          They also have an alternate function to get bonuses for the points, this could be used to reduce enemy damage, or for enemies to buff themselves, increasing their damage. Or to get regeneration and heal every turn.

                          Jesusemora what IS gimp better at?

                          1. GIMP works better with transparent images. For example, it has cropping of empty fields, which is not available in Krita.
                          2. much easier work with animations (.gif).
                          3. if need to make an icon in Win, it is done with one command.