ErlMUD Commentary

ErlMUD Table of Contents

Introduction

Part I: Architecture

1. The Big Picture

Concept

Elements

The Process

The Problem

Definition

The Solution

Platform
Operating Rules
Instance Data

Distilling Elements

2. The Game

Decomposition

Locations

Location Manager

Ways

Way Manager

Objects

Object Attributes

Object Messaging Protocol

Object Manager

Mobs

Mob Attributes

Mob Messaging Protocol

Hands

Mob Controllers

Mob Manager

Wet Clay, not Stone

3. Foundation

It's All Scaffolding

Network Interface

Telnet Listener

Connection Handler

Connection-Controller Protocol

Chat

Channels

Channel Manager

Channel-Controller Protocol

Chat Commands

Accounts

erlmud:start/0

Parting Thoughts

Part II: Raw Erlang (erlmud-0.1)

4. Forming a Skeleton

Robust Structure: From the Neckbone Down

5. Follow the Messages

What Do We Need to Talk About, Anyway?

Routing? What Routing?

6. Handling Input and Output

7. Accepting Users

8. Building the World

9. Interaction

10. v0.1 Retrospective

Part III: Pure Erlang (erlmud-0.2)

11. Let's Get Idiomatic

Huh? Erlang has patterns?

Sometimes its the Wrong Case

12. Encodings are the Devil

13. Abstract It All Away

14. Storage (Where to Put All This Stuff?)

15. Lonely Without Mobs

Digression: A Word on AI in Games

16. v0.2 Retrospective

Part IV: Psychobitch (erlmud-0.3)

17. She'll Take Care of It

The LoC Mass Extinction Event

18. Understanding What is Handled, and What is Not

Managing Your Virtual Bureaucracy

19. Not Everything Can Be a gen_server

When Not to Use OTP Generics

OTPizing Your Custom Processes

20. Ready, Fight!

Digression: Game Combat Systems

21. v0.3 Retrospective

Part V: OTP Release (erlmud-0.4)

22. The Point of Release

The Old Fashioned Way

Various Modern Ways

A Cry For Help

23. The Point of Relief

Not Everything Is an Embedded Telecom Platform

24. Dialyzer

25. Items and XP

Digression: Power Curves in Games

26. v0.4 Retrospective

Part VI: Cyclic Maintenance (erlmud-1.0)

27. Its Alive!

28. Refactoring With an Eye to Purify Functions

29. Handling Data Changes (Without Annoying Users)

30. Keeping a Server Happy

31. Keeping Yourself Happy