The Client Application

A client is an application used by a player to connect to a game operated by a server. It's fundamental purpose is to make the game enjoyable for the player. This means it must provide a good way for the player to interact with the game, display the game data in an attractive, useful fashion, and make the /perceived/ performance of the game appear good (i.e., hide lag and networking problems from the player).

Game clients come in many forms; first person systems like Doom and Quake, overhead views like Warcraft, or full 3D systems like Tomb Raider. WorldForge is taking a unique approach to client design: Allow for the use of multiple forms of clients. This is a pretty ambitious thing to do because to make a system generic enough to allow for a range of clients will take some clever coding and a lot of care. Why are we going with this difficult approach? Several reasons: First, because different interfaces are suited to different types of players; second, because we want to support a variety of different kinds of hardware, some of which may be too limited to run the deluxe version of the game; third, because it'll encourage healthy competition in developing new, better looking, and better performing clients; and finally, because it is a challenge.

Obviously, the magic will be in the client/server interface.

Text Client

           #`-+-|--------
           ##...........|     #
          ###|...........#########--.-+-
          #  |..........|     ####|....|      -+-----
  -.----#w#  ------------       ##|....|##    |.....|
  |.{>.f@                       ##.(....######......|      ------
  |....|                         #|....|      |......######.....|
  |....|                          |....|      -------      |....|
  |....|                          ------                   |....|
  ------                                                   ------
Pugster the Rambler           St:10 Dx:11 Co:8 In:17 Wi:15 Ch:15  Neutral
Dlvl:1  $:984 HP:4(10) Pw:1(1) AC:10 Xp:1/15
-> n2w3 
There hasn't been much of a demand for a text-only client app, except for use as a debugging tool. While little design work has been conducted for this client, it wll probably be done in curses and consist of three frames: A scrolling text display, a small "map" window showing the character and her immediate surroundings, and an auxillary window for displaying inventory, spell lists, command instructions, etc. Think of a cross between zork and nethack. No Xwindows required; porting this to any ol' OS would probably be a no-brainer.

Vanilla 2D iso client

There is a definite demand for a bread-and-butter isometric-tile client, where the graphics are pretty but simple and don't get into the way of the game flow (or bog down the computer "needlessly".) Graphic detail will be emphasized over dynamics (animation, height levels, etc.) Think of a fancy Ultima IV/V, something on the order of Ultima VII. The goal given to the developers of this client are performance and ease of use. A low-end pentium will probably be the initial target, but we'll turn the optimization geeks loose and try to get it runnable on a 486-ish platform.

Fancy iso client

This client will make Intel cry tears of joy, as it should exercise high-end computer capabilities quite nicely (we paid for the performance, let's put it to use!) Min requirement should be a 166 MHz Pentium with a PCI video card. There will be much sharing of code with the vanilla 2D iso client, at least at first, but the simple graphics will be replaced or enhanced. Heavy-duty animations, background animations, rolling terrain rendered on the fly, weather/cloud/mist cover, dynamically rendered polygonal objects, blended tiles, shadows, time of day lighting, and so forth are all possibilities. The client will be as close to 3D as possible without actually being 3D. Think of Diablo with Railroad Tycoon 2-style dynamic terrain. The goal of this client is to push the envelope to make a stunningly beautiful, sophisticated-looking interface.

3D client

If the server supports it, it may be possible for us to build a true 3D client, where all objects in the world are polygonal. Unlike the iso clients, with the 3d client, the perspective can rotated from, say, a top down view, to an over the shoulder view, or to look up and backwards at the dragon chasing you while you flee. Think of something along the lines of Tomb Raider 2, Myth, and Die-by-the-sword.