Share

ZIG Game Engine

File Release Notes and Changelog

Release Name: 1.4.0

Notes:


Changes: ------------------------------------------------- Version 1.4.0 (January 24, 2005) ------------------------------------------------- This version introduces minor API changes that break existing code. Please read all of the "API CHANGE:" change items below to bring your ZIG v1.3.2 code up-to-date with more ease. This version of the library requires(*) HawkNL version 1.7 beta 1 or greater to work properly. Get the updated library sources (includes the MSVC project files that build everything) at: http://www.hawksoft.com/hawknl/ (*)NOTE: actually, the older HawkNL 1.68 MIGHT work just fine, but this has not been thoroughly tested. feedback on this is welcome! - NEW OPTIONAL DEPENDENCY REMOVAL: you can remove the dependency of the ZIG library to the Pthreads library by uncommenting the line: #define ZIG_NO_PTHREADS on header file ziglib/include/zig/zigdefs.h and recompiling ZIG. this will make ZIG use the threading support offered by HawkNL version 1.7 beta 1, so ZIG will only depend on HawkNL and not on Pthreads. ADVANTAGES: you don't need Pthreads to build ZIG and you can get rid of Pthreads altogether if building for Windows (because HawkNL compiles to native "Windows threads" when built on Windows) DISADVANTAGES: thread priorities on ZIG will no longer work (that is, all of ZIG's internal threads will be assigned the default system priority), because HawkNL's threads API (hawkthreads.h) does not have thread priority adjustment functions. - API CHANGE: the zigserver_c::client_connected(...) callback has now two parameters. one is new, which is a copy of the "buffer_c &custom" client connect data that is first passed to the zigserver_c::accept_client(...) callback. Now you don't have to "save" that buffer in some intermediary structure between the accept_client() and client_connected() zigserver callbacks. ---> to bring your existing code up to date, just change your "client_connected()" callback to take an additional " buffer_c &custom " parameter (see zigserver.h and the sources for the "minigame" example game in zig/minigame/gameserver.cpp) - API CHANGE: if you use "object serialization", you MUST update your code because the method "write" in class serializable_c: virtual void serializable_c::write(buffer_c &out) is changed for "const" object support: virtual void serializable_c::write(buffer_c &out) const and derived methods need the "const". If not, the compiler will complain, or worse, will say nothing about it and let your code use the "default" serialization for writing and "custom" serialization for reading, resulting in a mess! This change only affects code that uses the "object serialization" support and is thus extending the class serializable_c. ---> see the "object serialization" example code that is commented out on zig/minigame/main.ccp This change adds const-correctness to class serializable_c. Now you can write const objects to buffer_c, e.g.: const Object obj(init); //"Object" derives from serializable_c //... buf.putObject(obj); Patch by Milan Mimica. - new API: zigclient_c::set_connect_timeout(int t); which lets the game client configure the amount of time (t, in seconds) that it will keep trying to connect to the server. previously, a default value of 4 seconds was hard-coded into the library. - compressed packets that are found to be bigger than the original are discarded and the original is sent instead. Patch by Milan Mimica. - fixed two rounding-error related bugs in the client ping estimation code. Thanks Milan Mimica for isolating the bugs and providing a fix. - fixed client "ping time" estimation code which was broken for the "threaded" mode of the library ("blocking" mode). the code has also been improved to work better in the presence of high client latency.