Dungeon Crawler thoughts

Disclaimer: the term “dungeon crawler” may have a different meaning to you than it has to me. For me dungeon crawlers are different from hack-and-slash games and don’t rely too much on reflexes. This post is just my “brain dump”, shared with you if you’re interested. Feel free to discuss!

I always liked dungeon crawler games. The first one I played was Dungeon Master. It’s been released in 1987. Legend of Grimrock, released in 2012 is another game I enjoyed; it has beautiful graphics and interesting puzzles. It isn’t really much different from its predecessor though. The introductory post on its developer’s blog points at Dungeon Master as its inspiration, among others: Eye of the Beholder, Ultima Underworld and Arx Fatalis.

Both of these games got me hooked for hours.

Negating a dungeon crawler

There’s a number of common mechanics present in dungeon crawlers:

  • Exploring a dungeon that has multiple levels, riddled with secret locations
  • Controlling a party of characters or less often a single character
  • Collecting equipment and gearing up his party or character
  • Solving puzzles to progress through the game
  • Melee and ranged combat, plus magic
  • Improving the party or character’s stats

All of the above are present both in Dungeon Master and in Legend of Grimrock. There’s a gap of a quarter of a century between these games. I’ll have a short look at all the elements and will try to negate what’s done usually in dungeon crawler games like.

Dungeon Exploration

Usually, the dungeon is hand-made by the game designer, the mobs, items and puzzles are carefully placed, a careful difficulty progression is clear. The designer holds the player’s hand at the beginning and lets it go as the player progresses through the game.

Contrary to this, roguelike games generate dungeons randomly, and every play through is different.

Party or a Character

Usually, there is a party that cooperates on a common goal or a character pursuing a larger quest. The party is controlled by a single player.

Contrary to this, the party may cooperate but it may be controlled by multiple players like in Hired Guns, or multiple players may control multiple independent characters, each pursuing its own agenda.

Items

Usually, the items are designed by the authors, and placed in proper spots on the map. As everything is known about every weapon in the game, progression is ensured through the game.

Contrary to this, items can be generated randomly or semi-randomly, like in hack-and-slash games such as Diablo. The items characteristics are random, they may affect the game in different ways, such as by enabling abilities or dealing extra damage.

Puzzles

Usually, the designers put the puzzles on the map and offer clues to solve them. This guarantees every prerequisite to solving a puzzle is available before the puzzle is found and needs to be solved.

Contrary to this… I can’t think of a notable example. There is one way to generate puzzles dynamically, but I don’t think these would be very original – a procedural puzzle is just like Sudoku – once you know how to solve one, you know how to solve them all. Here’s an interesting article by Sean Howard about building puzzle trees.

Combat

Usually, the right types of enemies are placed where they can be defeated – the dumbest and the weakest near the beginning of the game, the smartest and the toughest near the end. It ensures the player will always have both a challenge and a chance to win it.

Contrary to this, the mobs may be placed randomly, both picking their type and place. Again, I can’t think of a game that does this on a pure chance, there is always a difficulty bracket the mobs have to fit in. The Binding of Isaac places mobs randomly, with good result, although sometimes “unfair”.

Advancing Characters

Usually, the stat system is based on Dungeons and Dragons or a similar role-playing system. Characters have their specialties or classes and these affect their base abilities. The abilities may be improved by gaining experience. This works really well, as it’s a very understandable and flexible approach.

Contrary to this, there are open-skill systems, and you can compare the two yourself. Personally I prefer open skill systems as I don’t like to limit my choices for character development.

Is this worth sharing? Share it if it is :)

Ouya – First Impressions

Ouya, the $99 Android-based console has just recently started shipping. I backed Ouya on Kickstarter and got my dev kit back in January, just didn’t have time to take a closer look at it.

Hardware

The internals of Ouya are comparable to those of a decent tablet device:

  • CPU/GPU: nVIDIA Tegra 3
  • Memory/Storage: 1 GB of RAM, 8 GB of internal flash storage
  • Sound: 5.1 sound
  • Networking: Wi-Fi 802.11 b/g/n, Ethernet
  • PC Connectivity: Micro USB
  • Other: Bluetooth

It can output 1080p HD graphics via HDMI port.

The dev kit is a bit of an ugly duckling. The controllers feel like prototypes, are a bit too light in the hands, but have buttons, pad and sticks laid-out like you would expect. The bit that seems to need adjusting is the touchpad. You can barely feel it on the prototype controller, and it doesn’t feel precise. So far it felt redundant for me.

The fan is a bit noisier than I expected and it seems to turn itself on and off at random times – even when there is no pressure on the Tegra, it spins.

Firmware

It gets updated quite often. The Software Version of the firmware I’m testing is 1.0.2, Build Number 1.0.158_r1.

