PDA

View Full Version : Cyber Crisis [Canceled]



WILL
09-10-2006, 09:39 PM
In an effort to revive my 'first' :o platform game project, Cyber-Crisis, I've decided to make an official post about it.


http://www.pascalgamedevelopment.com/files/news/2006_10_09_cybercrisis.jpg

Gameplay & Concept: I'm not trying to break too many boundaries with this game, just bring back to life the kind of side scrolling platform fun I used to have when I was a kid. Only now with today's newer hardware capabilities and design techniques the experience will be greatly enhanced.

The game will have a familiar set of controls and action that have been seen in several platform style games. Inspired in part by games like MegaMan, Contra and Metroid.

Gameplay will focus on completing stages to unlock new areas to finish the game. You will be able upgrade your character with new armour, basic systems, special features and different weapons.

Graphics: I'm going pre-rendered 2D sprites with lots of particle effects. Hopefully if all goes well, I'll have nice panoramic backgrounds pre-rendered characters, cutscenes and menus to create a really amazing feel to the game. The main character will also change his appearance as you upgrade your character, take damage, etc. The enemies and bosses will each have their own unique look and feel to them as well.

I'm hoping to have quite the diverse world to explore.

The Game Story: You are a prototype robot based on revolutionary new technology developed by a brilliant scientist who had intended to use it for good and honourable purposes.

However as fate would have it, the good doctor was hunted down, killed and his research stolen by a militant organization ran by a power-hungry madman. Fortunately for you, and for all that is decent still, the good doctor found out of those wanting his demise and put in place emergency measures to be carried out in case of such an even.

In the evacuation however, the escaping convoy carrying his prototype work was attacked and was assumed lost.

60 years later, one of the partially complete prototype robots, you wake up to find a darker world that awaits you.


Kas is my principle artist on this project, but if others feel that they would like to have a go at something, please let us know.

I'll also need a musician somewhere down the road. but won't actively seek out anything until we're a bit further along (much easier that way!)

There is a basic engine in place so far, but nothing near what I'd need for a 'Proof of Concept' Alpha yet. We're focusing on programming and graphics right now.


Early concept design & artwork can bee seen here(concept art) (http://www.pascalgamedevelopment.com/viewtopic.php?p=16184#16184) and here(early design ideas) (http://www.pascalgamedevelopment.com/viewtopic.php?p=12332#12332) and here (story development) (http://www.pascalgamedevelopment.com/viewtopic.php?p=12614#12614)!


Project was canceled on June 26th, 2007!

Robert Kosek
09-10-2006, 09:55 PM
Heh, glad to see that you haven't yet abandoned this idea. Gonna have any guns? :twisted: I wanna use some high powered weapons if you're going to put them in...

WILL
09-10-2006, 09:59 PM
I'm thinking of taking real world stuff and ammending it with what we'll likely be seeing in the next few years, then taking it to a level that requires a bit of imagination. :)

But in short lots of crazy effects, BIG 'booms', thunder and fire and energy blasts galore. Provided that I can make the particle engine run well. I could use a tip or two from the NecroSOFT guys though. I like their style. ;)

You guys will love the underwater complex idea I have in my head. :D This game is going to be bea-U-tiful!

Traveler
10-10-2006, 07:47 PM
Nice!

Can't wait to see where this is going to :)

jasonf
10-10-2006, 11:00 PM
This is the first I've seen of this game, So far I like the model for the player. Looks very much like an Anime Tron.

I too will be interested to see how this progresses.

Best of luck.

marmin
11-10-2006, 02:16 AM
Good luck with developing it.

NecroDOME
11-10-2006, 04:30 PM
I could use a tip or two from the NecroSOFT guys though. I like their style.
Thanx :) , what tips do you need?


So far I like the model for the player.
I second that!

Good luck!

NecroDOME
11-10-2006, 04:34 PM
I see you made a tile based engine? We once created a platformgame. It was build off from layers.

Layer 1: Background (clouds)
Layer 2: World
Layer 3: Player, enemys and powerups

As the world was one large bitmap, we made a collision map. A grey map, scaled down from the world bitmap. Here we can draw lines for collision.
For example: red was ground, yellow was a wall and green was a ceiling.

WILL
11-10-2006, 04:59 PM
I could use a tip or two from the NecroSOFT guys though. I like their style.
Thanx :) , what tips do you need?

