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