Category: reviews

GameMaker Studio 2 impressions: importing from GMS1.4

YoYoGames announced a game jam to celebrate the GMS2 Beta a couple weeks ago, and I’ve decided to try to participate. I don’t have a lot of time to work on my project, but I wanted to do something to warm up for Ludum Dare 37 anyway, so this was just the excuse I needed.

Since I’m short on time, and am very interested to see how well the GMS1.4->2.0 import feature is, I decided to work on an update to my LD35 entry, Shape Struggle.

Import and Compatibility Report

First, I made a copy of my source code. Then I imported it into GMS2, which was easy. A few seconds later, the project had been converted.

Immediately, GMS2 presented me with a Compatibility Report which details all the conversions it had to make, and the report itself appears as a file in my project resource tree under Notes.

Mostly, the conversion report details involves replacing calls to obsolete functions with compatibility scripts that do the equivalent thing. In my case, the game converted nicely, and I was able to build and run it without any problems. But, I expect that if the conversion process ran into problems, perhaps a function call that it could not convert to GMS2, the Compatibility Report would make mention of this, and I might have some additional work to do before the project would run.

YYG’s documentation says that the compatibility scripts should NOT be messed with, they are not intended to be human editable, so I haven’t tried messing around with them, but it leaves me curious about what might happen if I did. Not being able to go into these functions and make changes makes me question how maintainable an imported project is; and if it is not very maintainable, it mostly defeats the purpose of importing and converting an old project.

I haven’t done enough yet to know whether this is a legitimate concern or not, but it’s a worry for now until I know more. It seems to me that in order to have complete control over your project code, you’ll eventually need to go through and re-write any code that makes calls to compatibility scripts, to do the equivalent thing in a manner which is completely native to the way GMS2 wants things done. In many cases, this could be a simple and straightforward transliteration of the old code into new code which eliminates deprecated functions. Depending on the project size, though, this could get very tedious.

Update: Reading the Help documentation more carefully, I misread. Only compatibility scripts starting with a double underscore should be left alone. From looking at the compatibility scripts that I have reviewed so far, it seems like a fairly straightforward wrapping — the old, deprecated function call is used to create a script of the same name, and the script calls the equivalent GMS2 GML function(s) needed to achieve the equivalent results. It should (in principle) be possible to replace the call to the compatibilty script with the code inside of the compatibility script, and thereby convert the project to pure GML2. This does not apply to __compatibility scripts, however. If your project converts with these, it may be necessary to rewrite your project a different way to make it pure GML2. Or you may be able to leave it alone and hope that you don’t need to maintain that part of the project.

Collision Mask problems

Although my project would build and run, the conversion process was not 100% perfect. I noticed that some objects seemed to be colliding in a way that indicated that there was a problem with their collision masks. Sure enough, when I went into the Sprite Editor to have a look, I found that the collision masks were all wrong.

Upon further investigation, I determined that the only type of collision mask that currently works in GMS2 is a rectangle mask. Diamond, Ellipse, Precise, and Precise Per Frame masks are available options, but when I use them none of them work — collisions do not register and no event happens.

Moreover, I found that the collision mask editor does not seem to draw the mask shapes very well. When I tried to draw an ellipse mask, the right and bottom edges of the ellipse were flattened. I spent a lot of time trying to re-draw them to fix this problem, but the editor just overrides what I try to draw, and there’s no way to override it.

What’s more, if I tried to adjust the Alpha Tolerance on the mask, it would reset the mask to fill the entire sprite.

Very likely these are bugs due to the software still being in Beta status, and will not be long-term issues with the import process once GMS2 is officially released from Beta. So, clearly, the Sprite Editor has some issues and a long way to go before it is ready for release, including features which apparently have yet to be implemented.

Image Editor WTFs (Woes To Fix)

I also had a lot of problems with getting used to the new Image Editor. Most of this is a matter of UI polish, but there’s so much that is familiar, yet different, in the Image Editor UI that it’s giving me a lot of frustration. I fully understand the need for a user interface to change over time, but I do not understand many of the changes that have been made with the Image Editor. It’s tough to even know how to formulate my questions about them.

I find that Select and Copy operations don’t behave like I’d expect them to — copy creates a new Brush in m brushes palette. I can’t simply paste the pixels I’ve selected, and expect them to appear in the image at the position where I copied them from. This makes aligning static elements appearing in different frames in an animation a huge pain. Unless I’m missing something. Yes, there’s onion skinning, which is a great feature to have, but I don’t want to have to do painstaking image placement, I want to simply paste and see the content draw in where it was in the frame where I copied it from.

There’s also no replace color tool in the new Image Editor. In the GMS1.x Image Editor, there used to be a handy tool that would replace all pixels in the image matching the color you clicked on with the color set in the tool. For example, you could turn all red pixels green, with a single click. This was a useful tool, and I miss it.

I find the Text Tool in the Image Editor to be in need of a great deal of additional refinement. Currently, it is not very usable. I need to be able to reposition the text after I’ve typed it, but before committing. Most modern graphics editors allow this, but in GMS2’s Image Editor, once you click, there doesn’t appear to be any way to move the text that you’ve started typing, which makes positioning it correctly largely a matter of guesswork. There’s also no font preview, so when you select from the list of font names, unless you’re already familiar with the font in question, you won’t know what it looks like until you start using it. Currently it’s a huge pain to use the Text Toolf.

Summing up

Still, overall I’m very pleased that the code conversion process resulted in a project that could compile and run without throwing errors. There are still issues that need to be resolved, namely problems with sprite collision masks not coming through correctly in the conversion. And a lingering question about how maintainable an imported project is, if we cannot touch the compatibility scripts. I expect in time, with some more experience with converting projects, it will become apparent what the best approach to take is with modifying a game after importing it from 1.4.

GameMaker Studio 2 impressions: Preferences

Looking at the Preferences in GameMaker Studio 2 for the IDE, we have a lot of them, and they are logically grouped, and well-organized. Most of the preferences allow customization of cosmetic look-and-feel and UI behavior options.

GMS2 Preferences

The IDE is very customizable. Most of the configurable preferences come pre-set to defaults that make sense, and I don’t see much need to change them, but it is good that you have the control to change them if it suits you. I’m sure YYG anticipated that users would have countless nitpicky complaints about anything in the IDE that they couldn’t configure, and so wisely saw fit to give us the option to make ourselves comfortable. These options are by and large very straightforward and fairly dry to drill through, so I don’t see the need to go through them in depth here. The online manual has all the detail you need.

One very notable change from 1.x does merit mention, however:

  • There is no longer a backup folder. The old “save the n most recent backups” method of source control that was the only option available in GM8.x dsays, and carried over to GMS1.x, is gone completely from GMS2. Using a real version control system, such as git, has long been available, and is what everyone should use, but this does make version backups a bit more advanced for complete newbies. Nevertheless, it is now the only way to go.
  • Source-control integration doesn’t appear to be enabled yet in the GMS2 beta, or if it is I haven’t found it, so if you do want to use version control during the beta, you will have to manage the repository management and file check-in externally to the IDE.

