<h2>UClient Roadmap</h2>
---------------------

<br>
The version numbering starts late with uclient.  The first versions of uclient were available around January 1999; it featured a very slow isometric
graphic engine and a poor user interface. Many efforts were made since those
days to speed up the graphic engine and to enhance functionality of the user
interface.<br>
Music and soundeffects have been integrated around May 1999, but are only used 
by the gui. No fonts, sounds or images are hardcoded in the sources; on  startupuclient loads the file uclient_resources.ini which contains a mapping  from 
symbolic resourcenames to "real" filenames.  With these facts in mind, I think it is fair to start version numbering with 0.5.0.
I have choosen three subnumbers, the first one is the main version;
I expect it to change at a maximum once a year. The second number is the
minor version number; it's change reflects new functionality or outlook.
The last number is the revision number; it stands for bugfixes.
Odd minor version number always reflect development or unstable versions.
The releases with even minor number are meant to be end-user versions.

<br>

<em>Note:</em> Some goals maybe achieved earlier some later; many of them depend on server functionality. In general the order reflect the priority I have set on developing the different parts.
<br>
<p>
Current stable version: 0.8.0<br>
Current developer version: 0.8.0<br>
<p>

<h3>Version 0.5</h3>

<h4>features:</h4>

<li>interpret keyboard strokes and send appropriate qserver2 commands
<li> receive entity data from qserver2 and transfer it into the local
          database. (implies show up in the viewport)
<li> login dialog lets user choose an existing character or to create
          a new one.

<h4>fixes:</h4>

<h5>0.5.1 (99-07-05)</h5>

<li>updated comm/protocol.h and comm/quadas.cc to reflect the qserver2 protocl update by Bryce 99-07-04 (qserver protocol V2.1)

<h5>0.5.2 (99-07-07)</h5>
<li>extended quadas.cc to parse packet-spanning-server-messages correctly; thought 
there is still a fixed limit for the message size(currenty 512K)
<li>implemented use of "entity-name to image-file mapping" using "image.tbl"
generated by 
<em>find ./media/ -name "*.png" -type f -fprintf /tmp/image.tbl "%f %h/%f\n"</em>  
<li>on map loading qserver2 data files get dumped to /tmp/qserver-data (temporary)

<h5>0.5.3 (99-07-16)</h5>
<li> new layout by Pegasus
<li> qserver2 protocol version 2.3 
<li> different types for the entities transmitted by qserver2; entity->type is now used to choose graphical representation


<h3>Version 0.6 (99/07/26)</h3>

<h4>features</h4>
<li>server port number configurable through $HOME/.uclient/global.ini
<li>configurable cursor keys (invert v. normal scrolling) 
<li>simple IRC interface: move the mouse to the bottom to activate the input line. 
Normal input is send as speech; qserver commands must be preceeded with an "/"
<li>different animations for different states (standing, walking) and different 
directions, however fixed animation speed.
<li>nearly full qserver 2.3 support 
(yet no "single cycled animations" like birth or death)
<li>"closeable window" with confirmation request, the "emerygency shutdown" 
when hitting ESC works only when uclient has been compiled with debugging enabled.
<li>on iconification the screen refresh is disabled in order
to minimize cpu usage 
<li>format of image.tbl changed
<li>added inventory dialog (not functional)
<li>added diary; you may note down your thoughts here, 
these are getting stored permanently.
<li>optional suicide of character when disconnecting from server

<h5>Version 0.6.1 (99-07-28)</h5>
<li>one cycle animations.    
<li>chat output gets redirected into the viewport window. For fans of a text based IRC, this function can be turned off in the options
dialog.
<li>animation description file for Garg's crab animation.
<li>character names shown in game

<h5>Version 0.6.2 (99-07-29)</h5>
<li>interpolation of character movement; uclient calculates the new position 
by the given velocity vector. So the character moves always smooth, even
if the server connection has a high lag. However a lag higher than 2 seconds
leads to inconsistencies, so that the character warps from one position to
another.  

