It’s Been Randomly Generated!

I’ve been spending the last week working on randomly generated levels, for a game I’m making with my brother. I started with an approach where it would make a bunch of rooms, in a grid, and then create paths through the grid to the end, like so.

However, after a lot of thinking and tweaking (and rendering the levels out into an actual tileset (hit M for mini-map)), I decided that wasn’t really what I wanted to go for at all. So, I then spent the next 3 or 4 days reading about how to generate roguelike levels, but couldn’t really find anything I liked, until I stumbled upon this, which actually explains, step by step, how to code a roguelike in Python. I didn’t actually read any of the code, but I used the method he describes there, which generally seemed like it should work for what I was trying to accomplish.

However, it still didn’t seem quite right. I had some cool stuff being generated, but it was really blocky and square looking.
Random Gen. Map, Blocky
So I decided to try to make the rooms anything but rectangles, to give it a more natural feel. That’s when I found this, which explains a method that worked really well for what I wanted.

Finally, I decided to make it so the individual rooms could overlap, to create this really interesting, natural feeling, underground caverns/dungeons.

My end result is this. I’m pretty pleased with it, generally.
(hit R to create a new map)

Posted in FlashPunk, Game Development · 6 Comments

Ongoing projects

I haven’t updated this in a while, so I figured it was time. Hopefully, sometime in the near future, I’ll have more time and ideas to start really making this blog a bit more interesting (and more frequently updated), but for now, this will have to do! …

 

WINNITRON 1000

I have been spending the last several weeks/months working with local indie game developers in Winnipeg, working on our arcade machine, titled the Winnitron 1000. Probably most (or all) of you will already have heard of it, but if you haven’t, it’s definitely worth checking out. It’s basically an arcade machine that plays indie games, and can update/sync the games, along with sessions (how long people play what game) and highscores online. I’m really excited that I was able to take part in the development of this machine.

 

Flash Punk Community Competition: DUNGEONPUNK
DUNGEONPUNK

A game I created in 72 hours for the Flash Punk Community Competition. Was really fun to take part in this and make my game be one of the 33 entries (may have to login to view them). My goal with this game was to basically make a hard Zelda-like Shooter, and I think I accomplished that quite well. I have plans to develop this further (or perhaps even recreate it with new graphics, randomly generated, levels, more items and monsters, with my brother), so be on the lookout (if you like following my stuff :P ) for this one… You can play the competition entry version here, and play the current build here!

 

Secret Project – Prototype name “TUNA STAR”

A secret project I’m working on with Alec Holowka… Can’t say too much about this yet, though I can say it will not contain Tuna (and probably few stars as well).

 

And that’s pretty much it from me, for now! :D

 

Posted in FlashPunk, Game Development, Game Jam · 7 Comments

Screenshot Saturday – Nisus

Been a while since I posted anything… but I’ve been working with Time some more on our game Nisus. We took a bit of a break, but now stuff is happening again, so here’s a Screenshot for Saturday!

 

 

Screenshot Saturday - Nisus Gameplay

Posted in Game Development, Nisus · 1 Comment

Leap 4 Blue – Complete

Hey everyone, I recently finished Leap 4 Blue, and it is now playable on bored.com. Check it out, right now (and give me as much feedback as you like!)

 

The game has been under development for quite a while: from when I first started it, on May 30th, all the way to today, October 14th. In fact, I’m pretty sure it’s the most time I’ve ever spent on one game, from the time of starting to actual completion. But, I think, it was definitely worth the wait, and believe it should, and will, live up to everyone’s expectations (or at least I sure hope so). The extra time I spent polishing and revising this game was definitely well spent, in my opinion, as it really makes the overall experience a whole lot more fun and enjoyable.

 

But anyhow, enough of me going on about why I’m so proud of the game. The other purpose of this blog post, besides telling everyone that it’s out and you should play it now, is how the development process of this game went, from the first day, to when I sent the final version off to the sponsor.

 

