Ludum Dare 23 postmortem 3

(Part 1 | Part 2)

Making Enemies

Saturday I developed Enemy AI and Food. The first Enemy was actually done Friday, simply a renamed, re-colored (red) variant of Player with a collision event to handle contact with the Player, and the control scheme modified to have the Enemy bacteria follow the nearest Player bacterium, not the mouse.

What resulted from this was actually surprising: (more…)

Ludum Dare 23 postmortem 2

(Read Part 1)

Once I decided that my idea to create a game based on bacteria was both interesting and within my capability, I needed to figure out if it would be technically feasible. I knew that I would be working in Game Maker, because I know it the best and can get results quickly with it.

Choose Your Weapons

I toyed with the idea of (more…)

Ludum Dare 23 postmortem

Is it supposed to be ironic and funny that they call these things post-mortems? What died?

My mind rebelled when they announced the theme Tiny World. There was another theme that I’d hoped would win, because I’d recently had an idea to do a game like that one. But it didn’t.

Friday night I was hanging out (more…)

Bactarium: Tiny Worlds – A Ludum Dare 23 Game

I participated in my first Ludum Dare over the weekend. The theme for Ludum Dare 23 was “Tiny World”.

My game is called Bactarium. The title is a portmanteau of Bacteria and Terrarium. It takes place in a petri dish.

Bactarium by Chris Sanyk - LudumDare 23 "Tiny World"
Bactarium by Chris Sanyk for LudumDare 23 "Tiny World"
Source and win32 .exe build.

Ludum Dare submission page.

Tutorial: Building a Game Maker Extension

[Update 1/13/2014: See the official GameMaker documentation and this MSDN blog entry for how to build GM Extensions directly inside of GM:Studio. The GM Extension Builder tool that I explain how to use in this article will build GEX that can work with GM 7, 8, 8.1, and GM:Studio. As long as the GML used in the extension is compatible with the version of GameMaker that the extension is added to, the extension should work. ]

One of the nice things about Game Maker is that it is extensible. Developers can make their code more re-usable by converting their GML scripts to Game Maker Extensions. Once the .gml code is packaged in a .gex extension, you can import the extension into Game Maker and use the functions it provides in any project with ease. This means over time you can build up an entire library of re-usable functions that you can bring into your projects, saving you time and allowing you to focus on building new stuff instead of re-implementing the same basic things again and again. (more…)

Crowd Funding

I became aware of Kickstarter a few years ago when hacker historian Jason Scott of textfiles.com tried to raise $25,000 to fund “The Jason Scott Sabbatical“, a year off from work to be devoted to a documentary project that ended up being Get Lamp. For $50 I would get a DVD copy of the documentary after it was finished, if he finished it. This was a big If, but I had seen Jason’s excellent BBS documentary and that was enough to sell me on the project.

To me, it was clear: I wanted to see a documentary about text adventure games. Here was someone who’d probably find a way to do it anyway even if he couldn’t raise the money, but it might end up taking years longer for it to happen without funding. I’d never spent even $20 on a major DVD release from a big studio film that already existed before, but I was happy to give $50 to Jason in order to have a chance at seeing what he could do with it.

Then I waited. And waited. Meanwhile, Jason worked his ass off and made a kick-ass documentary, produced a DVD, and I got it. Along the way I got many updates from him describing what he was going through, sometimes a video clip. The whole time I felt completely confident that his project would succeed, barring a plane crash or heart attack or something. And successful it was. I was so happy when I received my copy in the mail. It seems like yesterday, but it’s been a couple years now. It retrospect it feels like it happened so quickly.

When Jason came around again saying he’d produce three more documentaries for $100k, I gladly put up $250 to get a copy of each of them. If it doesn’t happen, I’ll be sad, but not for the $250. I’ll be sad because we won’t have our culture enriched by three amazing documentaries, and because it’ll mean that Jason’s been incapacitated somehow, and both of those things are worth being sad about.

