Category: Uncategorized

GameMaker Studio finally coming to Linux?

About 10 years ago, YoYoGames was talking about a Linux IDE for GameMaker Studio on their long-term roadmap. A few years passed, and the roadmap disappeared and all talk about a Linux IDE went silent. It seemed that PlayTech may have been responsible for killing the project when they bought YoYoGames.

I’d given up all hope of a GameMaker IDE on Linux long ago, but a few days ago, this article crossed my newsfeed. It looks like new YoYoGame owners Opera is developing a port, currently in beta. It appears it will be supported on Ubuntu only, but that’s better than zero Linux distros, and Ubuntu is a pretty good choice.

This would have really excited me a decade ago, and would have been the last obstacle to me completely ditching Microsoft. While better late than never, it’s still not really here yet. It sounds like the beta currently has some rather severe issues that make it less than suitable for production at this time. Hopefully this will change quickly. It will be interesting to watch and see how it goes in the coming weeks.

Audacity: spyware?

A couple weeks ago, I saw a news headline somewhere about how the open source software project Audacity had been compromised as spyware, and that users who are concerned about freedom and privacy should not upgrade to version 3.

This article on ArsTechnica (purports to) debunk this scare story, but I think they arrive at a bogus conclusion. The highlighted text in the screen capture of the article below shows why.

Data necessary for law enforcement is most certainly a spyware concern. Hello!

Spyware is concerned with violating users privacy, period. It doesn’t matter whether there’s a good reason for it, or if it is legally mandated. If the software is gathering information for you, not on your behalf, and reporting it to someone else not you, without your express, informed consent, it fits the definition of spyware. Period.

The “data necessary for law enforcement” category might sound good to many people. Laws are nominally good, and law enforcement must therefore also be good, right?

Sure… Except in corrupt regimes. How might they abuse this?

A better question might be: What legitimate use might they have for this?

Audacity is vague as to exactly what data is “necessary” to provide to law enforcement.

My guess is that copyright cops want some way to track Audacity users who use Audacity in violation of copyright. Of course, there’s not really a way to know if the use of a copyrighted audio file might fall under Fair Use, and Big Copyright does not care — they are the enemy of Fair Use, unconditionally. They want to protect their interests, which means, ultimately, totalitarian-level control over all media, whether they own it or not.

But in more fantastical paranoid scenarios, law enforcement could encompass nominally “anti-terrorist” technologies that can be abused to target political enemies, minorities, etc. I don’t know that this is a thing, but depending on how vague Audacity’s project maintainers are, it could conceivably be a thing. If the perceived threat is that terrorist organizations use software to create media messages, embedding tracking data in the files to identify the computers that were used to produce it, geotag via IP address the location where those computers are, etc. is feasible, at least in principle.

Moreover, there’s little to stop evil regimes from requiring that all software must include whatever data gathering they see fit, turning computers into Big Brother boxes. We may not even be all that far from that reality as it is, given what we know about state actors and non-state actors dark influence the web and on mobile device apps.

The “telemetry” data gathering that vendors use to improve their product and see how users use their products are pretty standard by now, and most people aren’t going to be impacted by that, at least not in a negative way. But it’s a door opened a crack that enables a slippery slope of “if you can collect this, we can require you to collect what we want” so in a way telemetry features is a bit of a trojan horse. But as long as developers are transparent about what they gather, and make it opt-in, I don’t really have a problem with it.

The article does mention that these alleged spyware features are only in official builds, so if you don’t want them, you can compile the project from source and they will not be there. While good, only a very small number of people will compile a software project from source for themselves.

A colleague with an interest in IT and legal issues pointed out to me that:

As I understand it a third party like Audacity DOES have to hand over records if subpoenaed by law enforcement but DOESN’T have to *create* those records if it wasn’t going to create them anyway. E.g., if cops demand the WordPress server logs that I have, I do have to hand them over. But I don’t have to have logs at all if I don’t want to.

So no, they’re doing more than they have to to comply with the law. They could just not collect the information.

