14 03 2017

Time for my sorta-yearly post again!

It’s funny, because I feel like I am writing the same post as last year in a lot of ways right now. I had an awesome time at GGJ again and made another great project. Had a 2016 that started pretty decent, but crashed hard at the end… Pretty much the same, lol. Let’s get into it.

This years Global Game Jam theme was “Waves”. We took it pretty literally and made a game about protecting a city from tsunamis. It was actually pretty fun to play again, so I’m very happy with the end result. The visuals weren’t amazing to look at, but we had a cute blocky aesthetic that made the inherent “death and destruction” element of giant tidal waves a lot more appealing to watch. Also the title screen and music was pretty bad-ass 😀 The team this year was just me, and a guy from Airdrie, AB named Joel, who I had never worked with previously. But we got got along really well and he was more than capable with Unity, so it was fun and relaxing to work on. The actual development of the project was smooth like last year. We managed our time well and didn’t get too hung up on anything. I was able to pull a lot of systems from another project which saved a lot of time up front and got us to the point of being able to playtest sooner, which meant better balance and more fun and polish in the end. So all-in-all, another great year at GGJ!

As for what I’ve been up to since my last post… Well, I started my own consulting company and took a long term contract with a studio on Australia. It was a big change, but it was very exciting. I got to work from home and with some really talented developers that I learned a lot from (and became good friends with 🙂 ) Working remotely turned out to be really great and I kind of prefer it now over going to an office. I was worried that I would get stir-crazy or lonely, but I constantly communicate with them via Slack and Skype, so there was actually probably more communication than when I was sitting right next to a person, lol.

The project was pretty cool too. It is a mobile strategy game called Kings Vs. Queens. Basically a clone of other popular games like Clash Of Clans or Boom Beach, but we tried to put a spin on it where you have 2 different factions with different strengths and weaknesses. It is a lot of fun to work on, which was refreshing after my last slog. Most of 2016 was actually pretty great!

But what goes up, must come down. Unfortunately in December, we found out that the companies investor had decided to pull out, and that there was no more money with which to pay us. Just like that… Poof. So I suddenly found myself (effectively) out of work again, with a nearly-completed project in the works. Technically, I still have the job, and they are desperately searching for new investors and sources of funding right now, so if something comes up we will be back in business. But I can’t exactly afford to wait around for months to find out, so I am currently looking for new work. I have a side-gig with a local AR startup company, but it is not for a game, and I am getting equity for it, so it’s not really a short-term solution. Fun and interesting to work on though at least 🙂

So anyway, that’s all there is to really tell for now. I would say that I will post again when I find something, but I highly doubt I will remember until around this time next year, lol.

Until then, lets all just hope 2017 turns around quickly 😉

2016 is looking up

5 03 2016

It’s about a month since this year’s GGJ, and so I guess it’s time for my usual yearly update to this page! (which I’m fairly certain nobody has ever read anyway, so I’m probably just talking to myself. But whatever. It’s cathartic)

I actually have a lot to talk about this time around, other than just GGJ stuff, but we’ll start with a rundown of this years Jam and my project for it. Good news! My team and I killed it this year. Absolutely, unquestionably, the best GGJ year for me yet. Here it is:

The theme this year was “Ritual”, and so our team settled on making a retro-styled shooter involving memorizing and completing patterns. We had a small team of 4 programmers, but fortunately a few of us had experience modeling and even composing music, so we were actually fairly well-rounded. The idea we picked was (for once) scoped very appropriately for the time we had. The premise was simple, so we were able to get it playable by the afternoon of second day, which left us with an entire day for iteration and polish until it was actually fun to play! We made a list at the beginning of all the features we wanted and classified them as critical, should-do, and nice-to-have, and we actually continually updated the list as we went which kept us on track the whole time. By the time we were finished, we had actually checked off all 120+ items on the list, including the nice-to-haves like a boss fight and custom made music. Considering that for two of our team members this was their first Game Jam, it’s amazing how disciplined we were, and how well we worked together. We were never really stressed out, and had plenty of time to get some sleep and food, which I think shows in the final product being more coherent than is usual for GGJ games. All told, it was an awesome time this year and I can’t wait for next year!

So now that the obligatory GGJ stuff is out of the way, I wanted to talk about some of the happenings of the last year, and what is coming up this year. 2015 was a roller-coaster of a year for me, but a really s***ty one that mostly goes downhill before it slams into a wall 😛 I started off the year by getting my game “Secret of the Pendulum” released on the Google Play store for Android, to some pretty decent reviews. Which felt pretty good because it was getting out to more players and I felt like I was actually making progress on the game. We then ported it to Windows Store, right around the time of Windows 10 being launched, which was also pretty cool because there wasn’t a ton of competition for us, but the game was starting to feel pretty stale. So I pushed for doing a new, standalone pc/mac version that was more like how the game originally was intended to be, rather than the f2p cash-gouge it became. Somehow, this actually got agreed to, and I was riding high for a bit because I got to finish up the game I always wanted to, and release the last of the content for it so players could actually finish the story. We even started a Greenlight campaign to get it on Steam.

Naturally, that’s when everything exploded. Only a couple of weeks before we were finished the game, I was pulled into a meeting and told that after 5 years, the project was cancelled and I was out of a job. Not totally surprising, as we had been losing money for some time, but still pretty heart-wrenching for me. So for the first time since finishing school, I was jobless, and with my project unfinished, I felt like I had nothing to show for it. Calgary is not a big hub of game dev work, so finding a new studio was going to be tough. I started doing some remote contract work through the Unity forums, but after dealing with several bad clients and for little money, I realized that wasn’t going to pay the bills.

I decided to switch focus and try looking for a job locally outside of the game industry. There are tons of tech companies in Calgary looking for devs, and I know I’m a good enough programmer to work on anything given a bit of time to train with a given language or toolset, so why not? Well, as it turns out, since we’re in a recession and a ton of people in the city are getting laid off, the competition out there is brutal. It’s really hard right now to convince someone to give me a chance, when they have a dozen other applicants with the exact experience and qualifications they are looking for. After getting destroyed at a few interviews, I left 2015 feeling pretty down about myself and my prospects for ever finding work. (“pretty down” is an understatement to be sure).

BUT! I’m happy to say that 2016 is looking up finally! After struggling a bit more through January, I found a few good contracts in February. Again, it wasn’t enough to pay the bills, but it did get me some referrals to other people that were looking for a more permanent developer. Things are going well with them, and (without saying too much, because I don’t want to jinx it) I am fairly confident I will have a new full-time job before March is up.

So YAY! Here’s to a better year than last, and to new beginnings!


Jam! 2015 Edition

26 01 2015

Global Game Jam 2015 is over, and for me, it was a great success. Ladies and Gentlemen, I present to you:

SpaceShip SuperStar Maintenance Ltd.

The theme this year was “What do we do now?”, which was much easier to work with than last years theme. My small group of 3 chose to make a somewhat silly game about being essentially a Space Tech Support guy who gets called in to fix the silliest of problems by the stupidest of people. You are dumped in the middle of a recently abandoned space station to solve an unknown problem that will cause the station to explode in 5 minutes. The scenarios can range from the serious (“An asteroid is about to smash into us”) to the stupid (“The toilet is backed up”). The space station is randomly generated each game, so you have to quickly get your bearings and try to work out what is wrong and how to fix it.

We got in a lot of cool effects and visual elements that I think really made it stand out. We modeled/rigged/animated an arm so you could pick up things and press buttons. You walk around in a cool looking space-helmet that has some reflection on it as you pass under the lights (not really proper “reflection”, just a cheap trick, but it looks cool enough). The environment has a 70’s retro-future campy look to it, and all of the panels and monitors on the walls are randomized so the rooms never look quite the same. We had a fun time with it.

