Making multpilayer
This commit is contained in:
parent
c943057fa2
commit
699abc3191
@ -37,4 +37,9 @@ add_custom_target(DeerithClientShaders ALL
|
||||
${CMAKE_CURRENT_BINARY_DIR}/shaders
|
||||
)
|
||||
|
||||
target_compile_definitions(DeerithClient
|
||||
PUBLIC
|
||||
DEERITH_CLIENT
|
||||
)
|
||||
|
||||
add_dependencies(DeerithClient DeerithClientShaders)
|
||||
7
deerith_engine_core/include/deerith/engine.h
Normal file
7
deerith_engine_core/include/deerith/engine.h
Normal file
@ -0,0 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
namespace deerith
|
||||
{
|
||||
void init_engine();
|
||||
void shutdown_enigne();
|
||||
}
|
||||
@ -19,3 +19,8 @@ target_link_libraries(DeerithServer
|
||||
PUBLIC
|
||||
DeerithCore
|
||||
)
|
||||
|
||||
target_compile_definitions(DeerithServer
|
||||
PUBLIC
|
||||
DEERITH_SERVER
|
||||
)
|
||||
9
deerith_engine_server/include/universe/universe.h
Normal file
9
deerith_engine_server/include/universe/universe.h
Normal file
@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
|
||||
namespace deerith
|
||||
{
|
||||
void init_universe_serve(int port);
|
||||
void shutdown_universe();
|
||||
|
||||
bool is_universe_running();
|
||||
}
|
||||
63
deerith_engine_server/src/network/network.cpp
Normal file
63
deerith_engine_server/src/network/network.cpp
Normal file
@ -0,0 +1,63 @@
|
||||
#include <deerith/core/log.h>
|
||||
#include <enet/enet.h>
|
||||
|
||||
#include <deerith/core/log.h>
|
||||
|
||||
#include <thread>
|
||||
|
||||
#include "network_internals.h"
|
||||
|
||||
namespace deerith
|
||||
{
|
||||
ENetHost *client;
|
||||
ENetPeer *client_peer;
|
||||
}
|
||||
|
||||
void deerith::connect_to_server(const char *address, int port)
|
||||
{
|
||||
ENetAddress eaddress = {0};
|
||||
eaddress.port = port;
|
||||
|
||||
int result = enet_address_set_host(&eaddress, address);
|
||||
deerith_client_assert(result == 0, "connect_to_server invalid address");
|
||||
|
||||
client = enet_host_create(NULL, 1, 2, 0, 0);
|
||||
deerith_client_assert(client, "connect_to_server failed to create host");
|
||||
|
||||
client_peer = enet_host_connect(client, &eaddress, 2, 0);
|
||||
deerith_client_assert(client_peer, "enet_host_connect failed on connect_to_server");
|
||||
}
|
||||
|
||||
int deerith::init_network()
|
||||
{
|
||||
if (enet_initialize() != 0)
|
||||
{
|
||||
deerith_client_error("An error occurred while initializing ENet.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void deerith::shutdown_network()
|
||||
{
|
||||
enet_deinitialize();
|
||||
}
|
||||
|
||||
bool deerith::wait_till_connected_to_server()
|
||||
{
|
||||
ENetEvent event;
|
||||
if (enet_host_service(client, &event, 5000) > 0 &&
|
||||
event.type == ENET_EVENT_TYPE_CONNECT)
|
||||
{
|
||||
deerith_client_info("Connected to server");
|
||||
return true;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
enet_peer_reset(client_peer);
|
||||
deerith_client_error("Failed to connect to server");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
9
deerith_engine_server/src/network/network_internals.h
Normal file
9
deerith_engine_server/src/network/network_internals.h
Normal file
@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
|
||||
namespace deerith
|
||||
{
|
||||
int init_network();
|
||||
void shutdown_network();
|
||||
|
||||
void init_server(int port);
|
||||
}
|
||||
@ -23,11 +23,21 @@ target_link_libraries(SandboxClient
|
||||
DeerithClient
|
||||
)
|
||||
|
||||
target_include_directories(SandboxClient
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
)
|
||||
|
||||
add_executable(SandboxServer
|
||||
${SANDBOX_COMMON}
|
||||
${SANDBOX_SERVER}
|
||||
)
|
||||
|
||||
target_include_directories(SandboxServer
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
)
|
||||
|
||||
target_link_libraries(SandboxServer
|
||||
PRIVATE
|
||||
DeerithServer
|
||||
|
||||
3
sandbox/src/client/window.h
Normal file
3
sandbox/src/client/window.h
Normal file
@ -0,0 +1,3 @@
|
||||
#pragma once
|
||||
|
||||
void execute_window();
|
||||
24
sandbox/src/common/main.cpp
Normal file
24
sandbox/src/common/main.cpp
Normal file
@ -0,0 +1,24 @@
|
||||
|
||||
#include <deerith/core/core.h>
|
||||
#include <deerith/core/log.h>
|
||||
#include <deerith/engine.h>
|
||||
|
||||
#ifdef DEERITH_SERVER
|
||||
#include <client/
|
||||
#endif
|
||||
|
||||
#ifdef DEERITH_CLIENT
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
deerith::init_deerith_core();
|
||||
|
||||
int init_result = deerith::init_window();
|
||||
if (init_result != 0)
|
||||
{
|
||||
return init_result;
|
||||
}
|
||||
|
||||
deerith::shutdown_enigne();
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user