Main.cpp 891 B

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