how well does unity work for turn-based game time-type?

How well does unity work for turn-based game (time type) design? I have two game design ideas, one is a chess-like game that is wholly turn-based, another is a more complex game design that is both turn & real time based similar to dominions III & MOO3, etc.. Players conduct their strategic moves on the main board in a turn-based manner, after the "turn" button is pressed any battles take place in a "real time" format outside player control. However, fleets etc have settings which affect their real time scripts (prioritize missiles over beams for example), which can be set & changed by players before the turn end.

I would think turn-based design would be much easier, but I've never designed a computer game so I have no experience. I have a CS degree through school, but have never used it professionally.

unity is a game engine that you can create any game in any genra with it. turn based games are one of the easiest game types. you should just program some click events to create the logic for turns and fall your functions when user clicks on objects or GUI elements. (GUI means graphical user interface) unity supports coroutines and immediate mode GUIs. they are great for turn based games and that second complex genra that you said. emmidiate GUI of unity will be your friend. unity has a big helpful community so every question will answered soon here. don't worry. learn one of the C#, javascript languages and read unity docs and tutorials and start making your game.

Agreed. Turn-based games can be done in a lot of ways, but on the whole can be simpler to design (from a gameplay perspective) than real-time ones.

To do the combination you described (I'm thinking Baldur's Gate here, right?) you can use the game's timescale value (= 1 to play, = 0 to pause), and call a player input menu each time it completes a turn of set time length.

If you want something to try this out, make a Unity scene with something going on, anything as long as it's moving. Then add an empty object and attach the following .js script (check out the tutorials and Getting Started help sections if you're unsure of how to do this).

var nextTurn = false;
var turnLength = 2.0;

private var turnTimer = 0.0;
private var realTime = false;

function Update() {
    if (Input.GetKeyDown(KeyCode.Space) && !realTime){
        nextTurn = true;    // if space is pressed, advance a turn

    if (nextTurn) {
        turnTimer = 0.0;   // reset turn timer
        Time.timeScale = 1.0;   // speed of time set to 1 (normal)
        realTime = true;   // tells us we're in realtime mode
        nextTurn = false;    // toggle this off now

    if (realTime) {
        turnTimer +=Time.deltaTime;   // add millisecs this frame took to the turn timer
        if (turnTimer > turnLength) {
            realTime = false;
    } else {
        Time.timeScale = 0.0;   // speed of time set to 0 (pause)

This is only a startpoint of course, but should demonstrate the principal.

See here for a turn-based game created with Unity:

link text