pokejs #1: Introducing pokejs!

This is a project I’ve been thinking about for a while.  Come check it out.

Here’s the long and short of it (you can also read this in the project’s README on GitHub):

Goal:

The goal for this project is to create a lightweight, browser version of the 1996 Nintendo game Pokemon. The game will be initially created in the style of the original Pokemon Red and Blue, but made highly modular to support multiple versions of the game engine, graphics and UI, rules, and Pokemon set.

Purpose:

The purpose for this project is not to replace Pokemon or get people playing the game in browser instead of on the 3DS, but rather to investigate the behind-the-scenes mechanics that make the game so great and timeless, and eventually carry the lessons learned over into a new game.

Architecture:

The program itself will be VERY modular.  I want everything to be able to be easily switched out, from battle logic to monster code and from movesets to tilesets.

The repo itself is currently divided into three branches: the master (of course), which will be reserved for finalized code; the “overworld-engine” branch, and the “battle-engine” branch.  We’ll work on each part separately and merge them in later.  Eventually, we’ll see branches spring up for all of the project’s features.

Roadmap:

  • Build complete battle engine
  • Build battle engine UI and sprites
  • Build “overworld” engine
  • Build “overworld” UI and sprites
  • Add all Generation 1 Pokemon
  • Tweak battle engine to match the modern version’s more expansive ruleset
  • Add Pokemon from generations 2-7
  • Build the complete Gen 1 Kanto region
  • OAuth login for game saves
  • “New Game” options, including Support for an “enforced” Nuzlocke run (including variant rules)
  • Mobile interface
  • Build various visual interfaces that mimic generations 2-7

Testing Assets:

We’ll begin testing the battle engine with only three Pokemon evolution lines (the Bulbasaur, Charmander and Squirtle lines, of course). This will limit the number of Pokemon and moves to a manageable size while giving a good, representative amount of diversity to the testing.

The overworld will begin testing with only Pallet Town, the brief path of tall grass to the north, and the short stretch of ocean to the south; but we will make the NPCs in the town battleable to test the integration between the overworld engine and the battle engine.

A note about the é:

Yes, the word should actually be spelled with an accent (Pokémon), which means that the name of this project should be “pokéjs” and the code should include accents wherever the monster or game is mentioned. While the game’s title screen, UI, and dialogue will all use the correct form, I’m an English-speaking American developer, which means that the code itself will be limited to characters that actually appear on my keyboard. A keyboard that doesn’t include é, unfortunately.

The Adjustment Bureau

adjustment-bureau-planToday’s Redeeming Culture post is about the 2011 film The Adjustment Bureau.  It’s a beautiful romantic action film, and I love it quite a lot.  In fact, back in 2011, I did a Film and Theology event about it.  Here are the notes (be aware, there are spoilers!); let me know if you think today’s article is any better.

Film and Theology #9: The Adjustment Bureau

 

Welcome and Explanation

  1. Welcome to F+T #9!  To start, a strange question: Why are you here?
    1. Did you choose to come here?  Were you forced, coerced?
    2. Or has your presence here been planned from the beginning?
  2. The Bible: all of history has been a story, told by a Master Storyteller
    1. Even your life has been a part of that story from the beginning
    2. Not a story about you, you’re only a character
    3. Grand epic; action-packed thriller; fantastic romance
  3. Everything we create echoes the story we’re a part of
    1. That’s what F+T is all about:
      1. Examine culture
      2. Discover: what can we receive, reject, redeem?
    2. Exploring entertainment: it’s not mindless, it’s a reflection of the author
      1. Create and Enjoy: reflections of the story God has put inside each of us.
      2. Intentional or not, everything images that.
  4. Tonight: The Adjustment Bureau.
    1. Released this year, short story written in 1954.
    2. Tackles questions that humans have been wrestling with since forever.
  5. What are those questions?
    1. Why do things happen the way they do?  (That is, is it chance or a plan?)
    2. If there is a plan, do I have a part in it?
    3. Do I have free will?

 

— Prayer —

— Movie —

 

