Monday, January 23, 2012

Podcasts

So when I realized hauling around 1.32 kilograms of an Android tablet with keyboard is cumbersome when you want to listen to podcasts on the go, I bought a smartphone.

I looked for a phone that works with CyanogenMod. The first one, I accidentally bricked when preparing it for CyanogenMod.

The next one, I made sure it works easily with CyanogenMod. I decided with an HTC Wildfire.

And it did work. So the next thing I did was to get a good podcast downloader.

I use ACast in my Asus Transformer, and I wasn't really that happy with it, so I looked for others. All of them (free ones) turned out to be inadequate. In the end, I still settled for ACast. Looking back, ACast isn't so bad.


So next was to get really good podcasts for game development. Here's a list of the ones I found:

I will, if time permits, update this article to give my feedback on every podcast listed there. The list is updated with my opinions on each podcast.


Game Development Podcasts

Irrational Podcasts
Ken Levine's personal podcast as he talks about videogame development along with anyone he decides to interview. Updates are not frequent but very well made, and offers valuable insight into AAA game development.

http://irrationalgames.com/tag/irrational-podcasts/feed/



The Bethesda Podcast
Podcast of the makers of Elder Scrolls, and the id guys (Doom, Quake, RAGE). Some of the interviews sound more like advertisements to make you buy their game, but other episodes are good.

http://bethblog.com/bethesdapodcast.xml




GAMBIT: Looking Glass Studios Podcast
A 10-part series of interviews of the past employees of the now defunct Looking Glass Studios (1990-2000). Very nice podcast explaining some things about how Thief and System Shock were made. You'll realize how even AAA companies (back then) have brash and spontaneous workflows like the rest of us.

http://feeds.feedburner.com/LGSpodcast


Flammable Penguins
Personal podcast of Claire Blackshaw, programmer/designer at Climax where she interviews other game developers. Not updated since 2010. Nevertheless there are some good discussions here.

http://www.flammablepenguins.com/FPPod.xml




Infinite Ammo
Podcast that focuses on interviews of indie developers. Updates are infrequent; I almost thought the podcast was dead.

http://infiniteammo.ca/blog/tag/podcast/feed/





Another Castle
Freelance game designer Charles J. Pratt interviews other game developers in the New York game development scene. Sadly, not updated since 2012. Who knows, maybe we'll get a season three?

http://www.another-castle.org/?feed=rss2




The DigiPen PodClass
Podcast about game development from people in DigiPen. Not that good of a podcast IMO. Also not updated since 2010.

https://www.digipen.edu/index.php?id=2505&type=100


Experimental Game Dev Podcast Show
Interview podcast that's more on indie devs, specifically mobile games. I don't really get much out of this podcast but maybe you'll have better luck.

http://www.indiegamepod.com/?feed=rss2





Game Developer's Radio
A podcast more on design ideas/mechanics of games. This goes more on theoretical/internalizing discussions chiefly about anecdotal experiences of the podcast's hosts. You'll probably find yourself alternating between agreeing and disagreeing with the things they say. On hiatus as of November of 2012.

http://www.gamedevradio.net/?feed=podcast


Gaming By Design
Similar to Game Developer's Radio, this podcast is more on anecdotal experiences of the hosts, discussing their opinions about various game design topics. Only went for one season by 2011, and has no updates since.

http://feeds.feedburner.com/GamingByDesign






The one thing I hate is when the podcast goes "I think players tend to like X instead of Y. Like me for example, I like X a lot. So developers should do X more." This is a narrow-minded, circle-jerk discussion that gets nowhere.



Gaming Podcasts
Gaming, not game *development* podcasts

Orange Lounge Radio
Where a straight guy, a gay guy, and a woman talk about games. Imagine Sheldon talking about videogames for about 30 minutes.

http://www.orangeloungeradio.com/index.php?option=com_podcast&view=feed&format=raw




Electric Sista Hood
Two African American gamer girls/girl gamers squee like fangirls and talk about anime and videogames. Spoiler: They don't exactly look hot. Don't Google what they look like. Instead, imagine the Jolie twins when listening to the podcast.

http://www.electricsistahood.com/category/podcast/feed/



Video Game Outsiders
Let John's devil may care attitude and Michelle's reproachful demeanor take you to places far and beyond, as long as its loosely related to videogames. Oh and Matt is now a co-host.

http://www.videogameoutsiders.com/podcast_xml.php




Mega64
Oh yes. Listen to the makers of the numerous prank videos based on videogames talk about stuff.

http://mega64.com/category/podcast/feed/





