Can’t sleep.

Fun stuff:

  • I’ve been ‘approved’ (read conscripted) for overtime at Le Zarci.  Which means I get to work for 11+ hours straight.  Whee!
  • I’ve worked out a system of verb conjugation that (I think) naturally covers all necessary communications in Halo.  As playing FPSs only requires about five verbs (to kill, to get, to move, to take cover, and to locate), enforcing the paradigm is remarkably simple, and keeping the language very close to monosyllabic is also remarkably simple.  If only I had time to practice it with my lady.  At the very least, I can steal it for military applications in my speculative fiction.
  • Development on my Starfighter X 2D ES conversion has been going swimmingly, with the only hiccup being the closer at my day job quitting.  Leading to me being shifted to a closing shift.  And approved for overtime. Whee!  ES is precisely as wonderful as it promised to be.  It is not the silver bullet to all my development problems.  Only to about 65% of them.  The thorniest, nastiest 65%.  Praise God that silver bullets are real!
  • But toiling at my evening shift ’till the wee hours of the morning did give me brain-time to invent a system of verb conjugations that naturally covers all necessary communications in Halo.  (Specifically, the perfect, as in Latin and Greek, and a sort of present progressive that is used to indicate objectives (which, in turn, makes it the imperative in the second person)).
  • I uncovered a method of physics simulation that is both more accurate, and simpler to implement than the one I am already using.  The short form is that instead of maintaining velocity as a separate variable, it infers velocity from the difference between the current and former positions of the object (and I already track past and present positions for the purpose of collision detection, so this is literally a simplification of existing data rather than a complete rewrite).  I will probably wait until my next game to give it a go (though the change should be so painless thanks to ES, that I half suspect that if I throw my next lunch break at it, I can complete the conversion).  Advantages include:  at an arbitrary but fixed timestep it produces a motion curve that almost exactly matches the curve produced by the physics formulae one would use to describe the motion (whereas the curve produced by my current algorithm is only terribly accurate at a timestep that is infinitesimally small.)  It easily integrates collision detection, something that cannot be said of my current algorithm.  It easily integrates spring-systems, something that is an immense headache in my current algorithm.  All in all, I find it almost impossible not to code up a demo just to play with it.
  • Sony stock jumped almost nine percent during Microsoft’s XBox One unveiling.  Humorous as that is, there are other, better reasons for the jump.
  • Speaking of Sony, my panic over XNA and the XBox Indie market being phased out by Microsoft was for naught — XNA has been replicated by an independant group (and with Microsoft’s tacit blessing) in a form that compiles to bunches of other devices.  And Sony is courting the jilted indies, having waived the fee to become a developer for their mobile platform(!)  Once I’ve got a second game on XBLIG (possibly with the new physics), I am doing some major research into Sony development.

The coolest thing for last:

The Saxon is not like us Normans,
His manners are not so polite.
But he never means anything serious
Til he talks about justice and right.
When he stands like an ox in the furrow
With his sullen set eyes on your own,
And grumbles, “This isn’t fair dealings,”
My son, leave the Saxon alone.

You can horsewhip your Gascony archers,
Or torture your Picardy spears,
But don’t try that game on the Saxon;
You’ll have the whole brood round your ears.
From the richest old Thane in the county
To the poorest chained serf in the field,
They’ll be at you and on you like hornets,
And, if you are wise, you will yield.

Rudyard Kipling, or so I am led to believe.

 

ES & Complexity

Previously, I’ve posted a meta-formula on complexity in video games designed to determine how long a game takes to make.  The idea was nice, but the premise was flawed.

Why, you say?

Because each element in a game has to communicate with other elements.  Using standard Object Oriented Programming (OOP), the reigning paradigm of computer science, that means each element has to be wired to many other elements in ways that are increasingly arcane and convoluted.

The result?  Well, suppose that e = the number of elements in a game, and c = the average complexity of those elements.  One would predict, given my former formula, that the total (t) amount of complexity of a project (and thus the time spent in it) could be expressed as:

t = ec

But Starfighter X has taught me that because of the way elements have to be wired together, the actual formula is closer to:

t = ec^(1+(w/e))

Where w is the average number of elements to which a given element must be wired.

Enter Entity Systems

There is an alternative paradim to OOP that is potentially, in many ways, superior for game development, called Entity Systems (ES).  The advantage of ES is that it removes the wiring.  The result (in theory) is that the total complexity is now closer to:

t = ec + c

And thus linear instead of exponential.

I go more into how this works on Seed of Awesome, for the code-minded.

Why You Care

