Kotaku had an interesting article about how user-created content has started to supplant studio-created content. The gist is that creating content by artists and developers takes waaaay too long... and studios are starting to come up with creative ways to get around the issue. Procedurally generated content is one solution - but another approach is to make content generation part of the game.
Second Life is the gold standard of this approach. It's not a game per se - it's a world where users can create whatever they want and make their world whatever they wish. The Sims did this somewhat, although the content is largely generated from the mod community rather than making it an in-game mechanic.
Spore is supposed to really take advantage of both user-generated and procedurally generated content. By creating your own... whatevers... that evolve into something on micro and macro scales.
Now that Linden Lab has released an alpha build of their Linux client long at last... it looks like I'm going to have to check out this trend first hand.
There goes the last of my productivity...
Thursday, March 09, 2006
Wednesday, March 01, 2006
Just One Small Tweak...
Blech. So I was working on finishing my ConsultComm changes in January, then had to pass out for a LOOOOOOOOOOOOONG while. Now I try to pick them back up and - presto - I'm starting to get into scope creep.
I'm just trying to fix a few final bugs, but then blammo NetBeans 5.0 comes out, along with a new Swing layout that actually makes sense. So I upgrade and start tweaking form layouts. Then blammo, SourceForge launches its subversion service, and I feel compelled to migrate. Then blammo, someone I know gets an OS X machine, so I can finally test OS X Java packages.
Sooo... now I went from fixing two bugs to overhauling the project. Again. Basically every major revision of ConsultComm has come from me putting the project off to the side, someone giving a really good suggestion, picking up development again just to do the one last tweak, then ending up rewriting the entire ConsultComm codebase.
I haven't been coding in a quite a long time, so hopefully I can get back into the groove. I'm firing up my Groove Salad.
I'm just trying to fix a few final bugs, but then blammo NetBeans 5.0 comes out, along with a new Swing layout that actually makes sense. So I upgrade and start tweaking form layouts. Then blammo, SourceForge launches its subversion service, and I feel compelled to migrate. Then blammo, someone I know gets an OS X machine, so I can finally test OS X Java packages.
Sooo... now I went from fixing two bugs to overhauling the project. Again. Basically every major revision of ConsultComm has come from me putting the project off to the side, someone giving a really good suggestion, picking up development again just to do the one last tweak, then ending up rewriting the entire ConsultComm codebase.
I haven't been coding in a quite a long time, so hopefully I can get back into the groove. I'm firing up my Groove Salad.
Monday, February 20, 2006
Rise of the Casual (Mobile) Gamer
NPR had an interesting piece during Morning Edition about the challenges and potential of mobile gaming. They had a very critical point in the end - the same one I found impossible to surmount when doing trial J2ME development. You can develop an app just fine, but then how do you copy the freakin' bytecode to your phone?
For some people this is easy - the phone might be bluetooth or cradled and show up as a removable device. But, by and large, who is going to have a phone that can? And if it can, are they even going to bother?
I was working with a Samsung, and if I wanted to do some file transfers I'd have to find some weird USB data transfer cable from some off-shoot accessory dealer. And even then there's no guarantee - a consumer phone isn't made to have an easily-writable file system.
The alternative is to send files via SMS or the cellular network. This is also the most sensible way for casual users to get files... but do you always send via SMS? Does your carrier charge per kilobyte? In the end, it's still a pain in the butt.
This is on top of the per-handset incompatiblities and problems with event handling, like what Carmack found when he first started to dabble in J2ME gaming.
Casual and J2ME gaming has great potential - and a potentially HUGE market. But first it has to be easy to jump into, for developers but more importantly for consumers.
For some people this is easy - the phone might be bluetooth or cradled and show up as a removable device. But, by and large, who is going to have a phone that can? And if it can, are they even going to bother?
I was working with a Samsung, and if I wanted to do some file transfers I'd have to find some weird USB data transfer cable from some off-shoot accessory dealer. And even then there's no guarantee - a consumer phone isn't made to have an easily-writable file system.
The alternative is to send files via SMS or the cellular network. This is also the most sensible way for casual users to get files... but do you always send via SMS? Does your carrier charge per kilobyte? In the end, it's still a pain in the butt.
This is on top of the per-handset incompatiblities and problems with event handling, like what Carmack found when he first started to dabble in J2ME gaming.
Casual and J2ME gaming has great potential - and a potentially HUGE market. But first it has to be easy to jump into, for developers but more importantly for consumers.
Wednesday, February 08, 2006
Addicting... For No Reason
Why the freak can't I stop playing this? Is it even really "playing?" More "dorking around with some particle algorithm?"
The original "World of Sand" is posted on someone's blog, but was redone at a larger size & colocated at http://chir.ag/stuff/sand/.
I attempted to find out where the original poster got the game, but Google's translation mechanisms leave something to be desired. Among the translated comments:
"Sentence of letter non-commutative field of stain coming When please insert the bomb that it hits against the fire, the kind of explosive which explodes we ask"
"When to lick the lottery or stick human can be killed with this function, pleasantly so."
"It increased in the enormous pleasure. Don't you think? good ッス petroleum W Furthermore still the element increases, because it is is, it is the pleasure.
Unless you must surround either side, as for, being a little sad, (no Please persevere even from now on."
"When you burn the slug with the water, in the picture イッパイ The fighting spirit which < burns! Slug you! > The ネ which becomes"
The original "World of Sand" is posted on someone's blog, but was redone at a larger size & colocated at http://chir.ag/stuff/sand/.
I attempted to find out where the original poster got the game, but Google's translation mechanisms leave something to be desired. Among the translated comments:
"Sentence of letter non-commutative field of stain coming When please insert the bomb that it hits against the fire, the kind of explosive which explodes we ask"
"When to lick the lottery or stick human can be killed with this function, pleasantly so."
"It increased in the enormous pleasure. Don't you think? good ッス petroleum W Furthermore still the element increases, because it is is, it is the pleasure.
Unless you must surround either side, as for, being a little sad, (no Please persevere even from now on."
"When you burn the slug with the water, in the picture イッパイ The fighting spirit which < burns! Slug you! > The ネ which becomes"
Sunday, February 05, 2006
Invisible Currency
I manage a team... kinda... that writes e-Commerce applications.
Can I call them something other than e-Commerce applications? I hate that name. It's a crapton of sites that sells stuff. Umm... online storefronts. Yeah. That's what I'll call them.
Anyways, I've always resisted integrating Paypal into our checkout process, mainly because of a) fraud issues b) liability issues and c) I'm busy doing other nonsense, like AJAX. I never saw it as necessary... I mean, who pays out of their Paypal account? No one. They transfer the cash to a checking account then use it from there. Right?
Well... I gotta confess... I paid for something out of my Paypal account. Someone donated something to my pet open-source project, which made me as giddy as a schoolgirl. But I didn't use the donation for anything.
Then I found out that The Office was available via iTunes. I had a steaming resentment in my belly that I hadn't seen any episodes from season 2, so I took a peek at what I could buy.
Whaddaya know... iTunes just recently added Paypal as a payment option. And I had a balance. And I had a burning in my loins to pay a deuce and watch an Office episode. So I transferred money from some stranger via another stranger to a third stranger... and was watching my beautiful episode in a few minutes.
I guess there is a use for Paypal after all. For those of us with less money in Paypal than under our couch cushion, maybe random transfers like these actually make sense.
Can I call them something other than e-Commerce applications? I hate that name. It's a crapton of sites that sells stuff. Umm... online storefronts. Yeah. That's what I'll call them.
Anyways, I've always resisted integrating Paypal into our checkout process, mainly because of a) fraud issues b) liability issues and c) I'm busy doing other nonsense, like AJAX. I never saw it as necessary... I mean, who pays out of their Paypal account? No one. They transfer the cash to a checking account then use it from there. Right?
Well... I gotta confess... I paid for something out of my Paypal account. Someone donated something to my pet open-source project, which made me as giddy as a schoolgirl. But I didn't use the donation for anything.
Then I found out that The Office was available via iTunes. I had a steaming resentment in my belly that I hadn't seen any episodes from season 2, so I took a peek at what I could buy.
Whaddaya know... iTunes just recently added Paypal as a payment option. And I had a balance. And I had a burning in my loins to pay a deuce and watch an Office episode. So I transferred money from some stranger via another stranger to a third stranger... and was watching my beautiful episode in a few minutes.
I guess there is a use for Paypal after all. For those of us with less money in Paypal than under our couch cushion, maybe random transfers like these actually make sense.
Sunday, January 29, 2006
Woozle Wisdom
Our first job is to make this world a lot of fun to visit. It is a high energy raucous musical romp. It's a lot of silliness. It's wonderful.
However, the second thing that we're doing with this show is saying something. The show has a direction and point of view. This will be beneath the surface, and if anybody becomes very aware of it, we will have missed.
- Jim Henson, in his original sketch book where he brainstormed a show called "The Woozle World," which latter was renamed "Fraggle Rock."
Thursday, January 26, 2006
I Would Tell You, But Then I'd Get Sued
I always want to post lil' work snippets in this blog, but I can't. Not that my job is all that interesting, but weird crap that I like to bitch about to Rocky does come along. The fact is... I can't. Why? 'Cause I'll get sued.
Someone found out about my unfortunately brief work with PlaneShift (motto: "Will someone get rid of that freaking Flash animation!") and then found out my handle. So it wouldn't be a big stretch to see them finding my blog. And then for it to show up in our proxy server logs. And then for someone to get cheesed at me (again). Then find ammo to arm an exec with. Then down I go.
For example: one local legal council to businesses advertises on NPR that "blogs can create a host of legal problems for employers." I can understand that, as these are public forums... but I don't need to give someone a reason to can my butt.
Then again, you start talking too much about your personal life and you become a target for identity theft. It happens way too easily and is way too irrevocable.
So that's one major reason I just gab about random tech stuff. It's pointless, it interests me, it bores others, and won't get me fired.
Go free press.
Someone found out about my unfortunately brief work with PlaneShift (motto: "Will someone get rid of that freaking Flash animation!") and then found out my handle. So it wouldn't be a big stretch to see them finding my blog. And then for it to show up in our proxy server logs. And then for someone to get cheesed at me (again). Then find ammo to arm an exec with. Then down I go.
For example: one local legal council to businesses advertises on NPR that "blogs can create a host of legal problems for employers." I can understand that, as these are public forums... but I don't need to give someone a reason to can my butt.
Then again, you start talking too much about your personal life and you become a target for identity theft. It happens way too easily and is way too irrevocable.
So that's one major reason I just gab about random tech stuff. It's pointless, it interests me, it bores others, and won't get me fired.
Go free press.
Thursday, January 19, 2006
A Pixel Named Gobo
I received a beautiful 19" Dell LCD UltraSharp monitor as a very generous gift recently. I adore the monitor aside from one tiny thing - a pixel that has problems with blue. Its subpixel is whack... so if the pixel attempts to turn white it actually turns red, and if the pixel attempts to go black it shows green.
It's not a big deal... but because it's so bright with an opposite color and right smack-dab in the middle of the screen you can't help but notice it. I've tried everything to remedy the problem. I've run endless loops of red, green and blue video hoping that quick color changes will snap it back into place. I've tried rubbing the pixel. I've tried applying pressure with a warm cloth. Nothing.
I tried to replace it with Dell, but since it was outside of its 21-day unconditional return window, all they would give me was a reconditioned part. I initially took them up on their offer... but when it arrived it appeared to have been delivered drop-kick express. The case was cracked and couldn't be put back together, metal parts of the frame were bent, it was an early revision model and the backlight bled through.
So I've kept the original new model and have been trying to come to terms with my one stuck pixel. I think in order to come to terms with it I'll give him a name.
Looks like Gobo is here to stay.
It's not a big deal... but because it's so bright with an opposite color and right smack-dab in the middle of the screen you can't help but notice it. I've tried everything to remedy the problem. I've run endless loops of red, green and blue video hoping that quick color changes will snap it back into place. I've tried rubbing the pixel. I've tried applying pressure with a warm cloth. Nothing.
I tried to replace it with Dell, but since it was outside of its 21-day unconditional return window, all they would give me was a reconditioned part. I initially took them up on their offer... but when it arrived it appeared to have been delivered drop-kick express. The case was cracked and couldn't be put back together, metal parts of the frame were bent, it was an early revision model and the backlight bled through.
So I've kept the original new model and have been trying to come to terms with my one stuck pixel. I think in order to come to terms with it I'll give him a name.
Looks like Gobo is here to stay.
Wednesday, January 18, 2006
ConsultComm Lives Again
I actually received a donation to one of my open source projects. No joke.
Up to that point I was considering marking the project as abandoned, but now I'm picking it back up and working on a new Java 5 version and clearing my outstanding bugs list. So thanks to one user's attaboys, the project lives on.
That's kinda how development on ConsultComm has worked for me... I'll let it go for months at a time, then a user will send along a supportive e-mail or a lil' something for a pizza. After that I'll get into the code to help the user out, find a million things I'd like to do with it, then end up writing a whole new version.
So if you notice a project you really like but no one has worked on it in a while - send 'em something nice. Like cash. Or a "you are my everything" e-mail. Or kiss them on the forehead. Works wonders.
Up to that point I was considering marking the project as abandoned, but now I'm picking it back up and working on a new Java 5 version and clearing my outstanding bugs list. So thanks to one user's attaboys, the project lives on.
That's kinda how development on ConsultComm has worked for me... I'll let it go for months at a time, then a user will send along a supportive e-mail or a lil' something for a pizza. After that I'll get into the code to help the user out, find a million things I'd like to do with it, then end up writing a whole new version.
So if you notice a project you really like but no one has worked on it in a while - send 'em something nice. Like cash. Or a "you are my everything" e-mail. Or kiss them on the forehead. Works wonders.
Tuesday, January 17, 2006
I Give Too Much Credit
I gave Path of Neo waaaay too much credit in my earlier post. I thought they were going for some cool adventure-game-throwback genre in the first tutorial level... but no. They play controls just sucked. I was right - it ended up being Oni in the Matrix.
Which isn't bad - in fact the hand-to-hand mechanics were pretty well done. Animation was nicely framed... but models were hideous. I mean... abhorrently ugly. Everyone looked like they had a goiter if they bent their neck too much to the side.
The end was just as bad as the beginning. How bad you say? They played Queen's "We Are The Champions" over top of the ending film clip. Yup, that bad.
The Wachowski brothers did have an interesting little dialog towards the end that explained why the ending was designed to make absoulutely no freaking sense - which was rather humerous. There were a few good lines in the beginning - such as Neo talking about how crates all over the place are a reeeaaaal original idea.
Now on to Quake 4 and Darwinia. Thankfully both have native Linux ports... so I can stay in SuSE and game. I've been dual-booting into my wintendo for so long it's nice to be able to have such loving, generous companies that allow me to stay in my OS of choice. Thanks kids! I promise to buy a lot of impulse items from id, Raven and Introversion from now on.
Which isn't bad - in fact the hand-to-hand mechanics were pretty well done. Animation was nicely framed... but models were hideous. I mean... abhorrently ugly. Everyone looked like they had a goiter if they bent their neck too much to the side.
The end was just as bad as the beginning. How bad you say? They played Queen's "We Are The Champions" over top of the ending film clip. Yup, that bad.
The Wachowski brothers did have an interesting little dialog towards the end that explained why the ending was designed to make absoulutely no freaking sense - which was rather humerous. There were a few good lines in the beginning - such as Neo talking about how crates all over the place are a reeeaaaal original idea.
Now on to Quake 4 and Darwinia. Thankfully both have native Linux ports... so I can stay in SuSE and game. I've been dual-booting into my wintendo for so long it's nice to be able to have such loving, generous companies that allow me to stay in my OS of choice. Thanks kids! I promise to buy a lot of impulse items from id, Raven and Introversion from now on.
Saturday, December 31, 2005
Damn Kids and their CS Degrees!
Joel on Software had a nifty lil' article I dug recently. He kinda echoes my sentiments on the current crop of programmers coming out of colleges nowadays: they're more vocational than educational. Wow. That was catchy. I just thought that up!
To any point, the issue at hand is that pragmatism has seeped into colleges that keep wanting more money to give to football players. When I was completing my undergraduate degrees, a few courses were starting to teach data structures using Java instead of C++. The idea behind their reasoning is that they would have to spend less time fighting memory leaks, more time learning a language actually used in the industry and more focus on the algorithms at hand (since data structures are language-agnostic). It seems sensible to me to teach some data structure courses in Java... that way you can spend more time figuring out why a binary search tree is more efficient than a linked list.
But back in my day, we started CS 101 with freakin' Scheme. That's right. That's right. And it blew everyone's freakin' minds. Recursion vs. iteration was something that was absolutely essential to our budding brains. List manipulation was needed for us to learn how to manage memory later. And once we learned the essence of all the basic CS algorithms, we didn't need to really learn a language, we just needed to understand syntactically how a language was comprised.
Now that I actually have a "job" managing enterprise software, I'm finding that software in the corporate world doesn't need to be fast. It doesn't even need to be that correct, ultimately. It just needs to be easily mantainable. That's what the crux of enterprise software is - maintainability; so when you quit and move on the next dufus who sits in your chair can easily pick up where you left off.
And hence why all the knowledge I gained in four years is quickly evaporating from my head...
To any point, the issue at hand is that pragmatism has seeped into colleges that keep wanting more money to give to football players. When I was completing my undergraduate degrees, a few courses were starting to teach data structures using Java instead of C++. The idea behind their reasoning is that they would have to spend less time fighting memory leaks, more time learning a language actually used in the industry and more focus on the algorithms at hand (since data structures are language-agnostic). It seems sensible to me to teach some data structure courses in Java... that way you can spend more time figuring out why a binary search tree is more efficient than a linked list.
But back in my day, we started CS 101 with freakin' Scheme. That's right. That's right. And it blew everyone's freakin' minds. Recursion vs. iteration was something that was absolutely essential to our budding brains. List manipulation was needed for us to learn how to manage memory later. And once we learned the essence of all the basic CS algorithms, we didn't need to really learn a language, we just needed to understand syntactically how a language was comprised.
Now that I actually have a "job" managing enterprise software, I'm finding that software in the corporate world doesn't need to be fast. It doesn't even need to be that correct, ultimately. It just needs to be easily mantainable. That's what the crux of enterprise software is - maintainability; so when you quit and move on the next dufus who sits in your chair can easily pick up where you left off.
And hence why all the knowledge I gained in four years is quickly evaporating from my head...
Monday, December 26, 2005
Path of Whassit?
Just got Path of Neo and tried it out... yes, it's shameless merchandising. But it's fun.
It was actually ticking me off big time for the past hour... I thought this was going to be a Matrix-like twist on the third-person action genre (akin to Oni). Going into that sort of mindset the game was absolutely terrible. Controls were inconsistent, camera controls were way more than wonky, and character animation/generation was borderline awful. I think character meshes were... what... six polys?
But then it hit me. This isn't an action game. The weird play controls... the cinematics... the generic "action" button used for every damn thing... it's a freakin' adventure game.
The thought of a Matrix adventure game simply cracked me up. First off, it's been a stalling genre since Lucas Arts' release of Full Throttle or Sam & Max. To suggest that Shiny Entertainment was using the genre for a Matrix title makes a helluva lot of sense... it's just... weird in this day and age.
By the way, thanks to Bob and Chris for their feedback this week. I didn't realize people actually read this drivel ;)
It was actually ticking me off big time for the past hour... I thought this was going to be a Matrix-like twist on the third-person action genre (akin to Oni). Going into that sort of mindset the game was absolutely terrible. Controls were inconsistent, camera controls were way more than wonky, and character animation/generation was borderline awful. I think character meshes were... what... six polys?
But then it hit me. This isn't an action game. The weird play controls... the cinematics... the generic "action" button used for every damn thing... it's a freakin' adventure game.
The thought of a Matrix adventure game simply cracked me up. First off, it's been a stalling genre since Lucas Arts' release of Full Throttle or Sam & Max. To suggest that Shiny Entertainment was using the genre for a Matrix title makes a helluva lot of sense... it's just... weird in this day and age.
By the way, thanks to Bob and Chris for their feedback this week. I didn't realize people actually read this drivel ;)
Saturday, December 17, 2005
Character Generation in Blender
I just posted three new tutorials: Building Textures with GIMP which focuses on how to build textures out of repeatable patterns - perfect for texture mapping; Building a Low-Poly Character Mesh in Blender which focuses on creating a character mesh using as few polygons as possible, and Texture Mapping Character Meshes in Blender which ties the first two together.
I also found an interesting tutorial on using diffuse maps, normal mapping, height maps, specular maps to utilize CrystalSpace's parallax and specular shaders. Something I've wanted to research for a while now... I'm way behind the times when it comes to shaders. WAAAAAAAAAAY behind. Looking at what Bethesda Softworks can do in Oblivion with parallax, diffuse, specular and normal maps combined into each texture blows the mind.
The shader 3.0 spec was easy to follow... vertex processing -> primitive processing -> pixel processing. But throw in volume shaders or subsurface scattering and it starts to become more shader levels than my little brain can handle. I hardly have time to build a low poly character mesh - how the hell am I going to model its vascular system?
I also found an interesting tutorial on using diffuse maps, normal mapping, height maps, specular maps to utilize CrystalSpace's parallax and specular shaders. Something I've wanted to research for a while now... I'm way behind the times when it comes to shaders. WAAAAAAAAAAY behind. Looking at what Bethesda Softworks can do in Oblivion with parallax, diffuse, specular and normal maps combined into each texture blows the mind.
The shader 3.0 spec was easy to follow... vertex processing -> primitive processing -> pixel processing. But throw in volume shaders or subsurface scattering and it starts to become more shader levels than my little brain can handle. I hardly have time to build a low poly character mesh - how the hell am I going to model its vascular system?
Sunday, November 27, 2005
Burning Transistors
All at once, my ol' Socket A machine decided to go dark. Afterwards it could no longer boot. The mobo could POST, but the CPU never quite woke up. Although a new layer of thermal paste and reseating the heatsink might have fixed it... I wasn't able to get it to awaken.
I decided to gut the machine and go with all new gear. Gone was the ATA/166, in was the SATA WD Caviar. Gone was the GeForce 5950, in was the GeForce 7800GSX. Out was the AthlonXP 1700+ (oc'd to 2133 MHz), in was the 2GHz AMD 64. Gone was single-channel PC2700, in was dual-channel PC4000. Out with the 380W PSU, in with a modular 500W PSU.
The case and the DVD/CD drives remained, but the rest was gutted. Since I've had some fun flexing my new vertex-processing muscle. I've been able to add window transparency and drop shadowing to my WinXP and SuSE 10 desktop, thanks to the NVidia drivers, XOrg's composite extensions and KDE. I never realized how nice those lil' add-ons could be, but its quite handy.
I was also able to try out the latest NVidia tech demos, showing all the luster of real-time sub-surface scattering, volume shaders and high dynamic-range lighting. I never realized how nice volume shaders could really be - it's something I need to look into closer. This is especially nice for the low-poly meshes I make... something decidedly low-poly could look very high-poly with the right shader. Add vertex shaders for hair & fuzz, then pixel shaders for lighting and reflection and it's a great combo.
I also tried out Valve's "Lost Coast" demo, showing HDR and the glossyness of their rocks and textures. It was a fantastic demo - and definitely made a solid case for HDR.
Exploring the native 64-bit land of SuSE 10 is interesting. Now I have things actually compiled and optimized for my platform... the closest I was able to get before was a x586 package for SuSE. But with a native 64-bit OS, things are going well. The only problem I've had so far have been interfacing with the old 32-bit Macromedia Flash plugin - I had to install 32-bit browser libraries to interface with it. Other than that, however, things have been great.
Of course, rebuilding a machine, prepping for Thanksgiving and Christmas, finishing the end-of-year strong at work, wrapping up some rather large projects and taking about fifteen days of vacation in December is taking a rather large bite of time out of finishing these Crystal Space & Blender tutorials I'm still writing. Hopefully we'll see a rough draft soon.
I decided to gut the machine and go with all new gear. Gone was the ATA/166, in was the SATA WD Caviar. Gone was the GeForce 5950, in was the GeForce 7800GSX. Out was the AthlonXP 1700+ (oc'd to 2133 MHz), in was the 2GHz AMD 64. Gone was single-channel PC2700, in was dual-channel PC4000. Out with the 380W PSU, in with a modular 500W PSU.
The case and the DVD/CD drives remained, but the rest was gutted. Since I've had some fun flexing my new vertex-processing muscle. I've been able to add window transparency and drop shadowing to my WinXP and SuSE 10 desktop, thanks to the NVidia drivers, XOrg's composite extensions and KDE. I never realized how nice those lil' add-ons could be, but its quite handy.
I was also able to try out the latest NVidia tech demos, showing all the luster of real-time sub-surface scattering, volume shaders and high dynamic-range lighting. I never realized how nice volume shaders could really be - it's something I need to look into closer. This is especially nice for the low-poly meshes I make... something decidedly low-poly could look very high-poly with the right shader. Add vertex shaders for hair & fuzz, then pixel shaders for lighting and reflection and it's a great combo.
I also tried out Valve's "Lost Coast" demo, showing HDR and the glossyness of their rocks and textures. It was a fantastic demo - and definitely made a solid case for HDR.
Exploring the native 64-bit land of SuSE 10 is interesting. Now I have things actually compiled and optimized for my platform... the closest I was able to get before was a x586 package for SuSE. But with a native 64-bit OS, things are going well. The only problem I've had so far have been interfacing with the old 32-bit Macromedia Flash plugin - I had to install 32-bit browser libraries to interface with it. Other than that, however, things have been great.
Of course, rebuilding a machine, prepping for Thanksgiving and Christmas, finishing the end-of-year strong at work, wrapping up some rather large projects and taking about fifteen days of vacation in December is taking a rather large bite of time out of finishing these Crystal Space & Blender tutorials I'm still writing. Hopefully we'll see a rough draft soon.
Sunday, November 13, 2005
No.
I'm trying not to give up.
It's amazing to me how living corporate life will suck the soul straight out of you. It used to be "us versus them," where "they" were the corporate suits that governed everyone from afar. Now "they" are simply everyone else... people who learned to survive the tough times when the tech bubble burst by being cutthroat and ruthless, then never going back.
I'm tired.
My computer just died... I think the proc overheated and finally went frizzle. I've been working on tutorials for Blender and CrystalSpace, focusing this time on creating a human mesh from reference images, vertex modeling, texture mapping, rigging and finally exporting. I have finished examples for all stages and just started writing the texture mapping chapter when the whole machine went dead. It POST's to BIOS, but after that no dice. So I'm shopping on newegg.com now. I'm cringing 'cause I can't afford any of this crap... so maybe I'll just live with a 2' brick on my floor.
So... right now, if this were a Shakespearean drama we'd be in the "rising action" section. Bear in mind, this is from my own self-centered, egotistical perspective. But who knows what happens.
It's amazing to me how living corporate life will suck the soul straight out of you. It used to be "us versus them," where "they" were the corporate suits that governed everyone from afar. Now "they" are simply everyone else... people who learned to survive the tough times when the tech bubble burst by being cutthroat and ruthless, then never going back.
I'm tired.
My computer just died... I think the proc overheated and finally went frizzle. I've been working on tutorials for Blender and CrystalSpace, focusing this time on creating a human mesh from reference images, vertex modeling, texture mapping, rigging and finally exporting. I have finished examples for all stages and just started writing the texture mapping chapter when the whole machine went dead. It POST's to BIOS, but after that no dice. So I'm shopping on newegg.com now. I'm cringing 'cause I can't afford any of this crap... so maybe I'll just live with a 2' brick on my floor.
So... right now, if this were a Shakespearean drama we'd be in the "rising action" section. Bear in mind, this is from my own self-centered, egotistical perspective. But who knows what happens.
Sunday, July 24, 2005
Abandon All Hope Ye Who Enter Here
Too tired...
All projects abandoned...
Now managing a development team...
No time to code anymore...
Skills slipping away into oblivion...
All projects abandoned...
Now managing a development team...
No time to code anymore...
Skills slipping away into oblivion...
Thursday, July 14, 2005
Voice Dial VCF
I've been working with Samsung's i500 distribution of PalmOS 4.1 for a lil' while now. It's interesting coming from a PocketPC background (I've had a CE PDA since the original Casseopia, yo)... I expected PalmOS to be the more stable OS. I've already had around ten reboots coming from I/O lockups, power issues or just random occurances. It may just be the hooks that Samsung's apps have in the OS to merge the CDMA phone with the PDA hardware... I dunno.
Once nice thing is that PalmOS apps are infinitely easier to troubleshoot or reengineer. This is no doubt why things work so nicely in Linux (other than trying to get the USB tty interface working... serial I/O over USB? Wha?).
For example, I've been using the "Voice Dial" app that Samsung wrote to dial numbers using my headset. It's something you manually have to train, then it associates a record with an entry in your address book. Problem was, after my device sync'd all the voice dial associations were gone.
So I looked at the AddressDB file that the i500 had and noticed that each record had a unique ID associated with it. I took a guess that the Voice Dial app used that key to associate a voice dial entry with an AddressDB key. Looking at the actual .vcf file that was being sync'd from PalmOS onto my desktop I found there was indeed a field called
I added a lil' sed routine to my evolution-to-KDE export script that adds the field to the appropriate VCF contact records. Now that my contacts have the X-KPILOT-RecordID field the voice dial stuff stays in sync.
Once nice thing is that PalmOS apps are infinitely easier to troubleshoot or reengineer. This is no doubt why things work so nicely in Linux (other than trying to get the USB tty interface working... serial I/O over USB? Wha?).
For example, I've been using the "Voice Dial" app that Samsung wrote to dial numbers using my headset. It's something you manually have to train, then it associates a record with an entry in your address book. Problem was, after my device sync'd all the voice dial associations were gone.
So I looked at the AddressDB file that the i500 had and noticed that each record had a unique ID associated with it. I took a guess that the Voice Dial app used that key to associate a voice dial entry with an AddressDB key. Looking at the actual .vcf file that was being sync'd from PalmOS onto my desktop I found there was indeed a field called
X-KPILOT-RecordID: that was storing the record's unique ID.I added a lil' sed routine to my evolution-to-KDE export script that adds the field to the appropriate VCF contact records. Now that my contacts have the X-KPILOT-RecordID field the voice dial stuff stays in sync.
Wednesday, July 06, 2005
Entropy and Chaos
Entropy, uncertainty won't yield to you...
NeroVision Express has been aligning pixels weird in 3-5 vertical rows on the right side of my encoded MPEG2's. I haven't really noticed 'till now, but all of my 16:9 DV video is consistantly encoded with those weird aberrations. I took my occasion of feeling unsettled to try the latest version of Kino/ffmpeg/MJPEG/SuSE 9.3. I did a head-to-head comparison encoding the same AVI Type 2 DVI file with all the new stuff from SuSE, PackMan and Guru's RPM Site.
Tests were done using the default settings for a 16:9 NTSC DVD. Note that MJPEG still looks awful and blocksizes are way too big. NeroVision's encoder almost looks okay, but motion lines are rendered all over the place. ffmpeg looks good however - lines are even, things aren't harshly blocked. Bear in mind, however, that MJPEG in Kino is a single-pass encoding, while ffmpeg is a dual-pass encoding. I'm sure this is a big reason for the difference.
ffmpeg is looking much better, but I'll probably stick to NeroVision for now. Kino only processes ffmpeg files one at a time (as opposed to its MJPEG batch conversion), so doing an entire batch of AVI's has to be done manually, typing individual file names and selecting individual frame sets. I could possible write a shellscript to do what Kino does, but Kino an internal (and very nice) YUV generator which pipes output directly to ffmpeg, as opposed to creating the YUV and then processing it. For example, here's the first pass of the encoder:
ffmpeg -v 0 -f dv -i pipe: -f rawvideo -pix_fmt yuv420p pipe: -vn -f ac3 -ac 2 -ab 192 -ar 48000 -y /home/jellis/Documents/March 2005/2005.03.27_13-17-44.ac3
ffmpeg -v 0 -f rawvideo -pix_fmt yuv420p -s ntsc -r ntsc -i pipe: -an -target dvd -f mpeg1video -maxrate 8000 -ildct -ilme -aspect 16:9 -pass 1 -passlogfile /home/jellis/Documents/March 2005/2005.03.27_13-17-44 -y /home/jellis/Documents/March 2005/2005.03.27_13-17-44.m2vAnd the second pass:
ffmpeg -v 0 -f dv -i pipe: -an -f rawvideo -pix_fmt yuv420p pipe:
ffmpeg -v 0 -f rawvideo -pix_fmt yuv420p -s ntsc -r ntsc -i pipe: -an -target dvd -f mpeg1video -maxrate 8000 -ildct -ilme -aspect 16:9 -pass 2 -passlogfile /home/jellis/Documents/March 2005/2005.03.27_13-17-44 -y /home/jellis/Documents/March 2005/2005.03.27_13-17-44.m2vThen it seems to multiplex using:
mplex -f 8 -o /home/jellis/Documents/March 2005/2005.03.27_13-17-44.vob /home/jellis/Documents/March 2005/2005.03.27_13-17-44.m2v /home/jellis/Documents/March 2005/2005.03.27_13-17-44.ac3Both using internal deinterlacing (I'm guessing from the 420 progressive format it selects). Kino does this pretty well, and I might have problems trying to hack it on my own. Notice that it pipes both audio and video streams in seperately... so the source format is kind of a black box to me.
NeroVision, however, works fairly well right out of the box and will batch everything together for me automagically. I want seperate VOB's for each chunk of video sometimes, and others I want to splice them together. But most of my video should have its own VOB... something I can't very easily define in any DVD authoring or video authoring software currently available in Linux.
I'll give a quick pass at demux'ing the Type 2 AVI's and creating raw source audio/video files... I'll let you know if I figure anything out. I might just try piping
dvgrab --format raw --frames 0 --size 0 -to stdout and see how that works. dvgrab is part of the Kino project, so I'm hoping it'll be just as nice.
This latest round of entropy has killed any productivity I once had. It's frustruating, especially when I wanted to have the isometric camera for CEL done by now.
Sunday, July 03, 2005
Rise of the Casual Gamer
My wife and I are using the same PDA platform now, so I beamed her a demo copy of Bejeweled. Just as I thought - she became instantly addicted.
There's a common stereotype in the gaming community that puzzle games are the only genre that can target female gamers. But men seem to be increasingly into puzzle games - especially as they've been ported onto cell phones and distributed with PDA's. To me at least it seems that saying "women are only into puzzle games" was ignoring what the actual market was: the casual gamer.
Casual gaming has been a big topic as of late on Slashdot Games. Those kiddies addicted to Nintendo 8-bit systems in elementary schools are now parents working 50 hour work weeks and coaching soccer teams, so they don't have time to become an uber-leveled avatar in an MMORPG.
The BBC had an article about women becoming an emerging market in gaming where it sounds like the industry just isn't getting that point. Ernest Adams of the IGDA even said:
No, that's anyone who just doesn't have the time. The article also states:
It seems like Guild Wars gets this point - where you don't have to be an addict to justify subscription costs and it doesn't take 30+ hours a week to ascend to playable experience levels. As target audiences get older and time becomes more precious, people will find out that the "casual gaming audience" is much bigger than they thought - and not just limited to a stereotypical view of women.
There's a common stereotype in the gaming community that puzzle games are the only genre that can target female gamers. But men seem to be increasingly into puzzle games - especially as they've been ported onto cell phones and distributed with PDA's. To me at least it seems that saying "women are only into puzzle games" was ignoring what the actual market was: the casual gamer.
Casual gaming has been a big topic as of late on Slashdot Games. Those kiddies addicted to Nintendo 8-bit systems in elementary schools are now parents working 50 hour work weeks and coaching soccer teams, so they don't have time to become an uber-leveled avatar in an MMORPG.
The BBC had an article about women becoming an emerging market in gaming where it sounds like the industry just isn't getting that point. Ernest Adams of the IGDA even said:
Women don't have free time even to set up a game. They require a game that is quick to get into and doesn't require a great time commitment,
No, that's anyone who just doesn't have the time. The article also states:
The so-called casual gaming market, made up of games such as poker, pool, bridge, bingo and puzzles, is a booming one, especially among women.
It seems like Guild Wars gets this point - where you don't have to be an addict to justify subscription costs and it doesn't take 30+ hours a week to ascend to playable experience levels. As target audiences get older and time becomes more precious, people will find out that the "casual gaming audience" is much bigger than they thought - and not just limited to a stereotypical view of women.
Saturday, July 02, 2005
Chaos Ensues
Considering I just rendered useless my PDA and my cell phone and my USB key recently, I swapped them out with a Samsung i500. Works great, aside from the LOUD, EAR PIERCING SCREECHES THAT EMANATE FROM IT WHENEVER IT RINGS. That's slightly annoying. Hopefully Fry's will do a quick exchange and I'll have my carrier switch my account... again.
One big problem was figuring out what @#$&*! tty to use. There are several USB tty's in SuSE's /dev system... /dev/ttyUSB, /dev/usb/ttyUSB, etc. Finally figured out that /dev/usb/ttyUSB1 was the one I wanted for cradle sync's. I hacked with syncing via IrDA for a while - the kernel module kept returning I/O errors until I realized how stupid I was and the Ir port was disabled in my laptop's BIOS. D'oh. Enabled that and /dev/ircomm0 worked great, albeit sloooooow.
It sync's with Linux nicely, however. The lovely people and Ximian made the good move with storing their calendar information for both Exchange (cached) and locally to use ICS file formats, so I can easily concatenate Exchange and local to-do lists and calendar items into a single file. Very nice! There's a very nice command-line exporter for the address book - I have it converting both local and Exchange contacts into a combined VCF file, which worked nicely. Now KPilot just syncs a simple .ics and .vcf file with minimal fuss.
For example, to move all my files together for sync'ing all I need to do is:
So... I've got a defective i500. But at least I had it as a proof of concept.
The nice thing is now I have a cell phone that I can develop on. Mebbe I should use PalmOS for game development instead of the freakin' J2ME stuff I couldn't even deploy. I wonder how big PalmOS' market share is... including both PDA and smartphone sales. According to WindowsForDevices.com, it sits at 40.7% including cellular PDA's such the BlackBerry, but not smartphones or Handsprings. Windows is gaining at 40.2% while PalmOS is declining, but it's still a much more level playing field than I expected.
One big problem was figuring out what @#$&*! tty to use. There are several USB tty's in SuSE's /dev system... /dev/ttyUSB, /dev/usb/ttyUSB, etc. Finally figured out that /dev/usb/ttyUSB1 was the one I wanted for cradle sync's. I hacked with syncing via IrDA for a while - the kernel module kept returning I/O errors until I realized how stupid I was and the Ir port was disabled in my laptop's BIOS. D'oh. Enabled that and /dev/ircomm0 worked great, albeit sloooooow.
It sync's with Linux nicely, however. The lovely people and Ximian made the good move with storing their calendar information for both Exchange (cached) and locally to use ICS file formats, so I can easily concatenate Exchange and local to-do lists and calendar items into a single file. Very nice! There's a very nice command-line exporter for the address book - I have it converting both local and Exchange contacts into a combined VCF file, which worked nicely. Now KPilot just syncs a simple .ics and .vcf file with minimal fuss.
For example, to move all my files together for sync'ing all I need to do is:
# Export contacts from local store
$EVOLUTION_BIN/evolution-addressbook-export file://$EVOLUTION_DIR/addressbook/local/system > $KABC_FILE
$EVOLUTION_BIN/evolution-addressbook-export exchange://$EXCHANGE_USER/personal/Contacts >> $KABC_FILE
# Move over tasks from Exchange cache & local store
cat $EVOLUTION_DIR/exchange/$EXCHANGE_USER/personal/subfolders/Tasks/cache.ics > $KORGANIZER_FILE
cat $EVOLUTION_DIR/tasks/local/system/tasks.ics >> $KORGANIZER_FILE
# Move over calendar from Exchange cache & local store
cat $EVOLUTION_DIR/exchange/$EXCHANGE_USER/personal/subfolders/Calendar/cache.ics >> $KORGANIZER_FILE
cat $EVOLUTION_DIR/calendar/local/system/calendar.ics >> $KORGANIZER_FILE
So... I've got a defective i500. But at least I had it as a proof of concept.
The nice thing is now I have a cell phone that I can develop on. Mebbe I should use PalmOS for game development instead of the freakin' J2ME stuff I couldn't even deploy. I wonder how big PalmOS' market share is... including both PDA and smartphone sales. According to WindowsForDevices.com, it sits at 40.7% including cellular PDA's such the BlackBerry, but not smartphones or Handsprings. Windows is gaining at 40.2% while PalmOS is declining, but it's still a much more level playing field than I expected.
Subscribe to:
Posts (Atom)