Main.cpp 926 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include <iostream>
  2. #include "network/ENet.h"
  3. #include "network/Server.h"
  4. #include "server/GameServer.h"
  5. #include "server/PackageHandler.h"
  6. #include "server/snuviscript/Snuvi.h"
  7. #include "utils/Clock.h"
  8. int main() {
  9. ENet enet;
  10. if(enet.init()) {
  11. std::cout << "cannot initialize enet\n";
  12. return 0;
  13. }
  14. Server server(11196, 50);
  15. if(server.hasError()) {
  16. return 0;
  17. }
  18. GameServer gameServer(server);
  19. Clock clock;
  20. constexpr Clock::Nanos NANOS_PER_TICK = 50000000;
  21. Clock::Nanos lag = 0;
  22. while(gameServer.isRunning()) {
  23. lag += clock.update();
  24. while(lag >= NANOS_PER_TICK) {
  25. lag -= NANOS_PER_TICK;
  26. server.consumeEvents(gameServer);
  27. gameServer.tick();
  28. }
  29. Clock::Nanos waitNanos = NANOS_PER_TICK - lag;
  30. if(waitNanos > 300000) {
  31. clock.wait(waitNanos);
  32. }
  33. }
  34. return 0;
  35. }