speed = s/invaders_count;

Another Space Invaders HTML5 update. The only thing I did with this build was fix the speed increase. It dawned on my after watching video of the original that the speed increase was gradual, not that it picked up at specific numbers of Invaders remaining. Reading about it on Wikipedia, I learned that the original Invaders were actually constrained in speed by the hardware, and that as you destroyed more of them, the CPU had fewer things to do so took care of updating the remaining ones in the phalanx faster and faster.

I still have yet to implement the bunkers; it’s not straightforward to do destructible sprites, and I haven’t yet looked into methods for accomplishing it yet, but apart from fixing the high score glitch that’s all that’s left.

Oh, I suppose I could give extra lives after a certain number of points scored, if you insist.

Play Space Invaders HTML5

I’ve met some amazing people.

I’m going to relate a story that just happened to me that got me to thinking: I’ve really met some amazing people in my time.

The other day, I was trying to log into the Global Game Jam website, and was having a hell of a time remembering my password. Stupid me had forgotten my password, which isn’t a big deal since the website, like just about any website has a forgot password feature. But for some reason this one was driving me nuts. I’d get the email to reset my password, click the link, log in, change my password, then log out to verify I now knew my password by logging back in again, and it would tell me I wasn’t giving it the right username/password again.

After a dozen or so times doing this, I went to the web site and clicked Contact, and wrote them an email describing the problem I was having.

I got an email the next day from Elonka Dunin. She suggested that I try logging in with my username as my username, and not my email address. A lot of websites these days use your email address as a login name, since they generally uniquely identify a user. And a lot of websites are done in such a way that you can log in either with your username OR the email address that you used to create the account with. In this case, they didn’t. But I didn’t know that. And because I didn’t sleep much that weekend when I created the account, I didn’t remember or didn’t notice, or both.

Now, ordinarily, who cares, right? It’s just one of those things, a “me being dumb” moment out of maybe a million I’ll have in my life, if I’m lucky to live that long. Nine times out of ten, I might have not cared about it enough to bother notifying the web site that it has a problem, and would have just not bothered logging out, or I would have just continued using the reset password method to get back into the site until I really got sick of it. But actually, in my case, I have been using the Global Game Jam site from multiple computers, and it was bothersome to have to go through the whole process every time, and, besides, it was driving me effing bonkers to have the web site tell me every time I tried that I couldn’t for the life of me enter my @#($#(& password in correctly, even when I @#(&%((^ well knew that I’d been @#($&#@&(^* entering it correctly. So, this one time, I bothered to write and let someone know I was having a problem, and someone was nice enough to help me fix the problem.

The story might end there, 99 times out of 100. But Elonka had written to me from a gmail account, and so the next day after I’d replied to her message thanking her for her help, I got a notification from pidgin asking me to authorize new buddies, and Elonka’s account happened to be one of them. I figured I didn’t need to chat with her, and probably wouldn’t ever need to again, and I’m not normally an outgoing type of person, but for whatever reason I figured “what’s the harm” and I clicked Authorize.

So, today, I get home from work and I’m all set to go swimming at the Y. I have a little time to kill, so I fix myself a quick dinner and I try to watch The Daily Show from their website. Only, their Flash seems to be all glitched up and the stream keeps interrupting and restarting, and then REALLY starts messing up and playing commercials over the top of the show, and then crashes entirely. I keep messing with reloading it, hoping to get the show in before I have to leave to go swimming, but as is often the case with computer problems, I get sucked into it and before I know it, it’s too late to go swimming.

So, because of that, I happened to be home when I got the IM from Elonka, asking me if I was OK with getting into globalgamejam.org. I say yes, wondering why she was asking since I’d already replied to her email with my thanks. Ordinarily I might have just ignored the message, not out of rudeness, but out of this driven focus to try to manage my time effectively. But for some reason, instead of closing the window I thanked her again and I figured that was going to be that.

By now, you might be wondering who Elonka Dunin is. Well, I wasn’t sure myself, although the name had sounded familiar for some reason. It turns out, this is who she is. So, I wrote to globalgamejam about an authentication problem and I didn’t get a response back from some volunteer intern college student, or an outsourced helpdesk monkey. I got a response from someone who happens to be Chairperson Emerita and one of the founders of the International Game Developers Association’s Online Games group, has contributed or been editor in chief on multiple IGDA State of the Industry white papers, and is one of the Directors of the Global Game Jam. I had no idea.