With regard to GMS2’s default preferences, I found very few things that I wanted to change. But there were a few that were important to me:

  • One of the changes that I made was to set “Disable IDE transition animations” to true. While the IDE transitions are nice eye candy, I prefer things to be as fast as possible, and watching the Object editor open up and seeing the Workspace scroll to its location is time wasted, to me. Others might find it helps them to remain visually oriented to leave the animations on.
  • Another was to enable “Automatically Reload Changed Files”. If I work on an sprite sheet using an outside editor, or edit a code file in notepad for some reason, I want those changes to be reflected in GMS2 automatically.
  • The other thing I did was disable showing the background image in workspaces. While pretty, I prefer a plain, uncluttered background of solid grey. You can also set a different background image if you so desire.

Skins

There are two IDE skins, Dark and Light. Dark is the default, and I find that I do prefer it. Light is a bit too light for me, as it has a pure white background, rather than a light grey.

If it were light grey, I might prefer it over the Dark skin. One thing I did like about the Light skin is the code editor’s colors for syntax highlighting, which feels a bit more muted than the bright, rainbow-y colors in the Dark theme.

Fortunately, these colors are all customizable individually, if you want to tune them.

Will we have the capability to author our own skins, or add additional skins? I don’t normally want to spend a lot of time on cosmetic customization, but it might be nice for some to have the capability.

Room for improvement

It would be nice if the code editor settings could be saved collectively, to a profile document, and then loaded, so that you could export them and share with other users, and so you could avoid having to carefully re-set every setting one at a time if you need to reinstall or something.

Indeed, it would be nice to save the entire IDE’s configuration options as a profile, so that I could then switch between different IDE profiles as desired, allowing me to rapidly reconfigure GMS2 for different types of projects, for example I might find that if I’m doing a game that uses 3D graphics, I would want different settings for the Room Editor than I would want to use in a 2D Isometric game, and so on. I can see myself wanting to set up specific settings for grid sizing and snapping in both the Room Editor and in the Image Editor for different types of projects. If I’m maintaining multiple projects, switching back and forth between them, this would be a must-have.

The preferences you set are stored in %appdata%\GameMakerStudio2\[user id]\local_settings.json — this file is human readable, easy to backup, edit, share, and swap if you so desire. This has to be done manually, for now, but it’s my hope that YYG would give us some UI in the GMS2 IDE to save/import/manage preferences as a profile.

Game Options and Configurations

Outside of the File>Preferences dialog, we also have Game Options and Configurations, which is where we find settings that are project-specific. If you’re not sure where to look for some setting, ask yourself: Am I trying to change something in the IDE, or in the game I’m building? If it’s the IDE that you need to change, look in File>Preferences. If it’s some game setting, look at the Options or Configurations branches of the project resources explorer.

A few important things to point out with the project specific Options and Configurations, especially for users coming from GMS1.x:

  1. Room_speed is no longer a thing in GMS2. Instead, there is a setting under Main Options – General, for Game Frames Per Second, which is a global replacement for the old per-room speed. The default is 30.
  2. The default draw color for the project is also configurable here. I’m used to setting this in GML using the function draw_set_color(). To be honest I don’t know why YYG decided to make this a setting, perhaps just to make it simple for Drag and Drop users to find it, but whatever the reason, it’s here.
  3. Interestingly, there are some timekeeping settings here, as well, that allow you to automatically keep track of the Project Start date, Project Use Time, and the DateTime when the Project Last Changed. Potentially, this could be used for billing users for the use of GMS2, if YYG decided to change their business model to something subscription-based, or metered. It’s also neat for if you are trying to track how many hours you have put into a project — although, the time tracked is simply how long GMS2 has been running, not necessarily how long you’ve been actively using it — if you went away for a break and left it up and running, the meter is still counting.
  4. You can find settings for project GUID and author here as well.

In addition to General options, there are also platform-specific options for your game project. In the GMS2 beta, we only get to see the ones for Windows, but I expect users who have purchased additional build targets will find options for each of them here.

For Windows, we can set our display name, project name, version number, company, copyright statement, Graphics options for interpolation, fullscreen, window and mouse cursor, and a few other options. These are much as they were in GMS1.x.

GameMaker Studio 2 impressions: IDE/UI

The biggest change in GMS2 is the new IDE. Completely re-coded and largely re-designed, it has some things in common with the old IDE, but overall it has been re-organized and updated in many ways.

GMS2 IDE

Every form in the UI is dockable, and can be moved around into whatever layout works best for you. This is great. Even better, you can pop out any part of the IDE into its own window, which means that you can spread your IDE out over a few display screens if your computer is set up this way. GMS1.x didn’t play nearly so well on multiple displays.

The resource tree is probably the most familiar element of the new IDE. By default, YYG have positioned it at the right side of the screen, presumably to follow other development environments such as Microsoft Visual Studio. It’s a simple matter to drag it and dock it to the left side of the window if you prefer the GMS1.x way.

Workspaces

Probably the biggest change to the IDE is the introduction of Workspaces. These are tabbed regions where you can dock different forms, so you can organize your project in a way that makes sense to you. For example, if you have a set of objects that are related to each other, you may want to set up a workspace where those objects can be arranged together. You can have as many workspaces as you wish, and you can name them something meaningful. This helps greatly to reduce clutter, and should improve productivity as you can leave workspaces set up and switch between them at will, without having to re-arrange windows and forms all the time.

I love the idea, but after using them for a few weeks, I’m convinced they have some serious issues that need to be addressed.

Workspaces can get very spread out, and this implies scrolling a lot. There is a new shortcut, ctrl+T, which will help you navigate the project more quickly than scrolling:

Another navigational shortcut is to middle-click on a resource name in the code editor. Doing this will take you to the resource’s editor window.

A major problem with Workspaces is that the Workspace region only fills a small section of the GMS2 window. Dockable regions at left, right, and bottom make the Workspaces area relatively small compared to the size of a maximized window.

Inside the Workspace area, you have (potentially) multiple Editors open. Certain Editors use Chain View (see below) which spreads out the sub-editors visually, in a way that takes up quite a bit of space, and will all but certainly require you to scroll, both vertically and horizontally, in order to see the whole thing. Vertical scrolling can be done by mouse wheel, but horizontal scrolling is done by CTRL+Clicking in an empty region of the workspace and dragging, which is slow and awkward.

