No Time To Play

Tag: languages

Paradigms of Programming

by on Apr.02, 2015, under Opinion

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.

Comments Off on Paradigms of Programming :, , more...

Code versus data: a battle for the ages

by on Mar.26, 2015, under Miscellaneous

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:

  1. Display “Here is some “;
  2. switch to bold text;
  3. display “bold text”;
  4. switch to regular text;
  5. 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
bold text
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.

(continue reading…)

1 Comment :, , more...

A database-driven engine for strategy games

by on Mar.13, 2015, under Gamedev

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.

(continue reading…)

2 Comments :, , more...

Weekly Links #56

by on Feb.08, 2015, under Gamedev, News

These really aren’t good days for me. Took me a week to put together less than 500 lines of code, mostly copy-pasted from elsewhere too. But persistence pays, and right now I can at least show you a couple of screenshots:

As I pointed out last time, it’s a roguelike for the Linux console, written in Python. I happen to like the language anyway, and since it comes with a curses module by default that means I can have exactly zero dependencies apart from Python itself. As for why text mode, I’m seriously bothered by the gratuitous overuse of technology these days. When text-based roguelikes require SDL or even OpenGL (wish I was kidding), something’s rotten in the state of IT. Several of my friends work in text mode at least some of the time, their reasons ranging from tradition to poor eyesight. And having done real work on remote servers over SSH, I know that making text-based user interfaces is a skill worth acquiring.

More about the game itself next week; for now, on to the links.

(continue reading…)

Comments Off on Weekly Links #56 :, , more...

Weekly Links #49: code complexity edition

by on Dec.16, 2014, under News, Opinion

With all the stuff on my mind this weekend, I basically forgot to work on my newsletter at all. But better late than never.

Continuing on the topic of programming languages from last time, Shamus Young argues in The Escapist that videogames need their own programming language. And while he makes some excellent points as always, I think he’s misplacing the blame. Like here:

[The C programming language] was created in a world where software was less complex than it is today. Your typical AAA game of 2014 will be thousands of times more complex than entire operating systems of 1972. Consequently, the language is focused on saving memory and CPU cycles, and not focused on helping the coder manage terrifying levels of program complexity.

Well, see? That’s your problem right there. Modern software is insanely complex. More complex, in fact, than anything else the human species has built. No machine with moving parts ever has millions of components. NONE. It would fall apart the moment you turned it on. But in software we make it happen just because we can — the worst possible reason.

Or so we think. How many hours of your life have you lost to crashing apps, crashing operating systems, lying servers, flaky networks?
(continue reading…)

Comments Off on Weekly Links #49: code complexity edition :, , , more...

Weekly Links #48

by on Dec.09, 2014, under News, Off-topic

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.

More recently, people are inventing a bewildering array of libraries, frameworks, preprocessors and compilers with the goal of fixing what they find wrong with Javascript. Just earlier today, someone linked to a big list of them on Twitter. Turns out, I’d never heard of most… and now it’s too late because nobody uses them anymore. Already. After less than five years. While good old jQuery is still going strong.

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.

(continue reading…)

2 Comments :, , , , more...

Weekly Links #35

by on Sep.10, 2014, under News

It had to happen, I guess. This newsletter is two days late. Though considering how often I publish it one day late, it’s all relative. Been going out a lot, you see. Does me a lot of good, seeing friends and exercising.

But anyway. Last week I only found a couple of things worth sharing. One is this article about BASIC on 8-bit microcomputers, which promptly reminded me of Why Johnny Can’t Code, except more technical in nature. Having started with Basic on a Speccy myself (like every good programmer I know), no other programming environment ever felt as Zen to me as line-number Basic. Maybe Forth comes close… if you can wrap your head around it. And it still isn’t the same.

(continue reading…)

Comments Off on Weekly Links #35 :, more...

Weekly Links #17

by on May.06, 2014, under News

You know, for having spent half of the past week out of town, I’ve got more links than I hoped. Thank Ceiling Cat for wireless Internet and Android tablets.

I’ll start with this playthrough of a game from the recent Ludum Dare. Disclaimer: the developers are friends of mine. It’s one of them playing — I found the game just too hard for me.

For the curious, William the Wopol is written in Love 2D, using a custom engine and editor that by now has proven to be very robust.

(continue reading…)

Comments Off on Weekly Links #17 :, , , more...

Memory management and game performance

by on Jul.16, 2013, under Gamedev


I’ve spent the better part of a morning reading this article titled Why mobile web apps are slow. It’s a fantastic read, with citations, benchmarks and thoughtful arguments, and the tl;dr version is that mobile devices simply can’t be as powerful as desktop machines, and if you want performance then you need control over things such as memory management. And certain languages simply don’t give you any.

Now, don’t take everything written there as gospel. As a commenter pointed out, Python uses reference counting, so the argument doesn’t apply to that particular language. Also, this isn’t about ARM versus Intel, but mobile versus desktop. Remember Intel’s Atom line? I have the original Asus Eee PC 701, and believe me, it’s much slower than the 900MHz frequency would suggest. My game Buzz Grid stutters on it, and that’s a game I was able to port just fine to Java ME.

(continue reading…)

Comments Off on Memory management and game performance :, , , , , more...

Buzz Grid on the desktop

by on Aug.20, 2012, under Gamedev

I’m conflicted about this. On the one hand, I’ve spent the last two articles complaining about the difficulties of writing portable software. On the other hand, I’ve spent five days porting Buzz Grid to PyGame, and it came out better-looking that the original!

This time, however, I was able to keep the gameplay unchanged.

(continue reading…)

Comments Off on Buzz Grid on the desktop :, , , more...

Posts by date

September 2017
« Aug    

Posts by month