MantisBT - Doomseeker
View Issue Details
0003909DoomseekerUIpublic2021-10-18 01:142022-03-22 11:11
AlexMax 
Zalewa 
normalmajorN/A
closedfixed 
1.3.2 
1.3.31.3.3 
0003909: Odamex 10.0 support
A number of Odamex 10.0 servers are not being properly queried by Doomseeker, resulting in <ERROR>.
Open Doomseeker and reload the Odamex server list. There are a number of servers at 74.91.112.85 that do not work.
I investigated this myself on my own time and I believe I know why this happens. The server query request is versioned, and our large jump in version from 0.9.5 to 10.0 (note the use of the major version number) is outside of the range of the version contained in your server query string.

What we do - push the four parts of the packet separately.

'https://github.com/odamex/odamex/blob/stable/odalpapi/net_packet.cpp#L625 [^]'

Doomseeker appears to bundle the entire packet into one.

'https://bitbucket.org/Doomseeker/doomseeker/src/fc903e1a484a3ac314d9205727eee63ea3828b59/src/plugins/odamex/odamexserver.cpp#lines-48 [^]'

This should probably be bumped to something reasonable. It might make more sense to bring in our version construction macros to make updating this easier in the future.

'https://github.com/odamex/odamex/blob/stable/odalpapi/net_packet.h#L54 [^]'

And while you're updating the protocol to support 10.0, it's probably a good idea to add support for the headliner feature of Odamex 10.0 - Horde.

In your gametype conditional for Odamex, "Survival Horde" is sv_gametype 4 and g_lives > 0, "Horde" is sv_gametype 4 in other cases.
No tags attached.
Issue History
2021-10-18 01:14AlexMaxNew Issue
2021-10-18 01:15AlexMaxNote Added: 0021786
2021-10-22 09:03WubTheCaptainStatusnew => acknowledged
2021-10-22 09:06WubTheCaptainTarget Version => 1.3.3
2021-12-10 11:10Pol MNote Added: 0021869
2021-12-10 11:11Pol MAssigned To => Pol M
2021-12-10 11:11Pol MStatusacknowledged => assigned
2021-12-11 00:52Pol MNote Added: 0021872
2021-12-11 00:52Pol MStatusassigned => needs review
2021-12-11 00:52Pol MAssigned ToPol M => Zalewa
2021-12-11 00:52Pol MStatusneeds review => assigned
2021-12-11 00:52Pol MStatusassigned => needs review
2021-12-11 02:27WubTheCaptainNote Added: 0021874
2021-12-11 02:27WubTheCaptainNote Edited: 0021874bug_revision_view_page.php?bugnote_id=21874#r13429
2021-12-11 03:21WubTheCaptainNote Added: 0021878
2021-12-11 12:52ZalewaNote Added: 0021879
2021-12-11 12:52ZalewaStatusneeds review => needs testing
2021-12-11 15:51WubTheCaptainNote Added: 0021880
2021-12-11 15:54WubTheCaptainStatusneeds testing => needs review
2021-12-11 16:28ZalewaNote Added: 0021881
2021-12-11 16:28ZalewaStatusneeds review => needs testing
2021-12-11 16:28ZalewaNote Edited: 0021881bug_revision_view_page.php?bugnote_id=21881#r13431
2021-12-11 16:29ZalewaNote Edited: 0021881bug_revision_view_page.php?bugnote_id=21881#r13432
2021-12-11 17:19WubTheCaptainNote Added: 0021882
2021-12-11 17:19WubTheCaptainStatusneeds testing => resolved
2021-12-11 17:19WubTheCaptainFixed in Version => 1.3.3
2021-12-11 17:19WubTheCaptainResolutionopen => fixed
2021-12-11 19:57ZalewaNote Added: 0021883
2021-12-11 20:03ZalewaNote Edited: 0021883bug_revision_view_page.php?bugnote_id=21883#r13434
2021-12-12 23:32Pol MNote Added: 0021890
2022-03-22 11:11WubTheCaptainStatusresolved => closed

