Skip navigation

Category Archives: Reviews and Rants

Has time flown.  I can’t believe it’s already the end of the summer.  It’s been a blur, but looking back I realize I’ve done, learned, and screwed up a lot of stuff over the last 10 weeks.  Most importantly, I have learned a huge enormous gigantic ton of stuff that I would have been otherwise hard-pressed to find on Google.  I’d like to list and optionally briefly explain some of the things I have learned this summer:

  • How to build mesh data (for drawing) from vector data (from the simulation).
  • To draw as much as possible in a single draw call: all particles in an emitter and all objects that are related to one another by building one big-ass master mesh.
  • How to use interleaved data for fast drawing (didn’t actually use this, but I think I have the theory behind it down well enough to use it).
  • The power of good OOP architecture.
  • The crippling effect of poor OOP architecture.
  • The terminology of Factories in a CS context, what a Facade is in CS context, and a slew of other CS architecture paradigms.
  • Any kind of I/O sucks.
  • The worst form of I/O is networking.  Need to check for all cases including network failure, bad data, dropped data, incomplete data, yadda yadda yadda.
  • I enjoy building systems and I really like building tools to manipulate those systems.
  • How a particle engine is built and how a particle engine is built properly.
  • Verlet integration and the power behind a Verlet particle system.
  • That there are 3 ways to do everything: the wrong way, the right way, and the best way.  In software engineering, we shoot for the last and end up with the middle one most of the time.  The first is rarely engineered, but can be the result of failure at any point during the code base’s inception: communication of ideas, engineering, coding, QA, etc.
  • The Scrum process and the Agile Development paradigm.  These would have been fantastic to know and be used to before this internship, but that wasn’t really an option.
  • I suck at projecting the amount of time required to complete a task.  This is core to Scrum and Agile Development, which is why being familiar with that format would probably have benefitted me.
  • I don’t like C++.  While it has benefits, it’s structure is easily broken and it feels very hackish.  Admittedly, I am not aware of a lot it’s ins and outs, but what I have seen has made me very glad that I was introduced to programming through C and Java.
  • Complete Separating Axis Theorem!
  • There is nothing like a solid group of competent teammates on a programming project.  Things that seeming daunting to the individual can be conquered easily with the right team.

I have learned a huge amount and I want to thank everyone at ZG for giving me this wonderful opportunity and for putting up with me for a full 3 months!  I had a great time and I would highly recommend the experience to anyone looking to for an internship out there.  Yeah, that means you!

Anyway, even with all of this new-found knowledge I realize I still know next to nothing.  I feel my iPhone and Obj-C skills are pretty solid now, but there is much I still have to learn.  It’s unknown how much longer it will be until I graduate, but I feel confident that I will have something to contribute once I do.  I’m still debating whether I want to stay in state or move somewhere in specific, but one things for damned sure: it ain’t gonna be Florida again…

That’s it for me.  I’ll probably wrap up my internship thoughts sometime next week, but I’ll be sending my computer back home soon, so it will probably be short.  Keep on keeping on and I hope to have another post sometime soon.  Peace.

Advertisements

How A Game Gets Made

I found this article on Gamasutra’s news page and it’s a pretty good article.  After reading through I was blown away at what it takes.  I knew it was a pretty epic undertaking but it’s amazing to see that so many people from such disparate fields come together to get it done.  It’s actually amazing to think that a lot of companies are able to do this in two years.  Funny how I used to think that a two year dev schedule was really long, it seems now like two years in the absolute fastest that a quality game can be developed.

I’ve been trying to pull my portfolio together and I realize that I haven’t done a game review in a long time.  LBP slipped through the cracks a little while ago, so now’s the time:

LittleBigPlanet

Platform: PS3    Rating: E    Genre: Adventure/Platformer

What it is:

Imaginative, hilarious, and lots of fun.  The premise of LBP is strange to say the least, but it lends infinite possibilities to the world that is presented in the game.  Players jump, swing, and launch around beautifully crafted levels with stunning visuals and constantly interesting and challenging obstacles.  Races, ascensions, puzzles, collectables, LittleBigPlanet has got it all.

