Clean up code for portability and server initialization
* Practically move all non-commented code from main.cpp * Create Client.cpp/h class and move logic out of main.cpp * Create default constructor for Renderer * Fix definition of default:stone * Change GameInstance:update() to use a double instead of a GLfloatmaster
parent
edbe03d76c
commit
a40c85905a
|
@ -6,5 +6,6 @@
|
|||
<option name="processLiterals" value="true" />
|
||||
<option name="processComments" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="UnusedIncludeDirective" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||
</profile>
|
||||
</component>
|
|
@ -2,7 +2,6 @@ cmake_minimum_required(VERSION 3.12)
|
|||
project(zeus)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
#set(CMAKE_CXX_FLAGS "-s -O3")
|
||||
|
||||
include_directories(lib/glew/include/GL)
|
||||
include_directories(lib/glfw_linux/include)
|
||||
|
@ -10,11 +9,10 @@ include_directories(lib/glm)
|
|||
include_directories(lib/stb_image)
|
||||
include_directories(lib/cute)
|
||||
include_directories(lib/sol)
|
||||
#include_directories(Libraries/boost_1_68_0)
|
||||
include_directories(lib/asio-1.12.2/include)
|
||||
|
||||
find_package(OpenGL REQUIRED)
|
||||
find_package(glfw3 REQUIRED)
|
||||
#find_package(Boost COMPONENTS system thread)
|
||||
|
||||
link_directories(lib/glew/lib)
|
||||
|
||||
|
@ -70,6 +68,16 @@ add_executable(zeus
|
|||
zeus/engine/graphics/TextBuilder.h
|
||||
zeus/engine/graphics/TextBuilder.cpp
|
||||
zeus/engine/graphics/HudText.cpp
|
||||
zeus/engine/graphics/HudText.h zeus/game/gui/DebugGui.cpp zeus/game/gui/DebugGui.h zeus/game/world/Player.cpp zeus/game/world/Player.h zeus/engine/Ray.cpp zeus/engine/Ray.h zeus/lua_api/l_register_blockmodel.cpp zeus/lua_api/l_register_blockmodel.h zeus/lua_api/LuaApi.cpp zeus/lua_api/LuaApi.h)
|
||||
zeus/engine/graphics/HudText.h
|
||||
zeus/game/gui/DebugGui.cpp
|
||||
zeus/game/gui/DebugGui.h
|
||||
zeus/game/world/Player.cpp
|
||||
zeus/game/world/Player.h
|
||||
zeus/engine/Ray.cpp
|
||||
zeus/engine/Ray.h
|
||||
zeus/lua_api/l_register_blockmodel.cpp
|
||||
zeus/lua_api/l_register_blockmodel.h
|
||||
zeus/lua_api/LuaApi.cpp
|
||||
zeus/lua_api/LuaApi.h zeus/client/Client.cpp zeus/client/Client.h)
|
||||
|
||||
target_link_libraries(zeus ${OPENGL_gl_LIBRARY} glfw libGLEW.so pthread lua dl)
|
||||
target_link_libraries(zeus ${OPENGL_gl_LIBRARY} glfw libGLEW.so pthread lua dl)
|
||||
|
|
|
@ -374,7 +374,7 @@ zeus.register_block('default:dirt', {
|
|||
})
|
||||
|
||||
-- Stone
|
||||
zeus.register_block('default:desert_cobblestone', {
|
||||
zeus.register_block('default:stone', {
|
||||
name = "Stone",
|
||||
model = "default:block",
|
||||
textures = {"default_stone_dark"}
|
||||
|
|
|
@ -1,47 +1,74 @@
|
|||
#pragma clang diagnostic push
|
||||
#pragma ide diagnostic ignored "OCUnusedMacroInspection"
|
||||
#define STB_IMAGE_IMPLEMENTATION
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
#include <iostream>
|
||||
#include "client/Client.h"
|
||||
|
||||
#include "engine/Window.h"
|
||||
#include "engine/Camera.h"
|
||||
//std::string make_daytime_string() {
|
||||
// std::time_t now = std::time(nullptr);
|
||||
// return "HIfhjdsfjhglfgkhkdfjhbhnjgdsk,jfgbhdksijfghgjfkwaslodfjgbhfdsklofjghnbgkmdsk,lfkgbna";
|
||||
//// return std::ctime(&now);
|
||||
//}
|
||||
|
||||
#include "engine/Timer.h"
|
||||
#include "game/GameInstance.h"
|
||||
#include "engine/graphics/Renderer.h"
|
||||
|
||||
GLfloat deltaTime = 0.0f;
|
||||
GLfloat lastTime = 0.0f;
|
||||
double fps = 0.0;
|
||||
//void server() {
|
||||
// try {
|
||||
// asio::io_context io_context;
|
||||
// udp::socket socket(io_context, udp::endpoint(udp::v4(), 12345));
|
||||
//
|
||||
// for (;;) {
|
||||
// char recv_buf[128];
|
||||
// udp::endpoint remote_endpoint; //Populated by the next line
|
||||
//
|
||||
// Timer t("owo");
|
||||
// socket.receive_from(asio::buffer(recv_buf), remote_endpoint);
|
||||
// t.printElapsedSeconds();
|
||||
// std::cout << recv_buf << std::endl;
|
||||
//
|
||||
// std::string message = make_daytime_string();
|
||||
//
|
||||
// asio::error_code ignored_error;
|
||||
// socket.send_to(asio::buffer(message), remote_endpoint, 0, ignored_error);
|
||||
//
|
||||
// //Socket is garbage collected here, so like, don't do that?
|
||||
// }
|
||||
// }
|
||||
// catch (std::exception& e) {
|
||||
// std::cerr << e.what() << std::endl;
|
||||
// }
|
||||
//}
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
Timer boot("Initialization");
|
||||
// auto serverThread = new std::thread(server);
|
||||
// this_thread::sleep_for(0.2s);
|
||||
//
|
||||
// try {
|
||||
// asio::io_context io_context;
|
||||
// udp::resolver resolver(io_context);
|
||||
// udp::endpoint receiver_endpoint = *resolver.resolve(udp::v4(), "127.0.0.1", "12345").begin();
|
||||
//
|
||||
// udp::socket socket(io_context);
|
||||
// socket.open(udp::v4());
|
||||
//
|
||||
// char send_buf[3] = {'a', 'b', 'c'};
|
||||
// socket.send_to(asio::buffer(send_buf), receiver_endpoint);
|
||||
//
|
||||
// char recv_buf[20];
|
||||
//
|
||||
// udp::endpoint sender_endpoint; //Populated by the next line
|
||||
// size_t len = socket.receive_from(asio::buffer(recv_buf), sender_endpoint);
|
||||
//
|
||||
// sender_endpoint.
|
||||
//
|
||||
// std::cout.write(recv_buf, len);
|
||||
//// std::cout << "Done " << len << std::endl;
|
||||
// }
|
||||
// catch (std::exception& e) {
|
||||
// std::cout << e.what() << std::endl;
|
||||
// }
|
||||
|
||||
auto renderer = new Renderer(1366, 768);
|
||||
auto game = new GameInstance();
|
||||
|
||||
game->initialize(renderer);
|
||||
|
||||
boot.printElapsedSeconds();
|
||||
|
||||
//Game Loop
|
||||
while (!renderer->getWindow()->getShouldClose()) {
|
||||
Timer t("Game Loop");
|
||||
|
||||
auto now = (GLfloat)glfwGetTime();
|
||||
deltaTime = now - lastTime;
|
||||
lastTime = now;
|
||||
|
||||
//Get & Handle Input
|
||||
glfwPollEvents();
|
||||
|
||||
//Update game instance
|
||||
game->update(deltaTime, fps);
|
||||
game->draw();
|
||||
|
||||
fps = 1000 / (t.elapsedNs() / 1000000.0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
Client c(1366, 768);
|
||||
c.start();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
//
|
||||
// Created by aurailus on 06/01/19.
|
||||
//
|
||||
|
||||
#include "Client.h"
|
||||
|
||||
Client::Client() = default;
|
||||
|
||||
Client::Client(int width, int height) {
|
||||
renderer = new Renderer(width, height);
|
||||
}
|
||||
|
||||
void Client::start() {
|
||||
scene = new GameInstance();
|
||||
scene->initialize(renderer);
|
||||
|
||||
while (!renderer->getWindow()->getShouldClose()) loop();
|
||||
}
|
||||
|
||||
void Client::loop() {
|
||||
Timer t("Game Loop");
|
||||
|
||||
double now = glfwGetTime();
|
||||
double delta = now - timeElapsed;
|
||||
timeElapsed = now;
|
||||
|
||||
glfwPollEvents();
|
||||
|
||||
scene->update(delta, fps);
|
||||
scene->draw();
|
||||
|
||||
fps = 1000 / (t.elapsedNs() / 1000000.0);
|
||||
}
|
||||
|
||||
void Client::cleanup() {
|
||||
delete scene;
|
||||
delete renderer;
|
||||
}
|
||||
|
||||
Client::~Client() {
|
||||
cleanup();
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
//
|
||||
// Created by aurailus on 06/01/19.
|
||||
//
|
||||
|
||||
#ifndef ZEUS_CLIENT_H
|
||||
#define ZEUS_CLIENT_H
|
||||
|
||||
#include "../game/GameInstance.h"
|
||||
#include "../engine/graphics/Renderer.h"
|
||||
|
||||
class Client {
|
||||
public:
|
||||
Client();
|
||||
Client(int width, int height);
|
||||
|
||||
void start();
|
||||
|
||||
~Client();
|
||||
|
||||
private:
|
||||
Renderer* renderer;
|
||||
GameInstance* scene;
|
||||
|
||||
double fps = 0.0;
|
||||
|
||||
void loop();
|
||||
|
||||
void cleanup();
|
||||
|
||||
double timeElapsed = 0.0f;
|
||||
};
|
||||
|
||||
|
||||
#endif //ZEUS_CLIENT_H
|
|
@ -4,6 +4,8 @@
|
|||
|
||||
#include "Renderer.h"
|
||||
|
||||
Renderer::Renderer() : Renderer(1366, 768) {};
|
||||
|
||||
Renderer::Renderer(GLint winWidth, GLint winHeight) {
|
||||
|
||||
window = new Window(winWidth, winHeight);
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
class Renderer {
|
||||
public:
|
||||
Renderer();
|
||||
Renderer(GLint winWidth, GLint winHeight);
|
||||
|
||||
void update();
|
||||
|
|
|
@ -75,7 +75,7 @@ void GameInstance::initialize(Renderer* renderer) {
|
|||
guiEntities.push_back(crosshair);
|
||||
}
|
||||
|
||||
void GameInstance::update(GLfloat deltaTime, double fps) {
|
||||
void GameInstance::update(double deltaTime, double fps) {
|
||||
renderer->update();
|
||||
|
||||
auto camera = renderer->getCamera();
|
||||
|
|
|
@ -24,7 +24,7 @@ public:
|
|||
|
||||
void initialize(Renderer* renderer);
|
||||
|
||||
void update(GLfloat deltaTime, double fps);
|
||||
void update(double deltaTime, double fps);
|
||||
|
||||
void draw();
|
||||
public:
|
||||
|
|
Loading…
Reference in New Issue