GameMaker Studio Standard now Free

Today YoYoGames announced that they are discontinuing the much-derided free edition of GameMaker Studio, GM:S Lite. In its place, GameMaker Studio Standard is now free. Previously, Standard was $49, but often discounted to free for special promotions. The Lite edition was not favored by users for being too limited in features and resource constraints.

This is a good move for YYG, as it serves to strengthen their position among neophyte developers who want a first tool they can use for free. GameMaker has long been a “gateway drug” for many indie game developers and programmers, and making a free version that is actually useful will continue to ensure that new users will have little reason not to give it a try.

Their official announcement is copied below:

YoYo Games Ltd.

Today, YoYo Games announces that a powerful version of GameMaker: Studio is now available to developers for FREE. We’ve taken the resource-limited “Free” version of GameMaker: Studio and replaced it with a feature-rich version of GameMaker: Studio called “Standard.” The newly launched GameMaker: Studio Standard puts the full power of GameMaker: Studio at the fingertips of games developers everywhere!

If the cost of GameMaker: Studio was holding you back before, there isn’t anything holding you back now.

For more info, visit https://www.yoyogames.com/studio.

Game on!

Interview: Daniel Linssen

Daniel Linssen is an indie game developer who lives in Sydney, Australia, who I came to know after playing his first Ludum Dare creation, Javel-ein, for LD28. After releasing the full version of Javel-ein, he was cool enough to reach out to me to let me know of its existence, since I had so enjoyed the version he had made for LD28, and since then we’ve corresponded regularly and become digital pen pals. He is also the creator of Busy Busy Beaver (which won Bacon Jam 07) and FFFFFF for Flappy Jam. His most recent game, The Sun and Moon, recently won first place in the Overall category for Ludum Dare 29.

CS: Thank you for agreeing to do this interview. Ready to begin?

DL: As ready as ever!

CS: First, do you prefer to be called Managore or Daniel? What does the name Managore mean?

DL: Daniel. In the past I liked having a unique identity while still being anonymous, but I’ve given up on that.

Fun fact: For a long time “Managore” was absolutely unique. Then a year or two ago a Bulgarian company released an online game called Managore and my uniqueness was lost. Oh well!

The name doesn’t really mean anything. Years ago I started writing a (really terrible) sci-fi novel and one of the characters, some sort of biological experiment, was named Managore. And the name stuck.

CS: How did you get started making games? How long have you been doing it?

DL: The earliest example I can think of is as a kid I designed some Sonic The Hedgehog levels on paper. I think I was around 8 at the time.

CS: That’s something I used to do as well, designing games on paper. I think I did my first game concept when I was six or seven…

DL: I’m pretty sure the levels I designed would have been terrible. I hope yours were better!

CS: Nah, the stuff I drew up wasn’t that sophisticated. I’d do a drawing of a screen shot, and then narrate the rules and the player’s goals, point values, etc. and my mom would write them down for me. I didn’t do anything so sophisticated as a full-blown design doc or anything. It was just about the enthusiasm and instinct to be creative, and wanting to do it for real someday.

DL: There’s an old DOS game called Jetpack and I spent a long time using its level editor. The idea of a level editor was pretty novel for me at the time. Over the years since then I’ve played around with RPGmaker, C++, Valve’s Hammer Editor and Flash but never made anything that I could really call finished.

CS: What game projects did you work on previous to your first LD game?

DL: Well a whole bunch of unfinished or unreleased games, unsurprisingly. Actually the only games I’ve released so far have come from game jams. My first experience participating in a game jam was three years ago, I was working with a friend of mine. The game we made was a one screen rhythm platformer for Reddit Game Jam 05 (the theme was “love”) called Give In. I worked on the player controls (which are way too slippery) and the graphics (which I still kind of like the look of).

After that I started using GameMaker and worked on some exploratory platformers which will probably never see the light of day. Then, half a year ago I took part in the Bacon Game Jam 06 (the theme was “rainbows”) and made an action platformer called Violet, which I think of as my first “proper” game, if you can call it that.

CS: How do you approach a 48 hour event like LD? How is it different from when you are working on a game without external time constraints?

DL: I try to start off well rested but that’s about it. Sometimes I have an idea of what aspects of the development process I want to focus on or improve on. Once I have an idea and I start coding, autopilot tends to kick in.

CS: OK let’s talk about The Sun and Moon. I’ve just read your post-mortem article on the making of it, so hopefully we won’t rehash too much of that. I encourage readers to check it out for themselves.

First, let me just say congratulations on another fantastic game. For the record, out of 1493 entries for the LD29 Compo, you placed 1st Overall, 1st in Theme, 2nd in Fun, and 3rd in Innovation. This was just your second LD entry! Obviously, no one expects to win a category, but how well did you think The Sun and Moon would do when you finished it?

