Board game programming tutorial

Now that I have created several board game conversions in Unity, I thought that it might be useful to create a tutorial that describes the process that I go through to make a game.

In this tutorial, I’ll start with a common set of code from prior games and some basic art. I’ll create a new Unity project, import all the reuse code and plugins that I use, and make a complete game.

There is a set of videos to go along with this post which show all the steps that I perform in the Unity game builder.

I’ve also saved my Unity project at a few points along the way so that you can skip ahead or make sure that your project matches mine.

In this post, I’m going to cover all the reuse code and the reasoning behind it. I’ll setup the project, import all the plugins, scripts and assets that I’ll need. Then I’ll build the main menu.

In the next post, I’ll build the UI for the game itself and create the scripts for modeling the game. [Coming soonish] Continue reading “Board game programming tutorial”

Touch table Village

I’ve completed a touch-table version of the board game Village.

Village has an interesting mechanic where you manage the life and death of your workers. All your workers start as farmers and can be trained as specialists. Actions take “time” to perform, and when enough “time” has passed, a worker dies. A limited number of each type of worker is rewarded with fame and victory points upon death while the rest get an anonymous grave. The key is making the best use of your workers and their time while  trying to arrange a good death.

Continue reading “Touch table Village”

Websocket server for remote connections to touch table games

I am considering creating a system for touch table games so that they can be played both by people sitting around the table and by individuals at their own computer.

This post will talk about what I’d like to do and show the steps that I’ve taken to setup a websocket server on my domain and to connect to it from Unity.

Continue reading “Websocket server for remote connections to touch table games”

Age of Discovery and more about complexity

I’ve completed the touch-table version of Age of Discovery and this article compares this project to my previous project which was Medici.

ageofdiscoveryboardFor both being touch-table conversions of board games, they were very different projects. Medici was small and took less time than I expected it to. Age of Discovery was a large project, and it ended up being even longer than expected.

 

Continue reading “Age of Discovery and more about complexity”

Touch Table Medici and a discussion of project complexity

I’ve completed a touch-table version of Medici

mediciboard

Medici was an interesting project because of how simple it was. It is my first conversion project that has taken significantly less time than I thought it would and is also the quickest that I’ve been able to make a new game.

Continue reading “Touch Table Medici and a discussion of project complexity”

Touch Table Castles of Burgundy

I’ve completed a touch-table version of Castles of Burgundy. In the board game, players build up their estate with tiles drawn from a common area. Each turn, players roll two dice and use the results to pick tiles, place tiles or sell goods. Placed tiles give the player victory points, extra actions, or advantages in later turns. Each player manipulates their own estate and only interacts with the other players through competition for the tiles in the center.

pic919792

 

Continue reading “Touch Table Castles of Burgundy”

Touch table Concordia

I’ve completed a touch-table version of Concordia. We saw the game at Essen last year. They were promoting the Salsa expansion, but we weren’t familiar with the base game. The game has relatively simple rules but it takes many steps to achieve your goals.

concordia_board

The game was a good candidate for the touch table because is no hidden information, there is a decent amount of setup time and piece twiddling, and I felt like the game could be improved with a real-time scoreboard.

Continue reading “Touch table Concordia”

Card Games

A couple of months ago I started a project to convert some card games for play on the touch table. I started this project because I wanted to convert the card game “Linko”, but I’d also been planning to convert “Turn the Tide”.

I’d done one card game (Wizard) in the Torque engine and I used the web interface to keep player’s card’s on their device. I wanted this implementation to be more generic and support multiple card games.

I planned to use Unity’s built in networking and have the server run on the touch table with an Android application that players would download to their phone to show their hand of cards.

Continue reading “Card Games”

How To: Open the same Unity project twice

When making my first networked game in Unity, I found a way to keep two copies of the same project open at once. Unity will usually only open the same project one time. In a networked application, this means that you either have to build the client or server application, then run as the other side within Unity. Not only is this a hassle, but you can only debug one side of the program at a time.

Being able to have the same project open with two Unity windows allowed me to develop much faster.

The key to having the project open twice is to have two project directories that point to the same source files. A Unity project has three sub-directories: Assets, Library and ProjectSettings. Everything the developer creates goes in Assets and Unity controls the other two directories. So, to have two Unity windows into the same project, you have to create two project directories that share the same Assets directory.

I did this in Windows 10 with Unity 5.3. I’d expect this to work for Windows 7+ and Unity 5.x.

  1. Create your project in Unity. Get everything setup the way you want it. Exit Unity.
  2. Copy the whole project directory: Use the GUI -OR- xcopy /e/h Game GameCopy
  3. Delete the Assets sub-dir In the new project directory: Use the GUI -OR- del /s GameCopy/Assets
  4. Link the original Asset directory to the new directory: (in an elevated command prompt) mklink /j GameCopy/Assets Game/Assets

Now you can bring up one Unit window on the Game project and another on the GameCopy project. Any asset changes (code, scenes, graphics, audio, prefab, etc) that you make in one Unity window will show up in the other Unity. The only thing that isn’t shared are project settings.

Remember that you don’t actually have two copies of your assets. Any changes/additions/deletions in one directory are done to both!

In Linux/Mac, I’d try a soft link first and see if that works. If that fails, make a hard link.

Terra Mystica

I’ve completed a touch table conversion of the board game Terra Mystica. In this game, players lead a faction in a race to terraform and settle the map. Each faction is unique with different costs for building, abilities and desires for terrain type. These differences along with random bonus tiles makes every game different without any luck or hidden information.

FullBoard

Continue reading “Terra Mystica”