Hi guys, hoping someone can help me out here. I'm trying to make a 2D top down game where you're basically in an office that gets taken over by terrorists (no, I haven't been watching
Die Hard over Christmas, why do you ask?) and I'd like to make it in RPG Maker MV, although I am considering Unity as well.
Stealth and shooting are going to be two key components to the game. I've broken down the key gameplay elements and how I'd like them to work:
Crouch, walk, sprint - Essentially, I need to be able to set the player movement speed depending on key inputs. They can press 'Z' to crouch, this makes them move slowly and make less noise. They press 'Z' again to return to standing. If the player holds Shift they'll run, this makes them move faster but make more noise. I want to be able to have 3 separate sets of sprites for each type of movement so the player can see, at a glance, what state they're in.
Changing weapons - I want to include a handgun, machine gun and shotgun, with the player using the mouse scroll wheel to switch between the 3. I'm assuming this would be relatively simple. Get input from the scroll wheel, change the value of a variable and have 0 = unarmed, 1 = handgun, 2 = shotgun and 3 = machine gun. It would have to include some way of saying "if shotgun is in the inventory". I'd also want to use a visual equipment script so the player can see the gun in their hands.
Shooting - I know how I want the mechanic to work, but I'm no programmer. Basically, use the mouse to aim, player sprite is always facing in the direction of the mouse cursor. Left click to shoot. I'm assuming it'd have to spawn an instance of a bullet which would have to be given it's own velocity. No idea how to write the rules for collisions etc. I suppose you'd use tags? <environment> <wall> <enemy> with behaviours for each?
HUD - Needs to show HP, Stamina, currently equipped weapon, remaining bullets and remaining medi-packs. I'm thinking I can modify the HUDs from this topic:
http://forums.rpgmakerweb.com/index.php?/topic/53318-christmas-pack-12-plugins-for-your-project/
Enemies - I'll be blunt, enemy AI is where I'm way out of my depth. At first I thought I might be able to adapt Yanfly's Event Chase Player script, but on further inspection that's really made for touch encounters, not the kind of game I'm trying to build. It would need extensive modifying really. Ideally, I'd like:
- Line of sight - enemies have to be able to see you, there can't be a wall or something in the way. If possible I'd like this to extend to include the cover stance I mentioned earlier, so if you're crouched behind a crate you're invisible but if you're standing you can be seen. Not sure if that can be done in MV.
- Investigate sounds - basically, if they hear a sound over x volume within a radius of y they'll move to that position to investigate and then move back. Maybe I can Frankenstein a pathfinding script with some kind of enemy hearing script? Guessing I would have to set up terrain tags for generating sound if you move, adjust the volume depending on whether the player is crouched, walking or running and make sure the shooting script includes producing a sound when firing. This is getting complicated!
- Alert mode - essentially, if they've seen but lost track of the player or find a dead body I want them to raise an alarm, abandon their patrol routes and actively seek out the player within a set radius of where they found the body/player's last known location.
- Reacting to/fighting the player - this is where I really wouldn't know where to start coding wise! I'd like enemies to try and keep a distance from the player (after all, they're using ranged weapons), to take cover or hide around a corner or do something to try and avoid player fire. Ideally, I'd like them to be able to alert other enemies and work together.
- Drop items - when killed, I'd like them to drop ammo and health packs. I'm thinking I can use the Item Throw script from this topic: http://forums.rpgmakerweb.com/index.php?/topic/53318-christmas-pack-12-plugins-for-your-project/
This is probably asking a lot and it's likely very optimistic to assume there are existing scripts that will do these things/can be easily modified to do these things. I've started learning JavaScript but I'm literally at beginner 101 phase. My expertise has always been the creation of custom graphics, creating game design documents and level design. I recognise I may have to pay a coder or enter a split revenue partnership to get the perfect system.