Podtoid: Destructoid's Video Game Podcast
The almighty Podtoid podcast. Hear Jim Sterling as he longs for Jonathan Holmes' cock. 'Sup Holmes!

http://podcasts.destructoid.com/rss









Other podcasts I found that I have a hunch might be useful to me as a game developer.



History Podcasts
Podcasts like these mainly give me story ideas.


Stuff You Missed In History Class
Deblina and Sarah recount various stories from history. Each episode centers on the life of a famous person, like Cynthia Ann (the American girl abducted by Indians and raised as their own), Gertrude Bell (Lawrence of Arabia's mentor), and so on.

http://www.howstuffworks.com/podcasts/stuff-you-missed-in-history-class.rss


History Extra Podcast
BBC History Magazine's editor Rob Attar doing interviews on various historians with their area of expertise. Mostly on European history. Things like the cadaver trade, evolution of maps over time, the jujitsu suffragettes, et al.

http://www.historyextra.com/podcast/historypodcast.xml


Dan Carlin's Hardcore History
Dan's powerful emotive voice narrates pieces of history in certain point of views that you wouldn't have thought of.

http://feeds.feedburner.com/dancarlin/history?format=xml


Binge Thinking History Podcast: http://bingethinkinghistory.libsyn.com/rss

Military History Podcast: http://geo47.libsyn.com/rss

All Things Medieval: http://allthingsmedievalpodcast.blogspot.com/feeds/posts/default?alt=rss

Medieval Podcast: http://feeds.feedburner.com/MedievalPodcast

A Short History of Japan: http://frug.podbean.com/feed

Celtic Myth Podshow: http://feeds.feedburner.com/CelticMythPodshow

RTÉ - Conspiracy Podcast: http://www.rte.ie/radio1/podcast/podcast_conspiracy.xml


Others

The Moth Podcast
Powerful, moving stories from ordinary people set upon unordinary circumstances. This podcast always brightens my day.

http://feeds.themoth.org/themothpodcast


Stuff Mom Never Told You
A female perspective on issues like gender and health. You girls will love this.

http://www.howstuffworks.com/podcasts/stuff-mom-never-told-you.rss


Stuff To Blow Your Mind: http://www.howstuffworks.com/podcasts/stuff-to-blow-your-mind.rss
TechStuff: http://www.howstuffworks.com/podcasts/techstuff.rss
The Skeptic's Guide to the Universe: http://www.theskepticsguide.org/feed/rss.aspx?feed=5x5
Night's Knights: A novel about vampires. http://www.podiobooks.com/title/nights-knights/feed/
Knights of the Night Actual Play Podcast: A tabletop RPG play session turned into a podcast. http://kotnwod.libsyn.com/rss


In addition, here are video podcasts that I subscribe to on my Android tablet:

Gaming Video Podcasts

Good Game: Hex and Bajo gives you game reviews and interviews, with Goose occasionally giving you a bonus game review or perhaps an enlightening presentation of some sort. Each episode is about 30 minutes long. http://abc.net.au/tv/goodgame/video/vodcast/goodgame_mp4.xml

X-Play's Video Podcast: Various small parts of the T.V. show X-Play, spliced and served here for your podcasting pleasure. http://www.g4tv.com/xplay/podcasts/6/XPlay_Daily_Video_Podcast.xml

G4TV.com Web Shows: Same thing but on various shows like Attack of the Show, The MMO Report, etc. http://www.g4tv.com/10play/podcasts/56/G4TVdotcomWebShows.xml

The DTOID Show: Quick five minute news on the games industry. http://revision3.com/destructoid/feed/MP4-Large

Tuesday, December 20, 2011

Backup Tool for Unity non-Pro, Areca Backup For Mac

I found this nifty tool called Areca Backup that does differential/incremental backups. I haven't used it extensively yet, but I'm hoping it plays nicer with Unity non-Pro than SVN does. It doesn't keep metadata on each folder like SVN, so it won't mess up if Unity messes with the file organization.

But because of that, it can't track changes between file moves. It can't even track changes anymore if you rename the file. But the old unrenamed file is still there in the old backup entries, so if you need to get back to it you can do so.

This is slightly better than the manual method of zipping up your project everytime you want a new backup. A version control system is the most ideal but we all know its not possible with Untiy non-Pro.

https://sourceforge.net/projects/areca/

I did some few fixes to have it running on Macs: http://dl.dropbox.com/u/25260770/Areca/Areca-7.2.3.dmg

Its not perfect, it may hang when you try to exit it. But I've tested it and backing up does work properly.


At first, the backing up didn't work. It turns out the exceptions stem from the fact that Mac and Linux have different ways of showing the output of ls.

In DefaultMetaDataAccessor.java, ls -ald1 seems to print the file without any info (filenames only). I had to change it to ls -ald. Furthermore, Mac's ls prints out a file size total as its first output, so I needed to skip that if found.

There are further problems with the way the output of ls is handled. Mac's ls puts an @ sign when the file has extended attributes (ACL, etc.) and that needed to be taken into account.

Currently the program may hang when you unselect an entry at the leftmost list.

I get this:


java.lang.NullPointerException
 at com.application.areca.launcher.gui.composites.TargetTreeComposite.handleEvent(Unknown Source)
 at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
 at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)
 at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
 at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
 at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
 at org.eclipse.swt.widgets.Widget.notifyListeners(Unknown Source)
 at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
 at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
 at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
 at org.eclipse.jface.window.Window.open(Window.java:796)
 at com.application.areca.launcher.gui.MainWindow.show(Unknown Source)
 at com.application.areca.launcher.gui.Application.show(Unknown Source)
 at com.application.areca.launcher.gui.Launcher.launchImpl(Unknown Source)
 at com.myJava.system.AbstractLauncher.launch(Unknown Source)
 at com.application.areca.launcher.gui.Launcher.main(Unknown Source)