<h5>Version 0.6.3 (99-07-29)</h5>
<li>timeouts get detected for the server protocol

<h5>Version 0.6.4 (99-08-01)</h5>
<li>win32 build target revised, availibility of win32 binary

<h5>Version 0.6.5 (99-08-05)</h5>
<li>added modes: BIRTH, DYING, RUNNING
<li>support for different animation types (none directions, 4 or 8 directions)
<li>FEATURE FREEZE FOR THE DEMO RELEASE

<h5>Version 0.6.6 (99-08-12)</h5>
<li>bugfixes for stable windows version 
<li>running and spawning animation for the barbarian (thanks to John Michelsen)

<h5>Version 0.6.7 (99-08-13)</h5>
<li>changed autoconf/automake to use SDL 0.10.* installed in the system; this
enables building of uclient outside the forge sourcetree 
<li>easier building/installation under linux
<li>you don't need to be root anymore in order to run uclient in fullscreen under X11; you "just" need write access to /dev/mem
 
<h5>Version 0.6.8 (99-08-29)</h5>
<li>reduced roxie animation (faster loading and lesser memory consuming)
<li>fixed bug in character movement, which lead to jumpy movement
<li>limited screen refresh (20fps) reduces cpu usage to 0.5%, when uclient
is idle. The mouse is still updated at a max. rate of 50 updates/second
<li>slightly faster scrolling through loop optimizing
<li>Disconnect function, lets you connect to another server without the need
to restart uclient
<li>window manager icon
<li>chat window now has got a history, use the triangles on top and below of to scroll
<li>added check if all needed datafiles can be found
<li>added ability to start uclient from any directory, the installation
directory gets stored in global.ini

<h5>Version 0.6.9 (99-09-22)</h5>
<li>added SMPEG from LokiSoft; this enables mp3 music and mpeg video playback.
Music playback works; video playback currently works only without an
corresponding audio stream. (sync problem)

<h5>Version 0.6.10</h5>
<li>removed libu, libmixer and libsmpeg - these are now bundled into the
seperate lib distribution libu-0.3.1.tar.gz. You may get it from
ftp.worldforge.org/worldforge/users/karsten.
<li>replaced XMLDoc by Element/XMLFilter. Element is a hierachical datatype and
XMLFilter converts Element from/to XML formatted text.
<li>replaced libappconf.a by libregistry.a, which stores the data in xml
formatted files. Migrated global.ini and resources.ini to xml format. 

<h3>Version 0.7</h3>
<li>new modul based architecture
<li>integrated libAtlas /forge/lib/Atlas
<li>modul <b>chat</b> implements chat function for use with 
/forge/lib/Atlas/src/NetTest/ChatServer

<h3>Version 0.7.1</h3>
<li>libsigc++ based module system - cancelled

<h3>Version 0.7.2</h3>
<li>revised module system (based on function pointers)
<li>"complete" chat client: issue "/mod_load Chat" to load the chat module  

<h3>Version 0.7.3</h3>
<li>libu has been renamed to libuta and is available from 
http://libuta.sourceforge.net
<li>connection to cyphesis server established (ircworld)

<h3>Version 0.7.4 (00-04-22)</h3>
<li>animated sprites are back

<h3>Version 0.7.5 (00-04-10)</h3>
<li>terrain is back (loaded from a clientside stored map)
<li>first mouse interface 

<h3>Version 0.7.6 (00-05-29)</h3>
<li>overview map

<h3>Version 0.7.7 (00-06-03)</h3>
<li>clientside database and some simple predictions
<li>mouse interaction with gameworld
<li>environment sounds and weather (rain)

<h3>Version 0.7.8 (00-06-13)</h3>
<li>player inventory
<li>basic support for nested gameobjects
<li>random music player
<li>clientside collision detection (disabled by default)

<h3>Version 0.8.0 (00-07-20)</h3>
Acorn release version.
 






