Mr Andrew Small's Course Report
go on, email mefly away home


To say the course was value for money would be an understatement. The only reason for not attending would be if you only bought your Yaroze for playing NTSC games.

Day -6: Received 130 pages of course notes. Japan is on a national holiday all week, so I managed to convince my boss to pretend my holiday starts today. Sort of makes up for working until 2am last Sunday.
Day -5: Started working through the notes for the 2D demo. Hair loss factor 6.
Day -4: Got something vaguely sprite like on the screen. Peter and Robert have written some libraries to help with the basic stuff like texture loading and sprite initialisation, but as I started early I'm having to write these myself. Hair loss is limited to factor 7 as Peter kindly sends me his MEMTOOL utility to automatically calculate the TIM addresses (those magical 0x80900000 numbers in the auto batch files...).
Day -3: Major breakthrough occurs. Go to bed at 11pm sort of happy. Hair loss factor 4.
Day -2: Suffer Yaroze overload and can't stand to look at it all day.
Day -1: Got the crazy idea to add animated sprites - by 9pm it vaguely works but my graphic abilities show that Picasso was wise to die before I was born. Download the demo and code. Note, this is the only demo with code as I wrote it all myself - the other demos include code from the course, so if you want it you'll need to sign up.
Day 1: Lectures on development environment and 2D tools. I teamed up with Paul, a non-Yaroze member interested in game programming who only lives 5 miles up the road from me (little did he suspect...). Discovered that a single sprite can be drawn multiple times with different attributes in the same frame. Use this to drawn two sprites, every else uses it to draw multiple layer scrolling star fields. Hair loss factor 3.
Day 2: Started work on 3D demo really early. Hair loss factor 9.
Day 3: Lecture on 3D stuff - file formats and various gotchas explained. Paul worked on the car dynamics (inertia and all that stuff). A couple of guys from Sony dropped by and got grilled. I nearly had asthma for the first time ever when running for the train home (and missed it) - Paddington platform 14 is way down the far end of 12 which was wreathed in exhaust fumes. Caught the next train and worked on the world mapping on the way.
Day 4: Paul adds collision detection. My chest is still tight from yesterday's 125 diesel aerobics session on Paddington platform 12 - and trains are good for the environment!!!! Spent the morning working on the world mapping in live code rather the paper fantasy land. I used a separate program with pure text output to show the information so I didn't have to worry about 3D graphics and stuff (good job really as the Yaroze's dislike of non-longword aligned structures confused my feeble brain cells - be warned "typedef struct{char a[3][3];}b;" will halt your game before it even enters the main function). Plugged these calls into the spyhuter code just before lunch and it worked first time. We now have a decent track length. PM Lecture on 3D Studio - nice but expensive. Mapped in some better textures to our game. So zonked out I took the wrong tube home and didn't notice until I ended up in Wembly instead of Paddington. Doubled back and finally got to Paddington and a train home (an all stopper). Created a long list of things to do, including:
* Scale up the world.
* Blow up the car when it collides.
* Extend the world map to include function pointer data for inertia and collision detection as well the graphic. In theory this will allow the car to handle differently on various surfaces without using if statements.
* Collision detection for the bullet.
* Reduce the poly count on the player to allow for.
* Adding enemies.

Day 5: Did nothing on the list, so here's the spyhunter demo as far as it got. Paul brought in his N64, I decided I'd been wise not to purchase it. Learnt about dynamic TMDs. This is an awsomely powerful technique as various 'Virus'-like scrolling 3D landscapes around the room demonstrated. You have the opportunity to see it here on some crummy exploding cube demo that I managed to cobble together with a lot of help from Robert and Peter. Those of you in the know will spot the rapid distortion of the cube if you run forwards(X) and back(O) a couple of times. This is because it uses a quick (i.e. non-normalised) rotation method - the course covers a much more accurate method (including code), but for a single explosion this wouldn't matter. Indeed, distortion of the fragments might be desirable. Hair loss factor 10.
Day 5+1: Write and post this report. Noticed that I'll have to rake my pillowcase or the washing machine will block.

Conclusion: A very useful course for those trying to get started with their Yaroze, or wondering whether it's really worth it. Sony have left a large number of 'gotchas' in the system and, sat at home with nothing but their examples, it's difficult to get anything but a black screen.
I'd definitely recommend taking yourself along to the next course (21-25 September). The notes and sample code are not 100% there but Peter & Robert's help is spot on and they've got to leave you something to do.