I would like to know more about this WSM Group — I googled and there’s a lot of three-letter acronym organizations that use this, but the most likely one, I would guess, could be WSM Music Group, Ltd.

According to wikipedia, they’re in Hong Kong. So, China’s oppressive laws are shaping the way “Free” (libre) software used worldwide is being developed? China is a huge IP violator and (obviously) privacy violator for its citizens, and there’s plenty of examples of Chinese electronics companies (such as Lenovo, Huawei, etc.) embedding insecure backdoors and spyware out the wazoo into consumer products.

So, no, I do not feel at all assured by any of this.

“Retro” gaming

I like video games, old and new. But I had more time to play video games when I was younger, and so I like the games that I spent the most time with the best, because they are most familiar to me. So I mostly like old games.

I also like new games that evoke the feeling of playing the old games that I liked.

There’s a lot of talk about “retro gaming” in the gamer communities I follow, and a recurring topic of conversation is to ask what the definition of “retro” is.

Usually people have some guideline, like “anything older than 10 (or 20, or some other arbitrary cutoff age) years old is retro”. Or sometimes they’ll refer to retro as anything that ran on an 8-bit or 16-bit processor. Then there’s a bit of discussion about console generations, about the transition from EEPROM cartridges to optical media, CD-ROM to DVD-ROM, and then the more recent transition away from optical media to solid state and digital download. People attempt to draw circles around the different features in order to define some set of characteristics that define retro.

I believe that these discussions are misguided.

Retro isn’t a thing that something becomes when it gets sufficiently old.

Rather, retro is when someone, in the present, does something in an outdated or obsolete way, creating something in the style of something that is now old.

Atari was state of the art. NES was state of the art. SNES was state of the art. N64 was state of the art. Sony Playstation was state of the art. The Wii was state of the art. Even if it wasn’t using cutting edge technology — Nintendo has a history of using less expensive, less impressive hardware than Sony/Microsoft, but is nonetheless state of the art in its current generation.

A game programmed to run natively on the Switch, but that looks and feels like a NES game, like Shovel Knight, is retro. The original Super Mario Bros. will never be retro — it is old, not retro. Super Mario 35, Nintendo’s 35th anniversary celebration that re-imagines the original SMB, is retro. An indie game written in for PCs that evokes the look and feel of a game that could have been implemented on the hardware of a generation or two ago, is retro.

Retro is something new made to resemble or evoke something old.

Howard Scott Warshaw: Once Upon Atari

I’m about halfway through Once Upon Atari: How I Made History By Killing an Industry by Howard Scott Warshaw, and loving it.

Howard Scott Warshaw, if you didn’t know, was a programmer for Atari in the early 80s. He worked in their console division, where he developed the games Yar’s Revenge, Raiders of the Lost Ark, and E.T.: The Extra-Terrestrial for the Atari 2600. These were groundbreaking games on the most popular home console of its day, and accomplished many “firsts”.

In 1983, the video game market suddenly collapsed, due to a combination of a multitude of factors, but at the time Warshaw’s E.T. was often given blame for causing what came to be known as the “Great Crash of ’83’. E.T. has often been referred to as “the worst video game of all time” but that is quite unfair to the game, which pushed the limits of the Atari 2600 hardware, and while not perfect, was by no means a bad game — although it was drastically over-produced by Atari, leading to a huge amount of unsold inventory, which hurt the company’s bottom line. Warshaw was given 5 weeks to develop the game, a feat thought by his managers to be impossible given that most Atari 2600 games took about 6 months to develop.

This is all well known and chronicled history for video game fans. Warshaw to his credit has been remarkably accessible and open about his story for some time, and has given numerous interviews over the years. He’s even been known to appear on the Atari Age facebook page and comment once in a while. He’s truly a legend of the industry, and a wonderful, brilliant human being. This book details his story, how he came to work for Atari, what went on there during his tenure (confirming a lot of the oft-retold stories about the workplace culture), and how he faced the indignity of being cast as the creator of the “worst game of all time”.

