Amygdala is a platforming action-adventure game in which a disembodied head ventures forth into a mystical world of treacherous obstacles, cunning traps and dastardly enemies to confront the wizard that stole his body.
The game is built for desktop and Android using LibGDX, Box2d and a modified version of Box2dLights for display at the Indie Games Room at Avcon 2013. I roped Sam Entropy(Sam Morris) and Blackwoolholiday(Emily McAllan) to help me with the code and art respectively. It features a large menagerie of enemies and dynamically generated levels with multiple themes. My role as project instigator was to head the design and implementation of the game’s core mechanics and play style and it’s various mobs. The game received an hugely positive reaction on début at the Indie Games Room and launched on October 17 2014 on Windows, Mac and Linux on October 17 2014.
Like something you’d find on one of those soft/nature blogs?
Well you are in for a surprise
The Bolton Strid in England is one of the most innocent looking streams.?
Though it looks like you could just hop across the rocks, but if you miss you will die for sure. It packs very rapid currents just a couple of feet below its surface. No one really knows how deep it really is. Nobody who has ever fallen into the Strid has survived. It has a 100% fatality rate.
It’s always the things I google expecting to be false that wind up being horribly true.
"It’s relatively common for people to assume they can jump the creek, walk across its stones or even wade through it (again, just looking at it, the Strid really seems to be only knee-deep in places, and certainly not the instant, precipitous drop into a watery grave that it is). Most of the time, they never even find the body. Which means there are just dozens of corpses down there, pinned to the walls of the underground chasms, waiting for you to join them…"
how dare you leave out the best quote
“It’s exactly how water works in a video game: It looks all stupid and harmless, but the second your foot touches the surface, you get some bullshit drowning animation and die instantly.”
Have you ever seen something completely baffling but also technically excellent? I can’t believe how well this person edited Jane into Treasure Planet so she and Captain Amelia could fight the bad guy from Osmosis Jones. “Man,” I say to myself, “I could never make this bizarre music video about beloved animated characters becoming ghosts.”
I was back in N?rnberg last week for the second border:none. Joschi tried an interesting format for this year’s event. The first day was a small conference-like gathering with an interesting mix of speakers, but the second day was much more collaborative, with people working together in “creator units”—part workshop, part round-table discussion.
I teamed up with Aaron to lead the session on all things indie web. It turned out to be a lot of fun. Throughout the day, we introduced the little building blocks, one by one. By the end of the day, it was amazing to see how much progress people made by taking this layered approach of small pieces, loosely stacked.
The first step is: do you have a domain name?
Okay, next step: are you linking from that domain to other profiles of you on the web? Twitter, Instagram, Github, Dribbble, whatever. If so, here’s the first bit of hands-on work: add rel="me" to those links.
If you don’t have any profiles on other sites, you can still mark up your telephone number or email address with rel="me". You might want to do this in a link element in the head of your HTML.
As soon as you’ve done that, you can make use of IndieAuth. This is a technique that demonstrates a recurring theme in indie web building blocks: take advantage of the strengths of existing third-party sites. In this case, IndieAuth piggybacks on top of the fact that many third-party sites have some kind of authentication mechanism, usually through OAuth. The fact that you’re “claiming” a profile on a third-party site using rel="me"—and the third-party profile in turn links back to your site—means that we can use all the smart work that went into their authentication flow.
If you’ve used rel="me" to link to a profile on something like Twitter, Github, or Flickr, you can authenticate with their OAuth flow. If you’ve used rel="me" for your email address or phone number, you can authenticate by email or SMS.
Next question: are you publishing stuff on your site? If so, mark it up using h-entry. This involves adding a few classes to your existing markup.
Having fun with @aaronpk, helping @border_none attendees mark up their sites with rel="me" links, h-entry classes, and webmention endpoints.
Now, the reason for doing this isn’t for some theoretical benefit from search engines, or browsers, but simply to make the content you’re publishing machine-parsable (which will come in handy in the next steps).
Aaron published a note on his website, inviting everyone to leave a comment. The trick is though, to leave a comment on Aaron’s site, you need to publish it on your own site.
Webmention is basically a reimplementation of pingback, but without any of the XML silliness; it’s just a POST request with two values—the URL of the origin post, and the URL of the response.
My site doesn’t automatically send webmentions to any links I reference in my posts—I should really fix that—but that’s okay; Aaron—like me—has a form under each of his posts where you can paste in the URL of your response.
This is where those h-entry classes come in. If your post is marked up with h-entry, then it can be parsed to figure out which bit of your post is the body, which bit is the author, and so on. If your response isn’t marked up as h-entry, Aaron just displays a link back to your post. But if it is marked up in h-entry, Aaron can show the whole post on his site.
Okay. By this point, we’ve already come really far, and all people had to do was edit their HTML to add some rel attributes and class values.
Once you have a webmention endpoint, you can point to it from the head of your HTML using a link element:
Now you can receive responses to your posts.
Here’s the really cool bit: if you sign up for Bridgy, you can start receiving responses from third-party sites like Twitter, Facebook, etc. Bridgy just needs to know who you are on those networks, looks at your website, and figures everything out from there. And it automatically turns the responses from those networks into h-entry. It feels like magic!
That was mostly what Aaron and I covered in our one-day introduction to the indie web. I think that’s pretty good going.
The next step would be implementing the idea of POSSE: Publish on your Own Site, Syndicate Elsewhere.
You could do this using something as simple as If This, Then That e.g. everytime something crops up in your RSS feed, post it to Twitter, or Facebook, or both. If you don’t have an RSS feed, don’t worry: because you’re already marking your HTML up in h-entry, it can be converted to RSS easily.
I’d really like to POSSE my photos to Instagram, but that’s impossible. Instagram is a data roach-motel. The API provides no method for posting photos. The only way to post a picture to Instagram is with the Instagram app.
My only option is to do the opposite of POSSEing, which is PESOS: Publish Elsewhere, and Syndicate to your Own Site. To do that, I need to have an endpoint on my own site that can receive posts.
Working side by side with Aaron at border:none inspired me to finally implement one more indie web building block I needed: micropub.
Having a micropub endpoint here on my own site means that I can publish from third-party sites …or even from native apps. The reason why I didn’t have one already was that I thought it would be really complicated to implement. But it turns out that, once again, the trick is to let other services do all the hard work.
First of all, I need to have something to manage authentication. Well, I already have that with IndieAuth. I got that for free just by adding rel="me" to my links to other profiles. So now I can declare indieauth.com as my authorization endpoint in the head of my HTML:
Now I need some way of creating and issuing authentation tokens. See what I mean about it sounding like hard work? Creating a token endpoint seems complicated.
But once again, someone else has done the hard work so I don’t have to. Tokens-as-a-service:
The last piece of the puzzle is to point to my own micropub endpoint:
That URL is where I will receive posts from third-party sites and apps (sent through a POST request with an access token in the header). It’s up to me to verify that the post is authenticated properly with a valid access token. Here’s the PHP code I’m using.
It wasn’t nearly as complicated as I thought it would be. By the time a post and a token hits the micropub endpoint, most of the hard work has already been done (authenticating, issuing a token, etc.). But there are still a few steps that I have to do:
Make a GET request (I’m using cURL) back to the token endpoint I specified—sending the access token I’ve been sent in a header—verifying the token.
Check that the “me” value that I get back corresponds to my identity, which is https://adactio.com
Take the h-entry values that have been sent as POST variables and create a new post on my site.
But its worth remembering that these are just implementation details. What really matters is that you’re publishing your stuff on your website. If you want to use different formats and protocols to do that, that’s absolutely fine. The whole point is that this is the independent web—you can do whatever you please on your own website.
Still, if you decide to start using these tools and technologies, you’ll get the benefit of all the other people who are working on this stuff. If you have the chance to attend an Indie Web Camp, you should definitely take it: I’m always amazed by how much is accomplished in one weekend.
Some people have started referring to the indie web movement. I understand where they’re coming from; it certainly looks like a “movement” from the outside, and if you attend an Indie Web Camp, there’s a great spirit of sharing. But my underlying motivations are entirely selfish. In the same way that I don’t really care about particular formats or protocols, I don’t really care about being part of any kind of “movement.” I care about my website.
Yesterday (17th of October 2014) we released Amygdala! You can obtain it from HERE?or visit the website for more information on the game. Any other questions can be directed to myself, Ashton or Emily. Ashton and myself handle the code side of things, and Emily makes the pretty (art).
We are pretty proud of Amygdala and hope that everyone enjoys it as much as we enjoyed making it (as well as playing it)
Amygdala has officially launched! Last night, October 17th, at The Pad bar and lounge on Franklin Street Amygdala made it’s official debut. From five o’clock till late into the night people were trudging through magical realms, fighting wizards and dying hilariously and often. For us the team it was really awesome seeing people get excited […]
You sit at the restaurant with your young son, he says he is hungry.? You agree to get him dinner. You open up to the kids menu, your child is far to young for adult food. Chicken nugger stares at you from the page. You don’t understand. Your palms get sweaty and your son complains. He says he is hungry.? Your mind strains, searching for an answer in a world of sweer potato and french fried. You try to order the chicken nugger, but you cannot. The words cannot escape your lips. Your son is hungry, he complains. The waitress stares at you, her head a spinning chicken nugger, her arms swinging french fried. Your son cries the tears of a chicken nugger-less child. In your mind you scream. It is raining sweer potato now, you have french fried engraved on your left temple and you do not understand. Your son weeps in the corner, he is starving. Starving for the chicken nugger.