11-12-20 22:09 - ERROR
java.lang.NullPointerException
 at com.application.areca.launcher.gui.composites.TargetTreeComposite.handleEvent(Unknown Source)
 at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
 at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)
 at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
 at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
 at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
 at org.eclipse.swt.widgets.Widget.notifyListeners(Unknown Source)
 at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
 at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
 at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
 at org.eclipse.jface.window.Window.open(Window.java:796)
 at com.application.areca.launcher.gui.MainWindow.show(Unknown Source)
 at com.application.areca.launcher.gui.Application.show(Unknown Source)
 at com.application.areca.launcher.gui.Launcher.launchImpl(Unknown Source)
 at com.myJava.system.AbstractLauncher.launch(Unknown Source)
 at com.application.areca.launcher.gui.Launcher.main(Unknown Source)

Source code: http://dl.dropbox.com/u/25260770/Areca/areca-7.2.3-mac-src.zip

Monday, December 19, 2011

Collaborative Diffusion/Influence Maps For Obstacle Avoidance

There was in the Unity forums, a post asking about how to implement flanking behaviour obstacle avoidance. I took interest because I've been wondering how to do that also.

Another user posted a link to a page explaining Collaborative Diffusion. From what I understand, its like influence maps, but once an agent passes through a node, that node's influence becomes zero, signifying its impassable now that he's there.


So I tried implementing it in Unity here: http://dl.dropbox.com/u/25260770/PathfindingTest/WebPlayer.html (you'll need to install the Unity plugin for your browser).

Left click to set the new attraction point or whatever its supposed to be called.

I'm pretty sure some of my code is a bit naive. Its only in certain situations do the agents will exhibit flanking behaviour. Some agents end up stuck, and I don't like the bee-like zig-zag movement they make.

Also I think it would be better to couple this with typical A*, such that, the path created by the A*, the area of the influence map that that path takes up, will be set to zero influence. Its as if the agent will be saying "to my allies, this is the path I'll take, don't cross it, its mine only. find your own path".

Angry Birds

I overheard my father talking about how he's appreciating playing a game. I'm surprised my father is starting to understand the depth of fun and strategy to be had in playing a video game. I'm more surprised that the game he mentioned was Angry Birds.

I never payed much attention to Angry Birds because I find the basic premise of the game mechanics boring. But after overhearing my father I figured there is much thought and depth that the developers added to the game. More than what I would have considered at first draft of a design document.

It turns out each bird has special abilities. There's one that can dive, one that drops eggs as bombs, one that speeds up, and probably a bunch of other stuff that I don't know. Each bird's ability is useful in a certain situation. The blue one is suited to breaking ice as I heard. Its not simply "this bird does 25% more damage on ice objects". Its with the fact that it breaks up into three smaller birds (not sure why) and you'd have an easier time shattering through multiple layers of ice that way.

Contrast that with the last game I've released, Zombie Fields, and Angry Birds is looking like its got more strategical depth in it, disguised in a veneer of the visuals of a kid's story book.

Tuesday, September 6, 2011

About Me

I made a forum post in Unity 3d which had me going on how I started in the game industry. Here it is:
______________________________________________