Warshaw left Atari and went on to become a licensed psychotherapist and has helped people like himself, who worked in the high tech field to deal with the immense pressures that they’re put under to be creative, be correct, and deliver products that will make billions of dollars for themselves or their shareholders.

I haven’t gotten to that part of the book yet, but from what I already know of his story, his approach to dealing with failure, or at least the perception that he had been responsible in large part for a massive and very public failure of what had just a year prior been the fastest growing company in the history of the world, is remarkable as it is instructive. He has embraced the label, but adds to it that his Yar’s Revenge is often cited as one of the best video games on the Atari, thus giving him the rightful claim to having the greatest range of any game developer. Turning a negative into a badge of pride, he has faced the critics, rebutted them with not just clever rhetoric, but also facts, figures, and sound reasoning, and provides us an example of how “failure” often isn’t failure, that perceptions matter, that what you tell yourself matters, and that above all it does not define us — we have the power, if we choose to use it, to define ourselves.

Warshaw’s writing style is accessible, not overly technical, candid, often quite humorous, warm and insightful. Reading his book makes me admire him even more than I did, and grateful for the handful of times that he’s Liked something that I’ve said on the Atari Age facebook page, and most of all, thankful for the many hours I spent as a young child engaging with, and enthralled by, his digital creations.

https://newonceuponatari.hswarshaw.com/

Insert Coin Bally/Midway/Williams Documentary

A few years ago, I backed a Kickstarter project to produce Insert Coin, a documentary of Bally/Midway games. The project finally delivered, and so far it looks like it’s been worth the wait. Luminaries from the arcade industry of the 80s and 90s, Eugene Jarvis, John Tobias and Ed Boone, and others give interviews talking about the development of classic titles from Defender to Mortal Kombat. If you’re a fan of these games, it’s well worth checking it out.

Awakening from cryo-sleep

So I guess GDEX had a virtual event last weekend, or recently, or whatever. You know, because of the COVID pandemic.
I didn’t attend the virtual GDEX this year, and for the last year+ I have been inactive as a game developer, due in large part to the feeling of hopelessness that I have about ever doing anything meaningful or memorable in that field. The tools frustrate me, programming feels like drudgery, the market is brutal and impossible. So why even bother trying.
Mind you this is all in my head, I just have an incredibly negative, defeatist attitude about life, and this poisons me every day that I’m alive, and I wish I could have a brain surgeon cut that part of my brain out of my head.
An odd coincidence that Fri-Sat I made a tiny little snake game for my own satisfaction. I didn’t make it for any reason other than I wanted to make something, and feel what that feels like again.
For some reason though, this morning I recalled a dim memory of a GDEX from several years ago.
I was walking in to the event, feeling like an imposter, a nobody, never worked in the industry, just a wannabe who had a life-long dream of working in game development, ignited from the moment I played my first video game.
I was walking into the building where they had the event that year, this was the first year that they held it at COSI, and some random guy who was also walking into the event starts talking to me, and I tell him who I am, and as I’m telling him about my website and the couple of books on GameMaker that I donated my time to for no compensation other than my name appearing in the book, the guy KNEW WHO I WAS. He was like “Oh you’re that guy! I’ve read some of your tutorials! They were helpful!”
I’m standing there, not quite an important person, and yet there’s this guy who knew of me because of my work, and he had been helped by it.
I don’t need to be, like, a rock star, or anything, but being recognized on the proverbial street by a random person I ran into at an industry convention kindof almost made me feel like a rock star, almost. Like, yep, that’s me, the guy who can’t learn how to program good, so he publishes little tiny increments of progress on a website in order to not lose track of what little he could figure out because it sucks when you spend 12 hours pounding your head against some problem, finally figure it out, and then can’t remember it the next time you need to do it, so I put it on the web so I can find it again when I can’t remember it myself. That’s me. I’m that guy.
And I just kindof shrugged it off, and forgot all about how, no matter what other failures I don’t even bother to try to accomplish in my life, there’s direct evidence that I did a thing that was meaningful in the field of game dev.
OK, maybe I didn’t make Pac Man or Tetris or Mario, and I’m not a “successful indie developer” who has a following and a career and goes around saying important things to people who want to hear them because I’m the one saying them.
But I was able to figure out how to make some pixels wiggle on the screen using trigonometry, and because trig confuses the shit out of me and a lot of people, I decided to write up what I had figured out while it was still in my head since I’d for sure need it again, and to make sure it was really good I published it so that someone who reads it might suggest an improvement, maybe.
And then other people came by and read it, and I still get about 50 or more readers a day, and like 375,000 people have visited the site since I started it, which sounds like a lot of people. And they walk around in real life and you can randomly encounter them, and tell them who you are, and they will sometimes know who you are already, after you start telling them about you.
And then you still don’t have a million dollars, or any dollars really, but you feel different after that, you feel a way that you could never have felt unless you did those things.
And I realize, like waking up out of cryo-sleep, that I can, you know, keep doing things.
 

