Trial and Epic Fail

Ventures of an indie game developer

Nature as a game

I love nature, especially the Nordic flora and fauna, and for some time now I've been thinking about creating a non-realtime nature renderer. Perhaps I'll create something like the Trabant tool, but wrapping OpenGL instead of a game engine. The idea is to be able to generate a relistic scene of nature in less than a minute on iPhone 6-equivalent hardware.

I have no clue about the feasability of such an undertaking, but if it works it may form the basis of a modern text adventure. Such a game concept would be totally unique, and would probably sell.

"Grass" by suvakas.

I expect my book writing to take another year, progress is a lot slower when writing a controversial science book than a programming text book (which pretty much is doable in a couple of weeks). But after the book is done I might give it a go unless someone already did it by then.

Doom prototyping

Came back from a business trip to Bangalore, India last weekend, but still decided I needed a longer break from book-writing, and thought I would try prototyping some fun game. Quake was the one I wanted to try, I thought... until I had made a minimal Python hack to extract pak0.pak, fetch hip1m1.bsp and I started surfing for screenshots on Quake I to see what it looked like.

I quickly realized that I wasn't at all interested in doing that. It was Doom (I) I wanted! I can still recall the sound of that elevator going up and down whenever I want. It was love at first sight, and that first "real 3D" game stole a piece of my heart.

There was one particular constraint of Doom that made the levels fantastic: there could only be one floor level and one ceiling level per X and Y coordinate, which meant you had to build elevated platforms, like lofts, in the map. And the elevator would always have to placed in front of a platform, it could never be underneath it, which gave a tremendous flow to the gameplay and an unprecedented sense of direction.

Anyway, I quickly threw away the pak0.pak extractor and started looking at Doom1.WAD and E1M1. The format must seem quirky to most people these days, as it's not based on vertices and polygons, it's vertices, lines, sides, segments and a bunch of other crap that I simply ignored.

As a first experiment I generated the floors and imported them into Trabant (my 3D game prototyping "IDE"). Half of them are upside down, the other half look all but easy to modernize-retrofit into some type of Box World which would be a better fit for Trabant I guess.

This is exactly how rapid 3D game prototyping should work: after 1.5 hours (including the Quake throwaway) I'm not struggling with OpenGL, arbitrarily chosen data structures in C code, decoding raw data from disk, linker errors, memory allocation, crashes, implementing controls, adding collision physics or bugs in my logic. Instead I'm moving around in the prototype, looking at the map; and with a minimal change-compile-retry turnaround of less than a second.

This shit makes me proud - Trabant is nothing less than a totally awesome tool!

Half-Life 3

As more and more leaks are accumulating on Half-Life 3, it looks to me like some progress must be happening. First the hl3.txt part of a Dota 2 update, then the hl3 name found in SteamDB. Within a year or two all of their base are belong to us. And it's not going to be Oculus, which of course is a good thing. In the meantime we have to make due with fan-made Prospect extension for hl2.

Stalin for president!

Between 1947 and 1973 the average hourly wage for nonsupervisory workers in private industries other than agriculture (restated in 2013 dollars) nearly doubled, from $12.27 to $21.23—an average growth rate of 2.1 percent per annum. But by 2013 the average hourly wage was only $20.13—a 5 percent fall from the 1973 level.
according to Harward economist Benjamin Friedman. Money sure is accumulating at the top. The only thing to do about it is to place our votes to the left.


This is funny is oh so many ways to a Swede:

Culture clash is always hilarious, but sometimes more than others.

First chapter done

A couple of days ago I finished my first chapter. I also made it all the way to self-publishable HTML, which was the easy part. Making it into a PDF (or better format) is less easy. Some facts:

  • writing in markdown, using WYSIWYG editor Texts (it holds fairly high quality, but few features, and it's portable which in my experience makes for stability);
  • added a few postprocessing steps in a homebrew 88-line python script (type setting, image layouting, etc.);
  • looked at some self-publishing sites online, understood nothing and left it alone for a while;
  • chose typeface Minion. At first glance for a rookie like me, Times New Roman looked a lot better than Crimson. Which I still think it is, but Minion was yet better. I also tried a Things like Verdigris, but the serifs were too much for small letters;
  • most of the images are grayscale, and all could print in grayscale if necessary;
  • sprinkled some pages with pictures of people I write about in an attempt to make the text more appealing, but not sure if I succeeded;
  • gave the chapter to my fiancé, who read the first two pages. I won't be put off by that, (there's hardly a more dismal critic on the planet).

In all, trial and epic fail! That didn't stop me before, won't stop me from following through this time either.

Next chapter should be a lot easier, the first is the most important. I'll make an introduction chapter as well, but not until I've written more. That chapter I have to nail. Chapters two to five are on remote viewing, precognition, (micro) telekinesis and healing. Then I'll write the introduction. Then an in-between chapter on skepticism, related scientific theories (which will involve a pinch of quantum mechanics, at which point the skeptics will roll their eyes even worse), education today, and why it's not in the mainstream research and media yet, and why half of the parapsychologists are skeptical towards the topics in the following chapters. And then finally some speculative chapters on OBE, NDE, survival of consciousness and reincarnation.

The ending chapter will be some type of summary, but I'll refrain from being overly speculative on presence of God. It does however seem increasingly unlikely that a multi-dimensional universe, where you most likely travel to another realm when the body dies, has no creator nor higher authority.

On the other hand, the eastern mystics, who are much more versed in the inner workings of the mind, does not acknowledge a dualistic, separate God, just one within. What christians would refer to as "holy ghost." Or a consciousness underlying matter, which sounds pretty much the same to me. The distinguished parapsychologist Dean Radin holds this belief. Anyhow, that's for later. Now's chapter two.

3 code things improve on

There are always three things that trip me up in programming. The first one is encoding. This one is usually quickly fixed, so no biggie, but always involves Windows (everybody else using utf-8 by now). Sometimes console, sometimes git on the console, sometimes web, sometimes html, often cp1252 or worse. In Python 3 on Windows it's normally fixed in seconds or minutes, but you're always going "this is not my problem, why the fuck am I still on this goddamn platform?!"

The second thing is calendars. For starters there's UTC, daylight savings, local time, translations, ISO 8601 and epoch. And as if that wasn't enough there's always server, client, remote services, database and logs. The only way to get it right is to write unit tests. If you're like me, you write them after you've realized there's a problem.

The third thing is statistics and probability theory. Sure, it's maths and not programming, but for all interesting problems this one pops up. Today I used outliers and confidence intervals, but not sure if these were the right tools for my mathematical model. This problem is a harder nut to crack, because I need more knowledge, not more time. I studied it poorly at the university, and I might have passed the course (not sure), but I struggled with it at the time as I struggle with it now. What does it mean to calculate the confidence interval for a single draw or for the mean of N draws? What distribution to use when? Can the z-value be obtained by calculus rather than tables? Must the z-value be used to get to the p-value? To me it's hardly ever obvious when the probability is conditional or independent.

Encoding and calendars are fixable with time. Statistics I need to study, and to be frank I should learn it well for my book as well. Perhaps I'd be more motivated to go to the university again as it's something I need and want. Last time I was only there for the drinks, maybe a month more would do me good. (If I eventually go back for yet another month of free Swedish education, I sure hope they've replaced the stuffy statistics professor. He was a bit like IBM's Deep Blue: very precise, but more like inanimate matter than a living creature.)

About the author

Min bilder
Gothenburg, Sweden