Another problem is the Dockable areas in the GMS2 window. These do not update contextually according to which Workspace you’re in, or what Editor you’re in. If you open the Room Editor in one workspace, the Room Properties will appear in the Dockable area at the left side of the GMS2 window. Switching to another workspace and opening up a Sprite, the Room Properties are still there in the left Dock, where they are useless for the current context, and serve only to distract and confuse, and take up valuable screen real estate that could have been used to present the Sprite Editor UI and/or provide a larger portion of the screen to display the sprite canvas. Fixing this should be a simple matter of showing/hiding the appropriate panels in the Docks for the current context you’re working in. Whichever editor has focus, its Dockable panels should be the only UI visible (apart from the Menu bar and Resource tree).

Maximizing an Editor should make it fill out the entire visible area of the Workspace. And whenever an editor has focus, its entire form should fit on one screen/workspace area without the need to scroll the workspace. I’m fine with a scroll bar within an Editor, for example if I’m in a really long code file in the Code Editor, or if I’m zoomed way in on an Image in the Image Editor. But I don’t want to have to scroll about the Workspace just so I can see from one end of an Editor to the other. I really don’t want to scroll around looking for different editors that are floating about in the Workspace. I would much prefer a tabbed interface where I can easily switch between tabs. Workspaces could be better implemented as groups of related tabs.

The worst part is when you go to open a code editor. The code editor is used in three situations: 1) when working on a Script resource; 2) when coding Events in the Object Editor, and 3) when editing Room Creation code in the Room editor. In the Object and Room Editor use cases, the Code Editor is chained to its parent editor. The code editor is almost never entirely visible in the visible area of the Workspace pane, meaning that very often the right and bottom of the Code Editor will be out of frame, and necessitate scrolling to see. So you’ll often be unable to see the ends of your longer lines of code, and the helpful code tips that appear at the status bar area in the bottom of the Code Editor will also be out of view. This is awful, and needs to be addressed. Code Editing is a primary activity in GMS2, and when doing it, the Code Editor deserves a maximized view, with minimal distractions surrounding it.

I believe the issues with Workspaces are fixable, but as they are now, they’re a bit of a disaster. I find that they make it easier to get lost, and I spend a lot of time flipping between them and scrolling, hoping to find what I’m looking for. They navigational shortcuts may be helpful, but they don’t come second nature to me, and so far I find that they’re so unfamiliar that I have to shift my mental focus form the programming task I’m working on to “how do I navigate to the bloody resource I need to look at?” which takes me out of “The Zone.” They make a 2048×1152 screen seem small and cramped.

Chain view

Another major new feature is called “chain view”. This is a new view for forms that have several sub-forms. For example, the Object editor has a main form that allows you to set the Object’s properties, and then if you add Events to an Object, these are managed in a sub-form that is chained to the main form. From there, Actions are in a sub-form that chains off of the Events sub-form, with a separate tab for each Event’s actions. This keeps related forms together, making it easier to see relationships between different open windows, and reduces clutter. They do spread out more, since the sub-forms do not overlap each other, and this takes some getting used to.

Menu and Tool bar

One thing that can be a little weird, and takes some getting used to, is the Menu bar. Depending on what form you have focus on, the Menus that appear in the main window’s menu bar will change.

For example, if you’re in the Image Editor, the main window will receive some Image Editor menus, to the right of the Help menu, and not in the Image Editor form.

Open the Image Editor, and some additional menus will appear in the menu bar.

Open the Image Editor, and some additional menus will appear in the menu bar.

This felt weird to me, at first, when the Image Editor is sharing the main window with whatever other forms you have open — I expected all controls specific to the Image Editor to be contained within the Image Editor’s form. However, if you break the Image Editor out of the main window and into its own window, it feels right.

Quick import your Asset files

Importing sound and image files into GMS2 is easier than ever. Just drag a file icon, or even a folder, into the resource tree, and the file will automatically be imported into the project, and a resource created for it.

Nice!

There is a lot more to cover in the IDE, but rather than make this article too long, I will be covering them separately in future articles focusing on the various Editors: Sprite, Image, Object, Room, etc.

Keyboard shortcuts

I won’t list them all (look in the manual, under Quick Start) but these are some of the most important/useful shortcuts, which everyone should know and use.

  • F5 – build and run the project.
  • Ctrl+T – Opens the Goto window to search the workspaces.
  • F2 – In the resource tree, rename the selected resource.
  • Ctrl+K – In the code editor, comments out the selected text. (Ctrl+Shift+K to un-comment.)
  • F2 – In the code editor, opens the code snippets menu.

GameMaker Studio 2 impressions: Pricing

[Rather than posting a long article that takes days to organize, I’m opting to do short-form posts that focus on a narrow aspect of the new GameMaker. This means more frequent, smaller posts, which will hopefully be more timely and more digestable for readers. For more articles in this series, just follow the GameMaker Studio 2 tag.]

This is all very early to talk about, and I recognize this, but a lot of people are talking about how much GameMaker Studio 2 will cost.

YoYoGames have put out their “prospective” pricing out on their website:

Currently, it looks like this:

GMS2 pricing GMS2 upgrade pricing

Analysis

First, I am very happy that YYG did not try to go with a subscription-based model with their pricing. This shows that they have listened to their users, nearly all of whom despise the idea of paying a subscription on an ongoing basis for software. For hobbyists and occasional users, it’s not a good deal to pay for a subscription if they’re not going to use it all the time and really get the value out of it.

I find that the costs are basically in line with what I was expecting. Sure, Master Collection is a few more dollars than it was when they released it 6 years ago, but guess what, that was 6 years ago. Stuff gets more expensive as time goes on. That’s how it’s always been

The upgrade discounts are reasonable. 40%-50% off is not bad for an upgrade.

I do question why certain modules are so much more expensive than others. I would rather see the Android/iOS bundle and HTML5 bundle cost the same as the Desktop bundle. The UWP an Console bundles, I can understand somewhat more, as those build targets are of prime interest to commercial game developers who, it’s understood, make money from the games they produce, and it makes sense that they should be willing to pay more for those tools, and if by paying more for them, it helps subsidize the other users, then great.

I’m sad to see no free edition, apart from the Trial edition. Depending on the limits of Trial edition, it could still be viable for hobbyist developers, but it sounds like it’s more intended as an evaluation edition to allow people to decide whether they want to pay for a real edition that can actually build games.

Community Chatter

So, predictably, most people who are talking about it are complaining that the cost is too much. That’s a subjective judgement, and of course everyone wants to pay as little as possible, and get everything for free if that were possible somehow.

Some people think that all software should be free (as in beer). Mostly, these people just don’t have enough money to afford to pay for software. They spend as much money as they have on just getting a new computer, and then they can’t believe that the cost of the software they need to run can more than double the price of the system. I sympathize, because when I was younger I was definitely one of those people, and if it wasn’t for deep discounts on student licenses, bundles that came with new hardware, and so on, I couldn’t have afforded to buy much software.

