Skapong is done
Skapong’s done. Really, I’ve finished it. At the same time «Swing swing submarine» has made their «Blocks that matter», Gaslamp games will release «Dungeons of Dreadmor» any second now, but I — I have written a simple pong.
There are things that I didn’t do (e.g I haven’t touched the network play at all, so you may play only in hotseat or against the AI) and the things I wanted to do, and things that are still I’m going to do (a proper packaging, for example) but, nevertheless, I call this generally done.
Curiously, if you use windows, then you’re the lucky one: I have a good build of windows right here:
https://github.com/downloads/einars/skapong/skapong.zip
That’s a simple zip. I haven’t made a proper installer yet, but that’ll do for now.
As for the linux — I’m currently learning how to make a nice .deb (I’m not using ubuntu myself and that complicates things) and a binary package for the Arch should be up soon. But you may build the skapong yourself. The instructions are in the readme, linux rolls this way.
Anyway, now I have plans for something a bit more worthwhile. No, not a MMORPG, killer of WoW — but not exactly galaxians or tetris either.

A new post, yay
Judging by the frequency of my posts, it looks like a very real possibility that I won’t ever make a game — neither a world of warcraft killer, nor the pong.
Nevertheless, I’ve published the current pong source to the github: https://github.com/einars/skapong . You may take a look at it, those are all letters typed by me — though I have absolutely no idea why would you: I’m not a great ocaml coder and that’s not too great of a pong itself. And I doubt you’ll be able to build it unless you’re on linux — mingw system is quite of a bitch to set up.
I won’t give you a windows executable either: there are dumb, stupid, ugly ball-twitching issues, and I have no idea how to solve them, because I don’t know the real reason of theirs. So I’d rather prefer that you skip this blog than download the game with too high of the expectations and be crushed. No, there probably won’t be any pong to play for you this evening.
22-feb
The good news is that since the last update two weeks ago, I have made a cozy windows build environment and now have a working windows executable.
That’s a big success for me: it means that the approach is good, and you, my dear non-linux (non-mac) friends, will be able to try the tennis goodness out as well. When I sort out the remaining show-stoppers.
The big issue and the real show-stopper is that the motion still is unbearably jerky under windows.
There’s a smaller issue that the game is still ugly and I haven’t drawn a single pretty pong-paddle, pong-ball and pong-backround to texture the game elements. I love this issue, I will fix it with a pleasure.
And then there’s this huge, humongous problem is that currently I have no means to draw text, but I need — and want — to. Even though this game could use just huge pixel numbers for keeping the score and nobody (except for me) would mind, I really need to have this problem sorted out.
If I want to do it properly and cross-platformerly, supporting TTF fonts, it would involve writing sdl-ttf library bindings for ocaml. That would be a good, solid way to do it. There’s also a way of drawing bitmap/pixel fonts and putting them on screen as images. That’s a crappy way to do it: I love pretty fonts with good kerning.
And then there’s the missing network support, but that’s not the show-stopper. Back to the editor! There’s still a shitload to do.
10-feb
A rather technical (i.e. boring) update today.
My game loop turned out to be an utter crap and the game was running with something like a million updates per second on the crappy laptop. I was kind of expecting problems like that (though not the observed orders of magnitude), and so I have some bookmarks bookmarked to read about good game loops.
Currently the game (oh, what a strong word for a shoddy prototype) is keyboard-only and I was conteplating whether I need to support moving the paddle with mouse. Naaah, won’t do. Even though the mouse manipulation would be sweet, I am not ready to deal with the network latency issues this fast and precise movement would bring to multiplayer.
Meanwhile I’m toying around with a windows virtual machine to have a toolchain for building windows executables. As I need to build and use additional SDL/OpenGL libraries, the stock OCaml installer won’t work for me, and I need an initial Cygwin environment. Cygwin is a dog-slow bitch, the bumpy road is bumpy, as expected.
It is (un)surprisingly simple to create a playable pong — I had a simple prototype version that can be played in hotseat done in something like three hours yesterday, and it runs fine under the linuxes I tried. The game looks like a bastard child of a wireframe drawing and the boredom right now: given that I have approximately 0 readers right now, I won’t feel bad by not publishing the source code yet. As you can see from the screenshot, it would be the hottest hotness — if this was a year of `75.
Up to the drawing board! While nothing will make this dumb game really fun, I would love to make it neat enough that my kids would play it for something like 5 minutes. Yes, they’re small enough not to care about GTA yet.
the meaning of it all
I really think I want to make games. I’ve been daydreaming about that for far too long time — without actually doing anything.
I feel that’s enough. I’m up for making a game. As it will be my nearly first game, it will be a tinsy-tiny boring networked pong — possibly more of a technology test. Still, I would like to make it properly, so that it could be called a real, finished game which I wouldn’t be ashamed to show, well, you.
There are few things I want to get out of this little project:
- Will I actually be able to finish this little fucker? If I bail out even on this one, then I can scratch all the cloud castles and figure that no, the game development isn’t for me at all.
- Use of OCaml for cross-platform development. OCaml is an awesome little programming language I’ve been using here and there a lot recently. It builds on Linuxes, Windowses and Macses — together with sdl/opengl for graphics, this could mean pretty painless and even pleasant cross-platform development. Linux and Windows builds are an absolute must for me.
- I haven’t done almost any (relatively) low level network programming at all, but I’m a sucker for a cooperative multiplayer between friends, so this will allow me to understand some of the network issues involved.
- Again, I want to see myself finish it, to feel quite a bit more awesome about that.
I don’t have any timelines yet — this is all too new and experimental for me, with many things that will need figuring out.
I’ll keep you posted: that’s what the blogs are for, and now I have a solid core theme to this weblog. Cool.
WHERE WOULD YOU MOST LIKE TO VISIT ON YOUR PLANET?
Hello, dear robot. Iceland in general, and Trolltunga in Norway are currently on my list. While — living myself in a cold country with a short summer — I dislike winter with a passion, I still have a strong sympathy for the wild northern regions.
Good day. My name is Einar. I live in Riga, Latvia — a nice and small capital in a country in Eastern-ish Europe. That’s me on the picture, looking kind of bad-ass.
Jeff Atwood from codinghorror.com suggests that every developer should try blogging — to sharpen his communication skills and something like that. I think I can try that.
Sometimes I wish for a place on the internets to express myself and tell things utterly important with a slight chance for somebody else to read it. Until now, I’d just go and read reddit until the urges go away.
I’m a linux geek and a web developer; if you’re a web developer as well, there’s a chance you’ve used jsbeautifier.org — that’s one of my projects. It makes ugly javascript readable and is even more boring than it sounds — yet they say it’s quite useful.