Wednesday, June 5, 2013

Net Dreams

The BYOND engine (a game creation platform, far easier to use than normal coding, but with many of the drawbacks that that entails) is, by all accounts, in somewhat dire straits.  The central servers tend to lose money, and the engine itself, while it's updated occasionally, really gets no love in terms of features; it suffers, I imagine, from a lack of adequate code support, people who would do the things nobody really wants to do, but that need doing.

The Space Station 13 project, of which I am a tertiary member (a fork of /tg/station, originally built off an old fork of goonstation, built on some prior project now abandoned) runs on it, and I have put together minor projects in it, enough to really admire the simplicity of the engine.  These projects are diverse--action, strategy--but in each case I could sit down in an afternoon and have a framework, and over days or weeks have a minimum viable time-waster.  In short, I like it; but now, with the money straits they're in, they're making panicky choices to try to drive membership, and I worry that it'll only further distance them from both users and coders, producing the worst possible outcome for all three.

Not that users care--the final product is the thing, and will always be the thing.  Coders want to produce the final product, and anything that gets in the way drives them elsewhere.  And BYOND, like many types of middleware, can only monetize (as distinct from making money) by interrupting the flow somewhere.  Their latest experiment is throwing preroll ads when you connect to a server, presumably to pay for bandwidth costs--but our server, private and unlisted, makes no use of their matchmaking system, so we use their servers (which we are getting preroll ads to pay the bandwith on) barely if at all.  The suggestion, of course, is that we pay for membership instead of having this horse crap forced on us.

Needless to say this is the opposite of progress.

I am sympathetic.  I am.  I am unemployed and would like to make a living in software.  To produce something great and get a revenue stream out of it is an idyllic dream.  Maybe, if I produced a real hit, or dozens of smaller hits, I could live off of it.  Ah, wouldn't that be nice!

And maybe, when you open a diner, a rich person will like your cooking.  Maybe they'll give you a million dollar salary for the rest of your life.  So, why not learn cooking!  If you do, maybe you'll never have to cook in a diner for the rest of your life.

To be honest, where I stand, I would never want to retire.  Ah, say the old farts, the idealism of youth.  And yup, you got me, that's exactly what it is.  Naivete, if you will.  But for the same reason, and in the same way, I would never want to die; inevitably, of course, I will, but that statement belies a deeper, more frustrating truth: before I die, I will age.  I will decay.  And living in my own skin will become less and less bearable.  More importantly, that decay is a failure of my body; it is the status quo, but it is a my body failing to live up to the demands of time and wear.

Abstract things like businesses are not subject to the same sort of failure for one simple reason: they can be rebuilt infinitely.  In practice, the people in charge will dictate the form of the company; your own failure or success as a leader, and your own evolution shape the company around you.  Even if the company leader disappears, until it decides to die, it need not fail; it will, inevitably, but only due to our own mortality.

I digress; it is a habit of mine.

But the point, circuitously reached, is this: not all bullets are silver, and not all guns are golden.  Some things should live that will not pay for themselves.  Revenue--ah!  The bane of business, the heart of capitalism.  If you are not driving revenue, you are not Capitalist.  "You, petty programmer, petty engineer, your words are pretty, your designs are elegant, but unless it is backed by green, you are meaningless to me!"

Well, shit on you, that's a terrible way to run a country.  Or, to mangle a quote about democracy, "It's the worst form of [society] except for all the others we've ever tried."  Some things are infrastructure, which may fit neither in the purview of common good (which is ruled, typically, by government), nor the purview of self-interest (which is ruled by free industry); in this time of trendiness we tend to forget it, but it's true; things like telecoms, transport, and operating systems really do not belong in either of those two camps.  They require adequate competition (ruling out government), and do not adequately return capital investment (ruling out free market forces).  That's why telecoms the world over vary between grossly overpriced and entirely underfunded; it is not simply a matter of doing it, but of finding a way to make it get done.

And infrastructure, whatever else you say about it, needs to get done.  The Romans knew it, as has every city designer since antiquity; if the people need water, they need water, and if they need roads, they need roads.  Nobody today thinks about electric power as an infinite profit generator, and that's a healthy outlook; because it became infrastructure, cheap and ubiquitous, we almost can't live without it, especially in cities; if all power in the world stopped flowing, society would regress centuries overnight.

I did say digressions are a habit of mine?

BYOND is, well, a trivial example of infrastructure, to be sure.  It's a language, some file formats, an editor, compiler, and server software; it is, well, many things, but is just entertainment.

Still, I wish it would survive, and without the cynicism-laden choices that they feel they have to make.  To be frank, if I had a dream for BYOND, it would be for them to be picked up by Google; they have the server know-how, the compiler know-how, the bytecode know-how (BYOND uses bytecode for the server software, as of course does Android), and many other things that a small-time project like BYOND could never REALLY hope for.  I thought of it when comparing, in my head Google Go (a programming language) to BYOND script; the former is so much more capable, but compiles instantly; even setting that aside as a benchmark, they must know so much from experiments with such things, experimentation that a cheap or free tool could never come to understand, especially when the project heads have to work for a living--not just to pay for their own lives, but also to pay for server costs.

And BYOND does need work.  After many years of work, the programmers only just got around to multi-threaded compilation--and even then, it only keeps the UI from freezing while it works!  There are other examples; the map editor is inelegant in countless ways, and underpowered in several more.  Their design sense, while not terrible (although their latest redesign of the pager leads me to doubt this statement), is not the best.  Some parts of their UI toolkit are, while I suppose somewhat robust, definitely overcomplicated and underpowered.  The games themselves, and the server software, are both single-threaded; the bytecode is trivially- or completely un-optimized.  It is, as we say, not professional work.

And what can one do?  I can't fix their problems for them.  I'm an unemployed, idealistic, naive programmer.  I want to live forever, to work forever, to learn and grow forever, but as I am now, I am just your average lost soul.  Desirous of place... of many things.  But for now, just lost.

And dreaming net dreams, some my own, some not.