The best part of this jam was that I never really felt too rushed or under pressure. I learned a lot of lessons from last year and took it to heart this year, so things went smoothly. The version we demoed at the end only had 1 working scenario, but it was enough to prove the concept. I’ll be tweaking it over the next little bit to polish it up, add a front-end and some more UI elements, and a few more scenarios. But on the whole I was quite proud to show it off.

The Late, Late, Super Late 2014 Update!

19 12 2014

Having a kid is a lot of work… Like, a TON of work. I really don’t know how some people can have 2 or more and still find time to do things that aren’t housework or work-work. 2 years later and I’m just now starting to get the hang of it, just in time for kid #2 to arrive in March. I guess I better use my time wisely for the next couple of months.

Obviously, I didn’t do a post for last year’s GGJ. Frankly, I didn’t feel so great about the end result of it. I fell into some old trappings that I should have seen coming, but I got a little blinded by shiny things. Specifically, the Rift. Someone showed up at the GGJ last year with an Oculus Rift, and asked if anyone wanted to use it…

Hell yeah I did! and it was freaking amazing! At the time it was just DK1, so the screen was kind of blurry and low-res and it felt a little awkward to wear at first. But after 5 minutes with it I didn’t even notice. I had a blast checking out a bunch of games and demos that I had on hand. I knew I wanted one, but actually using it totally sealed the deal. Still going to wait for the consumer version though. I can only afford to buy 1, so I might as well wait for the most polished version. I hear DK2 is pretty sweet though. I could ramble all day about the Rift, which leads me back to the problem I mentioned above about shiny things.

I think I probably spent more time experimenting and demoing the darn thing for people than I did actually developing for it. The thing was, integrating it into Unity was ridiculously easy. I had it up and running in probably less than an hour, so I guess I just kind of took it for granted that it was no big deal to get it in the game. Which was kind of true. It did end up making it into the game, but I don’t think we really used it to its full potential. It was just kind of like “well… here it is. Glorious 3d VR” and that was the end of it. Mistake #1.

I guess I should explain a bit out our project too. Our game was called FireCode Red. The premise was that it was a 2-player co-operative game where one person (using the Rift) had to break into and navigate to the top of an office building, while another player who could only see blueprints and diagrams of the office had to navigate them. They could also interact with the environment a bit by opening doors and disabling security systems. Kind of like the office-escape scene in The Matrix. Cool idea in theory, but we did not execute it well. For starters, we decided that the 2-player aspect would be achieved with networking. My coding partner Scott and I both had experience with a Networking package for Unity call TNet, and we thought we could whip it up pretty quickly. Mistake #2. Any time networking is involved, things get ridiculously complicated to code, and worse to test. We both knew this, but did it anyway. We could have maybe done some sort of split-screen instead, but then the Rift wouldn’t really work and we were already too enamoured with it to ditch it. Or the 2nd player could navigate from printed documents instead, but we really wanted the navigator to have some interaction with the environment, and to get some real-time feedback on things like enemy locations. So I don’t know what we could have done differently to save it other than just picking a better scoped idea.

We also knew that the scope was too big from the get-go, but we figured we could do it because we had a large team. That’s right, Mistake #3. I should have learned it in year one of GGJ that having a large team can and will actually slow you down more in 48 hours than speed things up. It’s kind of obvious when you think about it, especially if you have any experience in the real world with large teams. Managing more than 4 people can be a full-time job. So why did we think we would be ok with 9? Especially 9 people who didn’t know each other very well and had very little experience working together. Sometimes reality and logic go out the window at the beginning of a GameJam, because you are so pumped about your idea and what it could be.

I also forgot a very important lesson that I learned in 2013. The whole “If you get stuck on something, change and adapt and move on” thing that was so successful for me in 2013 went right out the window this year. Because I knew we had way too much work to do in the time we had, I decided to try and cut down on level design by making the levels procedurally generated. Why not? It worked well the previous year. Mistake #4. I forgot that with procedural generation, while it can speed up content creation, is heavily front-loaded on the design and programming aspects. For some reason I thought I could whip up a level generator in an hour or so and move on. I ended up spending probably 12 or more hours on it, just to completely scrap it in favour of a hastily thrown together single level, because I could never get the damn thing to work right. Not only would it generate levels that were often unsolvable, but there was the issue of making sure it would generate the same level for both clients (it was networked, remember?). If I had ditched it after hour 2, I could have spent a lot more time making a polished, nice-looking level, and still had time to fix some of the other broken features we never got in.

