update copyright
*** empty log message ***
see Changes
update copyrights and other minor stuff to deliantra
big semantic change - old server and crossfire did update/draw maps check for player commands, move players and monsters flush sockets - new server does check for player commands, move players and monsters update/draw maps flush sockets I have zero idea why the old code didn't do it this way. the net effect is that there is a guarenteed delay of one tick between an issued command and the player seeing its execution. The same for monster movements. That is, the new ordering reduces "lag" by a constant 120ms, which is immense, and can be felt immediately. This is a change I wanted to do for a long time. Apart from that, the tcp send code has been simplified and underwent some further tuning, leading to an even more accurate congestion management.
very very preliminary, non-working sound framework
- upgrade crossfire trt to the GPL version 3 (hopefully correctly). - add a single file covered by the GNU Affero General Public License (which is not yet released, so I used the current draft, which is legally a bit wavy, but its likely better than nothing as it expresses direct intent by the authors, and we can upgrade as soon as it has been released). * this should ensure availability of source code for the server at least and hopefully also archetypes and maps even when modified versions are not being distributed, in accordance of section 13 of the agplv3.
- improve observe - remove more cruft code - archetype loading almost works again, reloading probbaly still borked.
- remove slow and unneeded cruft code from map1. - decouple map display/stats update from ob (use pl->obsere instead)
- update copyrights in .h files, where applicable - rename preprocess to genkeywords
This is the first rough cut of the skill use system (use the STABLE tag). Details will likely change, and combat skills do not work very well, but it works quite well. Players no longer have a shoottype or range slots, instead, each player has these members: combat_skill/combat_ob the currently selected skill (and weapon) for direct attacks. ranged_skill/ranged_ob the currently selected ranged skill (and bow/spell/item) golem the currently-controlled golem, if any.
rewrote output buffer handling. the new system: - outputs messages immediately. - suppresses following duplicates. - enforces a minimum setting. - is, as usual, faster and leaner. the only problem is that the code worked out of the box, which is not reassuring.
implement ex command support to quickly retrieve item descriptions
- reduce default output-sync to less than a second - output-sync command now uses seconds as unit, not something users cannot even know. - lots of useless const adjustments.
- make face caching mandatory, and pester users to enable it - implement rate-limiting, for images only right now - implement and document output-rate command to set rate limit. - default 1mbit.
- rewrote smooth face handling, as a side-effect, smoothing seems to work again and smooth faces can be reloaded. - the server now sends the full animation for an object the first time it is seen, this uses slightly more bandwidth initially, but avoids the flickering for objects change their face later.
- made client a first-class crossfire-perl object (its attachable), but perl support is missing. - added some client events - fixed reply not working after logout
- separate all comamnds into immediate/socket-level and queued/player-level - clean up player command handling, handle up to 8 commands/tick
- socket i/o is completely asynchronous now - some command sare handled immediately - others (most palying related commands) are queued for later (as of now synchronous) processing - specifying a max queue length (in seconds) is possible, but disabled - also add some syntax sugar for network code
the rename for sanity campaign hits you died - renamed stuff - partially updated copyrights - some cleanups
streamlined packet processing a bit, experimentally enabled more immediate paclets
- write() is now independent of server ticks and will be done immediately - get rid of CORK hack, it is no longer necessary
- implement c++ interface to Event->io watchers - cut number of write()'s the server does in half
- rewrote most of the socket loop code - moved connection accept into tcp.ext - no evil socket copying anymore, needs more cleanups
moar\! rewrite\!
rewrite phase one finished
moar rewrite
(intermediate check-in for recoverability)
- further cleanup and rewrite - fix a potential crash in "lock" and "mark" packets
started simplifying network code
nuke metaserver code
mapstruct => maptile removed many ytypedefs in favor of structure tags
get rid of esrv_map_scroll and MapNewmapCmd, map update will handle it automatically
Made server compile with C++. Removed cfanim plugin and crossedit. C++ here we come.
implement 'ext' packet for extensions to hook directly into the protocol
Problem: server sends out 2 tcp packets per command (e.g. a 2-byte packet + a 10 byte packet for a small map1a command). Solution: rewrite that thing Workaround: on linux, uncork and cork again just before sleeping for the next tick, that solves the problem without hackery or rewriting it. This cuts the # of packets send by at least one half.
first round of mapinfo command and response, rationalised the coordinate system
Initial revision
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.