So, here’s a vlog from a guy with a successful youtube channel where he talks about astronomy, because he loves the cosmos and seems to know a lot about it, and his latest vlog is about how he’s glad that he’s no longer homeless, because vlogging about astronomy is totally a thing you can do if you really love astronomy. This seems like an important reminder for those of us who have a passion for a topic, or a goal of some kind, and can’t seem to believe in ourselves long enough to do a thing significant enough for us to feel like we did a thing of significance.

Superman (Atari 2600) alternate map Romhacks, part 3

After publishing part 2 of this series, I played my grid map romhack a few times, and I think it’s rather good. I don’t know that I would say that I prefer it over the original map, but this is certainly a viable alternative map.

After a few playthroughs, I notice a few things:

  1. The helicopter moves bridge pieces away from the Bridge screen much more frequently. In the original, once you’ve placed a piece at the Bridge screen, the helicopter would only rarely remove it.
  2. The helicopter seems to move pieces from their starting screen much sooner, as well.

I like both of these differences; they make the game more challenging, and I think, more fun. You really feel like you need to race the helicopter to complete the bridge task. But I think it’s worth experimenting with the map to see if there’s a way to restore the original design intent, by reducing the number of paths into the Bridge screen. It occurs to me that an easy way to do this is to make the two screens above and below the Bridge screen connect to each other, rather than to the Bridge screen. So the Bridge will exit vertically to those screens, but reversing course will skip over the Bridge, but still place you near the Bridge; players would need to figure out that they are “around the corner” from the Bridge in this map, which is potentially disorienting, but should be less of a problem than the original map, which puts you clear across into the middle of the other end of the city.

I do think that this map has a few peculiarities that make it sub-optimal.

  1. Some of the subway entrances are right next to their exits. There’s little point in a subway trip that results in you re-emerging on the overworld map one screen over from where you started. For example, the Red subway entrance is one screen away from two of its exits, due to being on the top left corner of the grid, and the wrapping effect. The Blue and Yellow subway entrances are about optimally located relative to their exit screens, and the Green subway entrance is directly above one of its exit screens.

It’s possible to remedy this by moving the subway entrances around, or by changing their exits to more useful screens for this map layout. I was reluctant to try this, because I wanted to keep the changes that I am making to the maps minimal, but it seems that these changes are necessary for the good of the game.

Metropolis 21/7

Another thing that strikes me is that I didn’t need to remove one screen from the overworld in order to have even rows. 21 = 3 x 7, so I could have made an overworld map of 3 rows of 7 screens. This might make the subways more useful, since it would make it easier to place the subway exits such that they are 3-4 screens from their entrances.

A 7×3 grid will allow all 21 overworld screens to be included in the new map. Again, I went to an image editor and re-arranged the screens to make a layout, then visually reviewed and analyzed the map for playabiltiy concerns, and made tweaks.

My first iteration of this was to lay the screens out in the original map’s horizontal sequence, and see how that would play. That map looks like this:

First iteration

Without actually playing it, it’s easy to miss things, but I can see that this map has a few potential issues:

  1. The bridge pieces starting screens are all on the west end of the map, and are nearby the Bridge screen.
  2. The Phonebooth, Bridge, and Jail are all on the bottom row, which makes the bottom row feel too important, and the top row feel unimportant.
  3. The “critical path” relationships in the original map are broken in this map. This may not be a problem per se, but it will make the new map feel less familiar to experienced players.
Superman bridge piece routes
The original Metropolis map has a very tight spatial relationship between the most important screens on the map. The new map layout breaks this by moving the Jail screen far away from the rest of the screens.

Otherwise, I think the map looks pretty decent. I’m not sure how I feel about the potential issues I mention above.

I do think that the Bridge should be the center piece of the map, so I shifted rows and columns in order to make it so, but the rooms are still in the original order, using the horizontal progression from the original map.

It’s interesting how shifting things around can change perspectives on things. With this view, I’m able to notice different things:

  1. Now all the “important” screens (Jail, Bridge, Phonebooth, Daily Planet, and all but one of the bridge pieces) are on the west end of town.
  2. But balancing that, all the subway entrances are on the East end of town.
  3. Subway exits are somewhat evenly distributed, but there’s a few interesting things to point out: The Red subway exits all line up in a column at the far west edge of the map, while the Yellow subway exits are all distributed across the top row. The Green subway exits follow a diagonal from the northwest corner of the map, moving southeast. And the Blue subway exits are scattered about as far from each other as they could be.
  4. Shifting the screens changes the loopback point at the top right, and as a result the screen that normally is to the left of the Phonebooth screen no longer is. Which, despite what I thought when I first decided to shift the screens to put the bridge in the center of the map, does fundamentally change the map. Then I realize… I did it wrong!

I can’t just grab the top row and move it to the bottom, and then slice the right couple of columns and move it to the left. That will not preserve the horizontal order of the screens. To do that, I need to grab the top-right screen, move it to the bottom left, and then let all the other screens shift right by one, snaking around. This approach gives this result:

Overall, it’s actually very similar to the first two iterations. It’s literally the same horizontal sequence as the first iteration, but it’s not all that different from the second iteration, either; the “important” screens are still mostly to the west, the subway entrances are still mostly to the east. I think the subway exits are a bit better distributed than in iteration 2.

The vertical path is quite different. I think this map will run slower, due to the placement of the Jail in the corner of the map, and its distance from most of the subway entrances, and the Phonebooth/Bridge screens. There might yet be some quick paths that will become apparent through repeated play, but for now I feel that the map feels disorienting because the Jail isn’t north of the Yellow subway entrance screen any longer, and I struggle to locate it as a result.

Certainly there are many other possible arrangements for the overworld map, and I haven’t even begun to re-design the subway. But I think this is enough to satisfy my curiosity, at least for the time being. I may come back and revisit this further if I feel a need to after playing the maps I already created more extensively.

There’s much more to do in a hack of Superman, as well. I would like to figure out how to randomize the starting places of the bridge pieces, for example. I would also be interested in figuring out how to put up a hard barrier around the outer edge of the map, rather than having the map wrap around at the edges. But these projects, if I ever attempt them, will have to wait until I have a deeper understanding of 6502 assembly.

Download all of my Superman map romhacks here:

Ouya shutdown shows the downside of Games as a Service

Ouya. The kickstarted, indie-friendly mini console based on Android that failed in the market, is now on its deathbed. After Ouya gave up on its dream, it sold off its assets to some company, and there was some vague plan of relaunching a new brand in China, or something, but it didn’t work out. Now, the games servers are going offline, and the games will not be able to be downloaded or even played in some cases, if they need to connect to servers that no longer exist.

There are some efforts to preserve the game library and keep the games available, but it’s likely that they will not be able to preserve 100% of everything.