Fortunately there has always been a lot of good quality, low-cost or free software available, as well. Different products are aimed at different markets. Companies that sell to big businesses charge a lot of money for their software, in part because they can, but also because they need to, because in order to develop they need big budgets and a lot of employees. But some software is the product of a single developer, who doesn’t have all the overhead that a large company has, and they can afford to sell for a cheaper price, or even give away if they feel like it. Additionally, there are developers who feel that they get paid to program, not to sell copies of software, and they can get funded to do a project that someone who has money needs, but then turn around and give away the software as a public good, and as long as the cost of development is met by a few, everyone benefits from it.

GameMaker’s history started out with a single developer, who sold the software very cheaply at first, and always had a free edition, and a paid edition that cost $20-25. Later, as GameMaker grew, it became too much for one person to maintain, and he sold it to YoYoGames, who are a larger company, and who therefore have more overhead and need to charge more in order to cover their costs, pay salaries, continue R&D and support, and turn a profit.

YoYoGames initially raised prices, from $25 to $40, around the time of GM8, and users howled that it was too much. And we can see in retrospect what a bargain it was, and how childish people who complained back then were. GM:S has been considerably more expensive, anywhere from $70-200, although they have continued to provide a free edition. YoYoGames can’t continue to exist if they just give away software for nothing.

And YYG charge more for extra GM:S features, up to $800 for their “Master Collection” bundle which includes everything, including stuff they haven’t come up with yet, later for no additional cost. $800 is very expensive for most people, and unless you’re making money with the software, or are wealthy enough not to care, it’s probably not for you. It’s aimed at companies that can look at the purchase of software as a capital investment that is part of the cost of doing business. And if by charging more to these customers, it enables YoYo to keep costs lower for individuals, students, and hobbyists who otherwise couldn’t afford to buy what YoYo would have to sell it for, I think it benefits everyone.

Maybe low-budget amateurs will gripe about not being able to get all the features, but they do get something.

You also have to compare GameMaker against what else is out there. And there’s a lot else out there. There’s stuff that’s completely free, like vi + gcc, which is very high quality and extremely powerful, but that isn’t necessarily the best option for everyone, because it requires a huge amount of learning and knowledge and work to create games with. In more direct competition are tools that are geared specifically toward game development, such as Unity3D (which is more expensive, and uses a subscription model now) and Construct, and free tools such as Godot, Love, and Defold, which may not be as well supported, well documented, or easy to use. And many others besides these. The bottom line is, if you don’t like GameMaker because of what it costs, you have plenty of options to choose from, many of which are very good.

So for people who are complaining that it’s too much, I don’t have much sympathy for you. It’s very likely that at various points YYG will have sale events, as they’ve had in the past. If you don’t want to pay the release day price, you can probably wait a year or two and hit a Steam sale or a Humble Store sale and get it at a pretty good discount then. By that time, it will be even better, with more polish and more features. In the meantime, if you have GM:S1.x you can continue use it, it will continue to receive support and bugfixes, and 2.x will be ready for you when you decide you can afford it.

GameMaker Studio 2 impressions: New Project

[Rather than posting a long article that takes days to organize, I’m opting to do short-form posts that focus on a narrow aspect of the new GameMaker. This means more frequent, smaller posts, which will hopefully be more timely and more digestable for readers. For more articles in this series, just follow the GameMaker Studio 2 tag.]

If I click on New Project, I have to choose between creating a Drag & Drop project or a GameMaker Language project.

GMS2: Create new project

Weird; I can’t use both in the same project anymore? [I haven’t actually created a new project yet; I don’t know. But that seems to be the implication here.]

Really, I expect that most GMS users use GML, but I’m glad that they’re keeping DnD, because for beginners and non-programmers it is much easier to learn. And it looks like they’ve really improved the Drag-n-Drop system by leaps and bounds over what it’s been up until now. (I’ll cover this in a separate post in more detail…)

But I think it’s odd that I have to pick between one or another coding system when I create my project.

Really, what I had hoped for was that there would be a “Convert DnD to GML” button that users could use, and this could facilitate learning how to code in GML by starting out in DnD, then converting to GML and seeing what it generates for you. I don’t know whether this is a feature that YYG have planned or not, if it is I haven’t discovered yet. Or, even better than a one-way conversion, YYG could have made DnD and GML completely equivalent, such that there was full coverage of the entire GML language with DnD actions, and allowed the developer to switch between views, viewing the code as visual drag and drop actions, or as GML code, and develop however they’re more comfortable at the moment.

I think this “one or the other but not both” approach could potentially cause problems, and will result in pushing users to using GML-only. When a new programmer begins to learn GML, at first they typically start out by going through a project they’ve created using DnD, and replacing the DnD actions an instruction at a time with equivalent GML. If you can’t do that in GMS2, it will make transitioning that much harder, because you would have to start a new project, and code exclusively in GML, before you’re totally ready. Rather than make a gradual transition to becoming a GML coder, the neophyte GMS2 developer will need to develop sufficient confidence in their understanding of GML to start a new project from scratch and use it exclusively.

This pretty much destroys GMS’s gentle learning curve that makes it great for first-time programmers. Update: GML-DnD conversion is exactly how it works! Right-click in the object-editor and there’s an option to convert from DnD to GML, and vice versa.

DnD to GML

GMS2 allows you to convert DnD directly to GML, and GML can be converted to DnD (it just shoves the GML code into an Execute Code DnD action, so it’s only semi-reversible).

Oddly, the DnD2GML conversion warns you that this is a one-way change, but that is apparently not the case (although converting GML to DnD simply puts the GML code into an Execute Code DnD action).

I suspect that many users look down at DnD disparagingly, but really there’s nothing wrong with using it. It’s quick, and if it’s all you need, it’s all you need. For what would be a simple, one-liner GML script, I often opt to use DnD when I’m in a hurry, because it’s expedient.

GameMaker Studio 2 impressions: Start Page

[Rather than posting a long article that takes days to organize, I’m opting to do short-form posts that focus on a narrow aspect of the new GameMaker. This means more frequent, smaller posts, which will hopefully be more timely and more digestable for readers. For more articles in this series, just follow the GameMaker Studio 2 tag.]

Here’s what the new Start Page looks like:

GameMaker Studio 2 Start Page

