Index
1. Programming Proverbs
- 2. ‘‘Think first,
Program later.’’
- Henry F. Ledgard,
‘‘Programming Proverbs: Principles of Good
Programming with Numerous Examples to Improve Programming
Style and Proficiency’’, (Hayden Computer
Programming Series), Hayden Book Company, 1st edition,
ISBN-13: 978-0810455221, December 1975.
2. CS3S665 Game engine design: Profecta scaenam
3. Doom3
- we will be using the dhewm3 fork of
the doom3 code with heavy modifications which include:
- gore, speed ups
- python bots!
- about 681075 total lines of code
- however this includes many tools and
libraries
- actual engine is closer to 137905 lines
of code
4. Game engines
- there are over 50 open source game
engines
- of differing size and quality
- require a balance between: complexity and
resource requirements
- resource requirements are not
always obvious
- for example the time to recompile
Panda3D was 50 minutes on a 4 GHz AMD black
- dhewm compiles in 3 minutes
- pge
compiles in 1 minute
5. Doom3 advantages
- code base is very clean implemented
in C++
- it does not use the STL
-
most libraries are implemented from scratch
- highly
portable codebase and fast
- Doom3 lineage is
strong!
- many eyeballs keep bugs
shallow
- Doom3 codebase can be extended and makes
an effective teaching tool
- all maps and models are
stored in text format! (Excluding images/sounds)
- uses
the MAP and BSP format which is the Rosetta stone to game
engine design
6. Morloc Tower
-
Morloc Tower
was a game written in 1980
- the tower had six stories
and consists of 30 rooms total
- the wizard Morloc was
the boss enemy which you had to defeat to complete the game
- the quicker you killed him the higher
your score
- it had adventure elements to the game
(pick up magic sword or hand grenade)
-
which would take time to find
- there were smaller
monsters to kill before you reached Morloc
- single player real-time adventure
game
7. Penguin tower
- Penguin tower is a multiplayer 2
dimensional game which was inspired by Morloc Tower
-
Penguin Tower is a very different game it does retain a
similar screen layout and many of the key commands are the
same
- the goal of the game is to stay alive as long as
possible and to inflict the most damage on other players
- genre is a graphical multiuser dungeon
with a limited graphical interface and limited number of
objects and weapons
- architecturally it consists
of three main components, a client, a server and a protocol
- the client is written in Python and it utilises the
pygame libraries
- the server is mostly written in
Modula-2 and a small amount of C
- the
protocol is entirely character and string based
-
the penguin tower server code was written during two Augusts
in 1985 and 1986 and originally ran on a 6 Mhz PC clone
connected by two Visual 200 terminals (making it a three
player game).
- the maps were drawn with simple ASCII
characters, and it was quite playable (for those days!)
-
the 6 Mhz PC ran the server code quite comfortably, it
occasionally slowed down, which perhaps added to its charm.
- normally when someone pulled the hand
grenade
8. Penguin tower demo
9. Doom3 mod
- how difficult would it be to produce
a Penguin Tower mod for Doom3?
- utilise
the monsters from Doom3
- generate very simple maps in
the style of (Morloc Tower and Penguin Tower)
-
very simple maps have the advantage of only having 90°
corners
- ideal teaching vehicle and
also it should be possible to generate maps quickly
10. Penguin tower maps
- there are a number of penguin tower
maps and a tool to randomly create large maps
- the
Penguin tower file format is simple and easily
extensible
11. Penguin tower map: star.pen
12. Chisel
-
Chisel
-
is a github project containing command line tools to create
doom3 maps
- the tools allow anyone with basic computer
skills to generate small doom3 maps
13. Map: one.txt
14. Map: two.txt
15. Compiling a map
16. Conclusion
Index
1. Programming Proverbs
2. CS3S665 Game engine design: Profecta scaenam
3. Doom3
4. Game engines
5. Doom3 advantages
6. Morloc Tower
7. Penguin tower
8. Penguin tower demo
9. Doom3 mod
10. Penguin tower maps
11. Penguin tower map: star.pen
12. Chisel
13. Map: one.txt
14. Map: two.txt
15. Compiling a map
16. Conclusion
Index
This document was produced using
groff-1.22.