ZeroK-RTS / Zero-K

Open source RTS game running on the Spring/Recoil engine
https://zero-k.info
GNU General Public License v2.0
690 stars 207 forks source link

Movement onto wrecks is randomly blocked #2547

Closed GoogleFrog closed 7 years ago

GoogleFrog commented 7 years ago

Give a move command onto a wreckage. Sometimes the unit will sit stationary and not complete the move order. This is with the raw move command, however, the blocked destination should be causing a pathfound move to be given as a fallback. A fight order will be instantly canceled in the same situation.

This is reasonably easy to reproduce with a Lotus wreck about 600 elmos from a Puppy. The distance seems to be important so perhaps the search level is affecting the bug. allowRawMovement may have an effect on frequency but the issue can be reproduced with it enabled or disabled.

GoogleFrog commented 7 years ago

Engine bug: https://springrts.com/mantis/view.php?id=5803

I suspect that 103.0.1-1431-g0934acd is the last working version. The dev engine is unusable so I don't know how useful the bug report will be. A fix branch would be ideal but as far as I know there has never been one. If there is an engine fix we could look into building a custom version of the engine. Otherwise I think it is worth reverting to 103.0.1-1431-g0934acd and replacing all the inbuilt downloading with wrapper downloading as a bug with downloads was fixed post 103.0.1-1431-g0934acd.

sprunk commented 7 years ago

The new engine has some other useful things so I think it's worth looking into a fix branch.

GoogleFrog commented 7 years ago

Apparently this has been fixed. It requires some testing. Here are the two commits that are required:

Once verified it is worth looking into incorporating those commits. Here is the commit for the version used by ZK: https://github.com/spring/spring/commit/f03115b594b04995aca4e13b8dccc456a2eb607c. It looks like dev engine becomes unusable at https://github.com/spring/spring/commit/4c87e94f640c31238b814190dbe611cb662a17dd which is just a few commits after the version that we use. There are perhaps three useful features/fixes between the version in use and the unusable versions. If we want to use things those features/fixes it would be best to first set those develop versions on the server to make sure that there are no issues.

@ashdnazg what is the likelyhood of being able to put the two path fixes in a post 104.0-7 fix branch? I already think that no engine dev cares about our crash reports since almost all of the engine crashes with usable stacktraces are graphics related and those systems are being redone.

@sprunk I want a fix branch for necessary changes, not those that are merely useful. Useful changes are usually features and are likely to make their own bug reports. Bug reports from a fix branch would be a huge hassle. I prettymuch only want a fix branch for issues that would make me consider reverting our engine to an older develop version. The issue in this ticket stems from merging a feature (inbuilt raw move) and making 104.0 shortly afterwards with little time for testing (there was a gap of around 50 commits that were not built).

GoogleFrog commented 7 years ago

While we are looking at fixes, this may be important: https://github.com/spring/spring/commit/49f60dfea913a290f1cbbed52f8c41b9df5ddd54. SetConfigFloat is new and hopefully fully optional.

GoogleFrog commented 7 years ago

https://github.com/spring/spring/commit/a255f7fd194cd23ec0f002b68463d00ba9027aec may be a fix related to the other two commits.

GoogleFrog commented 7 years ago

@ashdnazg says that they can make a branch based on a list of commits to use. Here are the commits since head: https://github.com/spring/spring/compare/104.0...HEAD

ZK is on 104.0.1-7-gf03115b so we are already using the following commits since master. In effect this version is better tested than 104.0 so they should be included.

This change adds {Set,Get}ConfigFloat and is worth including because it is a small change and there may be bugs related to our inability to use these functions:

Here are pathfinding fix commits. All affected files are not affected by any other commits since 104.0 so merging should be easy.

GoogleFrog commented 7 years ago

@sprunk comment with amendments to my list.

sprunk commented 7 years ago

Bugfixes:

Not bugfixes:

Things not yet in engine:

GoogleFrog commented 7 years ago

I don't want to touch the minimap rendering fix (https://github.com/spring/spring/commit/28ca17088f97964f577a071f8fb12371647a5d1f) because it involves rendering.

I don't want to touch camera fixes (eg https://github.com/spring/spring/commit/709a8b412ed77560df9fb193b7b4a2acc059c7ab) because I have heard of no camera bugs and they could possibly stray into rendering.

The non-bugfixes look ok. They just carry the normal risk of introducing bugs and making us repeat this process. @ashdnazg says that they are willing to take that risk and deal with issues. I don't think we're going to be using any engine changes for the trailer unless the change can be made to run an old replay.

I do not want to include any commits which have not been merged to develop.

Some more commits:

sprunk commented 7 years ago

This brings us to 104.0.1-7-gf03115b.

PRs (only if they also end up in develop):

sprunk commented 7 years ago

I don't want to touch camera fixes (eg spring/spring@709a8b4) because I have heard of no camera bugs and they could possibly stray into rendering.

