Browsed by
Category: Video Games

Persistent Worlds and Their Storage

Persistent Worlds and Their Storage

Over the past few months I have been putting together an MMO-style bit of software. Since it is more of an experiment than anything else I did not start with a design plan. That is not to say that most things are not planned before hand but I have no idea what will work best so I am trying a number of things off the hip first.

Right now I am working on the basis of what will make it multiplayer. The decision I have to make now is how will the data be stored and how will the clients access it?

  • I could store everything in an SQL database. This is attractive for its persistence and accessibility across multiple platforms and languages. The down side is I can not control what is cached and what is on disk as much as I would like. Every now and again I may take a huge hit in performance as it was not designed for this task. I may hit a bottle neck much sooner in a high concurrency situation than I otherwise would.
  • I could use memcached. This is attractive for the obvious reason: blinding speed. The down side is I would have to do so much more work in code since it does not guarantee stored data would exist when I need it. This increased work could place my bottleneck on my CPU when it is already pretty high from other tasks. I would not know the full effects of this until after the project is mostly complete leaving me in a chicken or egg situation.

I am sure there are many other options. These are the two that seem the best suited for my task right now that I am aware of.

No matter what I do I will build a very light-weight abstraction layer as to switch between different designs quickly. This will save a lot of time later on so I do not have to reinvent the wheel over and over again with each test.

Automatic Games

Automatic Games

I have always loved games that masterba… er, play themselves out. In such games the player sets the initial conditions– perhaps even writes a little code or designs something– and then lets it all hit the fan.

As of late I have been staring at Gratuitous Space Battles. In this one you design a small fleet of space ships, complete with hulls, engines, weapons, shields, and the like, and then set them against waves of enemies. The beauty of the game is no setup will work equally well against every enemy (at least once you are past the first few levels, that is).

This has re-sparked interest in my idea for something I am currently calling Evolution Battle (yes, yes, it is a dumb name). I envision it as SimLife mixed with something similar to Gratuitous Space Battles. Players would create the “life” with its basic attributes and then stick them in the world with other “life” to compete for resources. I think it would be a great project for me since it would involve a few technical challenges I am not sure I have encountered before.

Just an honorable mention for a few of my other favorites: Crazy Machines (a near-clone of The Incredible Machine), the classic Conway’s Game of Life, Robocode, Bloons Tower Defense 3, and Lemmings (sort of).

Dungeons Keeper 2 on Ubuntu with Wine

Dungeons Keeper 2 on Ubuntu with Wine

When Microsoft announced Windows 7 I went to my favorite retailer and pre-ordered my copy of Ultimate. Of course the more versions of Windows we get the less older games we can play on them.

Dungeon Keeper 2 was always one of my personal favorites. Seeing my lovely girl playing it on Windows Vista made me want to play a game so I dug it out from a pile of old discs and installed it on Windows 7. It would not start. I tried compatibility modes, sacrificing a dog, and a third thing. It simply, positively would not start. So I thought “screw this, I am going to Linux.”

These are the steps I took to get Dungeon Keeper 2 1.7 working on Ubuntu 9.10 x64:

  • Prepare Apt: In a terminal type sudo add-apt-repository ppa:ubuntu-wine/ppa
  • Update Apt: In a terminal type sudo apt-get update
  • Update Wine: In a terminal type sudo apt-get upgrade
    (Note that this will upgrade everything. You can use System -> Administration -> Update Manager to upgrade only the related Wine packages.)
  • Fire up regedit and set the following keys: In a terminal type wine regedit

    HKEY_CURRENT_USER -> Software -> Bullfrog Productions Ltd -> Dungeon Keeper II -> Configuration -> Video -> EngineID = 4
    HKEY_CURRENT_USER -> Software -> Bullfrog Productions Ltd – >Dungeon Keeper II -> Configuration -> Video -> ScreenHardware3D = 0
    HKEY_CURRENT_USER -> Software -> Wine -> DirectInput -> MouseWarpOverride = “disable”

    If any of these keys do not exist create them. Running the game and using Alt-F4 to exit it will create most of– if not all of– these. MouseWarpOverride had to be created in my case and I set it as a string.

  • Run the game: In a terminal browse to the Dungeon Keeper 2 directory and type wine DKII.exe

One might note that I never actually installed the game. I had it installed on Windows and I simply moved the files over to my EXT4 partition (running them off of my NTFS partition probably would have worked just as well). I also grabbed a no-CD crack so I would not need the disc (buy the game because it is damn well worth it). I have not yet gotten the mouse perfect but I am pretty happy with it right now. All the applications I had open at the time seemed to disappear but were still running. I do not know why this was and I currently have no idea where to look to fix it.

