public void Start(){
	Action("CreatePlace(Bedroom, CastleBedroom)");
	Action("CreateCharacter(Jane, C)");
	Action("SetHairStyle(Jane, Long)");
	Action("EnableIcon(\"Change\", Hand, Bedroom.Closet, \"Change\", true)");
	Action("SetPosition(Jane, Bedroom.Closet)");
	Action("SetCameraFocus(Jane)");
	Action("ShowMenu()");
	WaitFor("input Selected Start");
	Action("HideMenu()");
	Action("EnableInput()");
	WaitFor("input Change Bedroom.Closet");
	Action("FadeOut()");
	Action("SetClothing(Jane, Peasant)");
	Action("FadeIn()");
	WaitFor("input Change Bedroom.Closet");
	Action("FadeOut()");
	Action("SetClothing(Jane, Merchant)");
	Action("FadeIn()");
	WaitFor("input Change Bedroom.Closet");
	Action("FadeOut()");
	Action("SetClothing(Jane, Noble)");
	Action("FadeIn()");
}

public void WaitFor(string msg)
{
	while (true)
	{
		var input = Console.ReadLine();
		if (input == msg)
			break;
	}
}

public void Action(string msg)
{
	Console.WriteLine("start " + msg);
	while (true)
	{
		var input = Console.ReadLine();
		if (input == "succeeded " + msg)
			break;
	}
}
		


public void Start(){
	Action("CreatePlace(Port, Port)");
	Action("CreatePlace(Cottage, Cottage)");
	Action("CreateCharacter(Jane, A)");
	Action("SetHairStyle(Jane, Long)");
	Action("SetClothing(Jane, Peasant)");
	Action("EnableIcon(\"Open\", Hand, Cottage.Door, \"Go to the port\", true)");
	Action("SetPosition(Jane, Cottage)");
	Action("SetCameraFocus(Jane)");
	Action("ShowMenu()");
	WaitFor("input Selected Start");
	Action("HideMenu()");
	Action("EnableInput()");
	WaitFor("input Open Cottage.Door");
	Action("Exit(Jane, Cottage.Door, true)");
	Action("Enter(Jane, Port.Exit, true)");
	WaitFor("input arrived Jane position Port.Exit");
	Action("Exit(Jane, Port.Exit, true)");
	Action("Enter(Jane, Cottage.Door, true)");
}

public void WaitFor(string msg)
{
	while (true)
	{
		var input = Console.ReadLine();
		if (input == msg)
			break;
	}
}

public void Action(string msg)
{
	Console.WriteLine("start " + msg);
	while (true)
	{
		var input = Console.ReadLine();
		if (input == "succeeded " + msg)
			break;
	}
}
		


public void Start(){
	Action("CreatePlace(Courtyard, Courtyard)");
	Action("CreateItem(Potion, PurplePotion)");
	Action("CreateCharacter(Tom, D)");
	Action("SetHairStyle(Tom, Short)");
	Action("SetClothing(Tom, Beggar)");
	Action("CreateCharacter(Merchant, G)");
	Action("SetClothing(Merchant, Merchant)");
	Action("EnableIcon(Trade, Hand, Merchant, Trade, true)");
	Action("SetPosition(Merchant, Courtyard.SmallStall)");
	Action("SetPosition(Tom, Courtyard.Fountain)");
	Action("SetCameraFocus(Tom)");
	Action("ShowMenu()");
	WaitFor("input Selected Start");
	Action("HideMenu()");
	Action("EnableInput()");
	WaitFor("input Trade Merchant");
	Action("WalkTo(Tom, Merchant)");
	Action("ClearList()");
	Action("AddToList(Potion, Healing Potion)");
	Action("EnableIcon(Buy, Hand, Potion, \"Buy the potion\", true)");
	Action("SetDialog(\"Did you need something? [Yes|Let me see what you have]\")");
	Action("SetLeft(Tom)");
	Action("SetRight(Merchant)");
	Action("ShowDialog()");
	WaitFor("input Selected Yes");
	Action("HideDialog()");
	Action("ShowList(Merchant)");
	WaitFor("input Buy Potion");
	Action("HideList()");
	Action("Give(Merchant, Potion, Tom)");
	Action("Pocket(Tom, Potion)");
}

public void WaitFor(string msg)
{
	while (true)
	{
		var input = Console.ReadLine();
		if (input == msg)
			break;
	}
}

public void Action(string msg)
{
	Console.WriteLine("start " + msg);
	while (true)
	{
		var input = Console.ReadLine();
		if (input == "succeeded " + msg)
			break;
	}
}
		

The Three Kings is an interactive narrative developed in C#.
Embark on an adventure in a kingdom rules by three kings. Choose which king to pledge allegiance to by first completing their quests.

To run The Three Kings on MacOS, you also need to download and install Mono-project

Murder in Felguard is an interactive narrative developed in Python.
The queen was poisoned and you must investigate the clues to find the culprit.