diff --git a/controllers/game.py b/controllers/game.py
new file mode 100644
index 0000000000000000000000000000000000000000..3ca1e3372a703ca782d935553fdd1c1cdcda282a
--- /dev/null
+++ b/controllers/game.py
@@ -0,0 +1,34 @@
+from parameter_util import JSON_BODY, JSON_CONTAINS
+from http_util import FAIL, CODE_JSON, CODE_MISSING, CODE_SEMANTIC, CODE_GONE, CODE_CONFLICT
+from room_util import ROOM_GET
+
+import json
+
+def start():
+    parameters = JSON_BODY(request)
+
+    if parameters == None:
+        return(FAIL(CODE_JSON))
+
+    if not JSON_CONTAINS(parameters, [('room_id', int), ('room_pw', str), ('roles', dict)]):
+        return(FAIL(CODE_MISSING))
+
+    room_id = parameters['room_id']
+    room_pw = parameters['room_pw']
+    roles = parameters['roles']
+
+    room_record = ROOM_GET(room_id, room_pw)
+
+    if not room_record:
+        return(FAIL(CODE_SEMANTIC))
+
+    if room_record.started:
+        return(FAIL(CODE_CONFLICT))
+
+    if room_record.closed:
+        return(FAIL(CODE_GONE))
+
+    db(db.Room.id == room_record.id).update(started=True, roles=json.dumps(roles))
+
+    json_response = {"status": "success"}
+    return(response.json(json_response))
diff --git a/controllers/room.py b/controllers/room.py
index 574764491ff7c526dd2ff82d5c3b05cfd79513f1..6a9c9aa8a91c4e67a77143f5cc06827b89a11f32 100644
--- a/controllers/room.py
+++ b/controllers/room.py
@@ -21,9 +21,8 @@ def create():
     room_id = db.Room.insert(player_max=player_max)
     room_record = db(db.Room.id == room_id).select().first()
 
-    json = {"room_id": room_id, "room_code": room_record.code, "room_pw": room_record.hashcode}
-
-    return(response.json(json))
+    json_response = {"room_id": room_id, "room_code": room_record.code, "room_pw": room_record.hashcode}
+    return(response.json(json_response))
 
 
 def status():
@@ -48,6 +47,5 @@ def status():
 
     players = PLAYERS_GET(room_record)
 
-    json = {"players": players}
-
-    return(response.json(json))
+    json_response = {"players": players}
+    return(response.json(json_response))
diff --git a/models/f_room.py b/models/f_room.py
index 6ac77f6f010cfc230dd4c7dc3e92f23a951d1b2a..fb6f7d35f278907c8fbfcf12c8b1df0ec6499739 100644
--- a/models/f_room.py
+++ b/models/f_room.py
@@ -8,6 +8,8 @@ db.define_table(
     Field('player_max', 'integer', notnull=True),
     Field('creation', 'datetime', default=request.now, notnull=True),
     Field('heartbeat', 'datetime', default=request.now, notnull=True),
+    Field('started', 'boolean', default=False),
+    Field('roles', 'string', default="", notnull=True),
     Field('closed', 'boolean', default=False)
 )