Estou apenas começando a aprender a fazer jogos. Eu criei um jogo simples baseado em texto, onde o usuário pode andar entre as salas e interagir com os objetos em cada sala. No entanto, sinto que minha abordagem levou a uma pilha de códigos ruins de espaguete. Não sei ao certo qual seria uma boa maneira de estruturar um jogo como esse.
Minha abordagem foi ter uma classe com um método para cada sala e todos os objetos e interações que pudessem ser feitos naquela sala. Por exemplo, este é o método para o estudo:
public static void Study()
{
bool studyexited = false;
while (!studyexited) {
string usercommand = Console.ReadLine ();
usercommand.ToLower ();
switch (usercommand) {
case "turn left":
GameEventText.StudyLeft ();
break;
case "turn right":
GameEventText.StudyRight ();
break;
case "go forward":
Notes firstsetofclues = new Notes ("First Note");
GameEventText.StudyFront ();
string firststudycommand = Console.ReadLine ();
firststudycommand.ToLower ();
if (firststudycommand == "read note") {
firstsetofclues.Firstnotereading ();
}
Console.WriteLine ("Picking up this note would prove valuable");
string secondstudycommand = Console.ReadLine ();
secondstudycommand.ToLower ();
if (secondstudycommand == "pick up note") {
if (MainClass.PlayerInventory.AddItem (firstsetofclues))
{
Console.WriteLine ("The note has been added to your inventory");
} else {
Console.WriteLine ("Your inventory is full");
}
MainClass.PlayerInventory.Inventorydisplay ();
}
}
}
}
Não acho que essa seja uma abordagem que será dimensionada; ou seja, não consigo escrever funções como essa para todos os cômodos. Acredito que o uso de arquivos de alguma forma seria uma boa estratégia para evitar a "codificação" que estou fazendo atualmente. Mas não tenho certeza de como posso conseguir isso?