💾 Archived View for alaskalinuxuser.ddns.net › 2023-08-01.gmi captured on 2024-12-17 at 10:10:22. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2024-09-29)
-=-=-=-=-=-=-
\n
">
62w, https://alaskalinuxuser3.ddns.net/wp-content/uploads/2023/08/
Screenshot_2023-08-01_07-04-38-300x119.png 300w" sizes="(max-width: 362px)
100vw, 362px" />
\n\n\n
As is often the case when taking online classes about programming, the
instructor, and probably most of the class, use Windows. Usually, I am one of
the few, if not only, Linux user(s).
This typically doesn’t present too much of a problem, but can occasionally
cause an issue, especially when it comes to installing a certain software, or
version thereof, though I typically stick to classes that have Linux versions
of the programming tools available, or else I wouldn’t be taking the class…
Sometimes, however, you can run into very interesting little items that will
cause you to have unexpected results. Such is the case with a class I am taking
about programming in Godot.
The particulars of this instance was that the instructor, in the prerecorded
video, was showing different ways to determine if your computer was the server
in a network using Godot’s network stack. During the class, he mentioned that
you can use this code to make that determination:
if local_player_id == 1:\n # Then do this stuff, because you are the
server.
Essentially, he stated that the server is always local player ID number 1. And
so if you check to see if you are local player ID number 1, and you are, then
you must be the server. He then went on to demonstrate this, and sure enough,
it worked great in his demonstration.
However, I tried it in my instance of Godot running on Linux, and it didn’t
work. Since I was just learning the Godot programming language, I didn’t know
why exactly, so I decided to do a little troubleshooting with this debug
statement:
print("My id is " + str(local_player_id))
And what I found in the standard output was that my server ID was always 0.
Interesting! Then it would appear that in Windows, if you are the server, your
ID is always 1, and in Linux, your server ID is always 0. That seems like a big
problem in the code, because it will depend upon which machine operating system
you use to compile it.
Now, in the instructors defense, he did show other ways to programmatically
determine if you are the server. Here is the one that I think works best,
because it will not depend upon a hard coded number, nor will it require you to
check what you are compiling on:
if get_tree().is_network_server():\n # Then do this stuff, because you are
the server.
What I’m learning from the course is really fun and great things relating to
making video games. What I’m learning as a Linux user in a typically Windows
environment is to be careful about hard coded numbers. Especially since
Windows’ first number is 1, and Linux’s first number is 0 in Godot’s network
stack.
Linux – keep it simple.