The UAD MUD - PowerPoint PPT Presentation

1 / 36
About This Presentation
Title:

The UAD MUD

Description:

One of the problems is the bag of tools' problem. ... (Bwah-ha-ha-ha!) We can continue to expand indefinitely. What Does the MUD teach? ... – PowerPoint PPT presentation

Number of Views:40
Avg rating:3.0/5.0
Slides: 37
Provided by: michaelja2
Category:
Tags: mud | uad | haha

less

Transcript and Presenter's Notes

Title: The UAD MUD


1
The UAD MUD
  • Michael Heron

2
The Problem
  • We have numerous problems when teaching students
    how to code.
  • Its a very difficult occupation!
  • One of the problems is the bag of tools
    problem.
  • We give a bag of tools, but few problems to
    solve.
  • Often this is because of the restricted range of
    potential tasks.

3
The Problem
  • Those with some experience of programming often
    have a library of pet projects.
  • When learning a new language, one of these can
    serve as a platform for development.
  • This library of projects comes with experience.
  • It is developed through encountering problems
    that we know how to solve with some code, if only
    we had the time to sit down and do it.

4
The Problem
  • Most students lack this experience, and so have
    little opportunity to develop skills outside of
    the university.
  • This is disadvantageous, since the only way to
    learn how to code is to sit down and write.
  • The tasks we set in first and second year are
    largely proof of concept.
  • Useful from a technical point of view but often
    without long-term merit.

5
The Problem
  • Providing larger projects in the past has helped
    utilise the talent of stronger students.
  • Names Removed to protect the guil er innocent
  • This is difficult to sustain on a long-term
    basis, and excludes the weaker students.
  • What would be useful is a self-sustaining project
    that can accommodate all skill levels in varying
    roles.

6
A Solution?
  • Enter the UAD MUD!
  • A multi-user textual game environment written in
    an event-driven, object oriented programming
    language.
  • It is self-sustaining.
  • Most of the development will be driven by the
    students, with only minimal staff involvement.
  • It is long-term.
  • Depending on the theme, development can continue
    indefinitely.

7
UAD MUD
  • For my sins, I am a developer on a MUD based on
    the works of Terry Pratchett.
  • 200(ish) coders.
  • 4000(ish) players.
  • The codebase for this MUD is open-source and
    freely available for download.
  • The codebase is broken up into two parts
  • The driver
  • The mudlib

8
The Driver
  • The driver is written in good, old-fashioned C.
  • The code is very complex most developers never
    touch the driver framework.
  • The driver is essentially the operating system
    for a MUD.
  • It is very similar to the Virtual Machine for
    Java code is written and then interpreted by
    the MUD driver.

9
The Mudlib
  • The mudlib consists of all of the code written to
    run on the driver.
  • The mudlib is written in a language called LPC,
    which is an object oriented C variant.
  • Its not C.
  • The language has a very high degree of
    transferability with Java and other C-type OO
    languages.
  • The two main differences are that LPC provides
    multiple inheritance and function pointers.

10
What do we do with it?
  • The main thrust of this project would be to
    develop an environment where students of all
    skill levels can contribute.
  • Some MUDs require large amounts of technical
    know-how before any real contributions can be
    made.
  • The Discworld Mudlib is flexible enough to allow
    for development on a wide range of projects.

11
What do we do with it?
  • The first step is decide on a theme for
    development.
  • An appealing idea is to develop a simulation of
    the University of Abertay and its surrounds.
  • Firstly, an environment must be developed.
  • In Discworld jargon, this is called building, and
    requires only a little technical skill but still
    allows for practise with coding fundamentals.

12
A Very Simple Room
  • inherit "/std/room"
  • void setup()
  • set_short("main lecture room")
  • set_long("This is the main lecture room
  • for the university. There is a
  • stage at the front of the
  • room and hundreds of chairs
  • stretching off into the distance.\n")
  • add_property("determinate", "the ")

13
Building
  • Building involves mostly descriptive writing.
  • But its writing for an audience.
  • It also demonstrates the use of
  • Methods
  • Parameter passing
  • Inheritance
  • As far as technical skills go, building is the
    simplest thing that can be done on the MUD.

14
NPCs
  • The next step up is to develop NPCs, or Non
    Player Characters.
  • These are little computer controlled characters
    that function independently of any players.
  • NPCs range from the very simple, to the extremely
    complex.
  • There is much scope for developing interesting AI
    routines of all levels of complexity.
  • At the simplest end of the scale, it is only a
    little more complex than building rooms.

15
Items
  • Of a similar level of complexity is the
    development of actual items that can be
    manipulated during the game.
  • These can range from weapons and clothes to
    complex multi-functional devices.
  • A rich environment comes from a combination of
    rooms, NPCs and items.

16
Quests
  • Quests are puzzles that can be solved during the
    game for rewards or prestige.
  • They can be very simple
  • Take this thingy to the ogre on the hill
  • But they can also be extremely complex, requiring
    thousands of lines of code to handle the logic.
  • Writing quests is a task that is suitable for
    students of all skill levels.

17
Moving On Up
  • Rooms, items and NPCs can accommodate students of
    low and intermediate skill levels.
  • There exist many other areas supported by the MUD
    architecture in which stronger students can make
    more fundamental contributions.
  • Inheritables
  • Handlers
  • Game logic
  • Database routines
  • Web programming

18
Moving On Up
  • Examples of some more complex objects that I have
    written
  • A web-based project management system
  • A text based monopoly game
  • A derby day style horse-racing game.
  • A mafia family infrastructure that provides
    suitably interested players with a system for
    earning money.
  • A warhammer fantasy battle style wargame based
    on Discworld.
  • Trainable pets, in the style of the creatures in
    Black and White.

19
How Do We Do It?
  • First of all, we need to set up an administrative
    structure suitable for supporting development.
  • The model suggested here is based on the
    Discworld structure, and involves the creation of
    largely independent domains.
  • Each domain has the responsibility for the
    development of a particular part of the MUD.

20
How Do We Do It?
  • Each of the domains is headed by a domain leader,
    who is an experienced coder familiar with the
    processes involved in development.
  • The domain leader is responsible for
  • Designing the plan of development
  • Subdividing the plan into projects
  • Hiring coders
  • Training coders
  • Assigning work to coders
  • Ensuring the quality of submitted work.
  • Usually a significant chunk of this is delegated.

21
Domains
  • Each coder is attached to one or more domains.
  • Ensuring the co-ordination of all domains is done
    by a super domain called admin.
  • Members of the admin domain are the ones who
    appoint coders as domain leaders, and handle the
    creation of domains when required.

22
Domains
  • Some of the domains in Discworld
  • Guilds
  • Ramtops
  • Ankh-Morpork
  • Learning
  • Each domain has a clearly defined area of
    responsibility.
  • There also exist service domains
  • Playtesters
  • Learning
  • Liaison

23
Domains
  • The admin domain would be populated by interested
    members of staff.
  • The rest of the domains can be populated by
    students.
  • The important thing is to start off small and to
    expand as the student interest grows.
  • To begin with for example, perhaps only an admin
    domain, a learning domain and a main building
    domain.

24
Domains
  • This structure allows for a degree of stability
    in the short-term, and for a gentle transference
    of responsibility in the long-term as students
    graduate/quit.
  • It also gives interested students a chance to
    practise project management skills while involved
    in the administration of a particular domain.
  • So, assuming a main building domain, how do we
    get started?

25
Step One The Environment
  • Rooms need to be written for each location in the
    university.
  • The precise granularity is up to the domain
    leader, but this can be changed as time goes by.
  • NPCs need to be written to represent interested
    members of staff.
  • Ideally, well write our own.
  • Items need to be written to simulate common
    objects in the university.
  • All interested students will be able to
    participate in this.

26
Step Two Stuff To Do
  • The environment itself is pretty stale, since
    theres little interactivity.
  • We need to provide a range of activities to
    interest people.
  • On one level, the MUD itself will be
    interactivity enough.
  • A social representation of the university.
  • On another level, we need things to entice people
    to play.

27
Step Two Stuff To Do
  • Much of the code I have written for Discworld can
    be adapted in one way or another.
  • Students should be encouraged to submit ideas for
    things to do
  • Quests
  • Games
  • Toys
  • There is very little limit on what is possible.

28
Step Three Develop a Community
  • This is perhaps the hardest part.
  • There is a level of critical mass required to
    ensure a steady stream of interested students who
    want to contribute.
  • Previous experience with the VMS River system in
    the university, and the current usage of MSN
    Messenger in the labs suggests that a MUD as a
    social environment could be successful in
    generating interest.

29
Step Four Goto Step One
  • As domains are developed, fleshed out and
    expanded, we can add new domains.
  • This is directly related to the number of
    students playing and contributing.
  • Once the main building is done, we can move onto
    the old college.
  • Then Bell Street.
  • Then the rest of Dundee.
  • Then the world.
  • (Bwah-ha-ha-ha!)
  • We can continue to expand indefinitely.

30
What Does the MUD teach?
  • On one level, it teaches coding.
  • On another, it teaches the things that we can
    only emphasise as important, but rarely
    demonstrate within the limits of proof of
    concept assessments
  • Change management
  • Project management
  • Maintenance
  • Revision control
  • Documentation
  • Efficiency
  • Literacy

31
What are the benefits?
  • There are a number of benefits to be gained by
    running our own MUD
  • Low maintenance most of the work will be done
    by students.
  • Low cost a moderately low spec PC can handle
    even fairly substantial player loads.
  • Collaborative development There is a sense of
    community within domains.
  • Peer reviewed feedback Better coders can
    provide useful feedback, and players can likewise
    comment on the MUD from their perspective.
  • All skill levels are provided for No one is
    left behind.

32
What Are The Problems?
  • Its entirely text-based.
  • A bit old-fashioned perhaps for the Quake
    Generation.
  • It is very much dependant on getting people
    interested.
  • Many MUDs die simply because there are no
    players.

33
How Do We Know If It Works?
  • My experience of the MUD has been very positive
    with regards to programming.
  • The experience of many Discworld coders is
    similar.
  • However, we should have some metric by which we
    determine if the MUD is genuinely improving
    student performance.
  • In the short term, we have pass rates for
    programming modules.

34
How Do We Know If It Works?
  • It is the long term however that provides the
    most interesting results.
  • Many of the skills the MUD teaches are never
    assessed.
  • Part of the benefit as a coder comes in providing
    a development environment for flexing programming
    skills.
  • Part comes from the confidence that this
    experience can bring.

35
How Do We Know If It Works?
  • Such things are difficult to quantify short of
    self-reflective evaluation.
  • This doesnt even take into account the ancillary
    benefits that may be observed as a side-effect of
    providing a UAD MUD.
  • These benefits are primarily social.
  • So, the answer is I dont know.

36
Conclusion
  • A UAD MUD offers a chance to implement a
    self-sustaining, student-driven environment with
    only a little overhead in terms of cost.
  • The benefits of such an environment are many and
    varied, although actually quantifying them is
    somewhat more difficult.
  • The MUD can cater for all levels of experience
    and LPC provides a large degree of language
    transferability that allows for concepts explored
    to be used with more common languages.
Write a Comment
User Comments (0)
About PowerShow.com