(define ^
(lambda (x y)
(cond
((zero? y) 1)
(else
(* x (^ x (sub1 y)))))))
Today I'm going to polish off another chapter in the scheme book and hopefully two in the C++ book. Last night I added the FPS counter to the second version of tilemap. I have one or two small todo's today on it too.
On Friday I had an intro lecture to the Computer Game Programming course. There where some interesting figures for where the worlds best selling games are made (this was on slides no source was given)
15% UK
36% Japan
44% USA
therest% other places
I was suprised the UK was so high, and that all the grand theft autos where british made (same for laura croft, broken sword and a host of others I embarrasingly didn't know :) though some I suspected :D ) Interestingly Serious Sam was made in Croatia.
Then we saw the final year projects. They were impressive, one demonstrated fluids in real time, another was soft body modelling.
Soft body modelling is making your normal "hard" polygon model a bit softer and more natural. We can press our skin and it gives a litte, same for clothes, this isn't the case in games where if two models meet they cannot press on each other. Rather we might see some rather ugly polygon clipping problems, or they'd just rebound like they're made from an euclidian solid. The demo showed a 3D worm (from the Worms 3D game by Team 17) and when items interacted with him, his skin would wobble, a cool cartoony effect. The project allowed this kind of soft bodyness to be applied to any model it could load. I think the guy who made it was given a little help from Team 17 but still it was very impressive.
There was another one that animated cloth and another project that added fur dynamically and then rendered it in real time in DirectX. That was good too. The were a host of options for altering the fur parameters, colour, shell number, length etc.
The course is focused extremely hard on the graphics side of game development. I don't believe we'll even briefly cover a definition of a game or what might make one game fun and another crap. That's ok with me though :)
We closed having a look at the Wii and PS3 marketing strategies (I guess) where the PS3 is saying "look we have all this super raw power" - there was a demo of a guy holding two coloured beakers. The Ps3 was hooked up to a camera and it rendered two glasses where the beakers where. He was then able to interact with a bath tub - including pouring water from one beaker to another. The wii was more emphasizing - "our console is going to be fun", it's going to be something you'll play with your friends and many people will enjoy. Then we saw some adverts for the wii.
There's was also a chart showing which companies graduates went to places like Rare, Team17, Lionhead and others.
Looks like it's going to be a lot of hardwork.
EDIT: Did a nice chunk of work on Einfall tonight. Simplified a function or two that was doing too much stuff like:
MasterFunction()
{
MethodB();
}
MethodB()
{
// A load of stuff
MethodA();
// More stuff
}
Converted to
MasterFunction()
{
MethodB();
MethodA();
}
Removed MethodA from MethodB
Something I probably should have seen before. Also extracting some if-boolean statements to seperate functions for clarity. It means it's much easier to read now.
EDIT2: Added the tile part of the map so now I can add some tiles and see if it works - which it pretty much does yay! I set the world origin to the top corner of the window but it seems to be ignoring this for some reason. Otherwise, everything is looking pretty good. Next up is preparing the classes so I can slot them into Einfall without a massive headache :D