I moved to a new URL! Check it out!

posts filed under: general

A Flashpunk 9-Slice Object

A Flashpunk 9-Slice Object
As I've been working on this Global Game Jam game remake, I've been trying to come up with solutions for problems that I can hopefully reuse for more projects in the future. One of the things I've been thinking a lot about is managing and drawing the various user interfaces for the game. Even though I'm not quite sure how much UI stuff this game will need, I wanted to have some sort of solid base to start with so that I could get stuff up and running quickly.

One of the most basic core structures of drawing a cool UI (in my opinion!) is a 9-slice graphic object. What's a 9-slice graphic object?! Well, here's a quick example of one that I have working in Flashpunk right now.

Image

The box that is being drawn above the red player rectangle is a working example of my NineSlice class. It's being drawn from a source image of nine tiles. The source file has four tiles for the corners, four tiles for the sides, and one tile for the center. Here's what the source looks like (blown up 4x because it is tiny.)

Image

This is incredibly useful because it's now possible for me to draw stylized boxes for potential UI components at any size without having to draw each one individually. One thing that I wish that I had spent more time on in Offspring Fling is the UI for the menus, so in the future I want to make my menus and interfaces as awesome as they can be, and having some functions do a lot of the fancy work for me is a big step in that direction. Here's what it looks like right now: NineSlice.as

Here are some snippets of code from the example shown above:
//initial set up
private var nineSliceTest:NineSlice = new NineSlice(Assets.IMG_NINE_SLICE_TEST, 3, 3, 3, 3);
//in the entity's constructor
nineSliceTest.scrollX = nineSliceTest.scrollY = 0;
nineSliceTest.width = 40;
nineSliceTest.height = 40;
nineSliceTest.x = 50;
nineSliceTest.y = 50;
//in the entity's render function
nineSliceTest.render();
Right now this is a very rough first pass on this kind of thing. Ideally it would be some sort of Flashpunk graphic extension that would plug directly into the Flashpunk rendering system. For now it makes use of the Flashpunk Draw class, and some utility functions that I've written for myself. Feel free to use it or improve it, and if you end up improving it then let me know!

Lyle in Cube Sector Any% Speedrun

Lyle in Cube Sector Any% Speedrun
Now for something completely different!



Sometime over the past month I was inspired to do a speed run of a game but I couldn't figure out exactly what game I wanted to do. After some soul searching I landed on Lyle in Cube Sector. Lyle is a game released in 2006 and was one of the first "indie" games to really blow my mind. It was a complete metroidvania, and it was made in Multimedia Fusion which I didn't think was possible. Lyle would later go on to inspire me enough to actually finish my next game, which turned out to be Bonesaw: The Game.

If you've never played Lyle you should totally check it out. The game is a bit brutal at first. Everything hurts you, enemies are complete dicks, and you don't have a lot of health to play around with, but it's definitely worth sticking through all that and getting to the end.

Now I'll get back to work!

Screenshot Saturday: Web Stuff

Image

This week I took a short break from video game coding to crank out some web tools for a table top RPG that I play with some local friends. The screenshot above is part of a combat manager application that I wrote in php. It's main purpose is to manage all of the NPCs in a fight so that the game master doesn't have to keep flipping through a binder full of different pages of enemies to keep track of what's going on during the battle. It should make our games go along a lot quicker, although some people really like to have physical dice make all the decisions. When you have a battle involving 15+ characters though, dice rolling can get tedious pretty rapidly.

Now back to game development!

Global Game Jam 2013 - Timelapse

Global Game Jam 2013 - Timelapse


Ended up making a game for Global Game Jam 2013. I went to the Phoenix location at University of Advancing Technology (the only location in all of Arizona!) The games were judged locally and I ended up getting first place overall, yay! I won 48 gigs worth of flash drives. Not bad!

The game isn't really in a state where I want to release it just yet. I might want to take this one and make it into something bigger and better... but I say that about all my jam games. This one is different though! ... I think.

Introducing Indie Game House!

Introducing Indie Game House!
My housemates and I just launched a brand new website! Check out Indie Game House! It's all about four game developers living together talking about games and other stuff. We don't really know where we're going to take it just yet, but for now we've posted a pilot episode of our podcast which you can find right here. It features myself, Corey Nolan, Steve Swink, and Erin Robinson.

It should also be a feed of blog posts from the four of us as well, which will hopefully prompt me to write more posts on this blog. Something I've been meaning to improve on is my own ability to just write a quick blog post and post it, but I have that thing where I write out an enormous post, and when I read it back to myself I'm suddenly filled with an incredible amount of doubt, which then makes me close the window and never look at it again. Yeah, gotta fix that.

Anyway, stay tuned to Indie Game House for some blog posts and podcasts that will probably be enjoyable. We're looking for any feedback we can get on the first episode, so if you feel so inclined then please give it a listen and drop us a comment on the post. We're listening!

My Anti-SOPA, Anti-PIPA Ramblings

My Anti-SOPA, Anti-PIPA Ramblings
Today is the day of the great internet eclipse with sites like Reddit and Wikipedia going completely dark from 8 to 24 hours in order to raise awareness about two horrible, terrible things that are moving through the House and the Senate here in the United States: SOPA and PIPA. I just want to make a quick post as to why I'm personally opposed to the two acts, specifically SOPA for right now.

SOPA and PIPA's goals are to ultimately stop piracy, and they are mostly crafted through lobbying by companies like the MPAA, RIAA, and the ESA. Do you think your average representative has enough knowledge of the internet and computers to draft something like this themselves? Of course not. To them, the internet is a big truck, or whatever the MPAA tells them it is that month.

The MPAA steps into congress and convinces them that they are in danger of being completely destroyed because of internet piracy. They claim to be losing jobs by the hundreds of thousands, and their profits are dropping, and it's all because of people downloading camera rips of Jack and Jill. (Just kidding, I don't think anyone pirated Jack and Jill.) Oh, and the MPAA's claims are mostly bullshit.

The result is congress drafting horrendous bills that are absolutely overkill, and that miss the point completely. Imagine the problem of piracy being a fly on your friend's face, and congress's response is to launch a nuclear warhead at the fly, thus annihilating your friend, you, and everything within a 50 mile radius.

SOPA, and PIPA, will not stop piracy.

But what they will do is harm people like me. I'm trying to make a living on the internet, like a lot of other people these days. Every day we see new and exciting ideas and starts up emerge right here on the internet because of its absolute freedom and fairness. Anyone can just buy a domain name, rent a server, and launch a website on their own, but SOPA and PIPA threaten this freedom.

For a cooler, more visual representation of the problem, I suggest watching this video.