Monday, September 16, 2013

Defiance Tools v0.5.2 Released

I said  no more releases unless it was a bug fix right? Well this is a bug fix release.  Found a memory leak that made extracting every sound with snd2wav go boom after a while. While I was back in the code I had an idea to boost the performance as well. The snd2wav tool runs a lot faster now.

Thursday, September 12, 2013

ForgeLight Tools in Development

I've been playing PlanetSide 2 since the tech test back in July 2012. As a PlanetSide vet I was fortunate to get in on the first wave. I immediately started to poke around in the game assets and wrote an asset unpacker to get all the DDS files to theme my Twitch channel.  I never did much work on the internal formats at that time. Now that Defiance Tools has wrapped up I've decided to go back to PlanetSide 2 and create more extensive tools like what I have done for other projects.

Since PlanetSide 2 uses the ForgeLight engine that will also power Everquest Next I've decided to name the project ForgeLight Tools with the intention of supporting any other games that use the engine.

So, first off I rewrote my .pack file unpacker to be a lot more flexible and work like the other asset extraction tools I've released.

I also created a tool to compare .pack files between different client versions to track changes. I did this for Defiance Tools and it was invaluable when tracking what the developers were doing between client patches.

I'm in the process of creating a tool to extract and convert the .dme to .obj and .mtl files that you can open in Blender. So far this was A LOT easier than Defiance was to figure out. Trion went a bit crazy with bit flags in the formats compared to SoE. I have a 80% automated process of extracting  the position, texture coords, and diffuse textures.

New Conglomerate MAX
As usual I'll release binaries and the source once I get the tools stable enough to release and working with all the assets.         

Tuesday, September 10, 2013

Defiance Tools v0.5.1 Final Released

I released this on August 8th but never posted about it. I've completed everything I wanted to do with the project and unless it's to fix bugs this will be the final release. Take a look at the project's to see everything you can do with the tools or checkout the Github project page. Thanks for /u/etaew for the testing and suggestions.

You can find all the binary releases on the Github release page along with the source.

I've already started on a new tools project for another game. 
More to come soon.

Friday, July 26, 2013

Defiance Tools v0.2.0 Released

Skinned meshes are now working! You can now extract all the NPCs,  weapons, outfits, and a lot more. Complete overhaul of the command-line switches so you don't have to specify every WAD file. It now just reads and searches the entire WAD directory. mes2obj and ski2obj now allow you to generate a sub directory with the same name as the asset and put all the OBJ, MTL and PNG files in it. Thanks for /u/etaew for the suggestion. Lots of other bug fixes and major code cleanup. 

Defiance Tools v0.2.0

Please report any issues on Github and I'll try and fix them

I've been testing the extracted files with Blender and I did notice one issue. The game's engine stores emissive masks the in some of the diffuse textures alpha channel. This means that when you view the meshes in Blender you get this.

The only way to fix it is to tell Blender to not use the alpha channel to get this result. 


The problem is that the not all the meshes use the alpha in this way and there is no way to test for it and strip out the alpha unless I start digging into the shaders. It's easier to just manually disable the alpha or remove it. In many cases the alpha channel is used for transparency as you would expect like the glass in the Tollbooth here.
Broken Tollbooth Glass

Thursday, July 18, 2013

Defiance Mesh Extractor v0.1.0 Released

The Deck of the New Freedom

I finally have the mesh extractor at a usable state. It can now extract meshes that use the most common shaders to OBJ & MTL files. The OBJ files can then be imported into Blender. The OBJ format is very simplistic and doesn't support decals or normal textures very well so only diffuse (color) textures are supported. Currently the extractor only supports the static meshes like buildings and non-moving vehicles and not animated skins like the Volge or player outfits. That's coming eventually. The formats are almost the same but I'm thinking about switching to the Collada format so I can support more than just the diffuse textures like normal, specular, and emissive textures. I also want to try and get the skeletons extracted so the skins will be already rigged and ready to animate.


Friday, July 12, 2013

Defiance Extraction Tools v0.1.0 Released

I've been working on this project on an off since the Defiance beta. I actually started this project to get the textures to create a Defiance theme for my Twitch channel like I did for PlanetSide 2. With that done I had requests for audio and other assets to be extracted. I was going to wait to release until I had the mesh extraction automated but it was taking longer than I expected so I'm just releasing what I have. If any of you have been on /r/defiance you may have seen the Volge renders of helmets, weapons and mobs I've been releasing so as you can see I'm very close. It's just not completely automated yet and requires some manual steps. There are several different tools but I expect most will be interested in the texture (tex2png) and audio (snd2wav) extraction tools. The mesh extractor mes2obj is not working yet but it dumps a lot of cool information about the materials, material params, vertices, and indices of a mesh mostly for my research. There are other tools but most of the others would only be interesting to you if you are researching the file formats. The waddump tool as you would guess dump the raw assets from the WAD files and wadsdiff allows you to see what assets the devs changed between client patches. If you care about those tools then you probably know how to compile them from source.


