Towards the start of November you may recall reading something about THQ cutting back on their "core gamer" games and cancelling some of their higher risk unannounced titles. One of said titles was the one I was working on, and as a result I was made redundant [sad]
This came as a massive blow to me and it took ages for it to really settle in that I wouldn't be working at Juice again, with a team I really enjoyed working with and on a project I had put a lot of hard work into. Since then though I have been sending out CVs, doing interviews and trying to get another job in the games industry.
During this time I have been to some really fantastic studios and seen some awesome projects (that needless to say I can't tell you anything about) and I have managed to land a great job at a Liverpool based studio that I won't name directly ...for now [wink]
I am really excited about starting at a new place and thankfully even a few guys from the team at Juice have also got places there.
Lastly, one of the very few good things about getting laid off is that it means I have a bit of spare time on my hands before starting at a new studio in which I plan to get as much coding done as I possibly can. Hopefully I will be able to catch up on some of the cool new(ish) things that I see hobbiests working on and get green with envy ...so might even have some screenshots or vids to post if things go well [cool]
My copy of Real-Time Rendering 3rd Edition arrived today, and from what I've read so far, it is awesome! [smile]
The whole book is printed on glossy paper with colour pictures throughout and I got it at a steal from Amazon UK (pre-ordered it for only GBP35 ...it has since gone up to GBP52!). Even at the new price it is still a bargain though [cool]
Now I can finally retire my copy of RTR 2nd Edition to a bookshelf instead of sitting proudly on my desk.
One of the most disheartening things I found about working in the games industry is that when I came back from work each day, my desire to fire up Visual Studio and just sit working on stuff through the night, like I used to, had gone. I was assured from speaking to others that the flame of graphics programming would return but I was sceptical. Work was satisfying my programming needs (and still is ...it is great [cool] ) so any coding at home was very infrequent and lacked direction ... BUT LOCK UP YOUR POLYGONS, I HAVE RETURNED!! [grin]
Aaaaaaaaages ago now I was working on a nice little .smd loader (decompiled HL2 models) and it went pretty well. However recently I returned to the project and looked in my steam folder ...there were LOADS of models for me to play around with, but there was no way I was going to decompile all those (and the MDLDecompiler is temperamental). I also had a new goal...
Just before starting in the games industry, I'd been meaning to play with inverse kinematics (don't get your hopes up though, I am not about to show some IK related stuff ...at least not yet [wink] ). So this was my new goal and to accomplish this I needed some data. Since I'd already been looking at HL2 models (and I really quite like Valve's artwork) the choice was straightforward. I'd load the binary stuff, the .mdl!
C# and SlimDX being my usual weapons of choice, I got stuck right in. It proved challenging but very rewarding (my favourite kind of coding) and when I got my first combine guy rendering correctly I was very happy. Then I tried loading Alyx ...and things messed up [sad]
I was greeted with a rather nasty mess of triangles, giving very little relation to how she should look. But annoyingly the lower levels of detail rendered perfectly. I spent ages trying to work out what was going wrong before coming across the 'Fixups' chunk in the .vvd file. With the fixups applied, Alyx was complete! ...and since then any .mdl I fire at my loader (even stuff from the orange box) has been fine. The next problem though was materials.
For the same reason that I didn't want to convert all the .mdl files to .smd, I really didn't want to have to go through all the .vtf and make them .dds. So I recently started into a vtf loader too. It is still quite hacky, only supporting the key formats, but it is usable and will only get better as I put more effort into the material system, but the key thing is, it is just about ready for screenshot time!! [grin]
Don't be fooled by the appearance of Nomad and Marcus Fenix in the screenies [cool] They are still HL2 models which I found on the Garry's Mod site. I also need to finish off loading the animation stuff, but the good thing is that the .mdl contains all the batches in nice 'vertex shader skinning' sizes, so it will be a breeze [smile]
Also, observant readers may notice all models are flipped horizontally (Marcus Fenix has a scar on his right cheek, not his left) ...I need to fix this [wink]
I decided to splash out and get myself a brand new PC [cool]
My digital camera has decided it no longer likes switching on, so I'll have to make do with stock photos [sad]
It is a Shuttle SP35P2 Pro with an Intel Q6600, 4GB RAM, 8800GT 512MB running Vista Ultimate 64-Bit [grin]
I'm aware this isn't quite cutting edge, but for the size of the machine and the amount of noise it produces, I don't think I could have done much better as it is incredibly quiet, even under strain. I also completely blew any sense of budget I had buying this, so will probably have to survive on bread and water for a couple of months, but it is worth it [wink]
The build process was reasonably painless. Only issue was caused by the RAM, but changing the voltage up to 2.1 seems to have fixed that. Before I had changed the voltage however, it was causing Vista to crash a lot during install, and especially around the account creation part. I'd create an account, it would crash, then upon restart it would ask me to create an account again even though the last one was there. This resulted in me creating 7 user accounts, each one with progressively unfriendly usernames [smile]
To give an idea of how noticeable the difference in speed is compared to my last machine, I was running an AMD Sempron 2800+ with 1GB RAM, which was just about capable of playing HL2. So I have a huge backlog of PC games I need to play now and first stop is Crysis [grin]
...and maybe a few stops later I'll install Visual Studio or something and have a play around with D3D10 ...I'm in no rush though [wink]
I haven't updated this in ages but it has been for a very good reason. At the end of August I started my first job in the games industry. This is of course a dream come true for me and I am finding it a lot of fun so far. Not entirely sure I will say where I am working just yet, but I did have to pack my bags and move to England to do so (which is proving interesting) [wink]
The apartment I am in doesn't have a telephone line so I am without internet. This has given me the opportunity to catch up on some good old fashioned gaming in my free time though. I have just finished Twilight Princess and am I currently playing BioShock on the 360 and God of War 2 [smile]
As for personal coding projects, I have gotten a fair few messages through YouTube and GDNet about people wanting to know when ViLiMaK (Managed Physics Library) will be coming out ...the short answer is, I am not sure. I haven't worked on it for a few weeks now but I do definitely want to finish the port and start adding cool new things to it. Whether I will be allowed to do this I am unsure, and worst case scenario is I pass the library off to a friend of mine who will hopefully be able to make it into what I had hoped it would be (which is "freakin amazing") [grin]
I did do a little bit of code over the weekend though and wrote the basics of an SMD loader (decompiled HL2 models). I still need to get the animation working etc. but the format is pretty straightforward so I should have it going soon enough.
I've been taking a small break from the physics stuff and returned to ">tightening up the graphics on level 3 (that commercial still makes me laugh even after all this time) [grin]
Basically I've revisited the atmospheric scattering using the excellent sample on FilouGK's Blog to help me out. Swapping it in instead of the old Preetham Scattering I had done before was very painless and the sun size really makes the difference (I actually had the sky done in the last batch of shots but I've gotten the atmosphere on the terrain now which is the main reason for this entry) [wink]
On top of that I added some Bloom. I was a bit unsure about it at first (as it tended to make things look blurry), but it is safe to say it has grown on me. I reckon I've gotten it just about subtle enough and I love the way it makes things look a lot warmer [smile]
I'll probably continue on with the graphics development for a little longer as there are a couple more things I'd like to play around before returning to the Physics [wink]
Progress has been good and I'm again at a stage where I am happy to show what I've been up to [smile]
So far I've implemented boxes, spheres, capsules and heightmaps. Multi-body actors and convex shapes are kind of done but not finished or tested. You may of course be thinking "Since when were you going to do capsules? Where are the cylinders!" and you would be right to think that [smile] It appears that although Tokamak supports cylinders by name, they aren't really cylinders. I'd really love to have proper cylinders in there at some stage, but that will have to wait until this managed version is at least near as feature complete as the original Tokamak. Also, joints are next on my list and they look pretty complicated, so there may not be any updates for a while [wink]
Another thing I've been thinking about is the name. I have a fair few ideas myself about what to call this library but I reckon it will be fun to see what other people think it should be called [wink] Personally I'd like it to have a really really silly name, something that makes me laugh when others have to say it when asking questions about the library [grin] So, if you have any ideas, I'd be happy to hear them [wink]
As usual, I've uploaded another video on YouTube ">here. It is hardly a directorial masterpiece, but it at least shows off what the library can now do.
I'll probably add a project page (on my site) for this later on today, put some more info about what is done, what isn't done and what I'd like to add myself. [smile]
I said last time I was working on something a bit cool, and here it is [grin]
About a month ago, Tokamak went open source. I had commented in the GDNet news post how nice it would be if somebody ported it so it was completely managed. Well, I decided to be that somebody [wink]
The library is 100% Managed Code and tied quite tightly to the XNA Framework (for all the various Vector structures etc.) so it should run on Xbox 360 with absolutely no problems. I'm sure I'll find out if that is the case if/when I get myself creator's club subscription [smile]
When porting I actually made a massive amount of progress in a matter of days, but, for what seems like forever now, I have been removing the bugs I introduced in that initial coding burst [sad]
The last major bug was causing bodies to sink into each other, but not all the time. And, due to floating point precision, tracing the bug by running identical scenes in native and managed was proving difficult. Long story cut short, I found the problem and now it runs great [cool]
So far all I have put in are boxes (static and dynamic) but I should be able to put in the various other rigid body types that Tokamak supports within, literally, a few minutes if I wanted [wink]
Support for Heightmaps and Joints may be a bit trickier but it is on my todo list for the near future.
Nearly forgot, I also put up a ">video on YouTube (cause stills don't do it justice) [wink]
I decided to buy Prince of Persia Classic a couple of days ago, and it is the best 800 Xbox Live Arcade Points I have ever spent [grin]
Gameloft have done an amazing job and the graphics are really nice and the animations flow so well.
The game is also addictive in that you get to see leaderboards of players all over the world and try to beat their scores. One of the modes you can play on is survival, where you have to complete the whole game without dying (those familiar with Prince of Persia may know how difficult this can be) but I finally managed to do it, and I went as fast as I could the whole time. My resulting score put at 10th in the world no less [grin]
I expect over time I will drop from this place, but I don't think I could bring myself to try to do this again [smile]
Expect some more development related posts soon as I'm working on something a bit cool [wink]
A few months back I came across a rather interesting paper on generating radiosity lightmaps (Radiosity on Graphics Hardware). The reason I found it so interesting is because it uses quite clever techniques to do nearly all of the radiosity calculations on the GPU. So, I decided to give it a go [smile]
I made some decent early progress implementing it, but then took some time out to do some terrain work with XNA and was also working on a DBP entry. With those out of the way (or cancelled [wink]) I was free to return to my radiosity [cool]
It is written in C++ (mainly to prove that C# hasn't made me soft [wink]) using DirectX 9 and it has actually been loads of fun, especially optimizing it. I was able to reduce the time it takes to perform 256 (16x16) hemicube shots/emissions from nearly a minute, down to as little as 1.5 seconds [grin]
On a whole though it is still not blisteringly fast (the screenshot took quite a while to render), as to get a decent level of accuracy, I have to increase the resolution of the hemicube as well as the resolution of the textures. I also have to shoot residual energy from the topmost mipmap level, as shooting from a lower mipmap level can produce some nasty artifacts [sad]
As you can see from the screenshot, I am still not completely free from artifacts (even when running on quite a high level of detail) but I am still working on it (I did say Beta right? [wink]) The most notable artifacts are around the base of the rotated boxes, where the luxel's centre is occluded and so fails the visibility test, even though the luxel itself is partially visible. I will probably be able to fill those in as a post-process on the lightmaps when packing them, but I am not sure yet if that will work [smile]
Anyway, you can expect to see more of this as it progresses (I'll be giving this project it's own page on my site shortly) [smile]
I got a very pleasant surprise today as my folks got me a Wii for my birthday [grin]
The Wii is a really amazing little machine and I was blown away by it having WiFi out of the box (couple of settings changes and it connects to my router no problems). It is kind of funny seeing it sitting beside my 360 as the Wii really is so small [smile]
I've been having a blast all day on the Wii sports and haven't even unwrapped Red Steel yet. The urge to go buy Zelda: Twilight Princess is proving ridiculously difficult to resist, but I know if I get it, productivity will nosedive to zero for weeks to come [sad]
In other news, I have decided to not enter the DreamBuildPlay competition. I actually decided this towards the end of last month but didn't say anything. The reasons are quite simply I don't think I have enough time left to finish a well polished game and the usual lack of content comes into play [sad]
I have been working on something else a little bit special though, but more on that when I have pretty screenshots to show-off [wink]
I've been tinkering away with some shadows for the past couple of days. I wasn't going to post screenshots until I'd brought them into the terrain renderer, but I think posting often will help keep me motivated [smile]
Essentially a port of Oskari Nyman's PSSM demo from here, the results are quite pleasing and a lot nicer than the (poorly done) standard shadow maps I used in Faith [cool]
I am also really loving the artwork from creators.xna as it is a damn sight better looking than all those old models from the DX SDK [wink]
There was a bit of jiggery-pokery involved in getting the .fbx files to render nicely with my own effects (without first feeding the effect through the Content Pipeline) but I think I've got it running pretty nicely now.
I still want to give CSMs a go and I'm also going to try making the changes to my current PSSM implementation so they are PSVSM (Parallel-Split Variance Shadow Maps) [grin]
I don't know if any of you chaps are following the Stund series on PinkBike, but at the risk of this journal just turning into my URL dumping ground ...
Check out Episode 3! It is Amazing! [grin]
On a slightly more gamedev related note, I am making progress with what I am working on and will put up some screenies soon enough. I'll maybe even try knocking out a simple XNA game just to put something in the GDS (all the cool kids are doing it these days) [smile]
So, I've finally decided to start using this place and after seeing how well Trapper Zoid had transformed his journal into a comic, I figured I'd do a little redecoration myself before settling in [wink]
(has been tested in FF and IE, so in other browsers it may look worse than it already does)
So, more about me I guess. I have not long graduated from University with a Bachelors in Computer Science and I'm currently putting together some things in an attempt to take the games industry by storm. One of those things is an entry for 4E5 that I am working on along with some of the guys from mdxinfo.
I am by no means a stranger to the world of 3D graphics and started out with C++ and OpenGL before making the change to Managed DirectX about ...ummm ...6ish months ago. Since then all my programming has been with C# and MDX [smile]
I'll save the details about what kind of game we are making for next time [cool]