Sean M Puckett

Portrait and fine-art photographer. Radical programmer. Culture activist. Passionate & opinionated, yet kindly. Mind the froth.

  • Followed
  • Follows you

Edit biography

Since April I've been working on posting once a week, though not here, and the title of the post is typically my current weight in pounds, starting at 220.

Oogy. I look quite different in the mirror. Still want to lose another 10lbs. It's more difficult with the colder weather coming in. Discipline. Or just bacon.

Unfairly annoyed with lack of progress on several life-related fronts. Had an "everything is the same, my life hasn't changed in 10 years, I've wasted the last decade" attack on Friday, said I was ready to just burn the house down (saving cats, backup data) and walk away. It's one of those things that surfaces now and then. Like many such attacks, the feeling is strong in the moment, and when the moment passes it's less urgent but still there as part of my psyche. 

How do people look back on their lives and value what they've done? I know I've done a lot of cool shit in the past 10 years. But sometimes it just feels like I've done nothing and have nothing to show for it. I suspect this is rooted in the "lack of multiple strong friendships and a good support network" problem. Which I am now feeling upset about. Great, thanks, journal counsellor. Now I need to talk myself down from freaking out again.

So Thursday we went to see a queer variety show; music, dance and theatre. Some good stuff there. The musical numbers were cute, even pleasant. Some disappointments in the theatrical performances. Learning more about theatre as a director has the super-power of seeing where problems are in productions. Like if there's a particular performer who clunks, that may just be bad acting, but if everyone is mostly on the same level, that's a director problem. Or if you get great acting moment-to-moment but scenes don't flow, or if need/intent isn't visible, also a director problem. Or if scenes just don't make sense, or don't connect together, that's a script problem. Or if an actor emotes well in some places but not others, or feels like they are not connecting to the audience or other actors. Could be a lack of warming up.... or it could be that rehearsals didn't really push the actor. 

By contrast, yesterday afternoon we saw HMS Pinafore put on by an amateur theatre group in another town (Guelph). It was really rather amazing to see a "little" theatre with 300 seats (half filled on a Saturday afternoon), a real stage, a lighting grid with catwalks, separate rehearsal space, workshops and so on. And a cast of 20 who all pulled their weight; not perfectly, but no clunker performances either. Decent directing, modest but adequate lighting and choreography. With a little pit band. And in a community 1/4 the size of ours. Makes one think. What are they doing right? What is our community doing wrong?

MORE
9/13 '15
 

I get angry at the injustice in the world. At thoughtless people. At selfishness. At unmutual behaviour.

But I can't change people. I can't change the world. So all the anger just sits there and festers. "I'm always angry."

But constant anger is constant stress, and constant stress is very damaging. So I tamp it down. I say I don't care. I shrug it off.

But I can't seem to just diminish my response to anger. Everything else gets diminished, too. If I don't feel anger, I also don't feel joy, I don't feel love.

But that's depression. I have to choose between being angry or being depressed? 

How to be authentic and in the moment and emotionally responsive without burning up?

How do people do this?

MORE
6/19 '15 4 Comments
I'm no psychologist, but I think there are a few approaches- one being suppressing the feelings (which obviously isn't working if it's affecting your quality of life otherwise). I'm thinking maybe one approach would be some kind of calming, zen-like logical response, realizing that the anger isn't going to benefit you or the situation in a tangible way, might help minimize the anger without affecting your ability to feel more positive emotions?

It's so hard to change attitudes and responses- anger is such a natural reaction to so many things, but when the things are inescapable, the anger just builds on itself and hurts you instead which sucks.

It might be something to work on with a therapist, or you could maybe develop a sort of progressive way of trying to improve your natural reactions over time, giving yourself things to try when you're faced with situations that provoke anger.
I really don't know how to "love one's enemies", and have been known to say out loud that I "hate" members of sporting teams whom I have entirely no business hating. But I do think that "love your enemies" is a good idea, and it probably starts by empathizing as much as you can with their common flawed humanity.
Spider Robinson, for whom I will always hold space in my heart, has literary characters who consistently unpack their anger by figuring out what he claims is the other side of the anger coin: fear. So I don't know if that formula works in your case, asking, "What am I afraid of in this instance?" But I can say from experience that my fears are generally much easier than my angers for me to work with and soothe, and that often in the process of doing that I find that any associated anger dissipates.
Jenny says wise things.

I try to figure out what I can do, and what's enough. That's what I do, and then I'm done. Sometimes it's never enough, I know.
 

I'm still working on my game project. The AI programming language has kind of grown, though. I have become rather enamoured of it and am making it more of a general purpose language. Once I can rewrite the game engine itself in SAI (which is what the language is called) I will return to it.

Right now I'm working on interoperability with Javascript, which is the hosting language -- SAI code is transpiled into Javascript code that does the exact same thing, which can then, because it is Javascript, be run just about anywhere.  

I don't know if I can really justify what I'm doing. It seems these days everyone's got their own framework or preprocessor or whathave you. I'm doing this mostly for me, and mostly because whenever I go to use Javascript I become extremely frustrated not only at its syntax but at the abuse that other people perpetrate upon the language and other programmers using it.

It's like Javascript is just this wide open sandbox of "hey you can redefine anything anytime go nuts!" and then people do, and suddenly no one knows what the fuck is going on any more because all the fruits mean wibble mustang dope run-on sentence and good luck charlie. Kapisce?

