been in a bit of a funk this week but I knocked out an implementation of Kepler's laws and it's lookin' pretty good
orbits can be properly elliptical but not yet hyperbolic.
I wrote up a longer doc about the story here: https://gitlab.com/technomancy/bussard/blob/master/spoilers/progression.md
the original storyline ended with this quote from Dune:
I know the evil of my ancestors because I am those people. [...] I know that few of you who read my words have ever thought about your ancestors this way. It has not occurred to you that your ancestors were survivors and that the survival itself sometimes involved savage decisions, a kind of wanton brutality which [civilization] works very hard to suppress. What price will you pay for that suppression? Will you accept your own extinction?
I still feel this is a powerful and appropriate philosophy for interacting with other humans around you, but it's woefully inadequate for dealing with existential threats like runaway capitalism.
in 2018 that seems like an ill-considered message to be sending, and I need to take it in the direction of optimistic resistance; more solarpunk with a little meatpunk influence for good measure: https://hthr.itch.io/meatpunk-manifesto
part of the reason I rebooted Bussard is that I'm just having so much fun with Fennel, and I want to use it more.
but part of it is that I was feeling increasingly uncomfortable with the message behind the story. it was a parable in the vein of The Lathe of Heaven, which is a meditation on the Taoist principle of 无为: the art of achieving ends without the use of means. in Taoism, the idea that you can comprehend the impact of your actions enough to act with benevolence is arrogant and foolish.
the next step is to reimplement the ability to SSH into station computers; for that I will probably take the OS subsystem wholesale from the old implementation and plug it into this one and just redo the client side, because I was pretty happy with how that part of the system worked before.
it's still pretty rough around the edges, but I have a functioning solar system orbital model and fully sandboxed ship computer evaluation context.
I'm strongly considering a rewrite of Bussard because it's too ambitious; I think a more focused game could have a much better chance of actually being finished, and I've learned a lot in the past year from the game jams I've participated in.
I want to put the story and gameplay first, and I think that means easing off on the "programming IS gameplay" aspects because I'm nowhere near clever enough to find a way to make that actually fun.
development on Bussard has been on hold for a bit, but I'm hacking away at the underlying engine, Polywell: https://gitlab.com/technomancy/polywell
in particular I'm in the process of porting it to the #fennel programming language (still running on #love2d) and removing a number of hacky bits, making backwards-incompatible changes. I just landed Emacs ido-style completing "invoke command by name" today!
current LOC, Lua: 1308, Fennel: 525
Development has been on hold for a while as I've been working on the #fennel compiler which I hope to eventually use from Bussard.
If you're interested in Bussard you'll probably also find these interesting.
I've had a hard time figuring how to intertwine the plot and the puzzles/challenges around it so far, but over the weekend I finally pushed out a comprehensive outline I feel pretty good about.
My next plan is to programmatically generate planet textures to replace all the planet sprites and hopefully the stars as well. This tutorial looks promising if I can adapt it to #love2d which I don't believe actually uses the libnoise implementation.
Finally a little easter egg; I implemented Tetris on the Emacs-clone editor thingy.
There is one other in-game minigame hidden away but I won't give that one away.
There's a mail client in-game where other characters can send you messages.
This one is a flight thru the Sol system, which is currently the most interesting of the 11 populated systems in the game.
The latest beta release has all the planets rendered with static sprites, but on the master branch they're rendered as rotating textured spheres with shaders.
How about some #screenshots, eh?
This first one is the rover system; you control it as it navigates thru the map using a variant of the Forth programming language.
Hey it's @technomancy moving my gamedev-related posts to this account.
Bussard is a spaceflight adventure game I'm working on where programming is a core mechanic. It is free software implemented with the #love2d game engine.
I've been working on it since mid-2015 on and off. It contains a port of Emacs, a lua repl, a fake unix, a lisp compiler, a forth implementation, and more, all as functional environments you can interact with and explore.