One of the biggest questions I’ve been asked is, how I came up with the general idea for Leap 4 Blue. To be honest, the mechanic, though fun and interesting, isn’t that unique or amazing. True, it hasn’t been done in (many) platformers in such a way as this, but it’s not like revolutionizing platformers or anything. Anyhow, when I went to the Winnipeg TIGJam, I didn’t know anyone there. I’m a really shy person, so instead of trying to socialize at first, I sat down, and started making random mockups. None of these mockups were anything like leap 4 blue. When I was bored and finished with making a few of those, I decided I should start working on something. I had no idea what to work on, so I went ahead and made a simple platform engine – basically what I do when I have no ideas. At this point I thought it would be cool to add more than walking and jumping, so added walljumping to the little green character (who you still see in the final game today). Still pretty boring.
At this point, I stop for a bit, and went to check out what other people were doing. I saw someone playing Cactus’ Tuning, and thought it looked really interesting. I began to think that maybe I could make the graphical style in my simple little platformer similar to that, with the blocks twisting and spinning as you run through the strange levels. So, I went back to my computer, and started messing around with that (with some awesome help from Chevy Ray, who was really interested in helping me get the game going). Somewhere along the line, I thought it’d be fun to shoot blocks, and added that in. Originally, you literally just shot blocks in a direction and they’d eventually slow down. This turned into the block-placing you see in the current Leap 4 Blue, after Chevy said that it’d probably be easier for the player to be able to place blocks exactly where your cursor/block-placer-thing is. And it definitely was, because without that precision, the game really wouldn’t have worked.

 

So, if you couldn’t already tell, I had absolutely no idea where Leap 4 Blue was coming from, or where I wanted to head with it. I got the basic idea working, and just developed it from there, adding things that felt right, and skipping things that didn’t seem to work.

 

After the Game Jam, I went home and worked on the game like crazy for about a week. I reprogrammed the entire thing, as my current method for displaying the moving blocks was extremely slow. During that time I made about 20 levels.
However, after about 2 weeks of hard work on the game, I got generally bored with working on it. As many of you will know (or if you don’t, you’re about to find out), I’m not really the type of person who can concentrate on one project for months at a time. Maybe it’s just because I’m really not that old, and haven’t learned how to stay focused very well. Either way, the development on Leap 4 Blue stopped for almost an entire month.

 

Suddenly, however, I had the urge to get the game done. By this time it had been featured on indiegames.com/blog, and gamesetwatch.com, and there was quite a bit of hype on Twitter. I basically said to myself that I couldn’t stop working on the game; It would be utterly sad to stop working on the game of mine that got the most recognition of any game I had ever made before. So, I set to finishing it. At this point, it was mostly just adding the last 30 levels, as most of the core mechanics and gameplay things were done.

 

I ended up recreating the first 20 levels three (3) times before I was happy with them. by level 45 I was really struggling to finish them up. I hadn’t really considered level design as a skill, an art, before. However, by the time I had created 50 levels (90 if you include the ones that never made it to the game), I had realized that level-designing is a skill, and takes a lot of talent to be able to produce a lot of them, and keep them fun. Luckily I had Matt Thorson, platformer level-designing-master of all time, play through a bunch of my levels giving me feedback, which ultimately helped me finish up the last few ones. Level design is one of the things I find hardest to do. If you look at any of my prior games, all of them have less than 10 levels, or no levels whatsoever, so producing 50 for a single games was a really big haul for me.

 

But things came to together. I was able to get some amazing musicians for the musics (my brother, Liam Berry, and local indie game developer, Alec Holowka), all the levels were finished, the graphics were polished, and I optimized the game and made everything run speedy. Now it was time to find a sponsor.

 

When I first thought of getting a sponsor, I thought it would be one of those things that you sent around to a few people, they would reply in a few days, and then BLAM, you were sponsored. Well obviously this isn’t what happened – nothing can be that simple.
I sent Leap 4 Blue around to 3 sponsors, Armor Games, Kongregate, and Newgrounds. My goal here was to send an amount that was really high, and hope that they would haggle, or offer an amount they actually felt was appropriate.
Please note, that I originally planned to write this without the actual amount of money I was asking for, and got. But I feel that this entry may help other, new flash developers, a whole lot more if they have an understanding for what I was asking for, and what I ended up getting.
So, I sent an e-mail to these three sponsors, asking for 10k ($10,000) USD. I had no intention of actually getting this amount, but rather hoped that they would come back with an amount that was appropriate. I waited about 2 weeks, and in that time, only one sponsor replied, and it didn’t work out. They wouldn’t counter offer. They simply said “fun game, but not for that much”, and I would ask how much they felt was appropriate for the game, and they responded with the question “I’m not sure”, essentially. After going back and forth with this for about a week, I finally gave it up, deciding that there was no easy way for me to get a number out of them without offering the game for really low.

 

