Community Project: FPS
This is the Wiki homepage for the Unity Community Project: Multiplayer FPS. We are currently in the design process, and updates will be made here as well as our forum topic.
Until further updates are made, please refer to our forum topic.
Section I - Game Overview
Game Concept
A well thought out, well designed, fun example project made by the Unity community, for the Unity community. More specifically, a multiplayer FPS with modular components, vehicles, modular levels, AAA quality graphics (whatever that really means anyhow), great gameplay, Quake3 style server based gaming, etc.
Feature Set
We're looking at a full featured multiplayer FPS here. Complete with character skins, game modes, admin tools, vehicles, numerous weapons, and open source map format.
Genre
Multiplayer FPS. Reminiscent of both Halo and Quake, combining the strong points of both.
Target Audience
Game developers and gamers alike. Trying to gather a similar audience to that of the Q3 mod UrbanTerror, as well as getting players who also play large studio FPSs.
Note: It has been proposed that this project become an Open Source base for any users wishing to figure out exactly how a basic FPS works.
Look and Feel
Have any of you ever seen the show Firefly? Or read the Science Fiction novels of C. J. Cherryh? We're aiming for a high tech, realistic style. Slightly grimy and utilitarian overall, but with some areas of modern design style. Everything feels well used, durable, and efficient. Everything is slightly worn on the edges. You know the style. Overall, this isn't going to be a horror movie style game. No excessive violence (ex Quake 4), super dimly light levels (well, some, but not to the point where the whole game is played with a flashlight on). However, this isn't going to be as cheery and clean as Halo 1.
Project Scope
– A summary of the scope of the game.
Hard Numerical Data
Number of Locations Number of Levels Number of NPCs Number of Weapons
Section II - Gameplay and Mechanics
Gameplay
Game Progression
Mission/challenge Structure
Objectives
– What are the objectives of the game?
Play Flow
– How does the game flow for the game player
Mechanics
– What are the rules of the game, both implicit and explicit. This is the model of the universe that the game works under. Think of it as a simulation of a world; how do all the pieces interact? This will possibly be a very large section.
Physics
– How does the physical universe work?
Movement
General Movement
Other Movement
Objects
Picking Up Objects
Moving Objects
Actions
Switches and Buttons
Picking Up, Carrying and Dropping
Talking
Reading
Combat
– If there is combat or even conflict, how is this specifically modeled? Are combat sequences made known to the user in certain ways (other than flying bullets); such as action styled music?
Economy
– What is the economy of the game? How does it work?
Screens
Screen Flow
Screen Flow Chart
– A graphical description of how each screen is related to every other
Screen Descriptions
– What is the purpose of each screen?
Main Menu Screen
Server Setup Screen
A simple, clean, intuitive one or two screen process for setting up a server. Simple enough for the average gamer to set up their own server, but powerful enough to allow experts to configure the server "just so."
Server Administration Screen
Also like the setup screen in that it is simple enough for the average gamer to administer their own server, but powerful enough to allow experts to run it "just so."
Options Screen
Game Options
– What are the options and how do they affect game play and mechanics?
Replaying and Saving
Recordable gameplay based on saved packets. Every match saved by the server so the player can access them immediately after the match to show everyone that perfect shot.
Contributor Rewards
People (usually) don't like working for nothing, so why not give contributors some kind of reward? A good example is Halo, where the developers get their own special helmets.
Section III
– Story, Setting and Character
Story and Narrative
- Specific details like scripts and cut scenes may not be in this document but be in the Story Bible.
Back story
In the year 2134, Earth has become overcrowded. Searches have been made for habitable planets beyond the Solar System, and at last one has been found. Explorers have named this planet 'Proxima'. The planet is uninhabited, and although it contains no life, it is ripe with all of the resources needed for colonization.
Shortly after terraforming began, three major factions have emerged, all vying for power over the planet's future. Tensions escalated, despite the best efforts of the international government. Fights turned to skirmishes. Assassinations, raids, and ambushes soon followed. Warfare is imminent. The fate of humanity hangs in the balance.
License Considerations
IF you have an awesome idea, please make sure that there aren't any major license considerations. If we are notified of issues post release, we can work to rectify them.
Removed: Content relevant only to single player mode.
====Plot Elements==== ====Game Progression==== ====Cut Scenes==== =====Cut scene #1===== ======Actors====== ======Description====== ======Storyboard====== ======Script====== =====Cut scene #2===== ======Actors====== ======Description====== ======Storyboard====== ======Script======
Game World
General look and feel of world
The game will take place on Proxima, a far away alien planet. Terraforming has only recently begun on Proxima; as a result, some areas will resemble Earth, with green vegetation and water, while other undeveloped areas will be mostly bare rock and ice. In addition, some gameplay may occur on nearby moons or planets, or on space stations/ships.
Area #1
General Description
Physical Characteristics
Levels that use area
Connections to other areas
Area #2
General Description
Physical Characteristics
Levels that use area
Connections to other areas
Characters
Note: Parts of this section may only be necessary for the single player mode.
Universals
Animations
Lists all character animations (not weapon, enemy, item, or vehicle animations). If you see that there are missing animations, please add the missing ones.
Movement
Walk, run/jog, sprint, crouch, grab ledge, jump, fall, ledge shuffle (hanging from arms), climb ladder, climb pole, crouch-walk/shuffle, go prone, prone shuffle, stand up, Punch, etc.
General Items/Weapons/Vehicles
Enter vehicle (specific to vehicles), change weapon (specific to weapon type), drop item/weapon, pickup item/weapon, push, flip vehicle, etc.
Character Specific
Back story
Personality
Look
Physical characteristics
Animations
Special Abilities
Relevance to game story
Relationship to other characters
Statistics
Section IV – Levels
Level #1
Synopsis
Introductory Material
(Cut scene? Mission briefing?)
Objectives
Physical Description
Map
Critical Path
Encounters
Level Walkthrough
Closing Material
Section V - Interface
Visual System
HUD
Overall look and feel of the HUD. (Simulation of a projection onto the inside of a face mask? Will have to ensure that it doesn't clutter too much of the view.)
Menus
Rendering System
Camera
Lighting Models
Control System
– How does the game player control the game? What are the specific commands?
Audio
Music
Sound Effects
Help System
Section VI - Artificial Intelligence
Opponent AI
– The active opponent that plays against the game player and therefore requires strategic decision making (example, Civilization or Chess, how is it to be designed?
Enemy AI
– Villains and Monsters
Non-combat Characters
Friendly Characters
Support AI
Player and Collision Detection
Pathfinding
Pathfinding using AngryAnt's Path system
Animation blending
Animation blending will be accomplished by Rune's Locomotion System
Section VII – Technical
– This may be abbreviated with most in the Technical Bible.
Target Hardware
Intel and PPC based Macintosh and Windows computers, with every level of graphics capability. From integrated graphics to the latest NVIDIA chipset.
Development hardware and software
Engine: Unity3D Modeling: Your software of choice, as long as the final format is .obj Texturing: Your software of choice. Photoshop is advised, with the final format as .psd Audio: Again, your software of choice. Contribute your files in an uncompressed format (Not .mp3, .ogg, etc.)as they can be compressed if necessary.
Development Procedures and Standards
Code
Only clean code will be accepted. Messy code will have to be cleaned up for submission. The preferred language for this project is JavaScript. (C# and Boo are also acceptable, but JavaScript is preferred). All code must be well commented.
Further standards will be added.
Models/Animations
No messy models/choppy animations! Only clean, well designed animations will be accepted. Models should have multiple LODs (Level of Detail), following industry standards. Have not yet decided on the number of LODs, but here are the min/max.
Characters: LO: 500 HI: 30,000
Weapons: LO: 50 HI: 10,000
More to be added.
Network
Long section waiting to be typed up and put in here. Update soon.
Section VIII – Game Art
- This may be abbreviated with most of the content in an Art Bible.
Concept Art
Style Guides
Characters
Environments
Equipment
Cut scenes
Miscellaneous
Section IX - Secondary Software
Editor
Installer
MacOSX installations will use a .pkg installer, while Windows will use an .exe.
Update software
Section X - Management
Detailed Schedule
Due to the nature of this project and its contributors, it would be unwise to devise a schedule that is too detailed; we're not a dedicated team, and as such it could not (excuse the lack of faith) be adhered to.
Budget
Risk Analysis
Wut? What's the risk? No budget, no reputation... Nada.
Localization Plan
English will be the initial language. Depending on how the language is implemented, translation teams could possibly help expand this.
Test Plan
Very important.
Testing will be conducted by a team of hand selected testers with access to the latest build of the project. Frequent builds will also be given out to the Unity Community as a whole. Applications for testing are now open! PM Dakta.
Appendices
Keeping track of everything.
Asset List
All assets used in the final product, listed in blue. Unincluded assets listed in red. Most assets will be available for individual download, as well as the source for the whole project.
Art
Model and Texture List
Animation List
Effects List
Interface Art List
Cut scene List
Sound
Environmental Sounds
Weapon Sounds
Interface Sounds
Music=
Ambient
“Action”
Victory
Defeat
Voice=
Actor #1 lines
Actor #2 lines
Meta
Idea Holding area
Some thoughts about everything:
[CODE] Hmm... Can we use JavaScript? If possible, it is the preferred language. All code must be commented fully. Like, pretty basic stuff, but not labeling variables (unless they aren't obvious). The idea is that this code is straightforward, robust, easy to understand, and easy to modify, so that anyone can use it as code for a final release or as a basis for their own work. I love the idea of us all working together to create the best code we can! It's awesome! We have the knowledge and experience or experienced programmers along with the excitement and enthusiasm of the novice, it's awesome!
[ART] Since it's said above that we're going for a slim future look, I would suggest sleek-suited marines. Around a slimmed down Master Chief, or something. It just would not fit to have someone with heavy armor from a game like Gears of War, slapped in the middle of a highly (technologically) developed society.
[ART] Since we will need all sorts of art, I will compile a list of everything we will need (not including levels, however it would be great if a couple could be created as examples of how a level has to work).but that would have to be discussed.
[ART] Perhaps for the characters you could go for something like a Mass Effect 2 look and for the weapons it would be theme fitting to use laser instead of bullets
[LEVELS] We will need a robust system for levels. I think our needs can be best server by furthering the universal level format (i forget who is working on it, but if anyone can find it, please link to it) to include everything necessary. Using the universal level format, games based on this project could easily support a level mod community for people without Unity, which would increase the community for any games based on this project.
There should be at least three base levels. One example level, where requirements and possible featured can be showcased in a very simple manner (particle effects, doors, animated stuff, water, etc.) so that it can be easily understood. There should also be two well designed playable levels at least so that people can actually have fun playing this when it is finished. All levels included should be commented, and the example level should definitely have a level designing tutorial document contained with it.
[WEAPONS] Each weapon contains a script that controls that weapon, it's location-rotation, and it's animations. It stores the number of clips, rounds, etc., along with a weapon ID number. It gets input directly from the user, fires a shot, tells the server, plays an animation, updates the GUI script (which updates the GUI), changes the number of rounds/clips left, and stays idle. Each "bullet" contains the weapon ID which the server/other player references to a prestored list and then inflicts damage accordingly. This way, the player firing the gun can't cheat by modifying the packet to say that the bullet does 200% damage, or by shooting too many shots in too rapid a succession.
[WEAPONS] Weapons each have a game object attached to the handles. The player also has a game object in the hand where the handle goes. The weapon script or a custom animation script tracks the location of the weapon, and when it is in use, tracks the player's hand to the correct position. When the weapon is being changed, the weapon is tracked to the location of the hand until it is holstered, where it begins to track another point on the player in the holster. There it remains until it is selected by the player.
[WEAPONS] When the player wants to switch weapons, the weapon handler script (weapon controller script), disables the current weapon, plays it's holstering animation, animates the hand to the next holster/pouch, animates the weapon being drawn, and then activates the next weapon script once it has done all that. It also tells the GUI controller that the player is in the process of selecting a different weapon, and which weapon they select. The GUI script then displays the stats for the selected weapon. With bullets it would also be good if we could have penetration; a la modern warfare.
@Penetration: I have seen this implemented elsewhere and it didn't seem to be too difficult; replicate motion and orientation details, subtract a bit of damage, and add a contact image to the wall. --Exitus 16:36, 14 June 2010 (PDT)
[PLAYER CUSTOMIZATION] I think, to go for simplicity, cleanliness, and performance, we should go with a number of base character models. Each character model should have a couple of levels of detail, from Quake Live to insane poly counts (min 500, max 30,000?). For customization, I will draw from the quake3 mod UrbanTerror (UrT for short). In UrT, the player can choose 'funstuff' for their character. 'Funstuff' is a collection of models that attach to reference points on the character model, augmenting the look. For example, a Sonic the Hedgehog hat could be classified as 'funstuff.' This allows the player to personalize their character's look, without having to do anything fancy with the player model itself.
[GEAR/ITEMS] There should be a number of fillable item/weapon slots that the player can choose the use as they like(borrowed from UrT among others). The player can then spawn with the weapons and items they want, instead of having to hunt the map for them. There should be a medic pack (heals self faster, and heals others faster and more [borrowed from UrT again], weapon silencer, laser sight, extra ammo (increases the number of clips spawned with and the number a player can carry), grenades (smoke, flashbang, HE (high explosive)), , body armor, increased head armor, tactical/heat/night vision goggles, or empty. (remember, I want to make this the best list possible, so contribute!) The player also has a number of weapon slots they can fill. There is a sidearm slot that will always be filled with a handgun (maybe with +inf ammo), two secondary weapon slots (only one can be filled during the selection process), and one primary weapon slot. In addition, there are four gear slots that can be filled with any combination of items.
[GEAR/ITEMS] We should also have some kind of C4, just for fun!
[GEAR/ITEMS] Perhaps instead of an infinite ammunition sidearm having the ability to punch or knife enemies. Also not sure if it would fit the theme but throwing knives would be good for rogue like characters.