Oh maybe just how I can incorporate some really nice visual effects into my engine. I'm using JEDI-SDL, OpenAL and Lazarus to develop the game. I think that maybe if I wanted to to dabble in any 3D hardware tricks I'd want to use OpenGL, but then again I'd rather stick to plain ole SDL if it's possible.

Besides that though, I'd like to know how to do some of the effects I just mentioned in a cool way that looks great on my screen. ;)


So far I like the model for the player.

Thanks guys! ;)

The visual style of the game, at least in my mind is going to be spectacular. I'm even hoping to add cutscenes if I have an animator that is up to the task.

The robot is going to look rather unique in design to the rest of the game's current era of technology. Though I'm planning on taking the same design feel to some of the main enemies as their tech was based on what the main hero's original design was. It'll be a fun thing to explore, I think.

If you guys want to see more of what I'm planning visually, you should check out the link I posted above wrt Concept artwork. ;)

WILL
11-10-2006, 05:28 PM
Ah just noticed your 2nd post. :)

Yup, it's tiled. And like what you mentioned, it's gonna have layers too.

Currently what is near fully implimented and what is planned is:

1) Background 'panaramic' Layer -- I may go animated if resources allow for it.
2) BG Tile layer -- animation capable using a single tileset texture for the whole layer.
3) FG Tile layer -- this is the layer that interacts with the player. Not animated, but contains extra data about the tilespace and how the player or other objects will interact with it.
4) Sprite objects layer -- The item, player and enemy sprites will be drawn here
5) Effects layer -- Planning on drawing all my explosions, and special effects here.
6) Foreground graphics Layer -- might double up as a 2nd effects layer(for weather like snow, fog and rain) or include special sprites or covering foreground graphics to give the maps more visual depth.


I thought about what you suggested, but I ran into some unknown territory wrt collision detection. ie. How to make it look nice when going up/down slopes or stairs yet keep the same detection 'points'. but beyond those basic issues the even greater one... who is going to render all that map the way I want it? :o Thats one or two big bitmaps. ;) (Especially for my planned 32-bit colors!)

NecroDOME
11-10-2006, 05:41 PM
You could also cut one big bitmap it onto pieces. But tiles are better (faster) with large areas.

EDIT:

About explosions: We used around 6-10 particles wich rotate, scale and fade away. I don't know what SDL can do, but I think you can manage that.

Here is a totorial of how you can make an explosion texture.
http://www.lunacore.com/photoshop/tutorials/tut008.htm
here's some more
http://www.tutorialguide.net/explosion_tutorial.html

WILL
11-10-2006, 07:40 PM
oow... I like the effects the first technique produces. :)

But can you give me maybe a little diagram and/or explaination of how you rotate or combine them yourself? Is it an 'animated' rotation or just a single still rotated version of one of the frames?

NecroDOME
11-10-2006, 07:57 PM
I'll try...

I put 6-10 particles with a random rotaion and random size (about 20-60 i think). The color is 255, 255, 255 (or FFFFFF or white)...

Then the loop:
I rotate each particle with a fixed velocity
I scale each particle with a fixed scale
(you could also slighly change the position)

I other words:
with Particles[Index] do
begin
// gravity
Velocity.x := Velocity.x + (Gravity.x *LagCount);
Velocity.y := Velocity.y + (Gravity.y *LagCount);
Velocity.z := Velocity.z + (Gravity.z *LagCount);

// Position
Position.x := Position.x + (Velocity.x *LagCount);
Position.y := Position.y + (Velocity.y *LagCount);
Position.z := Position.z + (Velocity.z *LagCount);

// Rotation
Rotation.x := Rotation.x + (RotVelocity.x *LagCount);
Rotation.y := Rotation.y + (RotVelocity.y *LagCount);
Rotation.z := Rotation.z + (RotVelocity.z *LagCount);

// Scaling
Scale.x := Scale.x + (ScaleVelocity.x *LagCount);
Scale.y := Scale.y + (ScaleVelocity.y *LagCount);
Scale.z := Scale.z + (ScaleVelocity.z *LagCount);

// Color and alpha
Frames := Particles[Index].LifeTime / LagCount;
BeginColor.r := BeginColor.r - ((BeginColor.r - EndColor.r) / Frames);
BeginColor.g := BeginColor.g - ((BeginColor.g - EndColor.g) / Frames);
BeginColor.b := BeginColor.b - ((BeginColor.b - EndColor.b) / Frames);
end;