This shows dramatically the dangers of digitally distributed games-as-a-service. When the service is discontinued, there’s nothing left to own. History is lost, and there is no legacy, as everything fades into oblivion.

Why creative types shouldn’t settle for anything less than ownership

Last week, I read an article by a professional game developer entitled “Making games for a living means being in constant fear of losing your job.”

The author’s solution idea is for game developers to unionize, in much the way the movie industry has unionized. I think unionization would be a great thing for the industry, but I’m not sure it goes far enough.

The videogame industry started about 40-50 years ago. The people who founded the industry worked very hard, started from nothing, and worked insane hours, pouring their life into creating the new industry. The ones who were successful ended up making a fortune.

That fortune was only made possible through ownership. It wasn’t making games that made the founders wealthy — it was making companies. In a lot of cases, the company came later. Nolan Bushnell and Ted Dabny started Atari in 1972 with $500 (about $3000 today). A kid like Richard Garriott or Jordan Mechner programmed a game in his bedroom on his home computer, sold it through mail order using a classified ad in the back of a computer magazine, and made a million dollars, and decided they should turn it into a company, using that money to hire more people to make more and bigger games.

Somehow, the expectation for the new employees was to work just as hard, just as many hours, and crank out more games that would make millions of dollars. Only, they were doing this work as a “work for hire”, and wouldn’t own their work — their employer would own it.

This means all the same hard work that the employee did that went into creating that game for his employer enriches the employer, when it could have gone to the employee’s own company that they owned and profited from. Employees enrich someone else’s empire. That’s the way capitalism works.

Because the industry now exists, it’s easier to work for pre-existing companies them than it is to start up a new company. Not only does a new company have all the struggles of just starting up, they also have to compete with already-functioning companies. But the owners who worked hundred hour weeks to found their business often expect no less of their employees.

Yet, the vast majority of employees don’t get compensated with an ownership interest the company for their hundred hour work weeks. They just get burned out and dumped when their project ships. For working for someone else, you got only a salary, not a company.

Ownership comes with things like a share of the profits. There’s also a lot of risk, but it’s balanced by the compensation package that comes with owning a company, whereas work-for-hire employees don’t get this level of compensation, yet have just as much if not more risk associated with their employment in the form of layoffs. Employees creating works-for-hire don’t even get royalties, and job security is non-existent. Once the product shipped, they were no longer needed and if there wasn’t another new project waiting for them that could exploit their talents, they were expendable.

That’s a raw deal.

Game developers who want to make money and have job security should own their work, and that means owning a piece of the company they work for.

It sounds like I’m suggesting that every game developer should be an indie game developer. I’m not. Clearly, being an indie is not easy either. In fact, it’s brutal. There’s a lot of competition. An indie has to do everything well in order to be successful, and almost no one is that talented at everything needed to be a success. Game development requires a lot of diverse skills, and a good team can cover those bases a lot better than a sole proprietor.

But what is good about being an indie developer is that you get to own your creative work. You get to create new IP, rather than toil on the sequels to someone else’s successful IP franchise. But even for workers making the next iteration of a successful known entity (let’s say Mario, for sake of example), being employed means that they should take on a share of the ownership stake in the Mario franchise, or in the company that owns Mario. That means royalties on sales, in perpetuity, of the product they worked on, and it means the right to produce new works in the Mario milieu.

This would go a long way toward padding the job insecurity that is endemic to the game development industry. Making money through royalties on existing works, and owning stocks that would pay dividends, would be a critical income stream to supplement an (ir-)regular salary.

Game developers will never get this, unless they strike out on their own and create their own companies from scratch, or if they strike together, unionize, and demand it from the companies that currently exploit them.

If an employer wants to commission creative work on a “for hire” basis, then the working conditions should be reflective of the compensation being offered: 40 hour work weeks, additional compensation for overtime, 1099 employment status rather than W-2, and salary at a higher rate to reflect the short-term nature of the work arrangement, to allow skilled professionals to earn enough to cover lean times between contracts (generally more than twice what a full-time employee would expect to be paid).