Observations

  1. My display resolution is 2048×1152, and yet the Start Page still doesn’t fit all on the screen without scrolling. Wow.
  2. The top third of the Start Page is taken up by a rotating slide show of images. Personally, I find this annoying. Granted, the Start Page is not a screen I’ll be spending a lot of time looking at, but I just don’t care for the rotating images. I find them distracting. I want a dev tool, not a marketing delivery system. It’s one thing to have the “did you know” tips that provide useful information, and I of course love the news and release notes, but a image that updates every few seconds when I just want to set up a new project is a bit much for me. The images don’t do anything for me, and they take up a lot of space that could be used for something more useful.
  3. Hovering over the rotating slideshow, I noticed the cursor changed to the pointing finger which indicates I’m hovering over a hyperlink. Intrigued, I clicked, wondering what would happen. This is what happened:
    GMS2 Start Page 2Where did Getting Started and Explore go to? How do I get them back? Why did clicking the image at the top of the screen make that happen? It took me a few minutes, but I figured out that if I click the GameMaker Studio logo at the top left of the Start Page, in the transparent ribbon overlaying the rotating slideshow, it puts the Getting Started and Explore sections back.This is really weird navigation. They should just have left and right arrows at either side of the sections, or tabs.

    Start Page UI suggestion

    UI suggestion: Rather than switching between [Getting Started|Explore] and [Tutorials] by clicking on the slideshow or the GMS2 logo, which have no apparent connection to these sections, just use a straightforward left/right arrow navigation system to switch between them.


    Clicking links on the top, which aren’t even obviously links, which have no apparent relationship to the bottom half of the screen, just isn’t good UI design.
  4. I notice Start Page is a tab within the GMS2 window, but I can’t close the tab. What other tabs will appear here when I start using the software?

The RetroUSB AVS reviewed

My AVS arrived from RetroUSB last Friday, 9/16/16. Following up on my earlier article announcing it and some other competitors, here’s a review.

The AVS from RetroUSB.

The AVS from RetroUSB.

 

Selecting the AVS

I pre-ordered my AVS about a half hour after hearing its announcement, about after carefully reading the details and specs. While waiting on my pre-order to be shipped, I saw many skeptics on RetroUSB’s facebook page, complaining about this or that, mainly the price, or questioning the need of yet another console that plays NES games.

Many people think it’s best to play on original Nintendo hardware, on an old NTSC CRT TV, and have taken to repairing and modding their consoles for improved reliability and improved video, split-mono sound, etc. and a cottage industry has grown up around supporting these enthusiasts in keeping their original hardware running.

Still others think that having access to the entire NES catalog for free via emulation and ripped ROMs is the way to go, and that emulation is good enough that there’s no reason to spend money on games anymore.

To be fair, there have been a lot of other products over the years that have over-promised and under-delivered: Messiah’s Generation NEX, the various Retron consoles, etc. It’s fair for the market to be leery of yet another console promising the moon.

I’m not here to tell anyone how to play, or why they have to buy something new. People can make up their own minds. But I will explain why I was excited to buy an AVS, and share my experiences with it.

The most important feature that the AVS delivers, is HDMI without upscale lag. I have played my NES and Generation NEX on a HDTV, and it’s just not good. I only kindof understand why, and it’s complicated to explain, having to do with the differences between CRT and LCD screen technology, differences between the old NTSC standard and modern HDTV standards, and the fact that the NES doesn’t output a true NTSC 480i signal. This leads to visible artifacts as well as processing lag when an HDTV attempts to handle the raw signal coming through an NES.

Rather than try to explain it all, the TL;DR version is that I wanted a simple way too play NES games on a modern TV without having to educate myself to the point where I could be a video engineer.

Now that the AVS is here, it seems that they really have delivered a high-quality modernized NES that gives gamers everything they would want in a tricked-out NES: HDMI output; built-in 4-score; no problems with the 10NES lockout chip or worn out ZIF socket; and a 100% hardware, no-emulation implementation to provide full and faithful compatibility with the entire NES and Famicom libraries (with the exception of light gun games, where the compatibility is due to the TV display technology, not the console). If you happen to have a CRT HDTV that can handle 720p, however, you may be in luck (I have not tested this).

The top competition to the AVS currently are the Retron 5 by Hyperkin (not recommended, so no link), the HiDef-NES mod from Game-Tech.us, and Nintendo’s upcoming NES Classic. I covered these in a previous article, but to briefly recap:

  • The NES Classic held no interest for me at all since it does not support playing my vast, existing collection of cartridges, but it may be of interest to more casual gamers who never had (or no longer have) the original games, and want to relive 30 of the most popular NES titles, with the addition of save states. It is official Nintendo hardware, and is the cheapest option at $60.
  • The Retron 5 does HD output, but has some significant limitations, being an emulator-based solution it cannot properly handle some games, and has some ethical issues with stolen software and comes with a really, really bad controller, but on the other hand it can emulate multiple consoles. Currently it is no cheaper than the AVS, and given the choice I’d overwhelmingly prefer perfect accuracy in playing my NES library to imperfect support of multiple consoles and unethical abuse of software license.
  • The HiDef-NES mod requires you supply your own NES console, or else buy a pre-assembled one from Game-Tech if one is available for $500. On the other hand, it’s a true-hardware solution and does 1080p while the AVS does 720p, and the firmware on the mod gives you some great options including color palette choices. I’m planning on getting my top-loader modded soon, because I’m a geek like that. Also, Game-Tech have a great YouTube channel and do fantastic work repairing and modding old consoles, and deserve support.
  • Analogue NT is another modern, upgraded, high end system, and they are rebuilt from original NES components, but very expensive and not currently in production. Analogue are taking pre-orders for a new NT Mini system, at $449. Original NT’s are available on eBay for hundreds of dollars more.

Ordering

Normally, I’m leery about buying new electronics products, until I’ve heard whether they’re good or not, and to wait for 1.0 bugs to be patched.

However, with the AVS I pre-ordered as soon as I found out about it. I didn’t want to take the chance that the initial product run would sell out. I have ordered other products from RetroUSB in the past: controller adapters, mainly, and knowing the quality of these products made the decision easier.

I first heard about the AVS in early August, so my wait time was only a month. Compared with many other product pre-orders (mostly crowd funded) this was a reasonable wait. RetroUSB promised delivery by mid-September, and importantly they successfully delivered right on time.

Way to go, RetroUSB! This, and their years of presence in the retro game market, inspires a lot of confidence.

Out of the Box

The AVS comes with the AVS console, power adapter, USB cable, and HDMI cable, and owner’s manual.

Features

  • Price: $185 ($200 shipped)
  • Video: 720p wide screen HDMI output, 60Hz (NTSC) and 50Hz (PAL)
  • Audio: 48kHz HDMI output with expansion audio from carts
  • Display: Variable pixel scaling including integer options(1:1, 4:3, 5:3) with optional variable darkness scanlines
  • Carts: Front loading NES, top loading Famicom
  • Ports: Built in NES Four Score Pro, Famicom Expansion Port
  • Ports: HDMI Type A for video and audio, USB Mini B for power and data
  • Cheats: 5 cheat code slots with built in code database supporting Game Genie, Pro Action Replay, Pro Action Rocky, and raw formats
  • Online: NA Scoreboard online score system through USB
  • Updates: Upgrade FPGA configuration and menu system through USB

