Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Online Direct TCP~IP netcon #569

Merged
merged 5 commits into from
Sep 15, 2024

Conversation

ccfly42
Copy link

@ccfly42 ccfly42 commented Sep 5, 2024

Pull Request Type

  • GitHub Workflow changes
  • Documentation or Wiki changes
  • Build and Dependency changes
  • Runtime changes
    • Render changes
    • Audio changes
    • Input changes
    • Network changes
    • Other changes

Description

I wrote a netcon more or less for the descent community the other day and I think that it is an enrichment for the main branch.
I am not a C++ developer and may not have followed the coding standards. Please be fair with the criticism.

The netcon is tested and fully functional in win (x86) & linux (x86), does not collide with other netcons (settings renamed).
Is compatible with "Direct Tcp~Ip" netcon and ignores "-directip" and "-pxo" autologins.

Screenshots

menu
games
chat

Checklist

  • I have tested my changes locally and verified that they work as intended.
  • I have documented any new or modified functionality.
  • I have reviewed the changes to ensure they do not introduce any unnecessary complexity or duplicate code.
  • I understand that by submitting this pull request, I am agreeing to license my contributions under the project's license.

Additional Comments

Short summary:
-The netcon is called "Online Direct TCP~IP".
-Allows you to play via DirectIp by querying the game server via trackers
-Is a copy of pxo (mtclient)
-Everything related to PXO has been removed, the layout & function has been retained.
-Background has been changed to differentiate itself from pxo as well as string tables
-tracker is the tsetsefly.de api (later more trackers, e.g. gamespy.cfg)
-chat is irc.descentforum.de

I left the PXO code as original as possible, removing errors and renaming variables where necessary.

Christian Baumann added 2 commits September 5, 2024 17:48
Copy link
Collaborator

@winterheart winterheart left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello!
This is really cool enhancement to Descent 3 project. I left some minor requests to code and will test runtime a bit later.
Meanwhile, since this is a service-bound network connector that depends on external infrastructure, "Online Direct TCP/IP" name is not reflecting it's purpose. How about change it's name to "Tsetsefly Online" (for example)? Or maybe another naming suggestions?

netcon/onlinedirectipclient/chat_api.h Outdated Show resolved Hide resolved
netcon/onlinedirectipclient/odtclient.h Outdated Show resolved Hide resolved
netcon/onlinedirectipclient/CMakeLists.txt Outdated Show resolved Hide resolved
netcon/onlinedirectipclient/dip_gametrack.cpp Outdated Show resolved Hide resolved
@ccfly42
Copy link
Author

ccfly42 commented Sep 9, 2024

Hello! This is really cool enhancement to Descent 3 project. I left some minor requests to code and will test runtime a bit later. Meanwhile, since this is a service-bound network connector that depends on external infrastructure, "Online Direct TCP/IP" name is not reflecting it's purpose. How about change it's name to "Tsetsefly Online" (for example)? Or maybe another naming suggestions?

Hey,
thanks a lot for the analysis and the tips.
The changes are done so far.

I also thought about the name for quite a long time.
My primary goal was to create a component that would be expanded not only by me but also by the community.
In a second run (in about 1 to 2 weeks) I wanted to read the Gamespy file and query the trackers stored there.
At the moment I just wanted to implement a relatively quick but functional solution that the community can work with.

But I fundamentally understand your argument and am not committed to a name.
It should be considered that it might be better to collect different trackers in one component than to write a separate one for each one.
Maybe others have an opinion or ideas about this?

Copy link
Collaborator

@winterheart winterheart left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Additional request changes after testing.

netcon/onlinedirectipclient/dip_gametrack.cpp Outdated Show resolved Hide resolved
netcon/onlinedirectipclient/dip_gametrack.cpp Outdated Show resolved Hide resolved
netcon/onlinedirectipclient/odtclient.cpp Outdated Show resolved Hide resolved
@winterheart
Copy link
Collaborator

But I fundamentally understand your argument and am not committed to a name. It should be considered that it might be better to collect different trackers in one component than to write a separate one for each one. Maybe others have an opinion or ideas about this?

How about "Descent 3 Online"?

@0xFADDAD
Copy link

Seeing as it's fundamentally using the Gamespy tracker infrastructure, and is universally understood, I see no reason not to mention it somewhere. Only other suggestion is making users aware of what IRC server the chat window is connecting to in some way.
Other than that, this is a great addition to the game.

@ccfly42
Copy link
Author

ccfly42 commented Sep 15, 2024

But I fundamentally understand your argument and am not committed to a name. It should be considered that it might be better to collect different trackers in one component than to write a separate one for each one. Maybe others have an opinion or ideas about this?

How about "Descent 3 Online"?

Sounds good to me, I renamed the netcon.

@ccfly42
Copy link
Author

ccfly42 commented Sep 15, 2024

Seeing as it's fundamentally using the Gamespy tracker infrastructure, and is universally understood, I see no reason not to mention it somewhere. Only other suggestion is making users aware of what IRC server the chat window is connecting to in some way. Other than that, this is a great addition to the game.

The irc motd is displayed so that the user can see which irc is being used.
Suggestion: We can move the channel name under the user list (unused area) and the domain of the irc server in the footer.

@winterheart
Copy link
Collaborator

Here two issues still persists:

  1. In left upper corner of windows is still "Direct TCP~IP".
  2. Client still crash on server list window, probably due faulty inetgetfile's HTTP fetching.

Still, I believe, both issues can be addressed later with separate PR.

@winterheart winterheart merged commit 9ac702d into DescentDevelopers:main Sep 15, 2024
10 checks passed
@winterheart winterheart added this to the 1.6 milestone Sep 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants