What is “Fun” in a game?

I love the following definition of fun, as I find it matches perfectly my own game experiences. You can find the original reference here, with link to the MSc thesis of the person making this conjecture:

[…] enjoyment is based more on proximity to a performance “sweet spot” just past the win/loss threshold rather than on learning effects. Combining my results with Kevin Burns’ information-theoretic model for enjoyment , I conject that “fun” is based on goal-satisfaction under the conditions that the desired outcome is uncertain.

This is very important to know when designing a game. MUDs I use to play come to my mind: even though they were technically simple, they managed to hook generations of kids (and “less kids”) for years, hours over hours every day, just because they wanted to reach a final goal (being the most powerful, usually, but also social power in certain cases, or ascending to “Immortal-level”, ie becoming part of the MUD staff).

That was only one side of it of course: whenever the game administators decided to make certain goals more accessible (for example by probabilistically uniforming all combat styles, such that whatever style you choose would bring you, eventually, to perfect parity with any other opponent), usually many players stopped having fun and left. Same goes for promoting people to staff level too freely: they abandoned the game quickly after.

It’s a good lesson, one many game administrators know by heart maybe, but repetita iuvant doesn’t it?


KryoNet: very fast and easy to use network library

I’ve been experimenting a bit with this library and it’s a relief: I don’t have to maintain my own (crappy) one within ZenithMUD.

Easy to use, documented and very efficient, according to benchmarks I’ve found around. One can use the start() method that runs the library in a Thread and takes care of getting data from the connected clients and running user-defined actions on them, or just call the update() function in your own game loop (if you are more of a control freak :))

A good starting point, besides the README, is this Chat client-server example the author has provided.

Good job!

And a new MUD is growing up!

Finally, after years of thinking and non-doing, I decided to start developing what has always been a little dream of mine: a multi-user game with fairly complex mechanics to put online and manage. In the spare time, even before enrolling in my Bachelor, I looked into 3D and 2D engines in various languages, MMORPGs open source in development and so on, when I finally realized that to test my skills and to really do something toward this direction, I’d have had to start simple!

But paraphrasing (in a totally different context, but who cares!) Einstein, things should be put in the simplest way possible, but not simpler. A puzzle game wouldn’t have done the job. I needed a kind of MMORPG, but easier. What about 2D? I don’t really like 2D fantasy game: you neither have beautiful descriptions nor beautiful graphics!

Descriptions: that’s the key. Text-based games. MUD (Multi-User Dungeons) have been around for decades, but are still played by many people. Even in Italy there are still communities alive and well. So, that’s the answer: I had to develop a MUD.

And I started, using Java…and unbelievably, I found it quite easy to setup a network infrastructure, and a system capable of handle multiple parallel commands. Test with a few users have been done and seems OK. The movement and speaking, login and logout, the persistence of the world, are all handled correctly. The first steps are done, and as soon as I have the time, the rest will be set up: more commands, a name for the project, a site, a forum, an alpha test period for the fun of the players.

I’m so excited! :°D