What it isn’t:

Lengthy, solitary, or boring.  The main set of levels felt a little short.  The levels were, however, absolutely amazing, to say the least.  LittleBigPlanet is fun to play on your own, but it’s a riot with other people.  The social aspect of it is frankly one of the best parts of the game, including the online world building and cooperative stylings.  There’s rarely a dull moment in LBP and levels are varied and unique enough to warrant multiple play-throughs, allowing for lots of replay value and extra collectables.

Pros:

Tons of fun with multiple players, customizable characters, world-building tools, a strong online community, expertly crafted levels and visuals, compelling collectables and extras, hilarious premise and interesting world, intuitive controls, and a bonus moral at the end of the game :).

Cons:

The points system used in the game seems somewhat unnecessary.  It detracts from the cooperative feel of the game as players vie to collect the most bubbles.  Other than that, nothing else really stands out.

Rating:

– Highly Recommended:

Get some friends together and play.  LittleBigPlanet is lots of fun and is a great party game!

EDIT: For those not in the know, I’ve been working with a simple game creation program called “Scratch”.  This application was made by some guys at MIT in an attempt to create an easy to learn and use game creation tool.  It can be found at scratch.mit.edu.  Enjoy, even though I really didn’t…

Scratch is an interesting little program.  It has a very gentle learning curve, but is also limited by some pretty heafty issues.

  1. Only 1 key press is registered at a time.
  2. Duration between initial key press and key repeat is very long.
  3. Pressing a new key while a key repeat is in effect will cancel the key repeat.
  4. You cannot make the play field any larger than the initial size without scrolling (which is pretty darn small).
  5. You have to create and reuse every object that will be in the game at design time, instead of having the option of creating new instances during runtime.
  6. Sprite scaling degenerates a sprite if you scale it too far down and then back up again.

Scratch does have some advantages though:

  1. It’s supported on many different platforms.
  2. It’s very simple and easy to use.
  3. The rotation mechanics are simple and intuitive, very nice.

It’s pretty obvious that Scratch’s intention was for rapid prototyping.  And if it wasn’t, that is all I would use it for anyway.  It has strong potential as a rapid testing bed for gameplay mechanics.  However, it’s shortcomings prevent it from creating high end games that anyone might want to distribute to non-friends…

That may seem harsh, but it’s the truth.  Bravo to MIT for trying to make a game creation tool with a very simple interface.  For what it’s worth, they did a valiant job.  But Scratch is far from capable and I will keep in mind as a test platform for game mechanics, at best.

On to the game… I did the simple space combat game.  While very basic, it was still quite fun and difficult.  There were some aesthetic changes that need to be made regarding ship models, but other than that, the controls really didn’t seem to be much of an issue and gameplay went relatively smoothly.

Stop posting spam comments.  You know who you are.  Stop it.

Game developers, you do not need to award an achievement for every little thing the player does.  Advancing the story in the game and completing levels is a reward in itself.  Achievements/trophies/whatever are for things that are above and beyond the normal play experience.  Stop it.

I’ll have more later, but for now, stop it.

http://www.chrishecker.com/Advanced_Prototyping

This presentation was interesting to say the least.  The format of the piece made it difficult to follow and the speakers sometimes got side-tracked and distracted by some things.  Overall, though, I thought it was a very informative presentation.  I found it fitting and cool that some of the things that made the best prototypes for them were pieces of software or similar things that were never really intended for prototyping.  Hecker also represents many solid design principles which really make the presentation worthwhile.  His interpretation of iterative design and the idea of frequent, repeated, and observed playtesting is an important part of the presentation.

In general, I would recommend the presentation for anyone with some prototyping experience and about an hour to go through all of it.

While working on the latest challenge, I’ve been inspired to write a little piece on the game designer.  Not to toot my own horn, but there really is something special about the game designer, programmer, and creator.