Today, Kickstarter has become an increasingly popular way of raising money for various projects. It’s a beautiful thing, the internet making it possible for someone with an idea and drive to find a way to make a dream happen, for someone with vision to share that vision with people and find individuals willing to put their faith in it, and allow that person the means to work on achieving their vision without the undue compromise and loss of control that can accompany venture capital.

A few months ago, a major Kickstarter success created headlines when Tim Schafer’s Double Fine Adventure project went viral, raising over $3.3 million, or about 8 times their original goal. Double Fine’s success came due to Schafer’s reputation and track record (Monkey Island, Day of the Tentacle), and the fact that he wanted to do a game project in an underserved genre that once was really popular, and apparently still is after all, despite the so-called “triple-A” industry choosing to ignore it for many years.

One way of looking at Kickstarter, at least for certain projects, is as a way of dressing up “pre-sales” and getting good marketing for a product that would have existed anyway. I avoid anything that looks like this, which is why I didn’t put any money into the Double Fine Adventure project. If and when it comes out, if it looks good, I’ll just buy it. If it sucks, I won’t. I prefer to put my money into projects that may not happen without my $10 or $50. But a lot of people didn’t feel that way, or their love for Tim Schafer’s work was enough for them. I’m sure a lot of them simply got caught up in the excitement and wanted to see how high they could push the total, too, because people are like that.

So it’s a time of exuberance and good feeling for Kickstarter. A time of irrationality, as well. There’s a manic party atmosphere surrounding successful fundraising drives, jubilance and celebration.

But what we normally think of as success isn’t just the raising the money part. It’s the doing it part. This takes months and years. And it’s never guaranteed to be successful, or be everything that everyone hoped.

It seems inevitable that at some point, there will be a high profile failure. Imagine Duke Nukem Forever as a Kickstarter project. Imagine a Bernie Madoff Kickstarter. Oh noes! So I’ve begun to notice a few people have begun to express concerns and doubts about Kickstarter, a creeping negativity. A dose of realism is a good thing, but I still think Kickstarter is a great thing and I would rather see many projects attempted and a good number of them fail than no projects attempted.

It should be obvious, but with all the exuberance it’s good to remember that there’s always risk in life, and Kickstarter projects are no different. But the possibility of failure shouldn’t dissuade you from taking a risk. You should normally only take risks that you can survive if the risk pans out and there’s failure.

Most if not all Kickstarters have backing levels that allow you to support a project at a tiny amount of risk. How much you’re willing to donate is a personal choice, and if you’re comfortable with donating the amount money, it should be with the understanding that it’s possible the project could fail. Is it still worth it to you for the chance to see it succeed? Then go for it.

Another obvious point: It’s a good idea to evaluate the Kickstarter proposal to get a sense of how likely it is that the proposal will result in a successfully completed project. Do research on the people behind the project and find out what they’ve done. If they have a track record that suggests that they can do it, it’s probably a safer bet that they will.

But a big part of the beauty of Kickstarter is that it allows people who have no track record, but who do have a dream and some ability, to get a chance to try to realize that dream, instead of getting sucked into a low-level peon position and soulless corporate slavery. If the person has no track record, but still presents themselves well, and somehow demonstrates that they are prepared and understand what they’re getting into, and if the project idea means something to you, it’s worth taking a chance on, at least a small one.

Kickstarter doesn’t take just anyone’s proposal, and they do a number of things to make sure the ones they do take on have a better chance of success. Kickstarter doesn’t just allow people to market their fundraising efforts for worthy projects, they provide guidance. I believe Kickstarter understands that in order to remain successful at funding projects, they need to guard their reputation and ensure that as many of the projects that get funded through Kickstarter do end up being completed, and have a realistic chance of it from the beginning. Still, there’s always that risk… so, no one’s throwing money they need in order to live on Kickstarters, right? If you’re comfortable parting with the amount, and you think the project would make the world a better place, then take the risk, I say.