DL: Well I went into it hoping to make a game which I could be as proud of as my previous LD game, Javel-ein, and I think I achieved that. When I finished, I was really happy with how things had gone. Everything (well, except the music, but I was too tired to realize that at the time) had pretty much falling into place and the game’s mechanic ended up being a lot of fun. I was lucky not to run into any major hurdles along the way.

My hope was to get a medal in some category but I knew there were so many utterly fantastic games to compete with, so it was always something I was hoping for but never really expecting.

CS: How does it feel to have won the Compo?

DL: It feels amazing. I couldn’t believe it. It’s a dream come true.

CS: What does the title, The Sun and Moon, mean?

DL: Good question. I have all these good answers for why I chose “Violet” and “FFFFFF” and “Busy Busy Beaver”, but I don’t really have a good answer for The Sun and Moon. I was really struggling to come up with a unique and meaningful name. I had all these ideas written down. They’re pretty bizarre so they might be entertaining to read:

A World Divided, The World Beneath, It Spoke Quietly And No One Heard, A Hollow World, The Sun and Stars Both, The Sun and The Moon.

If you’re curious about ISQANOH… I honestly have no idea. I liked the sound of it.

Anyway, because it is such an abstract game, at least as far as my games go, I wanted the name to be up to the player’s interpretation, but I did have a reason for choosing “The Sun And Moon”. As I was developing the game I realized I needed to make the player change appearance while underground, and from that point onwards the player kept reminding me of the Yin and Yang concept. The dark version which falls and the light version which rises. The air and the ground. Complimentary forces. And one representation of the Yin and Yang is the Sun and Moon, so I went with that.

CS: Yeah… what was interesting to me about the title was, there wasn’t really any literal sun or moon in the game! I wondered about that, and was interested to hear what the story was, if there’d been some plan to get them into the game but you ran out of time, or… if, like the Sun and Moon were just metaphorical somehow..

DL: I worried that people might find the name a little too… artsy? But as far as I know that hasn’t been the case.

CS: I think it’s a fine title!

CS: The core mechanic of The Sun and Moon is to traverse a series of obstacles by selectively passing through solid platforms. How did you come up with the idea? How long did it take you to refine the specific mechanics (requiring a jump/fall to pass through the floor, buoyancy within a solid platform, the acceleration/momentum upon ejecting out of a solid platform, etc.)

DL: It just sort of came to me, after a long string of bad ideas. I was thinking about a bubble in a world made of water and air, and the idea evolved from there. I had a pretty vivid image in my head early on of diving into the floor and shooting up into the air and from that point I felt like I had come up with something fun. I stuck with that mental image and built the mechanic around it.

Originally you didn’t have to jump to pass through the floor. I planned to make the player “wobble” up and down if you were standing on the surface and held down the action key. The way I happened to code it meant that when you held down the action key, since your vertical speed was zero, the “wobble” wasn’t there. This worked well enough so I just left it that way.

CS: At what point did you realize you were on the right track?

DL: When I started making the levels. I posted a gif of one of the first levels I made and the responses were really encouraging. The more levels I made, the more content I was with how my game was going.

CS: How long did it take you to build the basic engine?

DL: Surprisingly not long at all. I mentioned it in the post mortem but I made a movement and collision engine called the Beaver Engine which I used as my starting point. The Beaver Engine is a stripped down version of Busy Busy Beaver, one of my previous game jam games, which took about 12 hours to write the code for.

It took a little rewriting to add in the underground physics and make it all work properly but overall the basic engine was pretty painless.

CS: What design decisions were hardest to make?

DL: We’ve already talked about it, but the name! I was actually starting to panic a little towards the end because I couldn’t come up with a name! Oh, also the player’s trail. I went through five or six iterations before I found something I was happy with.

CS: What features/ideas did you drop from the game?

DL: I’ve started to get a pretty good idea of how much I can realistically get done in a game jam, so I kept my feature list pretty minimal. I actually had time near the end to add in a few features such as the level select screen, which I wasn’t originally planning on including.

Speaking of features I wasn’t originally planning on including, I should definitely mention how much of an absolutely huge help it was having you give the game a go a few hours before the deadline. I remember you saying you wish there was a way to know which level you were on, which led to the level number appearing at the beginning of each level, and you said it would be useful to know which level had been played last, which led to the player sitting on top of the last played level in the level select screen. These were really important features that I wouldn’t have thought of at the time.

CS: Absolutely! It was an honor to have been asked, and to be able to provide a little feedback so you could refine the finishing touches on the game that ended up taking 1st Overall. I remembered thinking right away that it was a very strong entry, and I liked it from the first couple levels. I had the idea about the level numbers because when I was giving you feedback, I didn’t have an easy way to reference which level I was talking about. So it was a fairly obvious suggestion.

DL: Fairly obvious to anyone but me! I guess it just really helps to have a fresh perspective with an eye for what’s important.

