SWGEmu Old Forums Archive  

Go Back   SWGEmu Old Forums Archive > Announcements > Bi-Weekly Updates

Notices

Bi-Weekly Updates Bi-Weekly Updates are SWGEmu's cornerstone updates, posted every two weeks.

 
 
Thread Tools Rating: Thread Rating: 2 votes, 5.00 average. Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 07-01-2008, 02:42 AM
Ramsey Ramsey is offline
Administrator
DeveloperAdministrator
 
Join Date: Dec 2006
Location: VA, USA
Posts: 714
Bi-Weekly Update 6/30/08

1) Update Overview: (TOC)
-Lair Updates
-Status of Missions
-Combat tweaks and additions
-New Admin Commands / System
-Script Changes
-Image Designer progress
-Cloners

2) Body:

Lair Updates:
The old lair code was revised and overhauled by panchjr. Lair's can now be spawned through LUA script, which will tie in nicely with mission scripts. Those interested in spawning their own lairs should take a look at the code/scripts added in this commit.

-------------------------

Status of Missions:

The mission manager class is well under way. I (Ramsey) am responsible for doing this and currently revising the "Mission map" used for keeping track of the available missions and assigning them to players. I am testing out a method I have devised with this map to save object ID space, and overall decrease memory usage significantly.

To elaborate, SOE treats each mission like an individual object in the world (like creatures, players, items etc). While doing this fits nicely into their current protocol and object scheme, it can be an extreme waste of server resources if handled the way I suspect they do on the official servers. Normally, each object in the world is assigned a unique ID, instanced, and deployed into the world. Imagine assigning an ID and instancing EACH mission for EVERY player that needs it....that's resources we are not willing to spare for a trivial object such as a mission.

Instead of doing the same with mission objects in Core3, I have decided to only initialize missions once with their own key (thats unquie & descriptive - set in script) and simply reuse the object for every player that needs it. The initialization would only take place if the mission is even required in the entire galaxy, of course. The key would be a small abbreviation that can identify each mission from one another, for example "Ramsey's Delivery II" could have the key of "rd2" (the server would obviously check for key collisions). Each mission in use by active players would be inserted into the object pool ONCE with ONE object id for every player to reference. The SOE method would keep track of mission progress by the individual object ID, which would mean every single player that is on the mission would have their own mission in the object pool. While it may be slightly easier to keep track of progress this way, it is by no means the only way to go about doing things.

Now, if we are treating a players mission the same as everyone else - how will we keep track of individual mission progress?

Aside from tweaking the mission map stuff, I am drafting methods to make a "checkpoint" system work. At certain intervals - or portions of the mission - a "checkpoint" is saved at the server/database. The goal of the checkpoint system is to save the most accurate state of a player's journey throughout a mission while cutting down on the resources required to do so. Overall, saving a missions progress is fairly easy as far as the server is concerned. The only thing the server needs to worry about is saving the 3-4 byte "key" and a byte for a corresponding mission checkpoint. Whenever a player connects, the server pull's the mission state data and with those 4-5 bytes of data, find's the mission object needed with the key (which is linked the current mission's world object ID) and at what point the player left off at (checkpoint byte). The mission object, which is only in the object pool once, is sent to the client and appropriate checkpoint items are spawned. Much better than inserting a new object into the zone for every player that is on "Ramsey's Delivery II", isn't it?

To sum up the system:
Each mission object is treated as one entity as far as the server is concerned, no matter how many players are on the particular mission. The general information about the same mission is distributed to every player that needs it under the same object ID, while the state of a mission per individual is filled in later using a "checkpoint" system. The usage of a new mission state/checkpoint system eliminates the need to insert the same mission object into the pool, which in SOE servers has been used to store the mission state. Using the same object in the server cut's down on the number of objects the server has in the pool, therefore directly decreasing the amount of system resources used.

-------------------------

Combat tweaks and additions:

Commit 415 and 414.

Kellina, Arioch, Smusatto (and others, I'm assuming) have made big contributions to the combat related scripts; updating with correct skill ranges, adding the majority of combat spams, and fixing a few skills. What made SWG PreCU so magical was how "correct" and balanced the entire game was (from what I've heard ). Updating scripts which require no programming knowledge go a long way into perfecting the overall PreCU picture. We encourage SWG players of all kinds (casual to hardcore) to look through scripts and fill any pieces of data with correct values. We cannot stress enough the fact that ANYONE can contribute to the project, regardless of skill with computers/programming. You are a submit a way to creating a better precu!

-------------------------

New Admin Commands / System:

Commit 406 and 410.

We touched base on developments in the Admin field last update, which is still continuously being improved. Two new commands have been added and we have changed the admin listing system to be pulled from a file, instead of in a cryptic if statement. Kellina and bobius are behind the following changes:

@summon: The ability to summon a player to the admin...for further questioning.
usage: @summon <SUPPLY PLAYERNAME OR CURRENT TARGET>

