1

The possibilities are endless...
Version 1.0
USER GUIDE
© 2005 The Game Creators Ltd. All Rights Reserved.
2
Contents
1 Introduction.................................................................... 6
2 System Requirements...................................................... 7
3 Installation..................................................................... 8
4 Getting Started................................................................ 9
4.1 The Game Level Editor .......................................................................................... 9
4.2 Editor Key List ....................................................................................................... 12
4.3 Making Your First FPS Game.................................................................................. 13
4.4 Making Your First Arena Game............................................................................... 22
5 The Media Libraries ......................................................... 25
5.1 Prefabs.................................................................................................................. 25
5.1.1 How To Make Your Own Prefabs ............................................................................ 26
5.2 Segments.............................................................................................................. 27
5.2.1 Segment Overlays................................................................................................. 29
5.3 Entities.................................................................................................................. 32
5.3.1 Entity Properties.................................................................................................... 34
5.3.2 Entity AI................................................................................................................ 35
5.3.3 Weapon Entities .................................................................................................... 36
5.3.4 Ammo Entities....................................................................................................... 38
5.3.5 Enemy Entities ...................................................................................................... 38
5.3.6 General Entities..................................................................................................... 40
5.3.7 Description of the general FPI scripts..................................................................... 41
5.3.8 How Doors And Switches Work.............................................................................. 43
5.3.9 Entity Explosions and Debris.................................................................................. 43
5.4 Markers................................................................................................................. 43
5.4.1 Player Start Position Marker .................................................................................. 44
5.4.2 Player Checkpoint Marker ...................................................................................... 45
5.4.3 Light Markers ........................................................................................................ 45
5.4.4 Zone Markers ........................................................................................................ 47
5.4.5 Story Marker ......................................................................................................... 48
5.4.6 Stretching a maker over layers.............................................................................. 48
6 More Map Editing Information .......................................... 48
6.1 Cursor Editing States............................................................................................. 49
6.2 Editor Indicators.................................................................................................... 50
6.3 3D Clipping Modes................................................................................................. 50
6.4 Special Media ........................................................................................................ 51
6.4.1 Gantries ................................................................................................................ 51
6.4.2 Lifts....................................................................................................................... 52
6.4.3 Teleports............................................................................................................... 52
6.5 Waypoints ............................................................................................................. 54
6.5.1 Creating a New Waypoint ...................................................................................... 54
6.5.2 Linking Waypoints ................................................................................................. 55
6.5.3 Waypoints Across Layers ....................................................................................... 56
6.5.4 Waypoint Command List........................................................................................ 57
7 Testing And Previewing Levels ......................................... 58
7.1 Test Level.............................................................................................................. 58
7.2 Level Profiler ......................................................................................................... 60
7.3 Quick Level Preview............................................................................................... 62
8 Building A Stand Alone Game ........................................... 63
8.1 Game Project Settings........................................................................................... 64
8.2 Level Settings........................................................................................................ 65
8.3 Textures................................................................................................................ 68
8.4 Arena Executables................................................................................................. 71
8.5 Build Settings........................................................................................................ 72
1
The possibilities are endless...
Version 1.0
USER GUIDE
© 2005 The Game Creators Ltd. All Rights Reserved.
2
Contents
1 Introduction.................................................................... 6
2 System Requirements...................................................... 7
3 Installation..................................................................... 8
4 Getting Started................................................................ 9
4.1 The Game Level Editor .......................................................................................... 9
4.2 Editor Key List ....................................................................................................... 12
4.3 Making Your First FPS Game.................................................................................. 13
4.4 Making Your First Arena Game............................................................................... 22
5 The Media Libraries ......................................................... 25
5.1 Prefabs.................................................................................................................. 25
5.1.1 How To Make Your Own Prefabs ............................................................................ 26
5.2 Segments.............................................................................................................. 27
5.2.1 Segment Overlays................................................................................................. 29
5.3 Entities.................................................................................................................. 32
5.3.1 Entity Properties.................................................................................................... 34
5.3.2 Entity AI................................................................................................................ 35
5.3.3 Weapon Entities .................................................................................................... 36
5.3.4 Ammo Entities....................................................................................................... 38
5.3.5 Enemy Entities ...................................................................................................... 38
5.3.6 General Entities..................................................................................................... 40
5.3.7 Description of the general FPI scripts..................................................................... 41
5.3.8 How Doors And Switches Work.............................................................................. 43
5.3.9 Entity Explosions and Debris.................................................................................. 43
5.4 Markers................................................................................................................. 43
5.4.1 Player Start Position Marker .................................................................................. 44
5.4.2 Player Checkpoint Marker ...................................................................................... 45
5.4.3 Light Markers ........................................................................................................ 45
5.4.4 Zone Markers ........................................................................................................ 47
5.4.5 Story Marker ......................................................................................................... 48
5.4.6 Stretching a maker over layers.............................................................................. 48
6 More Map Editing Information .......................................... 48
6.1 Cursor Editing States............................................................................................. 49
6.2 Editor Indicators.................................................................................................... 50
6.3 3D Clipping Modes................................................................................................. 50
6.4 Special Media ........................................................................................................ 51
6.4.1 Gantries ................................................................................................................ 51
6.4.2 Lifts....................................................................................................................... 52
6.4.3 Teleports............................................................................................................... 52
6.5 Waypoints ............................................................................................................. 54
6.5.1 Creating a New Waypoint ...................................................................................... 54
6.5.2 Linking Waypoints ................................................................................................. 55
6.5.3 Waypoints Across Layers ....................................................................................... 56
6.5.4 Waypoint Command List........................................................................................ 57
7 Testing And Previewing Levels ......................................... 58
7.1 Test Level.............................................................................................................. 58
7.2 Level Profiler ......................................................................................................... 60
7.3 Quick Level Preview............................................................................................... 62
8 Building A Stand Alone Game ........................................... 63
8.1 Game Project Settings........................................................................................... 64
8.2 Level Settings........................................................................................................ 65
8.3 Textures................................................................................................................ 68
8.4 Arena Executables................................................................................................. 71
8.5 Build Settings........................................................................................................ 72
3
9 Physics ........................................................................... 74
9.1 How Physics Works................................................................................................ 74
9.2 Creating physics based situations .......................................................................... 74
9.3 Tricks and tips when setting up physics ................................................................. 75
10 Multiplayer Death Match Games........................................ 76
10.1 How Multiplayer Works .......................................................................................... 76
10.2 Creating a Multiplayer Game ................................................................................. 76
10.3 Differences between Arena and Single Player ........................................................ 77
11 Guidelines....................................................................... 78
12 GUI Layout...................................................................... 80
12.1 The Drop Down Menus........................................................................................... 80
12.2 Toolbars ................................................................................................................ 83
13 How To Guides ................................................................ 85
13.1 Changing The Game Resolution ............................................................................. 85
13.2 Making New FPI Logic............................................................................................ 85
13.3 Making New Segments and Entities ....................................................................... 90
13.4 Making Your Own Weapons ................................................................................... 90
13.5 Customizing The In-Game Screens ........................................................................ 92
13.6 Description Of The Files Folder .............................................................................. 93
13.7 Overview Of Files And Formats.............................................................................. 94
14 Selling Your Games Made In FPS Creator........................... 95
15 Other Game Making Tools ................................................ 96
4
Credits
FPS Creator was thought up and lovingly developed over a four year period by
the following individuals:
Lead Programmer Lee Bamber
Programming Mike Johnson
Project Manager Richard Vanner
Lead Artist Simon Benge
Artist Michael Palm
Animation Simon Benge, Chris Bamber
Icon art Peter Jovanovic
Music Willem Cramer
Web Site Richard Davey
Voice Over Lee Bamber
Sarah Nielsen courtesy of Chris Blundell
Weapon Sound Effects Rick Harrison
Environmental Sounds Mark Sheeky
Manual Richard Vanner
Lee Bamber
Colin Pritchard
Testers Andrew Vanbeck, Dave Milton, David
Johnson, David Tattersall, Frederic
Cordier, Ian Mold, Jake Jensen, Jason
Dean, Jess Telford, Robert Knight, Ron
Erickson, Malcolm Bamber, Alec Moody,
David Smith, David Tattersall, Chris
Blundell, Christian Mueller, Peter Coleman,
Chris Breaux, Evan Floyd, Stephen Jolly,
Eric Tomassetti, Brentt Moore and
Timothy Ruswick.
PR Don Lewis of Foxbank PR
Sales Yolande Barbe & Simone Jenkinson of
Connect International
FPS Creator was developed using Dark Basic Professional.
Contact Information
Support
Visit the dedicated web site for the latest FPS news, add-ons, advice and much
more:
www.fpscreator.com
Join the community!
Find out what other users are doing with FPS Creator by registering and
participating within the FPS Creator online forum:
http://forum.thegamecreators.com/
3
9 Physics ........................................................................... 74
9.1 How Physics Works................................................................................................ 74
9.2 Creating physics based situations .......................................................................... 74
9.3 Tricks and tips when setting up physics ................................................................. 75
10 Multiplayer Death Match Games........................................ 76
10.1 How Multiplayer Works .......................................................................................... 76
10.2 Creating a Multiplayer Game ................................................................................. 76
10.3 Differences between Arena and Single Player ........................................................ 77
11 Guidelines....................................................................... 78
12 GUI Layout...................................................................... 80
12.1 The Drop Down Menus........................................................................................... 80
12.2 Toolbars ................................................................................................................ 83
13 How To Guides ................................................................ 85
13.1 Changing The Game Resolution ............................................................................. 85
13.2 Making New FPI Logic............................................................................................ 85
13.3 Making New Segments and Entities ....................................................................... 90
13.4 Making Your Own Weapons ................................................................................... 90
13.5 Customizing The In-Game Screens ........................................................................ 92
13.6 Description Of The Files Folder .............................................................................. 93
13.7 Overview Of Files And Formats.............................................................................. 94
14 Selling Your Games Made In FPS Creator........................... 95
15 Other Game Making Tools ................................................ 96
4
Credits
FPS Creator was thought up and lovingly developed over a four year period by
the following individuals:
Lead Programmer Lee Bamber
Programming Mike Johnson
Project Manager Richard Vanner
Lead Artist Simon Benge
Artist Michael Palm
Animation Simon Benge, Chris Bamber
Icon art Peter Jovanovic
Music Willem Cramer
Web Site Richard Davey
Voice Over Lee Bamber
Sarah Nielsen courtesy of Chris Blundell
Weapon Sound Effects Rick Harrison
Environmental Sounds Mark Sheeky
Manual Richard Vanner
Lee Bamber
Colin Pritchard
Testers Andrew Vanbeck, Dave Milton, David
Johnson, David Tattersall, Frederic
Cordier, Ian Mold, Jake Jensen, Jason
Dean, Jess Telford, Robert Knight, Ron
Erickson, Malcolm Bamber, Alec Moody,
David Smith, David Tattersall, Chris
Blundell, Christian Mueller, Peter Coleman,
Chris Breaux, Evan Floyd, Stephen Jolly,
Eric Tomassetti, Brentt Moore and
Timothy Ruswick.
PR Don Lewis of Foxbank PR
Sales Yolande Barbe & Simone Jenkinson of
Connect International
FPS Creator was developed using Dark Basic Professional.
Contact Information
Support
Visit the dedicated web site for the latest FPS news, add-ons, advice and much
more:
www.fpscreator.com
Join the community!
Find out what other users are doing with FPS Creator by registering and
participating within the FPS Creator online forum:
http://forum.thegamecreators.com/
5
FPS Creator uses the ODE Physics Engine
ODE's BSD license (LICENSE-BSD.TXT)
Open Dynamics Engine
Copyright (c) 2001-2004, Russell L. Smith.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list
of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
Neither the names of ODE's copyright owner nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
For more information, visit:
http://www.ode.org/
6
1 Introduction
The idea for FPS Creator (FPSC) was first conceived back in 2001 - it has taken
over four years to bring this project to completion. Creating a tool that makes
games for you is a fraught business, we have to cater for all kinds of complex
issues in order to ensure fast game play and end-user enjoyment. The result of
all this hard work is this first version of FPS Creator. It´s now time to share what
we have built for you - our loyal users. Now we want to see what you can do with
it and we want you to tell us how the product should develop in the future.
It has always been our main aim to provide easy to use editing tools while at the
same time ensuring the tools create quality results. FPSC will do a lot of the work
for you but it still needs you to understand good game design. So make sure you
read this manual and follow our guidelines to ensure you get the best results.
It has taken years, and it has been worth it. I pride myself on writing software
that allows the end user to achieve results in a fraction of the time it would
normally take. In FPS Creator I have created a tool that will let you create FPS
games in minutes instead of months. Its flexibility will keep you exploiting its
power for years! As it was developed in 100% Dark Basic Professional, it sits
right alongside our core technology ensuring it evolves with our other
development solutions. I must confess to you, that despite its myriad of technical
benefits, the very best feature of FPS Creator has to be the pure enjoyment you
get from creating your own games- lots and lots of games!
Lee Bamber
Lead Programmer and company founder of The Game Creators Ltd
Thank you for purchasing FPS Creator. The team here at The Game Creators are
dedicated to bringing cool game making tools to our customers. We love working
in the games industry and we especially enjoy making games. We have found
that making games can be a very enjoyable and creative experience and we´re
hoping that your creative energy and ideas can be realised with this new and
exciting tool.
With products like Dark Basic and The 3D Gamemaker we have already managed
to open the game creating flood gates to many more people. Now FPS Creator
offers far more flexibility and delivers professional gaming results.
We look forward to seeing what you can create!
Rick Vanner
Commercial Director, The Game Creators Ltd
5
FPS Creator uses the ODE Physics Engine
ODE's BSD license (LICENSE-BSD.TXT)
Open Dynamics Engine
Copyright (c) 2001-2004, Russell L. Smith.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list
of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
Neither the names of ODE's copyright owner nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
For more information, visit:
http://www.ode.org/
6
1 Introduction
The idea for FPS Creator (FPSC) was first conceived back in 2001 - it has taken
over four years to bring this project to completion. Creating a tool that makes
games for you is a fraught business, we have to cater for all kinds of complex
issues in order to ensure fast game play and end-user enjoyment. The result of
all this hard work is this first version of FPS Creator. It´s now time to share what
we have built for you - our loyal users. Now we want to see what you can do with
it and we want you to tell us how the product should develop in the future.
It has always been our main aim to provide easy to use editing tools while at the
same time ensuring the tools create quality results. FPSC will do a lot of the work
for you but it still needs you to understand good game design. So make sure you
read this manual and follow our guidelines to ensure you get the best results.
It has taken years, and it has been worth it. I pride myself on writing software
that allows the end user to achieve results in a fraction of the time it would
normally take. In FPS Creator I have created a tool that will let you create FPS
games in minutes instead of months. Its flexibility will keep you exploiting its
power for years! As it was developed in 100% Dark Basic Professional, it sits
right alongside our core technology ensuring it evolves with our other
development solutions. I must confess to you, that despite its myriad of technical
benefits, the very best feature of FPS Creator has to be the pure enjoyment you
get from creating your own games- lots and lots of games!
Lee Bamber
Lead Programmer and company founder of The Game Creators Ltd
Thank you for purchasing FPS Creator. The team here at The Game Creators are
dedicated to bringing cool game making tools to our customers. We love working
in the games industry and we especially enjoy making games. We have found
that making games can be a very enjoyable and creative experience and we´re
hoping that your creative energy and ideas can be realised with this new and
exciting tool.
With products like Dark Basic and The 3D Gamemaker we have already managed
to open the game creating flood gates to many more people. Now FPS Creator
offers far more flexibility and delivers professional gaming results.
We look forward to seeing what you can create!
Rick Vanner
Commercial Director, The Game Creators Ltd
7
2 System Requirements
IMPORTANT: FPS Creator requires DirectX version 9.0c or higher to be
installed prior to use. If you do not have the latest version you can
download it for free here:
www.microsoft.com/directx
Recommended
Window XP Home / XP Pro
Pentium 4, 2.66 Ghz (or equivalent)
1GB RAM
CDROM Drive
1.4 Gigs of Hard Drive Space (+space for created games)
DirectX 9.0c
DirectX 9.0 compatible Sound Card
DirectX 9.0 compatible Mouse and Keyboard
DirectX 9.0 compatible Video Card (3D Hardware Accelerated) with
at least 128MB of memory
Minimum Requirements
Window XP Home / XP Pro
Pentium 3, 1Ghz (or equivalent)
256MB RAM
CDROM Drive
1.4 Gigs of Hard Drive Space (+space for created games)
DirectX 9.0c+
DirectX 9.0 compatible Sound Card
DirectX 9.0 compatible Mouse and Keyboard
DirectX 9.0 compatible Video Card (3D Hardware Accelerated) with
at least 64MB of memory.
* Smaller sizes of levels and slower performance on lower specification PCs is to be expected
8
3 Installation
Installing FPS Creator is very straight forward. If you have purchased the CD
version then move to the next step. If you have purchased the online version
then you will receive an email with log-in details as to where you can start
downloading FPS Creator. We have created a special download manager to make
the whole process as painless as possible. So should you suffer connection
problems you will always be able to resume the file download. Once the download
has completed you will need to unzip the files into their own folder.
If you purchased the Early Adopter version, then please ensure you back up all
your game files and uninstall the EA version before installing version 1.
Run the file setup.exe
You will be asked to enter your name and serial number. The number will
be printed on a label, found on the inside of the software DVD case.
When the installation is complete you can find FPS Creator on the Start/All
Programs menu in the group labelled "The Game Creators¨.
7
2 System Requirements
IMPORTANT: FPS Creator requires DirectX version 9.0c or higher to be
installed prior to use. If you do not have the latest version you can
download it for free here:
www.microsoft.com/directx
Recommended
Window XP Home / XP Pro
Pentium 4, 2.66 Ghz (or equivalent)
1GB RAM
CDROM Drive
1.4 Gigs of Hard Drive Space (+space for created games)
DirectX 9.0c
DirectX 9.0 compatible Sound Card
DirectX 9.0 compatible Mouse and Keyboard
DirectX 9.0 compatible Video Card (3D Hardware Accelerated) with
at least 128MB of memory
Minimum Requirements
Window XP Home / XP Pro
Pentium 3, 1Ghz (or equivalent)
256MB RAM
CDROM Drive
1.4 Gigs of Hard Drive Space (+space for created games)
DirectX 9.0c+
DirectX 9.0 compatible Sound Card
DirectX 9.0 compatible Mouse and Keyboard
DirectX 9.0 compatible Video Card (3D Hardware Accelerated) with
at least 64MB of memory.
* Smaller sizes of levels and slower performance on lower specification PCs is to be expected
8
3 Installation
Installing FPS Creator is very straight forward. If you have purchased the CD
version then move to the next step. If you have purchased the online version
then you will receive an email with log-in details as to where you can start
downloading FPS Creator. We have created a special download manager to make
the whole process as painless as possible. So should you suffer connection
problems you will always be able to resume the file download. Once the download
has completed you will need to unzip the files into their own folder.
If you purchased the Early Adopter version, then please ensure you back up all
your game files and uninstall the EA version before installing version 1.
Run the file setup.exe
You will be asked to enter your name and serial number. The number will
be printed on a label, found on the inside of the software DVD case.
When the installation is complete you can find FPS Creator on the Start/All
Programs menu in the group labelled "The Game Creators¨.
9
4 Getting Started
4.1 The Game Level Editor
We know that the first thing you want to do is jump right in and create a game
and even though we have made the whole process as easy as possible, there are
still things you need to be aware of before you start. The best way to move
forward is to work your way through these simple tutorials. They will introduce
you to many of the systems used within FPS Creator.
When you first run FPS Creator you will be presented with this screen:
Tool bar
Icons in this bar provide quick access to all of the important features of the
software.
The drop-down menus
Access further options by selecting the various drop-down menu items.
Library
This window displays thumb nails of the building blocks used when making your
games. Here you will select from the various segments and prefabs that allow you
to construct game level geometry and from the entities that you´ve selected to
appear in your game.
Library Tabs
The Library is split up into four sections: Prefabs, Segments, Entities and
Markers. Click a tab to select which area of the Library you are currently viewing.
Main edit window
Displayed within this area is a top down view of the game level you are currently
editing. To make the process of level editing as easy as possible FPS Creator uses
a grid based system for building 3D worlds. Each cell of the grid is a
100x100x100 game world cube. You will see later that you can choose special
segment building blocks that can be joined together to make levels. If you are in
Arena mode, this grid will be displayed with a tint of red colour to help you easily
recognise the editing mode you are in.
Library
Main Edit
Window
Tool Bar
Library
Tabs
Drop-Down Menus
3D Edit
Cursor
Status
Bar
10
The 3D edit cursor
When you paint into the game level the 3D cursor shows you where this painting
will be applied. As you move the mouse around the 3D grid you will notice a black
circle surrounding the cursor, this is called the render shroud. The shroud´s size
can be increased or decreased. Its purpose is to ensure you can see what your
game level will look like in the final fully rendered game. Because you are viewing
the level from above, it´s possible to see much more of the game´s level than you
would normally see when playing the game. We use a shroud for the simple
reason that rendering the entire map all of the time would push most graphic
cards past their limit and you would experience a very slow editing environment.
The shroud gives you a rendered view of the immediate area you are working on
and the rest of the map is quickly drawn with a blue print image. In this screen
shot you can see that the top left area of the map is being displayed in blue print:
Status Bar
At the base of the edit screen is the status bar. This displays the current edit
mode you are using, your cursor´s edit location within the level and the status of
the scroll, caps and num lock keyboard states.
The range of game level size is as follows:
Description Size Axis Cell numbering Keys for moving
Height 20 Y 0-19 "+¨ and "-"
Width 40 X 0-39 Left and Right Arrow
Length 40 Z 0-39 Up and Down Arrow
The status bar shows your 3D cursor current location:
In this example the cursor is in Layer 5, 6 cells from the left edge of the grid and
8 cells down from the top of the grid. To understand what a layer is, imagine an
apartment block, the ground floor would be layer 0. Floor 1 would be layer 1,
floor 2 layer 2 and so on. The editor gives you a bird´s eye view of a layer and
presents the current layer (floor) that you are working on, hiding the other layers
by default.
IMPORTANT NOTE: Be aware that the default editing layer is layer 5. We have
done this because you may find that you want to expand your level down. If you
had started editing at layer 0 then you would have no room to manoeuvre. You
can of course start at layer 0, you just keep pressing the - key until you reach the
desired layer and start editing from there.
9
4 Getting Started
4.1 The Game Level Editor
We know that the first thing you want to do is jump right in and create a game
and even though we have made the whole process as easy as possible, there are
still things you need to be aware of before you start. The best way to move
forward is to work your way through these simple tutorials. They will introduce
you to many of the systems used within FPS Creator.
When you first run FPS Creator you will be presented with this screen:
Tool bar
Icons in this bar provide quick access to all of the important features of the
software.
The drop-down menus
Access further options by selecting the various drop-down menu items.
Library
This window displays thumb nails of the building blocks used when making your
games. Here you will select from the various segments and prefabs that allow you
to construct game level geometry and from the entities that you´ve selected to
appear in your game.
Library Tabs
The Library is split up into four sections: Prefabs, Segments, Entities and
Markers. Click a tab to select which area of the Library you are currently viewing.
Main edit window
Displayed within this area is a top down view of the game level you are currently
editing. To make the process of level editing as easy as possible FPS Creator uses
a grid based system for building 3D worlds. Each cell of the grid is a
100x100x100 game world cube. You will see later that you can choose special
segment building blocks that can be joined together to make levels. If you are in
Arena mode, this grid will be displayed with a tint of red colour to help you easily
recognise the editing mode you are in.
Library
Main Edit
Window
Tool Bar
Library
Tabs
Drop-Down Menus
3D Edit
Cursor
Status
Bar
10
The 3D edit cursor
When you paint into the game level the 3D cursor shows you where this painting
will be applied. As you move the mouse around the 3D grid you will notice a black
circle surrounding the cursor, this is called the render shroud. The shroud´s size
can be increased or decreased. Its purpose is to ensure you can see what your
game level will look like in the final fully rendered game. Because you are viewing
the level from above, it´s possible to see much more of the game´s level than you
would normally see when playing the game. We use a shroud for the simple
reason that rendering the entire map all of the time would push most graphic
cards past their limit and you would experience a very slow editing environment.
The shroud gives you a rendered view of the immediate area you are working on
and the rest of the map is quickly drawn with a blue print image. In this screen
shot you can see that the top left area of the map is being displayed in blue print:
Status Bar
At the base of the edit screen is the status bar. This displays the current edit
mode you are using, your cursor´s edit location within the level and the status of
the scroll, caps and num lock keyboard states.
The range of game level size is as follows:
Description Size Axis Cell numbering Keys for moving
Height 20 Y 0-19 "+¨ and "-"
Width 40 X 0-39 Left and Right Arrow
Length 40 Z 0-39 Up and Down Arrow
The status bar shows your 3D cursor current location:
In this example the cursor is in Layer 5, 6 cells from the left edge of the grid and
8 cells down from the top of the grid. To understand what a layer is, imagine an
apartment block, the ground floor would be layer 0. Floor 1 would be layer 1,
floor 2 layer 2 and so on. The editor gives you a bird´s eye view of a layer and
presents the current layer (floor) that you are working on, hiding the other layers
by default.
IMPORTANT NOTE: Be aware that the default editing layer is layer 5. We have
done this because you may find that you want to expand your level down. If you
had started editing at layer 0 then you would have no room to manoeuvre. You
can of course start at layer 0, you just keep pressing the - key until you reach the
desired layer and start editing from there.
11
The first time FPS Creator begins it is set ready for you to make a new single
player based game. It´s important for you to realise that you must choose early
on which type of game you are to make, a single player FPS or a Multiplayer
death match arena game. It is still possible to switch between these game types,
it will just help you to be set in the correct mode from the start. See the section
on Multiplayer gaming for more details on making Arena type games.
12
4.2 Editor Key List
MAP MOVEMENT/Display GENERAL KEYS
+ Move up a layer Left Mouse Paint
- Move down a layer Right Mouse Delete
Shift+Mouse
wheel
Move up and down layers
R
Rotate selection by 90
degrees
Z
Zoom view
Ctrl+R
Rotate selection by 10
degrees
< Zoom into map Shift+R Rotate selection by 1 degree
> Zoom out from map Ctrl+Z Undo
Mouse
wheel
Zoom in and out of map
TAB
Clip 3D view (3 modes)
# Increase size of render shroud Arrow keys Move 3D cursor
` Decrease size of render shroud Shift+Arrows Move 10 cursor positions
Ctrl+Mouse
wheel
Increase/decrease render
shroud
Ctrl+Arrows
Move to end of map grid
F1 Quick key help
SEGMENT EDITING ENTITY EDITING
P Segment editing N Entity Editing
K Pick segment from map B Grid mode (3 modes)
A
Paint walls & floor in interior
mode
Y
Set Entity to Static (red) or
Dynamic (green)
X
Paint walls & floor in exterior
mode
Left Mouse
Select and Paint entity
M Paint walls only Right Mouse Edit properties
F
Paint floor only
Enter
Moves the entity on top of
the highest entity
E
Clipboard Edit mode
Shift+Enter
Moves the entity on top of
any entities below
W
Way point editing mode
Page Up/Down
Move entity up and down the
Y axis
Space Bar
View waypoints on/off toggle
Arrow keys
Move entity relative to the
camera position
CLIPBOARD EDITING ENTITY PROPERTIES
Ctrl+P Paste clipboard Right Mouse Drag to rotate view
Ctrl+C Copy area Left Mouse Exit edit properties
Left Mouse Drag selected area
MARKERS
[ Decrease light range
] Increase light range
11
The first time FPS Creator begins it is set ready for you to make a new single
player based game. It´s important for you to realise that you must choose early
on which type of game you are to make, a single player FPS or a Multiplayer
death match arena game. It is still possible to switch between these game types,
it will just help you to be set in the correct mode from the start. See the section
on Multiplayer gaming for more details on making Arena type games.
12
4.2 Editor Key List
MAP MOVEMENT/Display GENERAL KEYS
+ Move up a layer Left Mouse Paint
- Move down a layer Right Mouse Delete
Shift+Mouse
wheel
Move up and down layers
R
Rotate selection by 90
degrees
Z
Zoom view
Ctrl+R
Rotate selection by 10
degrees
< Zoom into map Shift+R Rotate selection by 1 degree
> Zoom out from map Ctrl+Z Undo
Mouse
wheel
Zoom in and out of map
TAB
Clip 3D view (3 modes)
# Increase size of render shroud Arrow keys Move 3D cursor
` Decrease size of render shroud Shift+Arrows Move 10 cursor positions
Ctrl+Mouse
wheel
Increase/decrease render
shroud
Ctrl+Arrows
Move to end of map grid
F1 Quick key help
SEGMENT EDITING ENTITY EDITING
P Segment editing N Entity Editing
K Pick segment from map B Grid mode (3 modes)
A
Paint walls & floor in interior
mode
Y
Set Entity to Static (red) or
Dynamic (green)
X
Paint walls & floor in exterior
mode
Left Mouse
Select and Paint entity
M Paint walls only Right Mouse Edit properties
F
Paint floor only
Enter
Moves the entity on top of
the highest entity
E
Clipboard Edit mode
Shift+Enter
Moves the entity on top of
any entities below
W
Way point editing mode
Page Up/Down
Move entity up and down the
Y axis
Space Bar
View waypoints on/off toggle
Arrow keys
Move entity relative to the
camera position
CLIPBOARD EDITING ENTITY PROPERTIES
Ctrl+P Paste clipboard Right Mouse Drag to rotate view
Ctrl+C Copy area Left Mouse Exit edit properties
Left Mouse Drag selected area
MARKERS
[ Decrease light range
] Increase light range
13
4.3 Making Your First FPS Game
Let´s create our first game by following the steps below. Remember that if you
make a mistake while editing you can use the Undo icon / menu item (or press
Control+Z) and this will reverse the last action, avoiding you having to start all
over again.
All of the maps for these tutorials were installed along with FPS Creator. So if you
get confused by a tutorial you can simply load in the appropriate map which will
be referenced like this:
“FPSCreator/Files/Mapbank/Tutorials/Getting_Started01.fpm”
1. To get started we need a building for our game. In the Library window, click on
the "add new prefab¨ icon , select "control room small¨ and click OK.
2. The Prefab is now attached to the mouse. Move your mouse around and you
will see a blue print image of the prefab trailing it. The prefab is made up of
segments and entities and this one is more than a layer high.
14
3. Position the prefab so that it´s at the base of the screen like this:
4. Now click the left mouse button to place the prefab into the level:
“FPSCreator/Files/Mapbank/Tutorials/Getting_Started01.fpm”
One thing to notice about the room you have just created is the colour of the
doorway. In the editor it shows up as green. This is because at this point the door
has not been cut into the wall of the room. The cutting process happens when the
game is tested or built.
13
4.3 Making Your First FPS Game
Let´s create our first game by following the steps below. Remember that if you
make a mistake while editing you can use the Undo icon / menu item (or press
Control+Z) and this will reverse the last action, avoiding you having to start all
over again.
All of the maps for these tutorials were installed along with FPS Creator. So if you
get confused by a tutorial you can simply load in the appropriate map which will
be referenced like this:
“FPSCreator/Files/Mapbank/Tutorials/Getting_Started01.fpm”
1. To get started we need a building for our game. In the Library window, click on
the "add new prefab¨ icon , select "control room small¨ and click OK.
2. The Prefab is now attached to the mouse. Move your mouse around and you
will see a blue print image of the prefab trailing it. The prefab is made up of
segments and entities and this one is more than a layer high.
14
3. Position the prefab so that it´s at the base of the screen like this:
4. Now click the left mouse button to place the prefab into the level:
“FPSCreator/Files/Mapbank/Tutorials/Getting_Started01.fpm”
One thing to notice about the room you have just created is the colour of the
doorway. In the editor it shows up as green. This is because at this point the door
has not been cut into the wall of the room. The cutting process happens when the
game is tested or built.
15
5. The prefab is still available for placing again. So now position the mouse above
the room you have just pasted. Make sure the two rooms are perfectly aligned
and then press left mouse to paste another instance of it:
“FPSCreator/Files/Mapbank/Tutorials/Getting_Started02.fpm”
6. We now have a game level consisting of two joined rooms. Let´s define where
the player will start when the game is first run.
7. Click on the Markers tab at the base of the Library window
and then click on the green arrow marker labelled "Player
Start¨:
16
8. Position the player start position into the first room at the base of the screen.
You can rotate the angle of the start position by pressing the "R¨ key. Left click
when you are happy with its position:
“FPSCreator/Files/Mapbank/Tutorials/Getting_Started03.fpm”
9. OK, let´s test out our level. From the tool bar, click on the Test Game icon:
This will begin the process of building your game from the selections you
made. Once complete you´ll see a window similar to this:
10. Click OK and the game will run. Depending on where you placed the player
start marker (and if you rotated it or not) you should see something similar
to this:
15
5. The prefab is still available for placing again. So now position the mouse above
the room you have just pasted. Make sure the two rooms are perfectly aligned
and then press left mouse to paste another instance of it:
“FPSCreator/Files/Mapbank/Tutorials/Getting_Started02.fpm”
6. We now have a game level consisting of two joined rooms. Let´s define where
the player will start when the game is first run.
7. Click on the Markers tab at the base of the Library window
and then click on the green arrow marker labelled "Player
Start¨:
16
8. Position the player start position into the first room at the base of the screen.
You can rotate the angle of the start position by pressing the "R¨ key. Left click
when you are happy with its position:
“FPSCreator/Files/Mapbank/Tutorials/Getting_Started03.fpm”
9. OK, let´s test out our level. From the tool bar, click on the Test Game icon:
This will begin the process of building your game from the selections you
made. Once complete you´ll see a window similar to this:
10. Click OK and the game will run. Depending on where you placed the player
start marker (and if you rotated it or not) you should see something similar
to this:
17
11. Use the W/A/S/D keys to move forward, back, left, and right. Use the mouse
to look around. The prefab we used had a door, move towards the door and it
will open automatically:
12. Walk into the next room and you can even walk up to the other door and see
outside of the two rooms you have created:
Of course when you design your own levels you would be careful to ensure that a
player wouldn´t walk out of a room into space - unless you wanted that to
happen of course!
Now it´s time to add some action!
13. Click on the Entities tab at the base of the Library window.
14. Now click on the "add new Entity¨ icon:
18
15. The browser window will display covering up the map editing area. This
window should be familiar to anyone who uses Windows - on the left you
have the categories available and on the right are thumb-nails of the items
within the current category. By expanding the categories on the left, navigate
until you can see the contents of "Entity Libray/Sci-Fi/Items¨:
The browser window displaying the items from
scifi genre
The navigation tree for finding
Entity Library/scifi/items
16. Select the "Tavor¨ weapon item and click OK (or just double click the thumb-
nail).
17. Place this weapon within the first room as shown here:
18. Time to add some ammo for our weapon. Again click on the "add new Entity¨
icon and this time select "Tavor_ammo¨ from the same category.
17
11. Use the W/A/S/D keys to move forward, back, left, and right. Use the mouse
to look around. The prefab we used had a door, move towards the door and it
will open automatically:
12. Walk into the next room and you can even walk up to the other door and see
outside of the two rooms you have created:
Of course when you design your own levels you would be careful to ensure that a
player wouldn´t walk out of a room into space - unless you wanted that to
happen of course!
Now it´s time to add some action!
13. Click on the Entities tab at the base of the Library window.
14. Now click on the "add new Entity¨ icon:
18
15. The browser window will display covering up the map editing area. This
window should be familiar to anyone who uses Windows - on the left you
have the categories available and on the right are thumb-nails of the items
within the current category. By expanding the categories on the left, navigate
until you can see the contents of "Entity Libray/Sci-Fi/Items¨:
The browser window displaying the items from
scifi genre
The navigation tree for finding
Entity Library/scifi/items
16. Select the "Tavor¨ weapon item and click OK (or just double click the thumb-
nail).
17. Place this weapon within the first room as shown here:
18. Time to add some ammo for our weapon. Again click on the "add new Entity¨
icon and this time select "Tavor_ammo¨ from the same category.
19
19. Scatter a few ammo pick-ups near the gun, three would be a good amount.
“FPSCreator/Files/Mapbank/Tutorials/Getting_Started04.fpm”
20. Now it´s time to add an enemy! Click on "add new Entity¨ and browse to point
to "Entity Libray/Sci-Fi/Characters¨. From the list choose "Colonel X (Shot
Gun)¨.
21. You are now adding an enemy into your map. Place the Shot gun wielding
Colonel X into the top room (and use the R key to rotate him so that he´s
facing south towards the door the player will walk through).
“FPSCreator/Files/Mapbank/Tutorials/Getting_Started05.fpm”
22. Like the door, the enemy character is already programmed with an intelligent
AI script. He has been instructed to kill you on sight! Let´s see if your gaming
skills are up to scratch. Click on the "Test Game¨ icon to rebuild the game
and then play. Use the "R¨ key to reload your gun..
20
23. Did you kill him? If you did you would have seen something like this:
24. The Tavor gun also has a sniper zoom function. So if you had used right
mouse button during the game you could have targeted the enemy this way:
25. Pretty cool huh? In just a few steps you have built a tiny game level, selected
a weapon and a bad guy to attack. All without a line of code in sight!
26. Now for something even cooler! First save your game using the File menu
and call it mygame.fpm Now choose the option "Build Game¨ from the File
menu. When the dialogue box appears, click on the tab "Level Settings¨.
Under the text "List of Levels¨ there should be a level file listed, click on the
name of this file and up will pop a file selector. Now select your game file
"mygame.fpm¨. This tells FPS Creator that you want to make a one level
game using the map you just designed.
19
19. Scatter a few ammo pick-ups near the gun, three would be a good amount.
“FPSCreator/Files/Mapbank/Tutorials/Getting_Started04.fpm”
20. Now it´s time to add an enemy! Click on "add new Entity¨ and browse to point
to "Entity Libray/Sci-Fi/Characters¨. From the list choose "Colonel X (Shot
Gun)¨.
21. You are now adding an enemy into your map. Place the Shot gun wielding
Colonel X into the top room (and use the R key to rotate him so that he´s
facing south towards the door the player will walk through).
“FPSCreator/Files/Mapbank/Tutorials/Getting_Started05.fpm”
22. Like the door, the enemy character is already programmed with an intelligent
AI script. He has been instructed to kill you on sight! Let´s see if your gaming
skills are up to scratch. Click on the "Test Game¨ icon to rebuild the game
and then play. Use the "R¨ key to reload your gun..
20
23. Did you kill him? If you did you would have seen something like this:
24. The Tavor gun also has a sniper zoom function. So if you had used right
mouse button during the game you could have targeted the enemy this way:
25. Pretty cool huh? In just a few steps you have built a tiny game level, selected
a weapon and a bad guy to attack. All without a line of code in sight!
26. Now for something even cooler! First save your game using the File menu
and call it mygame.fpm Now choose the option "Build Game¨ from the File
menu. When the dialogue box appears, click on the tab "Level Settings¨.
Under the text "List of Levels¨ there should be a level file listed, click on the
name of this file and up will pop a file selector. Now select your game file
"mygame.fpm¨. This tells FPS Creator that you want to make a one level
game using the map you just designed.
21
27. Now click on the "Build Settings¨ tab and then click on "Build Executable¨.
FPS Creator will now create a stand alone version of your game. This means
you can pass your game onto your friends and let them play what you have
made.
27. After the build process is complete. Use Windows Explorer and locate the
directory where the game was created (the default location is C:\Program
Files\The Game Creators\FPS Creator\My Games\mygame\mygame.exe).
Double click on the exe file and the game will load in and run with its own
game menu structure.
22
4.4 Making your first Arena game
An arena game differs from a regular single player game in a number of ways.
The most obvious is that it is designed to be played against other players found
online. As such there is no story elements to the game, and is designed around
quick game play, re-spawning weapons and ammo, and basic death match
objectives. Follow these simple steps to create your first ever multiplayer arena
game (make sure you have a friend or two to play against)!
Make sure you allow the game to send data to and from your PC via any firewall
that may be setup on your system, otherwise the game packets will be prevented
from being sent.
1. Select NEW ARENA from the FILE MENU
2. Select ADD NEW PREFAB and select any room.
3. Paint a room of about 8x8 segments as your arena level.
4. Select the ENTITIES tab and select ADD NEW ENTITY.
5. Choose any character entity and click OK.
6. Paint the character to the level.
7. Return to the ADD NEW ENTITY and select a second character.
8. Paint this second character into the level.
9. Select ADD NEW ENTITY and select a weapon.
10. Paint the weapon twice into the level.
11. Save the level, calling it myarena game.fpm
12. Click the BUILD GAME from the FILE MENU.
13. Click the LEVEL SETTING Tab and change the first level to use the file
myarena game.fpm
14. Click the ARENA tab and edit the first to X frags with a value of 5.
15. Click the BUILD tab and ensure the build game executable name is set
to myarena game.exe
16. Click on the BUILD EXECUTABLE button.
17. View the MyGames folder using Windows Explorer.
18. Look for the "myarena game¨ folder and run the executable inside to
play.
21
27. Now click on the "Build Settings¨ tab and then click on "Build Executable¨.
FPS Creator will now create a stand alone version of your game. This means
you can pass your game onto your friends and let them play what you have
made.
27. After the build process is complete. Use Windows Explorer and locate the
directory where the game was created (the default location is C:\Program
Files\The Game Creators\FPS Creator\My Games\mygame\mygame.exe).
Double click on the exe file and the game will load in and run with its own
game menu structure.
22
4.4 Making your first Arena game
An arena game differs from a regular single player game in a number of ways.
The most obvious is that it is designed to be played against other players found
online. As such there is no story elements to the game, and is designed around
quick game play, re-spawning weapons and ammo, and basic death match
objectives. Follow these simple steps to create your first ever multiplayer arena
game (make sure you have a friend or two to play against)!
Make sure you allow the game to send data to and from your PC via any firewall
that may be setup on your system, otherwise the game packets will be prevented
from being sent.
1. Select NEW ARENA from the FILE MENU
2. Select ADD NEW PREFAB and select any room.
3. Paint a room of about 8x8 segments as your arena level.
4. Select the ENTITIES tab and select ADD NEW ENTITY.
5. Choose any character entity and click OK.
6. Paint the character to the level.
7. Return to the ADD NEW ENTITY and select a second character.
8. Paint this second character into the level.
9. Select ADD NEW ENTITY and select a weapon.
10. Paint the weapon twice into the level.
11. Save the level, calling it myarena game.fpm
12. Click the BUILD GAME from the FILE MENU.
13. Click the LEVEL SETTING Tab and change the first level to use the file
myarena game.fpm
14. Click the ARENA tab and edit the first to X frags with a value of 5.
15. Click the BUILD tab and ensure the build game executable name is set
to myarena game.exe
16. Click on the BUILD EXECUTABLE button.
17. View the MyGames folder using Windows Explorer.
18. Look for the "myarena game¨ folder and run the executable inside to
play.
23
How To Play a Multiplayer Game
1. Run the arena executable to start the game.
2. You will be required to enter your name, which will be used in the game.
3. The player with the fastest machine should click the HOST button.
4. The players who wish to join in must click the JOIN button.
5. The joiners must also select the game they wish to play from the given
list. Simply type the number of the game you wish to join and press Enter.
6. A character selection screen appears next. The host chooses first and then
all other players must choose their character, on a first in basis.
24
7. When the game is completely loaded, the game begins immediately.
8. The winner is determined by whoever completes the objectives setup
when the game was created (from the build game - arena settings).
You can press Escape at any time to leave a MP game. If the Host player escapes
then all the Joiners will be sent back to their game´s main menu.
This getting started section has introduced you to some of the key areas of the
editor. There´s plenty more to discover, and we´ll continue in the next chapter by
taking a more in-depth look at the various media libraries.
23
How To Play a Multiplayer Game
1. Run the arena executable to start the game.
2. You will be required to enter your name, which will be used in the game.
3. The player with the fastest machine should click the HOST button.
4. The players who wish to join in must click the JOIN button.
5. The joiners must also select the game they wish to play from the given
list. Simply type the number of the game you wish to join and press Enter.
6. A character selection screen appears next. The host chooses first and then
all other players must choose their character, on a first in basis.
24
7. When the game is completely loaded, the game begins immediately.
8. The winner is determined by whoever completes the objectives setup
when the game was created (from the build game - arena settings).
You can press Escape at any time to leave a MP game. If the Host player escapes
then all the Joiners will be sent back to their game´s main menu.
This getting started section has introduced you to some of the key areas of the
editor. There´s plenty more to discover, and we´ll continue in the next chapter by
taking a more in-depth look at the various media libraries.
25
5. The Media Libraries
The media libraries are the hub of your game building experience. They contain
four different types of game item: Prefabs, Segments, Entities and Markers.
5.1 Prefabs
Prefabs are constructed from the smaller segment building blocks.
The idea behind using them is to save having to reconstruct similar
geometry for your games time and time again. For example if you
have created a really good room layout from the various segments provided then
you can save this as a Prefab (see section 5.1.1) In this version of FPS Creator
we have constructed some prefabs to get you started. We also hope that many
users will share their prefabs via the web site.
When you click on the "add new prefab¨ icon you will see this browser:
Once you have chosen a prefab it will be shown in blue print form under your
mouse. You can now paint this prefab into the level.
Key things to note when you are pasting a prefab:
The prefab´s bottom layer, top left segment is drawn to the grid cell your 
3d cursor is pointing to.
Most prefabs are taller than segments and can be taller than a single
layer, so be careful not to paint over areas higher up in your level.
You can press "R¨ to rotate your prefab 90 degrees.
The Right mouse button will delete all the cells covered by the prefab
You can remove the prefab from your mouse pointer by pressing the
"Delete¨ key.
You can revert back to Segment painting by pressing "P¨ or to Entity 
editing by pressing "N¨.
If you make a mistake, you can always press Control+Z to undo a paste.
Prefabs cannot include standalone entities. They can include doors and
windows (which indirectly contain some fixed entities).
26
5.1.1 How To Make Your Own Prefabs
You can use the map editor to create your own prefabs. You must follow the
steps below to ensure your prefabs are created correctly.
1. First click the File/New menu item to begin a brand new map - you must
start from scratch when creating prefabs.
2. Select the segments you wish to use and paint them to the top left corner
of the map. You can use any combination of segments such as rooms,
corridors, doors and windows. You must not use entities from the entities
library for your prefab design.
3. You can design your prefab over several layers. We recommend a height
of no more than five layers, beyond this and it becomes difficult to place
such a tall structure from the top/down perspective.
4. When you have painted your segments, position the 3D cursor at the
lowest layer, at the top left corner.
5. Now press "E¨ and select the entire area of segments that define the
bounds of your desired prefab. You can use the - and + keys to move up
and down the levels.
6. Once the whole prefab is surrounded by the copy selector, press CTRL+C
to copy the selection into the clipboard.
7. Now press CTRL+J to launch the "save prefab¨ dialog. Choose a location
and enter a name for your prefab remembering to end your filename with
".FPP¨.
8. After the dialog, you will be presented with a screen where you can
preview the prefab and zoom around with the camera using the W,A,S,D
keys.
9. When you are happy with the view of the prefab, click the left mouse
button to take a snapshot of the prefab. This image will be used as the
thumbnail for the prefab.
10. You can now select the Add new prefab icon and you will find your prefab
in the location you saved it to.
25
5. The Media Libraries
The media libraries are the hub of your game building experience. They contain
four different types of game item: Prefabs, Segments, Entities and Markers.
5.1 Prefabs
Prefabs are constructed from the smaller segment building blocks.
The idea behind using them is to save having to reconstruct similar
geometry for your games time and time again. For example if you
have created a really good room layout from the various segments provided then
you can save this as a Prefab (see section 5.1.1) In this version of FPS Creator
we have constructed some prefabs to get you started. We also hope that many
users will share their prefabs via the web site.
When you click on the "add new prefab¨ icon you will see this browser:
Once you have chosen a prefab it will be shown in blue print form under your
mouse. You can now paint this prefab into the level.
Key things to note when you are pasting a prefab:
The prefab´s bottom layer, top left segment is drawn to the grid cell your 
3d cursor is pointing to.
Most prefabs are taller than segments and can be taller than a single
layer, so be careful not to paint over areas higher up in your level.
You can press "R¨ to rotate your prefab 90 degrees.
The Right mouse button will delete all the cells covered by the prefab
You can remove the prefab from your mouse pointer by pressing the
"Delete¨ key.
You can revert back to Segment painting by pressing "P¨ or to Entity 
editing by pressing "N¨.
If you make a mistake, you can always press Control+Z to undo a paste.
Prefabs cannot include standalone entities. They can include doors and
windows (which indirectly contain some fixed entities).
26
5.1.1 How To Make Your Own Prefabs
You can use the map editor to create your own prefabs. You must follow the
steps below to ensure your prefabs are created correctly.
1. First click the File/New menu item to begin a brand new map - you must
start from scratch when creating prefabs.
2. Select the segments you wish to use and paint them to the top left corner
of the map. You can use any combination of segments such as rooms,
corridors, doors and windows. You must not use entities from the entities
library for your prefab design.
3. You can design your prefab over several layers. We recommend a height
of no more than five layers, beyond this and it becomes difficult to place
such a tall structure from the top/down perspective.
4. When you have painted your segments, position the 3D cursor at the
lowest layer, at the top left corner.
5. Now press "E¨ and select the entire area of segments that define the
bounds of your desired prefab. You can use the - and + keys to move up
and down the levels.
6. Once the whole prefab is surrounded by the copy selector, press CTRL+C
to copy the selection into the clipboard.
7. Now press CTRL+J to launch the "save prefab¨ dialog. Choose a location
and enter a name for your prefab remembering to end your filename with
".FPP¨.
8. After the dialog, you will be presented with a screen where you can
preview the prefab and zoom around with the camera using the W,A,S,D
keys.
9. When you are happy with the view of the prefab, click the left mouse
button to take a snapshot of the prefab. This image will be used as the
thumbnail for the prefab.
10. You can now select the Add new prefab icon and you will find your prefab
in the location you saved it to.
27
5.2 Segments
Segments are the raw materials you use to build your game levels
in FPS Creator. They come in different shapes and sizes and you
need to understand how they work together to build levels.
Painting with segments
Let´s  start  with  the  basic  room  segment.  A  room  segment  comprises  of 
information describing how it will be used when drawing walls (both internal and 
external), the floor and the ceiling.
If  you  choose  the  segment  "Control  Room  Full¨  from  the  media library  (see: 
Segment Library/Scifi/Rooms). Then draw a small 4x4 room with the segment, it 
will look like this:
“FPSCreator/Files/Mapbank/Tutorials/Segments01.fpm”
You will notice that the editor automatically constructs and joins the walls for you.
This makes editing rooms very easy indeed. The segment also creates a floor for
you. Let´s add two extra cells to the left and right of the room:
“FPSCreator/Files/Mapbank/Tutorials/Segments02.fpm”
Again, the walls are calculated automatically. But what about a ceiling? By
default, segments do not draw ceilings. This is because the ceiling belongs to the
layer above the one we are editing. In fact, the segment has drawn a ceiling - it´s
made one for the room below the level we are editing (i.e. the floor).
Press the "+¨ key and move up to the next layer. Now place down the same
segment over each cell you see below, like this:
Sequence showing the segment being painted directly over the layer below
28
“FPSCreator/Files/Mapbank/Tutorials/Segments03.fpm”
You should have covered all of the cells so that you cannot see the room below.
This has created a ceiling for the room on the first layer by creating another room
above it - however you can also just draw on a ceiling as we cover in the next
section.
Painting just floors and ceilings
Press  the  "F¨  key  on  the  keyboard.  This  sets  you  into  Floor  paint  mode.  Now 
RIGHT click  on  each floor piece to  delete  just  the  floor  of  each  segment  at  this 
layer:
Sequence showing the floor of this layer being removed
“FPSCreator/Files/Mapbank/Tutorials/Segments04.fpm”
Notice how you can see the higher walls that now span over two layers.
Press the "+¨ key to move up another layer. Now LEFT click on each cell to add a
ceiling above the two layers below, like this:
Sequence showing a floor & ceiling being added to this layer
“FPSCreator/Files/Mapbank/Tutorials/Segments05.fpm”
27
5.2 Segments
Segments are the raw materials you use to build your game levels
in FPS Creator. They come in different shapes and sizes and you
need to understand how they work together to build levels.
Painting with segments
Let´s  start  with  the  basic  room  segment.  A  room  segment  comprises  of 
information describing how it will be used when drawing walls (both internal and 
external), the floor and the ceiling.
If  you  choose  the  segment  "Control  Room  Full¨  from  the  media library  (see: 
Segment Library/Scifi/Rooms). Then draw a small 4x4 room with the segment, it 
will look like this:
“FPSCreator/Files/Mapbank/Tutorials/Segments01.fpm”
You will notice that the editor automatically constructs and joins the walls for you.
This makes editing rooms very easy indeed. The segment also creates a floor for
you. Let´s add two extra cells to the left and right of the room:
“FPSCreator/Files/Mapbank/Tutorials/Segments02.fpm”
Again, the walls are calculated automatically. But what about a ceiling? By
default, segments do not draw ceilings. This is because the ceiling belongs to the
layer above the one we are editing. In fact, the segment has drawn a ceiling - it´s
made one for the room below the level we are editing (i.e. the floor).
Press the "+¨ key and move up to the next layer. Now place down the same
segment over each cell you see below, like this:
Sequence showing the segment being painted directly over the layer below
28
“FPSCreator/Files/Mapbank/Tutorials/Segments03.fpm”
You should have covered all of the cells so that you cannot see the room below.
This has created a ceiling for the room on the first layer by creating another room
above it - however you can also just draw on a ceiling as we cover in the next
section.
Painting just floors and ceilings
Press  the  "F¨  key  on  the  keyboard.  This  sets  you  into  Floor  paint  mode.  Now 
RIGHT click  on  each floor piece to  delete  just  the  floor  of  each  segment  at  this 
layer:
Sequence showing the floor of this layer being removed
“FPSCreator/Files/Mapbank/Tutorials/Segments04.fpm”
Notice how you can see the higher walls that now span over two layers.
Press the "+¨ key to move up another layer. Now LEFT click on each cell to add a
ceiling above the two layers below, like this:
Sequence showing a floor & ceiling being added to this layer
“FPSCreator/Files/Mapbank/Tutorials/Segments05.fpm”
29
Painting just walls
We will now change draw mode. Press the "-" key twice to return back to layer 5.
Press the "M¨ key. You are now in Wall paint mode:
Notice that the cursor shows an arrow pointer. This indicates where the wall will 
be placed when you next click the left mouse button. You can rotate the arrow 90 
degrees by pressing the "R¨ key. See if you can create the wall layout as shown 
below.  When  you  have  designed  layer  5,  press  "+¨  to  move  up  to  layer  6  and 
repeat your wall painting:
Sequence showing walls being drawn. First in layer 5, then in layer 6
“FPSCreator/Files/Mapbank/Tutorials/Segments06.fpm”
HINT: Many times you will be working with segments and will want to make a
modification to an existing room. You can quickly select a segment type by
pressing the "K¨ key. This will put you into PICK mode. Just click on the cell with
the segment type you are interested in and then you can start painting with it.
5.2.1 Segment Overlays
There are three types of segments that are classed as base segments. They are
Rooms, Floors and Corridors. These segments are your starting blocks over which
you can lay other segments like windows and doors etc.
Adding Stair Segments
We are going to add some stairs to the level designed so far in this section. Make
sure you are viewing Layer 5 of the level.
Click on the "add new segment¨ icon and point the browser to this path:
"Segment Library/Scifi/Platforms¨
Choose the "Staircase metal¨ segment. The 3D cursor will show an arrow and also
a small O (meaning Overlay).
30
Position the cursor as shown below and press the left mouse button to paste the
stairs into layer 5.
Our room now has some stairs, move up to layer 6 (+ key). Press "K¨ to enter
PICK mode, click on a cell that has the "Control Full Room¨ segment used.
Press "F¨ to choose to only paint with Floors. Now paste some flooring as shown
here:
“FPSCreator/Files/Mapbank/Tutorials/Segments07.fpm”
Internal and External Painting
The level editor helps you by automatically calculating the style needed to create
the walls. Our level so far looks like this both from inside and out:
View inside the level.
Note the design of the walls.
View from outside the level. The outer walls are
of a different exterior design
Let´s  now emulate the outside scene. Select a new segment, this time "Segment 
Library/Scifi/Platforms/Metal¨.  This segment is a  FLOOR only segment (it has no 
walls).
29
Painting just walls
We will now change draw mode. Press the "-" key twice to return back to layer 5.
Press the "M¨ key. You are now in Wall paint mode:
Notice that the cursor shows an arrow pointer. This indicates where the wall will 
be placed when you next click the left mouse button. You can rotate the arrow 90 
degrees by pressing the "R¨ key. See if you can create the wall layout as shown 
below.  When  you  have  designed  layer  5,  press  "+¨  to  move  up  to  layer  6  and 
repeat your wall painting:
Sequence showing walls being drawn. First in layer 5, then in layer 6
“FPSCreator/Files/Mapbank/Tutorials/Segments06.fpm”
HINT: Many times you will be working with segments and will want to make a
modification to an existing room. You can quickly select a segment type by
pressing the "K¨ key. This will put you into PICK mode. Just click on the cell with
the segment type you are interested in and then you can start painting with it.
5.2.1 Segment Overlays
There are three types of segments that are classed as base segments. They are
Rooms, Floors and Corridors. These segments are your starting blocks over which
you can lay other segments like windows and doors etc.
Adding Stair Segments
We are going to add some stairs to the level designed so far in this section. Make
sure you are viewing Layer 5 of the level.
Click on the "add new segment¨ icon and point the browser to this path:
"Segment Library/Scifi/Platforms¨
Choose the "Staircase metal¨ segment. The 3D cursor will show an arrow and also
a small O (meaning Overlay).
30
Position the cursor as shown below and press the left mouse button to paste the
stairs into layer 5.
Our room now has some stairs, move up to layer 6 (+ key). Press "K¨ to enter
PICK mode, click on a cell that has the "Control Full Room¨ segment used.
Press "F¨ to choose to only paint with Floors. Now paste some flooring as shown
here:
“FPSCreator/Files/Mapbank/Tutorials/Segments07.fpm”
Internal and External Painting
The level editor helps you by automatically calculating the style needed to create
the walls. Our level so far looks like this both from inside and out:
View inside the level.
Note the design of the walls.
View from outside the level. The outer walls are
of a different exterior design
Let´s  now emulate the outside scene. Select a new segment, this time "Segment 
Library/Scifi/Platforms/Metal¨.  This segment is a  FLOOR only segment (it has no 
walls).
31
Ensure you are at Layer 5 and start painting the Metal segment around the outer
walls, as shown here:
“FPSCreator/Files/Mapbank/Tutorials/Segments08.fpm”
When you move the render shroud to reveal the blue print you will notice that the
cells are coloured differently:
The lighter blue coloured cells indicate external segments and the dark blue
indicate internal segments.
You can use the external paint mode with the Control Room Full segment. This
will help the editor determine how you want the wall structure defined. This next
screen shot shows all the metal segments replaced with room segments but they
have been drawn using the external paint mode:
32
“FPSCreator/Files/Mapbank/Tutorials/Segments09.fpm”
You can see that the original internal walls are not disrupted when the outer
segments were drawn. Of course you could have drawn the whole area with
internal segments and then painted in the walls - there´s more than one way to
skin a cat!
Note: You cannot mix different component parts of segments with other
segments. If you want to create such variations then you need to use the
segment editor to build new segments. You will be able to download this tool
from the official FPS Creator web site when we release it soon after version 1
release.
5.3 Entities
Entities add life to your game, any object that moves or has some
reaction to the player´s input is classed as an entity. Examples of
entities are sliding doors, aggressive enemy robots, placid tea cups,
collectable ammo, weapon pick ups, health bonuses etc.
Dynamic or Static?
Entities are very exciting when it comes to breathing life into your game. There is
a trade-off here though as the use of entities creates more work for the game
engine. This is because entities need to be checked each time the game loop is
processed. So it´s important you understand the types of entities there are and
you become wise as to how best to employ them. An entity can be either
dynamic or static. A dynamic entity is one that may move and react to things
happening within the game. An example of a dynamic entity is a weapon. The
weapon will be checked to see if the player has walked near to it. If the player
has, then the weapon is picked up by the player and it´s removed from the game
scene. A static entity is one that never moves or reacts during the game. The
normal use of static entities is the populating of your level with furniture.
An important point to realise is that if you make a level in single player mode and
then switch it to multiplayer mode, all dynamic objects will be forced into static
mode.
All of the supplied entity media in FPS Creator has been set up as either dynamic
or static. We have chosen the best state for each entity. You can easily change
the state of the entity as we will show you.
31
Ensure you are at Layer 5 and start painting the Metal segment around the outer
walls, as shown here:
“FPSCreator/Files/Mapbank/Tutorials/Segments08.fpm”
When you move the render shroud to reveal the blue print you will notice that the
cells are coloured differently:
The lighter blue coloured cells indicate external segments and the dark blue
indicate internal segments.
You can use the external paint mode with the Control Room Full segment. This
will help the editor determine how you want the wall structure defined. This next
screen shot shows all the metal segments replaced with room segments but they
have been drawn using the external paint mode:
32
“FPSCreator/Files/Mapbank/Tutorials/Segments09.fpm”
You can see that the original internal walls are not disrupted when the outer
segments were drawn. Of course you could have drawn the whole area with
internal segments and then painted in the walls - there´s more than one way to
skin a cat!
Note: You cannot mix different component parts of segments with other
segments. If you want to create such variations then you need to use the
segment editor to build new segments. You will be able to download this tool
from the official FPS Creator web site when we release it soon after version 1
release.
5.3 Entities
Entities add life to your game, any object that moves or has some
reaction to the player´s input is classed as an entity. Examples of
entities are sliding doors, aggressive enemy robots, placid tea cups,
collectable ammo, weapon pick ups, health bonuses etc.
Dynamic or Static?
Entities are very exciting when it comes to breathing life into your game. There is
a trade-off here though as the use of entities creates more work for the game
engine. This is because entities need to be checked each time the game loop is
processed. So it´s important you understand the types of entities there are and
you become wise as to how best to employ them. An entity can be either
dynamic or static. A dynamic entity is one that may move and react to things
happening within the game. An example of a dynamic entity is a weapon. The
weapon will be checked to see if the player has walked near to it. If the player
has, then the weapon is picked up by the player and it´s removed from the game
scene. A static entity is one that never moves or reacts during the game. The
normal use of static entities is the populating of your level with furniture.
An important point to realise is that if you make a level in single player mode and
then switch it to multiplayer mode, all dynamic objects will be forced into static
mode.
All of the supplied entity media in FPS Creator has been set up as either dynamic
or static. We have chosen the best state for each entity. You can easily change
the state of the entity as we will show you.
33
To select an entity, click on the "Entity¨ tab at the base of the Library window and 
then click on the "Add new Entity¨ icon. Once an entity is selected and is following 
your  mouse  movements,  you  can  paste  copies  of  it  into  the  game  level  by 
pressing the left mouse button.
In  the  screen  shots  below,  we  can  see  an  entity  called  "generator¨.  It  has  just 
been chosen as a new entity from the Library and is attached to the mouse. A red 
circle  is  underneath  the  entity  and  this signifies  that  it  is  designed  as  a  static 
entity.  By  pressing  the  "Y¨  key,  the  entity  can  be  changed  to  dynamic,  upon 
which the red circle will change to green.
Static Entity
These cannot move when the game is running
and cannot be destroyed or animate. On the plus
side you can have many static objects without
effecting the game´s speed.
Dynamic entity
These entities are affected by the physics system.
So you push them, pick them up, even blow them
to pieces!
Stacking entities
Building a stack of entities can make for interesting level designs. By pressing the
"Enter¨ key, the entities Y position (height) will be forced towards the floor. In
most cases an entity will already be positioned onto the floor when you first select
it. It is possible to move entities in all directions, so forcing the object to find the
floor is very handy.
Sometimes other entities will be in the way of the object when finding the floor.
This allows you to stack objects as this sequence describes:
First place down a few cylinders
directly on the floor.
Press ENTER when over the
barrels. This now sets the barrel
on top of the lower barrels.
Repeat the process to build a
third level of barrels.
“FPSCreator/Files/Mapbank/Tutorials/Entities_Stacked.fpm”
34
The resulting stack of barrels looks like this in the game:
In the demo file we have stacked barrels that explode as soon as you shoot them,
a stack of barrels that are static and cannot be moved or exploded and a stack of
barrels that take more than one shot to explode. This shows the flexibility of the
static and dynamic modes and the tweaks you can make by editing the barrel´s
properties.
Key things to remember when you are using entities:
Left mouse button pastes an entity
Right mouse button deletes the currently held entity (so does the Delete
key)
Left click on an entity already in the level and it will assign itself to the
mouse
R key rotates the entity 90 degrees clockwise. Shift+R rotates the entity 1
degree clockwise for fine positioning. Ctrl+R rotates 10 degrees each time.
Shift+Enter will force the entity down until it touches either another entity
or the floor. This is useful if you want to stack item on shelves.
As you stack objects higher, you may find that they seem to disappear
from view when placed down. This is because the camera is now under the
object you just placed. You will need to go up a layer to see where the
object is positioned.
5.3.1 Entity Properties
All entities have properties. Properties are information that control how the entity
will perform various tasks. For example a door entity would have many properties
from the speed the door opens and closes, to the sound the door makes when it
is used. You can change the sounds for the opening and closing of the doors by
editing the Sound0 and Sound1 properties of the entity. Sound0 is the opening
sound and Sound1 is the closing sound.
The enemy entities have a whole host of properties. Changing these will allow you
to customise your game in such a way that it becomes unique and different to the
default settings.
“FPSCreator/Files/Mapbank/Tutorials/Entity_Properties.fpm”
1. In the centre of the level is a character entity. Make sure you are in Entity
mode by pressing the "N¨ key.
33
To select an entity, click on the "Entity¨ tab at the base of the Library window and 
then click on the "Add new Entity¨ icon. Once an entity is selected and is following 
your  mouse  movements,  you  can  paste  copies  of  it  into  the  game  level  by 
pressing the left mouse button.
In  the  screen  shots  below,  we  can  see  an  entity  called  "generator¨.  It  has  just 
been chosen as a new entity from the Library and is attached to the mouse. A red 
circle  is  underneath  the  entity  and  this signifies  that  it  is  designed  as  a  static 
entity.  By  pressing  the  "Y¨  key,  the  entity  can  be  changed  to  dynamic,  upon 
which the red circle will change to green.
Static Entity
These cannot move when the game is running
and cannot be destroyed or animate. On the plus
side you can have many static objects without
effecting the game´s speed.
Dynamic entity
These entities are affected by the physics system.
So you push them, pick them up, even blow them
to pieces!
Stacking entities
Building a stack of entities can make for interesting level designs. By pressing the
"Enter¨ key, the entities Y position (height) will be forced towards the floor. In
most cases an entity will already be positioned onto the floor when you first select
it. It is possible to move entities in all directions, so forcing the object to find the
floor is very handy.
Sometimes other entities will be in the way of the object when finding the floor.
This allows you to stack objects as this sequence describes:
First place down a few cylinders
directly on the floor.
Press ENTER when over the
barrels. This now sets the barrel
on top of the lower barrels.
Repeat the process to build a
third level of barrels.
“FPSCreator/Files/Mapbank/Tutorials/Entities_Stacked.fpm”
34
The resulting stack of barrels looks like this in the game:
In the demo file we have stacked barrels that explode as soon as you shoot them,
a stack of barrels that are static and cannot be moved or exploded and a stack of
barrels that take more than one shot to explode. This shows the flexibility of the
static and dynamic modes and the tweaks you can make by editing the barrel´s
properties.
Key things to remember when you are using entities:
Left mouse button pastes an entity
Right mouse button deletes the currently held entity (so does the Delete
key)
Left click on an entity already in the level and it will assign itself to the
mouse
R key rotates the entity 90 degrees clockwise. Shift+R rotates the entity 1
degree clockwise for fine positioning. Ctrl+R rotates 10 degrees each time.
Shift+Enter will force the entity down until it touches either another entity
or the floor. This is useful if you want to stack item on shelves.
As you stack objects higher, you may find that they seem to disappear
from view when placed down. This is because the camera is now under the
object you just placed. You will need to go up a layer to see where the
object is positioned.
5.3.1 Entity Properties
All entities have properties. Properties are information that control how the entity
will perform various tasks. For example a door entity would have many properties
from the speed the door opens and closes, to the sound the door makes when it
is used. You can change the sounds for the opening and closing of the doors by
editing the Sound0 and Sound1 properties of the entity. Sound0 is the opening
sound and Sound1 is the closing sound.
The enemy entities have a whole host of properties. Changing these will allow you
to customise your game in such a way that it becomes unique and different to the
default settings.
“FPSCreator/Files/Mapbank/Tutorials/Entity_Properties.fpm”
1. In the centre of the level is a character entity. Make sure you are in Entity
mode by pressing the "N¨ key.
35
2. Right click on the character. The 3D window will zoom down to closely
inspect the entity and the properties will be displayed in a column on the
left:
3. Locate the property labelled as "Health¨ and change the value from 100 to
just 5. Now the entity will be easy to kill.
4. Change the property "Speed¨ from 100 to 200. This will make the entity
run twice as fast as they normally would.
5. Click on Apply Changes¨ to approve of these modifications.
6. Click on "Test Game¨ and see how the enemy´s attack has been
customised.
Zoom Mode Controls
When you right click on an entity and enter the property editing mode, there are
controls you can use to view and edit:
Right mouse button + drag
mouse
When holding down the right mouse button you can spin around the
selected entity to view it from different angles.
Mouse wheel If you have a mouse wheel you can use it to zoom in and out fromthe
entity.
Left & Right Arrow Keys Moves the entity left or right relative to the camera´s position.
Up & Down Arrow Keys Moves the entity away and towards camera.
Page Up/Page Down Moves the entity up and down the Y axis.
1 & 2 Rotates the entity around the Z axis
3 & 4 Rotates the entity around the Y axis
5 & 6 Rotates the entity around the X axis
Enter Forces the object to "find the floor¨. Objects designed to hang on walls
will find the nearest wall (they must be close to the wall for this to
work).
5.3.2 Entity AI
All entities are controlled by Artificial Intelligence (AI) scripts. A script is a
program that tells the entity what to do. You don´t need to understand how the
scripts work to use FPS Creator - you can just change which script an entity uses
and the behaviour of the entity will change in the game.
If you like to write computer programs, then it´s likely you´ll want to code your
own scripts to show off how cool you can make your enemy characters. In the
"How To¨ section later on you will find details about the script language structure
and its commands.
36
The properties of entities provide you with the means to customise your games
endlessly. We have provided weapons, ammo, characters and other entities with
properties that once changed will make the entity behave differently. You can
take any entity and tweak it to ensure your game has your own definitive mark.
It can be great fun, imagine making some super grenades that you can throw as
fast as a missile and that explode when they have bounced three times - ideal for
taking out enemies around corners!
Below we have listed each entity type with all possible properties along with
helpful description as to how they affect the entity.
In some cases you will find that similar entities don´t share the same properties.
For example, you will not find a "Throw Angle¨ property in the machine gun´s list,
but you will find it in the grenade´s list.
5.3.3 Weapon Entities
Weapons are what the player will either start the game holding or pick up as they
progress through your game. It´s important to balance your game, so make sure
you don´t under arm your players (make it too difficult) and conversely, don´t
over arm them (make it too easy).
The properties listed below do not all apply to each weapon. For example, with
projectile weapons you will have lifespan, throw speed, throw vertical, bounce
quantity and explode on hit - but these do not apply to weapons that shoot.
General
Name travor The in-game name for the entity, often used to reference the
entity when triggering or activating entity behaviour.
Static Mode No The state describing whether the entity is dynamic within the
game or part of the static level geometry.
AI Scripts
Start Appear1.fpi The FPI file that is run when the entity is first created within
the game level.
Main Weapon1.fpi The FPI file that is run during the life of the entity.
Destroy Disappear.fpi The FPI file that is run when the entity is destroyed, meaning
that the entity´s health has reached zero.
Damage 5 Sets the amount of damage the weapon will do, zero meaning
no damage at all.
Accuracy 10 Sets the accuracy of the weapon being fired, with zero
meaning deadly accurate and 100 being wildly inaccurate.
Reload Quantity 1 Sets the number of bullets allowed in one clip of the weapons
ammo (if applicable), which can range from single shells
represented by 1 to a magazine of 120 bullets per machine
gun clip.
Fire Iterations 0 Sets the number of additional iterations describing how many
extra streams of fire per shot. A value of 2 will shoot three
damaging streams from the gun in one shot.
Lifespan 5000 Sets the number of cycles the projectile (if applicable) will
survive before automatically exploding. The longer the lifespan
the further a bullet could travel, ideal for sniper weapons.
Throw Speed 1 Sets the speed of the projectile (if applicable), a low value
being slow and a high value being fast.
Throw Vertical 0 Sets the angle which the projectile will initially be launched (if
applicable) from the launcher.
Bounce
Quantity
0 Sets the number of times the projectile (if applicable) will
bounce before exploding. A value of zero means the projectile
does not explode due to bouncing.
Explode On Hit No Sets whether the projectile (if applicable) will explode on
contact with a solid surface, "No¨ means the projectile will not
explode on contact.
Respawn
Spawn At Start Yes If set to YES the entity spawns immediately, otherwise it waits
35
2. Right click on the character. The 3D window will zoom down to closely
inspect the entity and the properties will be displayed in a column on the
left:
3. Locate the property labelled as "Health¨ and change the value from 100 to
just 5. Now the entity will be easy to kill.
4. Change the property "Speed¨ from 100 to 200. This will make the entity
run twice as fast as they normally would.
5. Click on Apply Changes¨ to approve of these modifications.
6. Click on "Test Game¨ and see how the enemy´s attack has been
customised.
Zoom Mode Controls
When you right click on an entity and enter the property editing mode, there are
controls you can use to view and edit:
Right mouse button + drag
mouse
When holding down the right mouse button you can spin around the
selected entity to view it from different angles.
Mouse wheel If you have a mouse wheel you can use it to zoom in and out fromthe
entity.
Left & Right Arrow Keys Moves the entity left or right relative to the camera´s position.
Up & Down Arrow Keys Moves the entity away and towards camera.
Page Up/Page Down Moves the entity up and down the Y axis.
1 & 2 Rotates the entity around the Z axis
3 & 4 Rotates the entity around the Y axis
5 & 6 Rotates the entity around the X axis
Enter Forces the object to "find the floor¨. Objects designed to hang on walls
will find the nearest wall (they must be close to the wall for this to
work).
5.3.2 Entity AI
All entities are controlled by Artificial Intelligence (AI) scripts. A script is a
program that tells the entity what to do. You don´t need to understand how the
scripts work to use FPS Creator - you can just change which script an entity uses
and the behaviour of the entity will change in the game.
If you like to write computer programs, then it´s likely you´ll want to code your
own scripts to show off how cool you can make your enemy characters. In the
"How To¨ section later on you will find details about the script language structure
and its commands.
36
The properties of entities provide you with the means to customise your games
endlessly. We have provided weapons, ammo, characters and other entities with
properties that once changed will make the entity behave differently. You can
take any entity and tweak it to ensure your game has your own definitive mark.
It can be great fun, imagine making some super grenades that you can throw as
fast as a missile and that explode when they have bounced three times - ideal for
taking out enemies around corners!
Below we have listed each entity type with all possible properties along with
helpful description as to how they affect the entity.
In some cases you will find that similar entities don´t share the same properties.
For example, you will not find a "Throw Angle¨ property in the machine gun´s list,
but you will find it in the grenade´s list.
5.3.3 Weapon Entities
Weapons are what the player will either start the game holding or pick up as they
progress through your game. It´s important to balance your game, so make sure
you don´t under arm your players (make it too difficult) and conversely, don´t
over arm them (make it too easy).
The properties listed below do not all apply to each weapon. For example, with
projectile weapons you will have lifespan, throw speed, throw vertical, bounce
quantity and explode on hit - but these do not apply to weapons that shoot.
General
Name travor The in-game name for the entity, often used to reference the
entity when triggering or activating entity behaviour.
Static Mode No The state describing whether the entity is dynamic within the
game or part of the static level geometry.
AI Scripts
Start Appear1.fpi The FPI file that is run when the entity is first created within
the game level.
Main Weapon1.fpi The FPI file that is run during the life of the entity.
Destroy Disappear.fpi The FPI file that is run when the entity is destroyed, meaning
that the entity´s health has reached zero.
Damage 5 Sets the amount of damage the weapon will do, zero meaning
no damage at all.
Accuracy 10 Sets the accuracy of the weapon being fired, with zero
meaning deadly accurate and 100 being wildly inaccurate.
Reload Quantity 1 Sets the number of bullets allowed in one clip of the weapons
ammo (if applicable), which can range from single shells
represented by 1 to a magazine of 120 bullets per machine
gun clip.
Fire Iterations 0 Sets the number of additional iterations describing how many
extra streams of fire per shot. A value of 2 will shoot three
damaging streams from the gun in one shot.
Lifespan 5000 Sets the number of cycles the projectile (if applicable) will
survive before automatically exploding. The longer the lifespan
the further a bullet could travel, ideal for sniper weapons.
Throw Speed 1 Sets the speed of the projectile (if applicable), a low value
being slow and a high value being fast.
Throw Vertical 0 Sets the angle which the projectile will initially be launched (if
applicable) from the launcher.
Bounce
Quantity
0 Sets the number of times the projectile (if applicable) will
bounce before exploding. A value of zero means the projectile
does not explode due to bouncing.
Explode On Hit No Sets whether the projectile (if applicable) will explode on
contact with a solid surface, "No¨ means the projectile will not
explode on contact.
Respawn
Spawn At Start Yes If set to YES the entity spawns immediately, otherwise it waits
37
to be activated
Max at any time 1 Sets whether the entity will spawn itself after being destroyed.
A value of zero means it will not. A positive value will
determine how many entities can be spawned of this type at
any one time during the game.
Maximum
Spawn
15 This sets the maximum amount of times this entity can be
spawned. When this value is reached no more entities will
spawn.
Spawn after
delay?
Yes If set to Yes, new entities of this type will respawn when the
delay counter has counted down. A setting of No will ignore
the delay parameter.
Spawn when
dead?
Yes If this is set to Yes then the re-spawn will happen after the
entity is destroyed.
Delay 3000 Sets the delay before the entity will spawn again after being
destroyed. The higher the value, the longer it takes to
respawn. Zero means instantly respawn. A single unit
represents a logic cycle. There are thirty logic cycles per
second for entities near to the player, and much fewer cycles
for entities further away.
Delay Random 0 Adds a random amount of time between 0 and this value to
the Delay factor
Number to
spawn
1 Sets the number of entities that will be respawned at the
spawn event. Useful for spawning several clips of ammo or a
nest of enemies in one go.
Qty Random 0 Adds a random quantity between 0 and this value to the
number of entities spawned
Velocity 0 Sets the velocity at which the entity will be travelling when
spawned
Velocity
Random
0 Adds a random velocity between 0 and this value to the initial
entity velocity
Angle 90 Sets the angle of elevation the entity will be pointing when
spawned
Angle Random 0 Adds a random angle between 0 and this value to the initial
angle of elevation
Spawn Life 0 Sets the amount of time in seconds the entity will live for. A
value of zero means the entity will not die due to time
Optional visuals
Texture The primary texture the entity uses to paint itself.
Alt Texture The alternative texture initially hidden until an FPI script tells
the entity to change to the alternative texture.
Transparency 1 A value of zero means the entity will not be semi-transparent.
A value of one means the entity will use any alpha data the
entity texture contains.
Reduce Texture -1 A value of zero means the entity texture is unaffected and will
use the game defaults. A value of minus one means no
texture reduction will take place on the entity, allowing the
entity to reveal maximum visual detail at the cost of memory
consumption.
Physics
Physics on YES The state describing if the entity should use real physics, or
revert to using no physics. Useful for dynamic entities that do
not move, where you wish to speed up your game in certain
areas.
Always Active? No If set to YES the entity will always be active, no matter now
far away the player might be. Useful when you want to ensure
characters always look intelligent no matter where they are in
relation to the player. Remember that AI time is critical, so
don´t have too many entities using this.
Physics Weight 5000 This value controls the actual weight of the entity and will
affect how it behaves in the game. A heavy entity will be hard
to push, impossible to pick up and move very slowly when
being tilted. A light entity will bounce delicately, be easy to
pick up and respond to any effects around it, no matter how
subtle.
Physics Friction 5000 This value controls the rough nature of the surface of the
entity. A small value will mean the entity is smooth and will
slide easily across any surface, whereas a high value will
mean the entity is hard and course, meaning it will resist
being dragged or pushed across the floor.
38
Physics Force
Damage
100 Sets the amount of damage this entity will deal out if it hits
the player or other entity
Rotate If
Thrown
YES When set, this will rotate the object if the player picks it up
and throws it. Useful for more realism when throwing bottles
and cans, though other objects such as crates and square
shapes may benefit from not rotating if the game play
requires that they be stacked.
Explodable? NO If set to YES, the entity will explode when its strength reaches
zero
Explode
Damage
100 Sets the range and amount of damage this entity deals when
it explodes
Ammo
Quantity 1 Sets the number of clips the ammo entity represents. Not to
be confused with individual bullets, which a clip can comprise
a number of. Bullet compliments of weapon clips are fixed to
the weapon you chose.
5.3.4 Ammo Entities
Having a weapon isn´t much use unless it comes with Ammo. Strategically placing 
ammo  in hidden  areas  around  your game will add  to  the game  play  experience 
and  should  ensure  the  user  doesn´t  just  walk  through  shooting  and  not  being 
challenged.  Be  careful,  don´t  hide  all  ammo  - keep  a  balance,  offer  some  in 
obvious places and reward players when they find a hidden stash.
From this point on, the respawn and physics property blocks will not be shown in 
full, so just refer to them above in the weapon properties list.
General
Name assaultrifle_ammo The in-game name for the entity.
Static Mode No The state describing whether the entity is dynamic within
the game or part of the static level geometry.
AI Scripts
Start Appear1.fpi The FPI file that is run when the entity is first created
within the game level.
Main Ammo1.fpi The FPI file that is run during the life of the entity.
Destroy Disappear.fpi The FPI file that is run when the entity is destroyed.
Respawn (see weapon properties)
Optional visuals
Texture The primary texture the entity uses to paint itself.
Alt Texture Ammo_D2.tga The alternative texture initially hidden until an FPI script
tells the entity to change to the alternative texture.
Effect Select an .FX shader file
Transparency 1 A value of zero means the entity will not be semi-
transparent. A value of one means the entity will use
any alpha data the entity texture is using.
Reduce Texture -1 A value of zero means the entity texture is unaffected
and will use the game defaults. A value of minus one
means no texture reduction will take place on the entity,
allowing the entity to reveal maximum visual detail at
the cost of memory consumption.
Physics (see weapon properties)
Ammo
For weapon Scfi\assaultrifle Sets the weapon this ammo belongs to. It defaults to
the weapon that relates to the ammo clip, though can be
changed to refill any weapon in the game.
Quantity 1 Sets the number of ammo clips this entity represents.
5.3.5 Enemy Entities
We advise you to introduce enemies gradually, players don´t want to load up a
game and be blasted to death in seconds. They also don´t want to walk for ages
without seeing sight of any foes. There are plenty of properties you can tweak to
37
to be activated
Max at any time 1 Sets whether the entity will spawn itself after being destroyed.
A value of zero means it will not. A positive value will
determine how many entities can be spawned of this type at
any one time during the game.
Maximum
Spawn
15 This sets the maximum amount of times this entity can be
spawned. When this value is reached no more entities will
spawn.
Spawn after
delay?
Yes If set to Yes, new entities of this type will respawn when the
delay counter has counted down. A setting of No will ignore
the delay parameter.
Spawn when
dead?
Yes If this is set to Yes then the re-spawn will happen after the
entity is destroyed.
Delay 3000 Sets the delay before the entity will spawn again after being
destroyed. The higher the value, the longer it takes to
respawn. Zero means instantly respawn. A single unit
represents a logic cycle. There are thirty logic cycles per
second for entities near to the player, and much fewer cycles
for entities further away.
Delay Random 0 Adds a random amount of time between 0 and this value to
the Delay factor
Number to
spawn
1 Sets the number of entities that will be respawned at the
spawn event. Useful for spawning several clips of ammo or a
nest of enemies in one go.
Qty Random 0 Adds a random quantity between 0 and this value to the
number of entities spawned
Velocity 0 Sets the velocity at which the entity will be travelling when
spawned
Velocity
Random
0 Adds a random velocity between 0 and this value to the initial
entity velocity
Angle 90 Sets the angle of elevation the entity will be pointing when
spawned
Angle Random 0 Adds a random angle between 0 and this value to the initial
angle of elevation
Spawn Life 0 Sets the amount of time in seconds the entity will live for. A
value of zero means the entity will not die due to time
Optional visuals
Texture The primary texture the entity uses to paint itself.
Alt Texture The alternative texture initially hidden until an FPI script tells
the entity to change to the alternative texture.
Transparency 1 A value of zero means the entity will not be semi-transparent.
A value of one means the entity will use any alpha data the
entity texture contains.
Reduce Texture -1 A value of zero means the entity texture is unaffected and will
use the game defaults. A value of minus one means no
texture reduction will take place on the entity, allowing the
entity to reveal maximum visual detail at the cost of memory
consumption.
Physics
Physics on YES The state describing if the entity should use real physics, or
revert to using no physics. Useful for dynamic entities that do
not move, where you wish to speed up your game in certain
areas.
Always Active? No If set to YES the entity will always be active, no matter now
far away the player might be. Useful when you want to ensure
characters always look intelligent no matter where they are in
relation to the player. Remember that AI time is critical, so
don´t have too many entities using this.
Physics Weight 5000 This value controls the actual weight of the entity and will
affect how it behaves in the game. A heavy entity will be hard
to push, impossible to pick up and move very slowly when
being tilted. A light entity will bounce delicately, be easy to
pick up and respond to any effects around it, no matter how
subtle.
Physics Friction 5000 This value controls the rough nature of the surface of the
entity. A small value will mean the entity is smooth and will
slide easily across any surface, whereas a high value will
mean the entity is hard and course, meaning it will resist
being dragged or pushed across the floor.
38
Physics Force
Damage
100 Sets the amount of damage this entity will deal out if it hits
the player or other entity
Rotate If
Thrown
YES When set, this will rotate the object if the player picks it up
and throws it. Useful for more realism when throwing bottles
and cans, though other objects such as crates and square
shapes may benefit from not rotating if the game play
requires that they be stacked.
Explodable? NO If set to YES, the entity will explode when its strength reaches
zero
Explode
Damage
100 Sets the range and amount of damage this entity deals when
it explodes
Ammo
Quantity 1 Sets the number of clips the ammo entity represents. Not to
be confused with individual bullets, which a clip can comprise
a number of. Bullet compliments of weapon clips are fixed to
the weapon you chose.
5.3.4 Ammo Entities
Having a weapon isn´t much use unless it comes with Ammo. Strategically placing 
ammo  in hidden  areas  around  your game will add  to  the game  play  experience 
and  should  ensure  the  user  doesn´t  just  walk  through  shooting  and  not  being 
challenged.  Be  careful,  don´t  hide  all  ammo  - keep  a  balance,  offer  some  in 
obvious places and reward players when they find a hidden stash.
From this point on, the respawn and physics property blocks will not be shown in 
full, so just refer to them above in the weapon properties list.
General
Name assaultrifle_ammo The in-game name for the entity.
Static Mode No The state describing whether the entity is dynamic within
the game or part of the static level geometry.
AI Scripts
Start Appear1.fpi The FPI file that is run when the entity is first created
within the game level.
Main Ammo1.fpi The FPI file that is run during the life of the entity.
Destroy Disappear.fpi The FPI file that is run when the entity is destroyed.
Respawn (see weapon properties)
Optional visuals
Texture The primary texture the entity uses to paint itself.
Alt Texture Ammo_D2.tga The alternative texture initially hidden until an FPI script
tells the entity to change to the alternative texture.
Effect Select an .FX shader file
Transparency 1 A value of zero means the entity will not be semi-
transparent. A value of one means the entity will use
any alpha data the entity texture is using.
Reduce Texture -1 A value of zero means the entity texture is unaffected
and will use the game defaults. A value of minus one
means no texture reduction will take place on the entity,
allowing the entity to reveal maximum visual detail at
the cost of memory consumption.
Physics (see weapon properties)
Ammo
For weapon Scfi\assaultrifle Sets the weapon this ammo belongs to. It defaults to
the weapon that relates to the ammo clip, though can be
changed to refill any weapon in the game.
Quantity 1 Sets the number of ammo clips this entity represents.
5.3.5 Enemy Entities
We advise you to introduce enemies gradually, players don´t want to load up a
game and be blasted to death in seconds. They also don´t want to walk for ages
without seeing sight of any foes. There are plenty of properties you can tweak to
39
make your enemies unique and different. You can also create your own scripts -
this will certainly put your own stamp of creativity on your game.
General
Name conker (grenade) The in-game name for the entity.
Static Mode No The state describing whether the entity is dynamic within
the game or part of the static level geometry.
AI Scripts
Start Appear1.fpi The FPI file that is run when the entity is first created
within the game level.
Main Ammo1.fpi The FPI file that is run during the life of the entity.
Destroy Disappear.fpi The FPI file that is run when the entity is destroyed,
meaning that the entities health has reached zero.
Has weapon Scifi/glaive Sets the name of the weapon the enemy is holding, if
any. Each character has a default weapon, and this can
be changed by selecting a new weapon in this field.
Can Take
Weapon
YES Sets whether the player can take the weapon if any
when the entity enemy dies, with a YES indicating the
player can take the weapon.
Take Weapon
Ammo
1 Sets the number of clips the player will collect along with
the weapon if the player collects the weapon from the
dead entity.
Rate Of Fire 20 Sets the speed at which the enemy fires the weapon at
the player, 0 meaning a constant rate and 100 being
sporadic bursts from time to time.
Shoot People/hunt-shoot... Sets the FPI filename to be used when the entity issues
the USEWEAPON action in the FPI script. Typically
triggered when the enemy sights the player and fires.
View Cone
Angle
50 Sets the horizontal field of view of the entity, used when
the entity is asked to detect the player based on sight. A
low value will give the enemy tunnel vision. A larger
value will provide the enemy with great sight awareness.
Respawn (see weapon properties)
Optional visuals
Texture The primary texture the entity uses to paint itself.
Alt Texture Conker_d2.tga The alternative texture initially hidden until an FPI script
tells the entity to change to the alternative texture.
Effect Select an .FX shader file
Transparency 0 A value of zero means the entity will not be semi-
transparent. A value of one means the entity will use
any alpha data the entity texture is using.
Reduce Texture 0 A value of zero means the entity texture is unaffected
and will use the game defaults. A value of minus one
means no texture reduction will take place on the entity,
allowing the entity to reveal maximum visual detail at
the cost of memory consumption.
Physics (see weapon properties)
Statistics
Lives 1 Sets the number of lives the entity starts the game with.
This value ranges from 1 to as many lives as you want it
to.
Health 100 Sets the initial health level of the entity, which can be
any value greater than zero. If the value is zero, the
entity is invulnerable to damage.
Speed 100 Sets the general speed of the entity, which can be used
by the entity to control movement, animation or any
process that occurs over time.
HurtFall 100 Sets the distance beyond which a fall will hurt the entity
or player. A value of zero means any vertical landing will
hurt, where a value of 200 means the player can safely
drop two layers before it will hurt.
IsImmobile No No means the entity is mobile and can move around and
is affected by forces. Yes means the entity is completely
immobile and will never move.
IsObjective 0 This sets the level objective of the entity. A value of
40
zero means this entity is not an objective, where a value
greater than zero means if the entity is destroyed the
objective number is complete. If two entities share an
objective number, either entity can be used to complete
that objective value. If two entities have different
objective numbers, both entities must be
destroyed/collected to complete the objectives of the
level.
Physics (see weapon properties)
Sound
Soundset robotic Specifies the WAV file that can be accompanied by this
entity. The sound is triggered from certain FPI scripts.
5.3.6 General Entities
The majority of entities used when designing your levels are classed as "General 
Entities¨   Changing the texture or the sound an entity will ensure a unique style 
for your game.
General
Name torch The in-game name for the entity.
Static Mode No The state describing whether the entity is dynamic within
the game or part of the static level geometry.
AI Scripts
Start Appear1.fpi The FPI filename that is run when the entity is first
created within the game level.
Main Default.fpi The FPI filename that is run during the life of the entity.
Destroy Disappear.fpi The FPI filename that is run when the entity is
destroyed, meaning that the entity´s health has reached
zero.
AI Automated
Use Key Holds the name of the entity the player needed to have
collected in order to USE this entity, typically used by a
door to indicate which key unlocks it.
If Used Holds the name of the entity to be activated by the FPI
script used by this entity, typically associated with a door
script waiting for the player to perform the USE action.
Respawn (see weapon properties)
Optional visuals
Texture Texturebank\scifi\ac... The primary texture the entity uses to paint itself.
Alt Texture The alternative texture initially hidden until an FPI script
tells the entity to change to the alternative texture.
Effect Select an .FX shader file
Transparency 0 A value of zero means the entity will not be semi-
transparent. A value of one means the entity will use
any alpha data the entity texture is using.
Reduce Texture 0 A value of zero means the entity texture is unaffected
and will use the game defaults. A value of minus one
means no texture reduction will take place on the entity,
allowing the entity to reveal maximum visual detail at
the cost of memory consumption.
Statistics
Strength 0 Sets the initial strength of the entity, which can be any
value greater than zero. If the value is zero, the entity is
invulnerable to damage.
Speed 100 Sets the general speed of the entity, which can be used
by the entity to control movement, animation or any
process that occurs over time.
IsImmobile No No means the entity is mobile and can move around and
is affected by forces. Yes means the entity is completely
immobile and will never move.
IsObjective 0 This sets the level objective of the entity.
0 = not an objective
39
make your enemies unique and different. You can also create your own scripts -
this will certainly put your own stamp of creativity on your game.
General
Name conker (grenade) The in-game name for the entity.
Static Mode No The state describing whether the entity is dynamic within
the game or part of the static level geometry.
AI Scripts
Start Appear1.fpi The FPI file that is run when the entity is first created
within the game level.
Main Ammo1.fpi The FPI file that is run during the life of the entity.
Destroy Disappear.fpi The FPI file that is run when the entity is destroyed,
meaning that the entities health has reached zero.
Has weapon Scifi/glaive Sets the name of the weapon the enemy is holding, if
any. Each character has a default weapon, and this can
be changed by selecting a new weapon in this field.
Can Take
Weapon
YES Sets whether the player can take the weapon if any
when the entity enemy dies, with a YES indicating the
player can take the weapon.
Take Weapon
Ammo
1 Sets the number of clips the player will collect along with
the weapon if the player collects the weapon from the
dead entity.
Rate Of Fire 20 Sets the speed at which the enemy fires the weapon at
the player, 0 meaning a constant rate and 100 being
sporadic bursts from time to time.
Shoot People/hunt-shoot... Sets the FPI filename to be used when the entity issues
the USEWEAPON action in the FPI script. Typically
triggered when the enemy sights the player and fires.
View Cone
Angle
50 Sets the horizontal field of view of the entity, used when
the entity is asked to detect the player based on sight. A
low value will give the enemy tunnel vision. A larger
value will provide the enemy with great sight awareness.
Respawn (see weapon properties)
Optional visuals
Texture The primary texture the entity uses to paint itself.
Alt Texture Conker_d2.tga The alternative texture initially hidden until an FPI script
tells the entity to change to the alternative texture.
Effect Select an .FX shader file
Transparency 0 A value of zero means the entity will not be semi-
transparent. A value of one means the entity will use
any alpha data the entity texture is using.
Reduce Texture 0 A value of zero means the entity texture is unaffected
and will use the game defaults. A value of minus one
means no texture reduction will take place on the entity,
allowing the entity to reveal maximum visual detail at
the cost of memory consumption.
Physics (see weapon properties)
Statistics
Lives 1 Sets the number of lives the entity starts the game with.
This value ranges from 1 to as many lives as you want it
to.
Health 100 Sets the initial health level of the entity, which can be
any value greater than zero. If the value is zero, the
entity is invulnerable to damage.
Speed 100 Sets the general speed of the entity, which can be used
by the entity to control movement, animation or any
process that occurs over time.
HurtFall 100 Sets the distance beyond which a fall will hurt the entity
or player. A value of zero means any vertical landing will
hurt, where a value of 200 means the player can safely
drop two layers before it will hurt.
IsImmobile No No means the entity is mobile and can move around and
is affected by forces. Yes means the entity is completely
immobile and will never move.
IsObjective 0 This sets the level objective of the entity. A value of
40
zero means this entity is not an objective, where a value
greater than zero means if the entity is destroyed the
objective number is complete. If two entities share an
objective number, either entity can be used to complete
that objective value. If two entities have different
objective numbers, both entities must be
destroyed/collected to complete the objectives of the
level.
Physics (see weapon properties)
Sound
Soundset robotic Specifies the WAV file that can be accompanied by this
entity. The sound is triggered from certain FPI scripts.
5.3.6 General Entities
The majority of entities used when designing your levels are classed as "General 
Entities¨   Changing the texture or the sound an entity will ensure a unique style 
for your game.
General
Name torch The in-game name for the entity.
Static Mode No The state describing whether the entity is dynamic within
the game or part of the static level geometry.
AI Scripts
Start Appear1.fpi The FPI filename that is run when the entity is first
created within the game level.
Main Default.fpi The FPI filename that is run during the life of the entity.
Destroy Disappear.fpi The FPI filename that is run when the entity is
destroyed, meaning that the entity´s health has reached
zero.
AI Automated
Use Key Holds the name of the entity the player needed to have
collected in order to USE this entity, typically used by a
door to indicate which key unlocks it.
If Used Holds the name of the entity to be activated by the FPI
script used by this entity, typically associated with a door
script waiting for the player to perform the USE action.
Respawn (see weapon properties)
Optional visuals
Texture Texturebank\scifi\ac... The primary texture the entity uses to paint itself.
Alt Texture The alternative texture initially hidden until an FPI script
tells the entity to change to the alternative texture.
Effect Select an .FX shader file
Transparency 0 A value of zero means the entity will not be semi-
transparent. A value of one means the entity will use
any alpha data the entity texture is using.
Reduce Texture 0 A value of zero means the entity texture is unaffected
and will use the game defaults. A value of minus one
means no texture reduction will take place on the entity,
allowing the entity to reveal maximum visual detail at
the cost of memory consumption.
Statistics
Strength 0 Sets the initial strength of the entity, which can be any
value greater than zero. If the value is zero, the entity is
invulnerable to damage.
Speed 100 Sets the general speed of the entity, which can be used
by the entity to control movement, animation or any
process that occurs over time.
IsImmobile No No means the entity is mobile and can move around and
is affected by forces. Yes means the entity is completely
immobile and will never move.
IsObjective 0 This sets the level objective of the entity.
0 = not an objective
41
1, 2, 3.. etc ! Is an objective
Only one entity with the same IsObjective value has to
be completed.
Entities with different values must all be completed.
Physics (see weapon properties)
Sound
Sound0 Specifies a sound file that can be called up from one of
the FPIs.
Sound1 Specifies a sound file that can be called up from one of
the FPIs.
5.3.7 Description of the general FPI scripts
The FPI scripts that the default entities use in FPS Creator have specific jobs to
do. A one line filename is not ideal for describing what they do. The purpose of
this list is to explain them better, you can then decide whether they would be
suitable for your current entity or not.
Main FPIs (used by the character entities)
passive.fpi Stands on spot and looks around, non aggressive
follow.fpi Simply follows a waypoint, non aggressive
coward.fpi Follows the nearest waypoint path until shot, then runs away for a time
cautious.fpi Will stand guard on the spot looking around, will run away if shot or player too
close, then calls the shoot FPI when the player is deemed to be at a good range
or the character has nowhere else to run
static.fpi Will stand guard on the spot looking around, then call the shoot FPI if the player
is sighted
pace.fpi Follows the nearest waypoint path until player sighted, then calls the shoot FPI
Crouch.fpi Will stand guard until the player is seen, start shooting, then duck down in an
attempt to not get shot if the player shoots back. Will pop back up after a
random amount of time to attempt another volley of shots.
Strafe.fpi Will strafe left and right at random times from the starting position, shooting the
player if they get the opportunity. They will also automatically strafe randomly
when shot to make it harder for the player to hit them.
Strafeforward.fpi Same behaviour as STRAFE.FPI, with the additional notion that the character
randomly advances on your position
Strafebackward.fpi Same behaviour as STRAFE.FPI, with the additional notion that the character
randomly backs away from the player.
Getinrange.fpi Typically used by grenade throwers, this behaviour allows the character to move
close enough to lob a grenade in the players direction, and move away if the
player gets too close.
Shoot FPIs
throw.fpi Throws projectile weaponry towards player from standing position.
shoot.fpi Shoots from standing position at the player
cover.fpi Duck to medium height and shoots when player in line of sight
snipe.fpi Lies on belly and shoots player from low profile position
shootclose.fpi Tries to get within a 100 units of player by running before shooting
chase.fpi Chase the player and shoots player when has line of sight
Internal FPIs
throwback.fpi Internal script to hurl the character backwards
fthrowfore.fpi Internal script to hurl the character forwards
throwleft.fpi Internal script to hurl the character left
throwright.fpi Internal script to hurl the character right
Destroy FPIs
Crumble.fpi End script used to destroy an entity by playing a crumble animation from it
Fadecorpse.fpi End script used to fade an entity out of the game slowly
Flammable.fpi End script used to trigger an explosion from the entity when it is destroyed
Leavecorpse.fpi End script which leaves the entity in its final resting state as a body in the game
Window.fpi End script used to shatter a pane of glass in the location of the entity (ie glass)
42
General FPIs
Ammo.fpi Main script assigned to items that are to be picked up and used as ammo
Ammoglow.fpi Identical to ammo.fpi script except that it will create a glow effect decal
Appear1.fpi Initialisation script used to make the entity appear instantly
Appear2.fpi Initialation script used to make the entity fade into the game slowly
Appearnofloorlogic.fpi Use this to initialise the entity so that it assumes their entire floor area for
movement has no holes or lumps, useful for faster processing of character
AI
Appearnogravity.fpi Use this to initialise the entity so that it will not obey the normal laws of
physics gravity, and remain neutral to its force which is good for floating
platforms
Appearspawn.fpi This will cause the entity not to leave the appear script until the entity has
been activated, upon which it will activate the spawn feature of the entity.
Autodoor.fpi Main script used to open an animating door when the player or entity gets
close
Controlspawn.fpi This will activate entity spawning when the entity itself is activated, and
switch off spawning when the entity itself is de-activated
Decal.fpi Used to control the emission of a decal from an invisible entity marker
Decalfixed.fpi Identical to decal.fpi except that the decal will not rotate to face the player
Decalflat.fpi Identical to decal.fpi except that the decal faces upwards though flat on
the floor
Default.fpi An empty script to be used when nothing should be done with the entity
Disappear1.fpi End script used to destroy an entity instantly
Disappear2.fpi End script used to destroy the entity by fading it out of the game slowly
Door1.fpi Main script used to open and close a door by player proximity only
Doorkey.fpi Main script used to open a door only when the player has collected the
right key
Doorremote.fpi Main script used to open a door when it has been activated from a remote
switch
Dooruse.fpi Main script used to open a door when the player performs the USE action
on it
Emission.fpi Main script used to create looping decals from an invisible entity position
Follownorotate.fpi Causes an entity to follow a waypoint, and keep its rotation fixed so it will
not turn and face its movement direction, useful for floating platforms.
Healthuse.fpi Main script used to provide the player with health if the entity is USED
Lift1.fpi Main script used to automatically move the lift up and down if player
stands on it
Light1.fpi Main script used to control a dynamic light, default is lit, activated switches
it off
Musicinzone.fpi Will play the music file specified in SOUND0 field for as long as the player
is inside the zone associated with this entity.
Pickup1.fpi Main script used by items that are to be picked up during the game
Pickuphealth.fpi Identical to pickup1.fpi except that in addition, the player receives health
points
Plrhealzone.fpi Main script to give the player health if they are standing in the associated
zone
Plrhurtzone.fpi Main script to take health from player if they are standing in the associated
zone
Plrinzone.fpi Main script which will activate a named entity if the player enters the zone
Plrinzoneactivateused.fpi Similar to PLRINZONE.FPI but will only activate entities with the same
name as that specified in the IFUSED field of the entity associated with this
FPI script
Repeatsound.fpi Initialisation script used to trigger a repeating sound from an entity
Soundloopinzone.fpi Similar to SOUNDINZONE.FPI, but will loop the sound continually instead
of a single playback.
Switch2.fpi Main script to activate an assigned entity if player USES it, close proximity
Switch3.fpi Idenitical to switch2.fpi except that this script is used to control animating
switch
Switch.fpi Identical to switch2.fpi except that this switch can be used from further
away
Transportifused.fpi Main script used to teleport the player to the entity named in IFUSED field
Transporttoexit.fpi Main script used to teleport the player to the Teleport OUT entity only
Weapon.fpi Main script used to handle an entity to be picked up and used as a weapon
Weaponglow.fpi Identical to weapon.fpi except that a decal glow is added to the entity
Zoneactivate.fpi Main script used to activate ALL entities within zone when player stands in
zone
Zoneanyactivate.fpi If any entity enters the zone associated with this entity, it will activate the
entity named in the IF USED field and play the sound specified in the
SOUND0 field
41
1, 2, 3.. etc ! Is an objective
Only one entity with the same IsObjective value has to
be completed.
Entities with different values must all be completed.
Physics (see weapon properties)
Sound
Sound0 Specifies a sound file that can be called up from one of
the FPIs.
Sound1 Specifies a sound file that can be called up from one of
the FPIs.
5.3.7 Description of the general FPI scripts
The FPI scripts that the default entities use in FPS Creator have specific jobs to
do. A one line filename is not ideal for describing what they do. The purpose of
this list is to explain them better, you can then decide whether they would be
suitable for your current entity or not.
Main FPIs (used by the character entities)
passive.fpi Stands on spot and looks around, non aggressive
follow.fpi Simply follows a waypoint, non aggressive
coward.fpi Follows the nearest waypoint path until shot, then runs away for a time
cautious.fpi Will stand guard on the spot looking around, will run away if shot or player too
close, then calls the shoot FPI when the player is deemed to be at a good range
or the character has nowhere else to run
static.fpi Will stand guard on the spot looking around, then call the shoot FPI if the player
is sighted
pace.fpi Follows the nearest waypoint path until player sighted, then calls the shoot FPI
Crouch.fpi Will stand guard until the player is seen, start shooting, then duck down in an
attempt to not get shot if the player shoots back. Will pop back up after a
random amount of time to attempt another volley of shots.
Strafe.fpi Will strafe left and right at random times from the starting position, shooting the
player if they get the opportunity. They will also automatically strafe randomly
when shot to make it harder for the player to hit them.
Strafeforward.fpi Same behaviour as STRAFE.FPI, with the additional notion that the character
randomly advances on your position
Strafebackward.fpi Same behaviour as STRAFE.FPI, with the additional notion that the character
randomly backs away from the player.
Getinrange.fpi Typically used by grenade throwers, this behaviour allows the character to move
close enough to lob a grenade in the players direction, and move away if the
player gets too close.
Shoot FPIs
throw.fpi Throws projectile weaponry towards player from standing position.
shoot.fpi Shoots from standing position at the player
cover.fpi Duck to medium height and shoots when player in line of sight
snipe.fpi Lies on belly and shoots player from low profile position
shootclose.fpi Tries to get within a 100 units of player by running before shooting
chase.fpi Chase the player and shoots player when has line of sight
Internal FPIs
throwback.fpi Internal script to hurl the character backwards
fthrowfore.fpi Internal script to hurl the character forwards
throwleft.fpi Internal script to hurl the character left
throwright.fpi Internal script to hurl the character right
Destroy FPIs
Crumble.fpi End script used to destroy an entity by playing a crumble animation from it
Fadecorpse.fpi End script used to fade an entity out of the game slowly
Flammable.fpi End script used to trigger an explosion from the entity when it is destroyed
Leavecorpse.fpi End script which leaves the entity in its final resting state as a body in the game
Window.fpi End script used to shatter a pane of glass in the location of the entity (ie glass)
42
General FPIs
Ammo.fpi Main script assigned to items that are to be picked up and used as ammo
Ammoglow.fpi Identical to ammo.fpi script except that it will create a glow effect decal
Appear1.fpi Initialisation script used to make the entity appear instantly
Appear2.fpi Initialation script used to make the entity fade into the game slowly
Appearnofloorlogic.fpi Use this to initialise the entity so that it assumes their entire floor area for
movement has no holes or lumps, useful for faster processing of character
AI
Appearnogravity.fpi Use this to initialise the entity so that it will not obey the normal laws of
physics gravity, and remain neutral to its force which is good for floating
platforms
Appearspawn.fpi This will cause the entity not to leave the appear script until the entity has
been activated, upon which it will activate the spawn feature of the entity.
Autodoor.fpi Main script used to open an animating door when the player or entity gets
close
Controlspawn.fpi This will activate entity spawning when the entity itself is activated, and
switch off spawning when the entity itself is de-activated
Decal.fpi Used to control the emission of a decal from an invisible entity marker
Decalfixed.fpi Identical to decal.fpi except that the decal will not rotate to face the player
Decalflat.fpi Identical to decal.fpi except that the decal faces upwards though flat on
the floor
Default.fpi An empty script to be used when nothing should be done with the entity
Disappear1.fpi End script used to destroy an entity instantly
Disappear2.fpi End script used to destroy the entity by fading it out of the game slowly
Door1.fpi Main script used to open and close a door by player proximity only
Doorkey.fpi Main script used to open a door only when the player has collected the
right key
Doorremote.fpi Main script used to open a door when it has been activated from a remote
switch
Dooruse.fpi Main script used to open a door when the player performs the USE action
on it
Emission.fpi Main script used to create looping decals from an invisible entity position
Follownorotate.fpi Causes an entity to follow a waypoint, and keep its rotation fixed so it will
not turn and face its movement direction, useful for floating platforms.
Healthuse.fpi Main script used to provide the player with health if the entity is USED
Lift1.fpi Main script used to automatically move the lift up and down if player
stands on it
Light1.fpi Main script used to control a dynamic light, default is lit, activated switches
it off
Musicinzone.fpi Will play the music file specified in SOUND0 field for as long as the player
is inside the zone associated with this entity.
Pickup1.fpi Main script used by items that are to be picked up during the game
Pickuphealth.fpi Identical to pickup1.fpi except that in addition, the player receives health
points
Plrhealzone.fpi Main script to give the player health if they are standing in the associated
zone
Plrhurtzone.fpi Main script to take health from player if they are standing in the associated
zone
Plrinzone.fpi Main script which will activate a named entity if the player enters the zone
Plrinzoneactivateused.fpi Similar to PLRINZONE.FPI but will only activate entities with the same
name as that specified in the IFUSED field of the entity associated with this
FPI script
Repeatsound.fpi Initialisation script used to trigger a repeating sound from an entity
Soundloopinzone.fpi Similar to SOUNDINZONE.FPI, but will loop the sound continually instead
of a single playback.
Switch2.fpi Main script to activate an assigned entity if player USES it, close proximity
Switch3.fpi Idenitical to switch2.fpi except that this script is used to control animating
switch
Switch.fpi Identical to switch2.fpi except that this switch can be used from further
away
Transportifused.fpi Main script used to teleport the player to the entity named in IFUSED field
Transporttoexit.fpi Main script used to teleport the player to the Teleport OUT entity only
Weapon.fpi Main script used to handle an entity to be picked up and used as a weapon
Weaponglow.fpi Identical to weapon.fpi except that a decal glow is added to the entity
Zoneactivate.fpi Main script used to activate ALL entities within zone when player stands in
zone
Zoneanyactivate.fpi If any entity enters the zone associated with this entity, it will activate the
entity named in the IF USED field and play the sound specified in the
SOUND0 field
43
5.3.8 How Doors and Switches Work
All Doors use an FPI script to control how they work. Some FPI scripts are simple
and others require explanation. Here is a run down of terms you will encounter:
FAKE This means the door is no more than scenery and cannot be opened.
KEY This means the door requires a key to be held by the player, and that the player needs to
perform the USE action on the door to open it. The kind of key depends on the name that
is written in the entity properties for the door, under the field name USE KEY. By default
the key name is simply `Key´, and all keys that are added to the game are called `Key´.
You can increase the number of keys and doors they work on by giving them different
names in the entity properties dialog, such as "BunkerKey¨, "DoorKey, "SafeKey¨, etc.
AUTO This means the door will open automatically when the player or another entity gets too
close to the door. There are two FPI scripts you can use for this type of door. The
DOOR1.FPI which means ONLY the player can open the door, and the AUTODOOR.FPI
which all other characters and the player can open automatically.
REMOTE This means the door is closed and locked until it has been remotely unlocked, which is
done using a SWITCH. Once the door has been unlocked, it will behave just like an AUTO
door. All remote doors share the name `Remote Door´, and all switches by default will
activate any entity called `Remote Door´, except light switches which will activate entities
called `Light´. In the case of remote switches for doors, the term to activate means to
nudge it into action, and the action in the case of a door is to unlock.
As mentioned, in the case of KEY and REMOTE you also need a secondary entity
to complete the logic, which are described here:
KEY This is an entity you can find in the entity items area. Simply drag and drop a key into
your level. The player can then find and pick it up (just by moving close to it), then
when the player USES the key on the door, the door will unlock and open. The USE key
is set to "Enter¨ on the keyboard by default.
SWITCH This is an entity typically found in WALL FURNITURE which can be added to walls, and
when USED by the player will activate any entities in your level called `Remote Door´.
You can change this in the IF USED field of the entity.
LIGHT
SWITCH
This is an entity almost identical to SWITCH, except that it will activate any entity in
your level called `Light´. Note that all entity names can be changed.
5.3.9 Entity Explosions and Debris
Entities can be set up to detonate upon their destruction, causing damage to the
surrounding area. This damage will apply to other entities in range and the
player. The damage is only dealt if there is a direct line of sight between the
exploding entity and the target. This feature is activated when the EXPLODING
field is set in the entity properties of the dynamic entity of your choice.
Some entities can produce debris, the fragments of the entity that make up the
object. There are usually 3 to 5 fragments ejected from the destroyed entity, and
add a touch of realism to the entity being destroyed. These fragment objects
play no part in the gameplay, though they can be pushed around by the player
for a short time before they disappear. There is no property to control this debris
feature, simply the choice of using an entity that does or does not exhibit the
feature.
You can have a lot of fun by setting up objects that explode near enemies,
allowing the player to take out the enemies by them firing at things like exploding
barrels. Play around with values like the strength of an object and the explode
damage property.
44
5.4 Markers
These types of game objects are for setting the start position of the player,
rigging the lighting of the level and creating areas within the level that can create
event based actions.
Types of Markers
Represents where in the level the player will be created at the start. Use the
"R¨ key to rotate the position. Each level of your game should have one of
these. If FPSC does not find the marker you will end up being placed at an
arbitrary position.
Place these throughout your game levels. They dictate where the player will
be re-spawned if the player dies. You should reward players when they have
navigated a difficult section of a level by giving them a new check point. The
player simply walks over the cell where the checkpoint is placed - the game
then knows this is where the player will be returned to should they be killed.
The direction of the arrow is also used, so you can design what the player
sees when they are reborn.
This marks where a light source will be generated within the game´s level.
There are many variables associated with lights - make sure you read up on
the pros and cons of the different light settings.
When you first select a light from the library it will be surrounded by a circle.
This indicates the range that the light will reach. You can change the size of
the range by pressing the "[" and "]¨ keys. The lights range of influence will
expand or shrink depending on the key you press.
Although some basic colour choices are provided in the library, you can easily
change the colour of the light by editing the light´s properties.
An area of the level that has been defined for a certain purpose. The most
basic sub-type is the trigger zone. This has been set-up using an AI script
called "plrinzone.fpi¨. The AI script checks to see if the player has entered the
specified zone, if the player has then another entity can react, maybe turning
lights on or opening a secret door.
FPSC comes with pre-defined zone markers: Heal, Hurt and Win. If the player
walks into the Heal zone then the health of the player will increase. Walking
into the Win zone will trigger the completion of the current level.
This zone marker can be used to trigger off sound files. As the player enters a
new room you could play a sinister piece of music. Or maybe when the player
meets a friendly character a piece of information could be spoken that gives
clues to where better weapons and ammo can be found.
An area of the level that when the player enters the specified zone, an item of
media is played to support the game story. This item of media could be an
AVI animation sequence, or a bitmap displayed on screen, and/or a WAV/OGG
file played to provide a narrative. These zones are triggered only once when
the player enters them for the first time.
5.4.1 Player Start Position Marker
General
Name Player Start The in-game name for the entity.
Has weapon Sets the name of the weapon the player is holding at the
start of the game (if any).
Ammo Quantity 1 Specifies a quantity of ammo clips the player starts with.
Statistics
Lives 3 Sets the number of lives the player starts the game with.
This value ranges from 1 to as many lives as you want.
Most games offer 3 lives but with options to top-up
43
5.3.8 How Doors and Switches Work
All Doors use an FPI script to control how they work. Some FPI scripts are simple
and others require explanation. Here is a run down of terms you will encounter:
FAKE This means the door is no more than scenery and cannot be opened.
KEY This means the door requires a key to be held by the player, and that the player needs to
perform the USE action on the door to open it. The kind of key depends on the name that
is written in the entity properties for the door, under the field name USE KEY. By default
the key name is simply `Key´, and all keys that are added to the game are called `Key´.
You can increase the number of keys and doors they work on by giving them different
names in the entity properties dialog, such as "BunkerKey¨, "DoorKey, "SafeKey¨, etc.
AUTO This means the door will open automatically when the player or another entity gets too
close to the door. There are two FPI scripts you can use for this type of door. The
DOOR1.FPI which means ONLY the player can open the door, and the AUTODOOR.FPI
which all other characters and the player can open automatically.
REMOTE This means the door is closed and locked until it has been remotely unlocked, which is
done using a SWITCH. Once the door has been unlocked, it will behave just like an AUTO
door. All remote doors share the name `Remote Door´, and all switches by default will
activate any entity called `Remote Door´, except light switches which will activate entities
called `Light´. In the case of remote switches for doors, the term to activate means to
nudge it into action, and the action in the case of a door is to unlock.
As mentioned, in the case of KEY and REMOTE you also need a secondary entity
to complete the logic, which are described here:
KEY This is an entity you can find in the entity items area. Simply drag and drop a key into
your level. The player can then find and pick it up (just by moving close to it), then
when the player USES the key on the door, the door will unlock and open. The USE key
is set to "Enter¨ on the keyboard by default.
SWITCH This is an entity typically found in WALL FURNITURE which can be added to walls, and
when USED by the player will activate any entities in your level called `Remote Door´.
You can change this in the IF USED field of the entity.
LIGHT
SWITCH
This is an entity almost identical to SWITCH, except that it will activate any entity in
your level called `Light´. Note that all entity names can be changed.
5.3.9 Entity Explosions and Debris
Entities can be set up to detonate upon their destruction, causing damage to the
surrounding area. This damage will apply to other entities in range and the
player. The damage is only dealt if there is a direct line of sight between the
exploding entity and the target. This feature is activated when the EXPLODING
field is set in the entity properties of the dynamic entity of your choice.
Some entities can produce debris, the fragments of the entity that make up the
object. There are usually 3 to 5 fragments ejected from the destroyed entity, and
add a touch of realism to the entity being destroyed. These fragment objects
play no part in the gameplay, though they can be pushed around by the player
for a short time before they disappear. There is no property to control this debris
feature, simply the choice of using an entity that does or does not exhibit the
feature.
You can have a lot of fun by setting up objects that explode near enemies,
allowing the player to take out the enemies by them firing at things like exploding
barrels. Play around with values like the strength of an object and the explode
damage property.
44
5.4 Markers
These types of game objects are for setting the start position of the player,
rigging the lighting of the level and creating areas within the level that can create
event based actions.
Types of Markers
Represents where in the level the player will be created at the start. Use the
"R¨ key to rotate the position. Each level of your game should have one of
these. If FPSC does not find the marker you will end up being placed at an
arbitrary position.
Place these throughout your game levels. They dictate where the player will
be re-spawned if the player dies. You should reward players when they have
navigated a difficult section of a level by giving them a new check point. The
player simply walks over the cell where the checkpoint is placed - the game
then knows this is where the player will be returned to should they be killed.
The direction of the arrow is also used, so you can design what the player
sees when they are reborn.
This marks where a light source will be generated within the game´s level.
There are many variables associated with lights - make sure you read up on
the pros and cons of the different light settings.
When you first select a light from the library it will be surrounded by a circle.
This indicates the range that the light will reach. You can change the size of
the range by pressing the "[" and "]¨ keys. The lights range of influence will
expand or shrink depending on the key you press.
Although some basic colour choices are provided in the library, you can easily
change the colour of the light by editing the light´s properties.
An area of the level that has been defined for a certain purpose. The most
basic sub-type is the trigger zone. This has been set-up using an AI script
called "plrinzone.fpi¨. The AI script checks to see if the player has entered the
specified zone, if the player has then another entity can react, maybe turning
lights on or opening a secret door.
FPSC comes with pre-defined zone markers: Heal, Hurt and Win. If the player
walks into the Heal zone then the health of the player will increase. Walking
into the Win zone will trigger the completion of the current level.
This zone marker can be used to trigger off sound files. As the player enters a
new room you could play a sinister piece of music. Or maybe when the player
meets a friendly character a piece of information could be spoken that gives
clues to where better weapons and ammo can be found.
An area of the level that when the player enters the specified zone, an item of
media is played to support the game story. This item of media could be an
AVI animation sequence, or a bitmap displayed on screen, and/or a WAV/OGG
file played to provide a narrative. These zones are triggered only once when
the player enters them for the first time.
5.4.1 Player Start Position Marker
General
Name Player Start The in-game name for the entity.
Has weapon Sets the name of the weapon the player is holding at the
start of the game (if any).
Ammo Quantity 1 Specifies a quantity of ammo clips the player starts with.
Statistics
Lives 3 Sets the number of lives the player starts the game with.
This value ranges from 1 to as many lives as you want.
Most games offer 3 lives but with options to top-up
45
health frequently scattered about.
Health 500 Sets the initial health level of the player, which can be
any value greater than zero. If the value is zero, the
player is invulnerable to damage.
Speed 100 Sets the general speed of the player, which can be used
by the player to control movement, animation or any
process that occurs over time. Don´t set this too high,
otherwise the physics system will become unstable.
HurtFall 100 Sets the distance beyond which a fall will hurt the player.
A value of zero means any vertical landing will hurt,
where a value of 200 means the player can safely drop
two layers before it will hurt.
Sound
Soundset player Specifies the WAV file that can be accompanied by this
entity. The sound is triggered from certain FPI scripts.
In the case of player start marker and characters, this
field specifies the sound folder that holds a range of
human and robotic noises.
5.4.2 Player Checkpoint Marker
General
Name Player Checkpoint The in-game name for the entity.
Sound
Sound0 Specifies either a WAV or OGG file that can be
accompanied by this entity. In this case, the sound that
indicates the player has reached a check point in the
level.
5.4.3 Light Markers
As a default there are no lights in an FPSC level, you have to add them. In order
to make the learning curve as gentle as possible we have added artificial ambient
light as the default illumination when there are no user created lights to
illuminate the scene. This ambient light is set bright so you can see everything
clearly in full colour, however it offers no opportunity for mood or shadows.
There are two types of light you can add to your level, static and dynamic lights.
Static lights are lights that calculate how your level should be illuminated and are
then burned into your textures for the final game (the process known as light-
mapping). This means any lighting you have created with static lights are
permanent and cannot be changed during the game. Dynamic lights can be
changed during the course of the game, and can be used to add lights which can
switch on and off, such as a room with a light switch. Dynamic lights do not cast
shadows on objects when light-mapping is performed.
All added lights default to static because they are the most performance friendly
of the two choices and will give you a faster game. Dynamic lights take up extra
processing and too many of them in any one area will slow down your game.
Dynamic lights are also constrained by using a fixed function pipeline which
means there are only 6 actual hardware lights at any one time, and the
impression of more than 6 lights is worked out by averaging colour and light
positions to best effect. Naturally this may create visual curiosities when many
dynamic lights are close together. It is suggested you keep your dynamic lights
spread far apart and never have more than six dynamic lights that overlap their
light range significantly or you will notice the averaging system change the light
play as you walk through the lighted area to an `unrealistic´ extent.
46
Lights can be changed in terms of their colour and the range they can cast light,
with a number of default choices already provided in the MARKERS section of the
library. You can change the range and colour of the light by right clicking on any
light you have added, and modifying the fields in the properties panel that pops
up. You can also visually change the range of the light using the shortcut keys [
and ].
Light Switches
To create a room with a light and a light switch, you have to create a room, drop
in a light and set that light to be dynamic. You can do this by simply pressing the
Y key which toggles the light state away from static. Then drop in a light switch
from the "entities\wall furniture¨ selection and place the switch on any wall
surface. Now run the test game, go up to the switch and press the ENTER key to
begin switching on and off. You will notice the dynamic light automatically
switches on and off in response. The switch was automatically linked to the light
by way of the entity names.
To create more switches and lights, you need to change two things: The name of
the extra dynamic lights and the field within the switch properties that control
which entity the switch affects. A good naming convention will keep track of all
your switches and all your lights (i.e. Hallway Light Switch -> IFUSED!Hallway
Light).
“FPSCreator/Files/Mapbank/Tutorials/Dynamic and Static Lights.fpm”
The only cost to having many static lights is the amount of extra texture memory
used to store all the level lighting changes. Static lights represent the best way
to atmospherically light your levels. We suggest you use dynamic lights only
when they are a key element of the gameplay.
Here are the properties of a light marker:
General
Name Light (White) The in-game name for the light entity.
Static Mode Yes Defines if the light is a static or dynamic light.
AI Scripts
Start Appear1.fpi The FPI filename that is run when the entity is first
created within the game level.
Main Light1.fpi The FPI filename that is run during the life of the entity.
Destroy Disappear.fpi The FPI filename that is run when the entity is
destroyed, meaning that the entities health has reached
zero. Lights can be destroyed in this way, and a
destroyed dynamic light does not affect the scene.
Light
Light Range 500 Sets the range the light can illuminate. A value of zero
means the light will not illuminate anything, and a value
of 200 will illuminate two segment tiles in a spherical
radius.
Light Color [ ] ffffff Sets the colour of the light using a colour picker, with
which you can choose the colour of the illumination. The
colour is also shown in hexadecimal format (which you
don´t need to understand).
45
health frequently scattered about.
Health 500 Sets the initial health level of the player, which can be
any value greater than zero. If the value is zero, the
player is invulnerable to damage.
Speed 100 Sets the general speed of the player, which can be used
by the player to control movement, animation or any
process that occurs over time. Don´t set this too high,
otherwise the physics system will become unstable.
HurtFall 100 Sets the distance beyond which a fall will hurt the player.
A value of zero means any vertical landing will hurt,
where a value of 200 means the player can safely drop
two layers before it will hurt.
Sound
Soundset player Specifies the WAV file that can be accompanied by this
entity. The sound is triggered from certain FPI scripts.
In the case of player start marker and characters, this
field specifies the sound folder that holds a range of
human and robotic noises.
5.4.2 Player Checkpoint Marker
General
Name Player Checkpoint The in-game name for the entity.
Sound
Sound0 Specifies either a WAV or OGG file that can be
accompanied by this entity. In this case, the sound that
indicates the player has reached a check point in the
level.
5.4.3 Light Markers
As a default there are no lights in an FPSC level, you have to add them. In order
to make the learning curve as gentle as possible we have added artificial ambient
light as the default illumination when there are no user created lights to
illuminate the scene. This ambient light is set bright so you can see everything
clearly in full colour, however it offers no opportunity for mood or shadows.
There are two types of light you can add to your level, static and dynamic lights.
Static lights are lights that calculate how your level should be illuminated and are
then burned into your textures for the final game (the process known as light-
mapping). This means any lighting you have created with static lights are
permanent and cannot be changed during the game. Dynamic lights can be
changed during the course of the game, and can be used to add lights which can
switch on and off, such as a room with a light switch. Dynamic lights do not cast
shadows on objects when light-mapping is performed.
All added lights default to static because they are the most performance friendly
of the two choices and will give you a faster game. Dynamic lights take up extra
processing and too many of them in any one area will slow down your game.
Dynamic lights are also constrained by using a fixed function pipeline which
means there are only 6 actual hardware lights at any one time, and the
impression of more than 6 lights is worked out by averaging colour and light
positions to best effect. Naturally this may create visual curiosities when many
dynamic lights are close together. It is suggested you keep your dynamic lights
spread far apart and never have more than six dynamic lights that overlap their
light range significantly or you will notice the averaging system change the light
play as you walk through the lighted area to an `unrealistic´ extent.
46
Lights can be changed in terms of their colour and the range they can cast light,
with a number of default choices already provided in the MARKERS section of the
library. You can change the range and colour of the light by right clicking on any
light you have added, and modifying the fields in the properties panel that pops
up. You can also visually change the range of the light using the shortcut keys [
and ].
Light Switches
To create a room with a light and a light switch, you have to create a room, drop
in a light and set that light to be dynamic. You can do this by simply pressing the
Y key which toggles the light state away from static. Then drop in a light switch
from the "entities\wall furniture¨ selection and place the switch on any wall
surface. Now run the test game, go up to the switch and press the ENTER key to
begin switching on and off. You will notice the dynamic light automatically
switches on and off in response. The switch was automatically linked to the light
by way of the entity names.
To create more switches and lights, you need to change two things: The name of
the extra dynamic lights and the field within the switch properties that control
which entity the switch affects. A good naming convention will keep track of all
your switches and all your lights (i.e. Hallway Light Switch -> IFUSED!Hallway
Light).
“FPSCreator/Files/Mapbank/Tutorials/Dynamic and Static Lights.fpm”
The only cost to having many static lights is the amount of extra texture memory
used to store all the level lighting changes. Static lights represent the best way
to atmospherically light your levels. We suggest you use dynamic lights only
when they are a key element of the gameplay.
Here are the properties of a light marker:
General
Name Light (White) The in-game name for the light entity.
Static Mode Yes Defines if the light is a static or dynamic light.
AI Scripts
Start Appear1.fpi The FPI filename that is run when the entity is first
created within the game level.
Main Light1.fpi The FPI filename that is run during the life of the entity.
Destroy Disappear.fpi The FPI filename that is run when the entity is
destroyed, meaning that the entities health has reached
zero. Lights can be destroyed in this way, and a
destroyed dynamic light does not affect the scene.
Light
Light Range 500 Sets the range the light can illuminate. A value of zero
means the light will not illuminate anything, and a value
of 200 will illuminate two segment tiles in a spherical
radius.
Light Color [ ] ffffff Sets the colour of the light using a colour picker, with
which you can choose the colour of the illumination. The
colour is also shown in hexadecimal format (which you
don´t need to understand).
47
5.4.4 Zone Markers
Zone markers are invisible to the player of the game but they provide you with a
tool for setting up gaming events, such as the sound of an alarm triggering as the
player enters a room, or you could spawn hidden enemies to attach the player.
Zones are easily placed and if you hold down the Shift key, you can stretch them
over larger areas and even across layers.
The property list of zone markers is:
General
Name Trigger Zone The in-game name for the entity.
AI Scripts
Init Appear1.fpi The FPI file that is run when the entity is first created
within the game level.
Main plrinzone.fpi The FPI file that is run during the life of the entity.
Destroy Disappear.fpi The FPI file that is run when the entity is destroyed,
meaning that the entity´s health has reached zero. A
destroyed marker will no longer affect the level.
If Used Remote Door Name of the entity that will be activated when this zone
marker is triggered off.
Statistics
IsObjective 0 This sets the level objective of the entity.
0 ! not an objective
1, 2, 3.. etc ! Is an objective
Only one entity with the same IsObjective value has to
be completed.
Entities with different values must all be completed.
Sound
Sound0 Hello.wav The sound played when the player enters the trigger
zone.
The different zone markers that you can select from the library each call different
fpi files during the game. So the hurt zone marker calls plrhurtinzone.fpi, the heal
zone calls plrhealinzone.fpi and the win zone calls plrinzone.fpi. These fpi files
directly control the health and state of the game.
48
5.4.5 Story Marker
This marker provides the tools for you to script a story to your single player
games. As soon as the player enters a story zone, the game freezes and the
selected video file or image file is displayed to the player. Pressing a mouse
button or key will remove this image and the player continues the game.
A story zone has a media section in its properties.
Media
Audio storytrigger.ogg The sound played when the player enters the story zone.
Visual storyvideo.avi A video or image file that will be displayed as soon as the
player enters the story zone area.
5.4.6 Stretching a marker over layers
It is possible to create a marker area that stretches over 2 or more layers. You
might want to do this to create say a large hurt zone in a deep pit.
To achieve this you need to follow this control process:
1. Select and place a zone
2. Hold down the Shift key and Hold down left click over the marker icon
3. While left click is held down, release the shift key
4. While left click is held down move the mouse around
5. While left click is held down, press + and - to navigate up and down the layers
6. Release left click to complete the resizing of the zone
47
5.4.4 Zone Markers
Zone markers are invisible to the player of the game but they provide you with a
tool for setting up gaming events, such as the sound of an alarm triggering as the
player enters a room, or you could spawn hidden enemies to attach the player.
Zones are easily placed and if you hold down the Shift key, you can stretch them
over larger areas and even across layers.
The property list of zone markers is:
General
Name Trigger Zone The in-game name for the entity.
AI Scripts
Init Appear1.fpi The FPI file that is run when the entity is first created
within the game level.
Main plrinzone.fpi The FPI file that is run during the life of the entity.
Destroy Disappear.fpi The FPI file that is run when the entity is destroyed,
meaning that the entity´s health has reached zero. A
destroyed marker will no longer affect the level.
If Used Remote Door Name of the entity that will be activated when this zone
marker is triggered off.
Statistics
IsObjective 0 This sets the level objective of the entity.
0 ! not an objective
1, 2, 3.. etc ! Is an objective
Only one entity with the same IsObjective value has to
be completed.
Entities with different values must all be completed.
Sound
Sound0 Hello.wav The sound played when the player enters the trigger
zone.
The different zone markers that you can select from the library each call different
fpi files during the game. So the hurt zone marker calls plrhurtinzone.fpi, the heal
zone calls plrhealinzone.fpi and the win zone calls plrinzone.fpi. These fpi files
directly control the health and state of the game.
48
5.4.5 Story Marker
This marker provides the tools for you to script a story to your single player
games. As soon as the player enters a story zone, the game freezes and the
selected video file or image file is displayed to the player. Pressing a mouse
button or key will remove this image and the player continues the game.
A story zone has a media section in its properties.
Media
Audio storytrigger.ogg The sound played when the player enters the story zone.
Visual storyvideo.avi A video or image file that will be displayed as soon as the
player enters the story zone area.
5.4.6 Stretching a marker over layers
It is possible to create a marker area that stretches over 2 or more layers. You
might want to do this to create say a large hurt zone in a deep pit.
To achieve this you need to follow this control process:
1. Select and place a zone
2. Hold down the Shift key and Hold down left click over the marker icon
3. While left click is held down, release the shift key
4. While left click is held down move the mouse around
5. While left click is held down, press + and - to navigate up and down the layers
6. Release left click to complete the resizing of the zone
49
6 More Map Editing Information
6.1 Cursor Editing States
The 3D editor will change visually to help you identify the mode you are currently
using. The full list is described here:
Left mouse button Right mouse button Images of 3D cursor Key short cut
Paint all segment Delete segment
A
Paint only the Floor
section of a segment
Delete Floor F
Paint only wall section
of a segment
Delete wall
W
Use "R¨ to rotate
arrow
Pick full sgment from
the map
n/a K
Paint an overlay
segment onto a full
segment
Delete overlay
Use "R¨ to rotate
overlay
Paint a segment
overlay in the
direction indicated by
the arrows.
Delete segment
Use "R¨ to rotate
overlay
50
6.2 Editor Indicators
As your levels increase in complexity it can be hard to remember where
everything is placed. The editor provides some visual clues to help you locate
where entities have been scattered around. If a segment contains one or more
entities it will have a red disc in the centre when viewed in blue print mode, for
example:
Red discs indicate one or more entities in the segment zone,
orange discs indicate a player check point marker.
6.3 3D Clipping Modes
To see inside corridor segments, press the TAB key. This will hide all layers above
and below the layer you are currently editing and it will also remove the top half
of the layer being edited, revealing the inside of the corridor. This makes
placement of entities and markers much easier.
There are three states to the TAB key:
State 1: View current layer and five layers below and above
Allows you to get a feel of how the current layer will align with any layers below
or above it. The Editor has to render up to 11 layers at once, so you may only
want to turn this on to see how you are doing and then revert back to viewing
only the current layer.
State 2: View current layer only
Displays only the current layer. This state is the fastest for the editor to render.
State 3: View and clip current layer
Sometimes you will want to place entities into corridors. Because the corridors
are self contained with their own ceiling, you will need this mode to cut off the
ceiling to see where to place your entities.
49
6 More Map Editing Information
6.1 Cursor Editing States
The 3D editor will change visually to help you identify the mode you are currently
using. The full list is described here:
Left mouse button Right mouse button Images of 3D cursor Key short cut
Paint all segment Delete segment
A
Paint only the Floor
section of a segment
Delete Floor F
Paint only wall section
of a segment
Delete wall
W
Use "R¨ to rotate
arrow
Pick full sgment from
the map
n/a K
Paint an overlay
segment onto a full
segment
Delete overlay
Use "R¨ to rotate
overlay
Paint a segment
overlay in the
direction indicated by
the arrows.
Delete segment
Use "R¨ to rotate
overlay
50
6.2 Editor Indicators
As your levels increase in complexity it can be hard to remember where
everything is placed. The editor provides some visual clues to help you locate
where entities have been scattered around. If a segment contains one or more
entities it will have a red disc in the centre when viewed in blue print mode, for
example:
Red discs indicate one or more entities in the segment zone,
orange discs indicate a player check point marker.
6.3 3D Clipping Modes
To see inside corridor segments, press the TAB key. This will hide all layers above
and below the layer you are currently editing and it will also remove the top half
of the layer being edited, revealing the inside of the corridor. This makes
placement of entities and markers much easier.
There are three states to the TAB key:
State 1: View current layer and five layers below and above
Allows you to get a feel of how the current layer will align with any layers below
or above it. The Editor has to render up to 11 layers at once, so you may only
want to turn this on to see how you are doing and then revert back to viewing
only the current layer.
State 2: View current layer only
Displays only the current layer. This state is the fastest for the editor to render.
State 3: View and clip current layer
Sometimes you will want to place entities into corridors. Because the corridors
are self contained with their own ceiling, you will need this mode to cut off the
ceiling to see where to place your entities.
51
6.4 Special Media
The media supplied with FPS Creator includes some unique entities and segment
overlays. We will look at these in detail here.
6.4.1 Gantries
You will find gantries in the "platforms¨ section of a segment media library. Their
purpose is to create walkways and crossovers in rooms, like this:
Gantries overlay onto solid segments like rooms. There are different shapes of
gantries to allow the creation of complex gantry walkways, they include:
T Junction Corner Cross over Dead end Straight
By mixing these and using the R key to rotate them, you can create complex
structures:
52
6.4.2 Lifts
There are three sections to lifts, a lift base, lift tube and lift top. Whenever you
build a lift you at least need a lift base and lift top. The height of the lift depends
on how many lift tubes you put in between the base and top.
Base of lift Tube section Top of lift
Here´s an example of a lift built into a level:
The  pad  on  which  the  player  is  moved  up  and  down the  lift  is  located  in  the 
segment with  the `(platform)´  text in the name.  There are two  segments which 
contain this pad, one that starts at the base section and one that starts at the top 
section. Also note that enemies cannot operate lifts or follow you into them.
When  you build a lift shaft you  also  have to use doors to provide  entrances  and 
exits.
An example of two lifts can be studied in this demo map:
“FPSCreator/Files/Mapbank/Tutorials/Lift_example01.fpm”
6.4.3 Teleports
Another cool way to add complexity and puzzles into your games is to use
Teleports. There are two teleport types:
Teleport IN Segment Teleport OUT Segment
51
6.4 Special Media
The media supplied with FPS Creator includes some unique entities and segment
overlays. We will look at these in detail here.
6.4.1 Gantries
You will find gantries in the "platforms¨ section of a segment media library. Their
purpose is to create walkways and crossovers in rooms, like this:
Gantries overlay onto solid segments like rooms. There are different shapes of
gantries to allow the creation of complex gantry walkways, they include:
T Junction Corner Cross over Dead end Straight
By mixing these and using the R key to rotate them, you can create complex
structures:
52
6.4.2 Lifts
There are three sections to lifts, a lift base, lift tube and lift top. Whenever you
build a lift you at least need a lift base and lift top. The height of the lift depends
on how many lift tubes you put in between the base and top.
Base of lift Tube section Top of lift
Here´s an example of a lift built into a level:
The  pad  on  which  the  player  is  moved  up  and  down the  lift  is  located  in  the 
segment with  the `(platform)´  text in the name.  There are two  segments which 
contain this pad, one that starts at the base section and one that starts at the top 
section. Also note that enemies cannot operate lifts or follow you into them.
When  you build a lift shaft you  also  have to use doors to provide  entrances  and 
exits.
An example of two lifts can be studied in this demo map:
“FPSCreator/Files/Mapbank/Tutorials/Lift_example01.fpm”
6.4.3 Teleports
Another cool way to add complexity and puzzles into your games is to use
Teleports. There are two teleport types:
Teleport IN Segment Teleport OUT Segment
53
Simply place the teleport IN segment where you want a player to be teleported
from. The game engine will then reposition the player at the location of the
teleport OUT segment.
By renaming teleport IN and teleport OUT segments you can create multiple
teleports within a level.
54
6.5 Waypoints
Enemy characters can move in many ways. FPS Creator keeps everything open
ended so you can decide how you want enemies to behave. One of the ways they
can move is via waypoints.
Waypoints are path routes that an enemy will follow. They are easily created and
an enemy who has the correct AI routine will automatically find and follow it.
Let´s explore the icons and keys that are used for waypoint editing.
6.5.1 Creating a New Waypoint
When you click on this icon a waypoint node will be created in the centre of the
screen, it is positioned at the ground level of the layer you are currently editing.
The node is star shaped and looks like this:
To add another node: Point the mouse at the node you wish to add another node
to. Press the left mouse button while also holding down the shift key. A new node
is created to the top right of the current node as seen here:
You can drag any waypoint node to a new location by left clicking on the node
and whilst keeping the left mouse button held down move the mouse to its new
location:
By adding more nodes and with careful positioning of them it is easy to create
complex path routes for the enemies in your game, e.g.:
53
Simply place the teleport IN segment where you want a player to be teleported
from. The game engine will then reposition the player at the location of the
teleport OUT segment.
By renaming teleport IN and teleport OUT segments you can create multiple
teleports within a level.
54
6.5 Waypoints
Enemy characters can move in many ways. FPS Creator keeps everything open
ended so you can decide how you want enemies to behave. One of the ways they
can move is via waypoints.
Waypoints are path routes that an enemy will follow. They are easily created and
an enemy who has the correct AI routine will automatically find and follow it.
Let´s explore the icons and keys that are used for waypoint editing.
6.5.1 Creating a New Waypoint
When you click on this icon a waypoint node will be created in the centre of the
screen, it is positioned at the ground level of the layer you are currently editing.
The node is star shaped and looks like this:
To add another node: Point the mouse at the node you wish to add another node
to. Press the left mouse button while also holding down the shift key. A new node
is created to the top right of the current node as seen here:
You can drag any waypoint node to a new location by left clicking on the node
and whilst keeping the left mouse button held down move the mouse to its new
location:
By adding more nodes and with careful positioning of them it is easy to create
complex path routes for the enemies in your game, e.g.:
55
You can create more than one waypoint path. Click on the "create new waypoint¨
icon and start a new route. The new waypoint will be in a new colour to help you
distinguish it:
6.5.2 Linking Waypoints
Way points can also link up with each other. By linking waypoints you can create
multiple routes for enemies. In this next screen shot you can see a barracks room
with 6 different routes for the guards to follow:
“FPSCreator/Files/Mapbank/Tutorials/Waypoint01.fpm”
56
The process of linking is easy. Just create two or more waypoint paths and then
drag a node from one waypoint on-top of a node from another waypoint.
Start with two or more way point routes.
Left click and drag one of the nodes from one of
the waypoints.
Line the dragged node with the node on the other
waypoint and release the mouse button. The
nodes are now linked.
Click and drag the linked node and both waypoint
paths will accommodate the movement.
6.5.3 Waypoints across Layers
It´s  possible  to  lay  waypoints  up  and  down  the  layers  of  your  levels.  This 
sequence shows how to achieve this:
Viewing Layer 5 with a waypoint ending at the
foot of a staircase.
Left click on the end node and press + to move
up to Layer 6. The lower layer waypoints are
shown in red now.
Add more nodes to the path on Layer 6. Tab pressed to reveal layer below.
“FPSCreator/Files/Mapbank/Tutorials/Waypoint02.fpm”
55
You can create more than one waypoint path. Click on the "create new waypoint¨
icon and start a new route. The new waypoint will be in a new colour to help you
distinguish it:
6.5.2 Linking Waypoints
Way points can also link up with each other. By linking waypoints you can create
multiple routes for enemies. In this next screen shot you can see a barracks room
with 6 different routes for the guards to follow:
“FPSCreator/Files/Mapbank/Tutorials/Waypoint01.fpm”
56
The process of linking is easy. Just create two or more waypoint paths and then
drag a node from one waypoint on-top of a node from another waypoint.
Start with two or more way point routes.
Left click and drag one of the nodes from one of
the waypoints.
Line the dragged node with the node on the other
waypoint and release the mouse button. The
nodes are now linked.
Click and drag the linked node and both waypoint
paths will accommodate the movement.
6.5.3 Waypoints across Layers
It´s  possible  to  lay  waypoints  up  and  down  the  layers  of  your  levels.  This 
sequence shows how to achieve this:
Viewing Layer 5 with a waypoint ending at the
foot of a staircase.
Left click on the end node and press + to move
up to Layer 6. The lower layer waypoints are
shown in red now.
Add more nodes to the path on Layer 6. Tab pressed to reveal layer below.
“FPSCreator/Files/Mapbank/Tutorials/Waypoint02.fpm”
57
6.5.4 Waypoint command list
Create new waypoint Click on this icon
Waypoint editing mode W key or click on this icon
Add new node to waypoint
Shift+Left Mouse Click pointing at a node
Delete a node from a waypoint
Shift+Right Mouse Click pointing at a node
Move a waypoint
Left Click and drag a node
Link waypoints
Left drag a node onto another waypoint node
Remove waypoint link
Right click on linked node
Show/Hide Waypoints
Press the space bar to show or hide waypoints. Use this when
you are working with segments and entities and want to hide
the waypoints that may be disrupting your view.
58
7 Testing and Previewing Levels
The job of the editor is to provide you with a visual representation of your game
levels. The game play aspects can only be seen once you actually "Test Level¨ or
"Build Game¨. When you are editing, you are essentially editing just one of the
levels from your game. At any time you can try out your level by using one of two
icons from the tool bar.
7.1 Test Level
When you click on this icon FPSC creates your level from the segments and
entities painted into it. The time it takes to construct the level will depend on the
complexity of the level. Once the process is completed you will see this window,
click the OK button to test the game.
This will launch you into the constructed level which you can try out from a game
play point of view. To play the game, press W/A/S/D to move, Space bar to jump,
C to crawl, hold Shift down to run, Enter to Use objects like doors, Q and E to
peek around corners (enemies will not see you). Weapon selection is on the 1
through to 9 number keys on the main keyboard. To reload a weapon press R and
to fire press the left mouse button. Some weapons have a zoom lens, use the
right mouse button to look through these.
When you´re done, press the Escape key and you´ll be brought back to the editor.
The settings used in the tested game are taken from the Preferences window:
57
6.5.4 Waypoint command list
Create new waypoint Click on this icon
Waypoint editing mode W key or click on this icon
Add new node to waypoint
Shift+Left Mouse Click pointing at a node
Delete a node from a waypoint
Shift+Right Mouse Click pointing at a node
Move a waypoint
Left Click and drag a node
Link waypoints
Left drag a node onto another waypoint node
Remove waypoint link
Right click on linked node
Show/Hide Waypoints
Press the space bar to show or hide waypoints. Use this when
you are working with segments and entities and want to hide
the waypoints that may be disrupting your view.
58
7 Testing and Previewing Levels
The job of the editor is to provide you with a visual representation of your game
levels. The game play aspects can only be seen once you actually "Test Level¨ or
"Build Game¨. When you are editing, you are essentially editing just one of the
levels from your game. At any time you can try out your level by using one of two
icons from the tool bar.
7.1 Test Level
When you click on this icon FPSC creates your level from the segments and
entities painted into it. The time it takes to construct the level will depend on the
complexity of the level. Once the process is completed you will see this window,
click the OK button to test the game.
This will launch you into the constructed level which you can try out from a game
play point of view. To play the game, press W/A/S/D to move, Space bar to jump,
C to crawl, hold Shift down to run, Enter to Use objects like doors, Q and E to
peek around corners (enemies will not see you). Weapon selection is on the 1
through to 9 number keys on the main keyboard. To reload a weapon press R and
to fire press the left mouse button. Some weapons have a zoom lens, use the
right mouse button to look through these.
When you´re done, press the Escape key and you´ll be brought back to the editor.
The settings used in the tested game are taken from the Preferences window:
59
The settings include Lighting and shadows, pixel shader effects, texture quality,
optimisations and debug information.
Lighting and shadows
Dynamic Lights: Turn this off if you want to see the level with no dynamic
lighting.
Lightmap Settings
A look of quality can be added to your game by using shadows. FPSC uses a well
know system called light mapping to achieve realistic shadowing. Lightmaps are
extra details added to the geometry of your level and must be calculated when
the game is built. Choose from one of three following settings: No Lightmapping,
Quick Light Mapping and Full Light Mapping. For more details on each see the
extra information in the next Chapter.
Effects
Choose to see your level with or without pixel shader (if any segments or entities
are using them). You´ll need a fast graphics card to make good use of pixel
shaders, otherwise you will suffer slow frame rates.
If your 3D card can handle pixel and vertex shaders 2.0, then you will see this
type of performance increase:
No pixel shaders Full effects
The effects supported include cube mapping on the windows, bump mapping on
the Aiko character and illumination mapping on the wall textures (the lights on
the walls are all bright. This first implementation of shaders is a first step, we
plan to add more effects as we further develop FPS Creator. Also note that these
effects are only relevant to the Sci Fi graphics. The WW2 graphics do not have
bump and illumination texture maps.
Texture
Set the texture quality of the graphics, the higher the value, the more defined the
results will be.
Optimisations
You can choose to add an automatic floor with this flag. The floor style will be
taken from the floor positioned at the very top left corner of layer zero.
Debug
Choose to view information on all entities that you encounter during the test
game process. You can also view visual information like the viewing cone of an
enemy.
60
7.2 Level Profiler
When you are testing a level you can call up the level profiler which will help you
to optimise your level designs. Press the TAB key when in Test Game mode and
the profiler will be overlaid onto your display:
The top section displays the following information:
POLYGONS IN SCENE: 10,905 The number of polygons that need to be drawn
by the 3D card at this point within the level. This
is where you can do the most optimisation by
keeping this value as low as possible.
FRAME RATE: 22 This is how many frames are being drawn per
second. You should aim to have this as close to
30 as you can.
OVERALL:0 This shows how many counts the entire cycle of
the game took to complete. You can compare
this value to any other count value to determine
how much each stage is consuming CPU time.
LIGHTING: 0(0) This shows how many counts per cycle the game
spent lighting the scene with dynamic lights, and
is based on the number of dynamic entities in the
local area.
PLAYER This shows how many counts per cycle the game
is used to handle player control.
ENTITIES:73(0) This shows how many counts per cycle the game
spends working out entity behaviour which
includes AI, collision and logic.
GUN:51 This shows how many counts per cycle the game
spends on controlling the players weaponry and
hit detection.
MISC:0 This shows how many counts per cycle the game
spends on house keeping tasks to bring the game
components together.
DEBUGGING:792 This shows how many counts per cycle the game
spends running the extra debug code the test
game uses, a value which will be zero when the
final executable is run.
REMAINDER:0 This shows how many counts per cycle the game
spends between the debug control code and the
rendering of the screen.
SYNC:72 This shows how many counts per cycle the game
spends drawing the view of the player to the
screen.
POSITION X:3272 Y:1151 Z:-257 COL:0 This shows where the player is located in 3D
space.
AREADBOX:5/42 This shows which area box the player is standing
in. The entire level is subdivided into invisible
area boxes, rectangular in shape. The second
figure shows the total number of area boxes in
59
The settings include Lighting and shadows, pixel shader effects, texture quality,
optimisations and debug information.
Lighting and shadows
Dynamic Lights: Turn this off if you want to see the level with no dynamic
lighting.
Lightmap Settings
A look of quality can be added to your game by using shadows. FPSC uses a well
know system called light mapping to achieve realistic shadowing. Lightmaps are
extra details added to the geometry of your level and must be calculated when
the game is built. Choose from one of three following settings: No Lightmapping,
Quick Light Mapping and Full Light Mapping. For more details on each see the
extra information in the next Chapter.
Effects
Choose to see your level with or without pixel shader (if any segments or entities
are using them). You´ll need a fast graphics card to make good use of pixel
shaders, otherwise you will suffer slow frame rates.
If your 3D card can handle pixel and vertex shaders 2.0, then you will see this
type of performance increase:
No pixel shaders Full effects
The effects supported include cube mapping on the windows, bump mapping on
the Aiko character and illumination mapping on the wall textures (the lights on
the walls are all bright. This first implementation of shaders is a first step, we
plan to add more effects as we further develop FPS Creator. Also note that these
effects are only relevant to the Sci Fi graphics. The WW2 graphics do not have
bump and illumination texture maps.
Texture
Set the texture quality of the graphics, the higher the value, the more defined the
results will be.
Optimisations
You can choose to add an automatic floor with this flag. The floor style will be
taken from the floor positioned at the very top left corner of layer zero.
Debug
Choose to view information on all entities that you encounter during the test
game process. You can also view visual information like the viewing cone of an
enemy.
60
7.2 Level Profiler
When you are testing a level you can call up the level profiler which will help you
to optimise your level designs. Press the TAB key when in Test Game mode and
the profiler will be overlaid onto your display:
The top section displays the following information:
POLYGONS IN SCENE: 10,905 The number of polygons that need to be drawn
by the 3D card at this point within the level. This
is where you can do the most optimisation by
keeping this value as low as possible.
FRAME RATE: 22 This is how many frames are being drawn per
second. You should aim to have this as close to
30 as you can.
OVERALL:0 This shows how many counts the entire cycle of
the game took to complete. You can compare
this value to any other count value to determine
how much each stage is consuming CPU time.
LIGHTING: 0(0) This shows how many counts per cycle the game
spent lighting the scene with dynamic lights, and
is based on the number of dynamic entities in the
local area.
PLAYER This shows how many counts per cycle the game
is used to handle player control.
ENTITIES:73(0) This shows how many counts per cycle the game
spends working out entity behaviour which
includes AI, collision and logic.
GUN:51 This shows how many counts per cycle the game
spends on controlling the players weaponry and
hit detection.
MISC:0 This shows how many counts per cycle the game
spends on house keeping tasks to bring the game
components together.
DEBUGGING:792 This shows how many counts per cycle the game
spends running the extra debug code the test
game uses, a value which will be zero when the
final executable is run.
REMAINDER:0 This shows how many counts per cycle the game
spends between the debug control code and the
rendering of the screen.
SYNC:72 This shows how many counts per cycle the game
spends drawing the view of the player to the
screen.
POSITION X:3272 Y:1151 Z:-257 COL:0 This shows where the player is located in 3D
space.
AREADBOX:5/42 This shows which area box the player is standing
in. The entire level is subdivided into invisible
area boxes, rectangular in shape. The second
figure shows the total number of area boxes in
61
the level.
ALLPOLYS:10905 ALLDIPS:57 This shows the total number of polygons drawn
this frame. The DIPS figure shows the number of
DrawPrim Calls (batches of polygons) sent to the
card. The lower this figure, the more 3D card
friendly your level is.
LOCALPOLYS:4388 LOCALDIPS:23 This shows the number of polygons drawn in the
area box you are standing in only, this frame.
The DIPS figure shows the number of DrawPrim
Calls (batches of polygons) sent to the card for
this area box only.
BC SOUND:0 X:3276 Y:1150 Z:-262 This shows the last sound broadcast in the level,
with the first value representing the strength of
the sound and the next three values is the 3D
space location.
COLLISION POLYS:608 This shows the total number of polygons tested
this frame, and includes volume collision tests
from the player and all actively moving entities.
Keyboard controls for Profiler
{ Show portals
Hide portals
I Superhealth
- No entities
! No lights
X Sync as fast as possible
U Sync at 30 fps
T Restore all values?
The first graph section displays the total amount of memory used by the media
resources as they were loaded into memory. The key peaks show where the most
memory has been used up. The numbers that can show up are listed here for
your information. Most of these use very little memory so you are only likely to
see a few of these in the chart:
030 Load assets for all AI scripts...
060 Initialising decals list...
070 Initialising flak...
075 Initialising guns list...
080 Initialising gun system...
120 Deleting player resources...
130 Flushing Video Memory...
140 Delete existing elements...
150 Loading waypoint data...
160 Loading segment bank...
170 Loading entity bank...
180 Loading elements data...
200 Loading map data...
203 Cloning objects at layer 5 slice 3...
210 Applying CSG, lighting and scene entities...
220 Adding all objects to universe...
230 Adding static entities...
240 Building portals...
273 Saving effect files...
275 Saving and optimising universe...
280 Loading bullet holes...
290 Create scorch buffers for universe...
300 Creating entity elements...
302 Creating entity instances...
304 Creating entity attachments...
306 Loading entity sounds...
310 Attaching entities to game...
311 Associate elements with AI...
312 Activate start gun...
313 Loading active guns...
314 Loading active decals...
318 Initialising player...
320 Initialising entities...
62
At the base of this graph is a total read out of memory used by the game level, in
this example 78,936 bytes.
The bottom graph is the "live¨ profiler. As you walk around the level the yellow
line and the cyan and red peaks will update.
The yellow line is showing you the number of polygons being used in the level.
The cyan lines show the time required to calculate collision issues in the 3D world
and the red lines show the frame rate achieved.
The number of polygons used in the frame is represented by a yellow line, and a
maximum range of 50,000 polygons can be shown on the chart (shows as 50K).
The POLYGONS PER FPS-SLICE is a measure of the efficiency of your scene as
you view it, and is a calculation of the number of polygons you are currently
rendering divided by the frames per second. The lower the value, the more
efficient the currently rendered scene is.
When designing a game it is important to ensure that the frame rate is kept as
high as possible. Players of your game will not be happy should they be running
around at a nice 30 frames per second and then enter a new large room that
knocks the rate down to say 10 frames per second (resulting in the game being
almost unplayable).
So with freedom to design comes the responsibility on your part to ensure a
pleasurable gaming experience is enjoyed by your users.
7.3 Quick Level Preview
If you just want to check how the geometry of the level is working you can
click on the Quick Level Preview icon. This process will not add in the entities and
it will skip things like light mapping calculations and thus allow you to preview the
level far quicker.
In preview mode there is limited collision detection. This can make it difficult to
navigate the level. To get around this, the start position of the preview is based
on the centre point of the editor. In other words, if you are viewing the centre of
a room on layer 8 of your game and then press the quick preview icon, the
camera will start at this point. You can also press the X key to float upwards,
allowing you to reach higher parts of the game level.
61
the level.
ALLPOLYS:10905 ALLDIPS:57 This shows the total number of polygons drawn
this frame. The DIPS figure shows the number of
DrawPrim Calls (batches of polygons) sent to the
card. The lower this figure, the more 3D card
friendly your level is.
LOCALPOLYS:4388 LOCALDIPS:23 This shows the number of polygons drawn in the
area box you are standing in only, this frame.
The DIPS figure shows the number of DrawPrim
Calls (batches of polygons) sent to the card for
this area box only.
BC SOUND:0 X:3276 Y:1150 Z:-262 This shows the last sound broadcast in the level,
with the first value representing the strength of
the sound and the next three values is the 3D
space location.
COLLISION POLYS:608 This shows the total number of polygons tested
this frame, and includes volume collision tests
from the player and all actively moving entities.
Keyboard controls for Profiler
{ Show portals
Hide portals
I Superhealth
- No entities
! No lights
X Sync as fast as possible
U Sync at 30 fps
T Restore all values?
The first graph section displays the total amount of memory used by the media
resources as they were loaded into memory. The key peaks show where the most
memory has been used up. The numbers that can show up are listed here for
your information. Most of these use very little memory so you are only likely to
see a few of these in the chart:
030 Load assets for all AI scripts...
060 Initialising decals list...
070 Initialising flak...
075 Initialising guns list...
080 Initialising gun system...
120 Deleting player resources...
130 Flushing Video Memory...
140 Delete existing elements...
150 Loading waypoint data...
160 Loading segment bank...
170 Loading entity bank...
180 Loading elements data...
200 Loading map data...
203 Cloning objects at layer 5 slice 3...
210 Applying CSG, lighting and scene entities...
220 Adding all objects to universe...
230 Adding static entities...
240 Building portals...
273 Saving effect files...
275 Saving and optimising universe...
280 Loading bullet holes...
290 Create scorch buffers for universe...
300 Creating entity elements...
302 Creating entity instances...
304 Creating entity attachments...
306 Loading entity sounds...
310 Attaching entities to game...
311 Associate elements with AI...
312 Activate start gun...
313 Loading active guns...
314 Loading active decals...
318 Initialising player...
320 Initialising entities...
62
At the base of this graph is a total read out of memory used by the game level, in
this example 78,936 bytes.
The bottom graph is the "live¨ profiler. As you walk around the level the yellow
line and the cyan and red peaks will update.
The yellow line is showing you the number of polygons being used in the level.
The cyan lines show the time required to calculate collision issues in the 3D world
and the red lines show the frame rate achieved.
The number of polygons used in the frame is represented by a yellow line, and a
maximum range of 50,000 polygons can be shown on the chart (shows as 50K).
The POLYGONS PER FPS-SLICE is a measure of the efficiency of your scene as
you view it, and is a calculation of the number of polygons you are currently
rendering divided by the frames per second. The lower the value, the more
efficient the currently rendered scene is.
When designing a game it is important to ensure that the frame rate is kept as
high as possible. Players of your game will not be happy should they be running
around at a nice 30 frames per second and then enter a new large room that
knocks the rate down to say 10 frames per second (resulting in the game being
almost unplayable).
So with freedom to design comes the responsibility on your part to ensure a
pleasurable gaming experience is enjoyed by your users.
7.3 Quick Level Preview
If you just want to check how the geometry of the level is working you can
click on the Quick Level Preview icon. This process will not add in the entities and
it will skip things like light mapping calculations and thus allow you to preview the
level far quicker.
In preview mode there is limited collision detection. This can make it difficult to
navigate the level. To get around this, the start position of the preview is based
on the centre point of the editor. In other words, if you are viewing the centre of
a room on layer 8 of your game and then press the quick preview icon, the
camera will start at this point. You can also press the X key to float upwards,
allowing you to reach higher parts of the game level.
63
8 Building a Stand Alone Game
FPS Creator provides a powerful "Build Game¨ feature that will take your maps
and create a stand alone game file. This means you can pass your games onto
friends and family for them to play.
It´s important to understand that the build game system does not build the game
from the level you may already have in the editor. It creates a game made up of
one or more levels stored on your hard disk.
Build game is accessible from the File menu:
When you select Build Game you will be presented with the following window
which is divided into four tabbed areas: Game Project Settings, Level Settings,
Textures and Build Settings.
64
8.1 Game Project Settings
This is where you define three key things about your game.
Game Project Filename
This file holds information about how you want to build games each time. The
default file is called "mygame.fpg¨. You can create a new project by clicking on
the "New¨ button or you can select a previously edited file by clicking on the "...¨
button and browse for it. All changes you make throughout this build game
process will be stored in the file selected here.
Key Controls
FPS  games  are very  frantic  at  times,  it´s  therefore  best  to  keep the  keys set  to 
the defaults we have designed (as most game players are used to these). You can 
of course change and edit them should you wish to, and this is where you do it. 
Just click on the key window to change the key associated to the action and then 
press the new key you want to use for that action.
Weapon Slots
The player can have up to nine different weapons during a game. This list is
where the user chooses for these weapons to be accessed from. Just click in the
right window and a drop down menu will appear with the available weapons.
Select a weapon and it will be assigned to that slot. It´s important to note that
the weapon must be placed into the level so that the player can pick it up during
the game. This list does not give the player weapons, it simply describes where
the weapon will be accessed from once it´s been collected.
Click into this list to
choose a gun for a slot
Slots relate to keys 1
through to 9
63
8 Building a Stand Alone Game
FPS Creator provides a powerful "Build Game¨ feature that will take your maps
and create a stand alone game file. This means you can pass your games onto
friends and family for them to play.
It´s important to understand that the build game system does not build the game
from the level you may already have in the editor. It creates a game made up of
one or more levels stored on your hard disk.
Build game is accessible from the File menu:
When you select Build Game you will be presented with the following window
which is divided into four tabbed areas: Game Project Settings, Level Settings,
Textures and Build Settings.
64
8.1 Game Project Settings
This is where you define three key things about your game.
Game Project Filename
This file holds information about how you want to build games each time. The
default file is called "mygame.fpg¨. You can create a new project by clicking on
the "New¨ button or you can select a previously edited file by clicking on the "...¨
button and browse for it. All changes you make throughout this build game
process will be stored in the file selected here.
Key Controls
FPS  games  are very  frantic  at  times,  it´s  therefore  best  to  keep the  keys set  to 
the defaults we have designed (as most game players are used to these). You can 
of course change and edit them should you wish to, and this is where you do it. 
Just click on the key window to change the key associated to the action and then 
press the new key you want to use for that action.
Weapon Slots
The player can have up to nine different weapons during a game. This list is
where the user chooses for these weapons to be accessed from. Just click in the
right window and a drop down menu will appear with the available weapons.
Select a weapon and it will be assigned to that slot. It´s important to note that
the weapon must be placed into the level so that the player can pick it up during
the game. This list does not give the player weapons, it simply describes where
the weapon will be accessed from once it´s been collected.
Click into this list to
choose a gun for a slot
Slots relate to keys 1
through to 9
65
8.2 Level Settings
You can have a main menu in your game and multiple levels. You control and edit
these aspects of your game from this section of the Build Game window.
Game Screens
The first section lists items that apply to the game menu screens. You can leave
them as they are or edit them to give them your own personal touch. The screens
are all controlled by fpi files (script files).
Title Screen
The title screen defaults to the script file "titlepage.fpi¨. You can EDIT this fpi file 
by clicking on the EDIT button next to the filename. Doing this will bring up a new 
edit box:
The Wizard is easy to use. If there is something within it that you want to change 
then  just  click  into  the  right  hand  window  and  change  the  current  setting.  The 
66
first property in the "General¨ section is the background image that will be used
for the title screen. Try to change it by clicking on the file text and replace it for
another image from your hard drive.
Important: You must ensure that all extra media that you use in your games
should be stored within the FPS Creator folder layout.
Image formats supported are Jpeg (jpg), Targa (tga) and dds. (Tip: a great tool
for viewing all types of image formats is the free utility called Irfanview, download
it from www.irfanview.com).
The properties you can alter for the title screen include:
Background image This is the image used at the very start of your
game for the background title page.
Music file The music file to be played when the game´s title
page is displayed (must be 8 bit pcm wav
format).
Mouse pointer used for selecting The pointer image to select the menu items.
(default is pointer.dds).
Menu header image and X, Y positions This is the image used to display "GAME MENU¨
onto the title page. You could of course change it
to the name of your game, eg "DEATH ZONE¨!
The X and Y values represent the position on the
screen that this image will be positioned.
New Game image and X, Y positions The image displays the "NEW GAME¨ menu
button.
Exit Game image and X, Y positions This image displays the "EXIT GAME¨ menu item,
located at the X,Y position chosen.
Advanced Users: Note that this is just an editor for modifying the file
titlepage.fpi. If you want, you could use Notepad to edit the fpi and make a more
complex title page!
Global Script
The global script file controls how the game´s pause menu works and the various
visuals that make up the head up displays.
The Preview button allows you to see the changes you have made.
General
First there are some menu options for background, music and pointer.
Music This is the music that will play during the game´s level.
Pointer The image of the pointer that will be used during the
pause menu.
Level Setup
Sky The 3D Sky box (.x file) used in the game. FPS Creator is
supplied with a selection of different sky boxes for you to
choose from.
Fog Active If set to 0 then no fogging effect will appear. If set to 1,
then fog will be active in your game. The colour of the
fog is set using the next three values.
Fog Red The red value of the fog effect. A high value will give the
fog a strong red component. Min value is 0 for no red
and 255 for full red.
Fog Green The green component for setting the fog effect.
Fog Blue The blue component for setting the fog effect. If you
want white fog, then set red, green and blue to 255.
Ambience Level The ambient level of light used in the game. Low values
will create dark levels which are only lit up by the lights
you add to your scene. Higher values will lighten up the
levels.
65
8.2 Level Settings
You can have a main menu in your game and multiple levels. You control and edit
these aspects of your game from this section of the Build Game window.
Game Screens
The first section lists items that apply to the game menu screens. You can leave
them as they are or edit them to give them your own personal touch. The screens
are all controlled by fpi files (script files).
Title Screen
The title screen defaults to the script file "titlepage.fpi¨. You can EDIT this fpi file 
by clicking on the EDIT button next to the filename. Doing this will bring up a new 
edit box:
The Wizard is easy to use. If there is something within it that you want to change 
then  just  click  into  the  right  hand  window  and  change  the  current  setting.  The 
66
first property in the "General¨ section is the background image that will be used
for the title screen. Try to change it by clicking on the file text and replace it for
another image from your hard drive.
Important: You must ensure that all extra media that you use in your games
should be stored within the FPS Creator folder layout.
Image formats supported are Jpeg (jpg), Targa (tga) and dds. (Tip: a great tool
for viewing all types of image formats is the free utility called Irfanview, download
it from www.irfanview.com).
The properties you can alter for the title screen include:
Background image This is the image used at the very start of your
game for the background title page.
Music file The music file to be played when the game´s title
page is displayed (must be 8 bit pcm wav
format).
Mouse pointer used for selecting The pointer image to select the menu items.
(default is pointer.dds).
Menu header image and X, Y positions This is the image used to display "GAME MENU¨
onto the title page. You could of course change it
to the name of your game, eg "DEATH ZONE¨!
The X and Y values represent the position on the
screen that this image will be positioned.
New Game image and X, Y positions The image displays the "NEW GAME¨ menu
button.
Exit Game image and X, Y positions This image displays the "EXIT GAME¨ menu item,
located at the X,Y position chosen.
Advanced Users: Note that this is just an editor for modifying the file
titlepage.fpi. If you want, you could use Notepad to edit the fpi and make a more
complex title page!
Global Script
The global script file controls how the game´s pause menu works and the various
visuals that make up the head up displays.
The Preview button allows you to see the changes you have made.
General
First there are some menu options for background, music and pointer.
Music This is the music that will play during the game´s level.
Pointer The image of the pointer that will be used during the
pause menu.
Level Setup
Sky The 3D Sky box (.x file) used in the game. FPS Creator is
supplied with a selection of different sky boxes for you to
choose from.
Fog Active If set to 0 then no fogging effect will appear. If set to 1,
then fog will be active in your game. The colour of the
fog is set using the next three values.
Fog Red The red value of the fog effect. A high value will give the
fog a strong red component. Min value is 0 for no red
and 255 for full red.
Fog Green The green component for setting the fog effect.
Fog Blue The blue component for setting the fog effect. If you
want white fog, then set red, green and blue to 255.
Ambience Level The ambient level of light used in the game. Low values
will create dark levels which are only lit up by the lights
you add to your scene. Higher values will lighten up the
levels.
67
Ambience Red The red component of the ambient light. Having a strong
red component alone will create a reddish effect
throughout your level - ideal for games based on Mars!
Ambience Green The green component for ambient light.
Ambience Blue The blue component for ambient light.
Screen Overlays
Fade Out Image This image is used at the end of the level for fading from
the game view to whatever this image is. The default is
just a black screen. You could fade to a different colour
like white or even some image representing a job well
done.
Eye Damage Image When the player gets hit by enemy bullets, this image is
quickly flashed onto the game screen.
Default Zoom Image If you create a weapon that has a right click zoom lens,
then this image will be used if no other has been
configured.
Status Panels
Lives Image, X and Y positions The image that shows how many lives the player has is
set here, along with the X and Y position where it is
placed on screen, example:
Lives Numeric, X and Y positions The style of font that the number will be displayed and
the x,y location of where it will be displayed.
Health Image, X and Y positions The image representing the health of the player.
Example:
Health Numeric, X and Y positions The text style used to show the values of the player´s
health.
Ammo Image, X and Y positions The image of the weapon used to fire the ammo. If a
weapon does not provide this image of itself then the
default weapon will display.
Ammo Numeric, X and Y positions The style of font used to show how many rounds are in
the current clip and the total number of rounds also held.
Menu Items
Header Image, X and Y positions The header text used on the pause screen (after player
has pressed Escape).
Exit Game Button, X and Y positions The EXIT GAME text used on the pause screen.
Continue Game Button, X and Y positions The CONTINUE GAME text used on the pause screen.
Game Over
Background The image shown when the player has lost all lives.
Music The game over wav file to be played when this screen
appears.
Header Image, X and Y positions The text image that is pasted onto this game over
screen.
Timeout The time delay before the game reverts back to the title
page.
Game Complete
Background The screen to show when the player has completed the
game.
Music The triumphant music to be played when the game is
finally done.
Header Image, X and Y positions An image that can be pasted onto the screen, eg "GAME
COMPLETED - WELLDONE!
Timeout The time delay before the game reverts back to the title
page.
68
List of Levels
The lower half of this tab provides the tools for setting the order of the levels in
your game. A game can have up to 50 different levels.
Click on Insert New Level and choose a saved level from the hard drive. The
selected level will then be listed in the centre column and it will be assigned a
level number (shown in the left column) and a loading page fpi file (shown in the
right column). Here´s an example of a five level game setup:
Using "Add New Level¨, "Insert New Level¨ and "Delete A Level¨ buttons you can
organise the levels how you want. You can even repeat levels if you want!
FPS Creator will ensure that all weapons and stats are copied across each level as
users play your game. So if you pick up a weapon on level 1 you can expect to
have it in your arsenal for all subsequent levels.
The Edit Loading Screen button allows you to edit the parameters used in the
loading screen fpi file. This means you can customise the background, music,
display and style of loading bar.
67
Ambience Red The red component of the ambient light. Having a strong
red component alone will create a reddish effect
throughout your level - ideal for games based on Mars!
Ambience Green The green component for ambient light.
Ambience Blue The blue component for ambient light.
Screen Overlays
Fade Out Image This image is used at the end of the level for fading from
the game view to whatever this image is. The default is
just a black screen. You could fade to a different colour
like white or even some image representing a job well
done.
Eye Damage Image When the player gets hit by enemy bullets, this image is
quickly flashed onto the game screen.
Default Zoom Image If you create a weapon that has a right click zoom lens,
then this image will be used if no other has been
configured.
Status Panels
Lives Image, X and Y positions The image that shows how many lives the player has is
set here, along with the X and Y position where it is
placed on screen, example:
Lives Numeric, X and Y positions The style of font that the number will be displayed and
the x,y location of where it will be displayed.
Health Image, X and Y positions The image representing the health of the player.
Example:
Health Numeric, X and Y positions The text style used to show the values of the player´s
health.
Ammo Image, X and Y positions The image of the weapon used to fire the ammo. If a
weapon does not provide this image of itself then the
default weapon will display.
Ammo Numeric, X and Y positions The style of font used to show how many rounds are in
the current clip and the total number of rounds also held.
Menu Items
Header Image, X and Y positions The header text used on the pause screen (after player
has pressed Escape).
Exit Game Button, X and Y positions The EXIT GAME text used on the pause screen.
Continue Game Button, X and Y positions The CONTINUE GAME text used on the pause screen.
Game Over
Background The image shown when the player has lost all lives.
Music The game over wav file to be played when this screen
appears.
Header Image, X and Y positions The text image that is pasted onto this game over
screen.
Timeout The time delay before the game reverts back to the title
page.
Game Complete
Background The screen to show when the player has completed the
game.
Music The triumphant music to be played when the game is
finally done.
Header Image, X and Y positions An image that can be pasted onto the screen, eg "GAME
COMPLETED - WELLDONE!
Timeout The time delay before the game reverts back to the title
page.
68
List of Levels
The lower half of this tab provides the tools for setting the order of the levels in
your game. A game can have up to 50 different levels.
Click on Insert New Level and choose a saved level from the hard drive. The
selected level will then be listed in the centre column and it will be assigned a
level number (shown in the left column) and a loading page fpi file (shown in the
right column). Here´s an example of a five level game setup:
Using "Add New Level¨, "Insert New Level¨ and "Delete A Level¨ buttons you can
organise the levels how you want. You can even repeat levels if you want!
FPS Creator will ensure that all weapons and stats are copied across each level as
users play your game. So if you pick up a weapon on level 1 you can expect to
have it in your arsenal for all subsequent levels.
The Edit Loading Screen button allows you to edit the parameters used in the
loading screen fpi file. This means you can customise the background, music,
display and style of loading bar.
69
8.3 Textures
The textures tab controls the lighting and visual detail of your game.
Lightmap Settings
Choose from one of three following settings:
No Lightmaps
Best to use this when you want a quick build of your game to test it out. You
therefore cut out any lightmap calculation during the build process and get to
play the game far sooner.
Soft Lightmaps
Generating soft lightmaps is quicker for FPS Creator to do. They are very realistic
and will work in many areas of your games design. The downside is that they
don´t create shadows cast from entities, only the wall geometry.
Full Shadow Lightmaps
Use this option to create the ultimate realism for your levels. Massive calculations
have to be computed so don´t expect a fast result. It´s best to calculate this when
you know your game is finally completed game play wise, so you can leave FPSC
working away on the maths. For large or complex games this process can take
hours (PC specification depending) so use this sparingly, or perhaps leave it
mapping overnight.
70
Texture Quality
Everything you see in your FPS games has some kind of texture describing what
it looks like. Take for example a door, its texture looks like this:
All textures in FPS Creator have been created at 512 x 512 pixels. This is the
highest quality that they can be displayed at. FPS Creator lets you select one of
these options:
Low (128x128)
Medium (256x256)
High (512x512)
By using the options of low, medium and high you can set the texture quality
used throughout the final game. The reason for doing this is that you may find
that very complex levels that use many textures start to exceed the power and
memory of some video cards.
Each entity within a game can also be tagged within its own properties to ignore
this global setting. The property is called "Reduce Texture¨. For example you
might want a global low setting but where there are signs in your game a player
needs to read you want them to be high resolution.
69
8.3 Textures
The textures tab controls the lighting and visual detail of your game.
Lightmap Settings
Choose from one of three following settings:
No Lightmaps
Best to use this when you want a quick build of your game to test it out. You
therefore cut out any lightmap calculation during the build process and get to
play the game far sooner.
Soft Lightmaps
Generating soft lightmaps is quicker for FPS Creator to do. They are very realistic
and will work in many areas of your games design. The downside is that they
don´t create shadows cast from entities, only the wall geometry.
Full Shadow Lightmaps
Use this option to create the ultimate realism for your levels. Massive calculations
have to be computed so don´t expect a fast result. It´s best to calculate this when
you know your game is finally completed game play wise, so you can leave FPSC
working away on the maths. For large or complex games this process can take
hours (PC specification depending) so use this sparingly, or perhaps leave it
mapping overnight.
70
Texture Quality
Everything you see in your FPS games has some kind of texture describing what
it looks like. Take for example a door, its texture looks like this:
All textures in FPS Creator have been created at 512 x 512 pixels. This is the
highest quality that they can be displayed at. FPS Creator lets you select one of
these options:
Low (128x128)
Medium (256x256)
High (512x512)
By using the options of low, medium and high you can set the texture quality
used throughout the final game. The reason for doing this is that you may find
that very complex levels that use many textures start to exceed the power and
memory of some video cards.
Each entity within a game can also be tagged within its own properties to ignore
this global setting. The property is called "Reduce Texture¨. For example you
might want a global low setting but where there are signs in your game a player
needs to read you want them to be high resolution.
71
8.4. Arena Executables
If you´re game is to be a multiplayer arena game, then this tab will be available 
to you for fine tuning how the arena game will work.
Arena Objectives
First To Complete Arena
If the level is setup with a win-zone or other objectives, the first player to
complete all the objectives wins the arena.
First To X Frags
The first player to reach or exceed the number of frags entered here wins the
arena.
Highest Frags In X Seconds
The player with the highest frags when the time expires wins the arena.
Arena Settings
One Shot Kills
Tick this box to activate the feature whereby any shot successfully made with any
weapon instantly kills the target. Note that if you use a weapon with a zoom
scope, you can kill any player with one shot regardless of this setting.
Maximum Number Of Players
Set this value between 2 and 8 to limit the number of players that can join the
game. You may wish to have eight characters in the arena to choose from, but
only allow four players at any one time. The more players you allow, the more
work the server machine has to do and the more likely you are to have lag
issues.
Arena Spawning
Random Spawn Position
Tick this box to allow the player to spawn from any other characters spawn
position, instead of the player characters own spawn point.
72
8.5 Build Settings
Having set up the previous tabbed data pages you are now ready to start the
build process. The Build Settings tab is divided into three key areas, Executable,
Visuals and Progress of Build:
Executable
The "Game Executable Folder¨ shows you where your new stand alone game will 
be created. The default is set to "FPSCREATOR\My Games\¨.
The filename can be edited within the "Game Executable Name¨ text field.
Visuals
Some final visual options can also be selected before you begin the build process.
The first of these concerns Full Shader Effects. If your game uses No Shader
Effects then we advise you to choose the "No Shader Effects¨ option. If you have
used elements in the game that call vertex/pixel shaders then tick the "Full
Shader Effects¨ option.
Dynamic Lights
By setting this flag, you will add to your test game or final executable the ability
to manage and handle dynamic lights. They are the lights you have created in
each level under the mode Dynamic Light as opposed to Static Light. The main
use of this flag is to switch off all dynamic lighting in order to increase the
performance of your game. You may find that you do not need dynamic lights at
all for a good end-result. Consider this flag a performance gaining option when
you want to determine if it is an abundance of lights that might be causing
performance drop.
Automatic Floor
Use the flag when you wish to set your level in an outside location and require
the benefits of a horizon. The actual editing area of the level is 40x40 tiles, which
means your landscape will be cut short as your player encounters the edge of
71
8.4. Arena Executables
If you´re game is to be a multiplayer arena game, then this tab will be available 
to you for fine tuning how the arena game will work.
Arena Objectives
First To Complete Arena
If the level is setup with a win-zone or other objectives, the first player to
complete all the objectives wins the arena.
First To X Frags
The first player to reach or exceed the number of frags entered here wins the
arena.
Highest Frags In X Seconds
The player with the highest frags when the time expires wins the arena.
Arena Settings
One Shot Kills
Tick this box to activate the feature whereby any shot successfully made with any
weapon instantly kills the target. Note that if you use a weapon with a zoom
scope, you can kill any player with one shot regardless of this setting.
Maximum Number Of Players
Set this value between 2 and 8 to limit the number of players that can join the
game. You may wish to have eight characters in the arena to choose from, but
only allow four players at any one time. The more players you allow, the more
work the server machine has to do and the more likely you are to have lag
issues.
Arena Spawning
Random Spawn Position
Tick this box to allow the player to spawn from any other characters spawn
position, instead of the player characters own spawn point.
72
8.5 Build Settings
Having set up the previous tabbed data pages you are now ready to start the
build process. The Build Settings tab is divided into three key areas, Executable,
Visuals and Progress of Build:
Executable
The "Game Executable Folder¨ shows you where your new stand alone game will 
be created. The default is set to "FPSCREATOR\My Games\¨.
The filename can be edited within the "Game Executable Name¨ text field.
Visuals
Some final visual options can also be selected before you begin the build process.
The first of these concerns Full Shader Effects. If your game uses No Shader
Effects then we advise you to choose the "No Shader Effects¨ option. If you have
used elements in the game that call vertex/pixel shaders then tick the "Full
Shader Effects¨ option.
Dynamic Lights
By setting this flag, you will add to your test game or final executable the ability
to manage and handle dynamic lights. They are the lights you have created in
each level under the mode Dynamic Light as opposed to Static Light. The main
use of this flag is to switch off all dynamic lighting in order to increase the
performance of your game. You may find that you do not need dynamic lights at
all for a good end-result. Consider this flag a performance gaining option when
you want to determine if it is an abundance of lights that might be causing
performance drop.
Automatic Floor
Use the flag when you wish to set your level in an outside location and require
the benefits of a horizon. The actual editing area of the level is 40x40 tiles, which
means your landscape will be cut short as your player encounters the edge of
73
your map. By adding automatic floor, you can continue the appearance of a floor
moving off into the infinite plane for better visuals, even though you cannot
traverse the fake additional floor. The floor will be constructed at layer zero, the
lowest point of your editing environment. The floor will default to a grey tile
pattern for generic indication of the feature. To use a floor type of your own such
as moonscape, grass or rock you simply place a single segment at layer zero, in
the top left corner (scroll up and left, then use the [-] key to move to the lowest
point in the depth of the editing environment). Even this automated floor is not
visually convincing when viewed from a high location as the horizon cuts off at a
distant camera clipping range, so it is recommended you design your levels
strategically so views into the outside world are controlled for maximum visual
effect. This flag is one option to help you achieve this effect.
Progress of Build
Finally you will be ready to build your game, just click on the Build Game
Executable and the process will begin. You will see a progress bar work across
form left to right. When the game is built you will be returned to the Editor.
Using Windows Explorer, navigate to where your game was created and run the
exe file.
74
9 Physics
9.1 How Physics Works
You have the ability to use real physics in your single player game (multiplayer
arena games do not support physics). Basically, physics means that crates fall
over realistically, bottles smash, tall structures fall, one object can knock over
another, and so forth. You have the option of changing this behaviour based on
the demands of your game level. Each entity has a number of properties that
control exactly how they interact within the game world, including the entities
weight, how much friction it applies against other entities and whether they
explode.
9.2 Creating physics based situations
As the physics system is applied automatically by default, there is no long and
drawn out method of producing physics within your level, you just drop in an
entity you like and it instantly responds as it would in real life. There are some
basic scenarios you can create however to demonstrate the various effects you
can place in your games to impress those playing your game.
Crates Do Fall - Select a crate from the entity library and place it on the floor.
While the crate is still selected, hit RETURN to find the top of the crate you
have just placed. Now click the left mouse button to place a crate on top of
the first. Do so again so you have three crates stacked on top of each other.
Now click TEST GAME and find the stack you have made. Run at the stack
and jump as you reach it, notice how the player knocks the crates over.
Stairs Are High - Select a cylinder from the entity library and place it at the
top of some stairs you have previously created. Now run the TEST GAME and
run at the cylinder so that you push it down the stairs. Notice how it bounces
off the scenery as it goes.
Duck Shoot - Create a room with a long table at the far end, then go to the
entity library and find a bottle entity. Select it and place it on the long table.
Right click the bottle and change the properties so that the bottle has only 4
strength. Now left click the bottle to pick it up, then place copies of the newly
changed bottle along the table to give you something to shoot at. Right click
to end the bottle placement. Go to the MARKERS tab and select a Player Start
marker down, right click it to edit its properties, then change the HAS
WEAPON field to a pistol. Now TEST GAME and shoot the bottles to see them
explode. You can further modify the scene back in the editor by switching the
EXPLODING field to zero, causing the bottles to smash without the explosion.
Make sure the distance between you and the bottles is great when the bottles
are set to explode.
73
your map. By adding automatic floor, you can continue the appearance of a floor
moving off into the infinite plane for better visuals, even though you cannot
traverse the fake additional floor. The floor will be constructed at layer zero, the
lowest point of your editing environment. The floor will default to a grey tile
pattern for generic indication of the feature. To use a floor type of your own such
as moonscape, grass or rock you simply place a single segment at layer zero, in
the top left corner (scroll up and left, then use the [-] key to move to the lowest
point in the depth of the editing environment). Even this automated floor is not
visually convincing when viewed from a high location as the horizon cuts off at a
distant camera clipping range, so it is recommended you design your levels
strategically so views into the outside world are controlled for maximum visual
effect. This flag is one option to help you achieve this effect.
Progress of Build
Finally you will be ready to build your game, just click on the Build Game
Executable and the process will begin. You will see a progress bar work across
form left to right. When the game is built you will be returned to the Editor.
Using Windows Explorer, navigate to where your game was created and run the
exe file.
74
9 Physics
9.1 How Physics Works
You have the ability to use real physics in your single player game (multiplayer
arena games do not support physics). Basically, physics means that crates fall
over realistically, bottles smash, tall structures fall, one object can knock over
another, and so forth. You have the option of changing this behaviour based on
the demands of your game level. Each entity has a number of properties that
control exactly how they interact within the game world, including the entities
weight, how much friction it applies against other entities and whether they
explode.
9.2 Creating physics based situations
As the physics system is applied automatically by default, there is no long and
drawn out method of producing physics within your level, you just drop in an
entity you like and it instantly responds as it would in real life. There are some
basic scenarios you can create however to demonstrate the various effects you
can place in your games to impress those playing your game.
Crates Do Fall - Select a crate from the entity library and place it on the floor.
While the crate is still selected, hit RETURN to find the top of the crate you
have just placed. Now click the left mouse button to place a crate on top of
the first. Do so again so you have three crates stacked on top of each other.
Now click TEST GAME and find the stack you have made. Run at the stack
and jump as you reach it, notice how the player knocks the crates over.
Stairs Are High - Select a cylinder from the entity library and place it at the
top of some stairs you have previously created. Now run the TEST GAME and
run at the cylinder so that you push it down the stairs. Notice how it bounces
off the scenery as it goes.
Duck Shoot - Create a room with a long table at the far end, then go to the
entity library and find a bottle entity. Select it and place it on the long table.
Right click the bottle and change the properties so that the bottle has only 4
strength. Now left click the bottle to pick it up, then place copies of the newly
changed bottle along the table to give you something to shoot at. Right click
to end the bottle placement. Go to the MARKERS tab and select a Player Start
marker down, right click it to edit its properties, then change the HAS
WEAPON field to a pistol. Now TEST GAME and shoot the bottles to see them
explode. You can further modify the scene back in the editor by switching the
EXPLODING field to zero, causing the bottles to smash without the explosion.
Make sure the distance between you and the bottles is great when the bottles
are set to explode.
75
9.3 Tricks and tips when setting up physics
Typically keep the physics weight and friction settings as provided by default
for each entity. They have been manually set to represent the real behaviour
of the entity. Changing them may cause them to behave in an uncommon
manner.
Switching physics off for an entity will cause that entity to cease reacting to
the game world, and it will even ignore gravity and other entities. It will
however move if its AI uses waypoint movement or other motion actions.
Useful for a faster variety of entity.
Do not populate a room with too many physics entities, and try to use them
cleverly to aid the story and enrich the gameplay. Adding a hundred bottles
on a shelf that plays no key role in the game will just slow down the
performance and make the local areas around those bottles run slower.
Remember within the game engine, every physics object must check itself
against every other physics object at some level. The more you use, the
slower things become.
76
10 Multiplayer Death Match Games
10.1. How Multiplayer Works
You have the ability to create multiplayer death match games, and play them
online with your friends. The creation method is the same as a single player
level, except for some exclusions, and you simply have to select multiplayer
mode and save out the executable as normal. DirectPlay is used to control the
multiplayer experience, and uses the server-client model for network
communication. You can run your arena games on a local network, or over the
internet using the UDP protocol. The host player (server) must have a valid IP
address, not an internal network IP (such as you would find if your computer was
sharing an internet connection). Joiners do not need to know their IP, they
simply need the exact same executable as the hoster and also need to know the
name of the player hosting the session.
10.2. Creating a Multiplayer game
Switching to and from Arena Mode
In order to create a multiplayer arena level, you must be in Arena Mode. There
are two ways you can get into Arena Mode:
Select the NEW ARENA from the FILE MENU
Select PREFERENCES from the FILE MENU and tick the Multiplayer box
Using either of these will set the editor into the Arena Mode and block off certain
areas of the library and property panels. You can toggle between arena mode
and single player mode, in order to carry your level designs between the types of
game you would like to make, but features that may be active in single player will
cease to function when run in arena mode or built into an arena executable.
Aside from the differences mentioned in the next section, the editing of arena
levels is identical to the creation of single player levels. When you are ready to
build your arena executable to share and play online, you must do the following:
Select BUILD GAME from the FILE MENU
The BUILD GAME will always be in the mode you are editing, so if you were
using a single player project file, you will now find the default arena level
project file in the Settings tab. When you create a new arena, a default arena
project file will be created for you.
Choose the game building choices as you would in single player mode, and
then click the Arena tab which will have been made available once you are in
Arena Mode.
From here, select your Objectives, Settings and Spawn choices
Go to the final tab, and enter a name for your arena executable
75
9.3 Tricks and tips when setting up physics
Typically keep the physics weight and friction settings as provided by default
for each entity. They have been manually set to represent the real behaviour
of the entity. Changing them may cause them to behave in an uncommon
manner.
Switching physics off for an entity will cause that entity to cease reacting to
the game world, and it will even ignore gravity and other entities. It will
however move if its AI uses waypoint movement or other motion actions.
Useful for a faster variety of entity.
Do not populate a room with too many physics entities, and try to use them
cleverly to aid the story and enrich the gameplay. Adding a hundred bottles
on a shelf that plays no key role in the game will just slow down the
performance and make the local areas around those bottles run slower.
Remember within the game engine, every physics object must check itself
against every other physics object at some level. The more you use, the
slower things become.
76
10 Multiplayer Death Match Games
10.1. How Multiplayer Works
You have the ability to create multiplayer death match games, and play them
online with your friends. The creation method is the same as a single player
level, except for some exclusions, and you simply have to select multiplayer
mode and save out the executable as normal. DirectPlay is used to control the
multiplayer experience, and uses the server-client model for network
communication. You can run your arena games on a local network, or over the
internet using the UDP protocol. The host player (server) must have a valid IP
address, not an internal network IP (such as you would find if your computer was
sharing an internet connection). Joiners do not need to know their IP, they
simply need the exact same executable as the hoster and also need to know the
name of the player hosting the session.
10.2. Creating a Multiplayer game
Switching to and from Arena Mode
In order to create a multiplayer arena level, you must be in Arena Mode. There
are two ways you can get into Arena Mode:
Select the NEW ARENA from the FILE MENU
Select PREFERENCES from the FILE MENU and tick the Multiplayer box
Using either of these will set the editor into the Arena Mode and block off certain
areas of the library and property panels. You can toggle between arena mode
and single player mode, in order to carry your level designs between the types of
game you would like to make, but features that may be active in single player will
cease to function when run in arena mode or built into an arena executable.
Aside from the differences mentioned in the next section, the editing of arena
levels is identical to the creation of single player levels. When you are ready to
build your arena executable to share and play online, you must do the following:
Select BUILD GAME from the FILE MENU
The BUILD GAME will always be in the mode you are editing, so if you were
using a single player project file, you will now find the default arena level
project file in the Settings tab. When you create a new arena, a default arena
project file will be created for you.
Choose the game building choices as you would in single player mode, and
then click the Arena tab which will have been made available once you are in
Arena Mode.
From here, select your Objectives, Settings and Spawn choices
Go to the final tab, and enter a name for your arena executable
77
Then click the BUILD EXECUTABLE button to build your game
You may now wish to share your game with your friends so you can play online.
When the build has completed, and you have been returned to the editor, exit the
editor software and locate the MyGames folder. You will find your newly created
arena executable in its own folder. You may zip up the entire folder, and it is
always a good idea to rename the zip-file with the day and time the executable
was made.
You can send your newly created zip-file to your friends in many different ways
depending on the size of the file and your capability to exchange files over the
internet. Here are some suggestions:
Use MSN Messenger to send the file to all the friends you wish to play against
If the file is smaller than 20mb, you may be able to email the game to your
friends
If you have access to an FTP site, you can upload the file there and provide
the link
You can burn the zip file to a CD or writable media of sufficient size and
deliver it to those people you wish to play against
Some online email providers also provide a small amount of shared space,
into which you could place the file and give your friends access to the area
With the popular use of P2P file exchange software, you can create a folder on
your machine that would commonly store your arena games, from which your
friends could gain access and obtain the game
10.3. Differences between Arena and Single Player
There are some key differences between regular single player level and arena
level editing. The most apparent is the lack of physics for the entities, and no
dynamic entities that are not essential to the gameplay. These restrictions will be
placed automatically in the editor when you are in arena mode to avoid
confusion. The reason these restrictions exist, is due to the lag time that exists
during multiplayer games. Game data has to be sent between all the PCs playing
the game many times per second, so it´s vital to keep this data as small as
possible. Here is a list of restrictions:
No physics on entities
No dynamic entities except weapons, ammo and health
All dynamic entities not essential to gameplay are forced to static
No projectile weaponry (rocket launchers, grenades)
Only one level per arena executable
78
11 Guidelines
Here are some key points to remember for creating good levels:
Level Editor Guidelines
Do not create extremely large open areas or rooms as they will require a
large number of polygons to render, which means your game will be slow
in places
Create a linear flow through the level and give the player clues where they
should go next, the easiest level to design is a succession of rooms and
corridors leading from the beginning to the end.
Separate your rooms with corridors or narrow turnings, as this will allow
the game engine to skip drawing large parts of the scene as it will not try
to draw around corners. This will speed up your games performance.
Do not place too many dynamic entities into a confined area such as a
high concentration of characters, items or weapons. Dynamic entities are
rendered individually and the more you have, the more work the engine
has to do and the slower your game is.
Where possible, use static entities to populate rooms and areas. Static
entities are added to the final scene geometry and are rendered together,
meaning the game will draw the scene faster and performance will
improve.
On rare occasions, some segments do not work well together such as a
grass tile and a corridor. Some corridors are very wide and the grass tile
may actually poke through the corridor and cause Z-clashing (flickering
polygons) where they both try to share the same space in the scene. The
solution is to keep grass away from corridors and design your level so that
you cannot go outside and see the corridor alongside grass.
Level Design Guidelines
Give the player enough weapons and ammo to defeat all the enemies in
the level, and build in a buffer to allow players not as proficient to
complete the level eventually.
Always seal your rooms and areas so the game engine is only rendering
what it absolutely needs to render. Rooms should have ceilings added to
them, and all open areas should be considered carefully to ensure each
direction has a cut-off. Two buildings on opposite sides of the map
separated by grass is a very expensive render and will slow down your
performance.
Make use of corridors as they are pre-sealed and are good at keeping your
rendered polygons to a minimum. When connecting corridors to rooms,
remember to use the dead end segment so that the corridor connects
gracefully with the room. Make sure the room has a wall facing the
corridor piece, and cut through that wall with a door of your choice.
Game Play Guidelines
Remember that dead enemies can be set to drop their weapons upon
death which the player can then collect - this is a good way of making the
player work for their guns!
Step your levels in difficulty and introduce elements of your game one at a
time so they can learn at a reasonable pace. Throwing everything at them
in one go will discourage the player from continuing to play the game.
77
Then click the BUILD EXECUTABLE button to build your game
You may now wish to share your game with your friends so you can play online.
When the build has completed, and you have been returned to the editor, exit the
editor software and locate the MyGames folder. You will find your newly created
arena executable in its own folder. You may zip up the entire folder, and it is
always a good idea to rename the zip-file with the day and time the executable
was made.
You can send your newly created zip-file to your friends in many different ways
depending on the size of the file and your capability to exchange files over the
internet. Here are some suggestions:
Use MSN Messenger to send the file to all the friends you wish to play against
If the file is smaller than 20mb, you may be able to email the game to your
friends
If you have access to an FTP site, you can upload the file there and provide
the link
You can burn the zip file to a CD or writable media of sufficient size and
deliver it to those people you wish to play against
Some online email providers also provide a small amount of shared space,
into which you could place the file and give your friends access to the area
With the popular use of P2P file exchange software, you can create a folder on
your machine that would commonly store your arena games, from which your
friends could gain access and obtain the game
10.3. Differences between Arena and Single Player
There are some key differences between regular single player level and arena
level editing. The most apparent is the lack of physics for the entities, and no
dynamic entities that are not essential to the gameplay. These restrictions will be
placed automatically in the editor when you are in arena mode to avoid
confusion. The reason these restrictions exist, is due to the lag time that exists
during multiplayer games. Game data has to be sent between all the PCs playing
the game many times per second, so it´s vital to keep this data as small as
possible. Here is a list of restrictions:
No physics on entities
No dynamic entities except weapons, ammo and health
All dynamic entities not essential to gameplay are forced to static
No projectile weaponry (rocket launchers, grenades)
Only one level per arena executable
78
11 Guidelines
Here are some key points to remember for creating good levels:
Level Editor Guidelines
Do not create extremely large open areas or rooms as they will require a
large number of polygons to render, which means your game will be slow
in places
Create a linear flow through the level and give the player clues where they
should go next, the easiest level to design is a succession of rooms and
corridors leading from the beginning to the end.
Separate your rooms with corridors or narrow turnings, as this will allow
the game engine to skip drawing large parts of the scene as it will not try
to draw around corners. This will speed up your games performance.
Do not place too many dynamic entities into a confined area such as a
high concentration of characters, items or weapons. Dynamic entities are
rendered individually and the more you have, the more work the engine
has to do and the slower your game is.
Where possible, use static entities to populate rooms and areas. Static
entities are added to the final scene geometry and are rendered together,
meaning the game will draw the scene faster and performance will
improve.
On rare occasions, some segments do not work well together such as a
grass tile and a corridor. Some corridors are very wide and the grass tile
may actually poke through the corridor and cause Z-clashing (flickering
polygons) where they both try to share the same space in the scene. The
solution is to keep grass away from corridors and design your level so that
you cannot go outside and see the corridor alongside grass.
Level Design Guidelines
Give the player enough weapons and ammo to defeat all the enemies in
the level, and build in a buffer to allow players not as proficient to
complete the level eventually.
Always seal your rooms and areas so the game engine is only rendering
what it absolutely needs to render. Rooms should have ceilings added to
them, and all open areas should be considered carefully to ensure each
direction has a cut-off. Two buildings on opposite sides of the map
separated by grass is a very expensive render and will slow down your
performance.
Make use of corridors as they are pre-sealed and are good at keeping your
rendered polygons to a minimum. When connecting corridors to rooms,
remember to use the dead end segment so that the corridor connects
gracefully with the room. Make sure the room has a wall facing the
corridor piece, and cut through that wall with a door of your choice.
Game Play Guidelines
Remember that dead enemies can be set to drop their weapons upon
death which the player can then collect - this is a good way of making the
player work for their guns!
Step your levels in difficulty and introduce elements of your game one at a
time so they can learn at a reasonable pace. Throwing everything at them
in one go will discourage the player from continuing to play the game.
79
Keep complex characters to three or four per room, and do not let those
characters wander too far from their origin. Complex characters consume
processing power and will slow down your game if too many are used.
Simple characters might have fewer polygons and use less sophisticated
AI routines, allowing you to add more in any one location. Remember you
can have many enemies, but space them out and separate them so that
the player encounters them in stages gradually, not all at once.
Multiplayer Guidelines
A good multiplayer arena design is based on the concept of high speed
game play, not story telling or puzzle solving. Arenas should be compact,
non-linear, easy to navigate and ideally no more than 30 seconds to any
position from any other position.
Remember that when building and distributing an arena executable, not all
computers are of equal specification. Design your arenas so they use as
few graphics as possible, and remember to use the maximum players
limiter to help guide your users into a fast game play experience.
An important element of a good arena is balance. Make your players
starting health, weapon power, weapon choices, health and ammo pickup
distribution such that the player does not die too quickly, or lasts forever.
This means extensive testing against online players.
Choose graphics that use low polygon counts to speed up the game action,
and make clever use of L-shaped corridors to block off large expanses of
scenery. Rendering a highly complex arena will slow down the action and
ruin a good high speed shooting match.
Limit your use of non-essential entities in an arena design. They may look
good at first, but those extra CPU cycles could be better spent dedicated
to game speed.
o When playing an arena game with your friends, choose the machine that is
the fastest for the HOST player. The host player acts as the server and
actually runs all the logic of the game itself.
o The arena executable uses a central listing service located at
www.fpscreator.com to store all hosters and their IP addresses, so that
the joiners can browse those games and join using a name instead of a
complex IP address. If you are joining and cannot see any names in the
list, you are either using `different´ executables (each executable has a
unique code assigned to it), or the central server is down.
o When editing in arena mode (as opposed to single player mode), some
items will no longer be available to you such as the physics fields, non-
essential dynamic entities, some weapons and items. You will also be
limited to adding non-essential entities as static entities only. These
measures ensure your online game remains fast, which is a key ingredient
to online play.
80
12 GUI Layout
12.1 The Drop Down Menus
File
New... This clears the editor window and allows you to start a new level from scratch.
New Arena3 Clears the editor window and sets you in Arena building mode.
Open... This opens the file browser, so that you can select a saved level project. Projects
have the extension ".fpm¨.
Save The current project is saved when this is selected if the project has not already been
named then the "Save As3¨ dialogue will appear.
Save As3 The file browser is shown, enabling you to choose a filename and folder for the
current project. If you choose a filename that already exists then you will be asked if
you want to overwrite the old file.
Build Game... This opens up the Build Game dialogue. Use this to build a final exe of your game.
Preferences... A dialogue will appear into which you can select the preferences you want when
editing a level and testing it from the editor.
1,2,3,4 The last four projects that were opened or saved in FPS Creator are shown here
clicking on one of these opens the project and loads it into the editor.
Exit This closes FPS Creator.
Edit
Undo Undo the last action performed in the editor window.
Redo Reverse the last "Undo¨ action.
Cut Cuts the highlighted area in the editor window.
Copy Copy - This copies the highlighted area in the editor window.
Clear This clears the highlighted area in the editor window.
79
Keep complex characters to three or four per room, and do not let those
characters wander too far from their origin. Complex characters consume
processing power and will slow down your game if too many are used.
Simple characters might have fewer polygons and use less sophisticated
AI routines, allowing you to add more in any one location. Remember you
can have many enemies, but space them out and separate them so that
the player encounters them in stages gradually, not all at once.
Multiplayer Guidelines
A good multiplayer arena design is based on the concept of high speed
game play, not story telling or puzzle solving. Arenas should be compact,
non-linear, easy to navigate and ideally no more than 30 seconds to any
position from any other position.
Remember that when building and distributing an arena executable, not all
computers are of equal specification. Design your arenas so they use as
few graphics as possible, and remember to use the maximum players
limiter to help guide your users into a fast game play experience.
An important element of a good arena is balance. Make your players
starting health, weapon power, weapon choices, health and ammo pickup
distribution such that the player does not die too quickly, or lasts forever.
This means extensive testing against online players.
Choose graphics that use low polygon counts to speed up the game action,
and make clever use of L-shaped corridors to block off large expanses of
scenery. Rendering a highly complex arena will slow down the action and
ruin a good high speed shooting match.
Limit your use of non-essential entities in an arena design. They may look
good at first, but those extra CPU cycles could be better spent dedicated
to game speed.
o When playing an arena game with your friends, choose the machine that is
the fastest for the HOST player. The host player acts as the server and
actually runs all the logic of the game itself.
o The arena executable uses a central listing service located at
www.fpscreator.com to store all hosters and their IP addresses, so that
the joiners can browse those games and join using a name instead of a
complex IP address. If you are joining and cannot see any names in the
list, you are either using `different´ executables (each executable has a
unique code assigned to it), or the central server is down.
o When editing in arena mode (as opposed to single player mode), some
items will no longer be available to you such as the physics fields, non-
essential dynamic entities, some weapons and items. You will also be
limited to adding non-essential entities as static entities only. These
measures ensure your online game remains fast, which is a key ingredient
to online play.
80
12 GUI Layout
12.1 The Drop Down Menus
File
New... This clears the editor window and allows you to start a new level from scratch.
New Arena3 Clears the editor window and sets you in Arena building mode.
Open... This opens the file browser, so that you can select a saved level project. Projects
have the extension ".fpm¨.
Save The current project is saved when this is selected if the project has not already been
named then the "Save As3¨ dialogue will appear.
Save As3 The file browser is shown, enabling you to choose a filename and folder for the
current project. If you choose a filename that already exists then you will be asked if
you want to overwrite the old file.
Build Game... This opens up the Build Game dialogue. Use this to build a final exe of your game.
Preferences... A dialogue will appear into which you can select the preferences you want when
editing a level and testing it from the editor.
1,2,3,4 The last four projects that were opened or saved in FPS Creator are shown here
clicking on one of these opens the project and loads it into the editor.
Exit This closes FPS Creator.
Edit
Undo Undo the last action performed in the editor window.
Redo Reverse the last "Undo¨ action.
Cut Cuts the highlighted area in the editor window.
Copy Copy - This copies the highlighted area in the editor window.
Clear This clears the highlighted area in the editor window.
81
Segments
Paint All Of Segments This sets the 3D cursor into a mode that ensures the whole of a chosen
segment (floor and all walls) will be painted into a grid cell.
Paint Only Walls This sets the 3D cursor into a mode that will only paint the wall sections of
a chosen segment. The wall is painted in the direction indicated by the
arrow on the 3D cursor. Use the "R¨ key to rotate the arrow.
Paint Only Floors Ensures that only the floor section of a chosen segment will be painted at
the 3D cursor position.
Pick Segment From Grid Sets the cursor into "PICK¨ mode. You must then choose a grid position
that has the segment you want to use. Once chosen, you can start
painting with it.
External Draw Mode Will set the editor into External draw mode.
Internal Draw Mode Sets the editor into Internal draw mode.
Editing
Segment Mode Sets the editor into Segment editing mode.
Entity Mode Sets the editor into Entity mode.
Clipboard Edit Sets the editor into Clipboard mode.
Zoom In Zooms in towards the 3D scene in the editor.
Zoom Out Zooms out from the 3D scene in the editor.
Move Up A Layer Moves the editing view up one layer.
Move Down A Layer Moves the editing view down one layer.
View Entire Level Shows a zoomed out view of the level. Simply click into the view to zoom
to the area you want to continue editing.
82
View
Toolbars The toolbars can be enabled and disabled here. When the sub-menu appears,
just toggle the sections of the tool bar you want shown or hidden.
Status Bar This enables/disables the status bar at the bottom of the screen.
Help
About FPS Creator3 A window appears that shows the version number that you are using, along
with a link to the official FPSC website.
Credits... Shows a list of the team who created FPS Creator.
81
Segments
Paint All Of Segments This sets the 3D cursor into a mode that ensures the whole of a chosen
segment (floor and all walls) will be painted into a grid cell.
Paint Only Walls This sets the 3D cursor into a mode that will only paint the wall sections of
a chosen segment. The wall is painted in the direction indicated by the
arrow on the 3D cursor. Use the "R¨ key to rotate the arrow.
Paint Only Floors Ensures that only the floor section of a chosen segment will be painted at
the 3D cursor position.
Pick Segment From Grid Sets the cursor into "PICK¨ mode. You must then choose a grid position
that has the segment you want to use. Once chosen, you can start
painting with it.
External Draw Mode Will set the editor into External draw mode.
Internal Draw Mode Sets the editor into Internal draw mode.
Editing
Segment Mode Sets the editor into Segment editing mode.
Entity Mode Sets the editor into Entity mode.
Clipboard Edit Sets the editor into Clipboard mode.
Zoom In Zooms in towards the 3D scene in the editor.
Zoom Out Zooms out from the 3D scene in the editor.
Move Up A Layer Moves the editing view up one layer.
Move Down A Layer Moves the editing view down one layer.
View Entire Level Shows a zoomed out view of the level. Simply click into the view to zoom
to the area you want to continue editing.
82
View
Toolbars The toolbars can be enabled and disabled here. When the sub-menu appears,
just toggle the sections of the tool bar you want shown or hidden.
Status Bar This enables/disables the status bar at the bottom of the screen.
Help
About FPS Creator3 A window appears that shows the version number that you are using, along
with a link to the official FPSC website.
Credits... Shows a list of the team who created FPS Creator.
83
12.2 Toolbars
Standard Toolbar
New Clears the editor window.
Open Opens the file browser so that you can select a previously saved
project.
Save The current project is saved when this is selected if the project has
not already been named then the "Save As3¨ dialogue will appear.
Cut Cuts the highlighted area in the editor window.
Copy Copies the highlighted area in the editor window.
Erase Clears the highlighted area in the editor window.
Undo Undoes the last segment edit action.
Redo Redoes the last undo action.
View
Zoom In Use this to get a closer view of the map.
Zoom Out Use this to get a wider, less detailed view of the map.
Increase Shroud This increases the area of the render shroud in the editor window.
Decrease Shroud This decreases the area of the render shroud in the editor window
(useful for lower-spec PCs that cannot handle lots of polygons. This will
be very helpful when editing more complex maps and viewing multiple
layers.
Toggle Layers Switches between single and multiple layer views. It has three modes,
current layer with lower 5 and higher 5 layers, current layer only and
half of current layer.
Move Up Layer Move up to a higher layer on the map editor.
Move Down Layer Move to a lower layer on the map editor.
Entire Level Zooms out to show the entire map area. Click into the map to view
that area.
Close Up View Zooms in to the centre of the editor window, showing a rendered view
of the contents of the middle of the screen. Right drag and move the
mouse wheel to view around and left click to exit this mode.
Segments
Entity edit mode Sets the editor into entity edit mode
Segment edit
mode
Sets the editor into segment edit mode
Interior Chooses internal segment editing mode.
Exterior Chooses external segment editing mode.
Wall After clicking this, only walls of segments will be drawn.
Floor Sets the segment painting mode to only draw the floor section. Ideal
for adding a ceiling onto the top of a room without affecting other
walls.
Pick Segment Allows you to choose a segment type from the main editor window. It
can then be drawn to any other part of the map.
Select Area Allows the user to highlight an area within the main editor window this
can then be erased, copied, moved, etc.
Draw
Draw Segment As
Line
A free drawing tool this can be used to draw rooms and corridors in
any shape or size.
Draw Segment As
Rectangle
Draw a segment in a square or rectangular shape. This is a quick way
to set out large rooms.
Draw As Ellipse Draw circular rooms.
Spray Segment Spray the chosen segment over the map area.
84
Increase Draw
Brush Size
The segments are drawn over a wider area.
Decrease Draw
Brush Size
The segments are drawn over a narrower area.
Waypoints
New Waypoint Add a waypoint to the map and also enter into waypoint editing mode.
Select Waypoint Enter waypoint editing mode. You will need to use this when you have
been placing segments or entities down and want to re-edit existing
waypoints.
Test Game/Level
Test Level Test the current Level using the settings chosen in the Preferences
dialogue box.
Quick Level
Preview
Test the current level geometry with just basic collision. No light
mapping or entity AI will be setup. This is just a quick way to try out
your level´s design.
83
12.2 Toolbars
Standard Toolbar
New Clears the editor window.
Open Opens the file browser so that you can select a previously saved
project.
Save The current project is saved when this is selected if the project has
not already been named then the "Save As3¨ dialogue will appear.
Cut Cuts the highlighted area in the editor window.
Copy Copies the highlighted area in the editor window.
Erase Clears the highlighted area in the editor window.
Undo Undoes the last segment edit action.
Redo Redoes the last undo action.
View
Zoom In Use this to get a closer view of the map.
Zoom Out Use this to get a wider, less detailed view of the map.
Increase Shroud This increases the area of the render shroud in the editor window.
Decrease Shroud This decreases the area of the render shroud in the editor window
(useful for lower-spec PCs that cannot handle lots of polygons. This will
be very helpful when editing more complex maps and viewing multiple
layers.
Toggle Layers Switches between single and multiple layer views. It has three modes,
current layer with lower 5 and higher 5 layers, current layer only and
half of current layer.
Move Up Layer Move up to a higher layer on the map editor.
Move Down Layer Move to a lower layer on the map editor.
Entire Level Zooms out to show the entire map area. Click into the map to view
that area.
Close Up View Zooms in to the centre of the editor window, showing a rendered view
of the contents of the middle of the screen. Right drag and move the
mouse wheel to view around and left click to exit this mode.
Segments
Entity edit mode Sets the editor into entity edit mode
Segment edit
mode
Sets the editor into segment edit mode
Interior Chooses internal segment editing mode.
Exterior Chooses external segment editing mode.
Wall After clicking this, only walls of segments will be drawn.
Floor Sets the segment painting mode to only draw the floor section. Ideal
for adding a ceiling onto the top of a room without affecting other
walls.
Pick Segment Allows you to choose a segment type from the main editor window. It
can then be drawn to any other part of the map.
Select Area Allows the user to highlight an area within the main editor window this
can then be erased, copied, moved, etc.
Draw
Draw Segment As
Line
A free drawing tool this can be used to draw rooms and corridors in
any shape or size.
Draw Segment As
Rectangle
Draw a segment in a square or rectangular shape. This is a quick way
to set out large rooms.
Draw As Ellipse Draw circular rooms.
Spray Segment Spray the chosen segment over the map area.
84
Increase Draw
Brush Size
The segments are drawn over a wider area.
Decrease Draw
Brush Size
The segments are drawn over a narrower area.
Waypoints
New Waypoint Add a waypoint to the map and also enter into waypoint editing mode.
Select Waypoint Enter waypoint editing mode. You will need to use this when you have
been placing segments or entities down and want to re-edit existing
waypoints.
Test Game/Level
Test Level Test the current Level using the settings chosen in the Preferences
dialogue box.
Quick Level
Preview
Test the current level geometry with just basic collision. No light
mapping or entity AI will be setup. This is just a quick way to try out
your level´s design.
85
13 How-To Guides for advanced users
13.1 Changing the Game Resolution
The games made by FPS Creator run in 1024x768 resolution 32bit colour. This
can be changed by editing the games setup.ini file. This file is read each time
your game is executed so the more advanced users could write a game pre-
loaded that modified the .ini file contents (i.e. a small exe that let the user set
their game resolution themselves, etc).
13.2 Making New FPI LOGIC
You can create your own AI scripts using the FPI script language. FPI files control
everything in FPS Creator from the title page appearing to how your characters
hunt the player. There are places within the interface which accept the use of an
FPI file such as the AI fields of the entity properties or the screen descriptions in
the Build Game options. FPS Creator does not have its own tool to create these
FPI files but because they are plain text files you can use your own favourite text
editor, or Notepad which is provided with all versions of Windows, to create or
edit FPI files.
Creating a Simple FPI File
1. Open Windows Explorer and navigate to FPS Creator\Files\scriptbank
2. Create a new folder called MyScripts\
3. Inside this folder, right click and select New->Text Document
4. Rename the newly created file to mylogic.fpi
5. Double click this file and select for it to be opened with Notepad
6. Type the following
desc = Loop Sound When FPI Used
:state=0:state=1,loopsound=audiobank\atmos\alarmhum.wav
7. Notice the colon (: ) at the start of the line and after the first expression
8. STATE!0 is the condition, which means `if the variable STATE is zero´
9. SOUND!¨file¨ is the first action which tells the game to play this sound
10. STATE!1 is the second action which sets the STATE variable to 1
11. The second colon (: ) separates the conditions from the actions
12. The comma (, ) separate individual conditions and individual actions
13. You only have one variable per FPI file, which is called STATE
14. LOOPSOUND will instruct the game to repeatedly play the WAV file
Using an FPI File
1. Run FPS Creator.
2. Paint a piece of floor in the map, then add any dynamic entity to it
3. Right click on the entity, and select the file browser button to the right of
the `AI Scripts/Main´ field (this is the field which controls the main logic for
this entity)
4. Locate and select the mylogic.fpi file you have previously created
5. Left click on Apply Changes and then click TEST GAME
6. When the game starts, the WAV file will be played as instructed
How FPI works
The FPI files are scanned in at the start of the game and converted to a fast form
of byte code. These FPI scripts are then linked to the entities that use them and
for as long as the entities exist within the game they will run the logic they
contain. Essentially whatever you want your entity to think about or do can be
86
performed from inside these scripts. Scripts control everything including items
appearing, disappearing, opening doors, unlocking doors, collecting items,
collecting weapons, destroying items, character movement and anything else that
moves within the logic of the game.
FPI Language
This is a typical event action line. You can have many actions/conditions:
:condition[,condition][,condition]:action[,action][,action]
This is a comment:
; myscript comment
This is a condition:
Conditionword=conditionvalue1 [conditionvalue2]
This is an action:
Actionword=actionvalue
Conditions list
These are the condition words, which will perform actions if all are true:
NEVER is never true
ALWAYS is always true
STATE!X is true when the value stored in the FPI script is equal to X
RANDOM!X is true when a random value between 0 and X is equal to one
HEALTH!X is true when health equals X
HEALTHLESS!X is true when the health is less than X
QUANTITY!X is true when quantity is equal to X
SPEED!X is true when speed is equal to X
ASSOCIATED!X is true when entity has been associated with player (lift)
PLRDISTWITHIN!X is true when player is within X units
PLRDISTFURTHER!X is true when player is further than X units
PLRALIVE!X is true when player is alive and X is one
PLRHIGHER!X is true when player is X units higher than entity
PLRELEVWITHIN!X is true when player can be seen within X degrees vertical
PLRELEVFURTHER!X is true when player cannot be seen X degrees vertical
ANYWITHIN!X is true when any other entity moves within X quarter tiles
ANYFURTHER!X is true when no within X quarter tiles
PLRCANBESEEN is true when player can be seen
PLRCANNOTBESEEN is true when player cannot be seen
PLRHASKEY!X is true when player has pressed the key denoted by the value X
PLRUSINGACTION!X is true when player performs the USE action
SHOTDAMAGE!X is true when damage taken exceeds the value X
IFWEAPON!X is true when the weapon being used by entity is ready and X is
one
ACTIVATED!X is true when the activation value of the entity equals X
PLRWITHINZONE is true when player is within the trigger zone
ENTITYWITHINZONE is true when an entity is within the trigger zone
PLRINGUNSIGHT!X is true when an entity has the player is gun sights
NEARACTIVATABLE!X is true when entity is being near activated
NEWWEAPONCANBESEEN!X is true when the entity can see a better weapon
NOISEHEARD!X is true when the entity hears a broadcast noise from scene
RAYCAST!X Y is true when the raycast hits something in front from X to Y
units
RAYCASTUP!X is true when the raycast hits something above from X to Y units
RAYCASTBACK!X is true when the raycast hits something back from X to Y units
FRAMEATEND!X is true when animation X is at an end
FRAMEATSTART!X is true when animation X is at the beginning
85
13 How-To Guides for advanced users
13.1 Changing the Game Resolution
The games made by FPS Creator run in 1024x768 resolution 32bit colour. This
can be changed by editing the games setup.ini file. This file is read each time
your game is executed so the more advanced users could write a game pre-
loaded that modified the .ini file contents (i.e. a small exe that let the user set
their game resolution themselves, etc).
13.2 Making New FPI LOGIC
You can create your own AI scripts using the FPI script language. FPI files control
everything in FPS Creator from the title page appearing to how your characters
hunt the player. There are places within the interface which accept the use of an
FPI file such as the AI fields of the entity properties or the screen descriptions in
the Build Game options. FPS Creator does not have its own tool to create these
FPI files but because they are plain text files you can use your own favourite text
editor, or Notepad which is provided with all versions of Windows, to create or
edit FPI files.
Creating a Simple FPI File
1. Open Windows Explorer and navigate to FPS Creator\Files\scriptbank
2. Create a new folder called MyScripts\
3. Inside this folder, right click and select New->Text Document
4. Rename the newly created file to mylogic.fpi
5. Double click this file and select for it to be opened with Notepad
6. Type the following
desc = Loop Sound When FPI Used
:state=0:state=1,loopsound=audiobank\atmos\alarmhum.wav
7. Notice the colon (: ) at the start of the line and after the first expression
8. STATE!0 is the condition, which means `if the variable STATE is zero´
9. SOUND!¨file¨ is the first action which tells the game to play this sound
10. STATE!1 is the second action which sets the STATE variable to 1
11. The second colon (: ) separates the conditions from the actions
12. The comma (, ) separate individual conditions and individual actions
13. You only have one variable per FPI file, which is called STATE
14. LOOPSOUND will instruct the game to repeatedly play the WAV file
Using an FPI File
1. Run FPS Creator.
2. Paint a piece of floor in the map, then add any dynamic entity to it
3. Right click on the entity, and select the file browser button to the right of
the `AI Scripts/Main´ field (this is the field which controls the main logic for
this entity)
4. Locate and select the mylogic.fpi file you have previously created
5. Left click on Apply Changes and then click TEST GAME
6. When the game starts, the WAV file will be played as instructed
How FPI works
The FPI files are scanned in at the start of the game and converted to a fast form
of byte code. These FPI scripts are then linked to the entities that use them and
for as long as the entities exist within the game they will run the logic they
contain. Essentially whatever you want your entity to think about or do can be
86
performed from inside these scripts. Scripts control everything including items
appearing, disappearing, opening doors, unlocking doors, collecting items,
collecting weapons, destroying items, character movement and anything else that
moves within the logic of the game.
FPI Language
This is a typical event action line. You can have many actions/conditions:
:condition[,condition][,condition]:action[,action][,action]
This is a comment:
; myscript comment
This is a condition:
Conditionword=conditionvalue1 [conditionvalue2]
This is an action:
Actionword=actionvalue
Conditions list
These are the condition words, which will perform actions if all are true:
NEVER is never true
ALWAYS is always true
STATE!X is true when the value stored in the FPI script is equal to X
RANDOM!X is true when a random value between 0 and X is equal to one
HEALTH!X is true when health equals X
HEALTHLESS!X is true when the health is less than X
QUANTITY!X is true when quantity is equal to X
SPEED!X is true when speed is equal to X
ASSOCIATED!X is true when entity has been associated with player (lift)
PLRDISTWITHIN!X is true when player is within X units
PLRDISTFURTHER!X is true when player is further than X units
PLRALIVE!X is true when player is alive and X is one
PLRHIGHER!X is true when player is X units higher than entity
PLRELEVWITHIN!X is true when player can be seen within X degrees vertical
PLRELEVFURTHER!X is true when player cannot be seen X degrees vertical
ANYWITHIN!X is true when any other entity moves within X quarter tiles
ANYFURTHER!X is true when no within X quarter tiles
PLRCANBESEEN is true when player can be seen
PLRCANNOTBESEEN is true when player cannot be seen
PLRHASKEY!X is true when player has pressed the key denoted by the value X
PLRUSINGACTION!X is true when player performs the USE action
SHOTDAMAGE!X is true when damage taken exceeds the value X
IFWEAPON!X is true when the weapon being used by entity is ready and X is
one
ACTIVATED!X is true when the activation value of the entity equals X
PLRWITHINZONE is true when player is within the trigger zone
ENTITYWITHINZONE is true when an entity is within the trigger zone
PLRINGUNSIGHT!X is true when an entity has the player is gun sights
NEARACTIVATABLE!X is true when entity is being near activated
NEWWEAPONCANBESEEN!X is true when the entity can see a better weapon
NOISEHEARD!X is true when the entity hears a broadcast noise from scene
RAYCAST!X Y is true when the raycast hits something in front from X to Y
units
RAYCASTUP!X is true when the raycast hits something above from X to Y units
RAYCASTBACK!X is true when the raycast hits something back from X to Y units
FRAMEATEND!X is true when animation X is at an end
FRAMEATSTART!X is true when animation X is at the beginning
87
FRAMEWITHIN!X Y is true when animation X is within frame Y
FRAMEBEYOND!X Y is true when animation X is beyond frame Y
ANIMATIONOVER!X is true when animation X is complete
ALPHAFADEEQUAL!X is true when the alpha value equals X
REACHTARGET!X is true when the entity has reached its target
LOSETARGET!X is true when the entity has got stuck after X attempts
HEADANGLEGREATER!X is true when the angle of the head is greater than X
HEADANGLELESS!X is true when the angle of the head is less than X
WAYPOINTSTATE!X is true when the waypoint state value equals X.
State 0 means the entity has not yet started following
waypoints
State 1 means the entity is looking for the nearest waypoint
marker to start from
State 2 means the entity is following a waypoint line to its
current waypoint marker
State 3 means the entity has reached the waypoint marker and
needs to decide what to do
State 4 means the entity has reached the waypoint marker and
it splits off in more than one other direction
State 5 means the entity has reached the very end of the
current waypoint structure and requires a decision to be made.
A state of 999 means the entity has been placed in zero-
waypoint mode where the entity simply ignores waypoints.
IFMARKER!X is true when there is a marker previously dropped by entity in
scene
IFPLRTRAIL!X is true when there is a trail left by the player in existence
HUDSELECTIONMADE!X is true when the user has clicked HUD button X
TIMERGREATER!X is true when the internal FPI timer exceeds X in milliseconds
ESCAPEKEYPRESSED!X is true when the Escape Key has been pressed
PLRHEALTHLESS!X is true when the players health falls below X
PLRHEALTHGREATER!X is true when the players health is greater than X
ANYWITHIN!X is true when any entity is closer than X to it
ANYFURTHER!X is true when any entity is further than X from it
CANTAKE is true if the entity can be collected by player
ANYWITHINZONE is true when any entity is within its zone
NORAYCASTUP!X Y is true when no collision upwards X to Y
HUDEDITDONE!X is true when `editable´ HUD item X is used
HUDHAVENAME is true when no player-name has been entered
Actions list
NONE no action
DESTROY destroy entity
SUSPEND disable the entity permanently, and keep it visible
RUNFPIDEFAULT!X run a default FPI script by value X (0-init,1-main,2-end)
RUNFPI!X run another FPI script by name X(ie appear1.fpi)
STATE!X sets the value of the internal variable State to X
MOVEUP!X moves the entity up by X units
MOVEFORE!X moves the entity forward by X units
MOVEBACK!X move the entity back by X units
FREEZE!X stop entity from moving
ROTATEY!X set the entity angle around the Y axis for X degrees
ROTATEIY!X rotate the entity around the Y axis incrementally for X degrees
ROTATETOPLR rotate the entity to face the player
RESETHEAD reset the angle of the head if the entity has one
ROTATEHEAD!X rotate the head of the entity by X degrees
ROTATEHEADRANDOM!X rotate the head of the entity at random by X degrees
FORCEBACK!X apply a force to the entity by a factor of X backwards
FORCEFORE!X apply a force to the entity by a factor of X forwards
FORCELEFT!X apply a force to the entity by a factor of X left
FORCERIGHT!X apply a force to the entity by a factor of X right
FORCEBOUNCE!X apply a force to the entity to cause it to bounce back by X
SPINRATE!X spin the entity around the Y axis at a rate of X
FLOATRATE!X cause the entity to float in the air at a hover rate of X
SETFRAME!X set animation X start frame
INCFRAME!X increment another frame in animation X
88
DECFRAME!X decrement another frame in animation X
ANIMATE!X automatically play animation X.
In regards to characters provided, there are a number of
animations built in which can be played. These are:
0 ! Spawn
1 ! Idle
2 ! Move Slow
3 ! Strafe Left
4 ! Strafe Right
5 ! Move Fast
6 ! Reload Weapon (or Toss)
10 ! Climb
11 ! Impact Front
12 ! Bounce Front
13 ! Get Up Front
14 ! Impact Back
15 ! Bounce Back
16 ! Get Up Back
17 ! Impact Left
18 ! Bounce Left
20 ! Impact Right
21 ! Bounce Right
31 ! Crouched Idle
32 ! Crouched Move Slow (same)
33 ! Crouched Strafe Left (same)
34 ! Crouched Strafe Right (same)
35 ! Crouched Move Fast (same)
36 ! Crouched Reload Weapon (or toss)
40 ! Freeform Idle
41 ! Freeform Move
50 ! Weapon Spawn
51 ! Weapon Idle
52 ! Weapon Move Slow
53 ! Weapon Strafe Left
54 ! Weapon Strafe Right
55 ! Weapon Move Fast
56 ! Weapon Reload Weapon (or Toss)
57 ! Weapon NEW Climb
61 ! Weapon Impact Front
62 ! Weapon Bounce Front
63 ! Weapon Get Up Front
64 ! Weapon Impact Back
65 ! Weapon Bounce Back
66 ! Weapon Get Up Back
67 ! Weapon Impact Left
68 ! Weapon Bounce Left
70 ! Weapon Impact Right
71 ! Weapon Bounce Right
81 ! Weapon Crouched Idle
82 ! Weapon Crouched Move Slow (same)
83 ! Weapon Crouched Strafe Left (same)
84 ! Weapon Crouched Strafe Right (same)
85 ! Weapon Crouched Move Fast (same)
86 ! Weapon Crouched Reload Weapon (or toss)
90 ! Weapon Freeform Idle
91 ! Weapon Freeform Move
PLRASS!X associate this entity with the player (lift)
PLRNOASS!X disassociate this entity from the player
PLRMOVEUP!X move the player up by X units
PLRMOVEDOWN!X move the player up by X units
PLRMOVEEAST!X move the player east by X units
PLRMOVEWEST!X move the player west by X units
PLRMOVENORTH!X move the player north by X units
PLRMOVESOUTH!X move the player south by X units
PLRMOVETO!X move the player to a new location described by entity name X
PLRMOVEIFUSED!X if player performs the USE action, move the player as above
ACTIVATEIFUSED!X activate entity described in IFUSED property
ACTIVATEIFUSEDNEAR!X activate entity described in IFUSED and near it
ACTIVATETARGET!X activates the entity previously marked as the target with X
ACTIVATE!X activate this entity using the value X
87
FRAMEWITHIN!X Y is true when animation X is within frame Y
FRAMEBEYOND!X Y is true when animation X is beyond frame Y
ANIMATIONOVER!X is true when animation X is complete
ALPHAFADEEQUAL!X is true when the alpha value equals X
REACHTARGET!X is true when the entity has reached its target
LOSETARGET!X is true when the entity has got stuck after X attempts
HEADANGLEGREATER!X is true when the angle of the head is greater than X
HEADANGLELESS!X is true when the angle of the head is less than X
WAYPOINTSTATE!X is true when the waypoint state value equals X.
State 0 means the entity has not yet started following
waypoints
State 1 means the entity is looking for the nearest waypoint
marker to start from
State 2 means the entity is following a waypoint line to its
current waypoint marker
State 3 means the entity has reached the waypoint marker and
needs to decide what to do
State 4 means the entity has reached the waypoint marker and
it splits off in more than one other direction
State 5 means the entity has reached the very end of the
current waypoint structure and requires a decision to be made.
A state of 999 means the entity has been placed in zero-
waypoint mode where the entity simply ignores waypoints.
IFMARKER!X is true when there is a marker previously dropped by entity in
scene
IFPLRTRAIL!X is true when there is a trail left by the player in existence
HUDSELECTIONMADE!X is true when the user has clicked HUD button X
TIMERGREATER!X is true when the internal FPI timer exceeds X in milliseconds
ESCAPEKEYPRESSED!X is true when the Escape Key has been pressed
PLRHEALTHLESS!X is true when the players health falls below X
PLRHEALTHGREATER!X is true when the players health is greater than X
ANYWITHIN!X is true when any entity is closer than X to it
ANYFURTHER!X is true when any entity is further than X from it
CANTAKE is true if the entity can be collected by player
ANYWITHINZONE is true when any entity is within its zone
NORAYCASTUP!X Y is true when no collision upwards X to Y
HUDEDITDONE!X is true when `editable´ HUD item X is used
HUDHAVENAME is true when no player-name has been entered
Actions list
NONE no action
DESTROY destroy entity
SUSPEND disable the entity permanently, and keep it visible
RUNFPIDEFAULT!X run a default FPI script by value X (0-init,1-main,2-end)
RUNFPI!X run another FPI script by name X(ie appear1.fpi)
STATE!X sets the value of the internal variable State to X
MOVEUP!X moves the entity up by X units
MOVEFORE!X moves the entity forward by X units
MOVEBACK!X move the entity back by X units
FREEZE!X stop entity from moving
ROTATEY!X set the entity angle around the Y axis for X degrees
ROTATEIY!X rotate the entity around the Y axis incrementally for X degrees
ROTATETOPLR rotate the entity to face the player
RESETHEAD reset the angle of the head if the entity has one
ROTATEHEAD!X rotate the head of the entity by X degrees
ROTATEHEADRANDOM!X rotate the head of the entity at random by X degrees
FORCEBACK!X apply a force to the entity by a factor of X backwards
FORCEFORE!X apply a force to the entity by a factor of X forwards
FORCELEFT!X apply a force to the entity by a factor of X left
FORCERIGHT!X apply a force to the entity by a factor of X right
FORCEBOUNCE!X apply a force to the entity to cause it to bounce back by X
SPINRATE!X spin the entity around the Y axis at a rate of X
FLOATRATE!X cause the entity to float in the air at a hover rate of X
SETFRAME!X set animation X start frame
INCFRAME!X increment another frame in animation X
88
DECFRAME!X decrement another frame in animation X
ANIMATE!X automatically play animation X.
In regards to characters provided, there are a number of
animations built in which can be played. These are:
0 ! Spawn
1 ! Idle
2 ! Move Slow
3 ! Strafe Left
4 ! Strafe Right
5 ! Move Fast
6 ! Reload Weapon (or Toss)
10 ! Climb
11 ! Impact Front
12 ! Bounce Front
13 ! Get Up Front
14 ! Impact Back
15 ! Bounce Back
16 ! Get Up Back
17 ! Impact Left
18 ! Bounce Left
20 ! Impact Right
21 ! Bounce Right
31 ! Crouched Idle
32 ! Crouched Move Slow (same)
33 ! Crouched Strafe Left (same)
34 ! Crouched Strafe Right (same)
35 ! Crouched Move Fast (same)
36 ! Crouched Reload Weapon (or toss)
40 ! Freeform Idle
41 ! Freeform Move
50 ! Weapon Spawn
51 ! Weapon Idle
52 ! Weapon Move Slow
53 ! Weapon Strafe Left
54 ! Weapon Strafe Right
55 ! Weapon Move Fast
56 ! Weapon Reload Weapon (or Toss)
57 ! Weapon NEW Climb
61 ! Weapon Impact Front
62 ! Weapon Bounce Front
63 ! Weapon Get Up Front
64 ! Weapon Impact Back
65 ! Weapon Bounce Back
66 ! Weapon Get Up Back
67 ! Weapon Impact Left
68 ! Weapon Bounce Left
70 ! Weapon Impact Right
71 ! Weapon Bounce Right
81 ! Weapon Crouched Idle
82 ! Weapon Crouched Move Slow (same)
83 ! Weapon Crouched Strafe Left (same)
84 ! Weapon Crouched Strafe Right (same)
85 ! Weapon Crouched Move Fast (same)
86 ! Weapon Crouched Reload Weapon (or toss)
90 ! Weapon Freeform Idle
91 ! Weapon Freeform Move
PLRASS!X associate this entity with the player (lift)
PLRNOASS!X disassociate this entity from the player
PLRMOVEUP!X move the player up by X units
PLRMOVEDOWN!X move the player up by X units
PLRMOVEEAST!X move the player east by X units
PLRMOVEWEST!X move the player west by X units
PLRMOVENORTH!X move the player north by X units
PLRMOVESOUTH!X move the player south by X units
PLRMOVETO!X move the player to a new location described by entity name X
PLRMOVEIFUSED!X if player performs the USE action, move the player as above
ACTIVATEIFUSED!X activate entity described in IFUSED property
ACTIVATEIFUSEDNEAR!X activate entity described in IFUSED and near it
ACTIVATETARGET!X activates the entity previously marked as the target with X
ACTIVATE!X activate this entity using the value X
89
ACTIVATEALLINZONE!X activate all the entities within the trigger zone with X
PLRADDHEALTH!X adds X points to the players health
SETTARGET sets the internal target for the entity, follows `target´ conditions
ROTATETOTARGET rotate the entity to face the target
LOOKATTARGET rotate the head of the entity to face the target
MOVETOTARGET moves to the target
COLLECTTARGET if the target is a collectable, collect the target if close
CHOOSESTRAFE randomly selects a strafe direction (ie left/right/forward)
STRAFE perform the previously chosen strafe to avoid player shots
PIVOTRANDOM!X randomly pivots around to face another direction by X degrees
LOOKATPLR!X look directly at the player even if the player cannot be seen
SOUND!X plays a sound specified by the X filename. Use 0 to specify
soundest
3DSOUND!X plays a 3D sound specified by the X filename. Use 0 for
soundest
LOOPSOUND!X loops a 3D sound specified by the X filename.
ALTTEXTURE!X set the texture used based on X being either zero or one
SETALPHAFADE!X set the alpha value to X which causes entity transparency
INCALPHAFADE!X increment the alpha fade, X being the destination
DECALPHAFADE!X decrement the alpha fade, X being the destination
RUNDECAL!X create a decal from the entity, X being a specific mode 1-6
WAYPOINTSTART instructs the entity to find the closest waypoint
WAYPOINTSTOP stops the entity following waypoints
WAYPOINTREVERSE makes the entity reverse course and go the other way
WAYPOINTNEXT instructs the entity to find the next waypoint
WAYPOINTPREV instructs the entity to find the previous waypoint
WAYPOINTRANDOM instructs the entity choose a random waypoint direction
DROPMARKER drops a marker the entity can later return to
NEXTMARKER instructs the entity to go to the last dropped marker
RESETMARKERS resets all markers dropped by this entity
FOLLOWPLR follows the players trail if one exists
PLRTAKE used to add an entity to the players inventory and acquire its
assets
PLRDROP used to drop an item from the players inventory
SHOOTPLR runs the internal FPI script SHOOT specified in character
properties
USEWEAPON fires any weapon half by an entity in the direction of the target
RELOADWEAPON reloads the weapon from the entities stock of infinite ammo
COLOFF deactivate all player collision with this entity
COLON activate all player collision with this entity
ACTIVATE!X sets the activation value of the entity to X
AMBIENCE!X sets the overall ambient light level within the scene to X
AMBIENCERED!X sets the red component of the ambient light to X
AMBIENCEGREEN!X sets the green component of the ambient light to X
AMBIENCEBLUE!X sets the blue component of the ambient light to X
FOG!X sets the fog mode within the scene when X is one
FOGRED!X sets the red component of the fog to X
FOGGREEN!X sets the green component of the fog to X
FOGBLUE!X sets the blue component of the fog to X
SKY!X sets the skybox to the sky model specified by X filename
SKYSCROLL!X sets the sky scroll texture to the file specified by X filename
BACKDROP!X loads and pastes the screen backdrop using X filename
MUSIC!X loads and plays the WAV using X filename
MUSICVOLUME!X sets the music volume in the range of 0-100
LIGHTON!X lighton
LIGHTOFF!X lightoff
LIGHTRED!X lightred
LIGHTGREEN!X lightgreen
LIGHTBLUE!X lightblue
LIGHTRANGE!X lightrange
HUDRESET!X call this to reset the HUD creation system
HUDX!X sets the X position percentage of where you want your HUD
item to be
HUDY!X sets the Y position percentage of where you want your HUD
item to be
HUDZ!X sets the Z position percentage of where you want your HUD
item to be
HUDSIZEX!X sets the X size of your HUD item
90
HUDSIZEY!X sets the Y size of your HUD item
HUDSIZEZ!X sets the X size of your HUD item
HUDRED!X sets the red component of your HUD item
HUDGREEN!X sets the green component of your HUD item
HUDBLUE!X sets the blue component of your HUD item
HUDIMAGE!X sets the image filename of your HUD item
HUDFONT!X sets the font name of your HUD item
HUDSIZE!X sets the font size of your HUD item
HUDTEXT!X sets the text that will be used in place of no image of the HUD
item
HUDTYPE!X set the HUD type (1-lives,2-health,3-weapon)
HUDHIDE!X set X to the name of the HUD item to hide it
HUDSHOW!X set X to the name of the HUD item to reveal it
HUDUNSHOW!X set X to the name of the HUD item to un-hide it
HUDNAME!X set the name of the HUD item you are creating
HUDANIM!X set the filename X of the animation sequence (exclude #.TGA)
HUDMAKE!X when all HUD items set, use this action to finally create the HUD
NEWGAME!X trigger the running of a new game (typically from title page)
LOADGAME!X trigger the loading of a saved game
SAVEGAME!X trigger the saving of a current game
CONTINUEGAME!X continue game action issued to move onto the next page
QUITGAME!X trigger the current game to quit back to the title page
PAUSEGAME!X trigger the game to pause, and typically enter the game menu
RESUMEGAME!X trigger the game to resume, after previously being paused
TIMERSTART reset the FPI script timer to zero, allowing timing to take place
FLOORLOGIC!X if X is one, entity never leaves its Y position
INCSTATE!X increments the state variable by X
RUNFORE makes the entity move forward at a run
ADVFRAME!X advances the animation by X percent
SHAPEDECAL!X changes the decal mode to X for the entity
TRIGGERFORCE!X applies a force to the entity by a magnitude of X
SOUNDSCALE!X changes the 3D sound scale by percentage X
HUDIMAGEFINE!X loads the image for the HUD using high quality
HUDFADEOUT causes the HUD item to fade from the screen
HOSTGAME triggers a multiplayer game to be HOSTED
JOINGAME triggers a multiplayer game to be JOINED
REPEATGAME triggers a multiplayer game to repeat play
NOGRAVITY Switches off gravity for physics entity
ACTIVEALLINZONE Activates everything within entity zone
SPAWNON Switches on entity´s ability to spawn
SPAWNOFF Switcjes off entities ability to spawn
VIDEO Plays an animation file full screen once
13.3 Making New Segments and Entities
Soon after we release version 1 of FPS Creator we will release tools for building
your own segments and entities via the product´s web site. So please visit
www.fpscreator.com for more information on making your own segments.
13.4 Making Your Own Weapons
You can create your own weapons and use them in FPS Creator providing you
have media in the X file format, the textures in the TGA file format and the
sounds in the PCM WAV file format ready prepared. You will need the following
resources:
1. Model of the gun to be displayed on the main game screen in FPS
perspective
2. Model of the gun for use as a pickup when the weapon is collected
3. Model of the gun for use when an enemy character is using the weapon
4. Textures for all of the above
5. Image for the weapon cross hair (if any)
6. Image for the HUD picture used in combination with displaying ammo
count
7. Sound effects for the weapons shooting, reload, dry fire and zoom (PCM
WAV)
89
ACTIVATEALLINZONE!X activate all the entities within the trigger zone with X
PLRADDHEALTH!X adds X points to the players health
SETTARGET sets the internal target for the entity, follows `target´ conditions
ROTATETOTARGET rotate the entity to face the target
LOOKATTARGET rotate the head of the entity to face the target
MOVETOTARGET moves to the target
COLLECTTARGET if the target is a collectable, collect the target if close
CHOOSESTRAFE randomly selects a strafe direction (ie left/right/forward)
STRAFE perform the previously chosen strafe to avoid player shots
PIVOTRANDOM!X randomly pivots around to face another direction by X degrees
LOOKATPLR!X look directly at the player even if the player cannot be seen
SOUND!X plays a sound specified by the X filename. Use 0 to specify
soundest
3DSOUND!X plays a 3D sound specified by the X filename. Use 0 for
soundest
LOOPSOUND!X loops a 3D sound specified by the X filename.
ALTTEXTURE!X set the texture used based on X being either zero or one
SETALPHAFADE!X set the alpha value to X which causes entity transparency
INCALPHAFADE!X increment the alpha fade, X being the destination
DECALPHAFADE!X decrement the alpha fade, X being the destination
RUNDECAL!X create a decal from the entity, X being a specific mode 1-6
WAYPOINTSTART instructs the entity to find the closest waypoint
WAYPOINTSTOP stops the entity following waypoints
WAYPOINTREVERSE makes the entity reverse course and go the other way
WAYPOINTNEXT instructs the entity to find the next waypoint
WAYPOINTPREV instructs the entity to find the previous waypoint
WAYPOINTRANDOM instructs the entity choose a random waypoint direction
DROPMARKER drops a marker the entity can later return to
NEXTMARKER instructs the entity to go to the last dropped marker
RESETMARKERS resets all markers dropped by this entity
FOLLOWPLR follows the players trail if one exists
PLRTAKE used to add an entity to the players inventory and acquire its
assets
PLRDROP used to drop an item from the players inventory
SHOOTPLR runs the internal FPI script SHOOT specified in character
properties
USEWEAPON fires any weapon half by an entity in the direction of the target
RELOADWEAPON reloads the weapon from the entities stock of infinite ammo
COLOFF deactivate all player collision with this entity
COLON activate all player collision with this entity
ACTIVATE!X sets the activation value of the entity to X
AMBIENCE!X sets the overall ambient light level within the scene to X
AMBIENCERED!X sets the red component of the ambient light to X
AMBIENCEGREEN!X sets the green component of the ambient light to X
AMBIENCEBLUE!X sets the blue component of the ambient light to X
FOG!X sets the fog mode within the scene when X is one
FOGRED!X sets the red component of the fog to X
FOGGREEN!X sets the green component of the fog to X
FOGBLUE!X sets the blue component of the fog to X
SKY!X sets the skybox to the sky model specified by X filename
SKYSCROLL!X sets the sky scroll texture to the file specified by X filename
BACKDROP!X loads and pastes the screen backdrop using X filename
MUSIC!X loads and plays the WAV using X filename
MUSICVOLUME!X sets the music volume in the range of 0-100
LIGHTON!X lighton
LIGHTOFF!X lightoff
LIGHTRED!X lightred
LIGHTGREEN!X lightgreen
LIGHTBLUE!X lightblue
LIGHTRANGE!X lightrange
HUDRESET!X call this to reset the HUD creation system
HUDX!X sets the X position percentage of where you want your HUD
item to be
HUDY!X sets the Y position percentage of where you want your HUD
item to be
HUDZ!X sets the Z position percentage of where you want your HUD
item to be
HUDSIZEX!X sets the X size of your HUD item
90
HUDSIZEY!X sets the Y size of your HUD item
HUDSIZEZ!X sets the X size of your HUD item
HUDRED!X sets the red component of your HUD item
HUDGREEN!X sets the green component of your HUD item
HUDBLUE!X sets the blue component of your HUD item
HUDIMAGE!X sets the image filename of your HUD item
HUDFONT!X sets the font name of your HUD item
HUDSIZE!X sets the font size of your HUD item
HUDTEXT!X sets the text that will be used in place of no image of the HUD
item
HUDTYPE!X set the HUD type (1-lives,2-health,3-weapon)
HUDHIDE!X set X to the name of the HUD item to hide it
HUDSHOW!X set X to the name of the HUD item to reveal it
HUDUNSHOW!X set X to the name of the HUD item to un-hide it
HUDNAME!X set the name of the HUD item you are creating
HUDANIM!X set the filename X of the animation sequence (exclude #.TGA)
HUDMAKE!X when all HUD items set, use this action to finally create the HUD
NEWGAME!X trigger the running of a new game (typically from title page)
LOADGAME!X trigger the loading of a saved game
SAVEGAME!X trigger the saving of a current game
CONTINUEGAME!X continue game action issued to move onto the next page
QUITGAME!X trigger the current game to quit back to the title page
PAUSEGAME!X trigger the game to pause, and typically enter the game menu
RESUMEGAME!X trigger the game to resume, after previously being paused
TIMERSTART reset the FPI script timer to zero, allowing timing to take place
FLOORLOGIC!X if X is one, entity never leaves its Y position
INCSTATE!X increments the state variable by X
RUNFORE makes the entity move forward at a run
ADVFRAME!X advances the animation by X percent
SHAPEDECAL!X changes the decal mode to X for the entity
TRIGGERFORCE!X applies a force to the entity by a magnitude of X
SOUNDSCALE!X changes the 3D sound scale by percentage X
HUDIMAGEFINE!X loads the image for the HUD using high quality
HUDFADEOUT causes the HUD item to fade from the screen
HOSTGAME triggers a multiplayer game to be HOSTED
JOINGAME triggers a multiplayer game to be JOINED
REPEATGAME triggers a multiplayer game to repeat play
NOGRAVITY Switches off gravity for physics entity
ACTIVEALLINZONE Activates everything within entity zone
SPAWNON Switches on entity´s ability to spawn
SPAWNOFF Switcjes off entities ability to spawn
VIDEO Plays an animation file full screen once
13.3 Making New Segments and Entities
Soon after we release version 1 of FPS Creator we will release tools for building
your own segments and entities via the product´s web site. So please visit
www.fpscreator.com for more information on making your own segments.
13.4 Making Your Own Weapons
You can create your own weapons and use them in FPS Creator providing you
have media in the X file format, the textures in the TGA file format and the
sounds in the PCM WAV file format ready prepared. You will need the following
resources:
1. Model of the gun to be displayed on the main game screen in FPS
perspective
2. Model of the gun for use as a pickup when the weapon is collected
3. Model of the gun for use when an enemy character is using the weapon
4. Textures for all of the above
5. Image for the weapon cross hair (if any)
6. Image for the HUD picture used in combination with displaying ammo
count
7. Sound effects for the weapons shooting, reload, dry fire and zoom (PCM
WAV)
91
8. Scope Image if the gun has a scope mode for zooming into your target
Here are the steps to adding your own weapon.
1. It is far simpler to copy an existing weapon, rename and modify than
create one from scratch.
2. Navigate to the FPS Creator\Files\gamecore\guns\modernday\commando
3. Copy the entire folder and contents to a new folder, perhaps called FPS
Creator\Files\gamecore\guns\MyNewGuns\
4. Make sure your new folder is located inside the gamecore\guns folder
5. Rename your new folder to gamecore\guns\MyNewGuns\BigGun\
6. Copy all your models, textures, sounds and images to this folder using the
same names as the existing files. The filenames are self-explanatory
7. The HUD.X is the model you will see onscreen. VWEAP.X is the model you
will see when the enemy character is holding the gun.
8. GUNSPEC.TXT allows you to configure the weapon to your liking, and
controls everything from its range and accuracy, to the animation frames
used by the HUD weapon model. Again the fields are self-explanatory
though you will not need to change many of the filenames if you have
imply overwritten to the same file names.
9. Muzzleflash, Brass and Smoke refer to which type they should use. These
index values refer to models stored in the respective folders in gamecore\
10. Fireloop is used for machine gun style weapons where the fire WAV sound
needs to be looped to give the correct audio feedback. The value refers to
the position in the sound sequence for the loop-back.
11. HORIZ,VERT and FORWARD control the muzzle flash position
12. ALIGN values control the position of the gun in relation to the camera
13. The KEYFRAMES indicate where each of the weapon animations are within
the model animation data
14. The SFRAME values indicate when to trigger the sounds, the first of the
parameters indicate the keyframe number to trigger the sound and the
second parameter is the sound index you wish to play.
92
13.5 Customising the In-Game Screens
You can create your own title page, game screens and status layouts to some
extent from within FPS Creator by using the FPI Wizards in the editor. However
you can go further and completely customise all aspects of each page using direct
FPI editing. Just as the entity properties accept any FPI file located in the
scriptbank\, the level settings tab found in the BUILD GAME dialog allows you to
specify FPI files located in the gamebank\ folder. Follow the steps below to
create your own customised FPI screen.
1. Navigate to this folder:
FPS Creator\Files\languagebank\english\gamebank\templateoriginal\
2. Copy the titlepage.fpi file to a new folder called: gamebank\MyScreens\
3. Rename the FPI file to custompage.fpi
4. Double click this FPI file, and select NOTEPAD as the tool to edit it
5. Read the earlier section on FPI scripts, you will notice the language is
identical and you can see how the title page is loaded and constructed
6. Modify the FPI file by adding the line:
:STATE=2,RANDOM=10:SOUND=audiobank\misc\ping.wav
7. Save this change to the custompage.fpi file and leave NOTEPAD
8. Run FPSCreator.exe and select BUILD GAME from the FILE menu
9. Click the Level Settings tab, and instead of clicking the EDIT button which
is what you would normally do to use the FPI Wizard, click the filename
itself which will allow you to select your own FPI file. In this case,
navigate to MyScreens\ and select custompage.fpi
10. Now go to the last tab in this dialog, and click BUILD EXECUTABLE
11. Locate the executable in the MyGames folder and run it to see the newly
customised title screen of your game
91
8. Scope Image if the gun has a scope mode for zooming into your target
Here are the steps to adding your own weapon.
1. It is far simpler to copy an existing weapon, rename and modify than
create one from scratch.
2. Navigate to the FPS Creator\Files\gamecore\guns\modernday\commando
3. Copy the entire folder and contents to a new folder, perhaps called FPS
Creator\Files\gamecore\guns\MyNewGuns\
4. Make sure your new folder is located inside the gamecore\guns folder
5. Rename your new folder to gamecore\guns\MyNewGuns\BigGun\
6. Copy all your models, textures, sounds and images to this folder using the
same names as the existing files. The filenames are self-explanatory
7. The HUD.X is the model you will see onscreen. VWEAP.X is the model you
will see when the enemy character is holding the gun.
8. GUNSPEC.TXT allows you to configure the weapon to your liking, and
controls everything from its range and accuracy, to the animation frames
used by the HUD weapon model. Again the fields are self-explanatory
though you will not need to change many of the filenames if you have
imply overwritten to the same file names.
9. Muzzleflash, Brass and Smoke refer to which type they should use. These
index values refer to models stored in the respective folders in gamecore\
10. Fireloop is used for machine gun style weapons where the fire WAV sound
needs to be looped to give the correct audio feedback. The value refers to
the position in the sound sequence for the loop-back.
11. HORIZ,VERT and FORWARD control the muzzle flash position
12. ALIGN values control the position of the gun in relation to the camera
13. The KEYFRAMES indicate where each of the weapon animations are within
the model animation data
14. The SFRAME values indicate when to trigger the sounds, the first of the
parameters indicate the keyframe number to trigger the sound and the
second parameter is the sound index you wish to play.
92
13.5 Customising the In-Game Screens
You can create your own title page, game screens and status layouts to some
extent from within FPS Creator by using the FPI Wizards in the editor. However
you can go further and completely customise all aspects of each page using direct
FPI editing. Just as the entity properties accept any FPI file located in the
scriptbank\, the level settings tab found in the BUILD GAME dialog allows you to
specify FPI files located in the gamebank\ folder. Follow the steps below to
create your own customised FPI screen.
1. Navigate to this folder:
FPS Creator\Files\languagebank\english\gamebank\templateoriginal\
2. Copy the titlepage.fpi file to a new folder called: gamebank\MyScreens\
3. Rename the FPI file to custompage.fpi
4. Double click this FPI file, and select NOTEPAD as the tool to edit it
5. Read the earlier section on FPI scripts, you will notice the language is
identical and you can see how the title page is loaded and constructed
6. Modify the FPI file by adding the line:
:STATE=2,RANDOM=10:SOUND=audiobank\misc\ping.wav
7. Save this change to the custompage.fpi file and leave NOTEPAD
8. Run FPSCreator.exe and select BUILD GAME from the FILE menu
9. Click the Level Settings tab, and instead of clicking the EDIT button which
is what you would normally do to use the FPI Wizard, click the filename
itself which will allow you to select your own FPI file. In this case,
navigate to MyScreens\ and select custompage.fpi
10. Now go to the last tab in this dialog, and click BUILD EXECUTABLE
11. Locate the executable in the MyGames folder and run it to see the newly
customised title screen of your game
93
13.6 Description of the Files Folder
Audiobank Stores all the PCM WAV files used within the game excluding those sounds
used by the weapons. Use 8 bit PCM WAV format.
Editors Stores all files used to provide the main Level Editor with the media and
resources it needs to display the user interface.
Effectbank Stores all the FX files used to describe the shaders the game may need, which
can range from shaders requiring no special hardware through to requiring
advanced hardware supporting Pixel and Vertex Shader 2.0 and above.
Entitybank Stores all the FPE files used to describe an entity. The files are regular text
files allowing easy modification. BIN files are generated from FPE files as a
binary version of the entity data, which must be deleted if the FPE is changed.
This folder also contains any support media the entity needs.
Languagebank\engli
sh\Gamebank
Stores all the FPG files which describe the game projects created, and also the
layouts of the various screens created by the FPI Screen Wizards from the
Level Settings tab of the BUILD GAME dialog.
Gamecore Stores all the files that are part of the core engine allowing the levels to look
and feel like a finished game. Everything from weapons, HUD images, decals,
flak, visual effects, screen images and backdrops are all here.
Levelbank Stores all the data used by the final executables to load the levels much more
quickly than via the FPM files (Level Map Files). This folder holds the
temporary files that will ultimately be added to the executable of the final
game.
Mapbank Stores all FPM files which are the Level Map Files used to describe the layout of
a single level. It also contains a temporary folder for the work in progress
level that was last edited by the editor.
Meshbank Stores all the X files used to describe the 3D geometry of everything from
entities to static segment objects. Not all 3D geometry can be found here,
such as weapons and some entity objects which are stored locally.
Prefabs Stores all the FPP files which describe a prefab arrangement of segments, and
can be thought of as a simplified form of level map format.
Scriptbank Stores all the FPI files, which describe the Artificial Intelligence all the entities
use during the game.
Segments Stores all the FPS files, used to describe the segments used in the level editing
part of the interface. Like entities, BIN files can also be found here which are
the binary form of the FPS files.
Skybank Stores all skyboxes the user can select and apply to their games. The
skyboxes are described with a combination of six textures and a box mesh.
Texturebank Stores all the TGA/DDS textures the game requires to paint colour and detail
into the entities and segments of the level.
94
13.7 Overview of Files and Formats
Below is a list of all the file format types and their meaning that you may
encounter when using FPS Creator.
X Microsoft Model Format
TGA Targa Image Texture File
DDS DirectDraw Surface Image texture File
DBO DarkBasic Object Model File
DBU DarkBasic Universe File
WAV PCM WAVE Sound File
BMP Bitmap Image File
JPG Bitmap Image File (compressed)
TXT Text File
BIN Binary File (compressed data)
DAT Binary File (compressed data)
FX FX Effect File (shaders)
ZIP Zip Compressed File
EXE Standalone Executable File
FPG FPSC Game Project File
FPM FPSC Map File
FPMB FPSC Map Buffer File
FPMO FPSC Map Overlay File
FPOL FPSC Overlay List File
FPI FPSC AI Script
FPID FPSC AI Wizard Data File
FPP FPSC Prefab File
FPS FPSC Segment File
FPE FPSC Entity File
ENT FPSC Packed Entity Data File
ELE FPSC Packed Element Data File
EFF FPSC Packed Effects Data File
LGT FPSC Packed Lighting Data File
WAY FPSC Packed Waypoint Data File
93
13.6 Description of the Files Folder
Audiobank Stores all the PCM WAV files used within the game excluding those sounds
used by the weapons. Use 8 bit PCM WAV format.
Editors Stores all files used to provide the main Level Editor with the media and
resources it needs to display the user interface.
Effectbank Stores all the FX files used to describe the shaders the game may need, which
can range from shaders requiring no special hardware through to requiring
advanced hardware supporting Pixel and Vertex Shader 2.0 and above.
Entitybank Stores all the FPE files used to describe an entity. The files are regular text
files allowing easy modification. BIN files are generated from FPE files as a
binary version of the entity data, which must be deleted if the FPE is changed.
This folder also contains any support media the entity needs.
Languagebank\engli
sh\Gamebank
Stores all the FPG files which describe the game projects created, and also the
layouts of the various screens created by the FPI Screen Wizards from the
Level Settings tab of the BUILD GAME dialog.
Gamecore Stores all the files that are part of the core engine allowing the levels to look
and feel like a finished game. Everything from weapons, HUD images, decals,
flak, visual effects, screen images and backdrops are all here.
Levelbank Stores all the data used by the final executables to load the levels much more
quickly than via the FPM files (Level Map Files). This folder holds the
temporary files that will ultimately be added to the executable of the final
game.
Mapbank Stores all FPM files which are the Level Map Files used to describe the layout of
a single level. It also contains a temporary folder for the work in progress
level that was last edited by the editor.
Meshbank Stores all the X files used to describe the 3D geometry of everything from
entities to static segment objects. Not all 3D geometry can be found here,
such as weapons and some entity objects which are stored locally.
Prefabs Stores all the FPP files which describe a prefab arrangement of segments, and
can be thought of as a simplified form of level map format.
Scriptbank Stores all the FPI files, which describe the Artificial Intelligence all the entities
use during the game.
Segments Stores all the FPS files, used to describe the segments used in the level editing
part of the interface. Like entities, BIN files can also be found here which are
the binary form of the FPS files.
Skybank Stores all skyboxes the user can select and apply to their games. The
skyboxes are described with a combination of six textures and a box mesh.
Texturebank Stores all the TGA/DDS textures the game requires to paint colour and detail
into the entities and segments of the level.
94
13.7 Overview of Files and Formats
Below is a list of all the file format types and their meaning that you may
encounter when using FPS Creator.
X Microsoft Model Format
TGA Targa Image Texture File
DDS DirectDraw Surface Image texture File
DBO DarkBasic Object Model File
DBU DarkBasic Universe File
WAV PCM WAVE Sound File
BMP Bitmap Image File
JPG Bitmap Image File (compressed)
TXT Text File
BIN Binary File (compressed data)
DAT Binary File (compressed data)
FX FX Effect File (shaders)
ZIP Zip Compressed File
EXE Standalone Executable File
FPG FPSC Game Project File
FPM FPSC Map File
FPMB FPSC Map Buffer File
FPMO FPSC Map Overlay File
FPOL FPSC Overlay List File
FPI FPSC AI Script
FPID FPSC AI Wizard Data File
FPP FPSC Prefab File
FPS FPSC Segment File
FPE FPSC Entity File
ENT FPSC Packed Entity Data File
ELE FPSC Packed Element Data File
EFF FPSC Packed Effects Data File
LGT FPSC Packed Lighting Data File
WAY FPSC Packed Waypoint Data File
95
14 Selling Your Games Made in FPS Creator
Under the terms of the End User License Agreement (EULA), you can sell any
games you make with FPS Creator V1.0.
You must ensure that the ODE Physics Licence is abided to. This licence can be
found in the folder Files\Licence\License-bsd.txt
You must also ensure that the copyright of FPS Creator is clearly listed in your
documentation as follows:
This game was created using FPS Creator. Copyright 2005 The Game Creators
Ltd. All Rights Reserved. www.fpscreator.com
96
15 Other Game Making Tools
The team at the Game Creators are working to bring affordable game making
tools to the amateur and professional game making communities. If you liked FPS
Creator then you may like many of the following popular products that we sell.
15.1 Game Development
15.1.1 The 3D Gamemaker
Aimed at the kids market, with just one click of a
mouse, you can create a uniquely playable game
without needing any programming knowledge or
artistic skills at all. Offering over 12 billion gaming
options. The 3D Gamemaker opens up a whole new
concept in gaming, providing fun for all the family. It´s a great product for young
PC users who want to take their first steps into the game making world.
www.the3dgamemaker.com
15.1.2 Dark Basic Classic
DarkBASIC allows you to create your own games, demos, slideshows, even
business applications using the easy to understand
BASIC programming language. Even if youve never
coded before, just follow the in-depth tutorials and
youll be generating results in minutes! Harness the
power of Direct X and make 3D objects come to life in
just a few simple commands.
DarkBASIC is a great first step into the world of
computer programming. It´s easy to learn and creates
impressive results. Used by thousands of users worldwide and taught in many
schools and universities.
www.darkbasic.com
95
14 Selling Your Games Made in FPS Creator
Under the terms of the End User License Agreement (EULA), you can sell any
games you make with FPS Creator V1.0.
You must ensure that the ODE Physics Licence is abided to. This licence can be
found in the folder Files\Licence\License-bsd.txt
You must also ensure that the copyright of FPS Creator is clearly listed in your
documentation as follows:
This game was created using FPS Creator. Copyright 2005 The Game Creators
Ltd. All Rights Reserved. www.fpscreator.com
96
15 Other Game Making Tools
The team at the Game Creators are working to bring affordable game making
tools to the amateur and professional game making communities. If you liked FPS
Creator then you may like many of the following popular products that we sell.
15.1 Game Development
15.1.1 The 3D Gamemaker
Aimed at the kids market, with just one click of a
mouse, you can create a uniquely playable game
without needing any programming knowledge or
artistic skills at all. Offering over 12 billion gaming
options. The 3D Gamemaker opens up a whole new
concept in gaming, providing fun for all the family. It´s a great product for young
PC users who want to take their first steps into the game making world.
www.the3dgamemaker.com
15.1.2 Dark Basic Classic
DarkBASIC allows you to create your own games, demos, slideshows, even
business applications using the easy to understand
BASIC programming language. Even if youve never
coded before, just follow the in-depth tutorials and
youll be generating results in minutes! Harness the
power of Direct X and make 3D objects come to life in
just a few simple commands.
DarkBASIC is a great first step into the world of
computer programming. It´s easy to learn and creates
impressive results. Used by thousands of users worldwide and taught in many
schools and universities.
www.darkbasic.com
97
15.1.3 Dark Basic Professional
DarkBASIC Professional is the most advanced games development package built
on the BASIC language currently available. No other package out there makes it
as easy to incorporate all of the special features and effects you see in today´s
games and no other package natively offers the benefits of Microsoft´s DirectX 9
technology.
DarkBASIC Professional was used to create FPS Creator - a great example of
what can be achieved with it. There are also many add-on extensions that make
this programming tool even more flexible and powerful.
www.darkbasicpro.com
15.1.4 Dark Game SDK
Now you can take full advantage of the game engine
that powers DarkBASIC Professional within a C++
environment with the Dark Game SDK.
A whole new world of possibilities can be opened up by
combining the features that C++ offers and the power
of the Dark Game SDK. The SDK brings the flexibility of
the DarkBASIC Professional engine to the world of C++
development while still retaining the ease of use that
DarkBASIC Professional offers.
The Dark Game SDK provides all of the command sets found within DarkBASIC
Professional into an easy to use library format that is compatible with Microsoft
Visual Studio 6 and Microsoft Visual Studio .NET 2003.
http://darkgamesdk.thegamecreators.com/
98
15.2 3D Modelling
15.2.1 3D Canvas Pro
3D Canvas is a real-time 3D modeling and animation
tool that incorporates an intuitive drag-and-drop
approach to 3D modeling.
Complex models can be constructed from simple 3D primitives, or created using
3D Canvas Object Building Tools. Modeling tools are provided to deform, sculpt,
and paint 3D objects.
It´s ideal for making game media which can then be imported into your games.
http://3dcanvas.thegamecreators.com/
15.2.2 gameSpace
gameSpace is the only high-end 3D game graphics authoring environment
designed specifically for game developers. It includes absolutely everything you
need to create characters, objects, worlds, weapons and more! This all-in-one
package contains advanced modelling, texturing, rendering, animation, bone, skin
and inverse kinematics capabilities. Along with the power to import and export to
virtually all popular game formats.
http://gamespace.thegamecreators.com/
97
15.1.3 Dark Basic Professional
DarkBASIC Professional is the most advanced games development package built
on the BASIC language currently available. No other package out there makes it
as easy to incorporate all of the special features and effects you see in today´s
games and no other package natively offers the benefits of Microsoft´s DirectX 9
technology.
DarkBASIC Professional was used to create FPS Creator - a great example of
what can be achieved with it. There are also many add-on extensions that make
this programming tool even more flexible and powerful.
www.darkbasicpro.com
15.1.4 Dark Game SDK
Now you can take full advantage of the game engine
that powers DarkBASIC Professional within a C++
environment with the Dark Game SDK.
A whole new world of possibilities can be opened up by
combining the features that C++ offers and the power
of the Dark Game SDK. The SDK brings the flexibility of
the DarkBASIC Professional engine to the world of C++
development while still retaining the ease of use that
DarkBASIC Professional offers.
The Dark Game SDK provides all of the command sets found within DarkBASIC
Professional into an easy to use library format that is compatible with Microsoft
Visual Studio 6 and Microsoft Visual Studio .NET 2003.
http://darkgamesdk.thegamecreators.com/
98
15.2 3D Modelling
15.2.1 3D Canvas Pro
3D Canvas is a real-time 3D modeling and animation
tool that incorporates an intuitive drag-and-drop
approach to 3D modeling.
Complex models can be constructed from simple 3D primitives, or created using
3D Canvas Object Building Tools. Modeling tools are provided to deform, sculpt,
and paint 3D objects.
It´s ideal for making game media which can then be imported into your games.
http://3dcanvas.thegamecreators.com/
15.2.2 gameSpace
gameSpace is the only high-end 3D game graphics authoring environment
designed specifically for game developers. It includes absolutely everything you
need to create characters, objects, worlds, weapons and more! This all-in-one
package contains advanced modelling, texturing, rendering, animation, bone, skin
and inverse kinematics capabilities. Along with the power to import and export to
virtually all popular game formats.
http://gamespace.thegamecreators.com/
99
15.2.3 Character Shop
Character animation is arguably the hardest step in development for
most games. Its very common to see demos with beautiful but
strangely unpopulated environments, or with only a few stiff
animations. How can indy developers be expected to create these?
Animation tools are expensive, hard to use, and take many hours to
get quality results. That was until Character Shop.
Character Shop is the solution to this long-standing difficulty. The
program contains 80+ professionally produced animations that can
be applied to any humanoid mesh scaled to fit the skeleton. This
means you dont have to do any of the animation work yourself - it has already
been done for you by professionals. You simply rig the skeleton to your models
and save the end results. The vertex weighing process is straightforward, with
powerful selection tools to reach every nook and crevice. Use the auto-
attachment feature, then view the mesh deformation in real time and make final
adjustments to the vertices.
http://charactershop.thegamecreators.com/
15.2.4 Action 3D
When it comes to game development speed is
everything. One of the best ways to increase the
speed of your games is to cut down on the number of
polygons you are using in your 3D models. However
most forms of polygon reduction either destroy the
original model beyond recognition or require software
packages costing hundreds.
Action3D Reducer is a great polygon reduction tool that changes the level of
detail in real-time, both importing and exporting .3DS and .X object files.
http://www.thegamecreators.com/?f!action3d
100
15.3 Graphics
15.3.1 Texture Maker
Texture Maker is a seamless texture generator and designer.
The application contains everything needed to create seamless
textures for use in 3D rendering packages and game
development. It can create procedural and hand painted
textures from scratch, remove visible seams from existing images, crop textures
from photos by applying a perspective correction, render seamless tiles from
structure sample patches and combine existing textures and height maps with
realistic illumination.
http://texturemaker.thegamecreators.com/
15.3.2 Ex Gen
Explosions and Special Effects. They look good but making animated effects for
games isnt as easy as it could be. ExGen is designed to fulfill all the special
effects art requirements for your video games.
Wrapped in an intuitive interface, the powerful ExGen system allows you to create
a wide variety of effects which can then be exported as image/s or an AVI
animation file for instant use in your games. Texture objects with an explosion
animation, or rising smoke, pulsating lights, lazer beams or anything else you can
create.
http://exgen.thegamecreators.com/
15.3.3 ProMotion
Pro Motion is a pixel painting art package that takes all of
the key features that made Deluxe Paint (on the Amiga) so
powerful, and then wrapped them up in an easy to use,
light-weight, Windows interface. It is ideal for artists
working on small displays such as Mobile Phone games,
PDAs, handheld devices (Gameboy Advance) or Macromedia
Flash, or anywhere where pixel perfect painting tools and
precision is required. Besides the dozens of tools and functions there is even
support for tile based graphics and tile palette management for Gameboy Color
and Gameboy Advance graphics.
http://www.thegamecreators.com/?f!promotion
99
15.2.3 Character Shop
Character animation is arguably the hardest step in development for
most games. Its very common to see demos with beautiful but
strangely unpopulated environments, or with only a few stiff
animations. How can indy developers be expected to create these?
Animation tools are expensive, hard to use, and take many hours to
get quality results. That was until Character Shop.
Character Shop is the solution to this long-standing difficulty. The
program contains 80+ professionally produced animations that can
be applied to any humanoid mesh scaled to fit the skeleton. This
means you dont have to do any of the animation work yourself - it has already
been done for you by professionals. You simply rig the skeleton to your models
and save the end results. The vertex weighing process is straightforward, with
powerful selection tools to reach every nook and crevice. Use the auto-
attachment feature, then view the mesh deformation in real time and make final
adjustments to the vertices.
http://charactershop.thegamecreators.com/
15.2.4 Action 3D
When it comes to game development speed is
everything. One of the best ways to increase the
speed of your games is to cut down on the number of
polygons you are using in your 3D models. However
most forms of polygon reduction either destroy the
original model beyond recognition or require software
packages costing hundreds.
Action3D Reducer is a great polygon reduction tool that changes the level of
detail in real-time, both importing and exporting .3DS and .X object files.
http://www.thegamecreators.com/?f!action3d
100
15.3 Graphics
15.3.1 Texture Maker
Texture Maker is a seamless texture generator and designer.
The application contains everything needed to create seamless
textures for use in 3D rendering packages and game
development. It can create procedural and hand painted
textures from scratch, remove visible seams from existing images, crop textures
from photos by applying a perspective correction, render seamless tiles from
structure sample patches and combine existing textures and height maps with
realistic illumination.
http://texturemaker.thegamecreators.com/
15.3.2 Ex Gen
Explosions and Special Effects. They look good but making animated effects for
games isnt as easy as it could be. ExGen is designed to fulfill all the special
effects art requirements for your video games.
Wrapped in an intuitive interface, the powerful ExGen system allows you to create
a wide variety of effects which can then be exported as image/s or an AVI
animation file for instant use in your games. Texture objects with an explosion
animation, or rising smoke, pulsating lights, lazer beams or anything else you can
create.
http://exgen.thegamecreators.com/
15.3.3 ProMotion
Pro Motion is a pixel painting art package that takes all of
the key features that made Deluxe Paint (on the Amiga) so
powerful, and then wrapped them up in an easy to use,
light-weight, Windows interface. It is ideal for artists
working on small displays such as Mobile Phone games,
PDAs, handheld devices (Gameboy Advance) or Macromedia
Flash, or anywhere where pixel perfect painting tools and
precision is required. Besides the dozens of tools and functions there is even
support for tile based graphics and tile palette management for Gameboy Color
and Gameboy Advance graphics.
http://www.thegamecreators.com/?f!promotion
101
15.4 World Building
15.4.1 Cartography Shop 4
Cartography Shop is a modeling program for creating
architecture and calculating lighting. The program is ideal for
game environments, 3D presentations and other commercial
applications.
Cartography Shop was designed with the philosophy that ease-of-use and power
are not antagonistic. No other modeler automates processes like UV mapping and
light calculation, yet still allows low-level access to all elements of a scene. This is
a tool designed for the mass production of media, using the fewest number of
mouseclicks possible to generate the high-quality results you need.
http://cartographyshop.thegamecreators.com/
15.4.2 Geoscape 3D
An essential aid to anyone who needs to build an outdoor
landscape environment for their games. Geoscape3D
combines the power of generating a virtual landscape in
real-time, with smoothly blended textures to bring your
scene to life.
Geoscape3D removes the complexity from producing beautiful landscapes. With a
complete set of tools to raise and lower terrain, it becomes as simple as using a
conventional paint package to produce valleys, rivers, mountain ranges and other
geographic features.
Once the terrain is completed, Geoscape3D can quickly produce a realistic texture
accurately mapped on the terrain. This texture can be updated as the terrain is
modified.
Tasks that could take many hours can now be quickly completed in minutes.
http://geoscape.thegamecreators.com/
102
15.4.3 Sky Matter
Youve set the scene, all of your objects are in place, your 3D
game world moves around smoothly, but somehow the sky just
looks too... plain. Enter SkyMATTER, a collection of professionally
produced high-resolution textures designed specifically for
mapping onto a skybox, bringing your games alive in the
process.
Each skybox face texture is 512 x 512 pixels in size and supplied
in 24-bit BMP format. Ideal for use in virtually all game engines.
You are not limited to skyboxes, the textures provided can also be applied to
cube and spherical mapping.
http://skymatter.thegamecreators.com/
15.4.4 gile[s]
gile[s] is a global illumination / radiosity lightmapper,
capable of rendering high resolution lightmaps fast and
efficiently.
gile[s] features an easy to use editor that allows you to
place models and lights without fuss.
Unlike most lightmappers gile[s] handles models of arbitrary complexity keeping
smoothing groups intact. With gile[s] you can even paint directly to the lightmap,
and mix and match vertex lighting and lightmaps as you please. gile[s] lights up
your worlds.
http://giles.thegamecreators.com/
15.5 Graphic and Sound Media
15.5.1 Dark Matter 1,2 and 3
DarkMATTER 1, 2 and 3 are extensive collections of fully animated,
professionally produced 3D objects to add that expert graphical touch to
your projects and games. Novice and Advanced users alike will find the
DarkMATTER range an incredible resource saving both time and effort.
http://darkmatter.thegamecreators.com/
101
15.4 World Building
15.4.1 Cartography Shop 4
Cartography Shop is a modeling program for creating
architecture and calculating lighting. The program is ideal for
game environments, 3D presentations and other commercial
applications.
Cartography Shop was designed with the philosophy that ease-of-use and power
are not antagonistic. No other modeler automates processes like UV mapping and
light calculation, yet still allows low-level access to all elements of a scene. This is
a tool designed for the mass production of media, using the fewest number of
mouseclicks possible to generate the high-quality results you need.
http://cartographyshop.thegamecreators.com/
15.4.2 Geoscape 3D
An essential aid to anyone who needs to build an outdoor
landscape environment for their games. Geoscape3D
combines the power of generating a virtual landscape in
real-time, with smoothly blended textures to bring your
scene to life.
Geoscape3D removes the complexity from producing beautiful landscapes. With a
complete set of tools to raise and lower terrain, it becomes as simple as using a
conventional paint package to produce valleys, rivers, mountain ranges and other
geographic features.
Once the terrain is completed, Geoscape3D can quickly produce a realistic texture
accurately mapped on the terrain. This texture can be updated as the terrain is
modified.
Tasks that could take many hours can now be quickly completed in minutes.
http://geoscape.thegamecreators.com/
102
15.4.3 Sky Matter
Youve set the scene, all of your objects are in place, your 3D
game world moves around smoothly, but somehow the sky just
looks too... plain. Enter SkyMATTER, a collection of professionally
produced high-resolution textures designed specifically for
mapping onto a skybox, bringing your games alive in the
process.
Each skybox face texture is 512 x 512 pixels in size and supplied
in 24-bit BMP format. Ideal for use in virtually all game engines.
You are not limited to skyboxes, the textures provided can also be applied to
cube and spherical mapping.
http://skymatter.thegamecreators.com/
15.4.4 gile[s]
gile[s] is a global illumination / radiosity lightmapper,
capable of rendering high resolution lightmaps fast and
efficiently.
gile[s] features an easy to use editor that allows you to
place models and lights without fuss.
Unlike most lightmappers gile[s] handles models of arbitrary complexity keeping
smoothing groups intact. With gile[s] you can even paint directly to the lightmap,
and mix and match vertex lighting and lightmaps as you please. gile[s] lights up
your worlds.
http://giles.thegamecreators.com/
15.5 Graphic and Sound Media
15.5.1 Dark Matter 1,2 and 3
DarkMATTER 1, 2 and 3 are extensive collections of fully animated,
professionally produced 3D objects to add that expert graphical touch to
your projects and games. Novice and Advanced users alike will find the
DarkMATTER range an incredible resource saving both time and effort.
http://darkmatter.thegamecreators.com/
103
15.5.2 Tree Magic G2
TreeMagik G2 is a complete studio package for
creating high-detail, low-poly mesh trees.
These trees are ideal for games developers,
landscape generators, or anyone needing lush,
vivid trees to fill up landscapes. The material is
highly optimized and allows for detailed
creations using minimal poly counts.
The editor has been specifically designed for ease of use, whether you take on a
complex tree creation or something simple, youll always be only a few clicks
away from completion.
TreeMagik G2 comes jammed-packed with original nature media, tree trunk bark,
tree limbs, tree leaf sections. Photo-realistic textures allow anyone to create a
gorgeous mesh trees in a matter of seconds.
Weve added so much media to this release you could easily build thousands of
unique tree creations! And with the added support of importing your own media,
the possibilities are truly unlimited.
http://treemagik.thegamecreators.com/
15.5.4 Plant Life
From the same team that bought you Treemagik
comes this great new package. Designed for low
polygon needs, Plant-Life delivers to game
designers a unique approach to creating photo-
realistic foliage media for use in their games.
Without sacrificing quality, Plant-Life creates vivid,
colorful and realistic foliage media at the lowest
poly-count possible.
The main goal was to build a tool that was easy-to-use whilst maintaining the
level of detail required to produce high quality, photo realistic 3D media. You can
now easily populate your game scenarios with unique and unlimited plant
designs.
http://plantlife.thegamecreators.com/
104
15.5.5 Sound MATTER
SoundMATTER is a collection of high-quality and royalty free
sound effects for use in your games. Everything from gun shots,
explosions and alien deaths to card shuffles, die rolling, swords
clashing, food munching and more!
SoundMATTER uses custom programmed audio software to create original sound
effects for games. All sounds are 100 original, sampled from the actual sound
source or synthesised from original samples or raw waveforms.
The end result is deep, vibrant sound effects created specificaly for gaming. There
are nine packs available with some great money saving offers on multiple
purchases.
Packs include: Arcade, Casino, FPS, Sword and Sorcery, Bleeps, Controls,
Footsteps, Rain - wind and fire, Sword and Sorcery II.
http://soundmatter.thegamecreators.com/
103
15.5.2 Tree Magic G2
TreeMagik G2 is a complete studio package for
creating high-detail, low-poly mesh trees.
These trees are ideal for games developers,
landscape generators, or anyone needing lush,
vivid trees to fill up landscapes. The material is
highly optimized and allows for detailed
creations using minimal poly counts.
The editor has been specifically designed for ease of use, whether you take on a
complex tree creation or something simple, youll always be only a few clicks
away from completion.
TreeMagik G2 comes jammed-packed with original nature media, tree trunk bark,
tree limbs, tree leaf sections. Photo-realistic textures allow anyone to create a
gorgeous mesh trees in a matter of seconds.
Weve added so much media to this release you could easily build thousands of
unique tree creations! And with the added support of importing your own media,
the possibilities are truly unlimited.
http://treemagik.thegamecreators.com/
15.5.4 Plant Life
From the same team that bought you Treemagik
comes this great new package. Designed for low
polygon needs, Plant-Life delivers to game
designers a unique approach to creating photo-
realistic foliage media for use in their games.
Without sacrificing quality, Plant-Life creates vivid,
colorful and realistic foliage media at the lowest
poly-count possible.
The main goal was to build a tool that was easy-to-use whilst maintaining the
level of detail required to produce high quality, photo realistic 3D media. You can
now easily populate your game scenarios with unique and unlimited plant
designs.
http://plantlife.thegamecreators.com/
104
15.5.5 Sound MATTER
SoundMATTER is a collection of high-quality and royalty free
sound effects for use in your games. Everything from gun shots,
explosions and alien deaths to card shuffles, die rolling, swords
clashing, food munching and more!
SoundMATTER uses custom programmed audio software to create original sound
effects for games. All sounds are 100 original, sampled from the actual sound
source or synthesised from original samples or raw waveforms.
The end result is deep, vibrant sound effects created specificaly for gaming. There
are nine packs available with some great money saving offers on multiple
purchases.
Packs include: Arcade, Casino, FPS, Sword and Sorcery, Bleeps, Controls,
Footsteps, Rain - wind and fire, Sword and Sorcery II.
http://soundmatter.thegamecreators.com/