The modern game developer is very much a renaissance man in as many ways as possible.  We really have to be a Jack-of-All-Trades AND be specialized in a given field.  We have to be part political activist and part social reformist.  We have to be both driven and lazy.  We have to be not only structured, rigorous, and perfectionist, but creative, flexible, and adaptable.  We have to be able to stand on our own but also be able to network and communicate well.  We have to be part businessman and part philanthropist.  We have to be physicists, historians, zealots, and pragmatists.  We must remain individual while assuming the roles of so many.  We have to have be well versed in our given area, but also need a myriad of experiences and contacts.  In every way I can think of, the game developer really is the “everyman” of the 21st century.

Alright, so Killzone 2 has the spotlight here for a short time while I apply my game theory and critical analysis abilities (or until I start hating it [don’t hold your breath]).  Killzone 2 is a good game.  There are many things that Guerilla did to make it that way.  Here is a list of design decision, ideas, and technologies that the industry should take note of:

  • First and foremost: The AI.  The AI in Killzone 2 is fantastic.  Enemies take cover, blind-fire, throw grenades, peek, seek cover, and wait for you to stop firing before moving out of cover.  Allies take cover, press the attack, *actually kill things!!!*, are generally useful and helpful.  The powerful AI makes the experience feel that much more real and interesting and silences the common issue of the desire to kill one’s allies for incompetence.
  • In singleplayer, the variety of weapons is quite nice while still being believable and internally consistent.  Granted, there are some that are better than others (Helghast LMG anyone?) but the overall variety allows for some tactical choice.  On the flip side of this, some weapons are rather useless.  The Boltgun is cool and pretty powerful, but hard to use because the bolts fly so slow.  Also, the grenade launcher is infuriatingly hard to use well.  Once you get it, it’s not too bad, but it’s hard to get there.
  • Level design in Killzone 2 is very well done.  Each map is designed in a sprawling format, even if action moves a little linearly.  Many opportunities for cover and strategic placement of weapons and explosives helps to move combat along quite nicely.
  • The cover system is very helpful and makes combat feel very tight and real. I really wish they had a true blind-fire mechanic for the player, but it’s not entirely needed.
  • Toggles for different modes are really helpful.  KZ2 does not provide a toggle for taking cover, so it requires the pressing of three different shoulder buttons in order to fire from cover.  Fortunately, they have a toggle option for iron-sighting, which I promptly turned off.
  • Sloppy controls make for frustrating gameplay.  A lack of skill is one thing, but when you have to fight the interface to use those skills…this encourages the throwing of controllers through TV screens.
  • Grenades in KZ2 are actually useful!  Grenades are no longer a binary thing (Halo 3: grenade either kills you, or doesn’t, no in-between) with large blast areas.  If you don’t kill a foe with a grenade, you usually knock them down.  And at the very least, they can be used to great effect to flush enemies out of cover thanks to the highly responsive and in-depth AI (see above).
  • Diverse locations.  KZ2 sprawls between ISA Cruisers, desert wastelands, and industrialized caverns.  These locations keep the gameplay interesting and varied and allow for some very pretty visual variety.
  • Good multiplayer can make all the difference.  I have already stated that I dislike the Killzone 2 online multiplayer, but others absolutely loved it.  Some even went as far as to say that the multiplayer was one of the best they had ever seen and gave KZ2 higher ratings because of it.

Alright, so a few days after getting KZ2 and spending some time online doing multiplayer, many things have jumped out that really need revision. I realize I’m mostly preaching to the chior, but that faint hope of some Guerilla employee stumbling across this and making the case to higher-ups to make these changes forces me to publish these complaints.

