#I feel like stuck in tutorial hell trying to make a TCG

1 messages · Page 1 of 1 (latest)

twin falcon
#

Guys i need some help I feel like i'm stuck in tutorial hell:

So i'm trying to build a TCG and i've been trying to do it since months ago though I'm struggling as it's my first project (and i do find TCGs extremely complex)

I did take a couple of unity courses, but they don't really go about teaching the logic behind making a TCG game, even TCGs courses don't focus that much on the programming part and mostly focuses on the aesthetic part of the game and barely explain how they reasoned through their scripts and the game mechanics, which keeps the TCG logic pretty vague

I've even tried to use AI (which thankfully it was actually the most helpful one, i managed to get a basic idea of how the foundation of the game would be like and at least managed to know how to reason and understand the first scripts (though due to AI's limitation,as the project grew bigger it started bugging and crashing, not to mention that it was a bit of hard to understand the advanced scripts)

I have the ideas, i have the concepts, and i do know how my final game would look like and what sort of game mechanics it'll have,

It's just so overwhelming trying to make the main menu, the inventory of the player, the cards, the creatures and connecting all of that to the battle scene and the player's progress and player's savings, connecting the creatures with the cards and with the inventory and then drawing cards, etc

I tried to break it down into smaller manageable pieces, yet connecting the scripts with each other sounds pretty complex and abstract

Anyway what am i exactly missing?? I feel totally enable to even get a functional prototype

I figured out it would be helpful to talk with someone experienced in Unity which is why i'm here

Thanks in advance

red sierra
#

Everything in your own message is telling you what youre missing. You can have all the willpower in the world, but willpower wont code your game

slim ivy
#

There is indeed a massive amount of minutae involved in even the most basic game- just gotta power through, 1 step at a time. The connections between your various "parts" are always the trickiest- asset and game object references are the way I go for this stuff.

wintry cape
#

A TCG is a very advanced project. Not for beginners, to be honest. Start with something simpler.

twin falcon
twin falcon
twin falcon
slim ivy
#

whats TCG stand for, by the way? I'd suggest as a starter project: the stuff that goes AROUND a game, menus, saving/loading "game" files, storing user settings, credit screens, etc.. even this stuff can be time consuming and tricky. Certainly NOT as fun a prototyping a play-style or some special effect, but equally as important in a finished product

wintry cape
#

trading card game

slim ivy
#

Then I work on figuring out run stuff like "loading" in the background without freezing the ui.. FYI: the term for that is asynchrnous (an awful/inaccurate term) and get REALLY tricky, fasy

twin falcon
slim ivy
twin falcon
slim ivy
twin falcon
#

smart idea thanks

#

do you have any suggestions??? like high quality courses to take that goes around teaching asynchrnous (loading in the background)?

slim ivy
#

I'd hold of on the async stuff for now.. thats a pretty advanced topic- you want to learn it eventually, but I wouldn't start there. I suggest a simple menu: "show image", "load image", "options", "quit". Courses, I'm afraid I have zero suggestions there. oh no wait.. I DO, but I worry it migt be more intermediate/advanced that you need right now, but hold on lemme find the link

#

https://catlikecoding.com/ I LOVE this guy.. not video's just step by step "papers".. easy to review and see whats he's doing

twin falcon
twin falcon
slim ivy
#

sounds good- poke me here if ya get stuck, have a Q

worn fern
#

hi I have a recommendation if youre new to C# and programming in general, it's microsoft's C# course that covers pretty much everything you need to know to understand how to write code in general instead of copying a million tutorials without understanding why you're having errors and whatnot. I wish I started with this before spending hours in tutorial hell lol hope it helps 💯

#

Ive been doing it the past 2 days and I highly recommend it before starting on the unity stuff at all

twin falcon
twin falcon
wintry cape
# twin falcon Well unfortunately that's true, do you have any suggestions what to do??? Btw I...

If you're a CS student, a TCG is the kind of game that will suffer greatly if you don't:

  • Keep a strong line of separation between your data model and your presentation layer. Read/learn about architectures like the Model View Controller (MVC) pattern.
  • You need to be very aware of how data is represented and handled at each level (in a "battle", in memory for the current overall game state, in storage (on disk))
worn fern
# twin falcon how long have you been trying to learn Unity? it totally depends on the courses...

like 2 days, I tried for a few hours like a year ago but got overwhelmed even faster than you I only did the official Unity Learn tutorials and spent many more hours making no progress lol. I have 0 coding experience or background. I decided to try again here recently but do it correctly from the ground up and having much more success. Ive never taken a programming class or anything but this microsoft course is really great so far

wintry cape
#

And for the card behaviors themselves, that's a bit point of difficulty as well. The way to handle making the cards all do unique things will range all the way from:

  • Writing a class per card, for example, to do the things it needs
  • Having a data-based model that uses lots of prewritten rules, switches, and other things to build the behavior in a building-block way
  • Implementing an internal scripting engine (e.g. using LUA or something)

This part will be the most trouble probably

twin falcon
wintry cape
#

other than loading/unloading data or scenes

twin falcon
wintry cape
#

I guess maybe you're talking about for animating card effects over time, that kind of thing?

#

You can use coroutines or async, certainly.

twin falcon
#

for the moment, what i'm struggling with is after I made my scriptable object script for the creature's of the game, i had a hard time connecting it to the inventory then to the battle scene, in other words

( the creature that (holds an inventory (which is a part of
I made from inventory slot) the players
scriptable object script) inventory)
Creature asset → Inventory slot → Player's inventory

and from the PlayerInventory the player chooses his team which is later called in the battle scene

my problem is how do i connect them together?? I checked with AI it said something about Runtime and scripts running in the background that aren't neither MonoBehavior scripts nor ScriptableObject scripts, I couldn't really understand what it meant by that I still can't get how am i gonna connect them

if you want i can share the scripts.

wintry cape
# twin falcon Well if you don't mind it I could share the diagram plan that i made with the he...

yeah this is the problem I mentioned of understanding how your data is represented at different times and having a clear separation of concerns. You need to think about and model what each of these will look like:

  • Card data at rest in a SO
  • Card data saved in a saved game file (does it need to be)?
  • Card data at runtime (just in your collection)
  • Cards in a battle

There is probably an actual Card during a battle that needs to have data around it like "this card is on cooldown, or has counters on it, or is tapped) and that's unrelated to the "base card data" which might be something like a ScriptableObject

#

if that makes sense

twin falcon
wintry cape
#

my problem is how do i connect them together?? I checked with AI it said something about Runtime and scripts running in the background that aren't neither MonoBehavior scripts nor ScriptableObject scripts, I couldn't really understand what it meant by that I still can't get how am i gonna connect them
Definitely take the basic unity tutorials if you don't udnerstand this bit

twin falcon
twin falcon
#

Much appreciate your help!

twin falcon
slim ivy
#

possible useful terms in this context: STATIC data, and DYNAMIC data ... Static data would be stuff like the card pictures, the stats for each card, etc... stuff that does NOT change between runs of the game. Dynamic data would be stuff like which cards are in play right now, how many hit points does the player have- different every game-play. static data is often stored in ScriptableObject derived types, and dynamic data is usually used by, if not stored in, Monobehavior objects. ScriptableObjects live on disk, Monobehavior objects live in your scene (at least, usually, exceptions apply, cuz of course they do- but its a good rule of thumb when starting out) @twin falcon

#

(though I said that's somtimes where dynamic data is stored, you probabaly DONT want it actually stored in a Monobehavior class- because you'll probably want to SAVE this info at some point, so keeping it logically separated is useful).