M2mimud Robert Whitcomb November 8, 2004 Committee: Alan Kaminsky, Hans-Peter Bischof, Andrew Phelps
Total Page:16
File Type:pdf, Size:1020Kb
M2MIMud Robert Whitcomb November 8, 2004 Committee: Alan Kaminsky, Hans-Peter Bischof, Andrew Phelps 1 Abstract M2MIMud is a simple MUD (multi-user dungeon) type game that is designed to run on an ad hoc network of devices without the presence of any central server. It runs over M2MI, a distributed object systems API that uses broadcasts and handles, rather than IP addresses, to communicate. This paper discusses the design and development of M2MIMud, delving into the issues unique to such a system. Among topics discussed are a survey of existing architectures, a discussion of M2MI, and talk about the unique aspects of this system. Also included in this paper are a player’s manual and some design documentation. Overall, M2MIMud is an interesting study in the efforts to port existing types of software to an ad hoc environment. 2 1.0) Introduction ................................................................................................................. 5 2.0) Background.................................................................................................................. 5 2.1) Client Server Architecture....................................................................................... 5 2.2) Real Time Strategy Games...................................................................................... 6 2.3) M2MI.......................................................................................................................7 2.4) M2MIMud ............................................................................................................... 7 2.4.1) Goals................................................................................................................. 8 3.0) Architecture ................................................................................................................. 8 3.1) General Description................................................................................................. 9 3.2) Commands............................................................................................................. 10 3.3) Sessions ................................................................................................................. 11 3.4) State Maintenance.................................................................................................. 12 3.5) Game Data ............................................................................................................. 13 4.0) Design........................................................................................................................ 13 4.0.1) Design Assumptions....................................................................................... 13 4.0.2 Design Considerations ..................................................................................... 14 4.1) Packages ................................................................................................................ 16 4.2) Interfaces: M2MI................................................................................................... 17 4.3) Interfaces: Normal ................................................................................................. 19 4.4) Sequence Diagrams ............................................................................................... 21 4.4.1) Command Processing ..................................................................................... 21 4.4.2) Movement....................................................................................................... 21 4.4.3) Combat............................................................................................................ 23 4.4.4) Buying and Selling ......................................................................................... 25 4.4.5) Monster Movement......................................................................................... 27 4.5) Design Comments.................................................................................................. 27 5.0) Implementation.......................................................................................................... 28 5.1) Object Interactions................................................................................................. 28 5.2) Language ............................................................................................................... 29 5.3) Master Controller and Atomic Functions .............................................................. 29 5.4) Input Parsing.......................................................................................................... 29 5.5) Player Data ............................................................................................................ 30 5.6) Item and Monster Data .......................................................................................... 30 5.7) The World.............................................................................................................. 31 5.8) Combat................................................................................................................... 31 5.9) States and Player.................................................................................................... 32 6.0) User Manual .............................................................................................................. 34 6.1) Startup.................................................................................................................... 34 6.2) Character Creation................................................................................................. 34 6.3) Worlds ................................................................................................................... 34 6.4) Layout.................................................................................................................... 35 6.5) States...................................................................................................................... 36 6.6) Characters .............................................................................................................. 37 6.7) Creating a Session ................................................................................................. 37 3 6.8) Joining a Session ................................................................................................... 37 6.9) Leaving a Session .................................................................................................. 37 6.10) Communications.................................................................................................. 38 6.11) Movement............................................................................................................ 38 6.12) Transactions......................................................................................................... 38 6.13) Inventory and Equipment .................................................................................... 39 6.14) Houses and Ponds................................................................................................ 39 6.15) Combat................................................................................................................. 40 6.16) Friend’s Listing and the Lookup List .................................................................. 41 6.17) Command List ..................................................................................................... 42 7.0) Windows.................................................................................................................... 45 7.1) Find Games Window............................................................................................. 45 7.2) Main Window........................................................................................................ 46 7.3) Map Window ......................................................................................................... 47 8.0) Future Work............................................................................................................... 47 9.0) Summary.................................................................................................................... 49 Glossary of Terms............................................................................................................. 51 References and Resources................................................................................................. 53 4 1.0) Introduction One of the earliest forms of computers games is the multi-user dungeon, commonly referred to as a MUD, which are simple (compared to many present games), text-based systems which usually create a role-playing environment for their users. Players assume the identity of someone else and play in a fantasy world according to the rules of the developers. With the proliferation of cheap, high-powered computer hardware, especially video cards, players today tend towards the MMORPG (massively multiplayer on line role-playing game). However, there are still many MUDs out there. Examples of these are Aetolia (http://www.aetolia.com), RetroMUD (http://www.retromud.org), and Threshold (http://www.thresholdrpg.org). While they do not usually have the large player base that an MMORPG has, MUDs are still important game systems. With the advent of small, low cost computing devices like cellular phones, tablet PCs laptop computers, and personal digital assistants,