Archive for July, 2009
This week on twitter – 2009-07-26
- License renewed, registration renewed, DMV change of address, car title fully in my name and it's not even 3pm. I'm glad my chores are done. #
- I spent last night drinking and debugging. Good times. This morning I had to make some corrections to my patch though. Not so good times. #
- Woohoo speeding ticket! 42 in a 25 that I honestly thought was a 35. I never speed anymore, not since my prior speeding ticket. #
- the word 'gameplay' – why I hate it : "its funny they didn't touch on why spore is dead..because it lacked any real gameplay and content.." #
- I've gotta find out how to get an invitation to Wave. If only I had already established myself as a developer… well, I have a bit of time. #
- I've now tried encoding this same video (which runs fine on my computer) in several MP4 codecs – not working. Why do electronics hate me? #
- I'm having a hell of a time getting my Walkman to play any video. It supposedly supports MP4, but the files are getting corrupted somewhere. #
- Does anyone know where I can download (not stream) the full Google Wave video? The one that is more than an hour long. #googlewave #
- AC leak right outside of my office. It is directly above the doorway. Can't really leave my office without getting dripped on. #
- With a few exceptions, this generation has been a shitty one for RPGs. Valkyria Chronicles is the only true standout title from the three. #
Powered by Twitter Tools.
Dead Space – Final Impressions
Sitting somewhere at the crossroads of System Shock 2, Resident Evil 4 and Metroid Prime is Dead Space – a dark sci-fi shooter that clocks in at a perfect 12 hours, which is just about the point that I am ready to call the game completed. Dead Space takes the third person perspective and controls of Resident Evil 4, the setting and basic story premises of System Shock 2 and the UI of Metroid Prime and creates a very well balanced blend that is a fantastic game from start to finish.
In Dead Space, you play as Isaac, fighting your way through a derelict mining station, fending off the infected crew members and trying to make sense of what happened, while trying to stay alive. The infected crew members will take many forms, but all can be blown away through the weapons that you find and buy. The weapon variety is pretty good, but I did feel that most of the weapons weren’t really that effective – the only weapons I consistently used from start to finish were the Plasma Cutter and Line Gun. The Flamethrower, Pulse Rifle and others were only useful in a pinch, which most often happened when I found myself out of ammo for my preferred guns.
Throughout the game, you can upgrade these weapons through an interesting, yet annoying, interface. You find power nodes that you use at work benches to upgrade your gear. Each item (which includes your special modules and armor suit) has a grid based system, with many nodes representing an upgrade to the item’s armor, damage, capacity, duration, health or other appropriate statistics. As you unlock nodes, more nodes become available. However, due to the layout of the grids, there was little advantage in taking certain routes, as it all intermingles frequently. There is no ‘high damage’ route or ‘high capacity’ route for weapons. The most annoying thing about this whole system is how many nodes simply do nothing but unlock other nodes. I often found myself in a position where I had to waste a node just so the next node would be useful.
The story is told through audio logs, text logs and video logs that you find scattered about, along with cut scenes that you can witness, Half-Life style. These logs do a good job of conveying the events that lead up to the infection, and the cut scenes that you are involved in do a good job of showing events that you go through. Very, very rarely do you lose control of the character, which was a good move on the developer’s part. The story is decent to slightly better than decent throughout most of the game, with an odd, but not in a good way, sequence of events at the end. Luckily, the story was not why I was still playing, so I could happily not care less about that weird shift.
The reason I was still playing was the solid controls and camera – which is the reason I continue playing most games that I enjoy. My initial thought on the camera was not good, but once I got used to it, it became just an extension of me, which is just the way I like it. I don’t like playing a game where I find myself fighting the camera or the character to get my command to be recognized properly, and after about an hour, Dead Space felt great. When I told Isaac to aim and shoot, he aimed and shot. When I told the camera to spin right or go up, it went where I told it. In addition to that, there is a brilliant waypoint system in this game that I fully encourage other developers to steal. Simply push in the right thumb stick, and a glowing blue line guides you to your next location. This game is not about exploration or puzzle solving, so this mechanic kept the game moving in the direction it should go – straight to the next combat. The only time the controls ever got a bit wonky was during the zero gravity scenes. You aimed in a certain direction and hit Y to jump, and once you landed, your sense of orientation gets pretty quickly messed up. “The enemy’s gate is down,” indeed.
My biggest complaint with the game lies in the enemy AI. They are brainless and only difficult because you have to aim for the limbs. The ‘aim for the limbs’ concept is pretty aggravating. When an enemy is moving fast with narrow limbs flailing about, and the only way I can do appreciable damage is to dismember a limb, I feel cheated. It feels like a complete artificial difficulty boost. Rather than making the AI smarter or doing something that makes sense, biologically, it is a very artificial difficulty that I could have done without.
In the end, I really enjoyed the game. The 12 hour mark was a great time to end the game, and I actually considered playing a second time through. You end the game with only one or two weapons actually boosted up to significant power, so running through a second time would give me a chance to boost the power on other weapons and hopefully make them viable. With solid controls and camera, a decent story and waypoint system that keeps the action flowing, I would recommend Dead Space. The similarities to System Shock 2 are a bit overwhelming, but not in a bad way, as I feel it does stand on its own as a good game.
This week on twitter – 2009-07-19
- I'm about to play Star Ocean IV some more. I don't know why. I hated this game. I just want something I can really dig into. #
- just checked my email – turns out #bluehost is doing scheduled updates. so, not a crash like last time. all is well. #
- My site is down again. This is twice this week that #bluehost has dropped on me. Prior to this, they were great… this better stop, soon. #
- I'm trying to restyle the DOMi main page. This thing is ugly, but I'm so bad at this kinda stuff. I'm a coder, not a designer – not anymore. #
- I am so in love with Virtual Machines – it makes my life so much easier. It certainly helps that my computer has the guts to run 6 at once. #
- #DOMi downloads are way up ever since 1.1 released. It's still less than 20 per day, but that is a boost. Now for some feedback. #PHP #XSL #
- This show Catch It Keep It is awful. The hosts suck and it is just sad how willing they are to destroy perfectly good objects for ratings. #
- does anyone know where this #quote is from – it is about being in prison for life for setting your house on fire with your wife in it #
- I finally got a new mp3 player – Sony Walkman E438. I'm glad I have freedom over my devices. Fuck you Apple. I'll never give you money. #
- I released #DOMi 1.1 today. All of you #XSL and #PHP developers should check it out. It is completely cleaned up. http://bit.ly/q52d6 #
- #bluehost is back up. they barely avoiding becoming a trending topic on twitter. #
- #bluehost is down. this sucks. i just posted a link to one of my articles on a wordpress support form. laaaaame #
- I now have a second reason to buy a PSP, after Metal Gear Solid: Peace Walker – Valkyria Chronicles 2. http://bit.ly/CV54b #
- attn #allinoneseo – learn to fucking beta test. an update a day keeps the user away, and now i am sure as hell not donating to you. #
- Ah – they joys of unit testing. I'm writing up my first one for DOMi. I found a decent article on how to write them. http://bit.ly/14yE3g #
- I have come to the conclusion that I simply do not enjoy most lagers. I prefer the sweeter taste of an ale to the bitter finish of a lager. #
- I had a great climb today after work. I took down a new V1+. It was a bit easy for a V1+, though. I also fully conquered the pink invert V0. #
Powered by Twitter Tools.
Debugging is a hell of a drug
Posted by visual77 in programming on July 18, 2009
Lately, I’ve been spending some time on the WordPress support forums just helping debug issues. I don’t really know much about WordPress, but nothing makes you learn the ins and outs of a system like isolating and fixing bugs. I set up a new WordPress site on one of my virtual machines just to do these tests. If I trash it too much while debugging, I can always just scrap and start over and get myself cleaned up again.
While setting up this new WordPress site, I somehow managed to trigger the no credentials updating system that visual77.com and septuro.com use, but I’m not sure how I did that. Whenever you update or install a plugin, it often asks for FTP / SSH credentials to transfer the data, but neither visual77.com nor septuro.com require credentials. Every other WordPress site I have set up does require credentials – but this test bed does not. It may be a permissions issue, and since this test site is 0777 for everything, I have sufficient permissions. I’d never set a live site to 0777 for everything, but since it is on a virtual machine that is inaccessible outside of my network, it’s safe to do that.
I’m having a good time on the WordPress support forums with these bugs – anything I can replicate, I can fix. Much of my early PHP days was just based on trying to make small tweaks to PHPNuke, and that helped me learn much more rapidly than some boring tutorials or bullshit code exercises. I learn by doing, and doing stuff on fully built systems is my favorite way to understand the system. At this rate, I’ll know WordPress as well as the creators within a month and I can start debugging WordPress core bugs.
This week on twitter – 2009-07-12
- I just got back from Red Rock Canyon; I went climbing. Outdoor climbing is a very different experience, but very fun. I will do it again. #
- this is very weird – i'm holding 2 conversations via text message. i don't think i've ever held 1 before now. i hate phones. #
- yay flat tire fix! actually, replaced. the puncture was on the sidewall. #
- I hate sales people. Too often I have to waste time proving that my intranet works fine and they forgot to submit their end of day report. #
- yay flat tire! #
- when i'm feeling down, i go read the craigslist rants and raves section. it always makes me feel better to know i'm not one of them. #
- i just recently realized that i think WordPress.org is a perfect example of how to do open source the right way. #
- google chrome OS – definitely going to have to VM that one it's available. #
- when did the history channel go from historical fact to wild conspiracy theories? this show on the uss eldrige is crap and portrayed as true #
- i'm not entirely sure how i feel about mandatory downloads for a single player game… disgaea 3 is forcing me to download something big… #
- i've painted myself into a corner of incredibly inefficient code… my attempt to use memcache to speed parts up actually slowed it down… #
- i conquered the pink inverted v0 on the third floor finally. that thing is way too hard to be a legit v0… it's harder than a few v1s there #
- i finally got a resident sticker for my car. i lost my old one when i was told it was expired and had to be removed. no more waiting in line #
- in less than 2 days, i got every achievement on Gunstar Heroes for XBLA. i know this game way too well. #
Powered by Twitter Tools.
Dead Space – second impressions
In my first impressions of Dead Space, I was not thrilled with what seemed to be an overly heavy System Shock 2 influence. Now that I’ve put more time into it (around 6 hours at this point), Dead Space has come into its own and that influence, while still there, is no longer overbearing and bordering the rip-off category. In fact, many of the complaints I had during my first impressions (stasis module feeling out of place, upgrade system feeling out of place, lack of horror elements, nothing really original) aren’t completely valid anymore. While I still agree on all of those points, they have taken the back burner to what has shaped up to be a solid third person shooter.
At this point, the game feels somewhat like Resident Evil 4 meets System Shock 2 meets Metroid Prime. It is a good blend of three games I highly enjoyed – the controls and camera of Resident Evil 4, the setting of System Shock 2 and the combat speed and minimalistic UI of Metroid Prime. While it retains none of the horror of Resident Evil 4 or System Shock 2, I no longer feel like the game is trying to scare me.
The controls felt quite solid after about an hour, and now they feel nice and fluid. It doesn’t try to do a complex control scheme, and by keeping the scope minimal and focusing on getting each aspect right, they left you with a game where I really feel in control of my character. I’ve not had an incident since the first thirty minutes where I felt like I was fighting to get my character or camera into the position I wanted, which lets me just focus on moving around, taking aim, and fighting enemies.
The combat is still a bit on the frustrating side. At times, I feel like I am simply overwhelmed by enemies and my biggest adversary is simply moving the reticule into place to fire at an enemy – but I can only deal significant damage if I target the limbs. In a frenetic battle, I’ll often miss several shots, wasting precious times, and get overwhelmed due to this artificial difficulty booster of forcing me to aim for the limbs. That difficulty is magnified with the pretty useless weapon selection. I have four weapons at the moment – Plasma Cutter, Line Gun, Flamethrower, Pulse Rifle – and only the first two of those are even moderately usable. The flamethrower seems to do incredibly little damage, and the precision of the pulse rifle makes hitting flailing limbs almost impossible. The plasma cutter and line gun have a very wide blade they fire, which makes it easier to hit flailing limbs, and I just switch back and forth depending on how quickly I need to kill a target. I prefer the plasma cutter most of the time, but mainly use line gun against multiple targets, since the particularly wide blade lets me often take down two limbs at a time.
The infected mining station concept does feel a bit stale, but not overtly so – and I’m giving it some credit considering I played inFAMOUS and Prototype just prior to Dead Space, and both are infection stories that released after Dead Space. This infection story is pretty generic – still very reminiscent of System Shock 2, but it is enjoyable enough that I do pick up audio logs whenever I see them. Had they forced me to watch a ton of cutscenes where I lose control of the character, I’m sure I would’ve stopped playing by now. They did a good thing in never taking control of the character from you, in the same way that Half-Life did.
I am enjoying this game, and due to the short length (which I fully appreciate) I may even finish it (a rare event). I’m interested enough in the story to keep going, but not interested enough to watch cutscenes. As long as they let me keep control at all times, they can keep me to the end. I just wish I could get a better weapon, preferably something that can do significant damage with a body shot.
Dead Space – first impressions
I recently got my hands on a copy of Dead Space and have put a little less than an hour into the game, and am coming away with really mixed thoughts. When I first popped the game in and toyed with the opening menus, I was immediately reminded of Metroid Prime with the menu style and design choices. I started up a game on medium and after the opening scene I was ready to begin my journey through Dead Space. Before my hour was up, not only did I feel that Metroid Prime influenced the menu style, but I feel the game was extremely heavily influenced by System Shock 2 – almost a bit too much.
I really like the UI and think EA did a great job at coming up with a creative UI that I had not scene before. In one sense, there is absolutely no UI, but you still manage to get all of the information that you need. All of the popup menus are displayed as a hologram infront of the character, so there is nothing showing up that you see as a player, but your character would not be seeing. It makes the HUD feel minimalistic, yet thorough, which I dig.
The camera bothered me at first, but I think that may have been due to the very close in environment that you start in, and once you leave the crashed ship and get into the mining facility, it eases up a bit and by the time I put the game down after an hour, the camera and controls felt solid, if generic.
The most major thing that is detracting from the game for me is the ‘aim for the limbs’ tactic you have to employ against enemies. As a game that skims the survival horror genre, Dead Space uses enemy combat as a fear factor, and ensures the fights are difficult to keep them scary. I, for one, am not scared by this game in the slightest, and feel that the ‘aim for the limbs’ tactic is an incredibly cheap way of artificially hardening the game. Rather than making a smarter AI, they just make it harder to kill by having you aim for the limbs.
The last thing that I noticed during my initial hour on this game was the disconnected feel between certain elements and the game as a whole. For instance, the game as a whole is a high tech shooter, but the stasis module feels very different and feels more like magic than technology. With not even the slightest attempt to explain why, I am simply led to believe that this stasis module can slow down time on any object it connects with. My suspension of disbelief is strained a bit every time I fire this weapon. It is also strained by the ‘aim for the limbs’ tactic, since that defies basic biology, and the weapon upgrade system. That weapon upgrade system behaves like the sphere grid from Final Fantasy X, an unabashed fantasy RPG. It almost feels like it’s not sure what it wants to be and just slaps together elements from other games.
My final thoughts at this time are that this game is a pretty generic shooter that just stole formula elements from other games and mashed them together. The mashup is a fairly seamless one, but the lack of anything original and new (except maybe the UI, unless I just skipped whichever game it stole that from) feels like true EA.
PHP convert object to array
Posted by visual77 in programming on July 10, 2009
Update: I have since revised this function, you can find the newer version in my Revised convertObjectToArray function for PHP article.
I’ve been working these past few days on speeding up the DOMi object, which is one of the major open source tools I’ve been heavily involved in. This object is a blend of DOMDocument, DOMXpath and XSLTProcessor, with a focus on XSLT driven PHP sites and tools for rapidly converting PHP datatypes into XML trees. This object is the core of the Septuro framework that I’m also involved with, and the DOMi object has grown pretty gnarly over the past year.
I’ve managed to slim down the function from 1200 lines to 200 lines, and decrease processing time by about 33%, but one little piece of it is still a challenge – converting an object to array and keep the private and protected properties intact. Right now, the function I have does it just fine, but private and protected properties getting their names kinda messed up, and I’m trying to find the easiest way to correct it, without costing processing time.
At the moment, here is my function:
<?php
function ConvertObjectToArray(&$Object) {
if(is_object($Object)) {
$Object = (array)$Object;
array_walk_recursive($Object, 'ConvertObjectToArray');
}
return $Object;
}
?>
The only remaining issue is to get those private and protected properties cleaned up so the names can be transferred into the XML document easily. If you want to check out the current slim version of DOMi, it’s in the Subversion repository, and you can view the file, as it currently stands, through SourceForge. I still need to finish commenting and build __call and __get to automatically pass method/property requests into DOMDocument, DOMXpath and XSLTProcessor so it remains a completely transparent integration of the three objects.
The MechWarrior reboot is official, but where is my MechCommander 3?
A few days ago, news began to spring up about a teaser trailer that looked very much like it could be MechWarrior 5, and yesterday a full length trailer confirmed that a new MechWarrior game is in the works. I’ve been a fan of the Battletech universe for a really long time, and my first big online experience was actually with Multiplayer Battletech: Solaris back in 1996. I’m really excited about this new MechWarrior game, which is a series reboot and comes to Xbox 360 and PC, with no release window mentioned.
Even though I never got really into the MechWarrior series, I enjoyed them enough to be really excited for this. The trailer looks to show some destructible environments, and the new UI does a great job of making you feel like you are really inside this giant combat robot.If this game has some good online co-op, I will be spending some time with Dan on this baby on Xbox Live.
The developers want to stray away from the food chain, where certain mechs were simply better than others, but I hope they don’t stray too far. I like the idea of an upgraded Mad Cat with a good pilot taking down an Atlas, but I would hate the idea of a maxed out Fire Ant with the best pilot in the world beating a Jaegermech in open combat out on the plains. Removing the food chain only works so far – some mechs are simply far, far superior to others, and no amount of upgrades or pilot skill can compensate when you do not have the firepower to even scratch the enemy, but one shot from him will completely ruin your mech.
The Battletech universe is one that has very rarely disappointed me, and even the subpar games were enjoyable experiences. However, the game I would’ve preferred to have seen a reboot on was the much less popular MechCommander series for PC. This was an RTS that took a few interesting approaches to RTS, in dealing with the deaths of your pilots, equipment acquisition and damage repair and deploying mechs to ground combat. It was also a really hard game that made you feel great about finally finishing a mission, even if you did take some losses and lose a good pilot or two.