I decided to put it on FGL (Flash Game License), and hope that things would turn around. And they did. Within a day of it being on there, I got a bid (from the sponsor I was e-mailing) for $1,500. A few days later, I got a bid for $2,500, and a day after that, a bid for $2,750. At this point, things began to slow down. However, 2 days after the bid of $2,750, I had the same sponsor e-mail me, asking if I was interested in a “buy-now” option. They were holding the highest bid, and the game wasn’t moving. They were basically offering to pay more for the game, to get it immediately.
I decided that this was the way to go, and I sent them an e-mail, saying I’d do a buy-now for 8k ($8,000). Again, aiming high, hoping they would respond with a number that was more appropriate for themselves.
However, they simply didn’t reply. I waited a few more days, e-mailed again, asking of they were still interested in a buy-now, they said they were. We talked over MSN a few times, and worked out a figure that I thought was fair. (note, I can’t actually post the exact details of the price).

 

At this point, I had to close the bidding on Leap 4 Blue, add their API to the game, and send it off to them (in return for my money).

 

A small note: I would, in most cases, let the bidding fade itself out, rather than do a “buy-now” thing like I ended up doing. I think that in most cases, this kind of thing doesn’t come up, and it’s best simply to set the game status to “final call” on FGL. Also, probably good to know that FGL takes 10% of whatever you make, and if you get payed through paypal, Paypal (apparently?) also takes some. Actually, Paypal has simply been a pain in the ass so far, from not giving me my money for a while (because they didn’t know why I was randomly being sent $$$), to taking $100 just to use it to transfer the money… :P

 

Anyhow, that’s my Leap 4 Blue adventure! Exciting stuff (no, really, it is).

 

Posted in Game Development, Game Jam, Leap4Blue, Uncategorized · 8 Comments

Javascript – The Event Listener

Late last night I decided I wanted to start making a small game engine for myself in Javascript, using John Resig’s Javascript Inheritance code. Using that, it’s pretty straight forward to set up classes. For example, here’s my player class:

var Player = Entity.extend({

init: function(x, y)
{
this._super(x, y, 16, 16);
this.type = ‘Player’;
},

update: function()
{
this._super();
if(this.collide(‘Floor’,this.x,this.y+1) == null && key.keyDown[40]) { this.y ++; }
}

});

As you can see, it’s pretty easy to understand. I also used a similar method to Chevy’s Flash Punk Library for collisions (since I find that the easiest method I can think of).

However, when I started working on a class that would monitor key input, I ran into some problems. Basically, a key input uses an event (similar to the flash events), that looks something like this:

window.addEventListener(‘keyup’, this.onKeyUp, true)

That looks nice and dandy, right? Well there’s a problem. Since Javascript doesn’t really have actual classes (rather functions within functions), when you add an event like that, it just calls the function, but doesn’t keep what class the function is within.. if that makes any sense. For example, if I have this:

var Keys = Class.extend({

keyDown: Array(),

init: function()
{
//call the key up/down events
window.addEventListener(“keydown”, this.onKeyDown, true);
},

onKeyDown: function(evt)
{
this.keyDown[evt.keyCode] = true;
},

});

When the onKeyDown function is called, it wont understand what “this” is, as in, all the variables are undefined and it can’t reference itself.
Now, incase you didn’t already realize, this is a very big pain. And I also realized that, oh…. setTimeout and setInterval basically do exactly the same thing! (and thus making it very hard to build a game loop).

So, after searching around for a while, I couldn’t find anything that I really liked. I eventually got this working, but it was still a big pain to use:

var me = this
var callOnKeyDown = function(e) { me.onKeyDown(e); }
var callOnKeyUp = function(e) { me.onKeyUp(e); }

window.addEventListener(‘keydown’, callOnKeyDown, true);
window.addEventListener(‘keyup’, callOnKeyUp, true);

I mean, sure, it worked… but it looked horribly messy and if I needed to use event listeners OR timeouts/intervals, I would have to do that for each one… Which is where I decided I would try to do exactly the same thing above, but in a single function. This way, I could just call the function, and not have to mess with all that other stuff each and every time.

Now, this part was pretty hard to figure out, mostly because I kept running into problems with passing a function through a parameter. Eventually though, I figured out how to pass a string through, and then call a function with the same name as the string.

In the end, my function looked like this. I’m really pleased I got this sorted.

/*
Calls the function on a window event
@param type The type of event to call (ex. keydown)
@param f The function to call (as as string)
@param me Who should call the function (normally ‘this’)
@return null
*/
callEvent: function(type, f, me)
{
var functionToCall = function(e) { me[f](e); }
window.addEventListener(type, functionToCall, true);
},

Now, all I need to do to call an event from within a class to one of the classes functions, while retaining all references, is this:

