
cis - straight - white - 30 or 40 years old
clojure programmer
living in the shadow of grief
nothing remains forever empty
Profile pic commissioned from @ICELEVEL
this shit is another hefty one. i rewrote the primary data structure for costs. will be much simpler to track costs, add modifiers later, keep normal and additional costs distinct, and intelligently handle stealth costs.
once this is done, i'm gonna implement system-wide additional cost checking, allowing you to reject paying for any and all additional costs.
once i'm done with this, i'm not sure what i'm gonna do next. maybe rejigger prompts like i've been dreaming of for 6 years.
<jinteki.net> has a lot of problems, some which are easy to solve and some which are not. There’s a difference between bugs and tech debt. Bugs are things like “misplaced parameters”, or “forgot to check an additional predicate”. Technical debt is “the core system is built on callbacks” or “there is no game loop”.
I had a wonderful conversation with someone who is attempting to implement the Netrunner rules as strictly as possible. (She’s gone so far as to implement Netrunner’s R&D location system instead of using a simple vector!) In our many back and forths, I am confident she learned nothing from me lol but I learned a lot from her, both about Netrunner and about how to structure a game engine for Netrunner.
jinteki.net is not a good game engine. It works, in part due to the incredible amount of work we’ve all put in over the years, but (to be slightly rude) it has no right to work as well as it should. It’s full of cludges, ad-hoc systems, layers of ideas half implemented on top of each other like dirt strata.
It also has complete implementations of over 2,000 individual cards, and is the primary means of netrunner play post covid. To attempt to start over is incredibly daunting. Not only am I bad at blank projects, but I’m also not sure that a clean slate would benefit nearly as much as working to improve what we already have.
That said, speaking with Lucy gave me excitement like I haven’t experienced about jnet in years, and has filled me with a desire to Make Things Better. For starters, treating “effects” as pure data that’s passed around to handle replacements and interrupts is great.
But if I were to add that, I’d have to make sure it cleanly applies to all TWO THOUSAND cards, in addition to the 20k lines of engine code. That’s fuckin annoying.
There’s no real goal here, just combo venting and giddy excitement.
The Liberation Cycle is complete with Rebellion Without Rehearsal! It replaces Borealis Cycle in the Startup format. Now is a great time to get into Netrunner - go check it out at https://nullsignal.games/! You can even play online with your friends or print and play with proxies!
But also, the Borealis cycle fucks and the Ashes cycle fucks, so if you like these cards, you should pick up the others posthaste.