Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1075932 Posts in 44152 Topics- by 36119 Members - Latest Member: Royalhandstudios

December 29, 2014, 04:14:38 PM
TIGSource ForumsDeveloperTechnical (Moderators: Glaiel-Gamer, ThemsAllTook)Programming a Boardgame style computer game
Pages: [1]
Print
Author Topic: Programming a Boardgame style computer game  (Read 558 times)
Leo J
Level 2
**


Something different...


View Profile WWW Email
« on: September 04, 2013, 04:44:36 PM »

Hi guys,

I'm designing a game for phone devices which will operate much like a board game (turn based strategy).
It's a multiplayer game and consists of a board-like map, taking turns, managing resources/points, items etc.

I'm currently learning XNA (C#) and going through books and tutorials. While there's lots of great tutorials on action, platformer, 3d games etc I'm looking for some tutorials that would help me get started on a project like this.

If anyone could point me to some useful tutorials, talk of your experiences or simply throw me a few tips, it would be much appreciated.

Thanks!
Logged

-   -   -   Leo J   -   -   -
Composer/musician, Game Designer and Electrical Engineer.
$0 INDIE DEAL for unique, stand out scores
http://leoj.bandcamp.com/album/directors-dreams
www.leojmusic.net
Sved
Level 4
****



View Profile WWW
« Reply #1 on: September 04, 2013, 05:21:42 PM »

Board games on phone/tablets are tricky, because you get none of the interaction with other players, so it's just you and your status/actions.

One of the only physical game to tablet I enjoyed was Bang! It's a 5 players card game in a western setting. It was good because it sticked to the game in its representation (cards) but made it "juicy", as the cards would wiggle, go over, make context sound when they are played...

Video is here: https://www.youtube.com/watch?v=W5FafjGjUcU , but it's best if you could feel it for yourself.
Logged

... but that is mostly psychological. Check my devlog!
Leo J
Level 2
**


Something different...


View Profile WWW Email
« Reply #2 on: September 04, 2013, 05:55:46 PM »

The lack of interaction would not be a problem with my particular game seeing as I'm developing for the computer platform rather than trying to take an existing board game and "computerise" it. There will be chatting enabled to help with trading of resources but apart from that it won't be needed.

I came up with an idea of an rts game but the scale of the project was massive. I simplified it and adapted my ideas to work as board game and I've now gone back and adapted that version to work as a computer/phone game. It's a matter of balancing what will work best and my abilities.
Logged

-   -   -   Leo J   -   -   -
Composer/musician, Game Designer and Electrical Engineer.
$0 INDIE DEAL for unique, stand out scores
http://leoj.bandcamp.com/album/directors-dreams
www.leojmusic.net
eigenbom
Level 10
*****



View Profile WWW
« Reply #3 on: September 04, 2013, 06:16:37 PM »

A random tip: I think turn-based games can be simplified if you model everything as an Event/Action/Message etc. So, for example, say the player can move a piece. Then you have an event:

Code:
struct MoveEvent {
  ID player;
  ID piece;
  pos targetPos;
};

Your game is then separable into a system that receives streams of these events and modifies the game state, and a client part that displays the world updates and converts user actions into events. Online multiplayer is then greatly simplified (although you'll need to make sure the order of events is maintained, using a sub-turn counter or something.)
Logged

Average Software
Level 10
*****

Fleeing all W'rkncacnter


View Profile WWW Email
« Reply #4 on: September 04, 2013, 06:32:08 PM »

A random tip: I think turn-based games can be simplified if you model everything as an Event/Action/Message etc. So, for example, say the player can move a piece. Then you have an event:

Code:
struct MoveEvent {
  ID player;
  ID piece;
  pos targetPos;
};

Your game is then separable into a system that receives streams of these events and modifies the game state, and a client part that displays the world updates and converts user actions into events. Online multiplayer is then greatly simplified (although you'll need to make sure the order of events is maintained, using a sub-turn counter or something.)

This is exactly how I implemented Franchise, and yes, network play was greatly simplified.  It's worth noting that if you use a client/server system and TCP for your networking, order of events isn't an issue, since TCP guarantees proper order of delivery and all messages originate from the same point.

If it helps, the downloads for my (still in progress) game include the complete source code, however it's in Ada and not many people know that language.
Logged

Franchise - The restaurant wars begin!

What would John Carmack do?
Liza
Level 1
*



View Profile WWW Email
« Reply #5 on: September 05, 2013, 12:32:58 AM »

More of a "talk of your experiences" kind of reply.

My first foray into board games was a couple of months ago with Interdiction. It started out as "a modified version of tic tac toe", but isn't even really recognizable as such now. You choose from a selection of tiles to put on the board to capture territory and get points. It's still very buggy, but functional (or should be, anyway). I'll post the code to github a bit later.

For me the biggest challenge was the AI. I still don't have "proper" AI - it's pretty much just a giant switch statement that tries to pick the strongest move for the AI to take. It works, but not well, and needs to be improved. Do you plan to have some sort of single player AI mode in your game or will it be exclusively multiplayer?
Logged

Leo J
Level 2
**


Something different...


View Profile WWW Email
« Reply #6 on: September 05, 2013, 01:49:21 AM »

Thanks for the replies.

As for single player... It's a bit of a "must" but really won't work. There's a big emphasis on deciding to cooperate or betray and I can't see it working with an AI. However I might do a simplified single player just to cover my bases.

I guess at this stage, AI is will be something I work on once it's fully working as a multiplayer game.
Logged

-   -   -   Leo J   -   -   -
Composer/musician, Game Designer and Electrical Engineer.
$0 INDIE DEAL for unique, stand out scores
http://leoj.bandcamp.com/album/directors-dreams
www.leojmusic.net
Gregg Williams
Level 10
*****


Retromite code daemon


View Profile WWW Email
« Reply #7 on: September 05, 2013, 08:56:49 AM »

Yeah as others have mentioned the whole event/action model works very well. I like to call it a command model myself, and client side you basically end up with a queue of commands to process.

TCP/IP can certainly work, but you may also be able to get away with just making a simple PHP style web service and using http to post and poll from as well.
Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic