Archive for December, 2011

The Monday Report – Boxing Day “Dead Health Potion” Edition

Monday, December 26th, 2011

Uh... I am concerned about what that potion would do to me if I drank it. (a typo/bug from today, hehe)

Hello! This is quite possibly the last post I’ll do in 2011, so lets make with the goods!

This past week I’ve continued working on the demake of my primary project. If you checked out the Ludum Dare prototype, the core mechanics have dramatically improved since then (about 4 days ago).

I actually keep a relatively detailed development Journal while working, but a lot of stuff is either very minor, subtle, contains spoilers, or is simply just too long to post. So what I’m hoping to do regularly is to comb my Journal, and pick some some interesting highlights to show off.

Lets get started!

On December 24th, Xmas eve, I finally switched fonts over from Ariel to the traditional Commodore 64 font. Even though I’m breaking the rules of the Commodore (font is not monospaced, artwork is not pixel double wide, I use varying levels of alpha transparency, audio is not SID), but I still think it captures the vibe. I’m all about vibe. 😉

Text Features! Info bar at the bottom, Commodore 64 font, large numbers on criticals, object names

Later that day, I added proper color scheme support. I have 2 schemes. Commodore 64 Colors:

For the Commodore Junkies

And Vivid Colors:

For everyone else

Finally, since yesterday (AKA. Christmas to some people), I’ve started roughing out items and inventory.

Okay, I thought it was pretty funny, so I left a 'feature' in that let me pick up the bodies of killed enemies

At the moment, the potion can be used, and that’s all the inventory is good for. I just today finished up a bunch of ground work needed, so I should be able to get equipping of items working today.

That’s all for now.

Again, I’m hoping to do these reports regularly. Monday sounds like a good day. No promises on when Mondays, but the goal is certainly sometime Monday. Ta!

Ludum Dare Prototyping

Thursday, December 22nd, 2011

I wont talk too much about how Ludum Dare itself went, as I’ve already done that over here.

But in addition to running the event, I participated for the first time in a long time. The theme was “Alone“, which I find funny given the title of my game. Could I not enter? 😉

About a week before Ludum Dare, I started toying with the idea of creating a demake of my game. I didn’t put too much thought in to it at the time, but it seemed like a good idea and a change of pace. Oh, and I decided to do it in JavaScript using an HTML5 Canvas 2D. Again, a change of pace.

What I didn’t realize though is that it was a GREAT idea.

The past few months I’ve been spending majority of my time building the tech I need for the game, but not spending so much time on the gameplay, the mechanics, and so on. So I have a bunch of pieces working together, but not much game.

So once the Ludum Dare theme is announced, I ran with the demake idea, and about 3 days later I have something far more fun and interesting than I had before… Written from scratch, in JavaScript.

Fighting some Bats

It’s short and not a deep game, but it is a functional prototype that demonstrates some ideas and goals of the design. That’s what prototypes are for: trying out ideas.

You can try it here:

– Best played in Firefox, in Full Screen (F11).
– F5 to reload (WHEN you die, MUAHAHA!)
– If using Flash Block or NoScript, enable Flash. It needs Flash Player 9+ for Sound.
– Arrow Keys, Mouse, or Touch Screen.
– Works on all current Browsers. Some may lack sound.
– Works on all current Mobile Browsers too! Best in Firefox Mobile (w/o Sound).

I wont say anymore. If you’re up for something quick, give it a try. Let me know how your first play-through went, how well you were able to do, and perhaps how many deaths it took. 😉

I actually did not finish the game within the 48/72 hours of Ludum Dare, but just a few hours later than that. It was a mostly good event without too many website problems, but right at the end the ENTIRE INTERNET decided to link us and considered us newsworthy! We were a headline news story on IGN PC nearly all day. Sure, the story was about Notch and the game he made during Ludum Dare, but still. Holy cow! IGN, Kokaku, Joystiq, Rock Paper Shotgun, Destructoid, The Escapist, Edge, PC World, BBC, Wired, Venture Beat, The Verge and Geek to name just a few. 🙂

So, I had a pretty good excuse for being late. 😀

Creating the demake has been an incredibly beneficial to the design. For one, I have something playable right now that can be critiqued. There’s going to be a lot of iteration and improvements, before it becomes a shippable product. And I honestly cannot complain about it taking only 3 days to get it working. That is fast. I am seriously, almost committed now to finishing this HTML5 incarnation of the game, and releasing it as a sort of prequel. That way I can step entirely through the design, start to finish, and have a better well-tested core design for the one I want to charge money for.

Admittedly, I’ve been avoiding prototyping and experimenting in languages that aren’t C++. I was never comfortable with the idea of writing code that *must* be thrown away, due to syntactical differences. I have, on a few occasions, wanted to write a sort-of language converter; Write code in some general dialect, and export to the variants. I briefly looked in to haXe, but really didn’t like how fat the C/C++ generation was. Nothing ever came of that desire though.

JavaScript I rationalized by the rather safe assumption that “JavaScript will never die”. I certainly don’t plan to stop using the Internet any time soon, and HTML+JavaScript are pretty much all internet. So learn to love it, and you’re better off.

And actually, I do quite like the language. Unlike Java, it does not force OOP style designs. You can OOP, but you don’t have to. It feels more like a really wacky version of C, with super flexible macros, than it does Java. Structure can start hacky, dirty, or essentially functional, and over time it can be cleaned up. It’s nice.

The future of Flash is a bit uncertain, though it sounds like Adobe will be making it more of a general 3D gaming VM, to solve the whole WebGL problem on the desktop (i.e. Microsoft’s Arrogant Pride X). And that’s cool. That sounds useful to my native codebase. But I’m left concerned about where that leaves a large codebase built over the next few years. It may do sound, but it’s still not going to run on iPad. So Mike, Mr Portable Code, has decided JavaScript should be his #2. Prototyping, game jams, and since it’s the whole internet, we can accept it.

What’s also nice about JavaScript is its similarity to Squirrel. Sure, JavaScript/EcmaScript is the old man, the daddy, the parent of the relationship, but after much homework Squirrel is what I chose for my embedded scripting in the new game. It has distinct floating point and integer types, among other things. In general it’s designed as a Lua alternative, embedded scripting, conscious of the things us game developers care about (memory usage. GC is optional). And hey, best part, it counts from zero instead of one, unlike Lua. It’s been a while since I dabbled with it, and honestly I haven’t done much with it. But after a review of it this morning, I’m actually quite pleased to see much, if not all of the syntactical features I got comfortable using in JavaScript are available in Squirrel. Heck, it looks like I’ll be able to bring over some of the code as is; Rename a few “var’s” to “local’s”, a few other minor tweaks, and that’s it.

Very encouraging.

So that’s my little rambling. I’m still shooting to meet my “Learn more GDC time” goal, which means March, which means ~2 months from now. What exactly I’ll have for then is a little different than I had hoped originally, but just as good. Back to work! Lets see what I can finish before the end of 2011. Go go me!

A Better MinGW + MSys Shell

Sunday, December 4th, 2011

Pekka posed a good question recently that got me thinking: The default Bash shell that comes with MinGW (MSys) kinda sucks. You can’t resize the Window, selections are this odd visible only thing, in essence: it works like an ordinary windows cmd shell.

The solution is surprisingly straight forward: Use MinTTY.

Open up a MinGW shell, and do the following:

mingw-get install mintty

A few moments later, you’ll have MinTTY installed. By default, Msys.bat will use its default shell. To explicitly use MinTTY, right click on your MSys shortcut and edit the Target.

C:\MinGW\msys\1.0\msys.bat --mintty

There. Done. Now your MinGW+Msys shell is as good as a typical Linux one.


Now if you REAAAAALY want a bad-ass looking shell, if you have Windows 7 with Aero, right click on the icon in the top left and choose “Options…“. Under the Window section you can change default shape of the Window, but the *cool* part is the Transparency. Pick the “Glass” option. You are welcome.

Double Bonus

If you’re modifying a batch file that explicitly starts a shell (Blackberry, like in my prior article), you should call MinTTY as follows:

start mintty /bin/bash -l

start” is a batch command that runs the command in a separate thread, thus not halting the current batch file. MinTTY takes any command with arguments as its argument. If you reeeeally want to try something wild, pass the standard Windows CMD shell to it.

start mintty cmd

How do you like them apples?