I'm not saying I'm locking it down, but I am saying that a little bit of rigor and formalism would not be inappropriate. And if defucking the syntax further encourages clear and straightforward coding, then maybe it will be a useful tool for others too.

MORE
3/5 '15 7 Comments
I strongly approve of the use of the word "defucking."
If only. I read something once that said JS had the most commented curse words of any language, haha.
Language design is awesome for the brain. Good enough excuse I say.

JavaScript's "approach" to object oriented programming is such a running gag... everyone has their own preferred way out of that thicket. Including me:

http://justjs.com/posts/this-considered-harmful

The apotheosis of which is:

https://www.npmjs.com/package/moog
Oh look, apparently I'm not linkifying https. Whoops.
test with just one link in a comment: https://www.npmjs.com/package/moog
ah, it's the two-links thing.
 

Having a bit of crisis with this beast lately, I must admit. Nowhere near giving up, just a combination of Depression Dumb* along with the mountain of crap necessary to meet the Minimum Viable level and it seems like I've been staring at the same code forever and having nothing happen, which isn't even true at all.

But let's talk about what's working even though it won't even compile right now. I just wrote an inventory handler, which I needed to write in order to handle equipping/removing wearable gear, which also needed to be able to send events to notify the gear logic that it's been put on/taken off, in case there are special things that need to happen**, and it also needed to be able to ask gear logic whether or not it was okay for the player to put the gear on because maybe there are stat requirements, or take it off because maybe it's cursed, which all led to a whole other level of cascading shit to support those changes, like figuring out repeating interval timers, and smoothing off the rough edges in the language or adding new features or refactoring code to make things cleaner and simpler to understand.

I mean, shrug, yeah, that's what it's like when you're creating a new complex system from scratch, you want to do something you can conceptualize very simply "hey let's dress the simulated dudes up so they can fight in armour and with real weapons so I can test the assumptions I made about character design and feel like I haven't been wasting my time with this idea" and then it's two weeks later and you still haven't done it because basically you said, "hey let's get in the elevator and ride to the first floor and see how it looks" and then woah fucko before you can do that you need to smelt some iron ore and invent electricity.

I'm really hopeful that it will be a good environment to tell great stories in. That's why I'm making it. I want to be able to tell interactive stories, and to allow other people to tell stories too, in the same universe. And all of the work I'm doing right now is basically to establish the rules of the universe and make sure they're consistent and fair, and it's really just feeling rather tiresome right now. There's probably some comparison to be drawn with a major world religion, but enh. 

​* For those just tuning in, I have some pretty severe depressive episodes at times and during them, my brain feels like molasses. I could probably, should probably, write about depression sometime, but it still feels like pointless whining, even though I know that isn't true. So we'll see.

** From my debugging console: owner['event_equip']=function(parm) { if (parm["on"]) { console.log('The spirit of the dead cow thanks you for wearing its skin.'); }

MORE
12/4 '14 4 Comments
I know this pain well.
I empathize with Molasses Brain.
I know this pain well.
also: "woah fucko before you can do that you need to smelt some iron ore and invent electricity." tickled the cockles of my heart.
 

Since the last Blindside post I've implemented the majority of the in-game scripting language, which I am calling Sai. I don't want to go into a lot of detail about it but technically I will say that I'm pretty happy with it as a language in general. I do need to write up documentation for it which will be interesting slash annoying but for the moment I am setting it aside and returning to the issues of game balance and derived stats.

For those just tuning in, there are twelve base stats: power, magic, empathy; defense, dogma, sagacity; accuracy, speed, stealth; essence, constitution and ego. (Two of the last three have changed; essence was awareness and ego was charisma; the concepts are somewhat similar in intent but the names are now clearer.) 

Each character starts off with a unique but balanced set of those twelve base stats ranging from -5 to +5,  depending on gender, race and class. They're balanced because they sum to zero. As a game designer, I want to make gameplay different in interesting ways for each character so the game has replayability. When the game starts, I will offer the player several free skill upgrades so they can further customize their character.

So let's talk about derived stats, or how those base stats are used to arrive at the numbers the game uses in its calculations. (I'm not going to detail the formulas, just talk about derivation in general.)

Our first three derived stats are health, mana and stamina. Health is largely based on the constitution stat and is the familar "hit points" metric, or how much physical damage you can take. In the game, physical health will be handled somewhat realistically; you can't just swig a health potion. I want players to generally regard combat as a high risk activity, something you do only when you must, and then only when you are well prepared. If you take damage, you will recover some of it slowly on your own to a degree as your body heals itself, but getting back to full health will require intervention.  

Mana, the resource used by casting both types of magic is based mainly on the ego stat, and represents how much mental focus and disciplin you have. Mana will regenerate fairly quickly on its own, but a period rest will be required to restore it to full. I don't intend to allow you to cast spells like machine gun bursts, but on the other hand characters who are physically weak but have powerful magic should still be competitive in combat. 

Stamina grants you the ability to perform sustained physical activity without becoming winded. The more stamina you have, the more swings of a sword you can take, the farther you can sprint, and so on. You will be allowed to exert yourself to exhaustion in battle if you wish, but if you do so you will need to catch your breath before taking further actions. Stamina is mainly derived from the base stat of essence, an interpretation of the concept of chi or body focus. Essence, like constitution and ego, also affect other derived stats where appropriate. 