Explication:

 

  1. Based on Philip K. Dick’s 1954 story “Adjustment Team”
    1. Dick’s work often focuses on the nature of reality, humanity, life.  (Existential)
    2. His sci-fi work inspired Blade Runner, Total Recall, Minority Report, etc.- all works about the question of what reality is, what the point of life is, and what it means to be human (or a complete human).
  2. This movie raises some interesting questions.  Surprisingly, that’s the point.
    1. Writer/Director/Producer George Nolfi – “The intention of this film is to raise questions – that’s what art should do.”
    2. Doesn’t have to be a Christian movie to raise questions that matter eternally.
      1. Perry Noble: “Jesus didn’t die to make songs Christian” – or movies.
      2. God writes desires & stories on our hearts – what we create/enjoy expresses them, explores them.
    3. What questions?
      1. Some films raise very basic questions: Am I loved, Can I be rescued?
      2. Some are tougher/deeper: React when I’m wronged, abandoned?
      3. Some are even philosophical: What is truth, what is worship?
      4. We’ve looked at all of these over the past year.  But this one:
        Is there a plan?  What is my part in it?  Do I have free will?

 

  1. Is there a plan?
    1. Many would say no.  (Chaos Theory, random chance, etc)  But the Bible says there is, and there’s proof all around.
      1. Psalm 19:1: “The heavens declare the glory of God, and the sky above proclaims his handiwork.”
      2. Romans 1:19-20: “For what can be known about God is plain to them, because God has shown it to them.  For his invisible attributes, namely, his eternal power and divine nature, have been clearly perceived, ever since the creation of the world, in the things that have been made.”
      3. Creation is a testament to God, His existence, and His hand in the creation of the universe.
        1. Darwin: “To suppose that the eye […] could have been formed by natural selection, seems, I freely confess, absurd in the highest degree.”
        2. Einstein: “Try and penetrate with our limited means the secrets of nature and you will find that, behind all the discernible laws and connections, there remains something subtle, intangible and inexplicable.”  Beauty, elegance, impossible complexity were proof enough for him.
      4. The Bible, scientists, the sky itself all agree: God exists, and has made a plan for the world.
    2. What is the plan?
      1. David is told that the plan is just to keep the world together.  True?
      2. Habakkuk 2:14: “For the earth will be filled with the knowledge of the glory of the Lord as the waters cover the sea.”
      3. Romans 11:36: “From him and through him and to him are all things. To him be glory forever. Amen.”
      4. Plan: That the glory and goodness of God would cover the earth, and that everyone would understand that God is good.  So much bigger than survival, which is the Adjustment Bureau’s (Chairman’s) plan.
  2. Do I have a part in the plan?
    1. David had a part in the plan the Chairman wrote.  But while it was the best for the world, it may not have been the best for him.
    2. But Jeremiah 29:11 says God’s plan is a good one; peace, hope and a future.
    3. Colossians 1:23, Matthew 28:18-20 say that God’s plan for our lives is to be ministers of His gospel.
    4. 1 Corinthians 10:31 says everything we do should be to His glory.  (dinner, movies, games, work, etc)
      1. What does this mean?
      2. Love, trust, thank, obey Him.
      3. Advance the cause of the Gospel
      4. Do everything He commands

 

  1. So, (in light of that) is there such a thing as free will?
    1. Thompson: “You don’t have free will, David.  You have the appearance of free will…you have free will over which toothpaste you use or which beverage to order at lunch, but humanity just isn’t mature enough to control the important things.”  Is this true?
    2. What we see as “free will” isn’t actually.
      1. Romans 8:7-9: “The mind that is set on the flesh is hostile to God, for it does not submit to God’s law; indeed, it cannot. Those who are in the flesh cannot please God.”
      2. 1 Corinthians 2:14: “The natural person does not accept the things of the Spirit of God, for they are folly to him, and he is not able to understand them because they are spiritually discerned.”
      3. We’re not free to do whatever we want.  We can’t follow God, even if we want to, on our own.  We’re slaves to our sin.
    3. No way out on our own.  Our power is insufficient.
      1. We are trapped, chased from all sides by an enemy- our sin – which is more powerful than we are.
      2. And there’s no chance of “getting to the blue door” without the help of a being greater than us.  We need more than a hat.
    4. Good news: He has given us power (Holy Spirit) to do all He has commanded (Acts 1:8) – not only power but desires and guidance.
  1. So what does this all mean?
    1. In the end, David gets what he wants.  He and Elise get to write their own path.
      1. But if we’re slaves to sin, is that the best outcome?  I don’t think it would.
      2. Our own path would lead us directly to death.
    2. There is an author:  All-powerful, all-knowing, all-loving.
      1. He can spin the universe into existence, he can give us what we need
      2. The future isn’t an unknown for Him, it’s a place where He is
      3. He loves us more than we could comprehend.
    3. Here’s how much.
      1. When He proposed that love to His people, the forces of Satan did all they could to keep Him from us.  They sent all of their agents to adjust His path.
      2. But He sent His son into existence and made a mad dash for us.
      3. We were moments from giving in (marrying less); He came for us, showed us the truth behind the curtain, a land of wonder and amazement.
      4. And then He made His own way, dying on the cross, sacrificing everything to be with us.  (I’d rather die than live forever without you)
      5. Then He rose!  And with that, He was given a blank page.  His path has become our own.  Join Him, the one who loves us – and be free!

 

