muddesigner/MUDGame/Program.cs
u8sand_cp 281fe4b320 - Complete networking aspect
- only TCP, works has been tested
- Commented out Lists and replaced with arrays, the way the list was working it wouldn't have worked, if you can figure out how to make it work feel free to fix it up.
- TODO: When user types exit, the game object becomes useless, I need a Reset function of some kind to reset it for when a new player comes in to reuse that player object.
- TODO: Encryption
- TODO: Fix main person so they have admin commands like list, restart instead of a game with the main server. (ATM Just like that for testing, but now you can test with telnet client)
2010-07-26 18:45:21 -07:00

92 lines
3.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using MUDGame.Environments;
using MudEngine.GameManagement;
using MudEngine.GameObjects;
using MudEngine.GameObjects.Characters;
using MudEngine.GameObjects.Environment;
using MudEngine.FileSystem;
namespace MUDGame
{
class Program
{
//Setup our Fields
static Game game;
static BaseCharacter player;
static void Main(string[] args)
{
//Initialize them
game = new Game();
//Setup the game
game.AutoSave = true;
game.BaseCurrencyName = "Copper";
game.BaseCurrencyAmount = 1;
game.CompanyName = "Mud Designer";
game.DayLength = 60 * 8;
game.GameTitle = "Test Mud Project";
game.HideRoomNames = false;
game.PreCacheObjects = true;
game.ProjectPath = FileManager.GetDataPath(SaveDataTypes.Root);
game.TimeOfDay = Game.TimeOfDayOptions.Transition;
game.TimeOfDayTransition = 30;
game.Version = "0.1";
game.Website = "http://MudDesigner.Codeplex.com";
game.ServerType = ProtocolType.Tcp;
game.ServerPort = 555;
game.MaximumPlayers = 1000;
//Create the world
BuildRealms();
// Start the game & server.
game.Start();
if (!game.IsRunning)
Console.WriteLine("Error starting game!\nReview Log file for details.");
//Player must be instanced AFTER BuildRealms as it needs Game.InitialRealm.InitialZone.InitialRoom
//property so that it can set it's starting room correctly.
player = new BaseCharacter(game,true);
//Add the player to the game.
//Note once the server is fully implemented the player will be generated automatically by Game.
//game.PlayerCollection.Add(player);
//Send game info to player
Console.WriteLine(game.GameTitle);
Console.WriteLine(game.Version);
Console.WriteLine(game.Website);
Console.WriteLine(game.Story);
Console.WriteLine();
//Simple Help info
Console.WriteLine("Available Commands are\n Look\n Exit\n Walk 'direction' where direction = north/south/east/west/up/down\n");
//Invoke the Look command so the player knows whats around him/her
Console.WriteLine(player.ExecuteCommand("Look"));
while (game.IsRunning)
{
Console.Write("Command: ");
Console.WriteLine(player.ExecuteCommand(Console.ReadLine()));
}
// - Exit command handles this now - game.Shutdown();
Console.WriteLine("Press Enter to exit.");
Console.ReadKey();
}
static private void BuildRealms()
{
Zeroth zeroth = new Zeroth(game);
zeroth.BuildZeroth();
}
}
}