Our next three derived stats are defense modifiers for to recevied physical, magical and empathic attacks. Largely based on defense, dogma and sagacity, they do also include some influence from constitution, ego and essence. Defense modifiers are straight percentage modifiers and are intended to take into account the character's familiarity with differing forms of attacks. For example, a character skilled at physical combat will naturally know how to reduce the effects of a physical blow to her body. 

At this point, the realm of physical attacks splits into three specializations. Very generally, strength attacks use blunt weapons, dexterity attacks use sharp weapons, and accuracy attacks use pointy or projectile weapons. And so there are three derived stats for physical attacks -- bash, slash and pierce -- that model competency at perpetrating these three types of attacks. Bash is logically based on the base stat of power, slash on speed, and pierce on accuracy, with additional modifiers. There are also two derived stats for magic and empathic attacks which are primarily based on magic and empathy, with modifiers as well.

Finally, the base stat of speed has its own effect on gameplay as the speed factor; the faster your character is, not only the higher your slash attacks, but the faster the game will complete your commands! This effect is very small but can make a difference in some combat situations. So if you're playing a Pixie and you have a Justice for a companion and notice that you keep getting ahead of them, that's why -- they're the fastest and slowest characters in the game respectively.  (Interestingly, because of the high speed, Pixies can do frightening amouts of damage with edged weapons due to their high slash modifier -- and though the Justice is a slow and plodding character their very high power makes them just as dangerous with a hammer!)

Balancing all of these stats is where I'm spending my time right now. I have some fairly impressive spreadsheets being auto-generated by the game engine where I get an overview of all the possibilities for each character that can be created. Not just of these derived stats, but of combat consequences, like damage output to stamina exhaustion for different types of weapons.

I'm just at the point where the spreadsheets look "good enough" so it's time to start actually running simulations that pit characters against each other to see who wins. Which will also give me some initial passes for NPC artificial-intelligence!

It's kind of exciting, but also kind of scary. I'm a little worried that the huge amount of work I've done so far in creating the stats and the combat model will actually be impossible to balance. But on the other hand, I feal reasonably sure that I'll be able to sort out most minor issues.

So really the question is, have I taken a huge misstep?

The next week or so will tell.

MORE
11/26 '14 2 Comments
What a cool project. I hope that things balance well!
Thanks! Of course it turns out that in order to have NPCs fight I have to write a lot of infrastructure so that it's reasonably close to how things would be in the game. I guess on the brighter side is that once the balancing done the rest of the game will be done too. Which isn't really true... but that's how it feels.
 

So I read the Maze Runner series by James Dashner, who hereafter I will not refer to as dipshit only because ad hominem attacks are only worthy when they're executed with style. And he doesn't deserve the effort. If you don't have the time for a 1400 word rant, I'll just cut to the chase: don't read these books.

Note; if one can spoil a flyblown pig, then yes, there are spoilers below, 

It's badly written, badly plotted, badly characterized, ultimately pointless, and worse, is a fucking Mormon parable. You read me right. It's the dystopian sci-fi flavour of Stephanie Meyer's pabulum, my friends: it's Twilight, for boys.

I was originally interested in the series because I read The House of Stairs as an impressionable youth. One of the scariest books one can read as a teen, I think, because of its basic premise of recasting the realities of adult life into an unknowable, unfathomable realm where you're forced to deal with people you don't know and can't trust, and where the rules are essentially unknown unless you break them. And then you begin to be warped and twisted by your survival instincts. How far can a person be manipulated to make them conform to expectations before they shatter, or rebel? A lot of who I am and my views on societies and group dynamics were shaped by that book. And I know I'm not alone.

So I was hoping Dashner might explore some of those same psychological themes in greater detail, and provide some interesting context around the characters and interactions and society that might make such a thing work. That's not what I got.

These books are so bad that I could probably write a full length "NaNoCriMo" about them, but as I do value my time I'll settle for three major points.

