It’s not easy to keep up with new developments in IT, especially when you work long hours, or for that matter when you no longer learn quite as easily as you used to when you were twenty. So far I was lucky to pick my technologies well: expertise in Python, HTML5 and even Java (for now) has only grown more marketable in recent years. It still felt like falling into a rut as of late, and moreover I kept stumbling across projects written in the Go programming language. After some hesitation, I decided to take the plunge, and it turns out I can still learn a new programming language in a couple of days. Go me!
And what a language it is.
Go is mostly targeted at server-side software, which makes it less relevant for games unless you’re doing multiplayer. Then again, it’s just as good for command-line apps (think tools), and there’s a healthy choice of libraries for text-based user interfaces that don’t require separate DLLs.
But what’s it like, exactly?
- It compiles to native code like C++;
- has garbage collection like Java;
- the package system resembles Python modules;
- the object system resembles the one in Haskell;
- control structure syntax is like in Perl 6.
I’d say Go is an odd duck of a language, except it’s more of a platypus. Good to see programming language designers having some guts, after decades of slavishly imitating C.
Hello, everyone. This week I must confess to a couple of broken promises. I didn’t get around to uploading a fix for the bug found in the online version of Glittering Light. And last time I forgot to announce my decision to abandon the graphical port of Tomb of the Snake. Sorry, but an already overengineered game was only getting even more so, FreeBasic’s supposed portability turned out to be illusory where it mattered (though SDL carries part of the blame), and the community less than friendly. But I learned a few things; my next projects will be tools, not games. Hopefully you’ll find them useful.
In other news, early this week Konstantinos Dimopoulos alerted me about Procedural Content Generation in Games, an academic textbook on the topic that’s nevertheless an easy enough read overall. It seems the project was launched a few years ago, but it’s only now ready for publication. Grab it while it’s still free!
Also in the way of long reads, Hardcore Gaming 101 is running a six-part feature on the Fallout series. And for the impatient, my friend Chris Meadows compares two online games of Catan. Last but not least, a piece of news not related to games, but just too cool to pass up: the source code for the Apollo 11 mission is now on GitHub! Amusingly, lots of people have been submitting pull requests, some jocular, others not so much.
But that’s about it for the past week. See you around.
Hello, everyone! After bringing the desktop port of RogueBot to a playable state, I went back and redid the original online edition as well, to make it look better and bring it more in line with the new version. And while the results aren’t perfect, it’s a good time to take a break and give another project some love.
In the mean time, we have an interview with two Greek game developers about adventure games, and a feature about the founders of Id Software now that they moved on. In the way of hands-on gamedev articles, you can read some musings on making failure fun, and some more on the subtle differences between user interfaces. And while the latter uses examples from interactive fiction, the lessons it teachers are widely applicable.
(Since I mentioned interactive fiction, it’s worth nothing that the XYZZY Awards ceremony was last night, and Birdland, a Twine game, basically took all. Haven’t played it yet, but it’s at the top of my wishlist.)
And from the same Emily Short, who is active as always, stay tuned for the upcoming Bring Out Your Dead game jam, an event where you can show off your works in progress that never went anywhere, but you think are worth seeing anyway. Amusingly enough, another very similar jam is running right now, and I already entered my visual novel intro Before the Faire, that I made two years ago but couldn’t finish, despite a good start.
Last but not least, lately I’ve been circling a nice little gamedev platform called sdlBasic, that I hope to use in an upcoming project. While lurking on their forums, I found a link to this list of art asset resources, unknown to me until now. One link in particular grabbed my attention: game-icons.net, a sizable repository of monochrome vector icons with a variety of possible uses.
But I have to look more closely into it first. Have a great week.
Why does it always have to be a feast-or-famine sort of thing? After a year of working on anything but games, now I’m announcing two releases on the same week. First, my text adventure City of Dead Leaves, that I started last year, abandoned, then decided to finish anyway. It’s hardly epic — a slightly surreal mood piece with a bit of romance After The End — but I hope you’ll like it. Taught me a thing or two as well; stay tuned for a postmortem soon, if everything goes well.
Anyway, while the beta-testing process was taking place, I took the opportunity to bring one of my older games back to life. First released a year and a half ago for the first Procedural Generation Jam, RogueBot essentially lay forgotten while I dealt with various other projects. But many people don’t like playing games in the browser, and performance can be much better on the desktop as well. Besides, I’d been meaning to learn FreeBasic for a while now, and needed a reason. So in a ten-day coding marathon the original tech demo got a new life. See the official announcement on itch.io, and if you like the game please consider buying it.
Last but not least, this week Sam Kabo Ashwell posted an article about narrow parsers, that connects surprisingly well with my recent write-up on verb-oriented game design. Which, considering the long list of examples he gives, is an idea that has troubled many developers along the years.
And on that note, I bid you a good week. Cheers!
Having recently played a very nice text-based RPG made in Twine of all things, and tested a new (to me) authoring system in addition to resuming work on a text adventure, I was once more prompted to think about the similarities between different genres of text-based games. For example, nowadays we associate parser-based interfaces with brainy puzzlefests, or else sophisticated story games, but Adventure and Zork had RPG elements and a strong exploration component. And while works like Hunter, in Darkness or Kerkerkruip are generally seen as experimental, Eamon has always explicitly been an RPG engine, and proudly so (yes, I know people who still swear by it), despite looking for all the world like an interactive fiction authoring system. After all, is there really that much of a difference, mechanically speaking? It’s still a world model based on a graph of discrete locations, with objects that can be manipulated in the same basic ways: examine / take / drop. And the parser itself, as a mode of interaction, has inherent appeal to at least some players, orthogonally to the content. We shouldn’t mix up genre and medium here, like we do with videogames at large, where Heretic and Doom are seen as largely interchangeable simply because they’re based on the same engine and core verbs.
(I’d give newer examples, but I’m not aware of any fantasy first-person shooters this side of Hexen; all the famous titles appear to be sci-fi. Did the Daikatana debacle scare off everyone, or have games like the Elder Scrolls and Might&Magic series been covering the demand for first-person fantasy fans? Oh wait, there was Hellgate: London, another commercial flop. Fair enough, there’s a pattern.) (continue reading…)
Hello, everyone. Another very short newsletter today, featuring a retrospective of Double Dragon in three parts (with two more to come), and the big news of the week: the scripting language used to code the mega-success 80 Days has been released to the public, and under a liberal open source license, no less! It runs on Unity, so I can’t try it out, and the tutorial on GitHub is overwhelming, but my first impression is that of a modern, friendly language that’s more markup than code, in the same spirit as the one used in Ren’Py or for that matter Choice of Games. Too bad it also looks kind of cryptic. Still, anything that makes game development more friendly is always welcome. Thanks for reading, and see you next week.
Welcome, readers. We’re having a short newsletter again, and all the news are about programming. Let’s start with Jay Barnson telling a war story about the perils of assumptions and arbitrary limits. I already shared my opinion in a comment over there, so I won’t insist. Speaking of opinions, John Carmack has one about the best programming language for beginners, and it turns out to be Racket, a Scheme dialect and IDE. And while on the topic of great programmers, Nature magazine of all places has a feature on Ada Augusta Lovelace, who was born exactly 200 years ago (minus four months), and went on to theorize the very notion of a programmable computer, and what programs might look like — including, if I understand correctly, the three fundamental control structures!
Last but not least, not feeling up to tackling a big project, I worked on another toy library this week. VGForm is a very simple JSON-based format for vector graphics, designed to be easily rendered with common graphics APIs such as the HTML5 canvas or AWT’s Graphics2D. It’s born from my early struggles with using vector graphics in games — too bad the idea didn’t occur to me earlier! But the best course of action is always obvious in retrospect…
On this note, thanks for reading and see you next week.
It occurs to me that Inform 7 was so successful because it redefined interactive fiction authoring as writing prose, while Twine’s impact was due to redefining CYOA authoring as constructing a graph. Both were revolutionary — paradigm shifts in the truest sense of the word — because they allowed authors to practice their craft in the language of the craft itself. Where by language I don’t mean the specific symbols you work with, but more generally the system of communication you employ to describe whatever is on your mind at any one time.
The world of programming at large would do well to learn from these success stories. Because while Inform 7 radically changed the way people can describe games to a computer and each other, Haskell for example merely shifted the blame.
You know what HTML is, right? It’s the file format browsers read in order to show you pretty web pages, with all the bells and whistles you’re accustomed to. It can get quite complex, but at its most basic it nothing more than this:
Here is some bold text for your enjoyment.
Let’s look at the HTML that produces the text above. Tell me, is it
code or data?
Here is some <b>bold text</b> for your enjoyment.
It looks like data, right? After all, it’s mostly text, meant to be read by human beings. They even call these HTML documents! How could anyone think it’s code?
Well, I say it is, because it instructs your web browser to do five things in sequence:
- Display “Here is some “;
- switch to bold text;
- display “bold text”;
- switch to regular text;
- display ” to work with.”.
Does that look like programming to you yet? Maybe it’s not cryptic enough. Let’s see how the same effect could be accomplished with an older language called Troff, that they used in the mainframe era:
Here is some .B bold text .R for your enjoyment.
There you go. The exact sequence of instructions I listed above, made explicit — a big no-no nowadays, when we like to pretend computers are easy. But even if you just select the text and click “Bold” in your favorite editor, deep down you’re expressing the same thing — a little computer program.
You know strategy games, right? You start with a few units; they harvest resources with which they build buildings; those in turn make more advanced units that can engage the opposition and hopefully win. All while gathering even more resources, upgrading your settlement and so on.
If you thought Starcraft or Settlers of Catan when reading the above, you’re on the right track.
But strategy games didn’t begin with those. They didn’t even begin with Dune 2. One of the earliest such games — the first great hit — was called Hamurabi and could be played with a teletype. Yes, it was a text game, much like the original Adventure and Rogue, and almost as addictive as them. Other famous strategy games were born during that era, such as Star Trek and Trade Wars.
You’d think all of them belong in history books, but during this century a new crop of browser-based multiplayer games have been eschewing graphics again in favor of an interface some people have derisively called “playable Excel documents”. In all honesty, it’s hard to fault them when you look at OGame; at least its competitor Travian still bothers to have a map.
But the joke’s on them, because these games are enormously popular.