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.

 Intro

 Offline

 Outro

Intermission

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.





Monday, February 6, 2012

Is the Half-Life Franchise Forgotten?


I know what you are thinking, this guy is crazy and doesn't know what he is talking about. Just hear me out. I’m sure Valve is working on something related to Half-Life but have they left us in the dark for too long? The recent low turnout of player protests got me thinking about the franchise as a whole. Only 10k showed up out of 50k that signed up. This is for a game that as of 2008 has sold 6.5 million copies.  Is HL starting to be forgotten in the minds of gamers?

The last proper game was in 2004 when Valve released HL2. Since then they have released Episode One in 2006 and Episode Two in 2007. The episodes were great but were just extensions of the story and not an entirely new experience. Based off the limited sales data that Valve has released not all PC gamers who played HL2 also purchased the episodes. Console gamers were not interested in playing an old PC port and by extension did not play the episodes. Most console gamers purchased The Orange Box for Portal or TF2. Episode 1&2 was just part of a game they never played.

When Portal 2 was released for all 3 platforms at once it showed us that Valve finally realized the the value of the game consoles. Previous games were ported later and in some cases it was done poorly. It’s been noted many times in the industry that the real money for AAA titles is with the consoles. I’m not saying that PC gaming is dead but just a minority.

This brings me to my main point. I think the large mind share that HL once had for PC gamers has started to fade over time and is only hastened by the lack of updates from Valve. Even with Duke Nukem Forever and it’s long 10 year development cycle we knew it existed and was being worked on. Until the the protest reports showed up in my news stream I had almost forgotten about HL3.

If HL3 exists then it needs to have the mind share of the console gamer to make it financially viable and it has very little. Valve will need to start from almost zero and treat it like a new IP from a marketing standpoint. Maybe Valve has already figured this out and is re-inventing the franchise or just creating a whole new original IP.

Regardless of what the folks at Valve are planning, I’ll be surprised to see anything HL related this console generation.

Sunday, October 17, 2010

Collision Detection & Response

Ah yes the area of game development that usually has a game programmer pulling his or her hair out at 3am. These days collision detection is usually handled by a 3rd party library like the ever popular Havoc or Bullet  physics. I was working on an XNA based project and needed some basic collision detection to move around a world of oriented bounding boxes where the player is a sphere. A few days of research and comming to a good understanding of the Separating Axis Theorem and I came up with a working demo shown at the bottom of the post.  

In my research I found the following links that I think may be useful to others
Separating Axis Theorem (SAT) Explanation
Simple Intersection Tests For Games
N Tutorial A - Collision Detection and Response
http://www.gamedev.net/community/forums/topic.asp?topic_id=346956
General Collision Detection for Games Using Ellipsoids  (Includes sliding algorithm)

Source from other projects
Bullet Physics
Oops! Framework
XNA Physics API (not in active development but worth a look)
JigLibX

Friday, October 1, 2010

Procedural Content Generation

Usually when I'm doing any sort research related to game programming I have a tenancy to end up in a totally different area than what I started because something else sparks my interest. This happened while I was researching Android development. I found out that Unity 3D was going to support Android in the next 3.0 release.  This was a few weeks ago, Unity 3.0 was released this week but thats a different post entirely. Anyway, I've always played around with Unity in the past and it's a really good tool. If you don't want to mess with all the low level stuff like collision detection, rendering, and platform differences and want to focus on your game and not the technology then it's the tool for you. It got me thinking about all the work it takes to create content for an average game and procedural content generation game to mind. So, I stated think how cool it would be procedurally generate a dungeon for a player to navigate. I know it's been done before like many roguelikes that have been created before to more modern versions like Daggerfall, Diablo, and to an extent X-Com. The point is that I've never attempted to do it before.

There are a lot of dungeon generators on the internet that are mainly used for D&D or other P&P RPGs. The bad part is there is no source code for any of them. I did find a link describing the process used in roguelikes to generate dungeons and was able to get a copy of the source for Angband so that was a good start. I ended up deciding try and implement a cell based algorithm that's used in roguelikes   

It basically works like this
  1. Pick a cell size like 8x8 or 2x4
  2. Pick a map width and height and multiply each by the cell size and that will give you the total map size
  3. For each cell randomly decide to add a room that has a random width and height less than the size of the cell but greater than 1
  4. Loop through all the cells that have a room and find the closest cell with a room thats not already connected and add a corridor between  the rooms.
  5. Mark the room as connected 
  6. Repeat steps 4-5 until all the rooms are connected
 I currently store the map in a 2-dimensional enum array that marks a block as None, Wall, Room, or Corridor. This helps with adding doors in a later pass. 

Remember when I said Unity was a good tool to focus on the game and not the technology? This also makes it a VERY good prototyping tool. Here is a link to what I implemented in Unity. If you want to see a different dungeon just hit the refresh button to reload the plugin. 

Unity isn't actually generating the dungeons. It's hitting a servlet on the Google app server it's hosted on that returns generated dungeon data. The generator servlet outputs both binary and html that I used to visually debug the code.   

I may or may not continue working on generator but it was fun figuring out how to make it all work