this.callEvent(‘keydown’, ‘onKeyDown’, this);

:D

Posted in Game Development, Web Development · 1 Comment

Winnitron 1000

Lately I’ve been working on a secret project with Alec Holowka, Marlon Wiebe, and Jeff Lindsay (and all photographs of the project by Chrissy Chubala), that we’re now ready to announce. We’ve been working on an Arcade Machine that will feature independent developers’ games! It’s going to be really rad, when finished, and we plan on hosting a game Jam in the coming weeks to develop some new and fresh games for it, before it goes fully live.

yeaaah! Arcade Playing

(I’m the guy on the left, for those of you who don’t know me…) (more photos)

 

 

Check out the Winnitron site (created by yours truly), and Alec’s blog for more information!

Posted in Game Development, Game Jam, Web Development · 3 Comments

Leap 4 Blue just around the corner…

I know I’ve been saying this for weeks – no, months. But this time I’m serious. One last thing to add, and it’s done. You’ll be seeing the game in less then a week now.

Just thought I’d post that info for people who continue to ask me, and for people to get ready for some serious puzzle platforming.

Cheers.

Posted in Game Development, Leap4Blue · 2 Comments

Head Game & Orcas

I recently went to OrcaJam, which was just awesome. First time travelling somewhere by myself, and second (big) game Jam ever. Was brilliant, had a great time, met a bunch of awesome new people. If I was able to fly around all the time (without feeling guilty about the amount of gas those planes used (same amount of gas if everyone in the plane drove the same distance, approx.), and having the $$$ to do so) I would definitely go to these things all the time.

 

Anyhow, while I was there, I worked with Chevy on a game that’s called The Head Game (an unofficial title given to the game, which seemed to stick). In the game, you need to protect a giant head in the middle of the screen from the onslaught of enemy heads with your head. You can collect bad heads, at which point you can swing them into each other and send them flying in a crazy direction, protecting the giant lady head in the middle. There’s not much to it, and I’m not sure if it will ever be finished, but it’s kind of cool and worth a quick play through if you have 30 seconds.

 

Check it out (In Browser, Flash Punk!)

Posted in Game Development, Game Jam · 4 Comments

HTML5 Adventures

I recently started working on some HTML5 & Javascript games when not working on Nisus, with Time. I was inspired by Jeff “Progrium” Lindsay when I met him last weekend at a mini-pegjam (small Winnipeg game jam), who was working on some HTML5/Javascript games there. He explained what he was working on, and how it works, and I got intrigued and started working on some basic games.

 

I’m currently working on 2 games in HTML 5, slowly, as I want to try to put my main effort to Nisus still, but I thought I might share the page where I’ll be updating these little games. I’m not really aiming to make fun & exciting new games, with interesting graphics, etc, etc, but rather am experimenting with using HTML5 & Javascript as a game development/coding… platform? All of it is open source, so feel free to dive into my code and check it out (and give feedback!… my collision scripts need speeding up).

 

HTML5 Adventures

Posted in Game Development · Leave a comment

Nisus – A Collaboration

Over the last few days I’ve been working on a new game, that I’m quite excited about. Firstly, this game is a collaboration between myself, and Connor Ullmann (known on the internets as Time), which has been working out wonderfully. I’d say we make quite an awesome team.

 

So, what is Nisus? Put simply, it’s a teleporting, time travelling, post-apocalyptic, platformer about a strange creature with even stranger powers. Basically, you’re running through an abandoned area, that has been overground, teleporting your way out to the wilderness. It’s kind of – actually, why don’t you just play it? It will explain what the game is all about better than I can.

 

Note that this version is still very WIP. We’ve been at the game for only 3 or 4 days, so there’s still not a ton to see, but we’re both very pleased with what we have.

 

 

 

 

Posted in FlashPunk, Game Development · 7 Comments

Leap 4 Blue: Finished

Though not yet playable, the game is finished. I’m just waiting for the last few songs to come in (from Alec and Liam) and then it’s off to the sponsors. Hope that goes well (it should, but, I’ll write a full blog post on that later).

 

 

Anyways, wasn’t planning on posting this… but I’m too proud of my own art not to (kind of cocky, yeah, but I am proud of it.. so there).

 

 

 

 

Also, I’m going to be giving a short presentation on Leap 4 Blue at the Winnipeg IGDA on the 17th. Be there!

Posted in Game Development, Leap4Blue · 3 Comments

FlashPunk Open Source Platform Engine

