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...

Getting f.lux to work on Linux

Update: This post is fairly dated. I’ve gotten one report that the indicator applet (recommended installation on Flux website) now works fine on Mint. Use the instructions below only if you couldn’t get the indicator applet to work, because it is certainly more intuitive than the alternative. Original text follows…

Recently, I decided to re-install Linux and give it a try as a development environment. I’m on Linux Mint; while this isn’t really the best platform to develop on, it was ridiculously easy to install and it gives me access to what I need. I’ll probably switch to another distro more suited to development at some point, but that’s outside of the scope of this post.

Anyway, I ran into a problem - why couldn’t I get flux to work? It’s a great piece of software; makes my eyes hurt a lot less at the end of the day. It’s a must install for anyone who sits in front of a computer. That being said, though, their recommended installation for Linux doesn’t work (i.e. Killan Valkhov’s indicator). It doesn’t change color unless you hit the “preview” button, and even then, it only seems to change halfheartedly. Even the last time I installed Linux (Ubuntu) I couldn’t get it to work.

I looked around in vain for a long, long time on how to get flux to work. Somehow, though, throughout all of this, I ignored the little link at the bottom for xflux. Probably because it has, in parentheses: for older distros. This is patently untrue; it seems like the only real good way to get flux to work. So, just download xflux. It may not be as nice to use as an indicator, but it sure works better. Here’s how you do it:

Download xflux. The indicator applet hasn’t worked on any system I’ve tried it on. Instead, download the appropriate daemon for your system - 32 or 64 bit. Unarchive the file using a GUI unarchiver or tar -xvzf xflux.tgz. Then, open up a console, cd to the directory you untarred it to, and type:

xflux -z YOUR_ZIPCODE

This should start xflux. If you don’t want to type that every time you start up, you’ll have to search for the appropriate method for your system; on Arch Linux, all I have to do is stick that command in my ~/.xinitrc file. On Ubuntu or Mint, you’ll have to go through the appropriate system menus, or write your own autostart script. On other systems… well, you’re on Linux, so go look it up yourself!