Cheese talks to: RLK

Recently, I had the enormous pleasure of throwing some questions at Robert Kooima (RLK) about Neverball's history and what it's like to hand over a project to community driven development.

In part two, RLK discusses his current role in Neverball development, the project's future. If you haven't already, feel free to peruse part one.


How would you describe your current role in the Neverball community?

Again, I regret not having greater resources to dedicate to Neverball and to open source development in general. I once publicly described my position as "Grand Poobah of the Neverball Rabble" and that seems to have been added to the Contributors list. I think it fits. I think people acknowledge and respect my having started the project, but also know that I don't try to derive any authority from it, so I'm the figurehead of a disorganized collective.


What do you think the most major and significant developments have been since/including the first community release? Have there been any surprises?

I really can't point to any one thing. I'm deeply impressed by people's ability to make sense of the bowl of spaghetti that I cooked years ago, tearing out single strands here and there and delicately threading better pastas in their place. It's a solid piece of work now, and everyone who has contributed to it should feel proud.

I guess the single biggest surprise was Nuncabola. Where a normal code fork begins at the source and heads somewhere else, Nuncabola is like an anti-fork: it begins with a completely different code base and ends up at the same place.


You've had Neverball in your life now for at least a decade. How has Neverball's meaning for you changed between now and when you first started the project?

It was an obsession. Briefly, it was a burden. Now it's a joy.


What do you consider the most rewarding thing you've gotten out of developing Neverball (post 1.5.0)?

It's been a bit difficult post-1.5.0 because I just can't dedicate time to the game anymore. I'm seriously freakishly busy all of the time. The life of a tenure-track professor is grueling. Despite this, I have had a few opportunities to make time to contribute in the last few years, and the most rewarding of these has probably been the conversion to OpenGL ES. This was an opportunity to clean up a lot of old code and optimize a bunch of dumb stuff from years ago. As a bonus, it helps future-proof the code and make it more portable to the many devices and platforms emerging now.


In the source for SEB 0511, there is a todo with these two items in it:

What was your intention for these features, and what kind of impact do you think they would have had on Neverball's direction had they been implemented?

That is a damned good question.

I recall that idea, but I don't distinctly recall my specific intent for it. I have a memory of wanting to try to guide many balls, perhaps to many different destinations. This would not have been any kind of multiplayer implementation, as I was acutely aware at the time that the complexity of the network synchronization issues inherent in multiplayer far outweighed the complexity of multi-ball physics. I believe I thought that multi-ball would be a radical enhancement to Monkey Ball and, thinking about it again, it would have been. Imagine if, suddenly, you had two or three balls. Imagine the difficulty of keeping several balls from falling, or guiding them to a goal. An entirely new class of levels could be designed around two, ten, a hundred, or a thousand balls.


How did you feel when you heard that Neverball won Silver at the Trophées du Libre?

I was proud of the community effort that made it so. I felt the Neverballers were deserving of accolade.


Where do you see Neverball in 2 years' time?

Right where it is. It's free and adaptable, so we'll continue to see it popping up on each new platform that arises.


If there was one feature you could see implemented in Neverball tomorrow, what would it be?

Networked multi-player with an in-engine collaborative level editor.

No, scratch that... Facebook integration. That's what people want, right?


What is your operating system/desktop environment of choice?

I've been using OS X almost exclusively for a few years now. Given a proper set of cross-platform tools and libraries, the underlying operating system has little or no impact on one's ability to get things done. So, I judge operating systems on the degree to which they annoy me, and OS X annoys me least. Windows and Linux keep bothering me about updates.


Can you describe your development environment? What sort of tools and applications do you make use of?

As a computer scientist, I spend most of my time editing code, LaTeX, and HTML, all of which involve text editing. I used both emacs and vi as my primary editors for about 15 years, but now I'm using Sublime Text 2. ST2 is the first text editor in a long time to cause me to rethink how I perform basic tasks. I was transformed by vi when I started using it in the 90s, but despite all the forward progress made in text editing power since then (Intellisense, etc.) nothing has warped my brain as severely as ST2 Multi Select.

