In 1984 BBC Elite was released and it was a truly ground breaking video game at the time. It gave the player what felt like endless freedom to roam a large universe of distinct planets with thriving markets for trading and making your fortune.
With spacecraft and space stations beautifully rendered in wireframe graphics, Elite felt like the future of video games had arrived.
I was always fascinated with how the universe was generated and how the trading game worked.
A few years ago, Ian Bell released a reverse engineered C version of the Elite Trading engine on his website: http://www.iancgbell.clara.net/elite/index.htm. It was great to see how the magic was done and how simple and genius the code really was.
For more details on Elite, why its important and more detail on my Go version of txtelite. See my blog post: Text Elite
Re-Implementing in Go
As a side project to keep my eye in with the go programming language and also just for the fun of it, I decided to port the C version to Go. I did a very poor job of it simply by translating the basic C code to Go. Which is honestly not very clever.
I always planned to revisit it and do a better job. I finally did and the result is hosted on my GitHub
I have taken the C version and kept to the original spirit of keeping the code fairly lean and true to the original for the most part. However I have made it much more ‘Go like’ than my previous attempt.
Additionally I have added a Terminal UI (TUI) to make it a bit more fun(?) to play in the terminal.
Try it Out
The Go source can be found on my GitHub
Binaries for the latest release can be found here: Release or you can install on macOS via Homebrew:
brew tap andrewsjg/tap
brew install txtelite
Type ‘help’ after running it to see the available commands.