Tag: procedural generation
Another week, another close shave. It was only yesterday that I found a link worth sharing, but what a find! Over at Vice Magazine there’s a book excerpt arguing that the ZX Spectrum encouraged creativity more than any other 8-bit platform:
Other machines had more sophisticated sound and graphics, and provided built-in features to make writing games easier. A good example is the Commodore 64, which not only had an advanced sound chip but the ability to use sprites, graphical objects that made animations easier to create. “The trouble was, that guided everyone into making games that all looked incredibly similar,” recalled Spectrum games programmer Jon Ritman. The Spectrum had no such hardware support, and yet its simplicity and origins as a machine to be explored made it a flexible medium to create games that did not have to obey the rules. “The Spectrum was just ‘here’s a bit of screen’. It’s laid out in a funny way, which is a bit of a pain,” explains Ritman. “But you just draw things. And you could do whatever you want. It might not be as fast, but you can do whatever you want, and I think that as a result you got more interesting ideas on it.”
I wrote repeatedly about the value of working with a dumb drawing surface (always controversially, I might add). And then there’s the bit in Jimmy Maher’s Amiga book where he points out that all the technical cleverness of the platform’s legendary chipset was of no use when Doom came along and required raw processing power. Yet the creativity angle is fresh to me, however obvious in retrospect.
In unrelated news, the amazing Michael Cook recently posted the first in a series of articles about Danesh, his new tool for exploring procedural content generators, and it’s a very promising concept indeed. (Hooray for fuzzing becoming a mainstream programming tool. Whether you call it by that name or not.)
But that’s all for today. See you next week.
O hai there. The long-awaited second edition of the Procedural Generation Jam started on Friday, but this year I don’t have any suitable project lined up. Been doing some 3D art in POV-Ray, maybe something can come out of that. Until then, here’s an article about generating stories about images with a neural network. It works surprisingly well; in fact I’ve seen much worse fan fiction out there written by human beings. And I can easily imagine all kinds of playful applications once this becomes mainstream.
In unrelated news, I just stumbled over a personal blog post about participating in a two-hour game jam. What jumped at me was the bit about small, single-color sprites. I’m no pixel artist, but when you’re working with 8×8 bit-maps there is only so much room for mistakes; that’s how I was able to make the art in Escape From Cnossus, still one of my better looking games despite being a literal 8-bit title. So yeah, let me say it again (and again): embrace constraints, they are your friends.
Last but not least, a link from last week but too good to pass up: the making of Duke Nukem 3D. My favorite bits were about the dangers of changing engines mid-development (which is akin to changing horses mid-race; remember what killed Daikatana?) and how the biggest problem with Duke Nukem Forever was that the tone and attitude just weren’t acceptable anymore by the time it came out; the world had simply moved on.
Never mind tech; is your game’s message able to withstand the test of time?
Welcome, everyone, to another short week. I’d complain again about the usual stuff but you’re probably tired of hearing it. The big thing is of course the Interactive Fiction Competition, but I won’t cover it — plenty of mainstream outlets are taking care of that. Suffice to say, Emily Short thinks it’s the strongest edition ever, and that’s a huge compliment.
For my taste this is the best IF Comp in 21 years of comp history. Such variety and color; so many authors doing their best work yet.
— emshort (@emshort) October 8, 2015
(Also it’s worth noting that Twine is powering the most entries this year, and nobody’s bitter about it for a change. Let’s hope the peace lasts.)
But frankly I’m more excited about the next big event this autumn. Set to start in less than a month, the Procedural Generation Jam is once again calling for participants, and organizer Michael Cook writes about his expectations. What can I say? I understand the sentiment, but the truth is I got into procedural generation for two reasons: one, because it allows me to express game content as code, which comes naturally to me as a programmer, and two, because that way I can actually play my own games, rather than knowing all the maps by heart.
(And yes, programming can be natural. Programming is a species of mathematics, and mathematics is a language for describing the natural world. So there’s no real contradiction.)
But don’t worry, hand-crafted worlds and stories aren’t going anywhere. Over at Rock, Paper, Shotgun we have a top of the best RPG worlds, while Hardcore Gaming 101 posts a retrospective of the Gabriel Knight games — both of them good reminders that quality writing makes a real difference. Which is especially meaningful to point out when literary games are all the rage these days.
But I’ve run out of content again. See you next week.
Having been offline for the weekend due to yet another outage (so much for Talk Like a Pirate Day), I find myself late and with insufficient links to make a newsletter. Perhaps I could mention the latest toy I’ve been working on — RPN-40, a programmable calculator trying to stay simple and fun. Or perhaps Hardcore Gaming 101’s retrospective of C.P.U. Bach, which may seem off-topic. But think about it: in 1994, computers were already able to compose music. 21 years down the road, they are even able to design videogames. How can we harness that ability?
And speaking of that, via Michael Cook I learned of this blog post about procedurally generating cities. Having done just that (in a simplistic way) for RogueBot, I can certainly appreciate the work described.
— Danny Goodayle (@DGoodayle) September 17, 2015
Last but not least: Rock, Paper, Shotgun — which has been leaning noticeably towards my range of interests as of late — has an article about designing magic into fantasy worlds. Which of course applies to all media, not just games; the article doesn’t talk at all about implementation issues. Tip: you basically need a scripting engine to have magic in your game. The simplest implementations I’ve seen resemble the example in my article about code versus data. But the narrative angle matters just as much, if not more.
And that’s pretty much all I have for today. See you next time.
Thought I was done gathering links for this week’s newsletter when Nightwrath pointed me at this postmortem of an indie RPG that was no less than 10 years in development. And that’s funny because this week I’ve been editing old blog posts for the book, and my first big article here begins with a handful of links to stories in the same vein. It seems people never learn: yes, you have to start small, and by that I don’t mean a smaller RPG, but a simpler game.
Oh, if you do have the fortitude to keep at it for 10 years or more, results can be wonderful. But do you?
And now for other news.
Another week of development, another screenshot. I did much more that isn’t easily shown, such as adding mouse support, optimizing startup times and making sure the game can run on a monochrome terminal. Amazing how little work you need to keep a game running on supposedly obsolete machines as well as the latest Mac. Of course, Python and ncurses help a lot here — but that, too, is a lesson.
Speaking of lessons, I long wanted to make a roguelike with a variety of map types in some sort of logical progression, but even with the basically unlimited RAM and CPU of a modern machine, managing all the level generators is a hassle. Unless a game is focused on exploration, it’s better off with just one type of map, made as interesting as possible. Parametrization goes a long way here.
Now on to gamedev news that aren’t about me.
Hello, everyone! This week we have postmortems of two important gamedev events that happened this autumn. Having participated in one of them, and being tied by nostalgia to the other, I found the parallels especially interesting. I’m talking of course about the Procedural Generation Jam and the Interactive Fiction Competition, and I’ll get back to both of them in a moment.
But first, a personal anecdote. This weekend, I spent half a day with a particular group of old friends — a rare enough event. As it happens, we had a PS4 at the place where we met, with a healthy library of several dozen games. And because someone briefly dropped by with their 7-year-old boy, it was a no-brainer to try and find a game or two in there for him.
I was going to write a big rant about programming languages for this week, but I tried and it’s just not coming together. Suffice to say, people keep inventing new ones to fix what they perceive as wrong with the old ones. And invariably, the newcomers turn out to miss the point entirely. These days everyone is gushing over Go and Rust. Bwahahaha! Remember Vala? I didn’t think so. Or D, for that matter? Hint: the idea of “fixing C++” wasn’t born this decade. Heck, Java was born from the same misguided good intention. And we all know how that worked out.
Pro tip: technologies that endure are those that build on the past and work with it. Because if you keep tearing everything down and starting anew, you’re never going to make any real progress.
Last post was #200 on this blog. I’m kind of glad it happened to be my first proper article in a while, rather than yet another newsletter. This blog has been on life support for way too long now — at least a year if I remember correctly. And if I didn’t have a handful of faithful readers I’d just stop posting entirely.
Anyway, this week ended the Procedural Generation Jam 2014, after a most welcome one-day extension. Oh, I was already in, and entries were accepted after the deadline anyway — all very informal and friendly — but it was fun seeing how much I could do within the allotted time. Which was less than I hoped, due to lack of energy, but oh well.
But I showed off my entry before. I’d like to talk about the others today.
Hello, everyone. After submitting VoxelDesc to the Procedural Generation Jam, I figured it would be nice to have an entry developed during the actual jam for a change, which is sort of the point, you know? Especially after getting a ton of visits and not one comment for what I thought was a fairly original concept. As it happens, inspiration struck, and in less than a week I came up with this:
It’s supposed to become a twin-stick shooter, but for now I focused on the procedural parts, namely the level generation and graphics engine (and I had to figure out fast how to bang out a semi-plausible city map, however abstracted — pro tip: BSP trees don’t work here). I’ll hopefully have something to shoot at by the end of the jam, now that the deadline has been quietly extended by a day.