— Prayer —

–Discussion Questions —

 

  1. Do you believe that you have free will?
  2. What sins are keeping you from being a part of His plan?
  3. He sacrificed everything for you, for love.  What will you risk for Him?

Season Finale of Football

I’ve watched the NFL in the past, but this year I didn’t really follow any games.  My wife hates football, and I don’t love it, so usually I see a couple of Colts games but nothing else.

So on Saturday, I posted this on Facebook:

The season finale of football is tomorrow. I haven’t seen the rest of the season…will I be lost? Should I wait until it comes out on Netflix? No spoilers please!

I thought it was witty, and I figured it would end there.  But then a friend of mine actually replied.

Sure thing, David!

At the beginning of Season 50 of Days of the National Football League, one of the most infamous heels dominated the story line. This character, Tom, was always picked last in gym class, but now he’s married to the homecoming queen and everyone else kinda resents his success. It’s not that he’s rubbing everyone’s face in it, as that would be weak writing, but he’s done a couple shady things in the past that haven’t quite caught up to him. Surveys show that viewers have mixed feelings about this character.

Anyway, the organization that Tom’s boss works for decided to put out a report that would finally get Tom into trouble. Tom’s boss didn’t like this, so he got a bunch of really smart scientists to say that the report wouldn’t hold up. Remember, all of this is in the premiere episode! Unfortunately, the next couple episodes get bogged down because it turns into a courtroom drama. (SPOILER: Long story short, Tom gets off again.)

Tom also has this coworker who is a bit of a rival. His name is Peyton. They have a nice love-hate relationship, but Tom always gets the promotions at work because Peyton is a little old and never quite finishes his work. Viewers really like Peyton, and they’ve been rooting for him to have one big victory before he’s got to retire. In this season, he and Tom had essentially, to use an appropriate analogy, a chicken parmesan bake-off. Peyton’s team members really did an awesome job and kept distracting Tom during the competition, so now Peyton is really, really close to this awesome promotion he’s been waiting for. Viewers are on the edge of their seats!

The only problem is this hot-shot young kid came out of nowhere. Last year he nearly died in a car accident and now he’s practically been touched by an angel. His team is just impressing everyone in the office. This kid has all the storyline of Tom without the baggage, and he has some of the positive fan support that Peyton has. So now they’ve got to go against one another in the season finale. In my opinion, though, the penultimate episode featuring Tom and Peyton had stronger writing and more at stake.

There’s a lot of other minor characters, but they won’t be in this episode. This is a shame because there’s a lot of backstabbing and political intrigue. One of the characters dressed up in a disguise in one episode so that they could go to a party without anyone noticing. Another guy has been stuck at a desk job because his boss doesn’t believe in him even though everyone thought he was going to be awesome. His boss actually put him into a really dangerous situation and then blamed the guy for getting into trouble.

The plotlines are a bit tired sometimes, but the character arcs are to die for. I’d give it a 7/10.

Brilliant work, sir.  You’ve made it even more unbelievable that the NFL isn’t scripted.

“Millennial”

I hate the word “Millennial.”

I’d been feeling that way for quite a while before John Green wrapped up my thoughts pretty well in this letter to the World Economic Forum.  I reposted the article on Facebook with the caption:

Millennials are just young people (people 18-34ish); young people are always criticized for their laziness and entitledness. The parent venerates their elders while degrading their children. It’s just the cycle of things. But in the Internet world, this is amplified because both the Millennials and their parents are on Facebook.

17767819718_bc0c8b580b_oThis post generated a little bit of discussion between myself, my sixth grade teacher, my brother, and a former coworker of mine.  (Facebook is weird)

But the word “millennial” has been following me, and I have several problems with it.  After discussing with my wife, I think I’ve nailed the problems down to the following:

Problem the First