The AVS didn’t come with a controller, and before you start complaining — it doesn’t need to. If you don’t have your original NES controllers handy, they’re easy to find and cheap.

Mine arrived on 9/16/16, right on time for the mid-September shipping date promised by RetroUSB.

Build Quality

I didn’t crack the case for a look inside, so this is just a review of the construction of the system from an external perspective. The outer shell feels like it’s constructed from good plastic, not cheap flimsy junk plastic. The Power and Reset buttons look and feel just like real buttons from a toaster NES. The colors of the plastic are accurate to the original toaster NES. The cartridge slots grip games snugly, the controller ports plug in firmly. Everything looks and feels well made.

One thing I noticed, the AVS that I received does not have any UPC symbol or SKU number printed on the box, and the AVS itself does not have a serial number. Based on this, it appears that RetroUSB intend to be the sole distributor and seller of the system. This may be a necessity due to the power that Nintendo still has with retailers, or it may simply be that RetroUSB want to maximize profits and eliminate middleman markup.

In Use

The AVS comes with a USB cable and power plug adapter to allow you to plug it into the wall, but if your TV happens to have a USB slot on it, you can use that to power the console.

The USB port is also used for data transfer. Firmware updates are applied over USB with a PC as the host for delivering the update. I haven’t had to do a firmware update yet, but it’s nice that the device has this capability. As of this writing, the current firmware version is 1.10.

You can also use a PC with RetroUSB’s software to copy saved high scores off of the AVS, and upload them to Nintendo Age (and perhaps other participating websites).

Finally, the AVS has a Famicom expansion port on the back, meaning that you should be able to plug in Famicom devices that use this port. I don’t own any, and so am unable to test this out, but it’s very cool to have this option, and I may end up picking up some Famicom accessories in the future now that I have an easy way to play with them.

When you power up the AVS, you don’t see the game right away, but the AVS menu, which shows all the options: Start Cart, Scoreboard, Video Options, Controller Settings, and Game Genie Codes.

Start Cart will play the game currently loaded in the cartridge slot. The NES cartridge slot is very tight, and it’s difficult to pull the game out, mostly due to there being not much room to grab the cartridge with your fingers. I feel that RetroUSB could have done a little bit better here. My preference would have been for both the Famicom and NES slots to be vertical, like the top-loader NES, and lose the cover door. I suspect that RetroUSB chose to design the cartridge slots this way in order to make it impossible to have both slots loaded at the same time, but whatever the reason, I would have liked for it to be easier to remove NES carts.

Scoreboard allows you to store your high scores, which can be downloaded from the AVS over the USB port using a PC, and upload them to Nintendo Age if you want to see how your scores compare with the rest of the world. I have yet to try this, as most games that I play on the NES don’t even have a score, but it’s an intriguing feature.

The video and control options provide you with various adjustments to fine tune how your games look, and how the controllers work. The options are all fairly straightforward. You can adjust the height and width of the pixels, draw simulated scan lines for a more classic CRT look, and enable/disable extra sprites, which helps with flickering graphics that are a result of the limitations of the original hardware. The controller menu allows you to set turbo rates for the buttons, and some other miscellaneous settings.

The Game Genie codes are built-in, so you don’t have to enter them manually; just select them from the menu, and play. This is a great timesaving feature, and recordskeeping feature.

Light gun games do not work with HDTVs due to timing issues with LCD and Plasma based HDTV screens. This is not a shortcoming of the AVS. If you want to play light gun games, go with an old NTSC TV and original hardware. It might be that light gun games could work on the AVS if it is connected to a CRT-based HDTV, but CRT HDTVs are rare, haven’t been manufactured in years. If you happen to have access to a CRT HDTV, give it a try. Fortunately there were never that many light gun titles for the NES.

It may well take months or years for me to exhaustively test the AVS with my full library of NES and Famicom games, but so far everything I’ve tried with it plays. I’ve tried both the NES and Famicom slot, and both work with every game I’ve played in it so far, and, not that I claim to have a perfect memory, but I don’t notice any problems. As I continue to play games on it, if I notice anything I’ll come back and update this article.

Negatives

Accessing the AVS’s configuration menu is only possible before starting a game; you can’t change settings in the middle of play. Interrupting and going back to the menu kills the game session. This is unfortunate, but I suspect that it is a concession to making the FPGA implementation of the NES hardware as accurate as possible, and there wasn’t a way to introduce a pause-exit to AVS config-resume feature without making some concessions. If not, then who knows, there could be hope for delivering this as a feature in a future firmware update.

Quibbles

It’s hard to see this from the photos on the RetroUSB site, but the AVS is shaped like a trapezoid. There’s nothing wrong with this, really, but it was surprising to me. From the camera angles they shot it from for their site, it tricks the eye into thinking that it’s a rectangle.

RetroUSB AVS

From this angle, it is less obvious that the AVS is shaped like a trapezoid.

For aesthetic reasons, I’d prefer if it were a rectangle. It would be keeping more in the tradition of the aesthetics of the original NES. But from a functional standpoint, it really doesn’t matter.

The flip-up door cover that covers the cartridge slots is quite large. Compared with the flip-up door on the toaster NES, it’s much longer. This means that there is potential for much more leverage to be exerted against the hinge, which could make this part prone to breaking. When open, inadvertent force applied to the door could cause the hinge to snap off. Although the plastic feels sturdy enough, I will be treating the door with a bit of care.

Despite being awkwardly large, the door still will not close with a famicom game inserted into the cartridge slot. This is simply a matter of poor design. I can’t understand why RetroUSB didn’t take the time to design a console that either had two vertical slots for NES and Famicom games and no door, or a door that would work with a famicom cartridge inserted.

There is no serial number on the console anywhere that I can find. There is what appears to be a model number, but no serial number. This is pretty unusual, as just about every manufactured thing these days does have a serial number. It seems a bit un-professional not to have a serial numbering system. This could make it harder to do repairs and maintenance if RetroUSB goes through hardware revisions.

Recommendation

Highly recommended.

Shut up and take my money!

The RetroUSB AVS is everything I want in a modernized NES setup, without all the DIY complexity. For the cost of all the mod kits, time spent figuring out how to solder everything together and hope it still works, at $185 + shipping, it’s money well spent.

For people complaining that it costs this much, consider that it’s a small production run, not a mass consumer item made by a manufacturing giant. RetroUSB are hobbyists turned pro and are doing a great service to all gamers by helping to keep the NES alive and relevant.

$185 in 2016 dollars is only about $83 in 1985 dollars. If you think $185 is too much because $185 is a lot of money to you, then complain about how poor you are, not how the AVS doesn’t deliver $185 worth of value. It does.

(And, for that matter, adjusted for inflation, the $449-in-2016 Analogue NT mini is about what a $200 NES cost in 1985 dollars.)

