@neauoire Marabu, Orca, Pilot— a new trilogy!
@ra You’ve made something incredible!
@neauoire My FP approach to writing Fuligo’s game code kind of ran aground on UI, and while I’m not utterly lamenting it, I do owe myself an explanation. I’ve fished for clues in articles like this.
Why do monads feel so clumsy?
I hope those of you who enjoyed Myst and the games it inspired can pledge to @cyanworlds’s latest game, Firmament.
Cyan is a unique and daring company of world-builders with wholesome, engaging, memorable games. The industry could take a page from their book so to speak. 🤓📖
The Firmament kickstarter is in its final 44 hours, and they are 94% towards their goal with 71,000 USD to go; let’s make it happen!
@ky0ko This is like finding an extra room in a house, behind a wallpapered door.
Which makes it super weird that it’s so prevalent.
One day, I'll be able to accomplish what I'd like to accomplish with this UI code, some kind of compositional elegance. That really can wait. What's more important is that the code is readable and stable, and that I can finally get this game fully playable. Everything else is a distraction. I don't need another reason for delay.
Obviously I'm not the only programmer who got mesmerized by something shiny, but I really did think I had good reasons to make an exception for RxJS. For instance, it's a flavor of Observables, which are a proposed addition to ECMAScript. I was just being ahead of the curve!
Famous last words, right?
It's also an incarnation of Functional Reactive Programming, and would let me banish state from my UI code. But when you think of it, ALL the UI we use contains state. What was I trying to prove?
Mmmm, vanilla. 😌
Whenever possible, I try to keep my code projects from using imposing frameworks. The Hundred Rabbits JS ports taught me a lot about that. Fuligo is meant to be *extremely* vanilla. I want its code to last a long time, and minimizing dependencies is an important facet of that.
Yet, for the past two months, I rationalized and then wrestled with a library called RxJS, which twisted the code in weird ways.
Tonight I've decided to remove it. And it feels good to let go of it.
Revel in the marvels of the universe.