Last Chaos 64-bit client based on the 2015/2018 code base and
patched to build on the latest versions of Visual Studio with modern Windows 10 SDK.
You can view the original server source code here:
openlastchaos -> lastchaos-source-client
-
The old (2000) proprietary library ijl15 from Intel has been removed from dependencies.
She was only responsible for creating screenshots of the screen in jpeg format. Now
screenshots are created in TGA format. -
Xtrap and Kalydo have been disabled, their libraries have been removed from the client's
build because these are proprietary technologies that interfere with the development
of the game client. -
Removed all garbage libraries not involved in the client build.
-
Now all the libraries needed for the client are building from the source code
(except for boost libraries). -
Library boost has been upgraded to version 1.78 (1.82.0 tested too)
You can download the boost library here:
https://sourceforge.net/projects/boost/files/boost-binaries/1.78.0/ -
Game logging has been restored. This improves the debugging of the client
and allowed us to immediately find a number of errors. -
After restoring the log, errors were found in the Entities.In CharacterBase.es,
EnemyBase.es, PetBase.es, SlaveBase.es the destructor is deleted, since it is not
needed here in the first place. Secondly, he broke the pre-caching of resources.
It was visible in the game log. There were also some client resource errors visible
in the log. Temporarily disabled these messages in Entities itemObjects.es and ModelHolder3.es. -
The client has been updated to new versions of Visual Studio.
You can choose from your choice of versions 2013, 2017, 2019, 2022. (With native Win10 SDK) -
All absolute paths have been removed from client projects.
Good practice: Do not use absolute paths in projects. Use macros to set paths.
https://learn.microsoft.com/EN-uS/cpp/build/reference/common-macros-for-build-commands-and-properties?view=msvc-170 -
The client has been updated from DirectX 8 to DirectX 9.
The version with DirectX 8 is also left for convenient comparison in
meld(recommended) or winmerge.
-
Updated from SeriousSamClassic:
Engine/Base
Engine/Lights
Engine/Math
Engine/Templatesand some more.
-
Texture objects are expanded to 64 bits.
This was necessary for the 64 bit version to work. -
Flag D3DXSHADER_SKIPVALIDATION has been added to the shader compilation function.
(D3DXAssembleShader). Without this flag, only pixel shaders were compiled.
Compiling vertex shaders caused an error. -
All assembly code has been translated into C/C++
In files:Engine.cpp
Models/RenderModel_View.cpp
Network/CNetwork.cpp
Network/NetworkMessage.cpp
Network/CPacket.cpp
Terrain/TRGenerate.cpp
Rendering/RendMisc.cpp
LocalDefine.h
Sound/SoundMixer.cpp
Ska/RMRender.cpp
Base/Timer.cpp
Base/CTString.cpp
Base/Profiling.cpp
Base/ErrorReporting.cpp
Base/Assert.h
Base/MemoryTracking.cpp // not used
Base/StackDump.cpp // not used
Base/Memory.h
Math/Functions.h
Math/Clipping.inl
Math/Matrix12.h
Light/LayerMixer.cpp
Graphics/Gfx_Direct3D.cpp
Graphics/TextureEffects.cpp
Graphics/Color.cpp
Graphics/OpenGL.h
Graphics/Shader.cpp
Graphics/Color.h
Graphics/Gfx_Direct3D_Colors.cpp
Graphics/Vertex.h
Graphics/Graphics.cpp
Graphics/Fog.cpp
Graphics/DrawPort_RenderScene.cpp
Gfx_OpenGL_Textures.cpp
Gfx_Direct3D_Textures.cpp -
To work with a 64-bit client, a 64-bit server has compiled. (Windows/Linux)
-
A universal 64-bit Linux server for a 32/64-bit client has been created.
The server source code and server libraries have been patched to support the
latest versions of GCC and Clang. The server can be compiled on the latest
versions of any Linux. Tested on Debian 12.5 amd64 and Gentoo amd64 [portage, January 2024].
Since there is Clang support, you can compile the server under FreeBSD/OpenBSD/NetBSD/macOS. -
Fixed many pointers cut to 32-bit
(without correction, segfault occurs)
-
OpenGL render is unlocked.
Some textures rendering are not corrected.
Need to add some code:
Engine/Terrain/TRRender.cpp
Engine/Graphics/Shader.cpp
Engine/Graphics/TextureRender.cpp
and in some other places. -
The CWebPage library has been added to the project.
-
The PersistentSymbolTool utility has been added to the project.
-
Some fixes bugs.
Last Chaos Server based on the 2015/2018 code base and
patched to build and run on the latest versions of Linux.
This source code does not require manual compilation of libraries
and uses native libraries of modern distributions. You just need to
install the dependeces libraries and headers in your distribution.
Compilation and run of the server were tested on Debian 12.5 amd64
and Gentoo (Protage 2024) distributions using the GCC-12 and Clang-16
compilers.
You can view the original server source code here:
openlastchaos -> lastchaos-source-server
- apr
- apr-util
- log4cxx
- sqlite3
- curl
- jsoncpp
- botan-2
- boost
- mysql or mariadb
- subversion
To install these packages in Debian/Ubuntu use the script install-deps.sh
Additionally, the script will install the i386 environment necessary
to run CashServer.In Gentoo, simply use the emerge command to install
these packages.
To compile, go to the LCS2015/Server.Sources or LCS2018/Server.Sources directory,
open a terminal and enter:
make usa && make clean
Once compilation is complete, go to the LCS2015(LCS2018) directory,
open a terminal and type:
./install-server.sh
After installing the server, you need to set your IP for the server and password
for the MySQL databases. To do this, open a terminal and enter:
./set-ip.sh YOUR-IP
./set-pass.sh YOUR-PASSWORD
Next, you need to create and set the date base. (archive directory)
For a server based on codebase 2015, run in the terminal:
mysql -u root -p
mysql> CREATE DATABASE ep4_data;
mysql> CREATE DATABASE ep4_db;
mysql> CREATE DATABASE ep4_db_auth;
mysql> CREATE DATABASE ep4_post;
mysql> quit;
mysql -u root -p ep4_data < ep4_data.sql
mysql -u root -p ep4_db < ep4_db.sql
mysql -u root -p ep4_db_auth < ep4_db_auth.sql
mysql -u root -p ep4_post < ep4_post.sql
For a server based on codebase 2015, run in the terminal:
mysql -u root -p
mysql> CREATE DATABASE 2018_nov_data;
mysql> CREATE DATABASE 2018_nov_db;
mysql> CREATE DATABASE 2018_nov_db_auth;
mysql> CREATE DATABASE 2018_nov_post;
mysql> quit;
mysql -u root -p 2018_nov_data < 2018_nov_data.sql
mysql -u root -p 2018_nov_db < 2018_nov_db.sql
mysql -u root -p 2018_nov_db_auth < 2018_nov_db_auth.sql
mysql -u root -p 2018_nov_post < 2018_nov_post.sql
At this stage, the installation of the server and databases is complete.
To start the server, go to the LCS2015(LCS2018) directory and run
one of three commands in the terminal:
./run-server.sh null
For run server without windows.
./run-server.sh xterm
For run server with xterm windows.
./run-server.sh mate
For run server without windows.
After you have installed and configured the server locally, run the
install-to-system.sh script with administrator rights to install
the server on the system.
The server will be installed in the /opt/LCS2015(2018) directory and
started using systemd at system startup.
By default, rolling is set to 1 hour. To change for 1 day
or your value, edit the log.xml files.
tx00100xt
https://github.com/tx00100xt
Alexander Pavlov.