Much of the old blog's contents consists of timeless articles, that are now scattered throughout the various thematic sections; however, some blog posts were highly time-dependent, and were preserved as such. A separate page for posts made from 2011 to 2015 was considered, and rejected: old posts belong with the new. Mind the five-year gap.

New post in GameDevProgrammingCommunityAssortedUpdates

2021-12-10 Programming

This post expands on a recent conversation from Discord.

As of 2021, I'm the proud owner of a 2008-vintage Dell Optiplex 780 with a Core 2 Quad CPU. People go "tsk tsk, poor you" when I tell them, but my previous machine must have been even older, probably from around 2005 or so.

On that older machine, I made a voxel renderer that ran in real time in software. In Python. It was kinda slow at 25 FPS, so I also ported it to Lua. That version ran at 40 FPS on the same hardware, or 60% faster.

On my new PC, the Python version runs at the framerate cap of 60 FPS without maxing out the CPU. I have no idea how fast it is.

That's the exact same code. Never touched it again since the first release. And it was naive code in the first place, because that's how I roll. No fancy tricks. The simplest thing that can possibly work.

Then again, my old computer could emulate the Super FX chip in software. In a web browser.

Do you realize how inefficient an app must be to slow down a configuration from at most five years ago? While doing much less? And using the GPU as well?

There's simply no excuse for bloat. None whatsoever.

Tags: ,

0 Comments on this page

2021-08-18 Programming and community

Over on Mastodon, a friend essentially asks why someone would use GitHub when they make software to self-host. I gave a short answer there already, but let me make it very clear: GitHub's real value isn't as a software forge.

  • You don't need GitHub to make software.
  • You don't need GitHub to publish software.
  • You don't need GitHub to collaborate on software.

People go to GitHub to make themselves known. It's the Facebook of software development. That's it. Everything else can be done better elsewhere, but people don't bother because what's the point if no-one hears about it?

And just like with FB, we need to figure out some sort of alternative already. But it's not going to happen any time soon, because just like with FB, nerds are focusing on the technical solutions. Self-hosting! Federation! Go! Rust!

Fossil has been around for literally decades at this point. It powers a lot of websites. I run across it in the wild all the time. And nobody's heard of it.

What we need is communities of practice with shared values. Apps are easy.

0 Comments on this page

2020-10-07 If programmers built bridges

If programmers built bridges, each bridge would last for only a year and a half before having to be torn down and replaced. After repeated protests, they’d finally come up with an “extended support” bridge that lasted for all of five years. The catch? It would be designed for the traffic from ten years ago, making it obsolete from opening day. Yet somehow it would still require maintenance every three or six months, so only half the traffic lanes would be open at any one time, making the bridge unusable in turn for cyclists, then buses, then trucks… breaking something else every time a problem is fixed.

When asked why things have to be that way, the builders would say that if they took the time to anticipate future needs and build something to last for five decades instead, a competitor would just erect their own bridge a hundred meters away and everyone would be using the shinier alternative.

Because, isn’t it, essential infrastructure is built for profit and/or bragging rights, as opposed to everyone’s benefit. Ah, modern technology.

0 Comments on this page

2020-09-15 Procedural is simple

Years ago, I wrote a couple of games using the curses library bindings for Python. Later, I used that knowledge to write a quick start guide that’s still one of the most popular across my sites.

More recently, being between projects and not in the mood for much else, I finally got around to learning how it’s done in C. Turns out, it’s a lot simpler than in Python for the ABCs, and comparable at worst for advanced uses.

How come? In their drive to make everything fancy and by-the-book, Python programmers forgot that the typical curses program isn’t exactly a clone of the Turbo Pascal IDE. More like a glorified menu that the user can pick from by pressing a number key. It could be done in shell script, really, with the tput utility, and in fact it often is.

That’s the problem with object-oriented , you see. Practicality also means being able to tell when using an industrial power drill is overkill, and you’re better off drilling holes with an ice pick.

0 Comments on this page

2015-08-11 No Time To Play is five

