Netrek-dev,

I am pleased to announce that I’ve partially implemented a new Netrek server in the Swift programming language!

My new server is at:  netrek.networkmom.net tcp port 2592.
Open source at https://github.com/darrellroot/netrek-server-swift <https://github.com/darrellroot/netrek-server-swift> under the MIT license.
I’ll fork a copy over to the Netrek organization once it is more stable.

My Swift code runs on both MacOS and Linux.  I did my development on MacOS and my server is a Linux VM.  This Swift netrek server does not use any Apple-specific frameworks.

Killer feature: IPv6 support!
13:43:00.437863 IP6 2601:647:4802:1620:403b:6b8a:3c56:83c7.62183 > 2604:a880:4:1d0::47:6000.netrek: Flags [.], ack 158093, win 2041, options [nop,nop,TS val 276688522 ecr 2709993860], length 0
13:43:00.437869 IP6 2601:647:4802:1620:403b:6b8a:3c56:83c7.62183 > 2604:a880:4:1d0::47:6000.netrek: Flags [.], ack 158105, win 2047, options [nop,nop,TS val 276688522 ecr 2709993860], length 0

My existing MacOS and iOS clients also support IPv6.  If a DNS entry for a Netrek server has both A and AAAA DNS records, my Swift clients automatically try the IPv6 connection first and fail back to IPv4 quickly (this is a standard feature of the modern “Network” API in MacOS / iOS).

 % host netrek.networkmom.net
netrek.networkmom.net has address 161.35.226.186
netrek.networkmom.net has IPv6 address 2604:a880:4:1d0::47:6000

I’ve been playing Netrek over IPv6 all week!

Major known issue:

* With BRMH and Windows clients, all planets show as invisible.  I’m assuming I’m messing up the SEEN flag and will figure out what the logic is supposed to be after a short break (my Mac/iOS clients are probably showing too much and may need an update).

How you can help:

Try connecting to the server with your favorite client, and report to me (darrellroot at mac.com <mailto:darrellroot at mac.com>) whether your client works (at least to the point of dogfighting and basic planet captures).  If it doesn’t, let me know the symptoms and the exact time you attempted to play so I can check the logs.

If I can get this server stable enough, I’d love for next Thursday’s 6PM game to be on netrek.networkmom.net <http://netrek.networkmom.net/> (with pickled.netrek.org <http://pickled.netrek.org/> as backup).

Darrell Root
darrellroot at mac.com

Here’s the current feature / not-yet-implemented lists:
Not currently implemented: (in rough order of imprtance)

Logic around t-mode, genocide, coup.
Authenticating logins
Remembering statistics between server restarts
Rank logic
Metaserver compatiblity / observers
No robots (not even iggy)
Plasma
Special starbase operations (docking, transwarp, rank requirements, spawn limitations, orbit limitations)
Refitting ships at homeworld
advanced cloaking visibility (1 per second, hiding far away ships)
hiding far away ships (PFSEEN flag?)
UDP sockets
Short packets
War logic (you are always at war with other teams)
coup
reset stats
 <https://github.com/darrellroot/netrek-server-swift#supported-but-everything-needs-more-testing>Supported, but everything needs more testing:

IPv6 (and IPv4) TCP Sockets!
Messages
Speed / direction
Laser
Torpedos
shields
repair
orbit
planet lock
player lock
bombing
beaming up/down
basic cloaking
Detting friendly and enemy torps
Tractor/pressor beam

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.us.netrek.org/pipermail/netrek-dev/attachments/20200710/3d05a67e/attachment.htm>