This one already affects rendering:

https://i.imgur.com/KQLA2PU.jpg

(see https://springrts.com/mantis/view.php?id=5805 )

ashdnazg commented 7 years ago

indeed, https://github.com/spring/spring/commit/709a8b4 should be in

sprunk commented 7 years ago

inserted to the list

ashdnazg commented 7 years ago

I'm also adding: https://github.com/spring/spring/commit/e6aa01612d88a348bfafdf238ddf453a9dfb1c99 https://github.com/spring/spring/commit/a6a8be4a8a773fcbdfc80df07c494a7b857daf85 https://github.com/spring/spring/commit/75b7e4a53b0580c55da53ec1ac9d3e1c0e326d24 https://github.com/spring/spring/commit/9ca7fd3e163ef159f22ad42e95c932b146ac832e https://github.com/spring/spring/commit/eb35cc677f0d4221327aa1950ec9102cbe9ad2ee

https://github.com/spring/spring/commit/9d8dda91fc766bc3d6bd3e3784e1f1f34843018d https://github.com/spring/spring/commit/e9789a7a66a5497c244e04bf27b2bb171e410d5b

https://github.com/spring/spring/commit/d61cdb1479de138286c36ba14888263c87f17a23 https://github.com/spring/spring/commit/17a5deaebd218b622aa833eda0299111d30f4f08 https://github.com/spring/spring/commit/cc986584f065ee48fcd610035ad8d3a5a28378d3

https://github.com/spring/spring/commit/cbf41336ae51688fddb99703e34e98c30d6845be https://github.com/spring/spring/commit/727d896f15b7c8ddfb4bc08887196aa7339eb183

https://github.com/spring/spring/commit/cf67e7ca2eea857e1760fdf9e3c4f0fa66c37f6c

https://github.com/spring/spring/commit/a3077a566bc655551be5d1f32984c137bd266611

https://github.com/spring/spring/commit/409dc374a104372032b6a6ca6d332919059548b0 https://github.com/spring/spring/commit/d9d3f8a4043f93f68b69d7c6e3353f8c49b290b9 https://github.com/spring/spring/commit/4b85028cb5869b8e3a7d19503337732045dd87d4 https://github.com/spring/spring/commit/01af51b77962661839a580049f25cd26710ae331 https://github.com/spring/spring/commit/ee180e4431c76c1e711d1f89599f0e7f19669266 https://github.com/spring/spring/commit/d62a196a41020e99fa40d21677ac8a7d73bea351 https://github.com/spring/spring/commit/7c35528eebd8f0234cf116df049991e32835fbaa https://github.com/spring/spring/commit/fb002800b8b0ecaf94d958ff4fe231936a210df0 https://github.com/spring/spring/commit/58fd2b2813647fd23e5588a85c64cf1e0429de1d

https://github.com/spring/spring/commit/846139ce17dc4b42c6ee3f45ec9fe734badb4d55 https://github.com/spring/spring/commit/205994c8a6e17d6d246f9381d3cbe42952c3ae25

https://github.com/spring/spring/commit/8c3e2e1298c5722b81335589518d7657662c6067

https://github.com/spring/spring/commit/ba8c2b9d818434dd866f4f07ae6d93c7f3d875c3

https://github.com/spring/spring/commit/bc04cfc97999625076f93ad81d9ce1ce7d6b4e4f https://github.com/spring/spring/commit/164b5c9f011b7f8bcc68a9bbc027e28df74f2739

https://github.com/spring/spring/commit/b191059c62f8b005be3b1620e70813648b9254c0

https://github.com/spring/spring/commit/b191059c62f8b005be3b1620e70813648b9254c0 https://github.com/spring/spring/commit/152625e4ab5b69ad80d1adeb432bb4e4956b4bb6 https://github.com/spring/spring/commit/8f413a6a5bb497709bbd5df709e72b2952f7f075 https://github.com/spring/spring/commit/ef732616e809b540f0b1314f00cea23d30f84014 https://github.com/spring/spring/commit/08877c8314fcc67722138f295716e3c3800d329d

https://github.com/spring/spring/commit/49b9177a45a6d0a15313cd4708d97402bd6762b1 https://github.com/spring/spring/commit/98cca2f4a7e22f166b7dc2cb2ff8acae675e8e49 https://github.com/spring/spring/commit/2c14bcf31f907e4ceadb82fc0cb0643d5e20bcbf

GoogleFrog commented 7 years ago

That is a lot of commits. There are now changes to fonts, audio and GL. Have you included everything that isn't directly related to the GL4 upgrade? The risk here would be too high for me but you can make this version and I'll try it out. I'm yet to be convinced that bug reports about the branch will be useful.

ashdnazg commented 7 years ago

I've included everything that I could + everything that was needed.

GoogleFrog commented 7 years ago

Engine is live.

sprunk commented 7 years ago

engineLives