My first problem is that the word has a massively (and perhaps intentionally) vague definition.  I was born in 1985; am I a millennial?  According to the original definition, yes; but many of the articles denouncing millennials are written by people my age, about today’s high schoolers and college students.  My son was born in 2014; is he a millennial?  How can both I and my child be members of the same generation?

As a result of this vagueness, many bloggers and meme-makers have used the word to mean “people I don’t like who are younger than me.” It’s become a touchstone for Gen-Xers to use to criticize their children’s generation. Of course the idea that the elder criticizes the younger is nothing new, but it seems to have taken on a new virulence since both elder and younger in this case are on Facebook.

Problem the Second

Secondly, the word is imbued with a very specific theoretical person: Selfie-obsessed teens and twentysomethings who can’t keep their eyes off their smartphones, want everything to be handed to them on a silver platter, and don’t care about the real world or real people. The problem with this is that I don’t think that this straw person really exists, at least not at the scale that most bloggers would like us to believe.  Now, of course the pastiche must certainly be accurate for some. Stereotypes are driven by some element of truth, and I’ve definitely met some people who match – even some older people, people my parents’ age who use technology horribly and are always stuck in their phones.

ITU/Rowan Farrell

But almost every Millennial I know well (no matter what definition you choose) is driven, caring, and sees the world in a diverse and colorful way. They want a lot from the world, sure, but they’re willing to work for it, and they’re facing significant challenges that are different (though not always harder) than those previous generations faced.

Problem the Third

Finally, the word simplifies the problem and doesn’t offer any solutions. It’s often noted, for instance, that Millennials are more unemployed or underemployed than the previous generation; but it ignores the root causes of that phenomenon, such as the 2008 recession and an increasing number of college graduates flooding the entry-level workforce.  It ignores the fact that jobs are becoming available more slowly, because older workers aren’t retiring and freeing up positions.  It ignores the fact that many of the “old guard” companies are drying up and the up-and-coming industries aren’t making enough money to hire new people yet.  It ignores the fact that automation and outsourcing means that local skilled jobs are hard to find.

It also doesn’t present any serious ideas for shoring up the issue (“work harder” is often thrown out there, and that’s hardly a viable option; “put yourself out there” is also something I see a lot, and that doesn’t help either). Rather than finding a solution, the word is usually used to denigrate people as lazy and apathetic, when the truth is often the opposite.

So, in short: it’s a massive, vague oversimplification that people are using to criticize without offering any real solutions.

I originally wrote out those three problems with the word “millennial” in response to a really great article by local author Ben Shine on Sky Blue Window, which ends with this particularly beautiful line:

It’s not my job to tell an entire generation what music they should like. I’d rather be curious about what they create or why they like what they like. Irony is much more boring, in the end, than someone who takes the time to figure out what is appealing about a Katy Perry song. Or about David Bowie.

The Result

But so many people don’t want to be curious like Ben, they just want to use “millennials” as scapegoats.  Like this Facebook commenter, whom I don’t know and will remain anonymous.  They replied to an article I read and rather liked about the new Star Wars film, The Force Awakens.

The world is no longer interested in stories, just propaganda after propaganda. Like the past was so horrible and only the present is so cool. As if the present generation of arrogant selfie obsessed kids have a chance in hell to survive the real world intact.

This got my blood boiling, because I have several friends who are in this generation he so carelessly dashed off.  I replied.

Uh…what?

The Force Awakens is popular because it’s more like the original trilogy, which was popular because it was more like old sci-fi movie serials, which were popular because they were like campfire tales. The oldest stories are always popular. They endure. They’re evergreen. TFA is just the latest expression in this ongoing world.

As for “arrogant selfie obsessed kids”- clearly you don’t know anyone from this generation, or at least not a representative sample. Many of them care more, help harder, love better, and work harder than a lot of people from the so-called “greatest generation”- you just hear more about the selfie-obsessed ones because you’re on Facebook.

The selfie generation will be the ones to colonize space, if we do things right. And they won’t do it because they’re selfish. They’ll do it because they love stories like Star Wars.

And I truly believe that. That’s why it gets on my nerves that so many people are writing thinkpieces about millennials without actually knowing any of them (or really even knowing what they are).  It bothers me that they oversimplify struggles and underrepresent the contributions they’re making.  But I think the worst part is that they’re pointing out problems without offering solutions, or even believing that there are any.  Good luck getting anything done that way.

• • •