On the first boot, you are taken through a setup and update process, which is straightforward (you pair your controllers, you configure your networks, you twiddle your thumbs when the updates are downloading). I think it took me a bit more than 10 minutes to go through this one time process.

On a regular cold boot, it takes the console about 20 seconds to boot up. You get to see a bit of Linux console when it starts up, then the logo appears, and an “ooo-yah” sound plays, and you’re taken to the start screen:

If you don’t have any games or apps installed, the option you should select is “Discover”:

The menu shows you a list of sections, like: “featured”, “go retro”, “hear me”, “genres” and “sandbox”. It doesn’t explain what does “hear me” or “sandbox” means, although I guess “hear me” is another set of promoted games (there’s just 5 of them there), and sandbox seems to hold all the games that didn’t make it to “featured” nor “hear me”. The sandbox is divided in sections, 20 games each:

By now, you have probably noticed that Ouya likes to have a lot of blank space on the screen. I was wondering why is that, and figured that apart from keeping the UI clutter free it could be done for performance reasons. I’m quite allergic to UIs that stutter, and unfortunately Ouya has one that doesn’t feel very smooth. As I see it, it shouldn’t have any problem at all running at full 60 frames per second, but it seems like it runs at 10-20 frames per second at times. The most annoying thing to me personally is – when I scroll through the game list, there is this whoosh sound. I have no problem with the sound itself, but sometimes the playback of that sound breaks up when the scrolling happens – it clicks and breaks. Hopefully the Ouya team is going to improve this in one of the firmware updates.

At any given time, you can press Y on the controller to search the games by title. The search works pretty well, and it searches through all games and apps available:

When you decide which game you would like to download and play, you can have a closer look at it:

The miniatures of the screenshots look like something you would be able to select and put on the full screen, but unfortunately you can’t. You can only browse them. Once you are confident you would like to give the game a go, you can download it.

It’s time for a reminder, that Ouya is based on Android. Once your game has finished downloading, you will be show this familiar window:

As much as I’d like this to show a nice list of access rights for the application that fits with the rest of the Ouya theme, I understand this is a core part of Android’s app sandbox mechanism and it may be best if nobody messed with it.

When you confirm the installation, you can start your game and have a good time:

I’m not going to review this game, I just used it as an example (truth is – I suck at it).

Once you have discovered some Ouya games, you can see them in the Play menu:

This reminds me about something that Ouya’s UI is missing – a download manager. The only way to check on the games you’re downloading is via the Discover menu, when you get to details of a specific game. I expected to see my downloads in the Play menu at least, but no luck. I hope the download management will be addressed in one of the future updates.

I won’t cover the Make and Manage menus – these are quite boring, and usually lead to vanilla Android screens, like the ones you know from your phone’s or tablet’s Settings.

Games and Apps

It’s been just a couple of days since Ouya started accepting games and apps. There seems to be little about 100 games and applications to be discovered right now. I think it has potential, and we yet have to see how it develops:

At this moment it’s wild west out there, a number of pioneer developers have uploaded their games and are testing the waters. I haven’t managed to spot any obvious gems yet, but I will keep looking for them.

As far as Tegra’s computing power goes, it’s mostly untapped. More than half of the games available feature either retro, pixel, minimalist or just plain crude graphics. We yet have to wait for jaw-dropping games. I have downloaded one game running on Unreal Engine (“The Ball”), but it has failed to install, and therefore failed to impress me.

Currently there are only 2 non-game applications available on Ouya: “TwitchTV” and “Blue Board”. The first one lets you watch twitch.tv streams, and the second one lets you use your Android phone or tablet as a bluetooth keyboard for Ouya.

Download speeds

The downloads were slow for me. I live in Poland, and have a 50 Mbps connection at home. A quick one time “benchmark” I’ve made shows that I get about 3 Mbps download speed from Ouya. I haven’t snooped so I’m guessing that Ouya’s content distribution network is only hosted in the US and yet has to spread to Europe.

What about money? Is it really free?

The first thing that struck me and I forgot to mention when I wrote about the Ouya Discover store was… It has immediately asked me for my credit card details, when I wanted to download a game. That was a WTF moment for me, but well, I had no other choice but to comply. I fuzzily recall that Google didn’t ask me for this information that early.

The credit card is the only available payment option at the moment. For me, it’s a disaster waiting to happen. As soon as there are other payment options, for example PayPal, or a top-up wallet, I’ll be removing my credit card info from the system.

All the games are free to play, as advertised, and some of them have monetization mechanisms built in. I have only tested one. The purchase worked without any problems and was extremely simple (although not too pretty nor exciting):

And 3 seconds later:

Conclusions

