Tuesday, November 29, 2011

Doom3 source code

I got Doom3 compiling and running on my Mac thanks to this fork of the code...
https://github.com/Geenz/doom3.gpl
It really is a lot of fun poking around.
I think Doom3 was written to run on Geforce 3 GPU's (maybe even Geforce 2). So I was thinking it would be cool to take advantage of our new fancy pants GPU's and do some cool stuff.
First thing I did was add a vidmode for my monitor (1680X1050) could add some more common screen resolutions like 720p and 1080p.
I don't know if it is a Mac thing or not but it doesn't look like vsysnc is working, it would be good to sort that out.
I haven't tried it with a game pad yet, but would like to see it working nicely with an X360 controler.
Would like to add some better normal map compressing. Normal maps compressed with DXT1 look like crap. But most GPU's should have enough ram to load all the textures uncompressed now.
There is a lot of smoke and dust, could easy make them soft using the z-buffer.
I think all the skinning and shadow silhouette generation is done on the CPU, shouldn't be too hard to move then onto the GPU now.
Even though I'm not a big fan of SSAO it could be a good fit.
MSAA works fine in Doom3 but it might be fun to add FXAA.
And of course adding HDR and motion blur would really sex it up.

The real problem is finding the hours in the day to do all of this. Should really look around and see what other people are doing. I'm sure other people are thinking about the same things as me.

Monday, November 21, 2011

Xcode KeyBindings

Trying to make Xcode more like Visual Studio.
Work in progress...


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Menu Key Bindings</key>
<dict>
<key>Key Bindings</key>
<array>
<dict>
<key>Action</key>
<string>cut:</string>
<key>Alternate</key>
<string>NO</string>
<key>CommandID</key>
<string>Xcode.IDEKit.CmdDefinition.Cut</string>
<key>Group</key>
<string>Edit Menu</string>
<key>GroupID</key>
<string>Xcode.IDEKit.MenuDefinition.Main</string>
<key>GroupedAlternate</key>
<string>NO</string>
<key>Keyboard Shortcut</key>
<string>^x</string>
<key>Navigation</key>
<string>NO</string>
<key>Title</key>
<string>Cut</string>
</dict>
<dict>
<key>Action</key>
<string>copy:</string>
<key>Alternate</key>
<string>NO</string>
<key>CommandID</key>
<string>Xcode.IDEKit.CmdDefinition.Copy</string>
<key>Group</key>
<string>Edit Menu</string>
<key>GroupID</key>
<string>Xcode.IDEKit.MenuDefinition.Main</string>
<key>GroupedAlternate</key>
<string>NO</string>
<key>Keyboard Shortcut</key>
<string>^c</string>
<key>Navigation</key>
<string>NO</string>
<key>Title</key>
<string>Copy</string>
</dict>
<dict>
<key>Action</key>
<string>paste:</string>
<key>Alternate</key>
<string>NO</string>
<key>CommandID</key>
<string>Xcode.IDEKit.CmdDefinition.Paste</string>
<key>Group</key>
<string>Edit Menu</string>
<key>GroupID</key>
<string>Xcode.IDEKit.MenuDefinition.Main</string>
<key>GroupedAlternate</key>
<string>NO</string>
<key>Keyboard Shortcut</key>
<string>^v</string>
<key>Navigation</key>
<string>NO</string>
<key>Title</key>
<string>Paste</string>
</dict>
</array>
<key>Version</key>
<integer>3</integer>
</dict>
<key>Text Key Bindings</key>
<dict>
<key>Key Bindings</key>
<dict>
<key></key>
<array>
<string>moveToRightEndOfLineAndModifySelection:</string>
<string>moveToLeftEndOfLineAndModifySelection:</string>
<string>moveToRightEndOfLine:</string>
<string>moveToLeftEndOfLine:</string>
<string>selectToMark:</string>
<string>swapWithMark:</string>
<string>scrollToBeginningOfDocument:</string>
<string>scrollToEndOfDocument:</string>
</array>
<key>$@</key>
<string>moveToBeginningOfDocumentAndModifySelection:</string>
<key>$@</key>
<string>moveToEndOfDocumentAndModifySelection:</string>
<key>$@</key>
<string>moveWordBackwardAndModifySelection:</string>
<key>$@</key>
<string>moveWordForwardAndModifySelection:</string>
<key>$</key>
<string>moveToBeginningOfLineAndModifySelection:</string>
<key>$</key>
<string>moveToEndOfLineAndModifySelection:</string>
<key>@</key>
<string>moveWordLeft:</string>
<key>@</key>
<string>moveWordRight:</string>
<key>^~$B</key>
<string>moveWordBackwardAndModifySelection:</string>
<key>^~$F</key>
<string>moveWordForwardAndModifySelection:</string>
<key>~</key>
<string>moveWordLeft:</string>
<key>~</key>
<string>moveWordRight:</string>
<key>~</key>
<string>pageDown:</string>
<key></key>
<string>moveToBeginningOfLine:</string>
<key></key>
<string>moveToEndOfLine:</string>
</dict>
<key>Version</key>
<integer>3</integer>
</dict>
</dict>
</plist>