Thursday, 20 November 2008

Final game doc

I have made a lot of changes to what I intend to do in final game. I've decided to change from a point and click to a more third person shooter style when I realised that a fixxed camera wouldn't work well a wide open environment. Also in moving from a mouse to a gamepad I've had to change the way the menu works. Now I plan on having a dead rising style interface where the player switches though items in their inventory with the shoulder buttons and using the items with the X button. Some items will have an effect (displaying a map. switching on a torch etc) while others will simply need to be in the inventory to advance the story (a crowbar used during a cutscene for example.

So the player does not end up trying to use every item in the game getting close to an item will cause a "Press A" message to appear. On top of this Timmy the dog will run over to some item showing the player some things they might have missed

Sunday, 16 November 2008

Scaline Conversion and Gourand shading

having got my render working using GDIpluses fillpolygon function. This week in order to later implement things such as Gourand shading and Z-buffering I first need to write my own polygon function. One that draws pixel by pixel rather then triangle by triangle. To do this I need to scanline convert the points that make up the polygon using interpolation.

The scanline converter checks every side of the polygon finding the value of X for every value of Y between the vertexes that make that side. If the value of X is the largest or the smallest for that value of Y it is stored. After this we end up a series of lines each with an startX and endX value. These simply need to be drawn to the screen by setting the pixels between the two values for each line

resulting in thisGourand shading was not to difficult to implement after this. First all I now had to find the normal for each vertex rather then each polygon. After that the same lighting calculations can be used to find the color of each vertex. The color are then interpolating the colors between each vertex when drawing the polygon. This is the result with just the red light channel at the moment

Saturday, 1 November 2008

Making a mini game in unreal

This week I had to make an item hunt game in Unreal. I started off by making a new pick up clones from the adrenaline pickup but with no code other then to increase the players score by one. although this worked fine when the map was played death match style with the total conversion running the player couldn't pick them up. Looking though the UnrealScript documentation (at http://unreal.student.utwente.nl/uncodex-ut2004/) I compared my player pawn class to a default player pawn. Looking though these two I found the problem was that pawns are not set to be able to pick up items by default

Once this was fixed I needed to get the HUD displaying the pickup message. This was the most difficult and took an hour or two searching the code. I looked though the various functions were passed when an pickup was picked up. In the end I found the functions needed to display these messages in one of the HUD objects. I then made my HUD inherit from this class before overwriting the draw function to display the score and time.

After this I just had to make the counter display the time that has elapsed since the level begin and had a simple unreal mini game

Wednesday, 15 October 2008

Disassembleing Persona

As part of my console dev module I was asked to disassemble a PS1 rom to take a look at the assembly code. After reading a few guides I decided to try Lemasm . Although a N64 disassembler both N64 game and PS1 use MIPS meaning it should work

My game of choice was Persona 2: Eternal Punishment. After loaded the ROM in Lemasm I got this



It's easy to convert this raw hex to into something a bit more readable. I took the time to look up a few of these commands to make sure I wasn't getting something some nonsense. And ANDI commands adds two registers bitwise. A BEQ branches when two registers are equal etc

This shows the hex as an image. Even after changing a few settings I can get nothing but white noise.

Sunday, 12 October 2008

Vectors

Out task this week was to revise vectors and then make a class using them. Luckily I've had quite bit of C++ experience so this isn't the first time I've had to build a class. After making functions for adding multiplying dividing and finding the dot and cross product I also decided to overload the operators + * and / so the function would be easier to use

Tuesday, 7 October 2008

well that isn't supposed to happen

Started to build the basic house using BSP brushes. Planning to make to look more a bit more burnt using static meshes later. And came across rather annoying glitch. The walls of the house are up but if I try to subtract an area for a door


The terrain disappears. Looking on the internet this is a "Known glitch" It's also a huge problem. The good news is I might not have to worry about this as I was thinking about making the house a different map all together and having the player go between the two. I might want to make the house bigger which would involve a lot of messing with the terrain. This way I just make the other map bigger. Although I might end up with a TARDIS





Monday, 6 October 2008

Getting to grips with Unreal

I've upgraded my design doc a little. Decided after some of last years stuff I should be a bit more ambitious so I've added a torch and a map. At the moment I'm building my level and here is what I've got far. They're a bit plain at the moment as I have yet to add any static meshs. I plan on adding a few when I get a bit better with Maya


The house will be here eventually. The textures on the Terrain is a bit hit and miss because they don't display correctly in the editor. Hopefully get that fixed soon