[Source]

Update 2011.04.22
As of Ubuntu 10.10 there is no need to add the Wine repositories (the Prepare Apt step).

RoboCode Tournament

RoboCode Tournament

I have become very interested in playing with RoboCode as of late. Wikipedia sums it up pretty nicley:

Competitors write software that controls a miniature tank that fights other identically-built (but differently programmed) tanks in a playing field. Robots can move, shoot at each other, scan for each other, and hit the walls (or other robots) if they aren’t careful. Though the idea of this “game” may seem simple, the actual strategy needed to win is not. Good robots can have thousands of lines in their code dedicated to strategy. Some of the more successful robots use techniques such as statistical analysis or attempts at neural networks in their designs.

I do go on with my rants about Java however I have gone as far as proposing an in-house tournament between friends. I have even drawn up game types and rules for this tournament. This could prove to be a great introduction to programming for them and a lot of fun for everyone.

Also I get to crush their robots with great prejudice in robo-combat.

Indie Game Shirts

Indie Game Shirts

When I say “indie” you may think about movies or music. Most people would. Most people can go far, far away.

When I say “indie” I am often referring to independent video games. There are no big budget titles here (hell, there may not be any budget at all) but there are tons of awesome ideas. Even Values block-buster Portal has its roots in an indie.

Now a group of people by the collective name of The Experimental Gameplay Project has started a line of clothing they call EGPApparel. These are indie-inspired shirts with clever slogans on them from some of my personal favorites. Although this is news-worthy alone what makes it even better is you also get a copy of the full version of the game with a purchase of a shirt. This kind of brings me some hope as my own current indie project has yet to see the light of day.

Fast Forward While Writing This Entry
While my mood was in an elevated state due to this news I made the mistake of reading some user comments on the reporting sites comment section. It seems Target is killing off this little experiment off despite the fact that the shirts (and games) are selling. Simple Tanks, we hardly knew ye’.

PC vs Console

PC vs Console

I recently came across this article. It contrasts this article (sort of) but my focus will be on the former. In typical Nick style instead of bringing you peace I will bring you conflict as I enjoy it. Take this, console fan boys!

I feel the article hits on some key points on why to choose a PC over a console. Instead of me reviewing a review– the “review” being nothing more but a self-answering questionnaire– I will instead just agree or disagree with each point. As you may have assumed it would help if you read the article first.


HD is So Last Gen
As much as I love to blow stuff up in games just to blow them up I tend to focus on content over awesome graphics.

Mouse & Keyboard for the Win
As much fun as Golden-Eye for the N64 was the controls are inherently bad. Even with such a game that did the best possible job they could have they still sucked. I sort of got the hang of it but come on! 3D space calls for 3D controls!

Now You’re Really Playing with Power
This is not an argument that is all that strong in my mind. Sure you can get more raw power in a PC at will but there is something you would be forgetting. Consoles (at least the well made ones) are controlled platforms machines. What I mean by that is since they are not general computing machines you know what you are getting and can write very tight routines to take advantage of every last bit of power. No abstraction layers, no guessing or checking bit-fields. What you are left with is code that may very well run circles around superficially similar code on a PC. Pains me to say it but console for the win on this one…

Will Wright = Game God
Huh? I could not hear you over Carmack‘s mighty roar.

Kids’ Play
This argument holds a lot of water. Before anyone says “Halo has blood!” or some such stuff (read: shit) remember you are playing the dumbed-down version of another game. Consoles are built for mass appeal and the masses are finicky.

With that said the Super Monkey Ball series is great fun.

Blame it on the Console Gamers
“Console gamers are responsible for the decline of some of the PCs best franchises.” Plain and simple. Halo looked awesome when it was coming to PC. Then Microsoft stepped in, changed everything and now we have… this. For every Metroid there are 10,000 whiny little brats with a headset and microphone screaming “wall hack” for no other reason than they lost.

Their culture is among the bottom of the food chain and it shows.

You Think That’s Realistic?
PCs are the ones pushing the limits. Consoles imitate. Cutting-edge technology is the PC.

But again: content > shiny.

GamerTags are Overrated
What the fuck? GamerTags? Are we six? A gold star for you…

The Invincible PC
I do not doubt this is very much a cutting edge sword. If a PC can be considered “invincible” because you can keep upgrading it you will be poor pretty soon: PCs can be expensive. If they are worth it or not depends on how serious you are about gaming.

Nyah, Nyah, Console Tools
Suck it.