The sentence "Who wants to give screens full of painfully handwritten code?", while perfectly fine English, doesn't seem to go with the previous sentences in the paragraph. I think a word was deleted, as in: "Who wants to give [up] screens full of painfully handwritten code?" This might be even better: "Who wants to just *give up* screens full of painfully handwritten code?" (Note to PragProg's Webmaster: Does this box support Markdown? If not, why not?)--Amos Bieler

The sentence "Who wants to give screens full of painfully handwritten code?", while perfectly fine English, doesn't seem to go with the previous sente...more...

Reported in:
P1.0
(02-Jan-16)

#79514Paper page: 12

For anyone using Gosu 0.10.0 or later, there is no longer a requirement to install libogg or libvorbis, i.e. only sdl2 needs to be installed using homebrew.--Aimee Legge

For anyone using Gosu 0.10.0 or later, there is no longer a requirement to install libogg or libvorbis, i.e. only sdl2 needs to be installed using hom...more...

Reported in:
P1.0
(02-Jan-16)

#79515Paper page: 13

Regarding the note on running ruby programs from within Sublime Text, this can be a bit buggy if the computer contains several versions of ruby (e.g. through use of a ruby version manager). Particularly using RVM can cause the code to error if run inside Sublime Text. If you are using RVM, running the code through your terminal "$ruby filename.rb" will work perfectly i.e. you won't get the errors you see if using Sublime.--Aimee Legge

