DOCUMENT PURPOSE
This purpose of this project plan is to outline the tasks and deliverables required to reach various developmental milestones . With this plan we will be able to better gauge what progress has been made as well as what tasks and deliverables need to be completed.
DOCUMENT HISTORY
***IF YOU EDIT THIS DOCUMENT IN ANY WAY WHATSOEVER PLEASE ADD AN ENTRY HERE ***
*** IF YOU EDIT THIS POST PLEASE DON’T SCREW UP THE SPACING OR FORMATTING. THANKS IN ADVANCE ***
July 30, 2006 (Anzel): This is the initial project plan for SWG EMU. It is meant to be a framework for the other members of the EMU team as well as the EMU community to build upon. PLEASE NOTE: This first draft is subject to revisions by other members of the team based solely on their subjectivity and digretion.
July 31, 2006 (Anzel): Added information regarding EMU TRE.
July 31, 2006 (Antman): Zone and Login Servers ARE separated as much as need be.
I. PROJECT ARCHITECTURE:
- a. TIERS: The EMU is currently a 3 tier application (see below).
- i. TIER 1: Zone Server
ii. TIER 2: Login Server
iii. TIER 3: Database Server
b. LAYERS: Perhaps the most important aspect of this plan is to better define the logical layers that the EMU implements.
- i. Database Layer (DB Layer): This is currently a MySQL database. The purpose of this layer will be to store and manage galaxy data for the EMU. The MySQL database will contain all of the tables and stored procedures necessary to support the remaining layers.
ii. Data Access Layer (DAL): The DAL will be the only interface between the DB layer and the rest of the application. For the MySQL implementation of the EMU the DAL should make use of SQL Stored Procedures rather than the use of inline SQL. All layers above the DAL should NOT have any data access code whatsoever.
iii. Packet Delivery Layer (PDL): All of the network packets required to be sent between the EMU client and server are to be defined in the PDL. Any other module or object that has a need to deliver or receive network packets should reference the PDL.
iv. Galaxy Definition Layer (GDL): All of the objects required for the login server and galaxy server tier should be contained in the GDL. GDL objects should reference the PDL and DAL in order to maintain complete functionality.
c. SUPPORTING APPLICATIONS: In addition to the server distribution we will also need two key support applications in order to achieve our development goals.
- i. EMU Launcher: This application will allow a user to manage a list of Galaxies to connect to. Currently our official EMU Launcher is Jump To Freedom by Ravatar.
ii. EMU Administrator: This application will allow a server administrator to control the galaxy database through the use of a forms application rather than directly editing the MySQL database.
iii. EMU TRE: We will need a small application to pack resources into a SWG .tre file which the client will recognize and read. This will allow servers to repackage assests from other publishes such as faction armor and expansion rewards as well as custom paintings, clothing, etc.
II. PROJECT SCOPE:
Since the goal of this project is to emulate publish 13 of SWG the items which are considered to be in scope will be defined by the TASKS AND DELIVERABLES section below. SWG publish 13 was a product that had undergone over 4 years of development and it would be impossible to recreate all of its systems and features in a reasonable amount of time. Therefore we are going to need to be judicious when choosing which systems to include in the first version of the EMU.
- a. EXCLUSIONS: The following systems and features will be explicitly excluded in the first version of SWG EMU.
- i. Crafting
ii. Creature Handler / Pets
iii. Vehicles
iv. Shuttles
v. Resource Mining
vi. Entertainer Buffs
vii. Image Design (as a profession)
viii. Politician
ix. Player Cities
x. Jump To Light Speed
xi. Dungeons
xii. JEDI
III. TASKS AND DELIVERABLES
- a. Login Server
- i. DB Layer Tasks
ii. DAL Tasks
iii. PDL Tasks
iv. GDL Tasks
b. Character Creation
- i. DB Layer Tasks
ii. DAL Tasks
iii. PDL Tasks
iv. GDL Tasks
c. Zone Server
- i. Zone Insertion and Removal
ii. Zone Range
iii. Zone Update
iv. Zone Stability and Load
v. Movement
vi. Chat System
vii. Tells
viii. Emotes
ix. System Messages
x. System Broadcast
xi. Player Attributes (HAM)
xii. Player Skills and Skill Modifications
xiii. Player Titles
- 1. Set title using /setcurrentSkilltitle
2. Set title using UI
3. Restrict titles based on player skills
xiv. Player Items (Inventory)
- 1. Clothing
- a. Clothing Customization
i. Set Color
2. Consumables
3. Buffs
4. Weapons
5. Tangible Items
6. Containers (Backpacks)
xv. Waypoints
- 1. Create Waypoints
2. Auto-warp/Shuttle?
xvi. Trade System
xvii. Bazaar System
xviii. Mail System
xix. Combat System
- 1. Base Combat
- a. Trainers
b. Special Attacks
c. States
2. PvP
3. PvE
xx. Mission System
- 1. Non-Faction Missions
2. Faction Missions
3. Quests
xxi. NPC System
- 1. NPC Wild Spawns
2. NPC AI
3. NPC Loot System
xxii. GCW
- 1. Faction Recruiters
2. Faction Ranks
3. Faction Rewards
xxiii. Player Housing
- 1. Place Structure
2. Name Structure
3. Admin/Entry List
4. Structure Maintenance
5. Decorate Structure
6. Destroy Structure
7. Reclaim Structure
8. Move Structure???
xxiv. Player Guilds
- 1. Place Guild Hall
2. Create Guild
3. Name Guild
4. Guild Permissions
5. Member Management
6. Disband Guild