Index
1. Programming Proverbs
- 6. ‘‘Use procedures
(methods or functions).’’
- 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. Overview of dhewm3 code
- lines of code for the id engines

- the 0 lines of code for the
doom3 is due because doom3 includes them in game
- dhewm3
is about 681075 total lines of code
-
however this includes many tools and libraries
-
actual engine is closer to 137905 lines of code
-
abstraction and polymorphic code employed
- all assets
are stored in human readable text form
-
this works well on our fast machines now, this design also
guides our python bot library
- templates are used
in low level utility classes (mainly idlib) but are never
seen in the upper levels
- well commented code base
3. Overview of dhewm3 and Python Bot code
4. Python Bot Overview
- note, the bot code is only partially
complete
- layered approach
- top layer,
botlib will ultimately be the
interface to user level bots (
python_doom_marine_1.py )
- will
contain both access to basic movement and access to
navigation mechanisms
- maintains the transform between
the doom3 map and penguin tower map
5. botaa
- contains area awareness code for the
python bot
- parses the equivalent pen map and creates
internal simple 2D map of the world in Python
-
implements Dijkstra’s algorithm for routing to pickups
and player/monsters
6. botcache
- provides the same interface as
- botbasic but
it caches all results
- which allows the higher layers (
botaa ) the ability to query the bot
without having to worry about the overhead of the remote
procedure call
- it also contains a method
- reset which
deletes the cache, forcing all future requests to be sent
over to the dhewm3 engine to retrieve up to date values
7. botbasic
- provides socket connection to the
dhewm3 engine
- it also implements the underlying remote
procedure call mechanism
- generally maps onto basic
commands
- such as: move, fire, reload,
turn, aim, etc
8. Homework: read how Remote procedure calls work
- you need to understand the concept
of remote procedure call argument marshalling
- make sure you have read
Tanenbaum’s description of how RPC’s operate
- and how marshalling is employed and why it is necessary
- Andrew Tanenbaum, Modern Operating Systems,
Prentice-Hall International
- sections
10.3, 10.3.1, 10.3.2
Index
1. Programming Proverbs
2. Overview of dhewm3 code
3. Overview of dhewm3 and Python Bot code
4. Python Bot Overview
5. botaa
6. botcache
7. botbasic
8. Homework: read how Remote procedure calls work
Index
This document was produced using
groff-1.22.