Newsletter April 2015

The Best of Both Worlds

This is the online version of the Von Neumann Defense Force monthly newsletter. Do you want mailings like this, every month, delivered right to your inbox? Then subscribe to the newsletter and make this wish a reality!


Hello, and welcome to this month's Von Neumann Defense Force newsletter! I'm Hanno, VNDF's lead developer and chief newsletter engineer. This month, I'm going to talk about the following topics:

  • The Best of Both Worlds: Yes, I've decided to go with a different approach to the user interface yet again. Read all about it in this month's article.
  • Development Update: What's been going on with the project since the last newsletter?
  • In Other News: Happenings from around the web that VNDF aficionados might take an interest in.

Have fun with this month's newsletter and please email any feedback to Do you have any questions about VNDF in general or the contents of this newsletter specifically? Let me know!

The Best of Both Worlds

For a single person with limited time and resources, a project like Von Neumann Defense Force is lots of work. For that reason, I always try to think of ideas that can ease the workload and help me arrive at my eventual goal faster and more efficiently. Once in a while, that thinking leads to a radical shift in the direction of development.

One of these shifts happened a few months ago: I decided to do away with the 3D interface I was working on at the time and shift to a mostly text-based interface that would use graphics only sparingly, where they were most needed and useful.

While I still think this was the right decision at the time, I've had some new insights since then and that gave me an idea for a better approach to the user interface. Before I present that new approach to you, let me tell you about these insights.

Insight 1: I need to let go of 3D gameplay (for now)

Even after switching away from 3D graphics, I still held on to the idea of 3D gameplay. Von Neumann Defense Force is going to be a game based on realistic orbital mechanics. I strongly believe that for this kind of game a third dimension adds a lot of tactical possibilities. Turning this into a 2D game would take away a lot of that depth.

Still, there are more important priorities. Getting out a playable prototype is more important than anything else right now. Once I have reached that goal, I can keep improving the game and add all kinds of crazy features later.

In the end, I realized that switching to a far less attractive approach to the user interface while holding on to a feature (3D gameplay) that isn't even making good use of that interface doesn't make any sense. I'm going to have to let it go for now.

Insight 2: Rendering simple 2D graphics is relatively easy

Once I had realized I was going for 2D gameplay (at least initially), I had another realization: 2D graphics are easy, as long as you keep them simple. What can make them complicated is building a non-trivial user interface on top of them.

Putting 1+1 together: A hybrid interface

From these two insights came another thought: What if I could somehow make use of simple 2D graphics, while handling complex user interaction in some other way? Then it dawned on me: I could use traditional 2D graphics to render information that lends itself to it, like the positions of player's ships, while using a text-based interface for all other interaction with the user.

This approach allows me to quickly prototype new features with the text-based interface and migrate features that work out to the graphical interface later. Even more, if the text-based interface becomes more of a trial ground for features that are in development instead of the primary mode of interaction with the user, I can radically simplify it, saving a lot of work on that front.

So what does that look like, exactly? Well, most of the screen is used for displaying graphical information, like other player's ships. In addition, there's a command-line interface in the corner that enables you to get more information about the game state and give commands to your ship. For example, you could type something like list-broadcasts to see a list of all communications sent by other players.

Here's a screenshot from the current development version:

The new user interface in action

(click to enlarge)

Conclusion: Project management is hard

While I think it's great that I found a new approach that will, in my opinion, both save work and increase the game's visual attractiveness, this also demonstrates a problem. I can't keep changing directions endlessly. Even if every new approach is an improvement long-term, it makes a lot of previous work useless and puts me back significantly short-term. I think this is demonstrated by the fact that I didn't make a lot of forward progress since I started the newsletter last year. In fact, the game made steps backwards and is looking significantly less developed than it did months ago.

I think this underlying problem is caused by two main failings on my part. The first is being overly optimistic. When I started this newsletter in July last year, development had been going really well for a while. I thought it would just keep going like this, and that I would make a great deal of progress in no time.

Of course, that's not how things worked out. I have other things going on in my life, and the time and energy I can invest into Von Neumann Defense Force varies considerably. I really think I have learned my lesson here and will be far more cautious with my plans in the future.

The second failure was being too sure about my decisions instead of taking them for what they were: Ideas that showed promise but still needed to be proven.

Both when I switched to 3D graphics and when I scrapped that and introduced a text-based interface, I thought this was it. This was going to be the new direction for the foreseeable future. Both times I went into it too deep and did a lot of work that was later thrown away.

I think these situations could have been handled more efficiently if I could have seen those ideas for what they were: Prototypes that had to be validated -or invalidated- with the least possible amount of work.

I think this is a trickier problem to fix, as it can be difficult to step back and take an objective look when you're right in the middle of things. None the less, I'll try and do my best here. And while I certainly hope that this is the last word on the user interface for a while, a lot of new challenges will be coming up in the future, giving me ample opportunity to prove I've learned from my past mistakes.

Development Update

New Project Management Tool

Keeping up to date with what's happening -and about to happen- in the project is very important, and since paper gets unwieldy very fast, software is the solution to that particular problem. I had been using Pivotal Tracker for project management, and while it's a fine tool, it's also very opinionated. As my process kept evolving, the tool served me less and less well.

Enter Trello. Everyone who's used Trello knows that it's the Excel of web applications. It's extremly flexible and can be used to organize all kinds of situations, from appartment searches to software development processes. Knowing that, I set out to create a Trello board that captures my process perfectly.

The Trello board I use for VNDF development

(click to enlarge)

I really like this new setup. I have two lists, Ideas and Roadmap, for high-level concepts that are not perfectly planned out yet. Detailed tasks start in Ready, when they're ready to be worked on, and move over In Progress to Finished, giving me a good picture of what's going on. Once finished work has been deployed to the live server (available to newsletter subscribers), they move into the Live list for that calendar week.

All in all, this new system gives me a very good overview over both what's going on and what's planned for later. I'm very happy about how it turned out!

Hybrid Text/Graphical User Interface

I've already written all about this in this month's article, so there's not much left to say here. Most of the time was spent was setting up the basic building blocks required to render graphics and fixing some problems that arose from that.

There was one really crazy (and in retrospect really obvious) bug that caused some input events to go missing. This almost drove me crazy and cost me the better part of a week to fix, but now things are working fine (mostly).

None of this is really exciting, but I feel it forms a solid foundation to build upon. Let's see what the next few months will bring.

In Other News

As always, I'm going to close the newsletter with some space- and gaming-related news from around the Internet.

Mars Rover Finishes Marathon

Opportunity finished a marathon a few weeks ago, arriving at the aptly named Marathon Valley. Of course, over 11 years isn't the most impressive time for a marathon finish, but then again it happened on Mars.

New Image of Pluto and Charon

New Horizons sent in its first color image of Pluto and Charon. Not long until we'll see pictures of those two bodies in unprecedented detail!

A Rocket Landing on a Barge

For the second time in a row, SpaceX managed to land a rocket on a tiny barge in a huge ocean, with a rocket that just returned from a suborbital trajectory. Now, it wasn't exactly a soft landing and that rocket certainly won't be reused, but still. It's only a matter of time now until they get it right.

See You Next Time

Do you have any questions about this newsletter or Von Neumann Defense Force in general? Send them to me! I'd love to do a Q & A in some future newsletter.

Thanks for reading, and see you again for next month's newsletter!