Programming and Development Book Reviews
Head First Javascript
Web Service Essentials
Teach Yourself XML in 21 days
Using UML
Game Programming All in One
Focus On 3D models
2D Artwork and 3D Modelling for Game Artists
Beginning PHP4 Programming
Professional PHP Programming
3D Lighting - History, Concepts & Techniques
3D Math Primer for Graphics and Game Development
Tricks of the Windows Game Programming Gurus (2nd Edition)
Tricks of the 3D Game Programming Gurus - Advanced Graphics and
Rasterization
3D Games - Realtime Rendering and Software Technology Volume 1
Game Architecture and Design
Data Structures For Game Programmers
Physics For Game Developers
Art of Assembly Language Programming
3ds max bible
Modeling a Character in 3DS Max
General
Head First Javascript (first edition December 2007)
Author: Michael Morrison
Head First books are a different way of learning - it is full of pictures, diagrams, bad jokes, page benders, crosswords and general nonsense. However there is still room for quite a bit of javascript in these 600 pages. It is suitable for beginner programmers as long as you already know HTML & CSS. Chapter code is available on headfirstlabs.com and covers an interactive virtual pet rock, a movie seat booking program, and a blog site. The style of the book is to explain how to get the absolute basics functioning and then introduce some human character who has noticed a problem or one or two ways of enhancing what is there. The book finishes with an introduction to AJAX. Some easy concepts (such as the difference between a constant and a variable) are overexplained, but overall quite a good, easy to read book for beginner to intermediate level. I managed to read through this in a couple of days. Including suitable time to play around with the code, you can easily get through this book in a week.
1. The Interective Web: Reacting to the Virtual World
2. Storing data: Everything Has Its Place
3. Exploring the client: Browser Spelunking
4. Decision making: If There's a Fork in the Road, Take It
5. Looping: At the Risk of Repeating Myself
6. Functions: Reduce, Reuse, Recycle
7. Forms and validation: Getting the User to Tell All
8. Wrangling the page: Slicing and Dicing HTML with the DOM
9. Bringing data to life: Objects as Frankendata
10. Breating custom objects: Having It Your Way with Custom Objects
11. Kill bugs dead: Good scripts Gone Wrong
12. Dynamic data: Touchy-Feely Web Applications
Web Service Essentials (first edition February 2002)
Author: Ethan Cerami
This book is an overview of 4 key web services - XML-RPC, SOAP, UDDI and WSDL. Unfortunately parts of this book are now out of date.
For example the Microsoft SOAP Toolkit is listed but it is now deprecated by the .Net framework. Much of this book also feels like it was taken from a list of web services websites from the end of 2001. A new edition is required.
1. Introduction
2. XML-RPC Essentials
3. SOAP Essentials
4. Apache SOAP Quick Start
5. Programming Apache SOAP
6. WSDL Essentials
7. UDDI Essentials
8. UDDI Inquiry API:Quick Reference
9. UDDI 4J
Using UML (1st edition 1999)
Authors: Rob Pooley and Perdita Stevens
1 - Software Engineering with components
2 - Object concepts
3 - Introductory case study
4 - The development process
5 - Essentials of class models
6 - More on class models
7 - Essentials of use case models
8 - More on use case models
9 - Essentials of interaction diagrams
10 - More on intereaction diagrams
11 - Essentials of state and activity diagrams
12 - More on state and activity diagrams
13 - Implementation diagrams
14 - Packages, subsystems, models
15 - CS4 administration
16 - Board games
17 - Discrete event simulation
18 - Reuse: components, patterns
19 - Product quality: verification, validation, testing
20 - Process quality: management, teams, QA
Teach Yourself XML in 21 days
Authors: Simon North and Paul Hermans
This book was written in 1999 so is slightly out of date in some areas but still covers a lot of useful information about XML.
1 - What Is XML and Why Should I Care?
2 - Anatomy of an xml document
3 - Using XML Markup
4 - Working with Elements and Attributes
5 - Checking Well-formedness
6 - Creating Valid Documents
7 - Developing Advanced DTDs
8 - XML Objects
9 - Checking validity
10 - Creating XML Links
11 - Using XML's Advanced Addressing
12 - Viewing XML in Internet Explorer
13 - Viewing XML in Other Browsers
14 - Processing XML
15 - Event Driven Programming
16 - Programming with the Document Object Model
17 - Using Meta-Data to Describe XML Data
18 - Styling XML with CSS
19 - Converting XML with DSSSL
20 - Rednering XML with XSL
21 - Real World XML Applications
Appendixes
Game Programming All in One
Authors: Bruno Miguel Teixeira de
Sousa and Ronald Penton
This is a big book, weighing in at nearly 1000 pages. Full review
coming soon. Here's the contents at a glance:
Part 1: C++ ProgrammingIntroduction
to C++ Programming, Variables and Operators, Functions and Program Flow,
Multiple Files and the preprocessor, Arrays, pointers, and strings,
classes, developing monster, streams, basic software
architecture
Part 2: Windows ProgrammingDesigning your game
library: Mirus, Beginning Windows Programming, Introduction to DirectX,
DirectX Graphics, DirectInput, DirectSound
Part 3: Hardcore Game
ProgrammingIntroduction to Game Design, Data Structures and
Algorithms, The Mathematical side of games, Introduction to AI,
Introduction to Physics Modeling, Building Breaking Through, Publishing
Your Game
Part 4: Appendixes
Focus on 3D Models
Author: Evan Pipho
Chapter 1: Reviewing Matrices and Vectors
Chapter 2: Introduction to
Quaternions
Chapter 3: Quake 2's MD2 models
Chapter 4: Loading OBJ
files
Chapter 5: An Introdction to Skeletal Animation
Chapter 6:
Mikshape 3D
Chapter 7: The 3DS models
Chapter 8: MDL, the legendary
Half-Life Format
Chapter 9: Enter the Quake: Quake 3's MD3
Format
Chapter 10: Tips, Tricks, and Methods
Appendix a: Common 3D
Model Formats
Appendix b: STL Vector Primer
Appendix c:Going Above
and Beyond
2D Artwork and 3D Modelling for Game Artists
Author: David
Franson
Part One: 3D Modeling with trueSpace
Part Two: Unwrapping the UVs with DeepUV
Part Three: Texturing the UVs with DeepUV
Part Four: Preparing Assets for Games with 3D Studio Max
Part Five: Bringing It All Together
Part Six: Appendices
Beginning PHP4 Programming
Authors: Wankyu Choi, Allan Kent, Chris Lea, Ganesh Prasad, Chris Ullman
Comprehensive guide to getting started with PHP. Over 700 pages.
1. Installation
2. Writing PHP Programs
3. Getting Data from the Client
4. Decision Making
5. Loops and Arrays
6. Organizing Your Code
7. Handling And Avoiding Errors
8. Working With the Client
9. Objects
10. File and Directory Handling
11. PHP Database Connectivity
12. Retrieving Data from MySQL Using PHP
13. Manipulating Data in MySQL Using PHP
14. XML
15. E-Mail Handling
16. Generating Graphics
17. Case Study A URL Directory Manager
Appendix A: ODBC
Appendix B: PHP Functions
Professional PHP
Authors: Jesus Castagnetto, Harish Rawat, Sascha Schumann, Chris Scollo, Deepak Veliath
Table of Contents
I. Introduction
1. About this book
2. Downloading, installing, configuring PHP
3. Programming in a Web environment
II. The Language
4. Variables and data types
5. Operators
6. Expressions and Statements
if ... else ... elseif
switch
while and do ... while
for require and include
exit
7. Functions
How They Work
Passing Arguments
Variable Scope and Lifetime
Nested Functions and Recursion
Assigning Functions to Variables
8. Arrays
Starting Simply
Looping Through an Array
A Sequentially Indexed Array
Non-sequentially Indexed Arrays
A Few Words About next() and prev()
array_walk()
Associative Arrays
Multi-Dimensional Arrays
Sorting Functions
Using Arrays with Form Elements
9. Objects and OOP
Object-Oriented Programming
Defining a Class
Instantiating the Class
Constructors
Inheritance
10. String manipulation and regular expressions
III. Applying PHP
11. Non-relational databases
What is a database?
Databases and CSV
dbm - a fast, record-based, flat-file database
Another interface to dbm - DBA
Our telephone book interface
12. SQL DBMS engines
13. Using LDAP
14. Serving XML documents
15. Graphic content creation
16. PHP connectivity
Utilizing TCP
The whois function
The Frontend
Extending the Frontend
Is my domain still available?
A web client
17. Sending E-mail
18. Cookies
What are cookies?
Cookies in PHP
Getting started
Deleting a cookie
Common pitfalls
What is your name?
19. Error handling and debugging
20. Security issues
21. Magic with quotes
What are magic quotes?
Defining the scope
Magic quotes explained
Sybase extension
Applying magic_quotes
Two helper functions
An alternative approach
Summary
22. Templates
IV. Sample Applications
23. A shopping cart application
24. An OO site
V. Advanced Topics
25. Version migration
26. When should I avoid regular expression functions
VI. Appendix
A. Reference
B. Open Source Software
C. PHP in non-UNIX environments
D. Notes on PHP4/Zend
Basic concepts
The binary compiler
The optimizer
New features in PHP4
PHP4 and overall portability
E. Other Resources
3D Lighting - History, Concepts & Techniques
Author: Arnold
Galarno
Charles River official webpage
Chapter 1 - The Nature of Light
Chapter 2 - The Physiology of Seeing
and Perception
Chapter 3 - Fundamentals of Photography and
Cinematography
Chapter 4 - Color and Materials
Chapter 5 - Computer
Graphics
Chapter 6 - Basic Lighting Techniques
Chapter 7 - Applied
Lighting Techniques
Chapter 8 - Lighting Situations
Appendix a - The
Eye Appendix b - A Brief History of Photography
Appendix c - About the
CD-ROM
3D Math Primer for Graphics and Game Development
Authors:
Fletcher Dunn and Ian Parberry
Wordware webpage for this book
Chapter 1 - Introduction
Chapter 2 - The Cartesian Coordinate
System
Chapter 3 - Multiple Coordinate Spaces
Chapter 4 -
Vectors
Chapter 5 - Operations on Vectors
Chapter 6 - A Simple
Vector Class
Chapter 7 - Introduction to Matrices
Chapter 8 -
Matrices and Linear Transformations
Chapter 9 - More on
Matrices
Chapter 10 - Orientation and Angular Displacement in
3D
Chapter 11 - Transformations in C++
Chapter 12 - Geometric
Primitives
Chapter 13 - Geometric Tests
Chapter 14 - Triangle
Meshes
Chapter 15 - 3D Math for Graphics
Chapter 16 - Visibility
Determination
Chapter 17 - Afterword
Appendix a - Math
Review
Appendix b - References
Tricks of the Windows Game Programming Gurus (2nd Edition)
Author: Andre Lamothe
This is a good book for people with basic C skills who want to learn 2D
windows game programming with DirectX. Andre Lamothe has a great style of
writing - he makes programming feel like a fun hobby as opposed to a dull
brain strain. Although this book is slightly old now - it covers DirectX8 (first edition was DirectX6) -
the concepts that are taught are still relevant today. Direct3D is
not covered in the book; there are articles about DirectX8 on the CD
Tricks of the 3D Game Programming Gurus - Advanced Graphics and
Rasterization
Author: Andre Lamothe
The long awaited sequel to the first Tricks book.
Here's the contents
at a glance:
Part 1: Introduction to 3D Game Programming
(Getting
Started with 3D Game Programming, Crash Course in Windows and DirectX, 3D
Game Programming with a Virtual Computer)
Part 2: 3D Math and
Transformation
(It's a Math, Math, Math World, Building a Math Engine,
Introduction to 3D Graphics, Rendering Wireframe Worlds in 3D)
Part 3:
Basic 3D Rendering
(Basic Lighting and Solid Modeling, Interpolative
Shading Techniques and Affine Texture Mapping, Clipping in 3D++, Depth
Buffering and Visibilty)
Part 4: Advanced 3D Rendering
(Advanced
Texturing Techniques, Spatial Partitioning and Visible Algorithms,
Lighting Shadows and the Secrets of the id)
Part 5: Advanced Animation
and Physics Modeling and Optimization
(Character Animation, Motion and
Collision Detection, Optimization Technologies)
Part 6: CD-ROM
Appendixes
3D Games - Realtime Rendering and Software Technology Volume 1
Authors:Alan Watt and Fabio Policarpo
This is a big textbook featuring all kinds of advanced info on 3D
technology. Beginners will find it to technical. It includes a the fly3D
engine on the CD, which implements most of the described techniques. Its
based on OpenGL and the rest of the DirectX api. On the whole it includes
lots of useful information for serious developers, but is not easy reading
and you won't want to read this from cover to cover (occasion reference
only).
Foundations
1 - Mathematical fundamentals of 3D computer
graphics
(Manipulating 3D structures, Vectors and computer graphics,
Rays and computer graphics, Bi-linear interpolation of polygon properties,
A basic engine using SIMD instructions)
2 - Modelling and representation 1 - comparative review and polygon
mesh models
(Introduction, Polygonal representation, High-level
methods - constructive solid geometry, High-level creation using
modellers/editors)
3 - Modelling and representation 2 - the economics of polygon
meshes
(Compression polygonal models, Compressing the geometry,
Encoding connectivity, Triangle strips, Local vs. global algorithms, Using
Vertex buffers, Level of detail (LOD) processing)
4 - Representation and modelling 3 - landscape
specialisations
(Introduction, Simple height field landscapes,
Procedural modelling of landscapes - fractals, Terrain LODs: triangle
bintrees , Rendering of landscapes by ray casting)
5 - Modelling and representation 4 - Bezier, B-spline and subdivision
surfaces
(Introduction, Bezier curves, B-spline curves, Rational
curves, From curves to surfaces, Modelling or creating patch surfaces,
Rendering parametric surfaces, Practical Bezier technology for games,
Subdivision surfaces, Scalability - polygon meshes and patch meshes and
subdivision surfaces)
Classical 3D graphics
6 - Classical polygon mesh rendering technology
(Coordinate spaces
and geometric operations in the graphics pipeline, Operations carried out
in view space, Algorithmic operations in the graphics pipeline, Rendering
examples)
7 - Classic Mapping techniques
(Introduction, 2D texture maps to
polygon mesh objects, 2D texture domain to bi-cubic patch objects, Bump
mapping, Environment or reflection mapping, 3D texture domain techniques,
Comparative examples)
8 - Anti-aliasing theory and practice
(Introduction, Aliases and
sampling, Jagged edges, Sampling in computer graphics compared with
sampling reality, Sampling and reconstruction, A simple comparison,
Pre-filtering methods, Supersampling or post-filtering, Anti-aliasing in
texture mapping, Fourier transform of images)
Real-time Rendering
9 - Visibility processing of complex scenes
(Introduction, Why
trees?, BSP trees, Bounding volume hierarchies, BSP trees and polygon
objects, Specialisations for building interior-type environments, Portals
and mirrors, Advanced mirrors, Advanced view frustum culling, Exact
visibility, Dynamic objects and visibilty)
10 - Lighting in games
(Light maps, Dynamic lighting effects with
light maps, Dynamic lights, Switchable/destroyable light sources, Fog
maps/volumetric fog, Lighting case studies)
11 - Shadows in games
(The nature of shadows, Classical shadow
algorithms, Shadows in games)
12 - Multi-pass rendering
(Introduction, Multi-pass functionality,
Multi-pass algorithms, Multi-pass sampling approaches, Multi-texture,
Multi-texture example)
Control of objects
13 - Motion control - kinematic
(Introduction, Pre-scripting
animation: linear interpolation and elapsed time/interpolation
problems/explicit scripting, Interpolation of rotation, Using quaternions
to represent rotation, The camera as an animated object, Particle
animation, Particle animation and computer games, Articulated structures)
14 - Control by dynamic simulation
(Dynamics in off-line animation
- the famous example, Initial value problems vs. boundary value problems,
Topic areas, Motivations for dynamic simulations, Basic classical theory
for particles, Basic classical theory for rigid bodies, The practicalities
of dynamic simulations, Numerical integration)
15 - Collision detection
(Broad phase/narrow phase algorithms,
Bounding volume hierarchies, Broad phase collision detection with AABBs,
Broad phase collision detection with OBBs, Broad phase collision detection
with local or object spatial partitioning, Narrow phase collision
detection, Single phase approaches)
16 - Interactive control
(Interaction and animation, Controller
module, User-object interaction - 6 DOF control with simple sampling,
User-object animation - a 4-key car simulation, Object-object interaction,
Camera-object interaction, Objects with simple autonomous behaviour,
User-scene interaction)
17 - Behaviour and AI
(Established approaches and architectures,
Agents and hierarchies, Examples of agent architectures, Cognitive
modelling and situation calculus, The role of sensing - vision as an
example, Learning architectures)
2D technology
(Image pyramids, Wavelet transform, Image transforms
and basis matrices, Wavelets and computer games, Image metamorphosis -
morphing)
18 - 2D techniques
19 - Image based rendering
(Introduction, Reuse of previously
rendered imagery, Varying rendering resources, Using depth information,
View information, 4D techniques - the Lumigraph or light field rendering
approach, Photo-modelling and IBR)
Software technology
20 - Multi-player game technology
(Introduction. Definitions,
Implementation of multi-player games, The origin and nature of problems in
multi-player games, Reducing the information in messages, Multi-player
implementation using client-server)
21 - Engine Architecture
(Game programming in C++, Managing the
evolving complexity in games, Engine design and architecture, Fly3D
software architecture)
22 - Fly3D SDK reference
Game Architecture and Design
Author:Andrew Rollings
This is an excellent book for anybody designing a game, or anybody on
the development team.
External general game programming book
reviews:
3D Engine Design
Data Structures for Game Programmers
Author:Ron Penton
I found this to be the best book around for teaching you about
data structures. Chances are you already know about the more basic data
structures but Penton gives a thorough explanation of them including when
to use certain data structures over others and where the data structures
are best used in games. The book also covers advanced data structures.
Below is a list of contents:
1. Basic Algorithm Analysis
2.
Templates
3. Arrays
4. Bitvectors
5. Multi-Dimensional
Arrays
6. Linked Lists
7. Stacks and Queues
8. Hash Tables
9.
Tying it together: The basics
10. Recursion
11. Trees
12. Binary
Trees
13. Binary Search Trees
14. Priority Queues and Heaps
15.
Game Trees and Minimax Trees
16. Tying it together: Trees
17.
Graphs
18. Using Graphs for AI: Finite State Machines
19. Tying it
together: Graphs
20. Sorting Data
21. Data Compression
22. Random
Numbers
23. Pathfinding
24. Tying it together:
Algorithms
Appendix A: A C++ Primer
Appendix B: The Memory Layout Of
A Computer Program
Appendix C: Introduction to SDL
Appendix D:
Introduction to the Standard Template Library
GameDev reviews
Physics for Game Developers
Author:David M. Bourg
Physics is such a huge field that
its impossible for there to be a book about programming every type,
however although at only about 300 small pages, there is a lot of
information in here that most games developers would find useful. Assumes
proficiency in trigonometry, vector and matrix maths, and a basic
understanding of calculus.
Contents
1. Basic Concepts (Newton's
Laws of Motion, Units and Measures, Coordinate System, Vectors etc)
2.
Kinematics (Velocity and Acceleration, 2D and 3D Particle Kinematics,
Rigid Body Kinematics etc)
3. Force (Force Fields, Friction, Fluid
Dynamic Drag, Buoyancy, Sprinds and Dampers etc)
4. Kinetics (Particle
Kinetics in 2D and 3D, Rigid Body Kinetics) 5. Collisions
(Impulse-Momentum Principle, Impact, Linear and Angular Impulse and
Friction)
6. Projectiles (Simple Trajectories, Drag, Magnus Effect,
Variable Mass)
Download this sample chapter for free
7. Aircraft
(Geometry, Lift and Drag, Other Forces, Control and Modeling)
8. Ships
(Flotation, Volume, Resistance, Virtual Mass)
9. Hovercraft (How they
Work, Resistance)
10. Cars (Resistance, Power, Stopping Distance,
Roadway Banking)
11. Real-Time Simulations (Integrating the Equations
of Motion, Euler's Method, Other Methods)
12. 2D Rigid Body Simulator
(Model, Integration, Flight Controls and Rendering)
13. Implementing
Collision Response (Linear Collision Response, Angular Effects)
14.
Rigid Body Rotation (Rotation Matrices, Quaternions)
15. 3D Rigid Body
Simulator (Model, Integration, Flight Controls, Rendering)
16. Multiple
Bodies in 3D (Model, Integration, Collision Response and Tuning)
17.
Particle Systems (Model, Integration, Collision Response and
Tuning)
Appendix A: Vector Operations
Appendix B: Matrix
Operations
Appendix C: Quaternion Operations
3DS Max Bibles
Author: Kelly L. Murdock
There is a 3DS Max Bible for every version of 3D Studio Max. The older books are going very cheap now and contain most of the information found in the latest book.
However if you are a serious 3D artist, you'll want to learn the latest version using the latest book. This is a very good book covering all areas of the program and explaining it in a very clear and simple way. All books weigh in at around 1200 pages.
3DS Max 2008 Bible summary of contents
Part 1: Getting Started with 3ds Max
Part 2: Working with Objects
Part 3: Modeling Basics
Part 4: Materials, Cameras and Lighting Basics
Part 5: Animation and Rendering Basics
Part 6: Advanced Modeling
Part 7: Advanced Materials
Part 8: Advanced Animation Techniques
Part 9: Dynamic Animation
Part 10: Working with Characters
Part 11: Advanced Lighting and Rendering
Part 12: MAXScript and Plug-Ins
4 Appendices
50 Chapters in total
3ds Max 9 Bible summary of contents
Part 1: Learning the Max Interface
Part 2: Working with Objects
Part 3: Modeling
Part 4: Materials and Maps
Part 5: Cameras and Lighting
Part 6: Animation
Part 7: Dynamic Animation
Part 8: Characters
Part 9: Rendering
Part 10: Podt Processing
Part 11: MAXScript and Plug-Ins
If you would like to try the latest version of 3DS Max, you can get a
Free 30 day trial
Modeling a Character in 3DS Max
Author: Paul Steed
Written by the modeler and animator for Quake 3 Arena. I found this to be a very useful resource for learning 3DS Max. Before I got this book I wasted a lot of time struggling with basic stuff but when I started reading this it all came together and I've become a much better modeller now.
The presentation of the book is "watching" Steed create his character, Callisto, from start to finish. You can learn by either re-creating the character by following along exactly, or if you're a bit more ambitious, use the material as a workbook to build your own character.
Part 1 - Design
Chapter 1 Design Fundamentals
Chapter 2 Callisto Designed
Part 2 - Modeling
Chapter 3 The Guide Objects
Chapter 4 The Head and Face
Chapter 5 The Hair
Chapter 6 The Torso
Chapter 7 The Legs
Chapter 8 The Back, Neck and Shoulders
Chapter 9 The Arms
Chapter 10 The Boots
Chapter 11 Optimizing the Mesh
Part 3 - Texturing
Chapter 12 - Mapping the Head
Chapter 13 - Mapping the Rest of Callisto
Final Thoughts
Maya
Download
Maya Personal Learning Edition
Assembly and Low Level Programming
The Art of Assembly Language Programming
Check out the official website
here.
1 Hello, World of Assembly Language
2 Data Representation
3 Memory Access and Organization
4 Constants, Variables, and Data Types
5 Procedures and Units
6 Arithmetic
7 Low-Level Control Structures
8 Files
9 Advanced Arithmetic
10 Macros and the HLA Compile-Time Language
11 Bit Manipulation
12 The String Instructions
13 The MMX Instruction Set
14 Classes and Objects
15 Mixed Language Programming
A The ASCII Character Set
B The 80x86 Instruction Set
Last updated 28th June 2008