CS: True; when you’re in the final hours before deadline, your focus tends to be on the most critical elements of the game, and finding bugs. Being able to look at the game with a fresh perspective just isn’t possible, so it’s valuable to be able to get feedback from someone who hasn’t been staring at it for the last 40+ hours!

How would you compare The Sun and Moon to your other games, Javel-ein and Busy Busy Beaver?

DL: Well I knew while making BBB that it just wasn’t going to be that innovative, so I focused on making it fun and silly and pretty. For The Sun and Moon I went the opposite direction and focused on making it unique and innovative, at the expense of a story, detailed graphics and humor.

And then Javel-ein is sort of a blend of the two.

CS: This game focuses on mechanics rather than story, and, I think, stands up well on those merits. Have you thought about adding story elements to the game, or do you plan to leave it abstract?

DL: I’ve thought about it, but I honestly don’t know what direction I could take it.

CS: Your sense of level design and mechanics for 2D platformers is, if I may say so, pro quality. Can you describe your process for designing levels?

DL: In general, if I have a game mechanic to work around, I try to explore that mechanic in as much depth as possible. For The Sun And Moon, I looked at all the different types of movement that the mechanic allowed for (e.g. diving down into the floor, jumping up and through a block, falling off a tall platform and diving deep into the ground below, jumping through a thin wall, jumping into and up through a block) and came up with levels that made the player use these tricks. I wrote all my ideas down on paper first since I’d often have multiple levels ideas come to me at once.

CS: Do you have interest in making other types of games than 2D side scrolling platformers?

DL: Definitely! I think it’s just been the case that the ideas I’ve had that have worked the best have always been tough platformers. On the backlog I have a color-based puzzle game I’ve been working on as well as an idea for a top-down naval exploration game.

CS: The art style of The Sun and Moon would be best described as a minimal, GameBoy style. But it works very well, especially the “clouds” in the background. How did you come up with the idea for them?

DL: For the clouds? Early on the background was a solid color, and I realized that if you flung yourself really high into the air it was impossible to tell how fast you were going. To fix this I decided to add a parallax background in. My game, with its monochrome palette and dark-foreground-on-light-background style, already looked far too similar to Luftrausers, so I wanted something abstract and different.

When I was coming up with the idea for my naval exploration game I experimented with perlin noise and other techniques to generate a huge ocean with lots of islands and interesting coastline, so perlin noise was still fresh in my mind. Because Photoshop’s “Render Clouds” filter creates tileable perlin noise I knew I could use that to quickly make a suitable background.

CS: Interesting that it was a feature driven as much by gameplay needs (having a reference so the player could gauge their speed) as much as cosmetic needs. Visually it’s a very pleasing effect!

How much have you added to the game post-compo?

DL: I’m up to 67 levels at the moment, though I lot of the newer ones still need some work. I’ve added controller support and made the game run on mobile devices. I’ve added a timer for each level that records your best time. I have a lot of ideas for mechanics that could add variety to the gameplay and I’m currently playing around with these to see which ones work the best.

CS: Wow, sounds like you’ve been busy! What are your plans for developing the game further?

DL: Even more levels! However many I can come up with while making sure each level is still unique and fun. I’ll work on the visuals a little bit but I want to keep it looking minimalistic.

More importantly, the music is going to be completely redone.

CS: How about some technical questions?

DL: Sounds good!

CS: You use GameMaker: Studio for your games. Do you work with any other programming tools or environments? What do you like about GM:S? What do you wish was better?

DL: Not at the moment. I think what I like the most about GM:S is that I’m so familiar with it. And that it’s very easy to prototype new ideas. There are, unfortunately, a lot of things I wish GM:S did better. The built-in level editor leaves a lot to be desired, the program occasionally crashes and I lose progress, Windows builds and html5 builds can be wildly inconsistent, and a lot of other, smaller issues.

CS: How did you get into GameMaker?

DL: Two of my favourite games, An Untitled Story and Spelunky, were made in GameMaker. They inspired me to begin making games seriously so I guess I thought it was a good idea to use what they used.

CS: Are you active on the GMC forums? Are there any other good sites for game development that you frequent?

DL: Not at all. I browse /r/gamedev and /r/indiegaming on reddit, but that’s about it.

CS: You mentioned in your post-mortem that you experimented with a couple of different motion trail techniques, before settling on a line drawn out behind the player. How did you make the line taper?

DL: Okay so each frame an object is created. This object stores the players current location (x,y) and the player’s previous frame location (x_p,y_p). The object draws a line from (x,y) to (x_p,y_p) of a certain thickness, starting at 5 pixels and decreasing by half a pixel each frame. So, at any one time, the trail is made up of 10 objects, each drawing a line of varying thickness.

If the player is underground it’s a little different. It still creates objects which store the player’s current location but these objects draw a circle instead of a line, and instead of the circles shrinking their visibility is decreased each frame.

