Commit graph

12 commits

Author SHA1 Message Date
Scionwest_cp
793c3cf1e9 MudEngine:
- FileManager.GetDataPath now returns the actual Root directory when Root is requested rather than Root/Projects. That was considered Root for the older Designer.
 - CommandEngine.GetCommands is now a method rather than a property.
 - CommandEngine.LoadAllCommands replaced with CommandEngine.LoadBaseCommands for loading Engine specific Game commands. This is called from within Game.Start. A possible property for disabling default commands could be looked at in the future.
 - CommandEngine.LoadCommandLibrary method added for loading custom user commands. This is fully implemented.
 - CommandEngine.ClearCommands method added for clearing all currently loaded commands.
 - Game.IsDebug static property added.
 - Added additional logging for testing purposes throughout the project. Changing Game.IsDebug to false will remove the majority of the logged messages.
 - Game.IsMultiplayer property added for enabling or disabling the server for Online/Offline support. Fully implemented.
 - Game no longer loads user script libraries as this was being handled already by ScriptEngine.Initialize()
 - Log now caches messages so consoles can print only content that was logged since the last loop. Using Log.FlushMessages() will clear the cached messages allowing each loop to show only the new logged messages.
 - BaseCharacter IsAdmin argument in the constructor has been removed. No longer needed for testing.
 - ScriptEngine can now compile more than 1 script without error.
 - ScriptEngine.Assembly property added for accessing the currently loaded script library. This should be a List<Assembly> in the future for multiple libraries.
 - Removed the last of my BlitScript engine code from ScriptEngine.cs as it was XNA specific. Need to look at StartupObject.cs as I believe that is XNA specific as well and not needed.

MudGame:
 - Renamed MudGame to MudOfflineExample as it will be used for testing the game with Game.IsMultiplayer disabled. Makes testing easier then needing to stop/restart the server and connect via telnet constantly.

MudServer:
 - Added MudServer project. This is a dedicated server that runs with Game.IsMultiplayer enabled. Developers can connect to it via telnet clients. All engine game commands are implemented.
 - MudServer includes bin/Debug/Scripts.dll, which is a compiled library of scripts generated via MudCompiler. MudEngine.Game handles loading the library and there is no additional code required by the developers to implement their libraries into their games provided the name is 'Scripts.dll'
2010-07-27 16:31:50 -07:00
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
Scionwest_cp
70533582a6 MudEngine:
- Player movement command now fully implemented. 
 - Game.GetRealm() added to retrieve a Realm within the games RealmCollection property
 - Game.End() added to perform game ending duties and shut down the Server
 - Server now loses opened threads.
 - Player.Move() added to move the player from Room to Room.
 - Room.DoorwayExist() tweaked to work with the new way Environments are managed.

MudGame:
 - Now executes the Look command on startup so the player can see where they are located at.
 - Implements the new Game.End() method and fixes the game hanging upon exit.
2010-07-25 18:33:21 -07:00
Scionwest_cp
0587b4a475 MudEngine:
- Deleted GameObjects.Characters.Controlled and GameObjects.Characters.NPC namespaces.
 - Deleted PlayerBasic & PlayerAdmin classes.
 - BaseCharacter now contains IsAdmin property for providing admin privileges to users.
 - BaseCharacter now contains IsControlled property for setting user control or AI controlled
 - Added startup.dat - This will supply information to the engine as to what Types will be used during runtime. Allowing for custom Types via scripts to be instanced and used (such as a custom player class rather than the default one).
2010-07-25 11:04:32 -07:00
Scionwest_cp
dbe1e693e5 MudEngine:
- Changed Player[] array to a List<> Collection of PlayerBasics. This change is reflected across all Types.
 - Game now contains a Start() function. StartServer is now called from within here.
 - Game now has partial support for the Script Engine

MudGame:
 - Game.StartServer has changed to Game.Start(). StartServer is called within Start().
2010-07-24 10:33:27 -07:00
u8sand_cp
49c581840a - Tcp Server functionality 2010-07-22 20:13:55 -07:00
u8sand_cp
1baa067044 - Added player array in game
- put server in Game
- created start server function in Game
- created CommandRestart

There are two different 'player classes' which do I use? PlayerBasic and BasePlayer.
2010-07-21 09:32:27 -07:00
u8sand_cp
15de95ba65 - Added Server class, basically finished.
- Server start method starts server's own thread
- Both tcp and udp support.
Needed:
- Connection to the MudEngine
- Finish coding serverThread
2010-07-19 15:35:05 -07:00
u8sand_cp
a26280b711 - Much work on the networking
- ServerSocket done.
- ClientSocket done.
- Few fixes required:
   - Warning in ServerSocket
   - Friends possible in C#?
2010-07-19 07:09:34 -07:00
Scionwest_cp
6987d8178f MudEngine:
- Added Look and Walk Commands, however they are not fully implemented.
 - Corrected Networking classes having a public de-constructor. These must be private or the compiler fails.
 - Corrected Networking classes using an incorrect 'using' statement. You cannot reference classes in the statement, must only reference the namespace itself (i.e. using MUDEngine.Networking).
 - Removed using statement for Networking in the Networking classes as all classes created within that namespace automatically are within the same scope.
2010-07-18 21:25:12 -07:00
u8sand_cp
27a1f617b8 Networking Continued, template classes finished. Next I'll add actual functionality. 2010-07-18 20:30:57 -07:00
u8sand_cp
3227210590 Networking Finally starting to be added :D 2010-07-18 19:53:05 -07:00