KZ2 online play is about as frustrating as possible. There are few feelings of accomplishment flanked on all sides by frustration and failure. There are many aspects of the online play are diculously broken, making lower-level players fodder and setting them up for instantaneous death. Here are several things I have identified that require balancing, removal, or change:

  • The shotgun is amazing. Single shot close range, 2-3 shots medium range, large ammo cap. Very unbalanced. This should be brought down to 2 shots close range, 1 shot point blank, and then rapid falloff at longer ranges.
  • Some weapons are totally useless. The Helghast assault-rifle, ISA LMG, and the magnum are useless in comparison to their counterparts, and no one uses them because of this. Some incentive to use these weapons should be considered.
  • Pistols are very underpowered. I realize they are supposed to be last resort weapons, but they barely do any damage at all and hold a tiny amount of ammo at a time. This is true for single player as well. The magnum should be a force to be feared.
  • Non-headshots. Enemy players can take half a clip of AR ammo before dying, and with the abysmal accuracy decrease for auto-fire, this means that you have enough ammo in one clip to kill maybe 2 enemies per clip at most. Headshots kill in one hit, but the lag of detection is awful, allowing for a kill-swap nearly every time.
  • The Saboteur’s disguise ability is WAY too powerful. Their appearance changes to match your team, they have a friendly name tag, and when they attack it does not spoil their disguise. This allows most Saboteurs to mow down half your team before someone figures it out.
  • Medics are underpowered, granted they get points for bringing people back up. Medics have a very restricted weapon list (only ARs, which suck BTW) and their zapper takes forever to recharge. Basically, you’ll have time to res one person before being taken down because switching to the zapper, resing, and then switching back takes so much time that you’re guaranteed to be mowed down by a guy with a shotgun. Some better incentive to be a Medic (such as even more points for resing), or a faster recharge rate for the zapper would help to encourage players to play as Medics.
  • The lag for headshots, grenade detonations, and death recognition in general is downright embarrassing. A grenade will go off and half a second later, after the player has moved several yards away, they will fly to the ground dead. I’m not sure what is causing this, but it’s quite jarring and looks very unpolished.

There are a few more I’m probably missing, I’ll be sure to add them when I remember. What’s weird is a lot of the reviews I have read for KZ2 touted the multiplayer as a golden piece of the game. G4 (I know, not a good source) said that the multiplayer is what convinced them to give KZ2 a 5/5.

I’m disappointed. I think with some tweaks and balancing, KZ2 multiplayer could be awesome. But currently it’s a pile of frustration.

Don’t get me wrong, I still think the game is downright amazing. The singleplayer is more than worth the game on it’s own, and if you like instant death and unbalanced gameplay, the multiplayer will make this the best game of all time. Anyway, the multiplayer is seriously broken. The above fixes would really move it toward the balanced end of the spectrum and would make the experience that much better.

Yet another long-awaited sequel FPS, Killzone 2 is a stunning jewel in a sea of mediocre releases. There has been some controversy concerning Killzone 2, the PS3, and Xbox360 fanatics. Here’s something to look into: Adam Sessler On PS3 vs. 360

Killzone 2

Platform: PS3 Rating: M Genre: FPS

What it is:

Gorgeous, engaging, and very well built. Next generation graphics on the PS3s amazing hardware make Killzone 2 a jaw dropper when it comes to visual quality, even on my shitty 30” SD TV. The first bout of combat in Killzone 2 hooked me: it was really a battlefield. Scores of enemies, all using cover intelligently, tossing grenades to flush me out of cover and attempting to flank at every opportunity kept me on my toes throughout. The level design is tight and succinct, the AI is top notch, and each location and item is unique and interesting, presenting it’s own microcosm with just a glance.

What it isn’t:

Run-and-gun, tight, or boring. Gone are the days of Halo where cover is just a convenience. In Killzone 2, you HAVE to stop, take cover, and aim to accomplish anything. This isn’t necessarily a bad thing (I really enjoy it), but many FPS players will be forced to change their play style in order to accommodate this change. Unfortunately, the controls feel a little sloppy; camera motion is slow and unintuitive. There are few breaks in Killzone 2, so combat fatigue was an issue. However, an hour or two of homework and I was ready and raring.

Pros:

Gorgeous graphics, awesome gameplay, interesting story and characterization, unique weaponry, and sprawling environments. Killzone 2 is just begging for Game Of The Year!

Cons:

Online multiplayer can be somewhat frustrating. The controls are slightly sloppy, but I’m just nit-picking now. There really aren’t any bad marks I can think of.

Rating:

– MUST HAVE!:

If you don’t have a PS3, maybe now’s the time to get one :P. Or go check out Killzone 2 on a friend’s PS3. Yeah, it’s that good.