Main.cpp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include "network/ENet.h"
  2. #include "server/Game.h"
  3. #include "server/GameServer.h"
  4. #include "server/commands/Commands.h"
  5. #include "server/snuviscript/Snuvi.h"
  6. #include "utils/Logger.h"
  7. void loop() {
  8. Clock clock;
  9. constexpr Clock::Nanos NANOS_PER_TICK = 50000000;
  10. Clock::Nanos lag = 0;
  11. while(Game::isRunning()) {
  12. lag += clock.update();
  13. while(lag >= NANOS_PER_TICK) {
  14. lag -= NANOS_PER_TICK;
  15. GameServer::tick();
  16. Game::tick();
  17. }
  18. Clock::Nanos waitNanos = NANOS_PER_TICK - lag;
  19. if(waitNanos > 300000) {
  20. clock.wait(waitNanos);
  21. }
  22. }
  23. }
  24. void init(Server* server) {
  25. Snuvi::init();
  26. Commands::init();
  27. GameServer::init(server);
  28. Game::testWorld();
  29. }
  30. int main() {
  31. ENet enet;
  32. if(enet.init()) {
  33. LOG_ERROR("cannot initialize enet");
  34. return 0;
  35. }
  36. Server server(11196, 50);
  37. if(server.hasError()) {
  38. LOG_ERROR(server.getError());
  39. return 0;
  40. }
  41. init(&server);
  42. loop();
  43. return 0;
  44. }