Notes
(0021786)
AlexMax   
2021-10-18 01:15   
For the record, 10.0 is not out yet, but we anticipate that it will be out before the end of 2021.
(0021869)
Pol M   
2021-12-10 11:10   
Wrote a fix for this during the morning :)
Yep, seems like updating the server challenge did the trick. I'll also add support for the new game mode before pushing.
Sorry for the delay, I hadn't checked the tracker for quite a while.
(0021872)
Pol M   
2021-12-11 00:52   
'https://bitbucket.org/Doomseeker/doomseeker/pull-requests/6/implement-horde-gamemodes-and-fix-odamex [^]'

Done
(0021874)
WubTheCaptain   
2021-12-11 02:27   
Quote
gameModesList << GameMode::ffaGame(MODE_SURVIVAL_HORDE, "Survival horde");

"Survival Horde" or "Survival horde"? OP said "Survival Horde" and capitalizing the first letter of every word seems to be common for other gamemodes.

(0021878)
WubTheCaptain   
2021-12-11 03:21   
Pol M: You could also add your copyright header to those files if desired.
(0021879)
Zalewa   
2021-12-11 12:52   
I've deployed the new version of the Odamex plugin to the beta auto-update channel. From what I see it can now parse the challenge responses from the Oda 10.0 servers.

Thanks go to Pol for solving this matter.
(0021880)
WubTheCaptain   
2021-12-11 15:51   
Zalewa: My notes above (code review) remain unaddressed by the merge.
(0021881)
Zalewa   
2021-12-11 16:28   
(edited on: 2021-12-11 16:29)
Oh yes right, the capitalization. I corrected it ('https://bitbucket.org/Doomseeker/doomseeker/commits/4614e828b8bd8c16181c85d225bfc5965e2ea3bd [^]' ). I'll refrain from releasing another version of the plugin for now given the minority of this change.

As far as the copyright blurbs go we never had an exact policy for those. Each file that was just added to the project received the standard blurb plus the current year. I believe I only modified the copyright info when I felt that the file was changed so significantly so that one could consider that this is a new file entirely. Frankly speaking I don't care much about those blurbs.

(0021882)
WubTheCaptain   
2021-12-11 17:19   
Quote
A number of Odamex 10.0 servers are not being properly queried by Doomseeker, resulting in <ERROR>.

These are now displayed in the server browser.
Quote
And while you're updating the protocol to support 10.0, it's probably a good idea to add support for the headliner feature of Odamex 10.0 - Horde.

Create Game now has the two Horde options and the server browser can now display servers with those two game types.
(0021883)
Zalewa   
2021-12-11 19:57   
(edited on: 2021-12-11 20:03)
Quote
Create Game now has the two Horde options

Overlooked this too. This will need some work - the modes do appear in the box, that's true, but the +sv_gametype option isn't appended to the command line.

And that's not all. The Odamex plugin has more problems with selecting the game mode in the "Create Game" box, unfortunately. The only functional choices there are "Coop", "Deathmatch", "Team DM" and "CTF". These 4 are converted to their respective mode numbers and then passed to +sv_gametype. Everything else is ignored. You can see the code that does this here:'https://bitbucket.org/Doomseeker/doomseeker/src/6fdd469a5327e5041971883e2e84c8048b2c7bf1/src/plugins/odamex/odamexgamehost.cpp#lines-62 [^]'

I can add `modeNum = 4` for the Horde mode, but fixing this properly will be tricky. Odamex decides upon different gamemodes depending on whether other flags (g_sides and g_lives) are non-zero. I think we need a separate issue for that - 0003937.

(0021890)
Pol M   
2021-12-12 23:32   
Don't worry wub, no need to update licence comments. In general I'm fine with everything as long as doomseeker doesn't decide to all of a sudden drastically change the licence. (And I'm not talking of going from LGPL to Apache ;) )

Once I have time again in (late) January, I'll probably look into fixing the odamex plugin further if it hasn't been fixed yet.