Creating an AI for my Card Game! | Echovale Devlog #2

  Рет қаралды 3,721

Curry on Rice

Curry on Rice

Күн бұрын

Пікірлер: 43
@user-q8m8h
@user-q8m8h 9 ай бұрын
the piggy card its amazing
@CurryOnRice
@CurryOnRice 9 ай бұрын
Nice to see you here! Ill register your vote
@watr_melon
@watr_melon 9 ай бұрын
hogs is such a good name
@CurryOnRice
@CurryOnRice 9 ай бұрын
Gotcha friend, ill register your vote
@ibrabdo
@ibrabdo 9 ай бұрын
i like the idea and designs, keep up the good work :D
@CurryOnRice
@CurryOnRice 9 ай бұрын
Thanks friend!
@javierdurini
@javierdurini 5 ай бұрын
Dude this is right up my alley when and if this comes out im buying it
@CurryOnRice
@CurryOnRice 5 ай бұрын
Thank you!!
@bertiedev6478
@bertiedev6478 4 ай бұрын
I have a sudden urge to play jetpack joyride..... Awesome devlog btw, i love the balance of gameplay/tech!
@CurryOnRice
@CurryOnRice 4 ай бұрын
I wonder why ahahah, thank you for the comment!
@NonhostileNPC
@NonhostileNPC 7 ай бұрын
Card ideas: Turdo: a turtle who when dies turn into a shell which could be wear by other card to improve their defense or what ever you like. Here is one of my random ideas I hope you could add some special card that will involve like when you first place it down it an egg and the next round it’s a baby dragon etc and ultimately become a extremely powerful game changing card. If you upgrade maybe you could speed up the time needed to fully involved or maybe it can make it skip stages and just start on a stage.
@CurryOnRice
@CurryOnRice 7 ай бұрын
Those are some good ideas! Thanks for the suggestions
@NonhostileNPC
@NonhostileNPC 7 ай бұрын
@@CurryOnRice ;) very exited for the game
@skatemancory222
@skatemancory222 18 күн бұрын
Awesome video! If this is not too much to ask, I'm wondering if you can please share an example of how you use the GameAI code in your GameState/Game code. I feel like I have it mostly implemented in my code, but I'm running into some sort of infinite loop because I don't think DoMove is properly handling ending the turn and swapping to the other player when "End Turn" is selected. Been looking everywhere for some sort of sample code, but this is the only video I found that uses it 😅Echovale looks really neat so far watching all your devlog videos! Keep up the great work!
@Pirochiro
@Pirochiro 8 ай бұрын
How do you handle the player turn during the simulation? Do you give the CPU player access to the player's hand and deck for the look ahead or does it generate dummy data or something?
@CurryOnRice
@CurryOnRice 8 ай бұрын
That's a great question. The CPU player DOES have access to the player's hand, though I shuffle their deck (so they dont draw cards in the same order in the simulations). This makes it a cheating AI, though there are ways around it that I'll implement when I rework the AI. Namely, you can reshuffle their hand into their deck and then redraw that many cards, such that in each simulation, the player's hand is a new sample of cards from the deck (and therefore, the AI doesn't know the actual player's hand for the simulations) - this is called Information Set MCTS (IS-MCTS). This all still implies that the AI has access to the player's decklist, but I find that much more reasonable (players normally know what kind of cards are in the opponent's deck, anyway)
@Pirochiro
@Pirochiro 8 ай бұрын
@@CurryOnRice ah thank you so much!
@CurryOnRice
@CurryOnRice 8 ай бұрын
@@PirochiroNo worries, friend
@CurryOnRice
@CurryOnRice 9 ай бұрын
Thank you for all your support everyone! If you want, wishlist Echovale on steam: store.steampowered.com/app/2815180/Echovale/ or join the discord: discord.gg/AVY6Um4kjG
@rlwarner777
@rlwarner777 5 ай бұрын
I think it would have faster load time with resources instead of json.
@CurryOnRice
@CurryOnRice 5 ай бұрын
Hi! I appreciate the comment, but: 1) i don't think that's the case (they're both just text files) 2) i can't use resources with c# 3) it's not relevant in this case since i'm preloading all the card data into memory anyway Godot's resource system is great but I'm trying to avoid it as much as possible and keep everything with jsons so that the game can be modded easily
@rlwarner777
@rlwarner777 5 ай бұрын
@CurryOnRice I failed to mention that resources support multi-threading. See the load_threaded_request method. I figured you would need to use resources due to the many limitations of json, such as needing to custom convert the text into variables, which is prone to spelling mistakes. The other limitation of json is that it makes it much harder to code all the card effects these types of games are known for. Resources would be my choice because they can hold signals and methods. For example, you could have a monster card that sends a signal to draw a card when it gets destroyed.
@CurryOnRice
@CurryOnRice 5 ай бұрын
@@rlwarner777 Thank you for your insightful comment, I actually didn't know about multi-threading for loading resources or about resources holding signals. All the card game logic is handled via pure C# (i.e. with no calls to Godot's API), so I wouldn't be able to use resources even if I wanted to. The card effects are actually handled via half-hardcoded C# scripts. I say half hardcoded because the technical implementation is actually fairly good and not prone to issues, but the next step would be to use source generation such that I could have a custom C# script for each card (which would also make the game moddable enough to be able to add your own cards into the game). I think your approach is good, but the way I've handled everything is the best way to have high-performant AI.
@Frandibujacosas
@Frandibujacosas 6 ай бұрын
Woah your project looks like so cool! Please share with us how to code something like this! I wat to learn :D
@CurryOnRice
@CurryOnRice 6 ай бұрын
Thank you! There’s a good Godot slay the spire-like tutorial series out there on youtube that i recommend! What I’m working on is a bit more complex but those tutorials are a good starting point!
@TexanFoxx
@TexanFoxx 7 ай бұрын
damn is gdscript really 10x slower than c#? :/ do you think it'll likely get fixed in the future? are you using just c# for this part or for the rest of the game going forward?
@CurryOnRice
@CurryOnRice 7 ай бұрын
it’s not really something that can be fixed, it’s just the nature of the language. For most applications, it doesn’t really matter, but for things that require heavy computing, like card game AI, it makes a big difference. In theory, i shouldnt really need to use c# again for anything else, and using gdscript is much easier
@TexanFoxx
@TexanFoxx 7 ай бұрын
@@CurryOnRice Ah, so you are just using it for the card game AI. I'm brand new to game dev, and didn't know if the engine could just swap back and forth as needed. That's very useful information. Your game and updates look sick man, I'll probably come join the disc when I have more time to actually contribute.
@CurryOnRice
@CurryOnRice 7 ай бұрын
@@TexanFoxx Yup. Using two languages isn't actually very common, since operating between the two can be tricky. Luckily, for a card game, it's not too complicated. And thank you! Feel free to drop by anytime!
@Domse65
@Domse65 4 ай бұрын
you should have compiled the game to an exe and then played it on your moms pc. Just running from the godot editor It attaches a debugger and doesn't do as much optimizations and slows down the performance
@CurryOnRice
@CurryOnRice 4 ай бұрын
that's actually something i didn't know, but i actually did try to run a compiled version at first. i was having some issues though with exporting from godot, and didnt really want to bother fixing it, which is why i ran it from godot directly
@Domse65
@Domse65 4 ай бұрын
@@CurryOnRice well you did the worst case scenario so it's not bad :D Maybe it's smart and doesn't attach debugging and does optimizations everytime, but as a general practice it's best to test this sort of stuff on a compiled finalish exe file
@PaahtimoGames
@PaahtimoGames 9 ай бұрын
Great video! Is Godot good choice for card/UI focused games? I am thinking of using Godot for my next game which is also a card game.
@CurryOnRice
@CurryOnRice 9 ай бұрын
hey friend, thank you! in my opinion, it's a great choice (especially if its 2d), godot is great in general, very intuitive and way more lightweight than unity/unreal. its node system works pretty well for card games too. the only scenario for which i wouldnt recommend it is for demanding 3D games, which probably wouldn't be your case. ive recommended this tutorial multiple times already, it might be worth looking into: kzbin.info/www/bejne/q53KmZKkmrl9fZo
@PaahtimoGames
@PaahtimoGames 9 ай бұрын
@@CurryOnRiceThank you! I will check those!
@cyber_habanero
@cyber_habanero 5 ай бұрын
@@PaahtimoGames Godot is even good now for 3D games, I use it for VR too, where it is not on the UE level yet, but open source and advancing on every new engine version.
@kati870
@kati870 9 ай бұрын
you probably already have better ai than ubisoft npcs
@CurryOnRice
@CurryOnRice 9 ай бұрын
Ruthless lol, thanks for the comment
@imhuman5118
@imhuman5118 6 ай бұрын
Card idea wheat guy: for every card the player have he got +1 atc hp3 atc5
@CurryOnRice
@CurryOnRice 6 ай бұрын
Good idea friend!
@imhuman5118
@imhuman5118 6 ай бұрын
jaycon the bacon 1:20 or non halal animal siners meat also im muslime and this is not racism it is the troth
1 Year of Game Development | Echovale Devlog #3
6:35
Curry on Rice
Рет қаралды 4,1 М.
Balatro's 'Cursed' Design Problem
13:31
Game Maker's Toolkit
Рет қаралды 757 М.
МЕНЯ УКУСИЛ ПАУК #shorts
00:23
Паша Осадчий
Рет қаралды 3,6 МЛН
What type of pedestrian are you?😄 #tiktok #elsarca
00:28
Elsa Arca
Рет қаралды 17 МЛН
TCG Theory - The 1-Cost Problem
8:12
tcgAcademia
Рет қаралды 148 М.
The Internet Played My Game (and it did not go well)
9:27
advancenine
Рет қаралды 261 М.
We Added En Passant To Our Chess Game - Devlog 5
8:27
Iteration Games
Рет қаралды 1,6 М.
Finishing my Dream Game After 4 Years
5:44
Goodgis
Рет қаралды 128 М.
I Added a Deckbuilder to my Game in Only 10 Lines of Code
8:45
Casually Creative
Рет қаралды 2,7 М.
Every game needs this feature! | Devlog
6:03
Challacade
Рет қаралды 60 М.
AI Learns Insane Monopoly Strategies
11:30
b2studios
Рет қаралды 10 МЛН
Polishing the Graphics for my Indie Game
6:31
Goodgis
Рет қаралды 48 М.
Simulating an ENTIRE Ecosystem... | Devlog 4
8:11
SigmoidDev
Рет қаралды 87 М.