Beyond that, I do a lot of work with Photoshop, Mathematica, and AutoCAD. Sadly, I can't get by anymore using only open source tools.


What is your favourite game?

My favorite game TO PLAY depends upon when you ask me. It's usually whatever I've played most recently. In recent years it has been Portal 2 and 1, Fallout 3, Braid, Super Mario Galaxy, Katamari Damacy, GTA3... you can follow that trail backward in time all the way to Space Invaders, even to Pong.

But my favorite game is obviously Neverball. I don't play it anymore, but clearly no game could ever approach the satisfaction that I've felt from nearly ten years with this one idea, code, and community. My appreciation for it is not derived from playing, it comes from watching others interact with something that I created and continue with something that I started, from understanding their appreciation for choices that I made and effort that I expended, and from seeing them carry a baton that I passed to them.


parasti: Do you have any thoughts on Nuncabola? *

I'm honored that the game's design was considered significant enough to reproduce.

The reasons for Nuncabola's existence are quite understandable. In particular, I do think I made some controversial unilateral decisions at pivotal times. I take responsibility for some radical internal design revisions, and there were issues where I should have consulted with you (Parasti and others) in depth. There were difficult technical problems to be solved and I went about solving them as best I could, but my interpretation of "best" doesn't necessarily match everyone else's. Our discussions, and Elviz' disagreement, helped refine and improve my thinking and our implementation, and even now I understand how that implementation could be improved. Of course, the benefit of open source is that a developer who wishes to do things differently is free to do so, and in the end Elviz wrote a new engine that let him play Neverball the way he wanted to. And I think that's very important.

To be honest, I feel Nuncabola validates Neverball, not as an implementation, but as a concept. Nuncabola's existence should embolden level designers. By analogy, I take comfort in developing C or C++ code that works with multiple different compilers. As much as I'd love to spend more time writing OCaml or Lua, I'm put off by the fact that there's only one compiler for these languages. Two implementations of Neverball? Wow. Not a lot of games can claim that.

I haven't expressed an opinion on Nuncabola on the forum because I've always felt it was a slightly delicate issue. It was a sore point for some. Initially, it was a super hot potato that I didn't want to touch, and as time passed I wanted to maintain a moderate position.


themacmeister: Did you think Neverball/Putt had reached a level of stability and maturity, ie: was it completely finished, when you ceased active development, and handed the reins to the community? *

The state of Neverball 1.4 was such that, had I paid money for it, I would not have felt cheated. It was complete in the sense that it was a game that one could play, enjoy, practice, and complete, which is all I expect from any game. That said, there was a hell of a lot of improvement waiting to be done, as evidenced by the huge changelogs in the 1.5 series. To be clear, I did not feel that I was handing off a dead project, with nothing remaining. It was my hope that I was handing off a damned good start, and that everyone hoping to make real, tangible, visible contributions to a project could do so with Neverball. They wouldn't need to worry about the little things, and could set right out on stacking up the big things.


Thanks so much for your time, rlk!

If you haven't already, don't forget to check out part one and RLK's full and detailed account of Neverball's history.



A note from cheese

A note from Cheese

Thanks for reading!

Questions marked with an asterisk (*) have been submitted by community members/friends/people who are not me.

This interview is of particular significance for me. I've been a semi-active member of the Neverball community since mid 2006. I count RLK as both a mentor and a friend, and it means a lot to be able to relay his thoughts and perspectives.

You can find out more about Neverball and Neverputt at the official website, and you can find the community forums and an online leader board at nevercorner.net. Both games (and their source) are available for Linux, MacOS and Windows from the Neverball website, and Desura. Additionally, Neverputt is available for iPhone and iPod Touch from the iTunes store. Both games have been ported to a further platforms, details of which can be found on the Nevercorner forums.

You can email me at cheese@twolofbees.com

This interview was first published on the 19th of June 2012.