CS: Thanks to gravity acceleration, you can achieve some pretty high vertical speeds. Was it a problem to handle collisions at such speeds? Did you have to do anything special to make it work?

DL: Good question! Because every object in the game (except the collectables, come to think of it) is 16 by 16 pixels, I only needed to make sure that the player never moves more than 16 pixels each frame, so I set the terminal velocity to 14 pixels a frame, just to be safe. I think the terminal velocity is pretty hard to notice in general.

CS: Is there anything else you’d like to say?

DL: Only that participating in Ludum Dare has consistently been a fantastic experience.

CS: I have to agree. Not just making games and having other people play them, or even getting to play a lot of cool games made by other people, but getting to know a few of the people in the indie scene, both through their work and through actual correspondence. Perhaps that’s been the most rewarding part of it all. Congratulations on your accomplishments, good luck in the future, and thanks for taking the time.

DL: It was my pleasure, thank you for interviewing me!

 

Ludum Dare 29 results

Voting results for Ludum Dare #29 were announced earlier tonight. My Jam entry, Alamagordo, fared pretty well, considering:

Rank (of 1004) Category Score (of 5)
Coolness 100%
#69 Humor(Jam) 3.60
#110 Theme(Jam) 3.70
#424 Mood(Jam) 2.97
#546 Audio(Jam) 2.53
#581 Graphics(Jam) 2.80
#592 Innovation(Jam) 2.52
#648 Fun(Jam) 2.33
#662 Overall(Jam) 2.58

The 69 and 110 rankings are the best that I’ve done so far in a Ludum Dare judging, narrowly edging the #70 ranking I received for Humor in my LD25 game, Bad Puppy.

Considering that Alamogordo was a last minute entry that I threw together in about 10 hours development time, and was intended as more of a joke entry than a game with ambition, I’m pretty pleased at how it was received, overall. I was going for humor and theme, and the other categories weren’t as important for me — I only cared about making the game look, sound, and feel like an Atari 2600 game, and I’m reasonably pleased with my work in that regard. It’s admittedly not very fun to play, nor innovative, nor very good overall, so I feel like my scores are pretty fair overall. I was also very pleased by the fact that I was able to build the game very quickly, with no false starts, rework, or getting stuck in debugging. In my previous LD games, I often found that I’d get stuck on a technical problem that should have been easier to solve than it turned out to be, I think mainly due to self-imposed pressure. This time, I felt mentally unhurried, confident that I was capable of doing what I had set out to do, that I knew how to do what I was doing, and didn’t have to spend any amount of time experimenting and figuring it out, and that helped me to build a clean, well-organized project. Although the game isn’t much, I’m pleased with the code that I wrote for it.

GameMaker Game Programming with GML book published

Newly published today by Packt Press, GameMaker Game Programming with GML, written by Matthew DeLucas.

I contributed technical review to the manuscript, as an unpaid volunteer. Purchasing through the amazon affiliate link below is the only compensation I will receive for the work I put into the book.

Alamogordo: Post-mortem

I almost didn’t submit a game this time around. For some reason, I couldn’t get my creativity going. I thought that Beneath the Surface was such an excellent theme, too, with great potential. When they announced it, I started trying to think of a game that would happen underground, or under water. But all I could think of was the setting, not what you’d do there. My brain was being an enemy to me.

So I stayed up until about 6 AM Saturday morning, and still hadn’t thought of any good ideas. My best idea of the night came to me when the Neil Young song, “The Needle and the Damage Done” popped into my head, and I briefly considered making a game about heroin use and damaging the skin beneath the surface. If I wanted to do that right, I needed to make a chiptune cover of the song, and I still can’t do music properly. One day…

So, I put that idea aside, and then nothing else came to me. I slept in until around 11:30, and spent most of the afternoon sitting around, waiting for inspiration to hit me, but nothing happened.

I dicked around on the internet, reading stuff, and started reading all these articles about the New Mexico landfill dig, where they were trying to determine if the legends of massive amounts of unsold Atari merchandise being buried in the desert were really true.

Turns out, they were true!

I found the story fascinating, because why would people still care  that much that they’d dig around in a land fill trying to find that stuff. It’s not as though E.T. was a rare and valuable game. To me, the story wasn’t fascinating, it was people’s fascination with the story that was fascinating. It seemed to be getting a lot of coverage in the media.

I still didn’t have any ideas for what would be a good game, and by around 5 or 6, I had given up and resigned myself to not producing anything this time around, and felt pretty down about my failure to come up with any good ideas. I had a relaxing Saturday evening, went to bed, had a pretty normal Sunday, and then, around 7pm it occurred to me that the land fill dig was happening beneath the surface of New Mexico. Beneath the surface…

Beneath the surface…

Beneath the surface…

Beneath the surface…

neath the surface…

the surface…

surface…

urface…

face…

