About 2 weeks ago I finished my final exams ever! I just got the results in and it looks like I’ll be graduating with a BA/BSc in Mathematics and Computer Science come autumn.
I’ve also accepted an offer as a .net developer, I’ve only been there two days but they seem like a good bunch and I already have a lot on my to-do lists. As the work largely revolves around business logic which often lives on top of databases, and I’ve not had that much experience in that area, I’ve had to learn alot and read up on all that kind of stuff - Which will probably take me some time to fully grok.
Which means that I’m not going to have too much time over the next few months for my pet project - My employer is paying me for my full attention after all.
But it does mean that I can put some money away to pay contractors to work on various parts of the game, expect some nice art and music when my new roguelike is ready.
As an aside - Last week I started adding some code to the SFML library sf::String class that would allow more flexibility with text rendering such as centering, horizontal and vertical alignment as well as wordwrapping, and subrect rendering. All of which will be very handy for any project that needs to manage text, but seeing as I’m making changes to the SFML code I may as well submit the new features I’m writting to be released in a future version.
Tags: Offtopic / Real Life · rQuest
So the Internet is on fire because Blizzard has finally announced Diablo III
Go check out the gameplay videos, it looks quite impressive. I’m looking forward to multiplayer.
No announcement of a new Diablo game goes without a look back at the games that Diablo descends from - Rogue and Nethack in particular. The discussions have already begun, is Diablo even a Roguelike? Is it just a click-fest with great eye candy? Is Nethack a better game because of the depth and strategy involved?
I’m not really interested in debating the point, it’s obvious that even though Nethack and Diablo have a common ancestory they have diverged enough to the point where they’re completely different games.
As I’m working on a new roguelike game myself - I thought I’d share how I think permadeath should work in roguelikes.
Make it optional!
It’s that simple really. A normal mode, and a hardcore mode.
In normal mode a single save anywhere is allowed and when you die you are automatically resurrected in the closest town with a xp loss penalty and all gold on hand is lost* No big deal, a small set back but you can still recover and death still has a penalty.
In hardcore mode, a single save is also allowed (to allow you to restore games still in progress) but when you die thats it, game over. No resurrection and no restoring the save.
Seperate highscore tables will be kept for each game mode.
Let the players choose how they want to play the game. That’s also why I’ll be implementing difficulty levels. Let the player choose the right challenge for them, you’ll end up with a better game in the end.
*A bank or vault will be avalible to store gear in all the major towns.
Tags: rQuest
I’ve been spending the afternoon with SFML or Simple and Fast Multimedia Library
It’s a 2D Graphics API for C++ and It’s pretty minimalist, but comes with just the right amount of features for me to build a game framework with. It has almost all of my requirements for a good 2D library including; events (and polling), scaling, rotation, hardware accelerated blending, text rendering, cameras (to zoom and pan the entire scene) and even pixel shaders -Which I probably won’t use for compatibility with older hardware.
Aparently the Mac port is a little behind at the moment, but should hopefully be ready soon.
So far I’ve got some sprites on the screen with some rotation, blending and scaling going on. I’m going to start building the GUI framework soon, incorporating some of the ideas I learnt during the development of Caverns of Underkeep - I’m also going to download and play some more “casual” games, as they often have quite interesting and featureful GUIs.
Tags: rQuest
Finally.
To think, I’m probably almost a grown-up. I’m pretty tired after having my last three exams over three consecutive days. If anyone has any leads for a new graduate with a BA/BSc in Math and Compsci who would like to work in the .Net space, let me know
On a side note, I’ve realised that I’ve got quite a few games on my shelf that I haven’t got around to playing and/or finishing yet including - Civ IV, Curse of Monkey Island, Sam and Max Hit the Road, Baulders Gate I and II and Medieval Total War. As I am now officially a no-jobber, I think I have enough distractions to help pass the time.
Tags: Offtopic / Real Life
One week til my first exam!
Heads down, Tails up.
See you on the flipside 
Tags: Offtopic / Real Life
If my last games were written in Java, why am I using C++ for my new Roguelike?
Countless religious wars are fought over programming languages, just look at any forums frequented by programmers.
I’d like to think that I’m pragmatic in my technology choices - Languages aren’t often better or worse, but in many cases some are simply more suitable than others. Caverns of Underkeep and Attack of the Meeplings were written in Java because I wanted to have a go at making browser based games and I decided that Java was the best technology for the job. Incedentally I think Flash would have been better in order to leverage in-game advertising - I guess sometimes business decisions need to trump technology ones.
The main reason for choosing C++ is that it compiles to native code on both PC and Mac, there are lots of external libraries for common tasks and it has a mature IDE (Visual Studio) and debugging tools.
The native code argument isn’t because of speed. On modern CPUs for 2D games the speed difference between running on a VM and running natively just isn’t human noticeable. But native code does ensure that all libraries are linked and deployed with the game. While I would love to have the expressive power of LINQ for my game, I really don’t want to require the user to download the .net 3.5 framework.
You ‘d think the Java runtimes would be more widespread than they are. I just bought a new laptop recently and it didn’t have any kind of Java VM pre-installed at all. And when you’re the little guy you want to put as little as possible in-between a potential customer and them buying the game.
And then there is the simple fact that being multi-lingual can improve your programming skills in more ways that just adding another technology to your resume, you get the benefits of seeing the world from a different perspective.
If I was deploying on CD or writing business software, or a designing a web application it might be a different story. But I guess C++ is the choice for now.
Tags: myProjects · rQuest
Today I had my last lecture and handed in my last assignment ever.
Tonight I will kick back and relax - Go see my old band, catch up with friends and unwind.
Tomorrow, I will start studying for my final exams.
In less than three weeks, it’ll all be over.
Tags: Offtopic / Real Life
I’ve got final exams looming over my head like storm clouds on the horizon. But in between exam revision procrastination I’ve been thinking a bit about Tiny Frog Software’s next project.
Its going to be a roguelike game - Similar to Caverns of Underkeep but this time it’s going to be a downloadable title. Running the game on the desktop alows me to do alot of things that weren’t really practical in COU (like saves and game mods) I’ll be doing a free demo/pay for the full version type thing. And I’ll be targeting the Windows and MacOS platforms.
COU was written in Java, but I’ve decided to write this new project in C++ - Unfortunatly what’s really powerful about Java (and .Net) is that they provide a large framework for many common application tasks. When you go back to C++ you either have to write that functionality yourself or use external libraries.
Heres a list of tasks I need to be handled on my solution stack.
- Graphics / 2D / Hardware Accelerated : Simple and Fast Multimedia Library
- GUI / Game State Manager : Will develop in house as part of the framework
- Music and SFX : Bass (Licence Required €100 per platform)
- Scripting Language : LUA
- Internet Connectivity Library : Possible Solution - LibCurl
Getting this core framework togeather, operating and tested on Windows/MacOS will need to be done before building the actual application layer which will use all this nice stuff. It’ll probably be near the end of the year before my 2D game framework will be fully functional. That also gives me enough time to save money to contract out some art and music resources.
Tags: rQuest
There are a number of references to other video games in Caverns of Underkeep
I wanted to put alot more in - Some obvious some not so obvious, but maybe I’ll just save it for the next Roguelike.
Super Mario Bros


Everybodies favoriate Italian plummer.
Quest for Glory

The Antwerp from Quest for Glory I
Doom / Doom II

The Lost Soul aka that annoying flying screaming thing.
Many Other Roguelikes

Many roguelikes use Ascii to display the game. I thought I’d just throw this one in as a tribute.
Tags: UnderKeep · myProjects

Here’s a histogram of the 4,842 scores in the Attack of the Meeplings database. At first glance the data looks realitively normal - However, it’s far from it. The horizontal axis is not linear, but exponential (2^n) the data is heavily right skewed which tells us that there are some people who are just so much better at the game than most.
This graph shows us how difficult the game is and we can see where peoples limits begin to emerge - For example, there is quite a bit of drop off in the 4000-8000 area.
The median score is 949 and there are only 295 scores that are greater than 16,000.
What does this say about developing a shooter if you’re an indie game developer? - Implement difficulty levels! The people who are in the top 100 are those who really like these types of games and are really good at them. Unfortunately if you only target those people you drastically reduce your potential audience.
Your players are supposed to be having fun, remember that. Give a challenge to those who want it, but relax on people who aren’t quite as good.
Tags: Game Design · Indie Game Development · Meeplings