Red Hat 블로그
Two weeks ago I sat down with Michael Clayton and Jared Sprague to talk about Command Line Heroes: The Game. If you missed that post—have no fear—it is (of course) still available.
But wait, why are we talking about games? In large part it’s because we’ve spent the last 12 months on the road asking people about their origin stories. And, after hundreds of interviews, we’ve come to understand that for many (but not all) their introduction to technology and/or computing started with video games. This inspired us to start Command Line Heroes season 2 with “Press Start,” an episode about how open source and video games share an origin story—one that takes place long before the terms “open source” and “internet” were even coined.
In today’s conversation with Michael and Jared, and in the spirit of Command Line Heroes’ latest episode (i.e., Hello, World!), we explore the languages used in open source game development, give an update on why we’re starting Command Line Heroes: The Game by first developing the hero-engine, and touch (once again) on Open Jam 2018.
Quick note: if you want to jump straight into the code or find out how to contribute to Command Line Heroes: The Game visit our GitHub repository.
The languages behind open source game development
Dan: Thank you both for taking some time away from your day jobs (working on the Red Hat Customer Portal) to talk about the latest episode of Command Line Heroes (i.e., Hello, World!) and how this explosion of languages impacts your own side gig as open source game developers. If you’re an aspiring open source game developer or perhaps you’ve been “in the game” for awhile now, how do you know what languages are important or which ones will remain relevant in the years to come?
Michael: In short, you don’t know. I think the healthiest way to approach the huge number of options is to realize that instead of it being a problem of “choosing the right one,” the problem is closer to “which of these many great options should I select,” as there are very few wrong choices. Put another way, even if you choose something that winds up not being the “right” one a few weeks into the future, you will still have learned and distilled a lot of information. For example, if you are a React developer and in the future React isn’t the hottest framework on the block, you’ll still have all of the lessons that React taught you to bring along.
Dan: To paraphrase, when solving a particular problem or facing a particular challenge, even if you head a short ways down the “wrong” road, you’ll learn a lot in that journey. And, whatever you learn will help as you continue to iterate and push forward.
Michael: Yes. Basically, all roads lead to Rome. And, let’s assume Rome is a good destination. Whether you want to develop a web application and you choose React or Angular or...
Michael: Ha. Yes, “none” or DIY (sometimes we say “Vanilla JS”) is a real option, along with a host of older frameworks like Backbone.js. Any way you slice it, you’re still going to learn a lot and you’re going to make something that’s going to work. And the magic of the “web” is that because of the nature of web standards whatever you build is essentially going to work forever. That said, choosing something that has a good community around it is equally important. This community is your support network. If it’s healthy, they will write tutorials and blog posts and make YouTube videos and answer questions on StackOverflow and help with GitHub issues.
In my mind, the summary here is that you can’t choose a “wrong” language. But if you choose a language with a healthy community, you’ll have something to rely upon when you need help or assistance.
Dan: Spooky. It’s like you knew that the next episode of Command Line Heroes (“Ready to Commit”) talks all about the mechanics of open source software development, communities, and more. I won’t spoil it any further. Suffice to say: I think we’ll have a lot to explore and talk about the next time we sit down.
Dan: Let’s talk about the web for a moment. Why develop for the web in general? I know when we talked about creating an open source Command Line Heroes game, it didn’t have to be a web game. So, for open source game development, why the web?
Jared: For me, it’s about lowering the barrier of entry for people to play. In the game industry, you are really competing for people’s time. If they have to download something and install it and then, for whatever reason, it doesn’t work on their platform, that’s the end. They’re just going to get up and walk away. Alternatively, if you can reduce the barrier of entry to almost zero, you’ll have a lot more success in getting a lot more people to give you their attention and their time. With a web-based game there’s no barrier to entry—at all. You just go to the page and it’s there .You can just “Press Start” (editor’s note: see what I did there?).
Michael: As an example, Jared and I made this game called Zorbio, which is an IO game (if people know what that is), and because it has like zero barriers to entry, we’ve had millions of people play that game. So I’ll echo Jared in saying it’s all about reducing the barrier to entry.
Channeling Grace Hopper
Dan: Wow. So this totally reminds me of something I heard in today’s episode (i.e., Hello, World!). Our host, Saron Yitbarek, was interviewing Claire Evans (author of Broadband) when Claire relates that Grace Hopper (a central figure in both the history of computing and the latest episode of Command Line Heroes) was uniquely aware of the fact that computing was going to be a world changing thing, but it wouldn’t be a world changing thing if people didn’t know how to access or use it. Claire went one step farther in relating how Grace believed it was of the utmost importance to ensure that computers and computing were open and accessible to as many people as possible.
If I’m hearing you guys right, choosing to develop web-based open source games is all about reducing barriers to entry and making it easy for people to get involved. In this way, whether you knew it or not, you’re totally channeling some of what Grace Hopper believed in back when computing was in its infancy.
Jared: Yep, exactly!
Dan: It’s really cool to see how this core sentiment hasn’t changed after all of these years. I mean the landscape and the technology may have changed, but the notion to making things accessible and open really hasn’t changed at all.
Command Line Heroes: The Game
Dan: Let’s pivot back to Command Line Heroes and talk a little bit more about Command Line Heroes: The Game. I’ve come to understand that you guys are working on an engine for the game before diving into work on the game itself. What’s the thinking here?
Michael: It’s all well and good to build an adventure game, but why just build a game when you could, for about the same time investment, build an engine and a game? In this way, with the engine in place, you (and others) could then more easily create a second game and a third game! And, if time allows for it, we could release videos and tutorials on how to use the engine, enabling other (future) adventure game creators to hop aboard and build adventure games for the web, too. Interestingly in our preliminary research (i.e., before starting this project) we weren’t able to find any HTML5-based adventure game engines that were open sourced. Well, maybe one?
Jared: Yea, it was called Jaguar. It didn’t appear to be open source. Nor did it appear to be free.
Michael: So… we decided to build one! And subsequently decided to name it: hero-engine! Credit to Jared for the awesome name. To date, we’ve spec’d out how the levels and rooms will be created and exactly what property names will be used and how to use the Tiled Map Editor to create a level. The engine consumes this information and emits a game based on that map.
Dan: If I understand this right, it sounds like you’re essentially creating one of the first open source adventure game engines for web-based games. And in doing so, you’re making it easy and accessible for others to build games in a way.
Jared: Yes. That is the exactly our goal. We want to make it easy and accessible for people to build adventure style games. I will note that to say it’s an “engine” might be a tiny bit misleading in that it doesn’t work as an engine on its own. It relies on another full-featured open source HTML5 game engine called Phaser 3. Hero-engine uses Phaser 3 and the Tiled Map Editor to kind of layer on top and integrate between them to make a platform where you can create adventure games. We’ll consider it a great success if people can create their own adventure games with this outside of just Command Line Heroes: The Game. It’s probably already been stated but there should already be links (below) if people want to get involved with the project. The code is available out in GitHub today!
Open Jam 2018
Dan: A final note, as we come up to the end of September, it occurs to me that Open Jam is coming up soon. Where are you guys today with Open Jam? Are there still ways for people to plug in and participate?
Michael: Yes, absolutely! Submissions are open from October 5 to October 8 for Open Jam. Anytime before the very end, which is October 8 at 9 p.m. EDT, it’s possible for someone to join the Jam. When they do join, they’ll see the theme that we’ve established and can get to work creating a game! No joke, people can join even if it’s an hour before the final deadline. It is possible to make a really quick game in an hour. So, there’s lots of time left to get involved.
Jared: This year we’re running the Jam for 80 hours to give people plenty of time to make a game they’re happy to publish and share. Also, one of the new things that we’re doing this year in terms of judging criteria, in addition to normal categories like graphics, audio, and humor, we’re adding a new category called open source karma.
Michael: Yes. We’re doing this because we want to really emphasize that open source game development can help hone a really valuable set of skills. To determine how high on the open source karma scale someone has climbed, participants can look at things like: Did this person create a git repo with a helpful readme? Did they use entirely open source tools to create it? And did they pick an open source license for the game? Based on factors like these, they’ll be able to determine an open source karma rating and the most open games will get open source karma!
Dan: This sounds awesome and, to be honest, I’d love to learn more about Open Jam and open source karma the next time we sit down. In fact, it will align perfectly with the next episode of Command Line Heroes, where we talk about open source communities (and how to maintain their health) and the mechanics of open source software development. For kicks (and from what I understand), Command Line Heroes: The Game, and the hero-engine itself, should score pretty darn high on the open source karma scale!
Michael: Um, yes.
Jared: For sure!
Dan: This is excellent. I’ve connected a few dots today and learned that the openness and accessibility that Grace Hopper dreamed of for computing is still alive and well in the open source game development community. Projects like Command Line Heroes: The Game and game jams like Open Jam seem like great opportunities for people to learn and grow while simultaneously contributing back to a larger, greater community and body of knowledge.
Jared: Definitely. I think I’m really looking forward to the next time we talk about open source communities, because that’s exactly what we’re trying to build with the hero-engine. The community is already growing. I’m personally excited to be able to talk about open source game development using hero-engine and Command Line Heroes: The Game as a living breathing examples of open source game development.
Dan: I want to thank you both for sitting down with me again today and for providing folks with an update on where we’re at. For those interested in learning more about the explosion of languages, I encourage you to check out the latest episode of Command Line Heroes: “Hello, World!”. For anyone interested in getting involved with Command Line Heroes: The Game and/or hero-enginer we have links to our GitHub repo and Discord server below. And, finally, for folks who are interested in the mechanics of open source software development—whether it involves games or not—join us again in two weeks for episode of Command Line Heroes and another update from Jared and Michael.