LagCount is the the timers speed. (1000 / FPS).

WILL
11-10-2006, 09:06 PM
Ah ok.. so it scales, spins and falls all at once in one big sequence... neat. :)

Do the explosions just fall or do they rise up a bit before gravity takes them back downward?

And how slow/fast of a spin are we talking... fairly noticeable or barely noticeable?


Maybe a small animation video would clear up whatever tiny questions I have. ;)

NecroDOME
11-10-2006, 09:34 PM
Movie:

http://necrodome.homeftp.net/zooi/Particles.wmv 2.11 MB
(We need tags)

So in the video you see 4 particle emitter.

1. Particle emitter with grey texture, particles move up (50 particles)
2. Particle emitter with grey texture, this texture is made orange within the engine. Partciles don't move up, only scale a bit.(8 particles)
3. Particles rotate and scale.(10 particles)
4. Same as 3, but different texture...(10 particles)

K4Z
12-10-2006, 04:16 AM
I for one would love to see this project revived :).

I'd be happy to dig through the old art work and models, and continue to create some graphics for this game. From what I remember we kinda got a little too bogged down in the fine details while still in the concept stage :P.

I could do a post later, after I've gone through everything, and do an update on what's been done, and what things need to be done.

WILL
12-10-2006, 05:04 AM
Right on! :) Thanks, I understand the effect much better now.

However it seems that JEDI-SDL's sdlutils.pas is somewhat ill equiped to do the full effect.

There is a SDL_AddSurface(); function, but it seems that it does not scale, rotate nor allow you to alpha in or out either.

There are functions to rotate, scale and alpha, but they all appear to be seperate save for my own little addition in 'sdlutils.pas' that should show up in the final 1.0 release. But it only does rotation and alpha. :?

Anyone think they could help me add 'ADD' and 'scale' to it?

procedure SDL_RotateDeg_Alpha(DstSurface, SrcSurface: PSDL_Surface; SrcRect: PSDL_Rect;
DestX, DestY, OffsetX, OffsetY: Integer; Angle: Integer;
Alpha: UInt8);
var
aSin, aCos: Single;
MX, MY, DX, DY, NX, NY, SX, SY, OX, OY, Width, Height, TX, TY, RX, RY, ROX, ROY: Integer;
SrcColor, DstColor: UInt32;
srcRR, srcGG, srcBB, dstRR, dstGG, dstBB: UInt8;
TempTransparentColour: UInt32;
MAXX, MAXY: Integer;
begin
// Rotate the surface to the target surface.
TempTransparentColour := SrcSurface.format.colorkey;

maxx := DstSurface.w;
maxy := DstSurface.h;
aCos := degCOS[Angle];
aSin := degSIN[Angle];

Width := round(abs(srcrect.h * acos) + abs(srcrect.w * asin));
Height := round(abs(srcrect.h * asin) + abs(srcrect.w * acos));

OX := Width shr 1;
OY := Height shr 1;
MX := (srcRect.x + (srcRect.x + srcRect.w)) shr 1;
MY := (srcRect.y + (srcRect.y + srcRect.h)) shr 1;
ROX := (-(srcRect.w shr 1)) + Offsetx;
ROY := (-(srcRect.h shr 1)) + OffsetY;
Tx := ox + round(ROX * aSin - ROY * aCos);
Ty := oy + round(ROY * aSin + ROX * aCos);
SX := 0;
for DX := DestX - TX to DestX - TX + (width) do
begin
inc(SX);
SY := 0;
for DY := DestY - TY to DestY - TY + (Height) do
begin
if ((DX > 0) and (DX < MAXX)) and
((DY > 0) and (DY < MAXY)) then
begin
RX := SX - OX;
RY := SY - OY;
NX := mx + Round(RX * aSin + RY * aCos); //
NY := my + Round(RY * aSin - RX * aCos); //

if (NX >= srcRect.x) and (NX <= srcRect.x + srcRect.w) then
begin
if (NY >= srcRect.y) and (NY <= srcRect.y + srcRect.h) then
begin
SrcColor := SDL_GetPixel(SrcSurface, NX, NY);
if (SrcColor <> TempTransparentColour) then
begin
SDL_GetRGB(SrcColor, SrcSurface.format, @srcRR, @srcGG, @srcBB);