For reasons I’m not quite clear on, she went on to ask me if I was planning on attending Notacon this year. I was a bit puzzled, but I guessed that she had read a mention of it in my Game Jam project page or something. I’m speaking there, in fact, so I told her about my talk and about how I was organizing a tiny little Game Jam event this year. And she said, “Wow!”

Elonka Dunin: "Wow!"=D

Dude, I got a “wow” from Elonka Dunin.

It turns out she has some family in Cleveland, and has herself spoken at Notacon, and she knows my friend Aestetix, who probably more than anyone else is responsible for helping me find my way into the hacker scene. Small world!

She also complimented me on my blog entry postmortem on the Game Jam, and mentioned that she had sent it to some other people as an example of good writing.

So I’m sitting here, feeling kindof struck at how amazing tonight has been for me, and how a series of seemingly inconsequential events strung themselves together to make it happen. And it also made me think about how many amazing people I’ve met and gotten to know at least a little bit in the last couple years since I stepped out of my comfort zone and offered to pick Aestetix up at the airport in exchange for being his “plus one” to get in to Notacon 6, just so I could meet this cool guy I’d been reading on livejournal since forever.

I guess I’ve come a long way from that time. In many ways I feel like I’m still just getting started, but I guess I should start getting used to the idea that people are going to know who I am before I tell them if I keep this up. What a strange realization to have for someone so used to feeling invisible.

Space Invaders HTML5 updated

I’ve uploaded an update for the Space Invaders HTML5 demo. This version is almost complete.

Play Space Invaders HTML5

Fixes:

  • Game Over works properly
  • Game resets properly when level clear

Both issues were caused because Game Maker HTML5 games do not work with user-defined Triggers when a game is built as an HTML5 application. I worked around this by re-implementing the Trigger code in the Step event instead.

New features:

  • Invader count is correct: 55 per screen.
  • Motherships.
  • Aliens speed up when their numbers are reduced. (This is proven in concept, I haven’t added all the speed ups yet. Aliens are still moving smoothly rather than marching in discrete steps.)
  • High Score screen now displays scores.

Still working on the High Score screen. It is not working correctly; the list only stores the top 1 score, not the top 10. It’s also not as pretty as it could be.

ASCIIboros submission for Global Game Jam 2012

The “theme” for Global Game Jam this year was the Ouroboros, the mythical snake that eats its own tail in an infinite, recursive cycle of death and rebirth.

Ouroboros, the snake that eats its own tail

What a freakin’ cool theme that is. Seriously.

I ended up working solo on an idea that I had. My first thought was to make a platformer where you loop through a single level infinitely as you are chased by the “snake head” that eats the level behind you. Each time through the level, things you do in the last pass through cause some change so that the level, while still recognizable as itself, has gotten more difficult. Next, I thought that rather than make the level more difficult, it could be a puzzle that you’re stuck in until you do the right thing to escape, much like the later castle levels in the original Super Mario Bros.

I had never made a platformer before, but had enough experience in Game Maker that I felt confident I could pull something off. To facilitate rapid solo development, I embraced lo-fi graphics. They’re cheaper and easier to make, and without a team behind me I wouldn’t have much time to do more. My friend Steve Felix from the Cleveland Game Developers meetup stepped in and helped me by producing the run and jump animations, based on my original stick figure. Everything else in the game is all me.

The lo-fi look is a nice homage to the 8-bit era, and lends itself to thinking about low-level computing. You feel closer to the metal when you have fewer bits to make reality out of. This led me to my idea for the core mechanic of the game.

Binary and Source Download Here

Global Game Jam ASCIIboros project page

(more…)

Space Invaders HTML5 updated

Added some sound effects, fixed the “invaders touch ground > game over” bug.

Space Invaders HTML5 Demo

Game Maker HTML5: First Impressions

[Editor’s note: Be sure to read the follow-up to this article.]

I’ve only been a Game Maker user since August 2010, but I have found it very easy to pick up and learn quickly — so much so that by February 2011, Packt Publishing noticed my blog and asked me to contribute technical review on their upcoming Game Maker Cookbook. Game Maker has its quirks, but it has one of the gentlest and most accessible learning curves of any programming environment that I’ve tried so far. It has its detractors, and it does have some weaknesses, but overall I like it a lot.

