Monthly Archives: July 2011
I decided to call my game Infiniworld, which I can’t pronounce properly because I’m French. There are a few hits on Google for that word but I don’t really care as they don’t seem important *grins*. One of the hit is actually a GitHub repository by me ! Which I am going to wipe out veeeery quickly because it’s totally outdated, ugly, empty and you’re going to freak out. And then I’ll recreate it again, clean and all, for you all to look into as we progress.
Infiniworld is a very generic name for a game. It’s because it’s not just a game, but a game that lets you take part in its creation, creating new experiences and therefore new games. Infiniworld can make many worlds, probably googolplexes of them. I may do the maths one day but until then it’s safe to assume that infinity is the exact number.
As I mentioned in my previous post, the world of the game is procedurally generated. It is not new:
- The world of Daggerfall was procedurally generated at Bethesda’s HQ and then burnt onto the CD, ensuring that all the players had exactly the same world. I don’t want that. I want the players to be able to create their own worlds.
- Minecraft generates the world on the fly as you explore, but it’s not like you can choose what’s in it. You can edit it, but you cannot say in advance that you want to play on one tiny island. However the game lets you choose a seed, and if you enter the same seed you should get the same world. I want to do more than that.
- Fuel makes pretty landscapes for you to drive through. It does not generate scenarios or quests.
- Nethack’s dungeons are procedurally generated, but it doesn’t care about the game being winable or not. I was stuck once on level 1 in a closed room with no secret door and no tool to dig the walls. I want to do better: not just a dungeon but a world as well. And to be frank, Nethack is silly. I love it, but what a mess…
- Diablo: same story, all the time.
- etc, etc, etc…
Procedural generation is often limited to the landscape. I want to push it further. We could push it to the max and have even the textures and the music procedurally generated, as well as the game play, the user interface and absolutely everything, but that’s a job for a titan. I want a middle ground: generate the landscape AND the adventure taking place in it. The scenario will be procedurally generated.
One game will be about bringing hard-to-come-by precious resources to some kingdom so that it does not need to invade yours any more. The next one will be about killing that bitch of a princess and free all the dragons. Another one will bring you through the Swamps of Pestilential Doom to the necromancer who will resurrect your uncle so that you can torture him into revealing where he hid his fortune.
See where I’m going ? There is probably some way to generate a story from story-bricks. You have one main objective, and to get there you need to go through many steps. It does not need to be linear, there can be branches, there can be several ways of ‘winning’. We are going to write the algorithm to create the story from the story-bricks.
Which leaves us with the question: who will create the story-bricks ? Me, you, anyone who can program and write a script for Infiniworld to import and include in its database.
Many elements in the game will be part of that database: equipment, items, monsters, playable characters, story, quests, puzzles, tilesets, sound effects, dungeon layout, dungeon rooms, shops, planet, magic spells, etc.. It should be possible for the players to create their new game elements and exchange them with their friends. Then Infiniworld picks some of these elements, letting the player choose some (we don’t want to spoil all the surprise do we?), and shakes it all together to come up with a brand new game. Want a ten minutes solo adventure or an epic 70 hours multiplayer saga ? Infiniworld will give you just that.
Indeed, getting started is the easy part. What’s really tough is to keep going till it’s finished. I’m not talking about the blog I’m just starting to set up, gosh no; the blog is just a tool, a gadget, a by-product of the Great And Amazing Project.
Amazing the project is indeed: we are going to build a computer game. It is going to be wonderful. Each step of the project will bring so much satisfaction and delights that the end product will be nothing less than orgasmic. Convinced ? Let’s get started then. And let’s finish, at some point.
The game we are going to build here will be seen from above, like the old Zelda games. I don’t want to dive into 3D because I’ve never done it before (well YES I did, but before 3D video cards existed. Remember Doom ? I did stuff like that a bit). I want to retrieve some of the feelings I had when I was playing Daggerfall: vast world, lots of exploration and freedom, one main quest with several branches, many quests, dungeons, towns, castles, role playing, inventory/resources management, etc.. And I want it multiplayer so that I can play with my friends.
But mostly, I want it:
- procedurally generated
- according to the players wishes.
Procedural content is the holy grail of game development. I want to be able to sit in front of my computer, run my game and ask it :
“Please make me a medium-size world with ten dungeons. I want a lot of islands. And no orcs, I can’t stand orcs anymore so just no orcs in the game, same for goblins, none at all. Go easy on the puzzles, and super easy on the fighting because I mainly want to explore and don’t want my ass kicked this time. And oh yeah, do use this new ‘spider caves’ tileset my friend photoshopped for me, and this Spider Queen monster that I scripted.”
and press the “Let there be light.” button.
Wouldn’t that be grand ?