And I got this visual in my head of the pits in the E.T. video game, and connected that to the landfill, and immediately realized that there was a potential game in there.

Digging in the Alamogordo, New Mexico landfill, in a pit from the E.T. video game, searching for the secret stash of E.T. videogames. I knew exactly what I wanted it to be, not really a challenging game, just an idle time waster that paid homage to the legend and the events of the weekend. I had less than 2 hours before Compo deadline, and knew I’d never make it, but this would need to be a Jam entry anyway, as I wanted to use graphics and audio sampled from the E.T. video game.

Unfortunately I was already on my way to spend the evening with friends, and I didn’t get home until close to 11pm. By 11:30, I had just gotten started, and I worked through the night until 6:30am, and which I had most of the level laid out and working. Movement and collisions were very buggy, but the game was basically playable by this point.

I took a power nap, worked Monday, and then cranked out bugfixes until I got everything working right. All told, the game took about 10 hours to build. My fastest development time ever. Howard Scott Warshaw took 5 weeks to make E.T., his fastest development time ever.

I used that time rather well, struggling only a little bit with the bug fixes, and all I really needed to fix those bugs was to step away from the project and return to it fresh — once I did that, it was fairly easy to redesign the code that handled movement and fix the problems I’d been having in the wee hours of the morning earlier in the day. Throughout the project there was very little re-work, almost nothing thrown away, and everything that I built was done in such a way that it doesn’t feel like a mess. The project code is actually pretty decent. Almost every LD48 that I’ve done so far, I’ve struggled with some stupid error in a feature that should be very basic and easy to do, and ends up sucking a lot of my time away from the project, but this time, I worked effectively from start to end. Only, I had just about 10 hours of work put into the project over the entire weekend.

The game itself, well there’s nothing much to it, but it does feel somewhat like one of those terrible shovelware titles that caused the Great Crash of ’83.

So, there it is, an homage to terrible games. Since that’s what it is, it somewhat excuses it from itself being a fairly terrible game. At least the programming is fairly decent, …beneath the surface.

Well, play it and see what you think.

Alamogordo

Ludum Dare 29

I didn’t complete an entry for Ludum Dare 29, and am a bit disappointed in myself. Although the theme “Beneath the surface” is an excellent theme suitable to all kinds of ideas, I struggled to come up with a concept that fit well with the theme. I thought about under ground, under water, and digging a bit, and I thought about skin, and metaphorical ideas, but these didn’t inspire a core play mechanic or goal, so I never really got to a playable game concept.

I need to figure out how to get myself into a creative mind on demand.

Update

Around 7pm, inspiration struck. I made a game after all. I made it in only about 6 hours, so it is not a very good game, but the idea was a fitting one, and I knew that I would be able to build it in under a day.

Alamogordo, my entry for the LD29 Jam, is based on the legend of the buried E.T. cartridges in Alamogordo, New Mexico, that were dug up over the weekend.

The E.T. Dig

Yesterday, in a landfill in New Mexico, copies of E.T: The Extra-Terrestrial for Atari 2600 were unearthed, apparently confirming rumors of their mass burial in 1983.

I recalled hearing this story at some point, many years ago, but I don’t recall exactly when. It’s been repeated often enough. A number of Atari employees said that it was true, but as I recall the company officially denied it, leading to speculation as to whether it was really true or not. Likely the denials were to avoid admitting that the business was in trouble.

