But the designers cannot build or design a new method to join &/or create a new private server for example,
Seeing how the netcode has problems keeping clients in sync with each other when the network connection is unreliable there are far worse problems that need to be fixed first.
a new option that it said "Create Server" or "Join Server". You must have a new world for this option, for that reason, when you press the buttom the sistem must open the New World menu with an aggregate that ask for the Hamachi ID.
Simutrans does not need Hamachi, and I doubt any of the developers will support adding it as a requirement.
When you create the world the computer will send you an IP.
Simutrans is not a network stack driver. It will never generate IP addresses. All IP addresses are managed by the operating system network stacks.
This IP is going to use it to join the server when you press the buttom "Join Server".
One can already join servers by IP address. Instead of entering a domain name, one can simply enter the IP address and hit join. Simutrans supports connecting to servers via domain name lookup, IPv4 and IPv6 and should even work with multiple available network stacks.
The composition of the code must be like this: Hamachi ID+Server IP, for example, 12.3.456.789:12345).
I suggest reading up about IPv4 addresses and TCP communication protocols.
12.3.456.789:12345
IPv4 address -> 12.3.456.789
TCP Port number -> 12345
The way the server system is setup is such that one cannot dynamically start it, it must be started from the command line. This is typical practice for Linux applications and I do agree it is not user friendly.
Ideally the server and client system should be made the only way commands are processed. This would prevent the need for 2 command paths. To avoid network stack overhead if the server is internal to a client a special path could be used to feed in the packets and bypass the stack. Advertising a game could be as easy as changing the server settings. However this would be a non trivial change to implement.
In the mean time, to create a server I suggest you create a shortcut to your Simutrans executable and pass it the appropriate parameters. If you want a no graphics servers, eg for running on a dedicated computer, then you will need to build one yourself.