Phil Hassey - game dev blog
Phil Hassey as Snidely Whiplash
"You can't buy awesomeness.
You're born that way."

Archive for December, 2013

Update on the goats

Tuesday, December 31st, 2013

Two weeks ago I heard coyotes outside our house and Nan suggested I go out and check on the goats. I went out and found them huddled together up by their sheds, but I couldn’t see Nibbles. I got a flashlight out and walked around the fence and found her body at the end of their pen. She was cold with a little blood on her. The coyotes had gotten to her while she was defending the herd. This was extremely sad, I dug a hole and buried her the next day. Here’s a picture of her with her one kid Nubbin:

Here’s the last picture we have of Nibbles:

Nan took some swift action and found us a guard dog which she picked up a couple days later. Her name is Daisy and she seems to be working out so far. We never want to lose another goat to coyotes again if we can help it.

A few days later our other doe Lilly came into heat, and since we want to have more kids next year, we took her up to a buck to get bred by Nuada. He’s a pretty impressive Nubian buck. We were worried that after the trauma with Nibbles maybe Lilly wouldn’t be in the mood for love, but turns out that wasn’t the case. Here’s them hanging out.

After being bred, Lilly was pretty gross, so Nan gave her a bath.

Since she was nice and clean now, we let her hang out on the couch with me for an hour!

A few days after that Cuzco got very sick. We think it was a combination of the stress of losing Nibbles and getting a guard dog (he hates dogs) and possibly eating too much fruitcake on Christmas.

We took him to the get and got him some meds that helped him feel better, and we took him inside our basement for a few hours to sit by the fire and watch TV with us. He’s been getting better and better, so that’s nice. Losing two goats in a single week would have been too much.

Since we lost our doe Nibbles and we really wanted to breed a couple does this year, we started looking for another alpine doe to replace her. A brief look on Craigslist didn’t find any does, but we found a really nice looking Alpine-Nubian buck for sale. We weren’t really planning on getting a buck anytime soon, but we decided if we got him and bred him to Nubbin and Petunia (our two kids), that would be great, because it would get us a year further ahead in our efforts to breed Alpine-Nubian goat crosses. We picked him up just a few days ago. We named him Pac-Man.

Anyway, the last two weeks have been pretty crazy with all this goat stuff going on. In the meantime I made a game called the Rustic Classics which are 2-4 player local games. I’ve been re-making these games on and off for many years. One of the games in the collection is called Nibbles, which is what we named Nibbles after. So here’s a link to those if you want to play. The Rustic Classics also includes Pac-Man, of course, which is the name of our new buck.

It was definitely a tough ending of the year for us, but it’s also been the most exciting year we’ve had with goats yet. Here’s to 2014!

-Phil

P.S. If you want to read some of these stories in more detail, just poke around on Pack Goat Central where Nan has posted all this stuff too.

Galcon Legends update and Merry Christmas!

Friday, December 20th, 2013

Ahoy there! There’s a new Galcon Legends update available on Steam! If you haven’t checked it out yet, go and get your Steam key. The update makes the win condition require that you have 50% more ships than the bot, and it revises the scoring system to something that might work a bit better. I’ve had to reset the leaderboards and your progress for this to work. As always, I love getting feedback in the forums!

Anyway, a big Merry Christmas to you all! Thanks so much for being amazing backers this year! I’m very excited for next year and what will happen next with Galcon 2!

-Phil

P.S. I’ve made a few retro-style games in the past few months. Check out Turkey Tomahawk Turbo and Capricornicus!

Galcon 2 – Box sets, sound track, and Galcon Legends beta on Steam!

Saturday, December 7th, 2013

Hi there! We’ve finally got most of the box sets shipped out! So be looking for yours in the mail soon! It’s got some nifty surprises in it, so I’m not going to post any more pictures of it for a few weeks until most people have gotten theirs!

I have, however, uploaded the game goodies including the soundtrack to the website, so you can get those now if you want! Anyone in the $20 or higher tiers gets access to the soundtrack, and anyone in the $100+ tiers gets a few extra things!

In other news, Galcon Legends is now in beta on Steam! You can get your beta key here for Windows, Mac, or Linux. Please leave feedback in the forums, it’s getting near release for this!

-Phil

Lua on Javascript comparison – lua.vm.js, lua.js, lua.js-phil, lua5.1.js, native

Thursday, December 5th, 2013

So I spent a bit of extra time this week messing with my Lua on Javascript stuff for game jams. Here’s the resulting game Turkey Tomahawk Turbo.

I checked out the following Lua on Javascript implementations: lua.vm.js, lua.js, and lua5.1.js. I also made a fork of lua.js called lua.js-phil.

Here’s the short summary breakdown:

– lua.vm.js: An asm.js (emscripten) port of Lua 5.2. It has slickest web presence, but WORST implementation. It’s crazy buggy and doesn’t work for anything beyond the cool tech demo. If you really like what they have so far, you’ll want to spend a week or so fixing their API so it actually works for non-trivial programs. I never got my game working fully with this due to sporadic runtime errors and other mess.

– lua.js: A script that converts your Lua script to Javascript. The official distribution works great, but it is missing some functions so you’ll may have to modify your program somewhat to work without those functions. (The string formatting and pattern matching is not implemented.)

– lua.js-phil: A fork of lua.js. I added string.format and improved performance by making the following assumptions: you will not use meta-methods (__index, __call) for anything but calling functions / methods. You will not use the math meta-methods (__add, …).

– lua5.1.js: An asm.js (emscripten) port of Lua 5.1. It has a very nice working API that is exactly like the C API, so if you are used to integrating Lua in C, you’ll find it pretty easy to integrate with your Javascript program. It is a build of Lua 5.1, so no missing functions or other quirks.

Here’s the performance data in FPS. For comparison, with Lua running on my Mac, I got 400 FPS.

Chrome 31

Firefox 25

Safari 7

IE 10

Average
lua.js

51

50

20

110

58
lua.js-phil

72

59

32

160

81
lua5.1.js

85

75

4

60

56

So to conclude, lua5.1.js would be my preference, except asm.js code takes a horrible performance hit on Safari, and a non-trivial performance hit on IE. Once all browsers are optimized to work with asm.js code, that would be the best option for sure. Since I was able to modify my game (about 5 lines of code different) to work with those restrictions I mentioned above, I was able to get pretty good performance with my fork of lua.js. The original lua.js is quite good, short of the missing functions.

Lastly, there have been many claims of how “you’ll get near native performance using javascript, especially now that we have asm.js and emscripten” and whatnot. Well, I’m sure in theory that’s great and all. But no matter how I slice it here, I’m getting a 4x+ performance hit by running my games on the web. Still I’m impressed by what I’ve seen and I hope more work goes into getting asm.js support in browsers so we can get nearer to native performance!

-Phil

P.S. You can download the whole mess with build scripts and the various Lua things here.

Turkey Tomahawk Turbo

Sunday, December 1st, 2013

I’m pleased to announce Turkey Tomahawk Turbo!

I made it for the Charity Game Jam this year!

So check it out Windows or Mac or Linux! And now on the Web!

Have fun!
-Phil