Archive for December, 2007
Surprisingly this list was pretty easy to compile. I think it took me about 15 minutes and a cup of coffee to come up with 10 things that I want to do next year.
So, in no particular order.
- Finish Caverns of Underkeep!
- Revamp the Peachysoft website, which means brushing up on some ajax and php.
- Get an A- average at uni, it’s my last semester so I might as well try for a reasonably high grade.
- Find a Job after uni with a software development company, Ideally with a $NZ 45K+ starting salary.
- Create ‘vBass’ a vst plugin for emulating a ‘real’ bass in audio sequencing software such as cubase or fruity loops. A friend of mine has been nagging me for such a product for a little while now, and it should be quite fun (and challenging.)
- Start work on a new game or game related project. Possibly in collaboration with others?
- Learn to draw. There are some interesting looking books on drawing fantasy characters and other things on Amazon, I think I’ll get a few of these and have a go at improving my drawing skills.
- Learn to play the drums.
- Have $5,000 in my savings account.
- Update this blog at least once a week.
I’m pretty confident I can get everything on the list done, that’s one of the reasons why I limited myself to just 10, there are a few other things I’d like to do, but I think I’ll just focus on the above for 2008.
Happy New Year everyone!!
So the year is coming to a close, and everyone who has a blog (which is probably everybody in the world by now) is doing end-of-year summaries and posts on their predictions for 2008.
I thought 2007 was a pretty solid year overall – Choosing to return to university to add a computer science degree to my math degree was the right decision. I’ve learnt quite a lot, even though I thought I knew it all already Guess what I’ve learnt most of all is to be a little more humble… And although I won’t be finished by mid 2008 I’m alright with living on a student income for another six months.
Around this time last year I posted my goals for 2007 which where:
1. Release a Freeware “Mini-RPG” – Approx 2-4 hours of gameplay.
2. Find funding for a much larger RPG to start work on in 2008.
3. Make a new and interesting blog post at least once per week.
4. Maintain a B+ average at uni.
I didn’t get around to releasing a freeware mini-RPG, but I did get an alpha of my roguelike game Caverns of Underkeep out. So I’ll give myself half a mark for that one. Which I think is rightly deserved as I canned my freeware RPG without actually having a backup plan early into the year.
I’m not so interested in pursuing number 2 anymore. I do have more projects planned for next year but none-of-which require huge amounts of funding. So that’s not really something I considered much this year.
According to wordpress I have made a total of 66 blog posts. Which exceeds my goal of once per week. As for new and interesting content… Well, there are a few posts I think people could get some value from. My favorite post for the year was written way back in January Why I’m choosing 2D – I think the reasons I outlined still hold up, and why for the near future at least, I’ll be looking at 2D related gaming projects.
I’m pretty sure I got a B+ average at uni – or very close at least, so check for that one.
Now I haven’t worked out my 2008 goals yet. But there will probably be a lot of them considering I’ll be finishing Uni and getting on with the next major part of my life – A Career
I’m back from doing the ol’ Christmas rounds with family, hope Santa was nice to everyone
I usually like to blog about things that I’ve done, rather than what I’m going to do – That way I don’t break any promises when I change my mind or if (when) things don’t turn out. It also serves the purpose that if I’m making a post it’s based on actual, real progress. Ya know, something tangable that I’ve actually done. But because I’ve been away – this post aint gonna be like that.
There are five things I need to get done before Caverns of Underkeep reaches alpha 2.0
- Content. Pretty vague term really, more monsters, Items, ecologies, misc. stuff, art assets etc.. I’m going to be adding two more levels to the current five. Oh, and I’ve got a basic story outline to incorporate. I’m reasonably confident that the total depth of the dungeon will stay at seven levels, at least for a while.
- Better enemy pathfinding by implementing the A* algorithm.
- New Spells and spell effects – I’ve got around 5 or 6 spells to add. You’ll be able to access the new spells by increasing your intelligence.
- Saving highscores to an online database.
- The Inn – A new location in town, you’ll be able to rest and recover, gamble and do some other misc. things.
That’s it! Remember Jan 15 is the target date.
I’m going away for a little less than a week and I’m not going to have any internet access, so no working on Caverns of Underkeep and no updating the blog. For those of you testing the game, please still give feedback, I really do appreciate it, you can leave comments on the blog if you wish, I won’t be able to reply but I will be able to read them when I get back.
As for Underkeep news I’ve added the first mini-game, a very simple jumbled-up word-puzzle used to unlock chests that are randomly placed about the dungeon. It was pretty easy to add and I think it’s quite effective. Although I’m not sure about the hint system I’ve developed, because you can just brute force solve it – I’ll probably change it when I get back.
Another thing that I’ve been thinking about recently is the direction I want to take the game in – And I’ve come up with two main objectives.
1. Short playtime (approx 1 hour to beat, 2 would be absolute maximum)
2. High replayability
The way I see replayability working is that you get a different experience almost everytime, this is somewhat handled through random level generation and different classes\challenge modes but I think I can take it a little further.
For example, I want to introduce ecologies, meaning that a level might be infested with spiders or undead or Fire and Lava creatures. But you wouldn’t know until you played the game as to which you got and each ecology would have it’s own special strategies that work best against it. The level would have all the decals and features for the creatures inhabiting it of course.
That way I can still keep the depth of the dungeon small, but increase the chances that the game will be different each time you play.
Another thing I want to do is add heaps of secrets and easter eggs, I really liked it how in Kings Quest II there was some ridiculously small chance that you could see batman driving the bat-car in and out of a cave. A friend told me about it once and I thought he was lying because I’d never seen it – Turns out he wasn’t lying, just that the probability of seeing it is really, really small.
Edit: I’d just like to point out how much adding ecologys would effect random generation. Say I have 6 levels that each have 2 possible themes, then I have 2^6 = 64 unique combinations of a 6 level set. This number grows at an exponential rate. So if I have 3 possible themes for each level then I have 3^6 = 729 unique combinations. That means there would be a < 0.14% chance that you would get the same ecology combination as your last playthrough.
After getting some good feedback from the alpha demo and a continously running demo that a few people have access to, I’ve got a big list of stuff to complete for the next public demo.
The target date for alpha 2.0 is Jan 15, 2008 and will contain 5 levels of the dungeon.
Over the last couple of days I’ve been tidying stuff up, fixing bugs that have been there for ages (and adding new ones in the process) making minor graphics changes and just generally tweaking and proding around. Mostly uninteresting stuff, but it all has to get done sometime.
I’ve also added a restart button so when you die, you don’t have to hit refresh on your browser if you want to play again – Yay!
I really want to get onto the mini-games – I’ve got two different styles of puzzle chests planned and I think they’ll be quite a hit. There is also going to be some kind of gambling in the Inn (which doesn’t exist at the moment) and maybe somekind of ‘flirt with the barmaid’ game, but I can’t quite imagine how that one would work Perhaps I should stick a dinner-dash component in, where you have to serve customers dwarven ale in order to earn some extra gold. And if you get their order wrong they’ll start to pummel you?
I’ve also drawn some new graphics, probably the best I’ve done so far. The character on the far left is an option for the players avatar, but the others are going to be bad guys.
I first heard about Cave Story probably about 6 months ago, and everyone was ranting and raving about how good it was – So I downloaded it, played it for 15 minutes, couldn’t work out what was so great about it and deleted it.
Then Matt from loose Leaf Games told me that it was one of the best recent gaming experiences he’s had. So I decided to give it another whirl.
Matt was right, I was wrong – Cave Story is *THE AWESOME* I didn’t even get out of the first cave the first time I tried it , but it soon picks up as a simply amazing adventure/platform game that is unapologetically retro to the days of 16 bit.
The controls are a little confusing at first so I’ll post them here. Press Z to jump and X to shoot (once you find the gun) and press the down arrowkey to interact with objects. You can also shoot in the up and down directions by holding that direction and firing. Run the DoConfig.exe to see some of the other controls.
Cave Story was developed entirely by one guy and took 5 years as he was just working on it part time. So I guess a sequel is a long way off? – Wikipedia has a good entry on Cave Story if you’d like to know more about the game.
It’s a small download at only 1 mb and will probably run on almost any computer you have lying around. You can read more about Cave Story and download the game from the Acid-Play website (which features quite a few freeware games) here.
In a previous post I explained how Caverns of Underkeep will not have any classes.
Well, I lied.
I just added a character creation screen to the current build and I implemented some character classes.
However, I still claim that Caverns of Underkeep is not an RPG, so the classes represent game options rather than roleplaying options.
So far I have added six vocations:
- Adventurer - Normal, the default. Pretty boring.
- Beserker - Cannot wear any body armour or equip any shields. In return there is a 5% chance that they do double damage in Hand to Hand combat. They can still wear helmets – They’re not that stupid.
- Frail Mage – Starts with +4 MP and -4 HP
- Merchant - Starts with 250 GP but loses -2 Dexterity due to being a book reading economics nerd.
- Ogre - Big and strong. Starts with +3 Strength and +3 Endurance. Unfortunately Ogres are banned from all the shops in town.
- In Debt Big Time – You start with -1000 GP. If you can pay it off you get a score bonus.
That’s it so far, I’ll add more as I think up some. Basically I want something that gives a strength but also gives a weakness. Or perhaps provides some alternative playing styles. Post ideas if you have ‘em.
Caverns of Underkeep – Still not a roleplaying game since 2007
Heroes of Might and Magic III is one of my most favoritest games ever. But the series really went into a tailspin around about when Heroes IV showed up – Which I own a copy of but haven’t been able to play for longer than 30 minutes for some reason?
When 3DO filed for bankruptcy in 2003 who would know what would happen to the series?
Well, Ubisoft bought the rights for $1.3 million dollars (peanuts) and outsourced a bunch of work to “Cheapest Bidders Incorporated” and produced Heroes V, in 3D. Reviews were mixed, and they released alot of patches.
Now I haven’t played Heroes V so I’m not going to pass judgement on it. It’s been out for long enough now that it’s probably stable. So I might see if I can pick it up at retail if my crappy old video card can support it (probably not) – There’s a demo available but at 660mb, who can be arsed?
However, this is all just background information to what I really wanted to say, as not one, but two pieces of Heroes related news has come to my attention.
First of all Heroes of Might and Magic Kingdoms has been announced, a massively multiplayer strategy game played in a browser. It looks interesting for sure, but I dunno? There’s an interesting beta-sign up process where you have to enter the barcode on your boxed copy of Heroes V
As well as that a remake of the game that spawned the entire series is in the works – That’s right a sequel to King’s Bounty, entitled King’s Bounty Legends. Some screenshots available at gamespot. And a trailer here. The game looks quite good, and even though it’s in 3D, the art is quite stylized – I just hope I can speed up the attack animations, which probably look cool the first time but really, really get on your nerves after the hundredth.
I’ve been working on algorithms for randomly generating dungeons.
My project Caverns of Underkeep is a Roguelike, and one of the features of all roguelikes is that they have randomly generated dungeons. There are two different flavors of dungeon generation and I’ll explain how they work in this article – Surprisingly the simplest algorithms can often produce the best results.
Here is a screenshot from a typical Cave map
The way this type of dungeon is generated is as follows:
- Start with a completely unwalkable surface, then draw some randomly sized circles in random places – These circles are going to be water areas.
- Perform a couple of random walks from the centre of the map, if we fall off the side of the map stop walking.
- Locate tiles that are dead ends. (Any tile that has only one walkable tile as a neighbour) At these dead ends place a circular style room. Use a basic turbulence* algorithm to alter the shape of the room.
- Locate a few other tiles that are part of a corridor – And not part of a room (To do this just work out how many unwalkable tiles are in the area immediately surrounding the tile you selected – If the number is greater than 2, then the tile must be part of a room and not part of a corridor) and randomly place some more circular rooms at these locations.
*A basic turbulence algorithm for drawing a shape is if say – You are going to draw a rectangle, then draw it as normal but determine randomly if you are going to draw N more rectangles with slight x and y offsets to give a more interesting shape to your rooms. See the image below for an example.
The second type of map is a Citadel – A typical screenshot is bellow.
This algorithm is pretty much the exact opposite of the one above.
- Instead of starting with some random walks, I divide the map into 10×10 sections. Doing this gives it that more deliberate man made look to it.
- Determine if I want to place a room here – If I do, note it’s location in a big list of rooms.
- Draw a random rectangular room (with turbulence)
- Once all the rooms have been drawn, consult my list of rooms. For each room draw a corridor between that room and the nearest room. Once a corridor has been drawn from a room, remove it from the list of candidates for nearest neighbour (otherwise we could get stuck in an infinite loop)
Both algorithms are guaranteed to be completely connected – Which is a really important thing to have in a roguelike. There’s nothing worse than not being able to complete the game because of the random generator – Bad computer, no biscuit!
In Caverns of Underkeep I also take a hybrid approach to generate the sewer levels. Basically I combine the two algorithms to produce another style of dungeon – See if you can work this one out for yourself
Plugged the first load of sound effects into the game today, and for the most part they work quite well. In the weekend I went around to a friends house and we used a microphone and an audio effects processor to create a bunch of sound effects.
It was my first time creating sfx from scratch – And well, we didn’t have much of a clue really. We just banged stuff together and pitch shifted a bunch of vocals. My favorite noises were the Orc sounds, which aren’t in the game yet but when we were recording them the dog took exception and started growling at our down-pitched grunts.
Getting the SFX to sound decent whilst not blowing up the filesize has been a bit of a problem. To tackle this I’ve made all the SFX mono and most are 22khz 16 bit, with the occasional 11Khz sample. The sound effects that have the least ‘going on’ are more suited to downsampling – I’d suggest avoiding 8bit samples as much as possible, as they can introduce a nasty hiss, which really affects the sound quality.
So far I’ve added about 200kb to the download size with the small number of SFX I’ve added. Bringing the total filesize of the game to 700kb – I’d still like people on dialup to be able to play, but surely they’re used to waiting for everything by now
I’m going to try to make the game less than two megabytes, but it’s gonna just get harder the more stuff I add.