Wednesday, February 6, 2008

Introduction

So Call of Duty 4 hasn't been out that long yet, but my coworkers and I have started getting a little too familiar with all the nooks and crannies of the maps that came with the game. As I did with cod2gen my intention is to create a program that will randomly generate a "map of the day" for us to play. I find the idea of procedural content generation to be an interesting way to add infinite variety to a game. There are also a lot of very interesting programming and geometrical problems to solve to make something like this work.

I've started from scratch, using not much but ideas from the original cod2gen program, and am writing it all using the javascript programming language instead of C.

This little pictorial history will show you more about my progress and what I'm going for here than anything else:

Skybox, main roads, and dirt roads, all procedurally generated.

Placeholder blocks where buildings could go.

Four blocks deleted to show holes in terrain where the buildings sit.

Doorways added to buildings and an outer fence to prevent players from falling into the void.

A small building-less area surrounded by partial fence.

Windows added to buildings in random (not always sensible) locations. Stairways too.




So, where do I get it?
I'm going to hold off from making a public release until I've got some of the bugs worked out, and have put it in a form that can be used by people who aren't comfortable working from the dos command prompt. I am looking for technically savvy mappers and modders to do pre-alpha testing and to give suggestions for features and to answer questions and so forth, so if that sounds like you, please send me an email: pragfps@gmail.com.

2 comments:

Anonymous said...

Really Enjoyed your cod2 gen, looking forward to the COD4 version.

Jeta1

Unknown said...

It's getting pretty close now, actually. I just added support for team deathmatch and sabotage modes, and have tossed in some cars, trees, and stuff. I don't have any sort of GUI front-end, and am wondering if I should do that before making any sort of public release.