saiam@7: digraph G { saiam@7: compound=true; saiam@7: rankdir=LR; saiam@7: saiam@11: gs [label="Game State"]; saiam@11: client [label="Client"]; saiam@11: server [label="Server"]; saiam@11: physics [label="Physics"]; saiam@11: graphics [label="Graphics"]; saiam@17: // internet [label="Teh Internets", shape=polygon]; saiam@11: saiam@7: subgraph cluster0 { saiam@7: label = "Network"; saiam@7: {rank=source; client; server;} saiam@7: client; saiam@7: server; saiam@7: color = black; saiam@7: } saiam@7: saiam@7: subgraph cluster1 { saiam@7: label = "Game Engine"; saiam@55: {rank=min; gs; physics;} saiam@7: gs; saiam@7: physics; saiam@7: color = black; saiam@7: } saiam@7: saiam@7: {rank=sink; input; graphics;} saiam@17: // client->server [dir=both]; saiam@7: client->server; saiam@7: server->client; saiam@7: saiam@7: gs->physics; saiam@17: physics->graphics [ltail=cluster1]; saiam@17: input->gs [lhead=cluster1]; saiam@17: // client->internet [ltail=cluster0]; saiam@17: // internet->server [lhead=cluster0]; saiam@7: saiam@17: gs->server [lhead=cluster0,dir=both]; saiam@7: }