Other reviews

  1. My Life In Gaming
  2. John Hancock
  3. RetroRGB
  4. Kevtris disassembly pt 2 pt 3

Review: Pitfall! & Pitfall II: Lost Caverns

One of the most popular and successful games on the Atari 2600 was Activision’s Pitfall!, designed and programmed by David Crane. A proto-platformer, it featured running and jumping adventure in a jungle setting. Coinciding with the iconic blockbuster movie Raiders of the Lost Ark, released one year previously, it was arguably better at capturing the fun and spirit of an Indiana Jones adventure than the official Raiders videogame released by Atari.

As Pitfall Harry, you explore a jungle and found treasures such as gold, silver and diamonds, while avoiding obstacles and deadly animals drawing inspiration from Tarzan and Indiana Jones, such as snakes, scorpions, and crocodiles. Due to its brilliant technical execution which pushed the limits of the 2600 hardware, Pitfall! was one of the top titles of its era, and is still remembered fondly by retro gamers today.

Pitfall! gave us running and jumping, and swinging on vines, but didn’t really have platforms per se. There’s just two elevations to run along: a flat ground level, sometimes with holes to jump over, or vines to swing on, and an underground level, sometimes with ladders and holes connecting the two. The jump mechanic was a bit primitive, and limiting, compared to later platformers — Harry can only jump up or forward, and once you press the jump button, he always jumps the exact same height and distance, and he cannot change course in midair. While this limits the type of platforming action the game can offer, it was nevertheless enough to create an enjoyable, challenging game. A bit monotonous, perhaps, compared with later Super Mario platformers that would follow a few years later, but if we look to Mario in 1981, his jumping physics were also limited in much the same way.

The way the underground level relates to the above world is strange and mysterious. Pitfall! doesn’t scroll, so when Harry runs past the edge of a screen, the game advances one screen and we find him in a new “room”. But when he crosses the edge of the screen while underground, he advances several screens. Thus, the underground is a potential shortcut, allowing Harry to skip over screens and bypass the challenges there, hopefully to pop up closer to the next treasure. This isn’t really explained to the player, who has to discover it and puzzle through it on their own.

As well, Harry can run both left and right, and it’s not entirely clear which direction he should run — due to the direction of rolling log obstacles, it seems to be the intent that you should run to the right, jumping the logs as they approach you. But it’s a bit easier to run left, going with the flow of the logs — and there are treasures to be found either way. These ambiguous choices of this helped give Pitfall! a depth and replayability it would not otherwise have had.

The sequel, Pitfall II: Lost Caverns, released in 1984, was equally well-received, and in a number of ways was an even greater technical feat. In this installment, we to get see Pitfall Harry swim, and catch a ride on a balloon, and a larger variety of dangerous animals that Harry must evade. There’s even dynamic background music that plays throughout the game, changing situationally — pick up a treasure and the music becomes happier and more adventuresome; get injured and the music turns sad. Go for a balloon ride and hear a bit of circus trapeze music. By 1984, games were starting to come with soundtracks, but this sort of dynamic music was still years ahead of its time.

The game also features an innovative waypoint system that replaces “lives” — you can fail as much as you need to, but the game won’t end; instead you’ll be returned to the last checkpoint you touched, and resume from there. In virtually all games up to this point, games granted the player a number of lives, typically three, and allowed extra lives to be earned somehow. Pitfall II was one of the earliest, if not the first, to do away with this, and allow the player to explore and take risks without the threat of a “Game Over” ending the fun. Decades later, this checkpoints without lives system has became a preferred method for making difficult platformer games that aren’t excessively punishing or unnecessarily frustrating.

There were a number of other games released in the Pitfall series on other consoles, but after the disastrous 1986 NES port, Super Pitfall, I had lost interest in the franchise and moved on to other things, so I never played any of the other games.

Of the two VCS titles, most fans seem to prefer the second. But while I do find it to be the more technically impressive of the two, I find that I prefer the original. I feel that Pitfall II suffers a bit from repetitive sequences where you have to pass the same enemies an excessive number times. Toward the end of the game, you have to climb upward while evading level after level of condors, bats, and scorpions — and each enemy requires near-perfect precision. Make a single mistake and you go all the way back down to the last checkpoint. There’s something like 20 creatures in a row that you have to run under, and it’s frustrating and tedious. There’s no other way to get past them — no ducking, no shooting, just time your run perfectly and get under them, or jump over them, and if you screw up even once, it’s back to the last checkpoint to start over. This has always struck me as poor design, rather than a fun challenge, so I’ve always felt like the original had the superior design, even if the sequel may have had a lot of cool, innovative features.

Still, both games are among the best made for the VCS, and are historically significant innovators that established and advanced the platformer genre

Top plays from Ludum Dare 36

In no particular order, here are the best-made games that I’ve played from Ludum Dare 36 so far…

Anachroma by Zillix

Anachroma by Zillix

Anachroma is a delightful puzzle platformer where the puzzles are defined by the topology of the level and the rewards are color-based, and unlock more new puzzles. I really got into this one.

Cognizance by Managore

Cognizance by Managore

Daniel Linnsen’s done it again, with a fantastic platformer mechanic involving a rotating gear wheel that can climb walls and interact with its environment to power treadmills and other cog wheels in order to move platforms and solve puzzles.

Canoe and Spear by BluShine

Canoe and Spear by BluShine

This is a fantastic single-screen death match, basically a tiny Towerfall: Ascention with a unique canoe paddling mechanic. Toggle left/right arrows to paddle/steer, and fire a spear with the Z or X button. Up to 4 players can play head to head, or you can play vs. AI. Built in PICO-8.

Invent the Wheel by Delicious Code

Invent the Wheel by Delicious Code

This simple game is surprisingly fun and addictive. All you have to do is draw a circle, and the resulting shape will roll down a hill. The faster it rolls down the course, the better your time. The more round the shape is that you draw, the better it will roll. It also seems to help to draw as large as you can.

Supercontinent LTD

Supercontinent LTD

A point and click mystery that you solve with a little hacking and social engineering via telephone. Great atmosphere and mood created by the graphics and sound, and the dialog system is fantastic as well.

The Leak by cabbage_

The Leak by cabbage_

A little adventure/RPG that you can play on a real Game Boy(!!)

Old Man’s Sky by Geared Games

Old Man's Sky

A parody of No Man’s Sky, or a de-make in the style of the Atari 2600, Old Man’s Sky pretty well skewers No Man’s Sky for being a pointless game about infinite sameness, as you go from world to pointless world, exploring and finding only differently colored versions of the same old stuff, over and over again. Never do you encounter anything truly interesting, nor does anything really happen. Still, it’s oddly beautiful, in its own way.

Kites by VitasaMode

Kites