Starfighter X has proven a bitch to finalize.  I thought two or three lines of code would do it.  Instead, each new element I have needed to add has taken a day.  Which means, as the only day I have open is Monday, Mondays have become ‘Finish Starfighter X Day’.

In addition, the game needs an extra level of polish before I can release it without embarrassment.

Since mi padre has given me an App-Hub subscription for my birthday, I would like to have Starfighter X up for peer-review by his birthday.  And it is possible that, because ES is linear and OOP is exponential, it would actually be faster to build an ES and copy-paste the functions from OOP Starfighter X into it, then add in the missing elements, than to simply add in the missing elements.

Today’s project is simply that:  in the couple of hours I have before bed, transfer as much Starfighter X into an ES as possible.  If this process indicates that my theory is right, then on Monday I shall continue.  If not, I shall go back to grinding away at it.

My motto should be “Quod Erat Demonstrandum, Bitches.”

Ever had one of those days when you thought of a scathing retort to something someone said to you… a month later?

The scathing retort is a device used in scripture by God and his servants many times.  You can find a fruitful exposition in text here, and a slightly less informative YouTube cartoon here, but the gist seems to be this:  there are two kinds of people with which you can interact:  those who are interested in genuine discussion (which I shall call seekers), and opponents (mockers, wolves in sheep-suits, and representatives of opposition views).  In private, you are to be gentle with seekers and you are to avoid opponents.  In public, you are to be gentle with seekers and ruthlessly verbally destroy and humiliate opponents.

This, Biblically, was not limited to enemies of the church.  God felt it perfectly acceptable to use the scathing retort on his people, and Jesus and Paul on their own followers, when the people or followers in question set themselves up as opponents rather than seekers.

Now, a month or three ago, on some popular blog, I made a comment to the effect of:

To those Christians who believe that the right thing to do is to turn yourself in or turn the offender in, be advised that the Bible actually models repentance as turning around and living in an opposite manner — thieves doing honest work in order to give to others, for example — instead.  It also advises to handle things without appealing to the authorities wherever possible (in Proverbs), and expressly castigates Christians for subjecting each other to earthly courts (in Corinthians).

To which statement some bright spark said:

Nice strawman.

While I do not have the exact link of the discussion, I remember his retort, as it was so pithy.  I also now know what I should have said, though it is too late to go back and say it, as the response would be buried under the pile of subsequent comments.

After careful consideration, the appropriate response would have been:

Perhaps you believe I omitted a comma.  That instead of “To those Christians who believe…” I meant to write “To those Christians, who believe…”.  In that case, if no Christians believed turning oneself in is the right thing to do, my argument would indeed be a Strawman, as it would characterize Christians as believing something they do not.

Since I did not include that fateful comma, the meaning of that phrase is essentially “I address the following to the subset of Christians who subscribe to this belief.”

Even if the subset is empty — if no Christians believe this — the result is not a Strawman.  It is simply addressing an argument to no-one.

A waste of words almost as severe as trying to teach logic to someone who instinctively calls arguments strawmen without thinking about it.

Quod Erat Demonstrandum, bitches.

Mind you, this is only an appropriate scathing retort because whats-his-name appealed to logic by using the term ‘strawman’.  Also because he was being sarcastic.

Had he said “That’s a strawman,” instead of “nice strawman,” the last two sentences would be left off.  No need to be sharp with someone who believes he is engaging the argument in good faith.  Show kindness to seekers.

Had he gone the other route, and kept the snark but did not appeal to logic, by saying “That’s wrong,” or “That’s dumb,” the appropriate response, in kind, would be “You must hear those words a lot, since you’ve learned to say them.”  In other words, point out the intellectual vacuity of the statement while responding in kind.  The pithier the better (this response suffers because it is a response to something shorter and snappier. )

Had the response been an email, or other private message, the appropriate response would be to delete the message and move on.  Avoid the opposition in private.

NaNo Post Mortem

The schedule my NaNo theory was predicated upon wasn’t implemented until December.  Go figure.

My sleep schedule prevented me from capitalizing on Wednesdays and Thursdays the way the theory claimed.

Mondays were eaten alive by planning sessions for my pet Sword-lover’s bachelor party (he’s not marrying a sword, though…)

In the last couple of weeks, I did the math and discovered I could not finish NaNo.  The question, at that point, became what should I do?  I never formally answered it, but did spend the rest of the time tinkering with the plot and trying to defuse fights between three of my friends.