YoYoGames is giving away licenses for their still-beta Game Maker HTML5 for participants in Global Game Jam. Kudos to them. What a great way to support indie game developers! Considering that the beta for GM-HTML5 is $100 for a license, and Global Game Jam is free, this is a rather good deal. I happen to be participating in Global Game Jam this year, so it provided me with a code that allowed me to download a copy of the software for use with a time-limited license key.

Wasting no time, I spent the rest of the evening producing a quick demo game to get familiar with the new program, and learn how it works. I was able to build a mostly-working Space Invaders clone in just a few hours.

Here, then, are my thoughts on the product so far: (more…)

Game Maker HTML5 test drive & demo game!

Too tired to write full blog post. This shall suffice for now.

I finally got my hands on Game Maker HTML5 beta, and whipped up a quick HTML5 Space Invaders demo. It’s decent, but has a number of bugs that are not present in the Windows .exe build.

You can play it here:

https://csanyk.com/cs/releases/games/HTML5/SInvaders/

What’s broken in HTML5: The game over function, and the level reset function. That’s basically it.

Still unimplemented: sound effects, high score board, the mothership, invader speedup.

I cheated a bit and made the invader movement be smooth instead of stutter-stepping. If I go through the trouble of improving this all the way, I’ll take care of that at some point.

Look for a post on my thoughts about Game Maker HTML5 sometime after Global Game Jam weekend.

In the meantime, play the Space Invaders demo and let me know how it works. I’m curious how it performs in different browsers, so definitely drop me a comment if you try it out, and let me know how it is on your browser.

 

 

 

Notacon 9: A Game, Any Game

Notacon is an annual technology conference held in Cleveland, Ohio that I have been going to for the last few years. This year’s conference, Notacon 9 runs from April 12-15, 2012.

I spoke last year at Notacon 8, and enjoyed it so much that this year I’m putting together another presentation, a crash course in Game Maker, AND organizing an event for the weekend, called A Game, Any Game. A Game, Any Game will be a 72 hour sprint to develop a working video game.

I took a little inspiration from Ludum Dare and Global Game Jam, and a little from the fact that too many of the people I’ve met through the Cleveland Game Developers meetup still have not built a finished game. I want to give everyone who participates the opportunity to get past that milestone in a weekend, and feel that sense of accomplishment that makes you feel so good.

As its name implies, A Game, Any Game is intended to be very open-ended. We’re aiming to provide a venue and encouragement, and just enough structure to give participants the traction they need to create a game in under 72-hours. It is not a competition; the idea is simply to make a game, any game, and get it completed in the 72 hours we have during the conference. Participants are encouraged to use any and all tools that they have at their disposal to make their game, and if they have never done anything like it before, they’re invited to attend my talk, Game Maker Crash Course. People can choose to work on whatever ideas they feel like working on, but if they need some help brainstorming, I’m going to come up with something to help seed the clouds.

For me, it’s going to be really interesting to see how many participants we can attract, and how many finished games we can produce. This is the first time in a long time that I’ve tried to organize something like this, and I think the key to it being successful will be promoting the event effectively to get people interested in doing it, and then making their experience great.

I think I have more ideas on how to make the experience (hopefully) great than I do on how to promote. Aside from blogging about it here, tweeting my fingers off, and telling everyone I know, what else can I do? I’m asking anyone who’s reading this to spread the word. Tell anyone you know who might be interested about Notacon and the A Game, Any Game event. If you use Twitter, the hash tag #n9agame will be used for any business related to A Game, Any Game. You can follow my tweets as well @csanyk.

Cleveland Game Devs in Global Game Jam 2012