Where are you coming from?

I've always wanted to make videogames ever since I was a kid seeing one for the first time when my brother showed me. Ever since, I've studied what it took to make a game so I got into programming and 3d art.

As a child, I've shown a natural inclination in art, but I also persevered with programming, and I'd say it paid off.

I would usually learn a programming language earlier than my peers in school, only to find out that what I studied was too advanced for my expected level. I remember being a freshman in highschool when two seniors were at awe when I started writing private variables and public functions in C++.

My very first game was a turn-based RPG combat in QBASIC, which I threw away because I thought it sucked. I regret doing that.

I've dabbled in other stuff over the years: sketching, 3d art, graphic design, Flash and web programming.

Game development is a very risky proposition here in my country as its not as established as other fields like advertising or information technology. Nevertheless, I always jump on the chance to go into game development because its what I love to do, stable jobs be damned.

My very first major project was an online game with Torque, and it was quite stressful being the only programmer in the team. I worked there for two years and eventually left from burnout. There was a point when I questioned myself and didn't want to do programming anymore (I thought about being a novelist), but that's all water under the bridge now. As a compromise, I'm making a videogame where I'm also writing the story.

Now I work in a start-up company making videogames hoping to establish ourselves in the local industry.

I'm also active in the Unity developer community sharing code in the wiki and forums. You can find me hanging out in the Unity IRC chat channel occasionally as AnomalusUndrdog.



Which languages are you working with in Unity?

I come from C++, so C# was a no-brainer to me, after finding out the equivalents to the STL data structures and whatnot.



What do you enjoy about using these languages in Unity?

Its what I'm used to, and no more need for pointers.



What do you find annoying?

Mostly not the language but the IDE, MonoDevelop is a weird one, double-clicking on an error doesn't focus the MonoDevelop window, its slow, and crashes sometimes. So I use Notepad++ when on a Windows machine and Unitron on Mac.

I'm mostly vexed with the fact that I can't afford Unity Pro for the foreseeable future. This has me tempted to try out UDK.

Monday, August 15, 2011

Blending Problems

So I got these indicators to know when a unit is selected or where he's going to move:


Its a projector, its not the fastest, but it looks good. Its blend equation is set right now to multiply. That's fine but:


Multiply darkens the blend, making it hard to see in dark places. So, I try an additive blend:


So that looks better. Only it does the opposite: in bright areas, its hard to see:


More so in very bright areas:


So in the end, I am forced to use a normal alpha-blend equation. It looks plain, but is sure to be visible in both bright and dark areas:



Unfortunately, you can't emulate the blend types in Photoshop like Overlay, because blending equations in videocards are fixed-function.

Here's the Unity shaderlab code for alpha-blended projectors:

Shader "Projector/Diffuse" {
	Properties {
		_Color ("Main Color", Color) = (1,1,1,1)
		_ShadowTex ("Cookie", 2D) = "" { TexGen ObjectLinear }
	}
	Subshader {
		Tags { "RenderType"="Transparent"  "Queue"="Transparent"}
		Pass {

			ZWrite off
			Fog { Color (0, 0, 0) }
			Color [_Color]
			ColorMask RGB
			Offset -1, -1

			Blend SrcAlpha OneMinusSrcAlpha

CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma fragmentoption ARB_fog_exp2
#pragma fragmentoption ARB_precision_hint_fastest

#include "UnityCG.cginc"

sampler2D _ShadowTex;
float4x4 _Projector;
fixed4 _Color;

struct v2f {
	float4 vertex : SV_POSITION;
	float4 texcoord : TEXCOORD0;
};

v2f vert (appdata_tan v)
{
	v2f o;
	o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
	o.texcoord = mul(_Projector, v.vertex);
	return o;
}

half4 frag (v2f i) : COLOR
{
	return tex2Dproj(_ShadowTex, UNITY_PROJ_COORD(i.texcoord)) * _Color;
}
ENDCG
		}
	}
}

Wednesday, August 10, 2011

MeleeWeaponTrail: Another Unity Asset Store Submission

This is my second Unity Asset Store submission, a weapon trail effect for your character attacks. Props go to Forest Johnson (Yoggy) and xyber for the original code.



You can find the wiki page here: http://unifycommunity.com/wiki/index.php?title=MeleeWeaponTrail

UPDATE: Asset Store submission accepted! http://u3d.as/content/anomalous-underdog/melee-weapon-trail/2ck

Web build demo here: http://dl.dropbox.com/u/25260770/MeleeWeaponTrailDemo/WebPlayer.html