A beautiful homage to Missile Command, set in ancient China. Fire rockets to stop a never ending flock of kites. The kites don’t seem to do any harm, other than if you let the blue ones fly over your city, you lose points. And if you accidentally hit a red one, you also lose points. The art direction is very nicely done.

Review: No Mario’s Sky/DMCA’s Sky

In my last post, I talked about the recent copyright and trademark infringement takedown actions initiated by Nintendo against No Mario’s Sky and various other games hosted on GameJolt.

Here’s a review of No Mario’s Sky/DMCA’s Sky.

No Mario’s Sky was made in a weekend for Ludum Dare 36. It is a mashup of Hello Games’ No Man’s Sky and Nintendo’s Super Mario Bros. The theme for Ludum Dare 36 was Ancient Technologies. It’s unclear how this game relates to the theme. However, due to the popularity and familiarity of Mario and No Man’s Sky, the game got quite a lot of attention in very little time, and was picked up by websites such as Kotaku and Polygon.

The premise of the game is that Mario is looking for the Princess on an infinite series of procedurally generated 2D Mario worlds. The worlds wrap around a circle, giving them the appearance of planetoids.

Once you’ve satisfied your curiosity on one world, you can summon your spaceship and take off in search of another world. Apart from the color scheme of each world, there’s not all that much to differentiate them, which may be due to the game being developed in just 72 hours, or may be a deliberate commentary on the procedurally generated sameness that many players of No Man’s Sky have complained about.

No Mario's Sky

From a Mario standpoint, the game only borrows the titular character, the goomba enemy, and the basic concept of jumping on platforms and enemies, collecting coins, and hitting platforms from below. No sprite artwork is taken from Nintendo’s games, as all sprites and tiles appear to have been re-created by the ASMB development team, and while the Mario and Goomba characters are recognizable, they are not in any way confusable with Nintendo art assets. There is no brick breaking, no super mario mushroom, no star man, no fire flower. Again, this is likely due to the compressed schedule under which the game was created. Each world plays its own variant of the Super Mario Bros theme music, which is again a re-done composition, not the original music ripped from the Nintendo game.

In short, from a copyright infringement standpoint, this game is in a gray area, but pretty safe, in that nothing is actually copied directly from the Nintendo games. This game is about as much a Mario ripoff as KC Munchkin was a Pac Man ripoff. (Atari successfully sued Philips to stop the sale of K.C. Munchkin, even though the game was not Pac Man, but the case was bullshit and probably would not have succeeded were similar suit brought today.)

From a trademark infringement standpoint, of course, the game clearly is using the identity and behavior of the famed Nintendo mascot, without authorization or permission of Nintendo. If this were a commercial product, it would certainly be liable for trademark infringement. However, this is probably closer to a parody, or a “fan game” or homage. Unfortunately, the latter two concepts don’t exist as legal categories. It might be that the creators could have successfully defended the game as a parody, but that would have involved going to court and rolling the dice to find out whether they could persuade a judge of that. There’s simply no way an independent developer has the time or resources to try to defend what amounts to a weekend’s worth of work against a company the size of Nintendo for what would surely be months or years of litigation.

If ASMB had avoided use of the Mario name, perhaps renaming him something recognizable, like “Mustachhio”, say, and if the music had been done in a way that was recognizably Mario-eque without having the exact same melody, probably Nintendo would not have had any copyright leg to stand on, and the game could have remained as-is. From a trademark standpoint, though, it probably does run afoul of Nintendo’s trademark on the Mario Bros. franchise, given that it uses the Mario and Goomba names and likenesses.

While the game is fairly bland as-is, the concept is certainly fun and held promise. Were the game to be developed further, to better incorporate the Mario characters and play mechanics, it could have been a very enjoyable game.

DMCA’s Sky removes the Mario and Goomba artwork, replacing them with a generic space man and alien, and the music has also been replaced, but otherwise the game is much the same. Interestingly, the jump, coin and 1-up pickup sounds remain recognizably Mario-esque, but again do not appear to be direct rips from original sources.

DMCA's Sky

I suppose Hello Games could also make an IP infringement claim if they wanted to, and force the game to remove the procedurally generated planet hopping, at which point the game wouldn’t have much left in it anymore. Notably, so far at least, they haven’t.

It turns out, though, that when you break down just about any video game into its fundamentals, pretty much every game is based on, or borrows from, concepts that came from some other game. And — this is the important thing that must not be lost sight of — concepts are not subject to copyright. Not even play mechanics are copyrightable. Only actual works are copyrightable.

Of course, copyright is only one branch of Intellectual Property law, and there’s also potentially opportunity for patent and trademark lawsuits to shut down a game that borrows “too much” from a well known existing game.

Despite this, much of the charm of No Mario’s Sky was in its mash-up-ness, and this charm is effectively stripped from it by removing the Mario references. So clearly, the game derives some value from referencing the source material that it is based on. I don’t think that can be denied. I have a harder time seeing how this game harms either Nintendo or Hello, however. It was available for free, not for sale. It isn’t reasonably mistake-able for a real Nintendo game, and if that were a risk it could be prominently disclaimed on the title screen that it was not in any way connected to Nintendo, who retains full ownership of the “real” Mario characters. I see little evidence that the existence of this game or the numerous other Nintendo-IP infringing games done by fans over the years (including ROM hacks, homebrew games, de-makes, and homages) has in any way diminished the Nintendo brand or harmed Nintendo as a business.

The takedown of unauthorized fan games isn’t anything new — it’s just the latest in a string of consistent defenses of Nintendo’s IP rights. It’s clear that Nintendo is aggressive in protecting their IP rights, and have always been. This has been in part due to their corporate culture, but also in larger part due to the nature of IP law.

But IP law isn’t immutable. We could as a culture elect to shape law differently, if we could agree to.

Nintendo’s takedown of videos on youtube and elsewhere, of people playing their games who do not participate in or follow the rules set forth by Nintendo in the “Nintendo Creator’s Program” is ridiculous — it’s not a copyright infringement for me to play a video game, or to talk about a videogame, or to record me talking about a videogame while playing it, and footage of said videogame that I create should legally be my sole creation (while the characters owned by Nintendo and other IP-holders are still retained by those holders).

If I want to make a video of a videogame for purposes of review, criticism, or parody, I shouldn’t have to obtain the permission of the IP rights holders of the videogame, nor should I have to share revenue with them. They earned their revenue already through sale of the game, and did none of the work to produce the video, so why should they be entitled to a share of revenue generated by the video?

Likewise, if I want to make a videogame that references other videogames, much as a work of literature may reference other works of literature, creators should have some right to do so. Exactly how this should work out so that the original creator’s rights are protected and respected isn’t very clear, however.

Ultimately, the power seems to fall to those who have the deepest pockets with which to pay the most and best lawyers. As as a result, the culture, and the game playing public, is poorer for it.