NEW: Check out the latest post of mine in this thread. There's a new release with a really huge host of new features, as well as a youtube video showing you how to implement it.
Hey there. I hope this doesn't count as advertising. I've got a working FPS engine and I wanted to put up a link because the purpose of making it was to put it out for public use. After SCII came out I went looking for an FPS engine to use during my campaign, and I idn't find any of them available to my liking. I realized other people would probably have the same problem. So I figured the only thing to do was to develop one myself so that other people looking for an engine and not finding any to their liking have another option.
Here's the link.
There will be a demo map later tonight or tomorrow. Just import the library, close the library, and then make a camera. set its properties to be appropriate for an FPS. I suggest field of view of 25 to 30, distance of 1, z offset of 0.7, pitch of 0. There's a global variable called 'Camera'. It has no default value yet. Click it and navigate to the tab labeled 'value' In that tab will be your camera you just made listed along with any other cameras in the map. Select the camera you just made with the above specs. Hit okay. You just assigned the camera you made to be the default value of the global variable 'Camera'. Hit the 'test map' button. Right click to zoom in, spacebar or left mouse button to fire, wasd to move, mouse to look around.
I suggesst before you test the map you make some clifs near the camera you made. Give it a ramp too. Also, place a goliath or two, a siege tank in tank mode, and some marines. For a building try an orbital command, one landed and one flying. and for a good measure, put a science vessel and some marines. The reason I list these units is because the way the traceline works, you have to save a real value under the string of a unit type's name for the unit to be hittable with a projectile. The value you are saving is the unit's height. So a marine is about 0.8 tall, whereas an orbital command is about 2.8 tall. The units I listed above (marine, tank mode tank, science vessel, goliath, orbital command) are the only ones I've put in values for yet.
Anyway the purpose of the cliffs and those units:
When testing the map, try walking into a cliff. Then try walking into a unit. These won't happen because of my built in pathing system. Now try walking up the ramp. That will work, because of the pathing again. Now try shooting. Use the period and comma keys to cycle through the weapons. There's four weapons right now, one for each type of weapon. There's instant weapons, demonstrated by the rifle, that are so fast there's no visible projectile. Then there's projectile weapons, represented by the rocket launcher. There's AoE constant weapons, like the flamethrower (constant means as long as you hold down the firing key/button it will cycle through a period of firing followed by a short cooldown), and finally linear constant, demonstrated by the autocannon, which is basically the projectile operator but instead of being a one shot weapon it will continue to shoot projectiles out for as long as you hold the space button.
The trigger library is filled with comments t explain what things do.
It is easy to make a new weapon, becaue there's a template. Copy it and then adjust the values to what you want. Make sure you increase the number of the [WEP] array variables by 1 every time you add a weapon. And then finally in the weapon library folder go to the initialization trigger and set the [WEP](Newweapon ID) to [Newweapon] etc. You'll see examples of what I'm talking about in that trigger. That trigger is also where you go to see how I input the heights for the units and to add your own values for units I haven't gotten around to.
Finally, none of the weapons does damage, because the damage effects I made for them don't export with the trigger library. You can do a quick and dirty job by setting the '[weapon's name] Damage' effect game link variable to a unit's damage. However, that will make its own impact graphic appear as well. So what you really want to do is create or copy a new damage effect, set the damage to whatever for whatever weapon, and then erase its graphic actors. This wil do damage without showing any effects, because the impact effects are handled by the weapon operators and the weapon data variables as '[weaponname] Projectile' and '[weaponname] impact'.
Let me know if you have any problems. I'm downloading a screen video capture program right this minute to create a youtube video of how to import the library and how to implement it. Creating a camera an setting one single variable is a small price to pay in work for a full FPS engine to work, but for newbies that don't know triggering a video might be just the trick. Also there's gonna be that demo map.
Like I said do let me know if you're having any issues with it.
EDIT: Also I feel I should mention I also have a WASD trigger library that just sets some booleans that can be integrated into any map, an FPS camera system without weapons or tracelines, and soon to be uploaded also a pure traceline library, and a standalone version of the weapon library I use in this FPS for use in side-scrollers, dungeon grinds, or with other FPS/TPS engines. The WASD and camera libraries are already up under my backlitavenger account under assets on sc2mapster, and the trace and weapon libs will be up as assets under my name shortly as well. As soon as enemy AI and vehicles are integrated into this FPS engine (vehicles already working in my main FPS map, just not libraries yet) I plan on releasing the final FPS/TPS engine and then beginning work on a diablo-esque dungeon grind engine.
EDIT AGAIN: V1.1 has some important bugfixes, and that's now up there. Also, the demo map is up, so check it out to see it implemented.




Reply With Quote