So yeah… Not great. I would link the game if I could find it right now, but there’s not much to see anyway. Our team was artist-heavy, so we had a lot of cool artwork, an intro-video, and even a bunch of funny voice-work that unfortunately never made it in. Which was a shame. I resolve that 2015 will be different.

First of all: No large teams! 4 or 5 people max. If I find my team growing too large, I think I would rather break off and go solo than try and do a large team again. Less pressure that way. Second: No shiny technology that Im not already a pro with. That means no Rift, Kinect, Networking, Holodecks, Brain-interfaces, or digitizing (a-la Tron). I might still use procedural level generation, but only because I got a wicked Unity Package for it that I’ve been using this year (more on that at a later date). Third: Remember the 2-hour rule. Seriously! There is no way a feature will be worth it if I have to spend that much time on it without getting anywhere.

Here’s to 2015!

Global Game Jam 2013!

1 02 2013

Last weekend was the 4th Global Game Jam I have participated in, and I have to say that it was by a huge margin the best one so far 🙂

This year in Calgary, the event was hosted at the Taylor Family Digital Library on the U of C campus. The facilities were fantastic, and the staff helping with the event were amazing. Big thanks go to Digital Packaging for sponsoring the event and keeping us well fed throughout.

This year,  I ended up in a small group with 2 other programmers, and no artists. We had our work cut out for us. I don’t know if it was because we knew our limitations, or I am just getting better at this, but we managed to pump out an Awesome Game. This was the first year that I didn’t feel stressed or rushed to complete on time, and I was actually happy with the results we had after 48 hours. Also, I managed to get a solid 4 hours of sleep each night! (You would know that’s a lot if you had ever been to one of these :P). I think that maybe I can attribute some of my own personal success this year with a directive I gave myself prior to the Jam: Little Bites

I set an alarm on my phone and told it to repeat every hour while I was working. Basically, this was a reminder to myself to 1) Stop. 2) Look at what I am working on. 3) Decide if I should keep working on it. So many times in the past I have gotten hung up on some feature or cool idea that I wanted to implement, only to hit some kind of roadblock and spin my wheels on it for hours and hours. Next thing I know, it’s the morning of the final day, and I still don’t have my core gameplay down! So this year, when that alarm buzzed in my pocket, I would stop and ask myself “How long have I been working on this feature?”, “How close am I to solving the problem?”, and “Is it really that important?”. If the answer to any of those didn’t look good, it was time to consider a change of direction. It’s hard to do, when you have a cool idea and you are set on doing it, but I found it SO much easier to “give up” on a feature when I had only spent an hour on it, instead of 12.

At any rate, without further ado, I present to you: Heart Attack!

It’s a 3d Tunnel Shooter, based on this years theme of “Heartbeat”, where you are a nanobot flying through veins and arteries toward a heart, attempting to destroy it. Along the way you will be confronted by Blood Cells, Antibodies, Valves, and Bloodclots and must navigate or destroy them, all the while grooving to the beat of Apollo 440’s “Time is Running Out”. The music controls the spawn rate of enemies and obstacles, and they all pulse with the beat.

We made a Unity WebPlayer build so you can play it right in your browser too:

Of course, we are still working on it a bit after the fact, so you can expect to see some more weapons, a scoring system, and maybe even a few different tracks to pick from 🙂

New Portfolio!

19 11 2010

Hello and welcome to my new portfolio site and blog!

I’ll be updating this site with my most recent works in the world of Game Design and Programming, so feel free to have a look around:

You can check out my latest Games…

Levels that I have worked on…

and my 3D Artwork.

If you like what you see, please leave a message on my Contact page.