DstColor := SDL_GetPixel(DstSurface, DX, DY);
SDL_GetRGB(DstColor, DstSurface.format, @dstRR, @dstGG, @dstBB);

SDL_PutPixel(DstSurface, DX, DY,
SDL_MapRGB(DstSurface.format,
(Alpha * (srcRR - dstRR)) shr 8 + dstRR,
(Alpha * (srcGG - dstGG)) shr 8 + dstGG,
(Alpha * (srcBB - dstBB)) shr 8 + dstBB));
end;
end;
end;
end;
inc(SY);
end;
end;
end;

WILL
12-10-2006, 05:48 AM
That'd be great Kas! :)

I think what I needed next for graphics was some frames for the first few states of the main character, basic tiles and backgrounds for the tropical swamp map and small flying drone enemies to add in. They dive and chase after your character in the first stage. (No weapons or 'hand' modules so you have to jump duck and dodge them)


The list of what I need for now:

1) Complete 6 full animation sets one per 'state' (48x64 sized frames, dying can be double width)
i) Incomplete -- Without the hands.
ii) Complete/Basic -- Same as before but with hands.
iii) 1st Weapon + Firing animaition frames -- Complete version, but with either a hand or arm weapon. Maybe holding the weapon with his hand(s)? We can experiment I guess. Weapon will fire bullets not energy-based yet.
iv) Same as Incomplete but damaged
v) Same as Complete/Basic but damaged
vi) Same as 1st Weapon but damaged

Animations for each set are:
- Standing *
- Running *
- Jumpping *
- Falling *
- Climbing *
- Shooting
- Ducking
- Looking up
- Looking down
- Dying
- Pushing(things like walls or big bolders)
- Dashing
(* ones we have in part right now)

2) Basic tileset 32x32 that we can use for the swamp. Engine has two layers of tiles both same size dimentions, both layers are capable of animations, but tiles must be in sequence in the BMP. Each FG/BG layer will load it's own tileset texture so seperate them into two BMP files. All tileset textures, like with the sprite frames have a single row and each frame is determined by it's column. (Easier to calculate the rect for the frame!) I'll need the following types of things included in these tilesets.
i) The ground dirt, mud, grass, rocks, etc...
ii) water and typical ambient effects
iii) trees and plants and roots
iv) cave walls and insides (when you start out... and maybe a little nook to hide in or find the hand upgrade in.)
v) basic 'test arena' or playground room stuff for experimnting with boss fights, etc...
vi) anything else that comes to mind

3) Flying drone sprite that contains the following type of animations
i) basic moving around
ii) attacking dive / swooping down

Basically I'll leave the creativity of the 'flying' drone robot up to you. :) Just keep it looking as believable as our main character and what concept art I've shown before. I put this in now for some bit of fun. But a big swarm of these things should at least 'scare' the player. ;)

If you have any questions or need more info on something that I left out or was forgotten, just PM me. :)

WILL
12-10-2006, 07:32 AM
Ok here is my first attept at creating a function or JEDI-SDL that will support rotation, add and fading in/out by alpha.

http://upload4.postimage.org/1370778/weirdaddpixeleffect.jpg (http://upload4.postimage.org/1370778/photo_hosting.html)

On the left is the SDL_AddSurface() results and on the right side is my own function. (Rotated 45 degrees + Alpha = 133.)

I used the above function, but with SDL_PutPixel() changed to SDL_AddPixel() instead. Obviously not what I'm after though... :?


EDIT: Nevermind, I'm just being an idiot. :lol: It works now.

http://upload4.postimage.org/1370951/addcalcfixed.jpg (http://upload4.postimage.org/1370951/photo_hosting.html)

The Alpha value is taken from the dst and then I mix that color with the src to make the new R, G and B... well I didn't think of this... the dst values have to be BLACK to calculate it's transparency level properly. :P

Oopsie! :D

Well I'm sort of half way there at least now. Problem is that this function is way to CPU hungry... :?

I comment it out I get about 51-53 FPS uncomment it and it's down to about 36-38 FPS... I'd really like to speed this function up a bit if anyone is willing to help.

NecroDOME
12-10-2006, 08:21 AM
Render it with yhardwour GPU...

