tfg13 / centuries-of-rage Goto Github PK
View Code? Open in Web Editor NEWA 2D strategy game written in Java
License: Other
A 2D strategy game written in Java
License: Other
Wenn man Einheiten am unteren Maprand herumschickt, tritt diese Ausnahme gelegentlich auf, die das Server-Bewegungssystem durcheinander bringt.
Der Grund ist, das Einheiten so weit unten positioniert werden, dass das Cell-System sie nichtmehr erfassen kann.
Der Fehler liegt also entweder:
Ich vermute stark, dass die erste von den beiden ist, da die Einheiten dann so weit unten stehen, dass man sie auch gar nichtmehr sieht.
Da du (nikithase) für beide Mögliche Ursachen zuständig bist, ist das jetzt dein Bug ;)
Das ist die Exception, einfach auf der Standardmap einen großen Batzen Einheiten weit nach unten schicken.
java.lang.ArrayIndexOutOfBoundsException: 20
at de._13ducks.cor.map.fastfindgrid.FastFindGrid.getCellByPosition(FastFindGrid.java:150)
at de._13ducks.cor.map.fastfindgrid.FastFindGrid.getNewCell(FastFindGrid.java:130)
at de._13ducks.cor.game.server.movement.ServerBehaviourMove.execute(ServerBehaviourMove.java:199)
at de._13ducks.cor.networks.server.behaviour.ServerBehaviour.tryexecute(ServerBehaviour.java:130)
at de._13ducks.cor.game.GameObject.process(GameObject.java:1218)
at de._13ducks.cor.game.server.ServerGameController.run(ServerGameController.java:80)
at java.lang.Thread.run(Thread.java:662)
Server-Behaviour findet permanent WAIT-COLLISIONS zwischen einer sich bewegenden und einer stehenden Einheit.
Die Positionen sind leicht unterschiedlich, schwanken aber in einem recht Engen bereich (zig Nachkommastellen)
Unkritisch, Server läuft normal weiter, alle anderen Einheiten werden korrekt verarbeitet.
Verschwindet früher oder später von selbst.
Mögliche Ursachen:
Einheiten bleiben gelegentlich an Sektorgrenzen hängen.
Das passiert aber nur, wenn mindestens 2 Einheiten die Sektorgrenze (hintereinander) überqueren wollen.
Ungefährer Ablauf:
Jetzt stehen beide. Eigentlich ok, die vordere sollte einfach weiterlaufen - tut sie aber nicht.
Warum ist (noch) unbekannt.
Wenn man eine IP-Adresse eingibt, auf der kein Server erreichbar ist, hängt das Spiel ewig (es versucht ~10 mal sich zu verbinden).
Nach einer Ewigkeit (>30sec) landet man dann in einer leeren Lobby, die logischerweise abschmiert, sobald man etwas anklickt z.B. "Ready"
Immer reproduierbar.
Lösungsvorschläge:
a) (In diesem Fall) nur einen Connect versuchen.
b) Den Fehler abfangen, man darf nicht in einer leeren Lobby landen
Wird permanent ausgegeben - ServerBewegungssystem hängt in einer Schleife.
Bringt das Server-Bewegungssystem hoffnungslos zum abschmieren.
Vermutungen:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.