nuclide/Documentation/Progs.md
Marco Cawthorne d41b90c081 Base: Give some love to base/
VGUI-Menu: friendList, chat backend, textview class proto
SurfaceProps: Flesh impacts recognition
PropData: BreakModels now use a bodyque to limit possible physics overhead
PMove: falldamage, liquids can now be configured via external decl
NSWeapon: added alternative punchangle based on springs, 'punchSpring X Y Z' in decl
API: Team class management APIS
NSPhysicsEntity: Optimised, optimised, optimised. New cvar: phys_lowspec. Scraping, impact effects etc have been added.
More polish everywhere else
2025-01-02 18:53:55 -08:00

1.8 KiB

Progs

Progs are binary files containing bytecode that contain platform and architecture indepenent programs.

We generally refer to them as progs.

Our SDK is built using QuakeC as the language of choice, as that's where the engine-provided API is the most powerful and there is a great deal of history of games using it.

Server-Side QuakeC

The main game-logic module, first introduced with Quake (1996). It is involved with the core game entities, triggers, and decides what monsters, items and weapons are allowed in the game and how they are used. In Nuclide, the server game is tightly coupled with @ref entitydef to make everything streamlined for content creators and developers alike.

Client-Side QuakeC

Largely responsible for visual effects and the overall presentation. A large chunk of the client-side code is spent executing shared code between client and server. Player movement, weapons and vehicle input is shared between client and server to ensure smooth network play.

Additional Progs

We offer multiple types of progs the game-logic can load/unload at runtime.

You will generally find them within your <gamedir>/progs directory.

They are optional. So if you want to handle everything internally, you can.

But if you're worried about keeping up with changes, you may want to depend on their stable APIs and extend your game using modules as the main method of feature-injection.

  • [HudC](@ref hudC) powers our client-side, hot-pluggable heads-up-display.
  • [AddonC](@ref addonC) is our server-side plugin system.
  • [MapC](@ref mapC) handles server-side map-oriented tasks and logic.
  • [RuleC](@ref ruleC) is responsible for the shared, global set of game-rules.