The weekend of January 27-29, 2012, Cleveland Videogame Developers are participating in Global Game Jam 2012 (twitter hashtag #GGj12). This event will be hosted at Lean Dog Software.

Cleveland Game Devs on Meetup.com

Event page on Meetup.com for GGJ12-Cle

Registration for GGJ12-Cle

On the life of Steve Jobs

The very first computer I ever saw in person, or touched, was an Apple ][e. It was in the Fall of 1980, and I had just started first grade at Pine Elementary School. It was in the school library, and, as far as I knew, it was the only computer in the school. I don’t think they let the first grade do anything with the computer, but when we got our orientation of the library, they showed it to us and told us what it was, and explained the monochrome display to those of us who knew only color television.

That was it.

That year, for Christmas, we got an Atari 2600. I didn’t know it at the time, of course, but Jobs and Wozniak had also worked at Atari for a time.

These two computing devices probably had more influence over my life than anything else.

In second grade, I went to a new school where they had many computers — several Apple ][ and a bunch of Commodore 64’s. I got to learn about BASIC and Logo and word processing. In college, I used a Mac Centris 610 which I upgraded a few times, and it served me well for about 6 years — pretty good, considering how quickly technology becomes obsolete.

I can’t remember when I first learned who Steve Jobs was. By the time I was really aware of Apple Computer as a company, he was already out. In fact, during the entire time I was a Mac-only user: 1993-1998, he was even not with the company.

Although Jobs was said to be a perfectionist, Apple products have never been perfect. They’ve merely been better than anything else anyone else has on the market, or had even thought of, and more often than not delivered more than the public expected or even knew to expect. This often gets mistaken for perfection, but really the idea of perfection is misguided to begin with. Jobs took great ideas from everywhere around him, often made them better, and integrated them into a cohesive package and brought it to market ahead of the rest of the industry. And he did so consistently for many years.

Where do you go when you achieve perfection? Nowhere, right? You’re done. Well, year after year Apple delivered not perfection, but something even better: an elevated expectation which few people could have expected previously. What was thought to have been perfect last year if it had been delivered this year wouldn’t cut it next year because by then we’d already have ideas for things that would be even better. He did it so many times, so consistently that on occasions when he didn’t, people were disappointed by the merely incremental evolution of the new.

Thanks for that.

So, the world learned about Steve Jobs’ death yesterday, and everyone’s talking about his life and accomplishments, his personality, his greatness, and what it all means.

For most of us, we know of these things secondhand at best. As such, I am unqualified to speak about them.

I will say, though, that I can’t imagine my life without Apple Computer and Steve Jobs. And many other brilliant and talented engineers and designers as well. But Jobs deserves the credit he gets for leading them and having the vision to re-shape the world.

I wonder how much of what we think we know about Steve Jobs is the young Jobs. I don’t know that we know all that much about the mature Jobs. He was very private about his personal life, despite being the one of the most recognizable CEOs in the world, and the public face of Apple for many years.

When I think about the legend that was made out of his biography, I think primarily about the intensely motivated, young Jobs who wasn’t always the nicest person to be around or work for, but who was dedicated to an uncompromising vision of quality and greatness which he demanded, and mostly got. Greatness, which, for the most part, forgives him the feelings he might have hurt or the stress he might have inflicted upon those under and around him. He had a charisma which attracted many of the best people around him despite not always treating them fairly.

I think about that Steve Jobs, and wonder, given the times and the climate, how he could have gotten done what he did had he been anything other than what he was. Obviously, there’s no way to know, but I think the answer is no. The was Steve Jobs was was the only way he could have been and still gotten the things done that he did.

I wonder about this, not because I wish I could somehow distort reality, to revise history to make a “nice guy” Steve Jobs who still finishes first, but because the world needs many more like him, who have the kind of forceful vision that Jobs embodied in order to change our world for the better. And how do you produce a person like that? Or more cogently: how do you improve on a person like that?

Steve Jobs the human being wasn’t a perfect person, just as no one is. But the main criticism that seems to be leveled against him is that he wasn’t as nice as he could have been, or should have, to the people around him. Could we have improved Steve Jobs by making him a nice guy? It’s been said that Apple is a cult, and maybe cults are special cases, where abuse is accepted or even seen as necessary, because good, able people will often sacrifice themselves for what they believe in, and a cult leader like Jobs provides a real vision which people can believe in. Perhaps niceness would have diluted the vision.

But I also wonder, as he matured, if Jobs learned how to get the results he demanded without being the sort of person who most people probably couldn’t stand to work under for very long.

I don’t think so many people today would be saying such good things about him if he hadn’t. But I would really like to know what differences there were between Young Steve and Old Steve. At least in my mind, the reputation of Young Steve — they guy who’d fire you for little or no apparent reason, the guy who could be extremely harsh (albeit right) with criticism, sparing no feelings — tends to overshadow Old Steve in my mind. Was he still like that the second time around, or had he learned a better way?

I like to think that he did, but I wasn’t there; I don’t know. I’m sure there are people who do know, the people who worked around him for the last decade or more surely can answer that question.