While the find confirms that Atari product was buried in the landfill, it’s still unclear how accurate the rumors really were. Over the years, I heard many things about the burial:

  • Supposedly, according to some, the games were crushed (whether by a compactor, or a steam roller or other heavy vehicle, it’s unclear) before burial, in order to take up less room in the landfill, or to prevent their being dug up and salvaged. This appears not to be true, as intact cartridges apparently have been recovered in what appears to be nearly pristine condition (unless of course the recovery story is a fabrication).
  • I also heard that the games were covered over with a layer of cement. This seems likely an embellishment. To my knowledge, landfills do not typically use cement to cover over layers of deposited waste, although they do sometimes use earth to bury waste in order to reduce pests such as rats and seagulls, reduce the odor, and prevent winds from blowing the waste away. Cement is expensive, and there’s really no reason for it, since this isn’t radioactive waste, but I always thought that it suggested a deep shame on Atari’s part, that they wanted to hide the fact so much that they would cover it up with cement, like a murderer burying a victim in the basement under a cement floor.
  • Supposedly, something like 5 million copies of E.T. were manufactured, and most were unsold, so the number of games buried in the landfill is supposedly a vast number. So far what I’ve read of what’s been reported has said that a few hundred copies have been recovered. So it remains to be seen whether more will be found at the site.
  • E.T. is remembered as one of the worst games of all time, but this is actually a somewhat unfair label to pin on the game. It sold quite well, 1.5 million copies, which is an unqualified hit, but for the fact that it was greatly overproduced. Selling well isn’t quite the same thing as being a good game, and the game did have a fair share of negative reviews. The complaints for the most part had to do with the difficulty of avoiding falling into pits that exist nearly in nearly every screen of the game, and play a prominent part in the game, but which don’t exist at all in the movie. Movie adaptation games often suffer from poor treatment, and failing to faithfully follow the plot of the movie story. Of course, the same can also be said of film adaptations of books. Apart from the pits, the game does actually include a lot of plot elements from the film, and somewhat reasonably follows the plot. What’s more important is not that the game re-tell the movie, but that it be a good game. E.T. may or may not be a good game, that’s a subjective judgement. But from a technical standpoint it was relatively well executed, including numerous innovations and technical feats that were impressive considering the hardware limitations. Apart from the pits, the game also suffered from a strange zone-based mechanic that was difficult to understand without referencing the manual. At the time E.T. was released, most games were simple arcade action style games involving shooting and dodging. E.T. involved a complex quest for pieces of the phone he uses to call home to arrange to be picked up by his people’s space ship, and many players likely simply weren’t ready for a complex game like this, and disliked it more for that reason than anything.
  • E.T. is often blamed for causing the Crash of 1983. It’s more accurate to say that the Crash of 1983 contributed to E.T.’s sales falling far below expectations, resulting in huge losses due to overproduction. As such, it was more a victim of the Crash than a cause of it. It was certainly a high profile commercial failure, but the real cause was a lack of quality control among the dozens of fly-by-night companies that sprung up to capitalize on the immense success of the Atari 2600. Atari could not control third parties through licensing, and the market was flooded with poor games, many of which were far worse than E.T.

Further information:

Making a Configuration System in Game Maker, part 3: Where’s Part 3?

A while ago, I started a series of articles that I never finished, on creating a configuration system for GameMaker games. I posted Part 2 almost 2 years ago, and had intended to follow up in just a couple weeks with Part 3, but it stalled and never came out.

A few readers have asked, so I figure an explanation is owed.

The series I had started on creating a configuration system has been on hold since the second article. As I got into designing the system, I kept running into problems with making my system platform-independent and universal.

I had intended to write a universal configuration management engine for handling things like monitor resolution switching, master volume, music volume, and sound fx volume, and a customizable set of configuration widgets for whatever your game might need (essentially, a set of generic, reusable buttons, sliders, checkboxes, and other UI controls). Ideally, I had hoped to write a set of scripts that would use GML functions to define rooms and objects that would constitute the configuration system. Ultimately, I wanted to create a GML script config_system_create() that would set up the entire system — rooms, objects, and functionality, so that you could simply import a GEX extension, call one function, and have a full-featured system generated at runtime, without having to spend any time designing and implementing all the resources yourself. But in GM:S, YYG obsoleted the functions that allowed me to define objects at runtime, execute strings as GML code, and a number of other functions relating to how Windows handles video and audio.

My goal was to enable a developer to drop in my finished configuration system as a GameMaker extension, and invoke its default implementation with a single function call, and use other function calls in the extension to build custom features, but use most of the features without modification, beyond turning features on or off, and to also have the capability of adding customized settings specific to their game. I wanted to write my system one time, and have it be re-usable so that I could save myself from having to spend a lot of time re-creating the system in each new project.

Most difficult of all, it requires that I design a system that anticipates every need a game developer might possibly have, for any type of game they might dream up. Doing it one time and never having to touch it again would be great, but it’s probably not realistic.

This was an overly-ambitious goal. I’m laughing at myself a bit, now, thinking about it.

Still, there were a lot of achievable ideas that I had for the tutorial, and a demonstration of how to implement them would be a worthwhile exercise.

It won’t be drop-in, single-function system, and it’ll be specific to the Windows build target, but the design should be adaptable to your project with a little work.

I don’t want to make a promise for when I expect to deliver this, but I will complete the series and a reference implementation before I publish the first article.

The End of an Era

This weekend, April 10-13, 2014, will be Notacon 11. The last Notacon, apparently.

The first Notacon I attended was Notacon 2. I was less than impressed, as it seemed like the most poorly organized event that I had ever gone to. I didn’t realize it at the time, but this was because the event was not put together by professional event planners, but by a bunch of geeks who were no older than me, who didn’t see any reason why they couldn’t do something they thought would be cool. But in those first years, the execution wasn’t quite at the level of the vision yet.

There were printed schedules for when talks and presentations were to be given, but due to last minute changes no one was where they were supposed to be, when they were supposed to be. I missed talks that I had wanted to see, and saw things that I had no interest in. Speakers’ presentation slides were projected onto bed sheets that were strung up in an improvised manner. If they had a microphone, maybe it worked but as likely as not it was low on batteries or cut in and out throughout the talk. I didn’t know anyone there, and no one seemed to be friendly or inviting. I tried to chat with geeks playing with legos and soldering irons, but no one seemed very interested in getting to know me, or talking about what they were working on.

