From 8be8852596fa25f531c45f0c8cee46def3725ebd Mon Sep 17 00:00:00 2001 From: Marc-Eric Martel Date: Sun, 1 Oct 2023 11:52:07 -0400 Subject: [PATCH 1/5] Ajout CMakeLists.txt pour compiler le serveur en Linux --- .gitignore | 2 ++ SQCSim-common/define.h | 1 + SQCSim-srv/cmake/CMakeLists.txt | 29 +++++++++++++++++++++++++ SQCSim-srv/define.h | 2 +- SQCSim-srv/server.cpp | 8 +++---- SQCSim-srv/server.h | 2 +- SQCSim2021/docs/analyse_preliminaire.md | 0 SQCSim2021/docs/analyse_serveur.md | 1 + 8 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 SQCSim-srv/cmake/CMakeLists.txt create mode 100644 SQCSim2021/docs/analyse_preliminaire.md create mode 100644 SQCSim2021/docs/analyse_serveur.md diff --git a/.gitignore b/.gitignore index f0c1c5a..3569aab 100644 --- a/.gitignore +++ b/.gitignore @@ -373,3 +373,5 @@ FodyWeavers.xsd /x64/Release/SQCSim2023.exe /x64/Debug/SQCSim2023.exe /x64/Debug/SQCSim2021.pdb +/SQCSim-srv/cmake/* +!/SQCSim-srv/cmake/CMakeLists.txt diff --git a/SQCSim-common/define.h b/SQCSim-common/define.h index f02d719..c7e6cb7 100644 --- a/SQCSim-common/define.h +++ b/SQCSim-common/define.h @@ -53,6 +53,7 @@ typedef uint64_t Timestamp; #include #include #include +#include #define SOCKET int #define INVALID_SOCKET -1 diff --git a/SQCSim-srv/cmake/CMakeLists.txt b/SQCSim-srv/cmake/CMakeLists.txt new file mode 100644 index 0000000..2c9eba6 --- /dev/null +++ b/SQCSim-srv/cmake/CMakeLists.txt @@ -0,0 +1,29 @@ +cmake_minimum_required(VERSION 3.18.4) + +project(SQCSim-Server VERSION 0.1) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_STANDARD_REQUIRED True) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../out") + +set(SQCSIM_COMMON_DIR "../../SQCSim-common/") + +add_library(SQCSim-common + "${SQCSIM_COMMON_DIR}blockinfo.cpp" + "${SQCSIM_COMMON_DIR}bullet.cpp" + "${SQCSIM_COMMON_DIR}chunk.cpp" + "${SQCSIM_COMMON_DIR}netprotocol.cpp" + "${SQCSIM_COMMON_DIR}opensimplex.cpp" + "${SQCSIM_COMMON_DIR}player.cpp" + "${SQCSIM_COMMON_DIR}transformation.cpp" + "${SQCSIM_COMMON_DIR}world.cpp" +) + +add_executable(SQCSim-server + "../connection.cpp" + "../server.cpp" + "../main.cpp" + ) + +target_link_libraries(SQCSim-server PUBLIC SQCSim-common) diff --git a/SQCSim-srv/define.h b/SQCSim-srv/define.h index 77ca08e..626a26a 100644 --- a/SQCSim-srv/define.h +++ b/SQCSim-srv/define.h @@ -14,4 +14,4 @@ typedef unsigned char LogDest; enum LOG_DEST { CONSOLE, LOGFILE, LOG_LAST }; -#endif \ No newline at end of file +#endif diff --git a/SQCSim-srv/server.cpp b/SQCSim-srv/server.cpp index 17c5585..cbda844 100644 --- a/SQCSim-srv/server.cpp +++ b/SQCSim-srv/server.cpp @@ -85,7 +85,7 @@ int Server::Ready() { while (!readystart) { sockaddr_in sockad; - int addrlen = sizeof(sockad); + unsigned int addrlen = sizeof(sockad); SOCKET sock = accept(m_sock_tcp, (sockaddr*)&sockad, &addrlen); if (sock < 0) @@ -140,7 +140,7 @@ void Server::Run() { Log("Partie en cours...", false, false); } -inline std::string Server::Timestamp() { +inline std::string Server::LogTimestamp() { time_t rawtime; struct tm timeinfo; char buffer[80]; @@ -162,11 +162,11 @@ inline std::string Server::Timestamp() { void Server::Log(std::string str, bool is_error = false, bool is_fatal = false) { switch (m_log) { case LOG_DEST::LOGFILE: - m_logfile << Timestamp() << (is_fatal ? "FATAL " : "") << (is_error ? "ERROR " : "") << str << std::endl; + m_logfile << LogTimestamp() << (is_fatal ? "FATAL " : "") << (is_error ? "ERROR " : "") << str << std::endl; break; case LOG_DEST::CONSOLE: default: - std::cout << Timestamp() << (is_fatal ? "FATAL " : "") << (is_error ? "ERROR " : "") << str << std::endl; + std::cout << LogTimestamp() << (is_fatal ? "FATAL " : "") << (is_error ? "ERROR " : "") << str << std::endl; break; } diff --git a/SQCSim-srv/server.h b/SQCSim-srv/server.h index 425a996..6c77038 100644 --- a/SQCSim-srv/server.h +++ b/SQCSim-srv/server.h @@ -35,7 +35,7 @@ private: World* m_world = nullptr; - std::string Timestamp(); + std::string LogTimestamp(); void Log(std::string str, bool is_error, bool is_fatal); void buildIdList(size_t size); diff --git a/SQCSim2021/docs/analyse_preliminaire.md b/SQCSim2021/docs/analyse_preliminaire.md new file mode 100644 index 0000000..e69de29 diff --git a/SQCSim2021/docs/analyse_serveur.md b/SQCSim2021/docs/analyse_serveur.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/SQCSim2021/docs/analyse_serveur.md @@ -0,0 +1 @@ + From 04529206977a083a93312fcc42756f3cc77863a9 Mon Sep 17 00:00:00 2001 From: Marc-Eric Martel Date: Sun, 1 Oct 2023 14:02:43 -0400 Subject: [PATCH 2/5] =?UTF-8?q?Enlev=C3=A9=20l'erreur=20de=20narrowing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SQCSim-srv/cmake/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/SQCSim-srv/cmake/CMakeLists.txt b/SQCSim-srv/cmake/CMakeLists.txt index 2c9eba6..659ac83 100644 --- a/SQCSim-srv/cmake/CMakeLists.txt +++ b/SQCSim-srv/cmake/CMakeLists.txt @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.18.4) project(SQCSim-Server VERSION 0.1) +set(CMAKE_COMPILER_OPTIONS "-Wno-narrowing") set(CMAKE_CXX_STANDARD 17) set(CMAKE_STANDARD_REQUIRED True) From 965e78309ef65ec64c3ec8f4ae89e99a3cc577fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-=C3=89ric=20Martel?= Date: Sun, 1 Oct 2023 14:17:42 -0400 Subject: [PATCH 3/5] =?UTF-8?q?Changements=20dans=20le=20CMakeLists=20du?= =?UTF-8?q?=20serveur=20pour=20la=20compatilit=C3=A9=20ARM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SQCSim-srv/cmake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SQCSim-srv/cmake/CMakeLists.txt b/SQCSim-srv/cmake/CMakeLists.txt index 659ac83..4a1f624 100644 --- a/SQCSim-srv/cmake/CMakeLists.txt +++ b/SQCSim-srv/cmake/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.18.4) project(SQCSim-Server VERSION 0.1) -set(CMAKE_COMPILER_OPTIONS "-Wno-narrowing") +add_compile_options("-Wno-narrowing") set(CMAKE_CXX_STANDARD 17) set(CMAKE_STANDARD_REQUIRED True) From cddc59d6cf422e03fd474f8b2350eeeff57abd83 Mon Sep 17 00:00:00 2001 From: Marc-Eric Martel Date: Sun, 1 Oct 2023 14:20:24 -0400 Subject: [PATCH 4/5] gitignore --- SQCSim2021/cmake/CMakeLists.txt | 39 +++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 SQCSim2021/cmake/CMakeLists.txt diff --git a/SQCSim2021/cmake/CMakeLists.txt b/SQCSim2021/cmake/CMakeLists.txt new file mode 100644 index 0000000..02c5332 --- /dev/null +++ b/SQCSim2021/cmake/CMakeLists.txt @@ -0,0 +1,39 @@ +cmake_minimum_required(VERSION 3.18.4) + +project(SQCSim-Client VERSION 0.8) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_STANDARD_REQUIRED True) + +set(CMAKE_BUILD_DIRECTORY "./build") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../out") + +set(SQCSIM_COMMON_DIR "../../SQCSim-common/") + +add_library(SQCSim-common + "${SQCSIM_COMMON_DIR}blockinfo.cpp" + "${SQCSIM_COMMON_DIR}bullet.cpp" + "${SQCSIM_COMMON_DIR}chunk.cpp" + "${SQCSIM_COMMON_DIR}netprotocol.cpp" + "${SQCSIM_COMMON_DIR}opensimplex.cpp" + "${SQCSIM_COMMON_DIR}player.cpp" + "${SQCSIM_COMMON_DIR}transformation.cpp" + "${SQCSIM_COMMON_DIR}world.cpp" +) + +add_executable(SQCSim-server + "../audio.cpp" + "../connector.cpp" + "../engine.cpp" + "../mesh.cpp" + "../openglcontext.cpp" + "../shader.cpp" + "../skybox.cpp" + "../texture.cpp" + "../tool.cpp" + "../vertexbuffer.cpp" + "../worldrenderer.cpp" + "../main.cpp" + ) + +target_link_libraries(SQCSim-server PUBLIC SQCSim-common) From 93062e49e2bab063fd580a079d7291435feb5a30 Mon Sep 17 00:00:00 2001 From: Marc-Eric Martel Date: Wed, 4 Oct 2023 15:01:48 -0400 Subject: [PATCH 5/5] client linux fonctionnel --- .gitignore | 3 +++ SQCSim-common/world.cpp | 4 +-- SQCSim-common/world.h | 2 +- SQCSim2021/audio.h | 8 +++++- SQCSim2021/cmake/CMakeLists.txt | 35 +++++++++++++++++++++++--- SQCSim2021/define.h | 6 ++++- SQCSim2021/media/shaders/shader01.frag | 2 +- 7 files changed, 51 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 3569aab..f15149d 100644 --- a/.gitignore +++ b/.gitignore @@ -375,3 +375,6 @@ FodyWeavers.xsd /x64/Debug/SQCSim2021.pdb /SQCSim-srv/cmake/* !/SQCSim-srv/cmake/CMakeLists.txt +/SQCSim2021/cmake/* +!/SQCSim2021/cmake/CMakeLists.txt +/SQCSim2021/SQCSim-client diff --git a/SQCSim-common/world.cpp b/SQCSim-common/world.cpp index 4d7c292..1be12e7 100644 --- a/SQCSim-common/world.cpp +++ b/SQCSim-common/world.cpp @@ -130,7 +130,7 @@ void World::GetScope(unsigned int& x, unsigned int& y) { y = m_center[1]; } -void World::Update(Bullet* bullets[MAX_BULLETS], Vector3f& player_pos, BlockInfo* blockinfo[BTYPE_LAST]) { +void World::Update(Bullet* bullets[MAX_BULLETS], const Vector3f& player_pos, BlockInfo* blockinfo[BTYPE_LAST]) { UpdateWorld(player_pos, blockinfo); //TransposeWorld(player_pos, bullets); } @@ -407,4 +407,4 @@ void World::UpdateWorld(const Vector3f& player, BlockInfo* blockinfo[BTYPE_LAST] }*/ } -int World::GettbDeleted() const { return m_tbDeleted.size(); } \ No newline at end of file +int World::GettbDeleted() const { return m_tbDeleted.size(); } diff --git a/SQCSim-common/world.h b/SQCSim-common/world.h index d341ee8..0cc628d 100644 --- a/SQCSim-common/world.h +++ b/SQCSim-common/world.h @@ -30,7 +30,7 @@ public: BlockType BlockAt(float x, float y, float z, BlockType defaultBlockType = BTYPE_AIR) const; BlockType BlockAt(const Vector3f& pos, BlockType defaultBlockType = BTYPE_AIR) const; - void Update(Bullet* bullets[MAX_BULLETS], Vector3f& player_pos, BlockInfo* blockinfo[BTYPE_LAST]); + void Update(Bullet* bullets[MAX_BULLETS], const Vector3f& player_pos, BlockInfo* blockinfo[BTYPE_LAST]); void GetScope(unsigned int& x, unsigned int& y); diff --git a/SQCSim2021/audio.h b/SQCSim2021/audio.h index b0ff044..d4625cf 100644 --- a/SQCSim2021/audio.h +++ b/SQCSim2021/audio.h @@ -1,8 +1,14 @@ #ifndef AUDIO_H__ #define AUDIO_H__ +#ifdef _WIN32 #include #include +#else +#include "./external/irrKlang-64bit-1.6.0/include/irrKlang.h" +#include "./external/irrKlang-64bit-1.6.0/include/ik_ISoundSource.h" +#endif + #include "../SQCSim-common/vector3.h" #include "define.h" @@ -29,4 +35,4 @@ public: void PauseEngine(); }; -#endif // AUDIO_H__ \ No newline at end of file +#endif // AUDIO_H__ diff --git a/SQCSim2021/cmake/CMakeLists.txt b/SQCSim2021/cmake/CMakeLists.txt index 02c5332..fbe850f 100644 --- a/SQCSim2021/cmake/CMakeLists.txt +++ b/SQCSim2021/cmake/CMakeLists.txt @@ -6,9 +6,26 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_STANDARD_REQUIRED True) set(CMAKE_BUILD_DIRECTORY "./build") -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../out") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../") set(SQCSIM_COMMON_DIR "../../SQCSim-common/") +set(SQCSIM_EXTERN_DIR "../external/") + +find_package(SFML COMPONENTS system window graphics REQUIRED) +find_package(DevIL REQUIRED) +find_package(OpenGL REQUIRED) +find_package(GLEW REQUIRED) + +find_library(IRRKLANG_LIBRARY + NAMES libIrrKlang.so + PATHS "${SQCSIM_EXTERN_DIR}/irrKlang-64bit-1.6.0/lib/linux-gcc-64/") + +include_directories( + ${SQCSIM_EXTERN_DIR}/irrKlang-64bit-1.6.0/include/ + ${SFML_INCLUDE_DIRS} + ${IL_INCLUDE_DIR} + ) + add_library(SQCSim-common "${SQCSIM_COMMON_DIR}blockinfo.cpp" @@ -21,7 +38,7 @@ add_library(SQCSim-common "${SQCSIM_COMMON_DIR}world.cpp" ) -add_executable(SQCSim-server +add_executable(SQCSim-client "../audio.cpp" "../connector.cpp" "../engine.cpp" @@ -30,10 +47,22 @@ add_executable(SQCSim-server "../shader.cpp" "../skybox.cpp" "../texture.cpp" + "../textureatlas.cpp" "../tool.cpp" "../vertexbuffer.cpp" "../worldrenderer.cpp" "../main.cpp" ) -target_link_libraries(SQCSim-server PUBLIC SQCSim-common) +target_link_libraries(SQCSim-client PUBLIC SQCSim-common + ${IRRKLANG_LIBRARY} + sfml-system + sfml-window + sfml-graphics + GL + GLU + GLEW + ${IL_LIBRARIES} + ${ILU_LIBRARIES} + ) + diff --git a/SQCSim2021/define.h b/SQCSim2021/define.h index 8d51188..02e5faf 100644 --- a/SQCSim2021/define.h +++ b/SQCSim2021/define.h @@ -4,14 +4,18 @@ #include #include #include +#include #include #include #include "../SQCSim-common/define.h" #ifdef _WIN32 -#include #include #include +#else +#include +#include +#include #endif #define NETWORK_TEST false diff --git a/SQCSim2021/media/shaders/shader01.frag b/SQCSim2021/media/shaders/shader01.frag index 38588d0..8adf697 100644 --- a/SQCSim2021/media/shaders/shader01.frag +++ b/SQCSim2021/media/shaders/shader01.frag @@ -7,7 +7,7 @@ void main() texel = texture2D(tex,gl_TexCoord[0].st); texel *= light; - texel.a = 255; + texel.a = 255.; gl_FragColor = texel; }