Other recommended viewing: A few days ago, John Green’s brother Hank replied to his article with a video:

I don’t know that I agree completely, but I certainly agree enough.

RC Post: “Hope through Failure and Success”

My RC post for today is a result of an amazing coincidence God thing.

My wife and I teach Sunday School to middle school students at Redeemer Presbyterian Church in Indianapolis, and we’ve been going through a curriculum this year called “What’s Up.”  It’s pretty good, theologically, although incredibly corny at times and pitched for a much longer class session than we have at our disposal (seriously, what middle school Sunday School class gets 120 minutes?!).  But overall, we’ve enjoyed the journey.

As usual, we took the weeks before and after Christmas and New Year’s off.  On our first Sunday back, the lesson was about the Prodigal Son and his older brother.  And when I mentioned the desire to change oneself, to make oneself better, I suddenly realized how crazy we all get around the world with new year’s resolutions.

Some research, discussion with my wife, and supernatural inspiration later, and this post was born.  I really like it, and would appreciate your comments if you have any.  Thank you!

Writing Prompt: Whenever you get chills, you just died in an alternate universe.

Originally posted as a response to a Reddit writing prompt.

• • •

I was tapping away, excited. Finally I’d cracked this algorithm, and now my code was flowing freely from my fingers into the editor. The moments of breakthrough really made being a programmer a joy.

Save. Commit. Now I just wait for the compiler, and…

That’s when it happened. A shudder ran through my body, starting in my chest and shaking my whole being.

I looked to my left. My cubicle-mate was just looking at me. “Woo,” he said.

“What?”

“Just got the chills.”

I narrowed my eyes at him. Then the guy on the other side of the cloth half-wall of the cubicle stood up, with a pretty similar expression on his face. “Me, too.”

“I felt it, too,” I admitted. And one by one, like prairie dogs, my coworkers began poking their heads up, pulling out earbuds, agreeing that they had felt the same thing. It had started with me at 1:24 PM, and by 1:35 everybody in my building had felt it. Some had just thought the heat had been turned off, but we all soon realized that this was something different.

We evacuated the building, assuming that something was in the ventilation system or something. But as we started talking to people in neighboring buildings, we realized that this had happened to everyone. Every single person in the city. Bus passengers, line cooks, taxi drivers, investment bankers, tourists, professional athletes.

Someone near me showed me their Facebook feed on their phone. People were freaking out on the social network, as they realized that everyone they knew had experienced the same thing at the same time. It wasn’t just in our city, either; people on the other side of the planet were posting about the phenomenon. Everybody had gotten the chills around 1:30 PM EST. The earliest time reported was like me, at 1:24. The latest, 1:37.

By 3:00 it was a worldwide trending topic on Twitter. All of our local news stations had posted something about it. I caught a bus home, because there was no way in any universe that I was going to get anything else done today. The bus was packed, unusual for being so early. Everybody wanted to get home to their families. Everybody had felt the same chills at the same time.

A post in /r/science by a doctor talking about the phenomenon hit the front page, but he didn’t have much to say that really answered the problem. I tried to text my wife, but she didn’t answer. Not unusual. Probably left her phone upstairs again.

When I finally got home, I saw her happily playing with our toddler in the living room. She looked at me, confused. “You’re home early.”

“Yeah, well, when that thing happened this afternoon, I just wanted to be here with you.”

Her eyes searched mine. “What thing?”

“Didn’t you see? Everybody got the chills at once.”

She looked even more confused.

“Not me.”

What?!? Why are you doing this?

David.  You already HAVE a blog.  You can sometimes barely keep up with deadlines there.  WHY on EARTH do you need another one?

So, I started publishing Redeeming Culture articles weekly in September of 2014, about a month before my son Calvin was born.  By God’s grace, I haven’t missed a week since.

And it’s been an incredibly fulfilling experience.

But I can’t talk about everything on RC.  I’m a programmer and hobbyist designer, for example, and that stuff doesn’t usually appear on RC.  My life is not more than the glory of God, but it is more than exploring that glory in culture we create.

So everything else goes here.  (For more information on me, and what “everything else” means, click this link here.  No, not here, go back to the underlined words before this sentence.)

Don’t worry, this site won’t be nearly as frequently updated as RC is.  Although from time to time, if I have something interesting to say, I might post something about a recent RC article.

But I hope you have fun here.  If I do, everything is going as planned; if you do, I’d be ecstatic.  Enjoy!