Regarding the note on running ruby programs from within Sublime Text, this can be a bit buggy if the computer contains several versions of ruby (e.g. ...more...

Reported in:
P1.0
(02-Jan-16)

#79512Paper page: 33

Example code near the top is missing a line from the previous example, specifically the @font.draw() method call to display the score has been replaced with the method call to draw the time-left, rather than adding in a second @font.draw() method call. Both lines appear as they should on the following page of the book.--Aimee Legge

Example code near the top is missing a line from the previous example, specifically the @font.draw() method call to display the score has been replace...more...

Reported in:
P1.0
(03-Jan-16)

#79525Paper page: 46

The third sentence in the second paragraph incorrectly reads, "One method of the SectorFive class, accelerate()...". This method actually belongs in the Player class (as per the Player class diagram and rest of the code in the book), i.e. "SectorFive" needs to be replaced with "Player" in this sentence.--Aimee Legge

The third sentence in the second paragraph incorrectly reads, "One method of the SectorFive class, accelerate()...". This method actually belongs in t...more...

Reported in:
B2.0
(31-Jul-15)

#78696PDF page: 59

The footnote that reads "You can see all the methods of the Array class by looking in the Ruby documentation at -link-" should probably point to the Ruby 2.2.2 documentation (instead of the 2.0.0 docs) since that is the Ruby version you suggest to the user to use in the beginning of the book during the setup and installation. The link also has an unnecessary extra '/' between 'org' and 'core-2.0.0'--David Hackett

The footnote that reads "You can see all the methods of the Array class by looking in the Ruby documentation at -link-" should probably point to the R...more...

Reported in:
P1.0
(10-Apr-16)

#80211PDF page: 65

The second paragraph says:
"... the Bullet class uses the Gosu.offet_x() ..."
It should be:
"... the Bullet class uses the Gosu.offset_x() ..."--Eder Andres Avila Nino

The second paragraph says:
"... the Bullet class uses the Gosu.offet_x() ..."
It should be:
"... the Bullet class uses the Gosu.offset_x() ..."--E...more...

Reported in:
P1.0
(06-May-17)

#81524PDF page: 65

I don't think running the project (ie, "ruby sector_five.rb") will show any bullet.rb errors until after the next section, when you require it in the sector_five.rb file.--Jaime Bellmyer

I don't think running the project (ie, "ruby sector_five.rb") will show any bullet.rb errors until after the next section, when you require it in the ...more...

Reported in:
P1.0
(11-Jan-16)

#79606Paper page: 72

In the Explosion class diagram, one of the instance variables in incorrectly written as "@image_number". In the code and descriptive paragraphs the same variable is called "@image_index".--Aimee Legge

In the Explosion class diagram, one of the instance variables in incorrectly written as "@image_number". In the code and descriptive paragraphs the sa...more...

Reported in:
P1.0
(17-Apr-16)

#80239Paper page: 106

The diagram with the large '3' text has incorrect code written next to it to determine the top left corner x value, where it says "text+width/2" it should be "text.width/2".--Aimee Legge

The diagram with the large '3' text has incorrect code written next to it to determine the top left corner x value, where it says "text+width/2" it sh...more...

Reported in:
P1.0
(30-Apr-17)

#81490Paper page: 125

Each time the book says to "test", it would be helpful if there was a version of the game's code at that particular moment for the reader to reference.

This might be overkill for the first three games, But it would be very helpful for the Escape game where I ran into the most difficulty. There are so many code changes between and around Escape_1 and Escape_2, that it is not easy for the user to reference those versions because the reader may not have coded his/her way to that part of the book yet. --Neil Thorne

Each time the book says to "test", it would be helpful if there was a version of the game's code at that particular moment for the reader to reference...more...

Reported in:
P1.0
(17-Apr-16)

#80240Paper page: 128

The code segment on this page is missing the marker on the line "attr_reader :space" to say that this is a new piece of code. Also, this same line of code is missing from the provided source code on your website.--Aimee Legge

The code segment on this page is missing the marker on the line "attr_reader :space" to say that this is a new piece of code. Also, this same line of ...more...

Reported in:
P1.0
(24-Jan-16)

#79694Paper page: 131+

On the enlarged boulder image, one of the vertices marked does not match the x and y co-ordinates provided for it. The affected vertex is the top left most one, labelled as (-13,-6) when it should really be (-13, -10) as per the book image and the sprite available from this website. The rest of the code in the book incorrectly follows this misplaced vertex, which means that the physics engine is viewing the boulder as having a cut-off flat side in the top-left corner.--Aimee Legge

On the enlarged boulder image, one of the vertices marked does not match the x and y co-ordinates provided for it. The affected vertex is the top left...more...

Reported in:
P1.0
(18-Apr-16)

#80241Paper page: 142/3

There are 8 sprites in the Chip sprite sheet. The last paragraph on page 142 says to rotate through 7 images, and the draw method of the Chip class on the following page also uses %7 twice. All of these should be changed to 8 to use the last sprite from the Chip spritesheet.--Aimee Legge

There are 8 sprites in the Chip sprite sheet. The last paragraph on page 142 says to rotate through 7 images, and the draw method of the Chip class on...more...

Reported in:
P1.0
(29-Apr-17)

#81486Paper page: 145

On pages 145 the book describes the #check_footing method. The book never tells the reader to implement the #check_footing method within the Escape#update method.

Users following along with the book and testing the game on pg 146, as instructed, will notice that Chip does not "run and jump" as the book suggests Chip should at this point. This is because the book never tells the user to add the following line to Escape#update:

@player.check_footing(@platforms + @boulders)
--Neil Thorne

On pages 145 the book describes the #check_footing method. The book never tells the reader to implement the #check_footing method within the Escape#u...more...

Reported in:
P1.0
(18-Apr-16)

#80242Paper page: 146

Within the jump method definition, the second nested conditional which checks the @action instance variable is checking equality to an incorrect symbol name. Where it says ":left" it should be ":run_left" in order to be consistent with the rest of the code.--Aimee Legge

Within the jump method definition, the second nested conditional which checks the @action instance variable is checking equality to an incorrect symbo...more...

Reported in:
P1.0
(18-Apr-16)

#80244Paper page: 154

The new lines of code make a call to the x method of the Chip class "@player.x". This requires that the Chip class makes the x method available e.g. by defining the x method "def x; @body.p.x; end", or making the body accessible from outside the class and calling "@player.body.p.x". Whilst the final source code from your website contains the x method definition, it is not shown anywhere in the book text up to this point, so anyone following along would not have this code, and so this would cause an undefined method error.--Aimee Legge

The new lines of code make a call to the x method of the Chip class "@player.x". This requires that the Chip class makes the x method available e.g. b...more...

Reported in:
P1.0
(18-Apr-16)

#80245Paper page: 161-9

The markup of which lines of code are new gets a bit messed up for 10 pages in the escape2.rb code snippets:
- p161: "require_relative 'camera'" should be marked as new
- p162: "#END HIGHLIGHT" appears as text instead of markup
: lines beginning with "@sign" and "@font" are not new so should have marks removed
- p163: The only new line is "draw_credits" the rest should be unmarked
- p168/9: There are alot of redundant markings (i.e. not new code), only "@quake_time" and "@quake_sound" are new
: "#END_HIGHLIGHT" incorrectly appears again--Aimee Legge

The markup of which lines of code are new gets a bit messed up for 10 pages in the escape2.rb code snippets:
- p161: "require_relative 'camera'" shou...more...

Reported in:
P1.0
(18-Apr-16)

#80246Paper page: 170

The paragraph beginning with, "Finally, you write", contains the sentence, "Note that you read just the camera..." which I believe should be "readjust the camera" i.e. a space has crept into the middle of the word.--Aimee Legge

The paragraph beginning with, "Finally, you write", contains the sentence, "Note that you read just the camera..." which I believe should be "readjust...more...