HealthHalo extension for Game Maker

I whipped this up in about a half hour at the April Cleveland Game Developers meeting. It’s a very simple, but useful function which draws a Health Halo [aka “health meter”, “life bar”, etc.] above the sprite of any Game Maker object that has member variables named life and maxlife.

Health Halos are very common in multiplayer and RealTime Strategy (RTS) games.

As always, the source is freely available, along with a demo project. Download the extension package .zip file from the Releases page

Notacon 9 Game Maker: Crash Course presentation materials for your consumption

Game Maker: Crash Course materials are online, open to the public on Google Docs.

Here’s what you get:

Presentation slides. Be sure to read the notes, there is actual information. More than would fit into the talk itself!

Space Invaders Kit. All you need is Game Maker installed and you can build it yourself! A great way to get started. Includes:

  • starter project file,
  • final project file,
  • final project .exe build,
  • sprite images,
  • sound files.
  • step-by-step instructions for how to do it!
  • project specification document — a good way to start out any project is to document what you want it to be. Follow this as a template for your own designs!

Notacon 9

Notacon 9 weekend is over.

I gave my Game Maker Crash Course talk, which went well. I livecoded Space Invaders using Game Maker 8.1. This was my first-ever livecoding talk, and let me tell you, it’s not easy to talk intelligibly while coding!

I was really anxious about screwing the talk up the night before, but when I got into it I was able to keep my mental focus in both the talk and in the code, and got through enough of it in 90 minutes that I felt like I’d gotten most of the fundamentals across, and took Q&A at that point. The talk went much better than my first go at it at my sneak preview/dress rehearsal, which means the March 10 rehearsal did it’s job admirably — but there was still a lot of things that I glossed over and didn’t explain as fully as I’d intended in my notes and slides.

But I think that actually worked out better (it was more an ad lib to go off script than an error), because I ended up just sticking to the immediate project and didn’t digress into confusing subjunctive sidebars about all the other things one might possibly do in Game Maker with a given type of resource, Event, or Action. I only flubbed a couple times (apart from the intentional errors that I made to demonstrate how the process of building up a project iteratively really looks — building and testing incremental bits of progress toward the final project), and recovered gracefully and kept the talk moving, and I didn’t end up needing my detailed outline notes at all. I’m not sure how well the audio got picked up by the microphone, as I could not really hear myself over the monitors at all while I was speaking, but it will be interesting to see if they can do anything in post-processing to salvage the video.

One of the best things at Notacon this year, and possibly one of the best all time things at Notacon, was the Artemis Starship Bridge Simulator workshop led by Mike Substelny and Tom Robertson. I was very happy that they came to their first Notacon in a roundabout way because of me. When I was working on my proposal for A Game Any Game, I approached Mike and asked him if he would like to help me out with a Game Maker workshop for the weekend. Mike was the instructor who led the intro to game design class at Lorain County Community College, which is what finally got me back into game design and programming, and I thought it would be a lot of fun to work together on a project like this with him. He declined at first, but after thinking about it some more decided to submit his own proposal with Tom, and that’s how that happened. I love seeing my enthusiasm for community events bring in more people and their energy for the things that they are enthusiastic about.

I saw a lot of friends this year, and by that I don’t mean the usual hacker scene personalities; I mean local people who I’ve known for years, but never had seen at Notacon before. Even though I always felt many of them would be into it and enjoy the talks and activities, and many of them were friends or friends of friends with people who went each year. I’m not sure whether my talking about how great it is to be there for the past three years had any influence or not, but it doesn’t really matter.

However, this year’s event was quite a bit smaller than past years, overall. I’m not sure why that is, and it makes me wonder. The same good feelings were there, about being at a great party with brilliant people, and actually in some ways maybe they were stronger than past years, the luminaries and bigger personalities who were missing gave the event a more down to earth and sedate tone and I think maybe allowed those who were there to embiggen themselves a bit to fill out the empty space more than they might have otherwise. I felt like there was something missing for much of the weekend, so many people who’ve been coming for years who weren’t there this year.