So that was my first and last Notacon, until Notacon 6. A friend I knew from the interent, named aestetix, who I’d never met IRL declared in a blog post that he needed a ride from the airport so he could deliver his talk, and he offered to get whoever helped him in for free. I’d long admired his thinking and writing, and took him up on the offer. By then, Notacon had matured into a well run conference, with interesting talk topics and personalities. Drew Curtis from Fark.com presented that year, as did Jason Scott of Textfiles.com and the BBS Documentary, Archive Team, and the Internet Archive. And Mitch Altman, of Cornfield Electronics and TV-B-Gone, and a young comic book artist named Ed Piskor, who was working on a 4-part graphic novel on hackers called Wizzywig, and would later go on to create a definitive history of hip hop and rap music, Hip Hop Family Tree. Among the attendees was Emmanuel Goldstein, whom I had read about years ago in connection with the legendary 2600. I was afraid to walk up to him and say hello, but I was impressed that he was there, and amazed that I knew people who knew him.

I went every year after that, and made friends with a lot of people there. Aestetix introduced me to Paul and Jodie Schneider, Notacon’s primary organizers, and I met many others there for the first time who would become friends, acquaintances, and professional contacts. Most significantly, for me, I met a neurohacker I met at Notacon 6 named ne0nra1n, who was very friendly and made me feel welcome as a newcomer to this space, and corresponded with me after that weekend, giving me encouragement to present a talk myself. At the time I didn’t think I had anything that I was good enough at or knowledgeable enough about to make an interesting talk, and the amount of work that I felt I’d need to prepare something even barely adequate frightened me. My first presentation proposal, a talk on intellectual property and copyright reform, wasn’t accepted for Notacon 7. I felt secretly relieved.

But ne0nra1n’s encouragement changed my life. As a result of Notacon, I started this web site, not yet knowing what it would be. I participated in the founding of the Makers’ Alliance hackerspace in Cleveland, and through my involvement there, first encountered the Cleveland Game Devs, and became heavily involved with them in 2010. This helped me to rediscover my enthusiasm for programming and game development, which I’d put aside for many years.

I delivered my first presentation at Notacon 8, “How I (FINALLY) Made My First Videogame”. I put a lot of work into it, which was only possible because I’d just lost my job two weeks before, and that allowed me to pour 14-18 hours/day into working on finishing that first game, and to preparations more directly related to the talk itself.

I worked on the game and the talk I would give about how I had made it, right up until the last minute, and while I knew my topic and what I wanted to say, I hadn’t had time to rehearse, and no real idea if I’d fill the hour slot I had, or go over. But my prepared material fit the hour almost perfectly, and I received many compliments from attendees — this completely exceeded my expectations.

Presenting was a great experience. I was transformed that day. When I went to bed that night, it all hit me at once: I had done it. I had grown up to be the person who I had dreamed of being since I was little: a videogame designer. It was something I’d given up on when I became an adult, and I had tried to forget about for years, but I never had found anything to replace the passion I’d had for that dream, and life felt unfulfilling as a result. But, because of that chance interaction with ne0nra1n at Notacon 6, in two years I had become the person who I had always wanted to be.

Talking about that journey in front of a room full of people, had made it real in a way that it hadn’t been before. I felt, at last, like I had arrived, and I had a place where I belonged.

Product Review: Scirra Construct2

Construct2 is available for download at www.scirra.com.

I’ve known about Construct2 for a few years now, and had downloaded it quite some time ago, intending to compare it with GameMaker in order to see which I liked better. I kept getting deeper and deeper into GameMaker, though, and since I was enjoying that, I wanted to stick with one thing until I knew it very well, rather than dabble in a lot of things that I knew only passingly.

One of my Cleveland Game Developers friends, Jarryd, likes Construct2 and I’ve seen him give a few talks about it, and so I’ve had a general impression of what it’s about for a while now. This weekend, I finally sat down with it and started to give it a serious look.

Initial impressions

So far, it feels very different from what I’m used to with GameMaker: Studio and other development environments that I’ve used… but I think there’s a lot of potential for getting stuff up and working faster than with GameMaker.

Two of Construct2’s areas of strength are the built-in project templates and object behaviors. They take a lot of the tedium out of developing your own engine and having to program everything from scratch, which means you’re freed up to focus in design and gameplay more. Creating a new project from a template sets up a lot of “boilerplate” that is common to every game of that type, saving you a ton of work and problem solving. And adding a behavior to an object does in one or two clicks what many programming numerous events and scripts consisting of innumerable lines of code would accomplish in a GameMaker project. And it all works and doesn’t need debugging, although there’ll still be a lot of customization yet to do, and that customization will require plenty of problem solving and debugging. But it still gets you into the juicier parts of game development quicker, and allows you to build on a more featureful foundation than GameMaker does.