@warpPlayer: The ability to warp a player to the nearest starport, hotel, shuttleport, medical center, bank, garage, or salon.
usage: @warpPlayer <SUPPLY PLAYERNAME OR CURRENT TARGET> <starport> <hotel> <shuttle> <medical> <bank> <garage> <salon>

@grantAdmin / @removeAdmin: The ability for current admins to grant a player temporary admin rights.
usage: @grantAdmin / @removeAdmin <Player Name>


Server admin's are no longer listed in an if statement, but now pulled from a list on server start. The "adminusers.lst" file (located in the bin directory) contains the names of server admins the server will grant admin rights to.

-------------------------

Script Changes:

Commit 413.

The never ending flavor of the week: Script additions. The Core3 scripting system will always be improved, and there is no escaping it! Scripting will be the driving force behind SWG content - and its surprisingly easy to contribute something to the project using scripts. Bobius has converted every single lua item to an object oriented format for the sake of unity and maintainability. Future server admin: You should seriously be taking a look at scripting development and familiarizing yourself with them. If you haven't taken a look at the scripts in awhile, I highly recommend you browse them sometime this week and see if there is anything you can improve/add - it really isn't hard!

-------------------------

Image Designer progress:

Commit 408.

McMahon has been chipping away at Image Designer, if you haven't noticed for the last month+. He now has color changes and tip amount showing up. Commit 408 also contains various internal improvements, which can be viewed in finer detail using the link above. If you see McMahon on IRC - Image Designers (well, everyone really) should be thanking him for his hard work and continued persistence in the area. ID ftw?

-------------------------

Cloners:

It's always nice to see old faces return to the scene. Zstars from the RevZ/Core1 days makes an awesome return with the start of Cloning interfaces/classes in the Core3 code. He is currently working on basic cloning stuff in ticket #139. You can track his progress by regularly looking into that ticket. His ticket is an excellent show of the beauty in the trac system. Wish him luck in the area of cloners - hopefully we'll see the ticket bearing ingame/TC fruit soon!

-------------------------


3) Developer Perspective: ("Round Table")

Quote:
Ramsey:

Well I hope I filled everyone in as to what I'm doing right now, so hopefully I'll have rough pieces of the final product to show in the next update. If for any reason the wording used in my mission explanation is not clear/flawed and confusion is created, send me a PM in IRC.

Personal life (This stuff was requested so I'll try to make it a habit to post anything of interest that is going on with me outside the internet world):

I will be in Virginia from 6/1 - 6/8 checking out places and getting familiar with the area (see my previous round table entries for moving info). I'm not sure on whether or not I will have access to the internet, so worst case scenario I'll pop in at baggage claim on the 1st and 8th (between some rounds of CSS, of course). I will continue to work on some of the mission stuff, although I'm not sure how long a single compile would take on a laptop. It takes 8 - 10 minutes on my desktop, so I'm assuming the flight over would be a good time to find out.
Quote:
Panchjr:

I am back from my two weeks working in Madrid and ready to rejoin the fray.

My main priority is to sort out despawning of lairs as this is not working properly at the moment. Currently only static lair spawns are implemented so my next priority will be to implement dynamic spawning of lairs for the mission team and a @spawnLair command for testing.
Quote:
Bobius:

I've had a few people ask me why I haven't been around as often lately, so I guess I should fill everyone in. I haven't left the project or anything. I'm managing a summer camp in Mississippi. As you can imagine that is very time consuming, so I haven't been able to update as often or hang around on IRC. I'll be back in full capacity starting August 1st. When I return, expect quick development on a leveling system.
Quote:
Kyle:

Sorry for the lack of updates. I have been on vacation and my summer classes are killing me. I have rewritten most of the crafting system to include a number of changes. I expect to be able to show it on the next update *crosses fingers*. It is pretty dang exciting.
Quote:
McMahon:

I just got back from a vacation in Zihuatanejo, Mexico - so no progress to report in the last two weekends. I hope to get a good chunk of the sliders done for Image Designer this upcoming weekend. I might be needing some warm bodies *cough* I mean qualified research and testing personnel to help with some research - so grab me on IRC Saturday/Sunday (7/5, 7/6) morning if you can help.
-------------------------

4) Closing:
-------------------------

Welcome Back

If you haven't noticed, over the week Smusatto and PhantomLeader were away on vacations, They both returned about two days ago, so everyone here at SWGEmu would like to welcome them back from their trips

-------------------------

We have been following this update format for a few months now, and I personally would like to hear what you think. If you have any changes you would like to see in the BiWeekly Updates - please send me a SINGLE well thought-out sober PM. Title it "BiWeekly Update suggestion" - I'll make sure to read it and share it with the rest of the team.

Long live PreCU,
Go Team SWGEmu!
__________________
┌( ಠ_ಠ)┘
SWGEmu is a non-profit, open source community project.

Last edited by McMahon; 07-01-2008 at 09:18 AM. Reason: McMahon's update
 

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT -4. The time now is 03:57 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
All Contents Copyright © 2004-2010, SWGEmu.