02-14-2011, 12:06 AM
Targets, Goals and Priorities
We are going to release one last version of the current gamemode. This version will address all known issues.
After this we will start on a new open source version: LVP: Remixed. This will be on google code and will be a total rewrite of all the core and most of the features. We will be porting over some handlers though.
This is going to be developed in 3 phases:
Phase 1:
- Core*
- Skins, Spawns, Vehicles*
- User account system*
- Administration*
- Minigames:-
Deathmatch Handler* - Sawnoff, Rocket, Sniper, Minigun, Grenade, Random, WalkWeapon
Hide and Seek
Robbery
RWTW
- Spawn Weapons*
- Races
- Properties
- Bank*
- Ship safety zone*
- Taxi system
- Gangs
- Reaction tests
- Fightclub
- Essential Commands: /commands /help /me, /tp, /ctp, /my, /time, /rules, /credits, /changelog *
Phase 2:
- Exports
- Derbies
- /chase minigame and killtime
- Taxes*
Phase 3:
- World Features*
- More essential commands, like /call etc*
- Tutorial*
Phase 4:
- This will be the start of the new features. We will hold a further meeting when we get to this stage.
* Items marked with a * will be rewritten.
We are going to release LVP Remixed as each phase is complete. The first phase will have an ETA of 3 months. Each phase thereafter will have an ETA of 1 month.
We will develop the core first of all and use the YSI libraries to speed up the process. YSI has the following features:
y_commands*
y_ini*
y_timers*
y_hook*
y_testing
y_scripting -
y_stringhash
y_als
y_bintree
y_bit
y_debug*
y_master
y_utils*
y_flooding*
y_classes*
y_colours*
y_groups*
y_td*
We will only use the libaries marked with a *.
For more information see the YSI topic:
http://forum.sa-mp.com/showthread.php?t=185611
The core will be written in PAWN. It will be divided into two parts.
![[Image: lvp_remixed.png]](http://ww3samp.com/jay/LVP/remixed/lvp_remixed.png)
Minigames will be handled from a seperate core which will be discussed as development of that begins.
Rules, Policies and Documentation
A new rule will be introduced effective to all developers: Every developer must make at least two commits a week or one ticket, or, show evidence of dev work. A Notices of Absence board will be setup in the development forum boards shortly.
New coding policies will be introduced and enforced:
Formatting
- One level of indentation equals 4 spaces, no tabs should be used.
- The opening curly brace of a block should be on a new line. Everything inside the block must be indented to the next level, of course excluding the closing curly brace.
- Binary operators (operators with 2 operands) must have a single space on either side of them.
- Opening parentheses must be preceded by a single space, but not followed by one. Likewise, closing parentheses must not be preceded by a space.
- Commas must be followed by a space, but not preceded by one.
Naming
- The names of all variables functions and methods should start with a lowercase letter, all subsequent words must have their first letter capitalized.
- Variable names must be as descriptive as possible.
- Do not use the Hungarian notation.
Style
- You must have knowledge of the core and the functions contained within it. These will be clearly documented on the trac. You must not use repetitive code. If a function already exists in the core, use it! Don't write your own.
- The core will have functions for formatting strings and most other everyday tasks such as sending simple textdraw messages, countdowns or debugging. You must use these functions where possible. If you need to, for example, send a different textdraw message with a different style, you should amend the core function to support this to allow for flexible use in the future.
- Variables must be local where possible.
- Array sizes should be kept to a minimum to keep the compiled amx small. If an array index value does not exceed 108, you should use the char operative to save memory.
Documentation
- The core will have dedicated wiki pages for every single function that it consists of with a full and frank explanation of the function together with comments in the source and a commented native call of the function so that it shows up in the PAWNO function list.
- When opening a new file it must contain a header detailing the contents and purposes and the authors / contributors. The header will also include a standard license.
How NOT to comment
- Each function should include a minor explanation of what the function does. However, do not over- comment. Let me pick out an example from the IV:MP source:
That is pointless commenting. It's pretty obvious what the function does by the name alone. Instead this should have been commented like so:
- Looping
This is an area with a lot of debating and speculation. For looping we will be using the foreach library which is included in the YSI libraries as this is the most efficient and certainly the most popular method around.
Recruitment
We are going to open up a child board in the Las Venturas Playground Related Subjects board for development recruitments. In that board will be a stickied topic explaining the application process. Players will have to fill out a basic form:
A new childboard will also be setup in the dev forums so that we can discuss each applicant.
Once all that is setup, we will then create a new topic in the SA-MP Forum Scripting Discussion board to promote this and hopefully attract potential new applicants.
We are going to release one last version of the current gamemode. This version will address all known issues.
After this we will start on a new open source version: LVP: Remixed. This will be on google code and will be a total rewrite of all the core and most of the features. We will be porting over some handlers though.
This is going to be developed in 3 phases:
Phase 1:
- Core*
- Skins, Spawns, Vehicles*
- User account system*
- Administration*
- Minigames:-
Deathmatch Handler* - Sawnoff, Rocket, Sniper, Minigun, Grenade, Random, WalkWeapon
Hide and Seek
Robbery
RWTW
- Spawn Weapons*
- Races
- Properties
- Bank*
- Ship safety zone*
- Taxi system
- Gangs
- Reaction tests
- Fightclub
- Essential Commands: /commands /help /me, /tp, /ctp, /my, /time, /rules, /credits, /changelog *
Phase 2:
- Exports
- Derbies
- /chase minigame and killtime
- Taxes*
Phase 3:
- World Features*
- More essential commands, like /call etc*
- Tutorial*
Phase 4:
- This will be the start of the new features. We will hold a further meeting when we get to this stage.
* Items marked with a * will be rewritten.
We are going to release LVP Remixed as each phase is complete. The first phase will have an ETA of 3 months. Each phase thereafter will have an ETA of 1 month.
We will develop the core first of all and use the YSI libraries to speed up the process. YSI has the following features:
y_commands*
y_ini*
y_timers*
y_hook*
y_testing
y_scripting -
y_stringhash
y_als
y_bintree
y_bit
y_debug*
y_master
y_utils*
y_flooding*
y_classes*
y_colours*
y_groups*
y_td*
We will only use the libaries marked with a *.
For more information see the YSI topic:
http://forum.sa-mp.com/showthread.php?t=185611
The core will be written in PAWN. It will be divided into two parts.
![[Image: lvp_remixed.png]](http://ww3samp.com/jay/LVP/remixed/lvp_remixed.png)
Minigames will be handled from a seperate core which will be discussed as development of that begins.
Rules, Policies and Documentation
A new rule will be introduced effective to all developers: Every developer must make at least two commits a week or one ticket, or, show evidence of dev work. A Notices of Absence board will be setup in the development forum boards shortly.
New coding policies will be introduced and enforced:
Formatting
- One level of indentation equals 4 spaces, no tabs should be used.
- The opening curly brace of a block should be on a new line. Everything inside the block must be indented to the next level, of course excluding the closing curly brace.
- Binary operators (operators with 2 operands) must have a single space on either side of them.
- Opening parentheses must be preceded by a single space, but not followed by one. Likewise, closing parentheses must not be preceded by a space.
- Commas must be followed by a space, but not preceded by one.
Code:
stock RegisterPlayerAccount( const sPlayerAccountName[], const sPlayerPassword[])
{
SendPlayerMessage(playerid, MSG_STYLE_BOX, "You have registered an account.");
return;
}Naming
- The names of all variables functions and methods should start with a lowercase letter, all subsequent words must have their first letter capitalized.
Code:
new bool:bIsPlayerRegisterd;
new iPlayerState;
new sPlayerMessage[128];- Variable names must be as descriptive as possible.
- Do not use the Hungarian notation.
Style
- You must have knowledge of the core and the functions contained within it. These will be clearly documented on the trac. You must not use repetitive code. If a function already exists in the core, use it! Don't write your own.
- The core will have functions for formatting strings and most other everyday tasks such as sending simple textdraw messages, countdowns or debugging. You must use these functions where possible. If you need to, for example, send a different textdraw message with a different style, you should amend the core function to support this to allow for flexible use in the future.
- Variables must be local where possible.
- Array sizes should be kept to a minimum to keep the compiled amx small. If an array index value does not exceed 108, you should use the char operative to save memory.
Documentation
- The core will have dedicated wiki pages for every single function that it consists of with a full and frank explanation of the function together with comments in the source and a commented native call of the function so that it shows up in the PAWNO function list.
- When opening a new file it must contain a header detailing the contents and purposes and the authors / contributors. The header will also include a standard license.
How NOT to comment
- Each function should include a minor explanation of what the function does. However, do not over- comment. Let me pick out an example from the IV:MP source:
Code:
/**
* This function registers a player.
* @author Matthias
function RegisterPlayer (playerid, Password, Email)That is pointless commenting. It's pretty obvious what the function does by the name alone. Instead this should have been commented like so:
Code:
/**
* This function first of all checks if a player is registered by querying the database.
* If not it inserts some basic player data into the database and flags the player as 'registered'
* Database fields: registered, name, email- Looping
This is an area with a lot of debating and speculation. For looping we will be using the foreach library which is included in the YSI libraries as this is the most efficient and certainly the most popular method around.
Recruitment
We are going to open up a child board in the Las Venturas Playground Related Subjects board for development recruitments. In that board will be a stickied topic explaining the application process. Players will have to fill out a basic form:
Quote:Real, Full name:
Ingame Nickname (if different):
IRC Nickname (IRC is a requirement)
Age:
Date of Birth:
Nationality:
E-mail address:
SA-MP Froum profile URL (if applicable):
Previous Experience*:
Outline the reasons you believe that you would be a good developer:
If you can provide a reference, then please do so:
* Outline any previous teams you may have worked in, any other communities you have contributed towards in terms of development, or any scripts you may have released
A new childboard will also be setup in the dev forums so that we can discuss each applicant.
Once all that is setup, we will then create a new topic in the SA-MP Forum Scripting Discussion board to promote this and hopefully attract potential new applicants.
![[Image: u5bUOcZ.png]](http://i.imgur.com/u5bUOcZ.png)