Need help with development plan for card game components

So I am making a card game game for unity based off of this

https://www.kickstarter.com/projects/wyvrengaming/onami-a-card-game-of-strategic-manuevers

(I am also doing the Kickstarter, so no worries about rights =))

I am trying to understand a plan of how to assemble the game and the components as I am fairly new to Unity, but not software development in general. I know C# very well, so thats not a issue.

So basically here is what i have so far.

  1. I have imported the assets and created each card using a 2 planes, one for the front of the card and one for the back.

  2. I have created a game object for each card and put the board on the screen

  3. I know i need to make a deck, but not sure how to get going there.

  4. Kind of clueless

I am basically trying to get a basic structure of how i should develop the game, and look at tutorials on how to make the rest of it from a component stand point.

I know i need to create the ability to shuffle said deck once i have it created.

I need the ability to draw 5 starter cards for each side

The ability to drag and drop eachj card on to the board and have it auto fit to the grid

The ability to compare that card to the ones next to it and so forth

Finally the ability to detect end game and scoring.

I was hoping someone could help me out with a road map here, I would be even willing to include you as a consultant in the credits!

Any suggestions?

Well, make a Deck class that has a List (where Card is your component type representing a card, with info like what type of card it is).

You can make Deck a MonoBehaviour, and then stick it on some global object in your scene. It should instantiate all the cards in your deck. It’ll also be responsible for shuffling them.

Then, I would suggest a series of card-holding objects whose responsibility it is to hold some subset of the cards. These would include each player’s hand, any piles on the table, etc. These are components too, and so they can make use of their position in the world to position the cards they contain. This makes it easy for you to shift things around a bit as you play with the camera angle, table layout, etc.

Finally, you’ll need some sort of game manager (a singleton component, like Deck) that keeps track of whose turn it is, moves the cards from place to place, etc.

Thanks! That helps a lot actually.

As far as the card objects themselves go im having a hard figuring out whats best to go with.

Either, a game object with 2 planes attached and the texture on each

or a gameobject with a sprite attached that changes its sprite based on whats facing foward.
Any suggestions?

I’d do the game object with 2 sides, so that you can easily flip the card over just by rotating the GameObject.

The sides could be textured Planes, textured Quads, or Sprites — any of those will work. It’s not an important decision, and one you can easily change later if you find reason to.

why so complicated, why not have 2 childs at the same position , one with the back and one with the front side and then enable/disable what you want to see?That way you can also use diffrent scripts for each side, if needed, more easy…
There are always so many possible ways to do something.

Remember you have acces to most of C# and .NET. So build your deck structure in pure C# and stick with Unity just for representation. A List would work well for the deck. And you can use any regular C# strategy for shuffling the List. The deck can represented by a couple of animations.

For more abstract games like this it’s often valuable to think in terms of MVC. Use Unity for the view and contoller pieces, but build the model in pure C#.