In January, I begin work on Seed 2: Starfighter XR, unless the company chooses differently.  That gives me the following projects and potential projects:

  • Finish polishing Starfighter X.  Sounds, music, swappable controllers on the menus (already done) that lock in when you start a game (not done — only controller one has control); and prophesy art.
  • A family Christmas newsletter, with some wedding-related stuff, to send out.
  • Prepare a lecture/thingy discussing my discoveries via reading and Starfighter X, for the company.
  • Possibly get started on Starfighter XR (have a playable demo of some of the features.

Of late, at work, I’ve hit a breakthrough when doodling/writing on the topic of Spaz the Dragon, our Sonic the Hedgehog spoof for planned videogame cartoon Gritty Reboot.  (A machinima using a homebrew engine in which spoofs of popular videogame characters get stuck in a reality show).  And I really, really want to try and build Spaz as a game, or at least get some features implemented.

Problems include:  XR is more doable.  Spaz will take at least a year to make, probably closer to two.  Platformers are overrepresented on the Indie Market, and we need to differentiate ourselves.  Etc.  Also, making a spoof of what is probably the most distinctive yet under-cloned platformer in existence will be difficult from a legal standpoint — specifically, it will be hard work to ensure that it is spoofy enough to qualify as Fair Use.  Not in Gritty Reboot — the nature of the story ensure that we are good to go there — but in the standalone games, yes.

 

The big, important deals for the company go back to basic Econ, 101:  the law of supply and demand.  In order to make it as a company, we need to create games that are in demand.  Frankly, I think the best option for us is to work on making mobile RPGs — phone games with the depth of story and gameplay of, say, Chrono Trigger.  It’s a hugely underrepresented genre with, I think, an eager market.  Starfighter XR, on the other hand, has the advantages of I know I can do it, and it will be interesting enough in and of itself to make it worthwhile at least as a portfolio piece.  If we can get it into Dream/Build/Play, and do well, it can lay a foundation for the company.

sigh…

Spaz is pretty much a guaranteed no-go.

Must sleep.  Can’t sleep. Must process.

Base premise: ancient world based on Honor/Shame explicit.  Modern world:  still based on Honor/Shame, but mechanism is hidden, occluded, considered alien.

Samurai Face World:  Honor is gained by playing your role well.  ”Know your place.”  Hindu beggars crippling themselves to be better beggars is a sort of self-parody of this.  In general, though, slaves should be good at being slaves, masters at being masters, and so forth.

Modern World:  Read on some dating advice blog ages ago (with ties to the Pick-Up movement) that step one for introverts is learning social interaction, and step one in that is picking some public activity (like buying a shirt) and treating it like a role:  you are the movie extra known in the script as “Shirt-Shopper #1″.  Concept: play your role well, and you cease to be creepy (remember:  the site was giving dating advice).

Side note:  Vehemently reject the ends pickup artists pursue.  Gained respect for their concepts after watching 17 Again.  Movie mocks pick-up by having the heroe’s side-kick strike out when he attempts ‘peacocking’:  dressing and acting garishly to attract the interest of a hot girl.

I laughed too.  ”Ha, ha, what a dope.  Women don’t fall for that.”  A year or so later, I reflected that my first girlfriend was an 8, easily the cutest girl in the choir, whereas I, physically, am about a 5, but I got her to fall head over heels for me by wearing a cloak and swooping up and down hills.  Joke is on the writers.  Peacocking works at least some of the time.

Thinking over my life, I could have probably had a hot girl on my arm 90% of the time.  I actively passed over several opportunities because I judged them not conducive to my future goals (or my religious beliefs, more often).  Peacocking works almost every time, at least for me.  OTOH, I didn’t know I was Peacocking — there was a level of authenticity born from the fact that it wasn’t actually an act.

End of side note.

Main point:  Honor is accrued by assuming an accepted role within your range of available roles, and playing that role well.

This becomes the foundation of one’s authority in human matters.

“Nerd-in-a-corner” is an accepted role for tech-types and accrues honor in accordance.  That is, my word has weight among nerds; particularly those who crave tutelage in the skills I possess.  A message board moderator will come to me for animation advice; a Pixar dude will not.

For a person of the world, this will suffice.  I am not of this world.

I have, or ought to have, a role within a church body.  Which, in turn, requires playing a “church-goer” or “church-member” role.

Part of my Monday schedule was to be devoted to spiritual pursuits.  A ‘tithe’ of time and creative effort.  A YouTube catechism or some such.  Let each give according to his gifts.  If he teaches, let him teach.  & c.

Part of the issue is this concept of renewal:  studies in efficiency and productivity show that a person who does not devote time to spiritual pursuits is less productive than a person who does (even if the religion is false.  Calling Axiom.)  In theory, I would be a better writer/coder/whateverer for spending time working for a transcendent cause.

I would call it the classic mistake of monasticism, but that would be unfair to the monks who, at the very least, ministered to one-another.

God will bless my spiritual gifts or he will not.  If he does, will it not be within his designated matrix?  So let me lay aside thoughts of an animation series; if that is where God wants me to go, then I shall find myself there by following his road.

Thus, if I am to be the person God intends me to be, I must be rooted in a church.  Thus, I must wear the hat of the church-goer or church-member, and so far as my morals permit (and they will probably permit far), play the role to the hilt.  I will then accrue Honor in accordance to my performance, and from there, my contribution will flourish or not.

Jesus grew in wisdom and stature and in the favor of God and men.  Far be it from me to attempt otherwise.  (He also retreated into the wilderness from time to time.  But for now, let us focus on what we are neglecting rather than what we are overdoing).

This, in turn, leads to several other conclusions.

  1. I need to attend a church within my effective range, so that I can be available for socialization opportunities outside of regular church-attendance hours.
  2. I need to develop some social skills outside of the set useful for my professional aspirations.
  3. To the hilt.

Ad capulum.

I think I can sleep now.

Nano

I’m way behind.  If I’m gonna win this, my current setup is not going to cut it.  I need to revise my system in light of several realities:

  1. On those days when I work late as opposed to early, as I cannot control when I get home, I cannot control whether I will be going to bed an hour and a half late (as scheduled) or three or four hours late (which alters the waking hours).
  2. It may be that if I am going to tithe my creative efforts as well as my money, I will have to do it in blocks of total dedication — e.g. do an episode of Belfry with all my creative time, then spend all my creative time on my next project — in order to maintain focus and momentum.  The first time my momentum died was the first Monday, when I took an hour to work on Belfry.  Hm.

Anyway, we’ll see.  Nano is my tool for working the bugs out of my work-at-home system, but I still aim to win it.

More Politics

My Libertarian-leaning position was based on that position being the only one, thus-far, that had a logically consistent foundation.  Libertarianism holds property as the fundamental right, and the others (life, etcetera) as extrapolations of this principle.

Just in time for the elections, my pet Pastor delivered a couple of politically-related sermons.  In them, he made observations that I will sum up, to my own understanding, here:

  • The biblical role of government is to punish evil and promote good (not do good).
  • Those commandments of the 10 which are humanly enforceable are Don’t bow down to idols, Don’t murder, Don’t steal, Don’t bear false witness, Don’t commit adultery.

Since I am a believer, I am justified in taking the Bible as an axiom when devising a political philosophy.

So, supposing MagicLand appears in the clouds and a bunch of believers decides to go there and start a country.  If one were to devise a secular government, on the basis of “we are religious, but if our children are forced to choose between confession and exile, they will give lip service to God, and undermine the foundation of our country,” then we have to toss out the idolatry command.

Freedom of religion is something Americans take as granted whether we have it or not, so it seems shocking that we might consider not tossing out the idolatry command, but I think it would be easier to argue for keeping it than for throwing it.  But we will leave that argument as beyond the scope of this paper.  We are Christians, we know that no worldly government can ever be our ally, and so we are making a government that will do as little harm as possible for MagicLand.

So, using the commandments, we can extrapolate rights not to Life, Liberty, and the Pursuit of Happiness, but rather to Life, Property, Justice, and Fidelity.  These are the rights our Creator assigned us.  These, no doubt, are the rights he will be avenging on our behalf at the end of time.  The right not to be murdered.  The right to one’s belongings.  The right to be rightly represented in court.  The right to one’s spouse keeping his/her marital vows.

This influenced my vote a bit.

On the constitutional amendment for Minnesota (will we define marriage as a man and a woman?), I was prepared to vote no, simply because I didn’t think marriage was the business of government.  Now I know that it is:  it is within the Government’s mandate to punish adulterers and promote fidelity.  So I cast my vote for the amendment as a throwaway vote cast on principle.

Throwaway because it ain’t gonna happen in this state.  Throwaway, also, because it’s too little, too late.  The Government already ceded this ground when Reagan signed no-fault divorce into law.  The primary threat to marriage in the U.S. isn’t homosexuality.  It is divorce.  But we’re not fighting divorce laws.  We’re not trying to repeal no-fault divorce.  We aren’t even shaming unrepentant adulterers who claim to be part of the church — when I went to my brother’s graduation from a Christian university, I watched in horrified fascination as an openly adulterous woman hobnobbed with everyone.

So… I have a foundation for a political philosophy going.  Maybe, from there, I can work out an end, and the means by which I should attempt to achieve it.  Or, in other words, maybe I can work out a rule by which I can cast my votes instead of doing what I did this year, and agonizing (should I vote for X because he’s the least evil electable, or Y because he’s the closest to what I actually believe?).