WILL
12-10-2006, 08:43 AM
I've created this thead (http://www.pascalgamedevelopment.com/forums/viewtopic.php?p=26072#26072) in the JEDI-SDL forum to sort out issues with my functions.


Does SDL not have a scale/rotate/add function?

WILL
14-10-2006, 12:51 PM
Hey Kas, check your PM messages! :) (I have to talk to Dom about making the Messages button in the mini menu flash again...)


Well it seems that I am going to be changing what I do with graphics and instead use OpenGL. I'll still use SDL for it's other functions though. My favorite being the Input features.

I just have to get adjusted with it first. (Reading the 'Red Book' on OpenGL.org, NeHe tuts and some of the ported demos in JEDI-SDL.) I'll likely use OpenGL through SDL to start with sticking with 2D.

We'd have to see about Cyber-Crisis 2 being in 3D though. :P But who knows...

WILL
18-10-2006, 09:15 AM
Woohoo! Cyber Crisis now uses OpenGL! :D

Kas and I both converted the engine to OpenGL this last week or so. And we are really happy with the results. We also changed packaging of the sprites, with his suggestions, so that we can take full availability of the alpha channel in our sprites AND amke our sprites any size we so wish now. (they look a lot nicer in the engine with alpha blended edges)

I am also now free to do all the cool special effects I want (of course within practicality :P) this includes NecroDOME's helpful tips on explosions. :thumbup:

Hopefully we'll see a lot faster progress on the engine now that we have the 'hard parts' out of the way. I'll keep you guys up to date as we get closer to a firm alpha...

tanffn
18-10-2006, 11:17 AM
Any chance you can post some more info regarding the transition between the SW render to OpenGL? Are you using any lib? Any chance for some template code? (I am also “stuck” in the SW 2D phase)

NecroDOME
18-10-2006, 12:58 PM
C O O L :P

savage
18-10-2006, 01:47 PM
The robot reminds me of the robot from I, Robot.

grudzio
18-10-2006, 06:29 PM
Any chance you can post some more info regarding the transition between the SW render to OpenGL? Are you using any lib? Any chance for some template code? (I am also “stuck” in the SW 2D phase)
Take a look at http://www.delphigl.com/. They have very nice SDK with SDL-GL framework and lot's of other interesting stuff. (The site is in german but they have english section).

WILL
18-10-2006, 07:16 PM
If you are serious about OpenGL, I strongly recommend this book: OpenGL Programming Guide (http://www.rush3d.com/reference/opengl-redbook-1.1/) aka 'The Red Book'.

The older versions are availible online through the OpenGL.org site or if you want the latest stuff the 5th Edition is in book stores or Amazon.com. ;)

K4Z
19-10-2006, 01:59 AM
Yep, as WILL said, Cyber Crisis now uses OpenGL for rendering, so apart from a major speed increase 8), we can take advantage of OpenGL's 3D infrustructure and do perfect rotations, scales, alpha blending, and all the other OpenGL goodness :P.


Any chance you can post some more info regarding the transition between the SW render to OpenGL? Are you using any lib? Any chance for some template code? (I am also “stuck” in the SW 2D phase)

I just replaced WILL's SDL code (setting up Rects, and blitting), with standard OpenGL calls, for binding textures, and drawing triangles, (after setting OpenGL to ortho view and turning off dept tests etc)

I'd be happy to post some sample code.

tanffn
19-10-2006, 07:26 AM
I'd be happy to post some sample code.

That would be fantastic! Thanks :)

K4Z
19-10-2006, 03:03 PM
I'd be happy to post some sample code.

That would be fantastic! Thanks :)

I set up a thread for a 2D OpenGL demonstration. :wink:
It's pretty much the same technique that's been implemented in Cyber Crisis now.