The source for all the tools are at my Github repository.

Sunday, February 10, 2013

Infiltrator Action Intro Video

After a lot of work in Blender and GIMP I've finished creating the intro video for my Infiltrator Action Twitch channel. I plan on running the video before each streaming session on Twitch.

All of the video in the intro was taken with my AVerMedia Live Gamer HD in 1080p at 15000kps at 30 FPS while I was streaming to Twitch with OBS. I then converted the mp4 video to a mpeg4 AVI using ffmpeg and the various clips were extracted with Avidemux 2.6. Why did I not just use the mp4 directly? Blender doesn't seem to handle H.264 video very smoothly and it even had a tendency to crash on me a few times.

I used Blender to take all the video clips, NC theme music extracted from the game assets, and 2D assets I created in GIMP to put the video together. Blender has a great video editor that is relatively unknown primarily because it has a very steep learning curve. I would almost call it a leaning cliff but once you get the hang of it you can do some amazing work with it. Since Blender is also used for 3D modeling it's very easy to add 3D elements to scenes.

I hope you like the final result.

Friday, February 8, 2013

Twitch Channel Redesign

I've been spending a lot of time in GIMP recently redesigning my Twitch channel to work with the new beta layout. It's done for the most part so I decided to retro fit the images into the regular layout. I think it worked out pretty well. The redesign also put my channel's Infiltrator Action name in the forefront.

Old Layout

Unfortunately the new beta layout looses a lot of flexibility like linking to external images. So I will not be able to link my PS2 sig from PSU. The new layout uses markdown but suspiciously doesn't support the image tag from the spec.  They want you to upload an image so you can't make it generated by URL.  I don't want to turn this into a Twitch rant. It's still in beta and things can change so i'm taking a wait and see approach. The way it is now people don't like it.  So... we will see.

New Beta Layout

All of the new images used  for the redesign were created in GIMP with the help of some of the PS2 game assets. I figured out the ForgeLight Engine's .pack format of the game resources way back during the beta so I can extract them. Almost all the images are in DDS format so I used SageThumbs to convert them as needed. I still haven't had any luck extracting the models. The models would be useful in creating some Machinima down the road.

Included  in the redesign are all new Infiltrator Action intro, playing , intermission  and  outro graphics for the OBS scenes. I even added a screenshot rotation to the intermission scene to help entertain people while I take a bio break or take a phone call for a moment. It's a lot better then having my infiltrator just stand there rifle in hand waiting to be shot.





Thursday, February 7, 2013

Switching to Open Broadcasting Software. Goodbye XSplit!

I stumbled on tlrtense's Twitch channel the other day. He plays Vanu but I can forgive him for that since he turned me onto Open Broadcasting Software. I've been using XSplit for my stream when ever I wan't to do any fancy overlays but to get the best performance using game capture or stream 1080p you have to pay for it. I got a 1-month trial with my AVerMedia Live Gamer HD capture card and I eventually paid for a 3 month subscription when the trial expired.

OBS is a free open source streaming software very similar to XSplit. Some would say it's almost identical if you strip away all the fancy UI look and feel  from it. It has scenes and various elements you can overlay on your stream. I've only attempted to stream to Twitch but other options exists. The real advantage that OBS has over XSplit (besides the price) is encoding performance. I don't know what OBS is doing different but my FPS drop in PS2 is considerably less that XSplit when using the game capture. I can stream 1080p @ 60 FPS with very little frame rate drop.

The only drawback I did see during my tests was it seems to perform much better on Intel than AMD processors. I doubt this will be much of an issue for most PC gamers as anyone buying new hardware the past few years has gone Intel anyway since AMD just hasn't kept up in performance or the market for the past few years. I think some of this has to do with developers just not prioritizing  AMD optimizations because of the lower market share.

Wednesday, February 6, 2013

Blog Redesign

Since I'm in the process of redesigning my Twitch channel and making reference to my domain I really needed update the look of the blog. If I'm going to have people coming in from Twitch and YouTube I need to have it look like I spent more then 10 minutes messing with the color swatches because that's what I totally did.

So, here you go the mostly redesigned blog to the extent that Blogger will let me with out replacing all the HTML or moving to a different blog system. At the very least I decided to make a little header image in GIMP. Graphics heavy websites are on there way out as most of them are going for the minimalist approach. I figured it was appropriate.

I also added an RSS feed option. I have no idea why I didn't add that before. I use Google reader for everything.