Akismet Ate my Comments

I was wandering around the Wordpress admin interface, looking for things to improve, when I happened upon the Akismet stats page. It happily told me that it had caught hundreds of spam comments, along with some amount of ham.

Well, that’s weird, I thought. What the heck is ham? The page explained to me that ham is just normal comments. Oh that’s great, I have comments on my site! Except… I don’t actually have any comments. None of them. The comments page in the admin interface lists 0 comments, and there are near-none on any of my posts or pages.

I went on a hunt for why this is, and found several places describing how Akismet either treats normal comments as spam or eats other comments. Long story short, I removed the plugin from my wordpress install a few days ago to test things out. Lo and behold, a comment appeared on my site a day later.

I can’t say for sure if it was just coincidence or not. In any case, I was not inundated by spam in any way after I removed Akismet, so it doesn’t seem like there was any downside. Just in case, I’ve installed a simple checkbox plugin that I’ve seen work fairly well on other sites. I’ve also got some math captcha plugin that I put in ages ago.

Seems like I should be fine, and I’m getting comments again. Finally, I can realize my dream of getting flayed by blog commenters.

Project Z: A Good Engine?

I find it an absolute wonder that I can still work on programming stuff, even after working 8 hours at a programming job. Maybe it’s because after so much non-creative work, I need to start something creative. Or maybe it’s just that I’m bored. So, I start work on… something that I probably will never finish. Well, what counts is what I learn, right?

Thus, Project Z. No, this project has absolutely nothing to do with zombies. In fact, it has nothing to do with the letter “Z” at all. The only reason the letter Z is involved is that not only do “common” and “client” share a letter, but so do “shared” and “server”. What was I to abbreviate my common files? Z sounded good. Still has nothing to do with what I’m even doing, but…

This started out as an effort to port JAGS, that venerable old semester project. Sure, it was playable, but it’s written in DarkGDK, which I ended up really disliking. Plus, it’s just not a very good game. So, I checked out the source code from the last time I took a crack at it, and… well, let’s just say I spent an hour or two and decided it was best to just start over completely.

Read more...

Risk of Rain

2014-01-19_00025

Boy, is this game interesting. Despite being incredibly unbalanced in some ways and frustrating in others, it sucked up my time in a big way these past couple weeks. And I’m still not totally sure why. Maybe it’s the fast pacing. Maybe it’s the art style. Maybe it’s the excellent soundtrack.

Well, maybe I’m getting ahead of myself. I suppose first I should introduce the game, yeah?

Read more...

VPS Overview

Previously, this site was hosted on Hostable, a managed web-hosting service. I had signed up for a free 3 years with them; that was about to run out, and, cheap as I am, I wanted to look for a cheaper alternative. Actually, I didn’t find a cheaper alternative - quite the opposite - but at the same time, I was interested in finding a host for a King Arthur’s Gold server. The interests happened to coincide in the form of a VPS. Here’s my very brief experience with VPS:

Read more...

An Arch Linux Interlude

Just wanted to take some time and say that I think Arch Linux is awesome. I had a lot of trouble installing it, but it was worth it. It definitely is not for beginners, but the customizability and the always up-to-date repos make me really happy - not to mention the wiki is positively huge.

I’m probably the last one to find this out, but if you’re a developer and still suffering under Ubuntu or the like, make the switch at some point - even if it’s not Arch, just pick up Gentoo or something. You’re almost guaranteed to like it more.

Bastion - Story, Part 2

2013-10-14_00002

Been a while since the last entry in this review - schoolwork has been keeping me busy. In this point, I continue with my analysis of Bastion’s story. Last post, I covered the Kid’s trawl through the city’s main areas, what I’d consider act 1 of Bastion. We left off when the Kid discovered Zulf, another survivor.

Before we get back into it: I forgot last time to thank this guy for taking the time to extract the narration and put it in a logical format. It’s been helping me a lot in organizing my thoughts, not to mention that I’ve been copy-pasting from it for the narration. Whoever you are, know that your work is appreciated.

Alright. Now, get yourself in that frame of mind. We’ve just come back from The Hanging Gardens, and Zulf is now a part of our little group…

Read more...

Bastion - Story, Part 1

2013-09-22_00018