On the other hand, what I like about GameMaker is that by leaving these low hanging fruits un-plucked, it gives a newbie programmer some relatively easy things to develop, which affords many learning opportunities. Learning how to attack a problem and break it up into simple, manageable steps that you can solve is an important skill to have in programming, and GM provides such opportunities.

The C2 documentation is very well written, and there are a ton of example projects that come with the IDE, so you can learn by playing around with a project.

It feels different from traditional programming in that there’s no traditional text editor, and not much syntax to learn, for about 90% of it, from what I see so far. If *feeling* like a “real” programmer is important to you, Construct2 may not satisfy, but if you don’t care about coding as much as the ability to quickly make working games, it might be just the trick. I feel like “real” programming is more like designing shapes of pieces to make a jigsaw puzzle, and then assembling the puzzle, and using Construct2 is more like taking a bunch of ready-made jigsaw puzzle pieces out of a bin and putting them together *just so* in order to make a picture that you have in your head. But I don’t consider criticisms that amount to bias toward text editing and syntax as the only true programming to have much legitimacy to them. Surely, if you never understand the circuits of the machine, you’ll never be able to call yourself a Real Programmer, and most modern programming languages abstract the machine entirely. So too, with programming environments that replace linguistic syntax with visual paradigms. Still, learning Construct2 may not be as good a good first step if you’re interested in getting into other types of programming, the vast majority of which do involve coding in a programming language.

Discovering Construct2 through example

One of the first things I did with C2 was to play the Asteroids example project. Labeled as an “Intermediate” project, I quickly noted that while the Player wrapped around at the edges of the screen, the Bullets did not. This bothered me, so without really knowing what I was doing, I looked at the Player’s behaviors, and saw how to modify the Bullets. It took almost no time at all.

But now, the bullets just traveled around the room forever, so in short order I figured out how to add a timer to them so that they would be destroyed after a short time. This took a bit longer, but in maybe 10 minutes I had it figured out. Next, I created a new Sprite (which seems semi-analogous to what GameMaker calls an Object) and added it to the game, defined some behaviors and before too long I had asteroids floating about, that destroyed the ship when they collide with it, are destroyed by bullets, and wrap around the room. I even figured out how to create two smaller asteroids when destroying the large ones.

That’s when I discovered that, if you don’t add an object to the Layout, even if it won’t exist in the initial state of the game, the game won’t run properly. I noticed a previously overlooked bullet sitting in the Layout window, outside the game view, and, thinking I’d somehow accidentally placed it there by mistake, deleted it, only to find that the game no longer worked properly. And then I got an error message about the smaller asteroids not being defined. So then I figured out that in order to have these types of objects available to the game at runtime, they needed to be placed in the Layout, but outside of the visible area, what in GameMaker would be considered “inside the Room”. This confused me, because coming from GameMaker, I expected that objects placed outside of the rooms boundaries are instantiated and run in the game. But in C2, apparently they are just available to the game, to be created when called upon by the program. It’s a bit strange, and I wonder how C2 handles objects that walk “offstage” or need to begin life offstage.

Cost

Construct2 is one of the cheapest options out there right now for fledgling developers. Comparing Construct2 to GameMaker, at $119 C2 is cheaper for a license than GameMaker: Studio is, if you want anything more out of GM:S than the base “Professional” package. The free edition of C2 also has fewer limitations than the free edition of GM:S. There’s also a $400 “business” license, which is for professionals and businesses that have made $5000 or more from game development, but doesn’t seem to give the user any additional new features. I suppose the idea there is that businesses that make that much money from game development can afford to subsidize development for the rest of the customer base.

Performance

I haven’t benchmarked the two side by side, but I understand that C2 builds everything as an HTML5 app and (if you’re not targeting a web browser) wraps it in a native application for whatever platform it builds to. By contrast, GM:S has the option to build native code, depending on how you build it and what platform you’re targeting, so may potentially have performance advantages over Construct2. I don’t want to speculate, and for now it’s merely a hypothesis that I have not myself tested, but it seems plausible that GM:S would the equivalent game as well or better than C2 on most platforms.

On the other hand, C2 is probably more consistent across platform, since on every platform it is essentially running the same code, unlike GameMaker:Studio, which currently has numerous problems with supporting features and getting to work exactly the same, regardless of build target.

Final thoughts (for now…)

I still haven’t gotten very deep into Construct2, and have just barely begun to grasp what it is capable of, but so far I like it quite a bit. Whether I like it as well as GameMaker: Studio, or less, or better, I can’t say yet, but I like the fact that it exists,and and it provides another option for an easy to use tool for game development. I still am much more versed and comfortable with what I know in GameMaker, but I’m impressed with how quickly I was able to pick up Construct2 and do something useful with it.

Verdict: Worth checking out.