[bb] Project PLASMA FPS 2004: How To Get Started Guide. by Techlord [ 1+ years ago ]

Started by BlitzBot, June 29, 2017, 00:28:43

Previous topic - Next topic

BlitzBot

Title : Project PLASMA FPS 2004: How To Get Started Guide.
Author : Techlord
Posted : 1+ years ago

Description : HOW TO GET STARTED WITH <a href="../Community/posts7f5b.html?topic=39819" target="_blank">Project PLASMA FPS 2004</a> and <a href="../Community/postsbb60.html?topic=42211" target="_blank">PersistantWorld3D</a>.

Theres a lot going on with the Project, so to find out what you can help with take a gander at their TODO List. If there is a Task that you would like to assist another on, let them know and collaborate.

The Guidelines below are provided to assist Community collaboration.  Happy coding and welcome to the team.


Code :
Code (blitzbasic) Select
******************************************************
CODE MODULE CONVENTIONS
******************************************************
When submitting code modules for incorporation into PLASMA 2004
please ensure that the following standard is used when naming your
module and public functions.  

Syntax:
[Object][Purpose] (ie: ClockSet)
[Object][Property][Purpose] (ie: ActionIntSet(myaction,index,255))
[Object][SubObject][Purpose] (ie: DatabaseRowNext(db))
[Object][SubObject][Property][Purpose](ie: CameraRumbleXSet(camera,2.0))

This naming convention applies to all Constants, Global Variables
, Arrays, Types, Functions, and Labels to prevent code conflict.

******************************************************
CODE MODULE INTEGRATION
******************************************************
All code modules should be stored in a independent *.bb and provide
a Function for Initialization, Game Loop Update, and Termination
(Memory Removal) to be used in the Main.bb. These are the only functions
allowed in the main.bb.

Main.bb Example:

.ENGINE_INCLUDE
Include "player.bb"
Include "bots.bb"

.ENGINE_START
playerStart()
botsStart()

.ENGINE_UPDATE
While Not KeyHit(1)
botsUpdate()
playerUpdate()
UpdateWorld()
RenderWorld()
Wend

.ENGINE_STOP
playerStop()
botsStop()

******************************************************
CODE/MEDIA FILE STRUCTURE
******************************************************
TBD. Proposed File Structure. Need your input.

<Root>
    <Engine><Application> (source code)
        Main.bb
        OtherCodeModules.bb
    <Game> (media, scripts, dat files)
        Engine.exe
        <Data>
            <2D>
                <Textures>
            <3D>
                <Maps>
                    map.b3d;*.3ds
                    map.dat
                    prop.b3d;*.3ds
                    prop.script;*.dat
                    map.jpg;*.png,*.jpg (textures)
                <Players>
                    player.b3d;*.3ds
                    player.jpg;*.png,*.jpg (textures)
                    player.script; *.dat
                <Weapons>
                    Weapon.b3d;*.3ds
                    Weapon.jpg;*.png,*.jpg (textures)
                    Weapon.script; *.dat
                <PowerUps>
                    powerup.b3d;*.3ds
                    powerup.jpg;*.png,*.jpg (textures)
                    powerup.script; *.dat
            <Audio>
                <Music>
                    musicfiles.wav;*.ogg,*.mp3,*.mid
                <SoundFX>
                    soundfiles.wav;*.ogg,*.mp3,*.mid
        <Server>
            Server.scripts
        <Client>
            Client.scripts
            <UI>
                ui.jpg;*.png,*.jpg (images)
                ui.script;*.dat
    <Tools>
        Tool.exe; Tool.bb
    <Docs> (.html format)
        <Engine>
        <Game>
        <Tools>

******************************************************
CODE MODULE REMARKS
******************************************************
Functions should provide remarks that describe their purpose, parameters,
and return value. This information will be used to produce documentation.

Example:

Function botScan(this.bot)
;Purpose: Performs collision check between the bots scancone
; and all the players bodies. If TRUE the bot will attack.
;Parameters: bot object
;Return: None
For player.player = Each player
If MeshesIntersect (thisscancone%,playerentity %)
thisstateofmind%=BOT_AI_STATE_ATTACK%
this arget=playerentity%
Exit
EndIf
Next
End Function


Comments : none...