Twitter Digest 1

Wanna know more about the driver skills of Mike Capps? And what does John Carmack teach his son in his free-time?

Markus Persson@notch 6:18 PM – 19 Mar 12

Debugging this is interesting, to say the least: http://i.imgur.com/DhmFp.png

Tim Schafer@TimOfLegend 8:53 PM – 15 Mar 12

Hey, I found Nick, in case you were looking for him. http://pic.twitter.com/UfwcsuWM

John Carmack@ID_AA_Carmack 2:41 AM – 14 Mar 12

Teaching my son set theory with Pokemon examples

Markus Persson@notch 6:11 PM – 10 Mar 12

AND!! We’ve settled with Bethesda! Yaaaay! <3

The settlement is that we give them the trademark, get to keep the name, and won’t make an elder scrolls competitor using the name.

The actual document I signed was like a billion pages, so at least we know a bunch of lawyers got rich. Good, wouldn’t want them to starve.

Mike Capps@epicactual 2:34 PM – 10 Mar 12

Saw this roadsign in Napa and proceeded to do donuts (slowly) in the road as instructed. Wine may have played a role. pic.twitter.com/JfdRolmX

Why getter and setter methods are evil

I just stumbled upon a very interesting article about object-oriented design that I’ve been shown back when I started working at Daedalic Entertainment. In this article, Allen Holub shows why a high number of accessor methods might indicate that your application is not well-designed from an object-orientated perspective, and he teaches you how to avoid these methods. If you’re about to stop reading right now, please try and remember at least one important rule:

“Don’t ask for the information you need to do the work; ask the object that has the information to do the work for you.”

In case you’re still with me, here’s the long answer to the question why getter and setter methods are evil:

In object-oriented systems, no class should expose any of its implementation details. Take, for instance, a class that features a getter method called getCount(). Let’s assume that your system contains about 1,000 calls to that method and tries to store the return values in local variables. If for some reason the type of the return value was int, and has to be changed to long now, then… whooops. You’ll get 1,000 compile errors.

Holub states that “getter and setter methods […] are dangerous for the same reason that public fields are dangerous: They provide external access to implementation details.” If in turn your system is well-designed, you’ll be able to make massive changes to your classes. You could even trash whole parts of your application and replace them with a completely different kind of implementation.

This immediately leads to the question: “When is an accessor okay?”

First, methods who return interface references are fine of course – interfaces hide the implementation details of the classes whose instances might be returned by the method. According to Holub, these methods are not really accessor methods in terms of getters that provide access to a private field.

Second, it’s hard to get rid of all accessors if you don’t know in advance how your class will be used. This is the reason why you’ll still find many getters in the Java API, for example – but it isn’t an excuse for being lazy designing your own system. In most cases, you do know how you’ll use your classes.

Check out the original article if you’re interested in an in-depth look at the nature of object-oriented design, data abstraction and more detailed examples of how to develop your own design strategy.

Dear Zynga

For all those of you who haven’t seen this yet: Nimbebit thanks zynga for “being such big fans” of their iPhone game Tiny Tower:

Dear Zynga

Twitter Digest 0

Interested in the funniest tweets of your favorite game developers? So am I! Happy reading!

JesseSchell@jesseschel 5:07 AM – 5 Mar 12

Who’s up for all-nude #GDC? If enough of us do it, they can’t stop us! #allnudeGDC

John Carmack@ID_AA_Carmack 4:26 PM – 2 Mar 12

History Channel is great. My seven year old son: “Did you SEE all those weapons Alexander had??? He totally EVAPORATED the Persians!!!”

Markus Persson@notch 9:16 AM – 29 Feb 12

Ok, the inevitable happened. Last night, my PS Vita turned into another device I play Plants vs Zombies on. I think I’m addicted.

Markus Persson@notch 11:09 AM – 27 Feb 12

600,000 followers. Uh.. hey how are you?

Mike Capps@epicactual 5:03 AM – 27 Feb 12

Packing for a multi-week trip. Stared at my suitcase a while, gave up, and packed 5 identical black shirts. I hope black is the new black.

Hostile Worlds Source Code Released

It is done: The source code of Hostile Worlds along with all assets is available now on Github under the UDK EULA. Please note that the content of that repository is subject to the terms of the readme file found there.

Additionally, Daniel has created awesome new concept art for new units and environments for his master thesis, check them out on IndieDB! In case you’ve missed it, take a look at our beta trailer as well, it’s really worth watching.

Finally, Hostile Worlds has gone beyond 10.000 downloads in total! This game has been the biggest software project I’ve been working on in my entire life, and I’m really proud of what our team has achieved. Thank you all for your great support during the course of the development of this game, you guys are really awesome!