2D OpenGL Demo (http://www.pascalgamedevelopment.com/forums/viewtopic.php?p=26398)

WILL
20-10-2006, 06:40 PM
A Little Update: *whew* I've got the Cyber-Crisis engine busting out at a full 177 FPS! :P

Working over all my older code, weeding out the bugs and cleaning up all the glitches. I think I'm in a 'happy state' with it right now. :)

I've got all my tile drawing/animation routines in. And the Level Editor is pretty functional. The coolest feature I think though is the ability to send the player to 'heaven' by simply walking on a tile. I set my gravity and max fall rates for each tile, which will allow for me to easily do some neat little tricks with the game physics in parts of my levels.

Next thing will be to start Teleporter drawing... (will also include the features of a level exit. allowing me to make 'complete' and functional game maps)

WILL
14-05-2007, 08:46 PM
A profile for Cyber-Crisis has been added to the Great Games Experiment site.

Cyber-Crisis Profile (http://www.greatgamesexperiment.com/game/cyber-crisis)

WILL
26-06-2007, 05:26 PM
At this time I am announcing that this project is now canceled.

I know, I know, it had such a neat story. Well I might pick it up later on in some other form. But to be honest, it's unlikely going to happen for a very long time.

Truth is content requirements are just way too high and I'm not able to obtain the art or artists on the scale that I'd like so that ends that.

I'd be willing to release the source for both the incomplete engine and editor if anyone wants to see how to start a platformer?

It uses Lazarus, SDL and OpenGL...

pstudio
26-06-2007, 07:34 PM
Free source is always welcome. At least it may help beginners on their way into game development.

However the game sounded cool so it's a shame it wont be finished.

WILL
26-06-2007, 07:46 PM
Yeah, it was a great little story. I guess if I ever catch a writing bug I have a story to flesh out in print huh? :)


This code could make a nice base for any kind of platform oriented project actually... From a Mega Man clone to the next Soldat. :) A working (though half complete) editor helps for design purposes too I guess.

btw, you know that you can run and jump inside the editor right? :)

NecroDOME
26-06-2007, 10:08 PM
2 bad... screenies looked nice!

paul_nicholls
27-06-2007, 12:58 AM
At this time I am announcing that this project is now canceled.

I know, I know, it had such a neat story. Well I might pick it up later on in some other form. But to be honest, it's unlikely going to happen for a very long time.

Truth is content requirements are just way too high and I'm not able to obtain the art or artists on the scale that I'd like so that ends that.

I'd be willing to release the source for both the incomplete engine and editor if anyone wants to see how to start a platformer?

It uses Lazarus, SDL and OpenGL...

Hi Will, I would be interested in looking at the source code :-)
Sorry to hear it was cancelled :(
cheers,
Paul.

WILL
27-06-2007, 02:36 AM
Sure no problem Paul. I've already collected the sources and files it uses. I'm just deciding if I should attach some kind of license to it or not.

I'm not really a huge fan of long winded licenses. I'd love for you guys to use it for whatever you want, especially commercial games, but so long as you don't try to cop the title Cyber-Crisis or mimic the title character as your own. :P

I guess you can call it the 'Don't steal my IP ideas or I'll send a Large Army of Crayfish after you!' license. :evil: The rest (meaning the code), is all yours though. :thumbup:


So uh.. yeah, thats the license... obey it... or... else! :roll:


Ok heres the code: Download (http://www.pascalgamedevelopment.com/will/cc_source.zip) (1.44 MB --no seriously, it is...) 8)

paul_nicholls
27-06-2007, 06:43 AM
Sure no problem Paul. I've already collected the sources and files it uses. I'm just deciding if I should attach some kind of license to it or not.

I'm not really a huge fan of long winded licenses. I'd love for you guys to use it for whatever you want, especially commercial games, but so long as you don't try to cop the title Cyber-Crisis or mimic the title character as your own. :P

I guess you can call it the 'Don't steal my IP ideas or I'll send a Large Army of Crayfish after you!' license. :evil: The rest (meaning the code), is all yours though. :thumbup:


So uh.. yeah, thats the license... obey it... or... else! :roll:


Ok heres the code: Download (http://www.pascalgamedevelopment.com/will/cc_source.zip) (1.44 MB --no seriously, it is...) 8)

You are a champion! :-)

PS. perhaps you should add a (R) or (tm) to the end of that cool license name! :lol: ;-)

cheers,
Paul.

WILL
27-06-2007, 07:09 AM
;)

Might not be the 'best' platform engine base there is, but it works alright. Just let me know if you create anything cool with it.

WILL
28-06-2007, 09:37 PM
Something that I've left out of the C-C source package is my Keymap Generator tool that creates the KMP keymap files for all of my games.

You'll find that using it with my Input unit is rather easy once you get the hang of it.

Here is the link: Download (http://www.pascalgamedevelopment.com/will/KeyMap_Generator.zip)