It says much about my state of mind this year that on the blog's fifth anniversary I waited until evening to write a few lines. Two years ago I complained that things seemed to be on the downswing. Turns out, they can always get worse. For a while after that post, I didn't work on games at all. Then I started coming back in a way, slowly and half-heartedly. Guess it showed, because basically no-one noticed my games from the past few months. More recently, finances and ISP outages alike threatened the blog itself, to the point that I decided to write a book and start a Tumblr so No Time To Play can at least survive in other forms should the worst come to pass. Sadly nobody noticed those either...

The upswing from all this? Unlike a couple of months ago, I want the blog to survive. Five years is a lot of time, and good things have accumulated here. Moreover, I do see a future for videogames now, though it's far from the glorious VR-fest everyone else seems to dream of. If things seem slow for the moment, it's because these days I'm working on a different kind of game, that only involves computers tangentially. But I'll come back eventually. I always do.

What matters is that you, my readers, are still here when that happens, or else there's no point to me plodding along. So, happy reading.

2 Comments on this page

2013-04-25 Announcing Square Shooter Enhanced Edition

When I first wrote Square Shooter in 2009, use of the canvas element was uncommon enough to earn me entrance into multiple game directories. Fast forward four years, everybody uses HTML5 and my little shooter was long in the tooth. The physics were broken (I had fixed them in the Python edition), it had no sound, and didn’t really adapt to different resolutions as it was supposed to. Worse, many of my friends now had touchscreen devices, and Square Shooter was unplayable on them.

A combination of burnout and indecision caused me to postpone this rewrite for a long time, and then it took quite a bit of experimentation to get things right. But it’s here now! The new Square Shooter runs more smoothly (thanks to the requestAnimationFrame shim from Three.js), looks good on any screen (except it strongly prefers portrait mode) and also runs on modern phones and tablets (though you need a fast CPU). It also features awesome sound effects courtesy of Open Game Art. I can never give enough thanks to the awesome people who make art for the rest of us to use.

So I give you the Enhanced Edition in all its glory. Play it. Fork it. And see if you can reproduce that one weird bug (you’ll know it if you see it), because I can’t figure it out.

Oh, and stay tuned because I plan to add graphics as well. Cheers.

2 Comments on this page

2013-04-24 New Ramus story out there

Hello, everyone! I know it’s been quiet as of late, but we’re still around. There is an announcement coming soon, but in the mean time let’s welcome You I Give the Helm, a new multiple choice adventure by Roger Kenyon, which enhances Ramus with neat typography. It’s fairly replayable for its short length, too, so give it a go. Thank you, Roger!

0 Comments on this page

2012-12-03 Random awesomeness

Just a couple of things I’ve run across today. First, via IndieGames and True PC Gaming, a little Star Wars-themed roguelike written in HTML5 that’s exquisitely tactical. You play (of course) a Force user, which gives you a variety of cool powers to combine smartly — and you will have to play smart. Caution actually helps, and luck can be in your favor for a change. The game is complete as it stands, but of narrow scope, and I hope to see more of it at some point. Bonus points for the tutorial and nice UI.

Second, the always enthusiastic Sophie Houlden humorously turns an old question on its head by asking, Can Art Be Games? And she’s damn good at highlighting the absurdity of this fake dilemma. We’ve touched on it ourselves, so I’ll say no more.

All this almost makes me wish to start making games again…

Tags: ,

0 Comments on this page

2012-09-11 Square Shooter under the microscope

Look what my friend @jerobarraco just found: a trio of articles from exactly one month ago in which the author dissects, I mean refactors, Square Shooter.

I left some comments there, but I’ll write a detailed article of my own, because this back-and-forth between two programmers is immensely instructive. Until then, enjoy!

2 Comments on this page

2012-03-24 Original Ramus story and more

This announcement is one week late (pesky real life…) but just after I published my port of Starborn — and Nitku graciously promoted it — a new user of Ramus surfaced and promptly did some very nice things with it.

Meet Conrad Cook. Not only he posted a minimal, “starter” Ramus document, a useful thing I failed to do myself, but followed up immediately with an original work called Unicorn Story. Which I am now hosting on the Ramus website at his request. Thank you, Conrad.

I also took the opportunity to flesh out the aforementioned website a little more, including an answer to the frequently asked question about (not using) jQuery. Hope this helps.

0 Comments on this page