1 |
<div id="content"> |
2 |
<h2>History of Deliantra</h2><br /> |
3 |
<a class='button' href='about.html'>Introduction</a> |
4 |
<a class='button' href='faq.html'>FAQ</a> |
5 |
<a class='button' href='history.html'>History</a> |
6 |
<div style='clear: both; margin-bottom: 20px;'></div> |
7 |
<p> |
8 |
Deliantra is a heavily rewritten version of Crossfire. A lot of work |
9 |
has been done on the game server engine and the content. |
10 |
Not only has the server code been improved but much work has also been done to help |
11 |
balance the game. This page lists some of the significant changes from Crossfire |
12 |
to Deliantra. |
13 |
</p> |
14 |
|
15 |
<h3>Code Changes</h3> |
16 |
|
17 |
<ul> |
18 |
<li> |
19 |
lots of bugfixes, mainly crashfixes |
20 |
</li> |
21 |
<li> |
22 |
better handling of file saving, allowing more reliable regular backups |
23 |
and also a more crash-safe behavoir. |
24 |
</li> |
25 |
<li> |
26 |
a Perl plugin system which is actively used to improve interactivity features, |
27 |
like the tradeshop, mana fountain, and NPC behaviour and dialog. |
28 |
</li> |
29 |
<li> |
30 |
the server code has been converted to C++ and a few structs are improved with |
31 |
C++ features (templates, methods, ...) |
32 |
</li> |
33 |
<li> |
34 |
Perl has been moved further into the core of Deliantra, allowing more stable |
35 |
and more interesting plugin extensions to the game. |
36 |
</li> |
37 |
<li> |
38 |
Lots of the loading/saving code for players and maps has been rewritten/changed |
39 |
to handle serialized Perl data. |
40 |
</li> |
41 |
<li> |
42 |
The 'shutdown' command has been improved to save maps and players now before |
43 |
exiting. |
44 |
</li> |
45 |
<li> |
46 |
Updated the server with a linux-specific improvement to the socket handling, |
47 |
The old code sent out 2 TCP packets per command, the new one will bundle them |
48 |
into one segment. This will decrease bandwidth requirements a lot, decreases the |
49 |
chance of packet loss a lot and greatly reduces chances for lag. As a side effect, |
50 |
it decreases latency without the ill side-effects of disabling nagle. |
51 |
</li> |
52 |
<li> |
53 |
Added Linux-specific fast timeout code that kicks players out when the client |
54 |
doesn't ack data after 20 seconds. This makes it possible to quickly re-login |
55 |
after a "catastrophic" even such as losing your internet conenction. Also |
56 |
player-stealing between hostile players is possible. |
57 |
</li> |
58 |
<li> |
59 |
Added a plug-in that asynchronously pre-fetches adjacent maps from disk |
60 |
whenever a player enters a map. This make ist highly probable that maps entered by |
61 |
the player are already in memory and comes at almost no cost (they are loaded into |
62 |
the OS disk cache only). As a net effect, most short freezes due to map loading |
63 |
should be gone. |
64 |
</li> |
65 |
</ul> |
66 |
|
67 |
<h3>Balancing changes</h3> |
68 |
|
69 |
<ul> |
70 |
<li>reduced draining effects by about a factor of 8</li> |
71 |
<li> |
72 |
Enabled limited playerkilling again, when both players are |
73 |
hostile (there is no luck penalty). If one of the players isn't |
74 |
hostile, then you can't attack him/her. |
75 |
</li> |
76 |
<li> |
77 |
Rods are now limited by the use_magic_item skill of the player (+ some extra). |
78 |
</li> |
79 |
<li> |
80 |
The experience table has been adjusted and made a little bit harder. |
81 |
The 'nimbus', where you get back the lost experience compensates this a little bit. |
82 |
</li> |
83 |
<li> |
84 |
Some of the treasurelists have been changed, for example nearly all |
85 |
occurences of rings in monster loot have been replaced by gems. |
86 |
</li> |
87 |
<li> |
88 |
The IPO and Bank don't use the Python plugins anymore and have been replaced by |
89 |
more featureful Perl plugins, eg. live mail notification of the new IPO or the handling |
90 |
of the new royalties in the bank. |
91 |
</li> |
92 |
<li> |
93 |
Added 3d models for some houses and monsters, unfortunately there weren't enough |
94 |
people who had time for modelling, so the graphics set looks more mixed now, more |
95 |
modellers are needed. |
96 |
</li> |
97 |
<li> |
98 |
Furthermore, a setting has been added that allows players to cast town portal |
99 |
in their personal maps such as apartments, big chests in guilds etc. |
100 |
</li> |
101 |
<li> |
102 |
A 'suicide' command has been added. |
103 |
</li> |
104 |
<li> |
105 |
Stealing now never yields more exp than the monster has and also reduces monster experience. |
106 |
</li> |
107 |
<li> |
108 |
Greatly reduced availability of skill scrolls and (to a lesser extent) enchantment scrolls, |
109 |
to enhance class-based gameplay. Also reduced amount of generators in raffle. |
110 |
</li> |
111 |
<li> |
112 |
Greatly reduced experience for playerkills. Disable friendly fire logic in the arena, |
113 |
so you do not have to be hostile anymore just to visit the arena. |
114 |
</li> |
115 |
<li> |
116 |
Put a bargaining scrolls in the Gem shop in scorn for a low price. |
117 |
So that players can begin levelling bargaining early. |
118 |
</li> |
119 |
<li> |
120 |
Monsters don't drop rings anymore, only gems and money instead. |
121 |
Expanded the magic shops a bit, because monsters don't drop rings or spellbooks anymore. |
122 |
</li> |
123 |
<li> |
124 |
Shops have now a default maximum. |
125 |
</li> |
126 |
<li> |
127 |
the difficulty calculations for maps were adjusted together with the generation |
128 |
of scrolls, rods, wands and staffs, which are now more close to the level difficulty. |
129 |
</li> |
130 |
</ul> |
131 |
|
132 |
<h3>New systems</h3> |
133 |
|
134 |
<p> |
135 |
Some sub systems have been rewritten in Perl: |
136 |
</p> |
137 |
|
138 |
<ul> |
139 |
<li> |
140 |
The event objects have been completly removed from the archetypes and have been |
141 |
replaced with an 'attach' field, which describes a linking point between extensions and |
142 |
objects.<br /> |
143 |
Look at the <a href="http://cvs.schmorp.de/deliantra/maps/perl/">perl extensions in the cvs</a> for |
144 |
examples. |
145 |
</li> |
146 |
|
147 |
<li> |
148 |
NPCs have now a greatly increased functionality, they have a map-local states and |
149 |
player-states. Look at the |
150 |
<a href="doc/development/NPC_Dialogue.html">NPC Dialogues</a> |
151 |
documentation, which explaines the Perl interface. |
152 |
The interface allows direct script integration, dialog trees and more. |
153 |
</li> |
154 |
|
155 |
<li> |
156 |
Chat commands, NPC dialogues and lots of other things have been rewritten. |
157 |
One new function that has already been implemented is the 'ignore' commmand. |
158 |
One can ignore shouts/chats, tells or both from one person for a specified amount of |
159 |
hours. |
160 |
</li> |
161 |
</ul> |
162 |
</div> |