In this series of posts, I’m attempting to explain why I found Bastion, Supergiant Games’ first title, so compelling. Note that I say “attempting”, because I’m not sure if I could ever adequately explain why. I’m giving it a try anyway, though, so that the next time someone asks me what game they should play, I can link them 6000+ words on the subject_._ __

The first post, which covered Bastion’s pretty solid gameplay, was spoiler free, and got most of the non-story discourse out of the way. This post, on the other hand, is a discussion specifically targeting Bastion’s story - can’t really do that in a spoiler-free fashion. However, here’s the format I’m going to attempt with this series of posts. I’m going to go through the entire game, section by section. First, there’ll be a paragraph or two explaining what you do in the game; what you’re doing, where you’ve gone. Then, there’ll be a paragraph or more discussing interesting happenings within the chapter.

You might get away with reading the first couple paragraphs or so, to get a feel for the mood of the game, but I really, really recommend you go into it without any preconceptions. The story is the game, or at least it is for me. If you’ve already played through the game, and are wondering what just happened - great! Follow me as I inexpertly analyze it.

Read more...

Bastion - Gameplay & Presentation

2013-09-22_00023

Since my previous post about Bastion was completely inadequate, I’m going to give it another try. I still maintain my stance that it’s much, much better when you play it without any preconceptions - which, perhaps, I didn’t get across so well in that post - but I do want to discuss the game a bit. I’ll try to write less spoilers at the beginning; this post is pretty much spoiler free. If you’ve already played it through, great - take a gander at the discussion and let me know if you agree with it or not.

Now, you might ask - what the hell prompted this? The game came out two years ago, for crissakes - it’s too late for a review! You settle down, angry voice in my head. For your information, I was discussing Bastion on a message board for one of my college classes - game design, in fact - and I realized I’d never really formalized my thoughts. Yeah, I thought it was great, it’s my #1 favorite game, but why?

Like my discussion of Metro: Last Light, this discussion of Bastion is going to span several posts. If you’re not a fan of long-form review, you should probably head out now.

If you’re still around, first up are surface details; gameplay & presentation. Going to try to cover these in one post because I want a lot of time to cover the story & characters.

Read more...

The Elemental Tetrad

I’ve been reading this book lately, for one of my classes. It’s not a normal class, nor is the book a normal textbook. The class is Game Design, and the book, The Art of Game Design by Jesse Schell. I’m here to tell you today; it’s absolute genius. I’m reading beyond the class assignments and learning a great deal about how to view video games.

There’s two things that stuck out to me. The second I’ll discuss in another post; the first was The Elemental Tetrad. He describes it as the four essential elements that make up a game: Mechanics, Story, Aesthetics, Technology. He represents this as a diamond, with aesthetics at the top, mechanics and story at the middle, and technology at the bottom. This isn’t to imply that any of them is more important than the other; it simply indicates that aesthetics are the most immediately visible of the four elements, followed by mechanics and story, with technology being the least visible.

This immediately stuck out to me, but I couldn’t really figure out why. One day, though, I was thinking about what post to write next about games, and then, it hit me; the posts I wrote about Metro: Last Light pretty much exactly followed the tetrad, except I didn’t cover technology. It’s fairly apparent why I didn’t, since I know next to nothing about how the game is made, but the rest of the elements are covered:

So I have had my views validated. In any case, the upshot of all of this is that I know why I took three posts to cover the game, and more long-form reviews like this are on the way.

Django & PyV8

I’ve been attempting to write a browser game lately, using THREE.js for the graphics, Javascript for the frontend, and Python for the backend. I’m doing this to reinforce the principles I learned over the summer (MVC, web development technologies, etc), as well as to simply produce something cool. The result of the project will be a Final Fantasy Tactics battle system.

Lately, I was thinking about how to reduce code duplication on the server. There’s a lot of things that have to be done twice, on the client and on the server, since we can’t trust the client to compute them; it’s very easy to just send a message to the server saying “Hey, I did 9999 damage to this unit!” Anything that doesn’t have to do with how things are displayed must be validated on the server, but it’s a bad idea to have code in two places. In the beginning, teachers will tell you to take this for granted; later on, you realize just how painful it is to have the same code in multiple places. It’s extremely easy, and annoying, to change a number in one place and forget to do it in the other. Not to mention it’s just plain more efficient to not repeat yourself.

Read more...