Ouya is too new to be coming to any conclusions. It’s already there, it’s alive and working. It has its own hiccups (UI and downloads especially), like every new product or service, but it will definitely get there. The frequent updates of firmware are a huge opportunity for Ouya to launch as a polished Android console in June. The hardware has yet to be taken to its limits.

I think it’s a nice gaming gadget to have for just $99.

Unity3D Gem: PlayerPrefs helper class

In Unity3D, the PlayerPrefs class provides a simple mechanism to persist values between game sessions. Unfortunately, only the int, float and string types are supported out of the box.

Here’s a little helper class I wrote to support any IConvertible type:

 

Here’s how to use it in your components:

 

With this, you may just use it and forget about having to call an appropriate PlayerPrefs.Set method to update.

Windows 8 and Steam for Linux

Today my PC has decided to die. Today Windows 8 has been released. Today Steam for Linux Beta has been announced. Today I’m in a position in which I need to decide what operating system will I get for a replacement PC. This might have been just a coincidence that everything happened on the same day, but I’m sure it’s a conspiracy.

I could just go with the flow and get Windows 8 with its tiles, totally unfitting for a desktop OS run by a user with well-developed productivity habits. Also, as a developer, I need to be able to easily access guts of the system, and having to switch to a bastardized desktop mode feels a bit sideways in Windows 8.

I can’t just switch to Linux, as my favorite development tool (Visual Studio with ReSharper) can only run on Windows. Unity3D, which I started using, doesn’t yet have a Linux-native editor. So, Linux is out, at least for now.

This leaves me with Windows 7. I can still run effectively and naturally all the software I have, I can still play games I have on Steam. I have absolutely no reason to switch.

Interesting observation is… Apple wasn’t really the first who made mainstream tablets. Microsoft had tablets earlier. And they shoved a desktop OS into them. Now Microsoft tries to shove a tablet OS into desktops. In a way they have made the same mistake twice. Of course there is the desktop mode, but honestly it just doesn’t feel right. If I have to emulate earlier version of Windows on a new one, why would I get it in the first place?

Here’s something to think about: click.

I can’t wait until Linux will have as powerful dev tools as Microsoft makes for Windows, or until Bill Gates is done with giving away all of his money and comes back to Microsoft to take lead that makes sense.

I just know the Linux thing will happen first.

Steam Greenlight

So, the long-awaited Steam Greenlight has launched. The reception is mixed, to say the least. No wonder, everyone in-game development and gaming was waiting for the largest gaming platform to relax its submission process.

As one of the guys who would like to put their game on Steam, I’m happy about it. I have no game waiting to be released and I have never released a game (apart from my Ludum Dare “games”). But still, I’m happy. Why?

Getting on Steam is something entirely different from pushing out your game on App Store or Google Play, or anything that has hundreds of thousands of other games and apps. Getting on Steam guarantees that your game will get noticed by thousands of gamers. Even with a conversion rate of 1% you can count on at least 10 sales.

Have you ever wondered how many apps and games are there on App Store and Google Play that have never been bought or even downloaded? Because there are so many games on these platforms, there is a serious chance that there are many apps and games like that.

Sure, there will be an order or two orders of magnitude more Android and iDevice users than Steam users. But you know what? These numbers show the total number of users of these devices, not only gamers. So with Steam you get exposure to users with one of the most important traits – they are all gamers. Think about it.

The $100 fee, called outrageous by some? I think it’s definitely needed. I don’t know if the fee is too high or too low, but even if your game will get 100 sales and you will get $1 from each sale, you break even. Sure, it isn’t guaranteed that your game will get on Steam Greenlight once you’ve paid the fee, but this is lifetime, per-account, not per-submission fee. You’re free to have as many tries as possible and submit as many games as possible.

If you can’t afford organize getting $100 for your entry fee, either from your friends, or by microfunding, or by any other means, chances are you won’t be able to sell your game anyway.

Making games and selling games are two different things.

The comments on Steam Greenlight from gamers saying that niche games suck? Well, you know what? Steam isn’t a niche platform. Do you remember when you have installed Steam? I bet it was about the time you got your Orange Box. Do you remember what games were there in Orange Box? Portal was the only one that could be called indie. Do you remember the oldest games that you could get on Steam? These were all AAA games. Indie games came much later to the platform. Bottom line? Steam is a commercial platform, because that’s what the vast majority of gamers there need. The successful indie games on Steam you hear about are the ones that the Steam demographics loved. They have filled a particular need.

Face it. Steam Greenlight is just a filter. You would face one anyway, if you were to go through the normal process. Steam is a commercial platform and a huge player and getting on Steam is a big deal.

There are other platforms that you can still try: Desura and Indievania. They are also better suited to indie games, mainly because of their demographics.