Sourcemod

From Wikipedia, the free encyclopedia

Please note, the information on this page is from the source code as well as information directly provided on the official project website. The article awaits information from the developers.

SourceMod[1] is an open-source, cross-compatible SourceMM (the Source engine version of Metamod) expandable scripting plug-in, managed by David "BAILOPAN" Anderson.

Contents

[edit] Overview

SourceMod has the ability to develop plug-ins in SourcePawn (a re-write of Pawn, a typeless 32-bit language), on top of a well designed interface that allows software to access many low level components of the Source Engine (certain compatibility issues exist for the Orange Box SDK). The plug-in is currently still in beta stages, but proves to be stable, and maturing.

[edit] How it works

The plug-ins use native machine code, as well as JIT compilation that allow for cross-compatibility. More specifically, the compiler converts the code into a type of machine code (sometimes called OP code based complication) Because of this technique, as well as certain programming habits, the benchmarking of these plugins[2] (done versus EventScripts) putting SourceMod's speed up with other popular low-level languages such as C/C++ and Java.

[edit] Elements

SourceMod consists of different elements to allow customization and smooth operation.

[edit] Core

The core is the main build of SourceMod, which contain the back-end code, as well as any interfaces that are considered vital enough to be included as core content. Please note, just because an interface may not be included in the core build, it may very well still be packaged with the download by default.

[edit] Extensions

The second level of SourceMod is the extension system, which allows adding on to SourceMod as a C/C++ exposed plug-in. There is also the ability to expose the extension as a SourceMM plug-in as well. One of the most noted features of the extension system is the ability to expose native functions, one of the major advantages of using JIT machine code. For example, SourceMod should not have the responsibility of including a plug-in to call engine based functions by default. Creating a native wrapper around the base function is allowed, and encouraged, to expand the abilities of Source scripting.

[edit] Plug-ins

The plug-in system is what makes up SourceMod's administration system[3], as well as tons of plug-ins that come out for SourceMod. The compiler turns the code into machine code, and when SourceMod's core gets a hold of it, JIT complication takes its course and turns it into operating assembly. The plug-ins rely on SourcePawn's back-end as well as the native system that allow access to nearly all of SourceMod's functions.

[edit] Developers

The list of the developers directly from SourceMod's credits page[4].
Name: David "BAILOPAN" Anderson
Job: Project Manager, Lead Developer

Name: Borja "faluco" Ferrer
Job: Senior Developer

Name: Scott "Damaged Soul" Ehlert
Senior Developer

Name: Michael "ferret" McKoy
Plugin Developer

Name: Phong "teame06" Dang
General Developer

[edit] Controversy

[edit] EventScripts

Due to the somewhat harsh benchmarks advertised around SourceMod and EventScripts website, there was some debate on whether they should be removed, in concern to the EventScripts community's feelings. David, as well as the rest of the developers and community, decided to keep it on the server, but keep the discussion to its technology-based advantages, rather than bragging rights. David shows interest in both plug-ins, as he is active in both SourceMod and EventScripts IRC channels.

[edit] References

N00bsalad.net Sourcemod Mirror Download

Languages