The characters are shit. Each character is crayon sketched from a pool of tired YA archetypes. Thomas, the protaganist whose shoulder we surf throughout the series, veers back and forth between heroic to idiotic precisely as the plot requires; he has essentialy no agency and no consistency -- except for his doubt (you see what I did there; except it's not what I did, the author did it, that's the way it's written).

There are a bunch of other boys who orbit around Thomas, playing one role or another, almost interchangably. I say almost, because the rules of YA ensemble fiction do require each group to have weak sidekick, a bully, a fighter and a reluctant leader to go along with the protagonist, but aside from the archetype defining beats in the plot that allow you to remember names, the characters are almost interchangable.

Dystopian YA ensemble fiction also requires a bunch of supporting characters who on one page add comic releif, the next page add dialogue colour, and on the following page bleed out messily. One can do this with style and panache, giving each character their own life and agency, then snuffing them out at intervals to give the reader an elevated sense of horror, or one can just dispose of them as needed in quite a matter-of-fact fashion and then write a few words about the protagonists's elevating sense of horror. Guess which we get.

And then there are the girls. Well, in book one, there's one girl. She gravitates towards the protagonist, as one might expect, and while nothing ever happens on the page, nothing ever really happens off it either. There might be a chaste kiss. But she's treated like a commodity to be treasured by the boys or manipulated by the world's arbiters in order to make the boys do what they're told. And also as another reason to add still more snarky and chafing dialogue. (Which was obnoxious to a ridiculous degree.)

Later in book two we discover there's a gender-swapped version of the main "experiment" where there are lots of girls and one boy, and while the group does encounter these girls enmasse, and there is a brief conflict set up to test Thomas yet again, it is revealed that their experiment was easier, and while there are reportedly more of them, none of their stories are told except in faint fragments.

Another girl is introduced midway through book two, and the instant rivalry that crops up between the two of them with the protagonist in the middle is as clumsily handled as it is needless. Actually, I'm thankful that there's so few female characters in the trilogy -- they are written so badly that if there had been more than a handful of scenes I probably would have given up on it. Okay, I guess that would actually have been good.

The setting is shit. The author has clearly invested heavily in a highly leveraged position in a deus ex-machina factory. The world makes no sense. Here, let me try to explain it. 

There was a huge solar flare that fucked up the sun's temperature that ultimately rendered the tropical regions of the planet a desert wasteland. Second degree sunburn in minutes, we're told. We're not told about the conditions of the rest of the world. Except that Denver is apparently still habitable, and sunburn is never mentioned again.

This catastrophe caused the release of a weaponized airborne virus that causes people to gradually lose their critical thinking skills and go mad. Nevermind that such virus activity is implausible, the suggestion that a virus like that might be a useful weapon and thus might be developed is absurd. One doesn't develop a bioweapon that cannot be trivially countered by the "good guys" side. Oh, and some very small fraction of people are immune.

All of the world's governments have come together to create an organization to come up with a cure for this virus. Although instead of pursuing a biological method (Why? Handwave), they're trying to come up with a psychological one. Thus the need to put kids through extended psychological testing. 

So I'm to understand that a world that has technology for teleportation, telepathy, remote mind control, instant infection healing and much more, could not come up with a biological cure for an implausible weaponised virus.

And the organization is, naturally, given an infinite budget and is run without oversight by a bunch of seat-of-their-pants assholes very much on the "ends justify the means" range of the scale. While the rest of the world goes to hell, with "infected" citizens shipped off to concentration camps where they can slowly go mad, guarded by those who are immune, and cities gradually emptying out and then in watershed infections converted into hotzones.

The setting blows past seriously? and Really? and lands squarely inYGBFKM territory.

The plot is shit. Probably the worst indictment I can make is that nothing that happens in the books matters. None of the actions of the protagonists or the antagonists has any ultimate relevance to the setting at all. You read above that there are a small percentage of people who are immune to the virus. You would then correctly guess that one solution to the problem of a virus that wipes out humanity would be to get those folks together and allow them to breed. Which would happen anyway. Because that's what biological organisms do. They survive. 

And in the last two pages of the third book, our protagonist, with his designated female companion (whose rival for Thomas' affections tragically died merely one page earlier when a rock randomly fell on her, I shit you not), and a small handful of experimental subjects all of whom were immune all along, along with a couple hundred other immunes who were rounded up, teleport to a beautiful remote area on Earth to begin again.

You see, none of the experiments ultimately mean anything. None of the strife and struggling and plotting by the organization, none of the science, none of the research, none of the angry shouting and betrayal, none of it, comes to mean anything to the billions of people around the world who are infected with this absurdly implausible disease and will die. It's all just designed to test the protagonists, to see if they're worthy. 

I read these over the past couple of days, at first with interest but then with some disappointment. By the end of the first book I was dubious, and as I got to the third book I was scrolling through the text almost non-stop, reading as quickly as I could, not for enjoyment but just to see if the damn story would ever go anywhere. And it didn't. And I couldn't understand why he'd written it.

And I was making coffee this morning and thinking about just how fucking pointless the series was and stopped dead when I finally put the pieces together: it is just a parable about a blessed saviour who, tested by the evils of a foul world, proves himself just, and takes a small group of breedable companions away with him to a secret place to make a new society free of the ills of the old.

And then I threw up a little in my mouth, and came upstairs to write this.​

Edited to add: in the course of writing this I looked up Dasher, and it turns out he took his schooling at Brigham Young. This is my surprised face. Also apparently there's a movie out, which was financed by Temple Hill Entertainment, which also financed the Twilight movies. This is my other surprised face. 

MORE
11/19 '14 4 Comments
My wife and sons seem to enjoy the books, but I haven't tried them yet. I'll probably end up watching the movie before then.
You've saved me from reading them and reinforced everything I have assumed from the snippets I have read and from the verbal reviews I get from customers. (I can usually pick the kind of parents who will be okay with their kid reading this. Usually when dealing with this kind of customer I strain an eyeball from excessive eye rolling.)
I'm acutely embarrassed that I read the whole mess, but since I have I'm glad to be able to help others avoid the same mistake.
we all have books we're embarrassed to have read. At least you aren't also suffering the indignity of actually liking them as well! Like me with a certain YA series about four brothers.
I cannot for the life of me understand why I find them so appealing but they are my guilty little pleasure. If I were to examine them, I am sure I would find a lot to hate and loathe. But I choose not to and I choose to love them even though I cringe inside over my love.
 

This is another post about Blindside, the text-only realtime RPG I'm working on. At the moment, I'm both looking at tools and options for building game maps, and implementing tools for the game's AI.

The game is intended to be large and complex enough that I am creating it in two pieces: "engine" and "content". Let me explain, if you're unfamiliar with these ideas. The engine is software, and it does all the housekeeping like keeping track of your location, stats, inventory and health, and also figuring out what you can see, who you can attack, where you can move, and so on. The content is the all the stuff the engine needs in order to tell a story. So there's maps, descriptions, dialogue, lists of NPCs and so on.

In a sense, the engine is like a video game console. It doesn't do anything until you add some content in the form of a game. And then it comes alive. (Oldbies will be familiar with game engines like SCUMM, used for the Lucas Games graphic adventures; and the Z-machine, used by Infocom for their text adventures.)

The great thing about splitting apart the engine from the content is that if you design the engine right, you won't have to change it once it's finished. You just start the engine up and point it at the content. And you can then spend the rest of your development time working on content, and even keep making more content even while the game is running.

Because I want the monsters and NPCs in the game to have very different responses to the player, have some decent agency, and to actually be difficult to beat in a fair fight, the AI system needs to be both powerful and flexible. And when you want to teach a computer to do things both powerfully and flexibly, inevitably you'll want to create a language to do that. And, traditionally, when a game engine has a language built into it, it's called a "scripting" language, because you're creating a script for the characters, locations and items in the game. 

So Blindside will have a scripting language of its very own.  But wait, I can hear the wailing of the nerds -- there are scripting languages out there already! Why invent a new one? You could be creating content or making your engine better, why waste time on making a new language too? There are often justifications for making a new language, especially when the use for that language is very specialized.

One problem with many modern computer languages is that they are so generic -- so applicable to any problem -- that while they can do almost anything, you have to be extremely verbose and specific about exactly what you want done. You might like to think of generic languages as a big pile of 2x4 lumber and a huge pail of nails. You can build almost anything from a doghouse to a four story apartment building with these components, but it's going to take a long time and you have to be very careful and precise. A custom language, gives you the equivalent of panels for a prefabricated house. While you can only build certain kinds of rectangular houses of certain sizes with these panels, they go together very quickly and they work very well.

In computer science more broadly these kinds of specialized languages for making "prefab" houses are Domain Specific Languages, or DSLs, in that they're languages specifically made for a particular domain/use.

The goals for the AI language are that it should be very easy to understand (so one can review it at a glance), very easy to write (so I can teach it to others), be both terse and obvious, and still be flexible enough to allow lots of different tactics. 

The language is still in flux but I thought I'd show you a bit of what it will look like. This little bit of code might be attached to an NPC that is part of a team of fighters, or maybe even a friend or companion to the player. 

See if you can figure out what this does just by reading it.

  first ally poisoned having health<25% order by health
    definitely cast remove poison order by speed
    possibly use remove poison having quantity>3


It should be pretty clear: If there are any allies who are poisoned and dangerously low on health, pick the one who has the least health and cast the fastest spell available to cure their poison and then end the turn, but if no such spell is available or we can't cast it, then if we have at least four items in our inventory that can cure poison then we might use one, but we'll also check for other things to do.

This is some pretty complex behaviour expressed in a fairly concise fashion.

And this code actually works, at least to a degree. What is happening right now is that the above three lines are converted by a compiler into about twenty lines of Javascript that do exactly what is described. (I'm not going to show it that because it's huge and ugly).

The cool thing about a compiling the AI code right into the same language that the engine is written in is that the AI code runs just as quickly as the engine itself. This is kind of unusual for DSLs and scripting languages in general -- usually they're interpreted step by step by the main engine program, or by a helper program called a library. 

But making this a compiler is great news for Blindside -- it means the AI can be quite complex and still not bog down the system even if there's a few thousand creatures roaming around with their own little agendas. It also means my job creating the engine is somewhat harder, but that's a good trade-off. As a programmer, my job is to make computers useful and helpful.

And if by putting a little more effort into my work makes the work of others much easier, then that is what I like to call design leverage. If I spend an extra hour, or week, or month, in making something better so that all of the dozens or thousands or millions of people who use it can get an extra second, or minute, or hour of time back or make their use of my project more enjoyable, or at least suck less, then that is time very well bargained.

And now we're at risk of veering into my whole philosophy of engineering so I think I'll wrap this up now. Thanks for reading, if you made it this far, and thanks for trying, if you didn't.

MORE
11/16 '14 8 Comments
Although I wonder if you are actually using SQL on the back end, since it reads like that flavor of language.
I've adopted a few SQL-like idioms, but not for technical reasons. There's also a AppleScript feel in the simple declaratory English verbs, and the use of prepositions instead of punctuation.
Nice! Just to play devil's advocate, you could say this not too much more verbosely if you wrote it in JavaScript using lodash... Well, you'd have to type "function" a lot. You could target that with your computer for output that is easier for you to follow perhaps.
With your compiler rather.
It indeed uses map, filter and sort functions to do some of the heavy lifting, but there's also some context management and dereferencing going on which bloats it up.
Something to consider is to try and get a minimal viable product in place, and to open it up to a small set of people to start to play with. Are you going to allow community to help create content?
Indeed, the short-term goal is to get a full stack engine with basic content up as soon as possible. Realistically it will probably be a few months even to that point because I don't want to be changing things too much once the world begins to connect to it.

I am still on the fence regarding community content. On one hand, yes I'd like to be able to flesh the world out quickly and with many varied experiences, but on the other hand I very much want the user experience to be consistent and progression-driven, which is tricky even in a tightly-knit group of developers.

The answer may lie in an approach such as that offered by e.g. Little Big Planet, where there's a main story that's tightly architected, and then user content that lives in its own shards and puts the player completely at the mercy of those who construct it. I used a similar approach in the early 90s in a somewhat similar multi-user environment called Universe, and it was effective enough but did have the problem of too many cooks creating too much tepid soup, and not enough customers willing to taste their way through the menu.
Glad to hear you are at least considering community content. I agree that a lot of community content is of questionable value, although there is often a rare contribution or two that can even outshine the primary source.
 

I saw Interstellar last night and made three tweets about my experience.

  • Interstellar was okay, except the score. Koyaanisqatsi had all the deafening pipe organ arpeggios anyone ever needed, this was inexcusable.
  • Also Matthew McConaughey has seated himself on Marlon Brando's throne as Crown King of "Acting With Mouth Stuffed Full of Toilet Paper"
  • That said, Anne Hathaway's performances were excellent, and the story was a bit hokey but very nicely paced. Go see it.

I got a response to my first post on Facebook (which gets copies of my tweets) from someone who complained that I always point out negative things, and then said that the science and visuals were awesome and they'd love to see it again, with earplugs. (I'm not quoting because that's probably rude.)

There's a lot I could unpack here that would probably be fairly tedious reading but I would like to make a couple points anyway.

I don't think there are any true spoilers here, but I do mention a couple of plot points in a very abstract way, and those two paragraphs are clearly identified below in point three.

First, I will complely own being a "complainer." Actually, that's just a side effect, when I'm feeling talkative. I absolutely am one of those people who is often profoundly disturbed by seemingly minor negative experiences. I actually feel this is a fairly useful skill in someone who designs things for a living. If I couldn't perceive the details about what was wrong with a situation or an object or an experience, how would I know when it was right or know how to fix it? So, yes, I can focus on negative things. This doesn't mean I don't experience good things. 

Second, for any form of professional endeavour, from an appliance to a restauraunt meal to a game to a movie, to there is a bar that one is expected to pass, and that bar is fails to suck. You don't get five stars if your product doesn't suck. You get two, maybe three. And in a triple A product, like a movie with a $168 million dollar price tag, I expect there to be no major and very few minor flaws. That's the price of admission: failing to suck.

And so when I have to strain to hear the dialogue because the lead actor is constantly mumbling (and it isn't relevant to the plot, like a story about someone overcoming a speech impediment), that violates my expectations for a triple A product, and I will call it out, because it sucks. Similarly, if the soundtrack for a movie is so intrusive that it repeatedly distracts me from the plot and visuals through sheer deafening volume and also renders essential if not critical dialogue sequences as basic exercises in lip-reading, I will call it out, because it sucks.

I consider "being able to understanding the dialogue" and "a relevant and complementary soundtrack" to be key components of a dramatic presentation. Interstellar failed on these fronts, and I said so.

Third, I don't consider scientific accuracy to be a key component of a dramatic presentation. A documentary, yes; I would expect it in a documentary. But not Interstellar. So though my interlocutor brandished that aspect of the movie as a positive, I can't accept it as more than a "nice to have". 

[ very mild spoilers next two paragraphs ]

And if one really wanted to dive into scientific accuracy, really the only accurate part of the movie was the visuals, which were not essential to the plot. When it came to plot beats, science was both used and abused willy-nilly. In general, it's a movie about the consequences about the time dialation aspects of general relativity, and I'm sure they did ran some equations that made the passage of time to be reasonably realistic.

However, they completely ignored other aspects of general relativity and astrophysics that, had they been considered, would have made the plot not work. In particular, the extreme redshifting of signals transmitted near a black hole would have mooted any justification for visiting the first planet, thus throwing entire plot in disarray.  Even worse, the vast amounts of high-energy radiation produced by matter falling into a black hole, especially a large one with a massive accretion disc, would instantly fry any humans or electronics that got anywhere nearby, which would basically have ended the movie right at the beginning of the second act. 

[ end spoilers ]

So they used some science to tell a story and ignored some other science to make that story work. I'm okay with that. It's called suspension of disbelief, and it's why I can enjoy a superhero movie. I don't poke holes in dramatic presentations for scientific inaccuracy, because science isn't why I'm there.

Fourth, I also said some nice things. I said the movie was "okay"; it passes the bar for AAA dramatic presentations: the acting was good, the cinematography was decent, the script was pleasant, the pacing appropriate, characterizations seemed on target, and the story engaging.

I also said that Anne Hathaway turned in some great acting; not just acceptable, but really worth watching.  I said the story was a bit hokey; its beats are just a bit too familiar to be really compelling, but not actually bad. And I said the pacing was very nice; it's a 3 hour flick, and it uses the "silences" between the words as effectively as the words themselves (I scare-quote silences beacuse the soundtrack rarely offered us any silence), and it didn't feel rushed or draggy.

And I said "go see it" which I stand by. It's worth seeing on the big screen with the understanding that you might be sticking your fingers in your ears one moment, and straining to hear Cooper's dialogue the next (and some times both), and if you do you'll enjoy a nicely paced if a bit hokey story with good acting all around as well as some inspired work from one of the next generation's best actors.

I would probably give it a somewhat resentful 4 stars on Netflix because I couldn't give it 3.5 and if I was using Ebert's star scale I'd give it ***.

MORE
11/12 '14 5 Comments
You are far too kind. Bad sound editing often completely ruins a movie for. And good sound editing can redeem a movie that is otherwise complete schlock. It is a key component and should be done well. Period.
I'm glad to see I wasn't the only one making unfavorable comparisons to Koyaanisqatsi. I have enjoyed Hans Zimmer scores in the past; I think this was just the wrong movie for his style.

I don't know if the science was terrible, or just so terribly advanced that I didn't understand it, but I'm unfamiliar with any effect that would cause the relativistic effects of the black hole to totally disappear until some sort of "cusp," and then instantly ramp up to "one hour is seven years." And if that WERE the case, then it seems like crossing that cusp would be a horrible experience. But people are making it very clear to me that Kip Thorne is much smarter than I am, and that it's all explained in the book, so part of me feels like I ought to read the book, and another part of me feels like I already spent $17 to see the movie, and I feel like that's probably enough.
The description I remember about approaching a black hole (and I probably remember it as far back as the 1970s) is that you'd be stretched into spaghetti. The sound was indeed startlingly overdone at times, with gigantic reverberations for no particular reason.
So I watched "The Science of Interstellar," a 40 minute Discovery documentary (net cost: $0, plus 40 more minutes of listening to Matthew McConaughey), and that exact question was addressed. Paraphrasing, but not as much as you might imagine: "Traditionally, people have thought that approaching a black hole would lead to spaghettification. But black holes have so much gravity that physics has no meaning!"

I'm assuming the book goes into greater detail.
The excuse I heard was that Gargantua was so effing big that tidal forces weren't really relevant to the plot. But as they hand-waved away radiation and redshifting too, sooooo they might as well say that chocolate chip cookies saved the Earth for as much as science matters.
 

Blindside is the working title for the game I'm designing/building. The Angels 50 view is "a multi-user action RPG played entirely in text." Yes, reading & typing speed will play a factor. It's an extended revisitation of a simple game I made two decades ago. It's probably far too ambitious in scope, though when I look at it from an architecture point of view it's really just a lot of components that interact fairly simply, so should be doable. Whether or not it will ever be done is another question. I am having fun working on it so far.

On the technology side it'll be playable in a web browser. That's all you'll need. Well, and an internet connection. Because it's multi-user. Of course. I have a proof of concept up and running already, but it's nothing to be impressed about.

I wanted to write about the character design that I'm working on. I'm familiar with lots of computer game RPGs and a few tabletop RPGs so I have a pretty solid base of where things have been and where I want to take them.

The game's characters are broadly described by gender, race and alignment. These characteristics affect the finer statistics that define the abilities of the character.

Gender can be male, female or aescetic. Race can be human, elf or dwarf (these are placeholder names for something more interesting). Alignment can be lawful, beatific, chaotic or nefarious (pick one).

Thus, there are 36 combinations of gender, race and alignment. These combinations affect character statistics in reasonably predictable ways, though for game balance reasons I'm reaching a little bit here and there. 

Each unique combination of race and alignment produces a class, which is more or less the character's profession. At this point there's no restriction on what you can do as the member of a class, except that your stats may make certain playstyle choices superior to others. My gross simplification here is that you'll choose a class which provides a starting "dice roll" for your stats so that you can start playing the way you want to play right away.

There are twelve statistics, grouped into four sets of three as attack, defense, active and passive. The attack & defense stats are physical, magical and empathic power and resistance. Active stats are accuracy, speed and stealth. Passive stas are awareness, constitution and charisma.

Physical power and defense are basically bashing things with swords or whatever, and not being hurt by being bashed. Magic in the game will probably be based on physics effects like light, fire and electricity. Empathy is a spiritual realm that will emphasise non-physical effects like fear, healing, and buffs/debuffs.

If you are a human, you get bonuses to physicality, and a lawful human is a heavy-footed Justice and with boosts to accuracy and physical power; think of them as a traditional soldier. Beatific humans are the somewhat clumsy Chaplains who get more awareness and constitution; these are also fairly powerful fighters but emphasising defense with healing abilities. Chaotic humans are the fragile and light-footed Tinkers with high resistance to debuffing. The cautious Assassins are nefarious humans with their devastating stealth and accuracy.

In the cerebral and magic emphasising elven realm: if you're lawful, you are a physically weak Scholar with high accuracy and charisma; your reputation preceeds you everywhere. Beatific elves are your 'glass cannon' Mystics with little defense but tremendous magical output. If you suffer from ADD you are probably a chaotic elf Pixie with the highest speed stats in the game, though you do have a hard time paying attention with a tragically low awareness. Nefarious elves are the half-dead Necromancers with their very high physical defense; their slow stealth makes them exceedingly dangerous in the dark.

Our dwarves are part of the earth and all living things and accordingly their stats reflect high empathy. Lawful dwarves are Mechanists whose accuracy and defenses are quite high, though the clanking of their armour does hinder any stealthy activities. Beatific dwaves are the aetherial Earthborn with dramatically powerful empathic abilities, though they are somewhat weak to magic. The chaotic Hermit with its quick reflexes and the highest awareness in the game is not one you'll sneak up on. Lastly, the nefarious Thief uses its natural abilities to blend into the environment mostly for selfish purposes. 

From a game balance point of view I have everything worked out on the spreadsheets, though that isn't what worries me. What worries me is the need to ensure that when these characters encounter each other in battle that the fights are more or less evenly matched, not necessarily between individuals, but broadly across classes. For example, I can't imagine a specific hermit winning a battle against a justice, but hermits in general should be able to defeat 4 other classes, be evenly matched against 4 others, and regularly lose to the others. 

What I want is for each particular class to find a different natural "groove" through the game, so that there are 12 different playstyles to be explored. Which will be a good thing as there are intended to be 12 major stories to be told (about which more much later).

To the end of game balancing, I'll be running probably millions of simulated battles as I simultaneously adjust what the stats mean, what battle tactics are included, how powerful the AI should be, and how all this stuff interacts. And I'll probably keep running it over, and over, and over, as the engine evolves. Balance is going to be the hardest part of the project, and I know it.

Anyway, like I said at the beginning, it's an ambitious project, but as far as I'm concerned right now, the journey is the interesting part. If a great game comes out the other end, that's great. 

MORE
11/8 '14 3 Comments
This sounds like a game I might be interested in playing.
Nice! I'm not sure I buy beatific dwarves. Maybe it's the decision to call them dwarves that brings along too much baggage for me.
I think I want to play this.
 

In a comment on my last postStacey asked what video games I liked.

In general, I like video games with strong stories and stronger gameplay. I like games that challenge me physically and games that require me to learn new skills. I like to fail before I succeed, as long as the failure is fair and due to my own incompetence. I like the freedom to explore, especially in varied environments. I like the freedom to make my own choices, and to have those choices affect things in the world. 

These general rules generally shove me in the direction of action-oriented role-playing games. Unfortunately, most of the mainstream games made for a Western audience do not hold my interest. With these titles I will quickly acquire the dexterity needed for basic gameplay, and then find that my in-game progression is gated by the skills my character has rather than my own skills. At this point the game's essence has become an Excel spreadsheet. 

It's not a hard and fast rule; I'm willing to juggle numbers for a while if a game has a great story or an intriguing setting. But it isn't really why I'm holding a controller. Great stories can be found in movies, books, and on stage. Great video games to me, on the other hand, are great games first, with everything else supporting that.

And yeah, I get that not everyone wants to be doing precisely timed button mashing on their day off. It's cool, really. The question is "what do I like" and so I'm saying that when I choose to play, I usually choose to play something that will challenge me in ways that no other form of entertainment can.

So here's my top three. 

Dark Souls, Fromsoftware; PS3, 360, PC. I have played this game more than any other game, because it not only challenges me physically, but because it brilliantly tells a compelling story in an intriguing world where actions matter -- almost without telling the player anything at all. There are almost no cutscenes. Just a few hundred lines of dialogue scattered among dozens of NPCs. Everything you learn, you'll learn by picking up little tidbits of information here and there on weapons and other items you find, and by thinking about the structure of the world and why it's arranged the way it is. Dark Souls has some faults, but if you can muster the skill and determination to get through it -- because it is hard as hell -- it is immensely rewarding physically, intellectually and emotionally. If you want to imagine the storytelling in most games as someone sitting you down to read you a biography, then in maybe in Dark Souls you've walked into the house of someone's who's died and over the course of looking into every corner and reading every scrap of paper you come to an understanding of who they were.  

Demon's Souls, Fromsoftware; PS3 only. The predecessor to Dark Souls. The combat isn't quite as tight, the story isn't quite as compelling, some of the bosses are kind of cheesy, but the level design is the best I've seen bar nothing. And there's one boss fight in particular that will probably make you scream or cry that it's it's just so fucking unfair that good people nevertheless come to bad ends. It's just as hard as Dark Souls, in some ways even harder. If you play one of these games, probably play Demon's Souls first because it's a little more accessible from a storytelling point of view -- there's a definite arc and progression. Where Dark Souls almost propels you forward due to curiosity and level design, Demon's Souls is a more contemplative game, encouraging you to explore each area thoroughly so you don't miss anything.

And then there's a fairly wide gap in preference and we come to...

Dragon's Dogma Dark Arisen, Capcom; PS3, 360. A wide-open-world RPG with intriguing quests, enormously varied foes and some really brilliant battle and gameplay mechanics. It does have the flaw of being a little "spreadsheety" in that equipment configuration matters more that I'd like; it's too easy to get to the "press X to win" level of power; but that didn't stop me from playing through it half a dozen times at many hours each in a particular mode of play called "Bitterblack Challenge" where you eschew the main storyline at level 1 and go right to the DLC, which is suggested for players level 20 and up. I must also say the music for Dragon's Dogma is among the best video game music I've ever heard, easily on a par with the best movie soundtracks, and the enemy AI is at times startlingly realistic. The main storyline is pretty good, and your decisions do matter somewhat in the course of the world's unfolding.

I have several thousand hours in these three games.

After these three another wide gap where we find all other games I've played through to the end at least once, like the various Final Fantasy epics, Mass Effect(s), Journey, Dragon Quest(s), and so on. Bard's Tale on the iPad was fairly enjoyable, but still too equipment-centric. I'm currently playing Bayonetta which is much more like a combo-centric arcade fighting game than an action RPG, but I'm still enjoying it.

There are also a lot of action/rpg games which probably fit the style of play I like but that I flat-out refuse to engage with beacuse of overt misogyny. That's why I haven't mentioned titles like Red Dead Redemption or GTA or Saint's Row or God of War or Hitman or ... whatever, the list goes on. There are many, many games that I might like but will never play. I also prefer RPGs where I can customise my avatar, and haven't much tolerance for games which force me to one face or one gender.​

MORE
11/7 '14 1 Comment
Don't lie. You just like games with lots of "D" in the title.

Based on your previous posts, I picked out a game for myself, played it a bit, and ended up watching while my spouse played it because he's better at shooting things than I am. It also made me really seasick.

The game was Alan Wake; writer & his wife go on vacation in the Pacific Northwest, wife mysteriously gets kidnapped by evil supernatural force, writer has to battle supernatural demons, find wife & gather pages of a manuscript he doesn't remember writing.

Not bad, although I wanted more puzzle and less shooting. My point is that it was a story game and you might want to check it out. or not. YMMV.