A Game Any Game was not as successful as I had hoped, but ever since I submitted the proposal to do it, I had this feeling that it would be difficult to attract participants when there’s so much else to do all weekend long. We had a few people come to the table we were at, to talk and get the software from me, and build a little start of something. And any amount of that to me counts as win. I hadn’t planned on making a game myself, as I’d wanted to be available to help others with their questions as they got acclimated to Game Maker, but with the lack of participants, I ended up working on a game and completed it just before the event ended.

It really isn’t much of a game, in fact it’s really pretty broken in some ways, and the code, if you look at it, it quite rough. As I worked on it, I had the feeling I used to get from drawing margin doodles while sitting around waiting for inspiration to grab me. It was less an attempt at designing something good, and more an experiment, to stretch my legs a bit and do something I hadn’t done with Game Maker before, and so I chose to do a game that used mouse controls. Doing the controls was a little tricky, mainly because I wasn’t sure exactly what I wanted, and I’m not certain that the approach I ended up with is the best, and probably it isn’t, but for the purposes of exploring the mouse functions and doing something with them, it was a good experience. I only spent maybe a total of four hours over the weekend seriously engrossed in building it, and much of the rest of the time I was working on it, it was an aimless, design-less exercise.

So, enough excuse-making, I think I’ve adequately established that this is probably not worth playing, but for posterity I’ll have the .gm81 file water if anyone wants to look at the code, build it, play it, or mess around with it. I don’t plan to develop it further.

I’m planning on getting back into MUST!GET!EGG! in the next week after Ludum Dare. For those who I met this weekend who might be reading this, that will be a more inspired creation and should be a decent game by the time I finish it.

MUST!GET!EGG!

Inspiration strikes in unexpected ways sometimes. This morning while I was listening to the news on the local NPR affiliate, a story came on about an easter egg hunt in Colorado that was canceled this year because the year before, parents were out of control, being aggressive about making sure their precious child got an egg before they were all snatched away by the villainous other children.

I was so appalled by the story that I made the following snarky quip on Facebook:

MUST!GET!EGG! genesis

The imagery was so strong that I knew I just had to work up the idea into a full concept and design, and then build a game. I wrote up a little design document today and I liked it, so I put in a few hours this evening working on it, and it’s still very early but I think this will actually be a decent game when it’s all done, if I can make everything work the way I want it to.

So far it’s very crude, but in less than four hours I had playable characters roughed out. Here’s the shotgun-toting Hunter in action:

MUST!GET!EGG! alpha screenshot

One thing I noticed about this creative process is how satisfying it is to have an angry reaction to a news story and turn it into the inspiration for a creative work. This is how I know that I’m a game designer: when my first response to something is “Make a game out of that.” Doing it in response to something that makes me feel is what makes me an artist.

I also found the game concept itself very satisfying because it’s so inappropriate — it’s hard to get much wronger than having shotgun-toting hunters gunning for bad parents at an easter egg hunt to teach everyone a lesson. If this were done up as anything but a zany pixel-art graphics 2D game, it’d probably be disturbing and controversial. As it is, I suppose in the next few weeks or months if it gets noticed, it may end up generating some controversy, especially if the news media picks up the story of this game as sortof an echo of the original story.

The thing that makes me happy about this project is just how quickly I can work when I have a spark of creativity. My Game Maker craftsmanship continues to improve and I find that I can make things very quickly, which is essential for me. Unlike the experience I had with the Global Game Jam back in January — which was amazing in its own right — tonight I didn’t have to go through the agony of losing work due to a corrupted project file, and having to rebuild everything. I worked quickly, and got results quickly. I can imagine completing a full project like this in maybe <100 hours, which is fantastic.

Every time I pick up Game Maker and build something with it, I get a little more confident, find it a little easier, and learn a little more. It feels great.