Hey, I updated my Open Source Platform Engine to Flash Punk 1.3, and also cleaned up, and commented (a frequently asked addition) the code.

 

Check it out on the Flash Punk Forums!

 

I’m hoping in the near future, after Leap 4 Blue is all wrapped up, to recreate the engine with a whole lot more features. Basically make like a super customizable, easy-to-use, readable, Flash Punk platform engine that people can use.

 

Currently, even though this current engine is really, really simple, I’ve seen a large number of FP users who have stated that they use the engine, so I think a fair amount of people would find a more in-depth engine to be useful.

 

It’s a thought. Probably be fun to make. Maybe finish that tutorial as well while I’m at it.

Posted in FlashPunk, Game Development, Tutorials/Articles · Leave a comment

Progress is good

Yesterday, I didn’t have to go to work because it was the weekend, and my internet was out due to a thunderstorm the night before. So, without any distractions (such as other peoples games, blogs, twitter, tigsource, facebook, MSN, Skype, Gmail, Steam, etc, etc) I set to work further on Leap 4 Blue.

 

I only made two new levels (9 left to go!), but I worked on polishing up the game, adding a finish screen, squishing bugs, etc.

 

Here’s a quick run down as to what I added/fixed:
- 2 new levels
- Fixed a bunch of bugs
- Game now tracks deaths, gems collected, deaths, time, and blocks used
- Created a brand new HUD, which is really, really cool. It allows you to easily sort through the wonderful songs composed by my brother and Alec
- Finished adding sound effects
- Updated some of the older levels to “flow” better
- Fixed some bugs with some levels I had created earlier
- Updated the currents so that blocks flow more smoothly through them, and collisions are handled better
- Bunch of other stuff I can’t remember

 

So, generally, though I was going crazy due to loss of internet, I made a lot of progress. That list doesn’t seem so big.. but the game looks, and feels, far better because of those changes/updates/additions.

 

Also, picture:

 

Game should hopefully be done within a week, and out a week after.

 

Cheers :D

Posted in Game Development, Leap4Blue · 4 Comments

Leap 4 Blue – Preview 2

Okay everybody, today I put together a new gameplay video, featuring levels 20-25, and some awesome music by Alec Holowka

 

 

Posted in Game Development, Leap4Blue · 5 Comments

Keeping your focus on

Game development is awesome, we can all agree with that. Sitting down, and thinking up amazing ideas to tell stories, in a visually interactive way is fun. It’s creative, it’s enjoyable, and it’s awesome to get feedback from people who play your work, whether they say it’s “awesome”, it “sucks”, or “wtf was that?”.

 

However, for me, personally, I find it hard to keep focus on a game for a long period of time, even if the game is small. I’ve been making games since I was 11, so that’s what? Almost 7 years of game making. And what do I have to show, after spending endless hours programming, making graphics, the occasional song, level design, artwork, and discussing design? 8 finished games, and in the hundreds of unfinished (literally). Now, take a look at those finished games. Are they very big? No. They’re almost all short games, with few levels, or automatically generated levels (Pixel Runner, Pixel Runner 2, The Plunge, AGOSS).

 

Why is this so? I’ve started many projects that have “potential”, look “cool”, are “fun to play”. Yet, after a few weeks of working on them, I (and I know many of my fellow indie game develoeprs) stop working on them. I stop working on a game when things begin to get even a little bit repetitive. Oh, it’s time to make the 10th level? I’ll work on this game instead. Coding the 8th enemy? I’ll work on this game instead. Making the 5th tileset? I’ll work on this game instead. The game I work on instead is something new, where I get to experiment with different coding, graphics, or level design, and as soon as any one of these becomes repetitive it essentially becomes boring, uninteresting. I can’t keep my focus. Oh, I can make another level like this, or make another level that’s entirely different!

 

I don’t know if this is the same for all developers. I know some people who can settle down and finish a game no matter if it takes a week, a month, a year, or several years, without getting distracted by other possible ideas or experiments. I wish I could do this. I can’t. I’m finding it extremely hard to finish up the last few levels of Leap 4 Blue. The game is incredibly close to the finish line, but it’s taking me longer and longer to finish levels!

 

For the time being I’ve basically decided that I’m going to force myself to sit down and finish up my game… so far it’s not working. I say, “I’m going to work on the game for the next hour”, and find myself at the end of that hour having been working on a website, experimenting with code, or reading interesting blogs on the internets. And sure, every few days I do sit down and add a few more levels, but it’s not at the pace I want.

 

Anybody else find this problem?

Posted in Game Development · 1 Comment