Raincity Games http://raincitygames.com Most recent posts at Raincity Games posterous.com Sun, 12 Sep 2010 15:40:47 -0700 Little Soldiers HD Released http://raincitygames.com/little-soldiers-hd-released http://raincitygames.com/little-soldiers-hd-released At long last Little Soldiers HD has been released on the app store. Apple picked it up and it is featured in the "New and Noteworthy" section. We are both honored and unprepared :)  Please bare with us as we update the app to be backwards compatible with phones not running iOS4.

Icon2_512x512

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Sat, 12 Dec 2009 16:43:00 -0800 Level concepts complete :) http://raincitygames.com/LittleSoldiers-26 http://raincitygames.com/LittleSoldiers-26

It's been a long week, but I'm happy to say that all of the 26  missions  (we may add a few more) for the core campaign in little soldiers have been roughed out and all of the world map nodes have levels attached to them. Now begins the daunting work of  playtesting and making sure our difficulty curve is accessible to new players and that we introduce new concepts at the right pace to keep players engaged.

A big thanks to Z for all his help on the levels :)  "With testers like these, who needs game designers?"

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Thu, 03 Dec 2009 19:34:00 -0800 What is LittleSoldiers HD http://raincitygames.com/LittleSoldiers-25 http://raincitygames.com/LittleSoldiers-25

As we march towards the beta (code complete + final assets) build of Little Soldiers HD, I've had to start wrapping my head around what makes Little Soldiers HD compelling and differentiates it from other games.  Here's an initial pass at what I think will make Little Soldiers stand out.

Media_httpfruhtcomlit_ckrlw

  1. Intuitive touch interface designed for the iPhone
  2. High definition 3D graphics
  3. Not your moms physics puzzler, Little Soldiers HD is...
    • ...action oriented with a smart camera that follows the action and explosive chain reactions.
    • ...character based, lead your team of soldiers to complete missions by escaping levels
    • ...rewarding, earn medals and unlock levels & vehicles as you progress though the campaign.

I think games that are designed from the ground up to have a iPhone friendly touch interface have a competitive advantage over ones that aren't. You wont find any virtual d-pads or virtual joysticks in little soldiers. The menus, the settings pages, the level map, and the gameplay were all designed to work intuitively and naturally with touch input. In some cases a lot of time and iterations were spent to make this as fluid as possible.

The game does have polished 3D graphics (or will have when we hit beta). This takes more effort and production time then the 2D graphics that a lot of 3 month development time iPhone games have. I believe that 2D can look better then 3D in many ways, but there is also an impression of quality and professionalism that you experience with 3D graphics that is sometimes hard to duplicate with standard 2D graphics. Still with incredibly high quality 3D graphics like the ones that are seen in the Gameloft games, I wonder if the bar is set so high for 3D that it may not be possible for games like LS to create that experience for players.

The rest of the description focuses on what differentiates Little Soldiers HD from your standard Rube Goldberg style physics puzzler. Having real characters instead of an abstract object like a ball or cube invites players to be more engaged in the game. The same is true of the object interactions which are more explosive and volatile then a lot of physics puzzlers that feel more like a science experiment.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Tue, 01 Dec 2009 23:25:00 -0800 Problems with level design... http://raincitygames.com/LittleSoldiers-24 http://raincitygames.com/LittleSoldiers-24

...especially in logic or puzzle games.  I generally don't criticize games publicly. Games are difficult to make just from a technical standpoint, once you factor in user experience, games design and that elusive quality of "fun" they're nearly impossible to make. The games I do sometimes criticize, or rather the developers I like to criticize are the ones that circumvent this arduous creative process and chose to copy the design, aesthetics, and "fun" of another game verbatim. Today I'm going to point that criticism at one of my own games and by association at myself.

There is a tendency amongst designers when designing puzzle games to make levels more challenging by making them larger and more complex. The original little soldiers is no exception to this classic design flaw.

 

Media_httpfruhtcomlit_tezah

This is a screenshot of the "Jam Packed" level from the original Little Soldiers game.  It's full of repeating elements, you can't even see the exit goal and it's not clear what you are supposed to be doing in the level. Essentially to play this level, you must try different things, failing repeatedly until something randomly seems to work at which point you hop though the exit and breath a sigh of relief.

I'm not your typical puzzle gamer, but I'm pretty sure you'd have to be masochistic to consider this success though repeated failure as "fun". I've since realized that the "fun" in a puzzle game of this sort is in learning the rules about how items behave and how they interact. Once the player has figured out the "trick" to an item it really isn't enjoyable to use that item over and over again on increasingly large levels, unless of course every time they use the item they learn something new about it's behavior.

In short the challenge or fun in the game is in learning about the objects, once they are mastered there's very little satisfaction in repeatedly applying them in larger and larger problems. A smaller level that teaches the player something new, is more enjoyable then a large level that has the player applying skills they've already mastered repeatedly. This sort of thing is intuitive in retrospect, but I've seen this same level design issue crop up in a lot of  physics based  or item based puzzle games.  

What do you think? what makes a logic/puzzle game fun?

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Mon, 30 Nov 2009 20:42:00 -0800 Progress is happening http://raincitygames.com/LittleSoldiers-23 http://raincitygames.com/LittleSoldiers-23

It's hard to imagine that on Oct 20th (a month and 10 days ago) the game looked like this.

Media_httpfruhtcomlit_ffdre

and now It's starting to look a lot more finished. It's amazing how art can make a game "sing" :)

Media_httpfruhtcomlit_kdjuo

There are still lots of little details I would love to add, but I'm not sure we'll get the time. When you earn a medal for your performance on a level, i want to have it added to the folder in a rewarding way, with a sound and some particles or something like that. It would be nice to tweak the layout of the information on the folder to make it more attractive, but we'll see. Some things inevitably get pushed off to a future update after the games released. Hopefully by the end of the week, we'll be able to do a similar before and after shot for the in game levels and see how far those have come in what is really a very short amount of time. It's encouraging to remind ourselves of all the progress we've made as we march slowly toward releasing the game working on little tweaks and forgotten features and feeling like progress is slowing down.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Wed, 25 Nov 2009 23:46:00 -0800 Textures, Memory, and Footprints.. oh my... http://raincitygames.com/LittleSoldiers-22 http://raincitygames.com/LittleSoldiers-22

For the last couple of months, Chris (the creative guy :)) has been steadily cranking out massive amounts of content: textures, sprites, models, backdrops, buttons, overlays, etc. And with each passing day, our memory footprint grows and grows. To the point where last weekend Alex wasn't able to test anything because we were crashing within seconds of the app starting up on the iPhone. Now, to set the record straight, we did all the 'good practices' of building textures and sprites for a 2D/3D game. We load the textures into 16-bit buffers of the best pixel format for the image. We atlas all our 2D content to fit as many images onto a single texture as possible: (like this soldier atlas, which is 1024x1024 in it's final state).

Media_httpfruhtcomlit_cqrja

So how do we solve these memory problems? First off, how much texture data is the game using at run time, and is it feasible? We took a look at all our content and counted up the size of all the images the game could be using at any given time, and with 16-bit textures, it should sit around 10-11 megs of memory on the iPhone.. Which is just barely within the 'safe-zone' for older 3G iPhones... (approximately 13 megs).

Media_httpfruhtcomlit_lhbdj

Next, we added some memory counting code for textures and Alex loaded up the Apple iPhone profiling tools to check out our memory footprint at run time to see what was going on. At peek load times.. we were hitting upwards of 40 Megs!! which is way out of the safe zone for iPhone apps.. Now with our estimated max of 11 megs.. and maybe another 1 meg for various buffers and such, why are we hitting 40 megs?!

The short answer: Image loading and conversion.. The long of it: What does it really take to get a PNG file loaded into a 16-bit texture. And the answer is, given that you must use Apples built in png loader, you load the 32-bit image, convert it to a 16-bit image, then uploads the texture to memory.. At run time... :( Way too many operations, way too much work, and way too much memory for what really needs to be done.

So, we moved all this work and memory usage to the build process by writing a custom step in our asset tool chain, that takes texture images, converts them to the destination pixel format, and saves them to a custom file format using simple ZLib zip compression. At load time, we simply allocate a texture, and use the fast Zlib library to decompress chunks of the file & upload them to the texture. In the end, our load time is about 3x faster and we peak at 14 megs of memory in load times.. back in the safe zone.  And most importantly, we haven't seen an iPhone crash in days :D

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Tue, 24 Nov 2009 18:25:00 -0800 I'm on a Truck! http://raincitygames.com/LittleSoldiers-21 http://raincitygames.com/LittleSoldiers-21

Our alpha (feature complete) milestone was supposed to be yesterday. We've spilled a little over into today, but managed to do some really cool stuff that wasn't supposed to be part of alpha.  One of the cool new add's is when you beat the bootcamp levels and move out into the larger map you are awarded a truck for your efforts. It's a really nice reward for the player after working though the first few levels.  This is what it looks like...

Media_httpfruhtcomlit_ggqjm

This is also a first pass on the level popup to show medals based on performance. Chris (the artist) hasn't really had a chance to see it yet. You can see the truck in there as well. It's not the only mode of transportation you can earn playing LS HD, the other(s) you will have to play to discover :)

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Tue, 24 Nov 2009 05:13:00 -0800 Rules for Touch Interfaces #2 http://raincitygames.com/LittleSoldiers-20 http://raincitygames.com/LittleSoldiers-20

It sounds a bit pretentious to talk about rules for doing something. I hope that these rules aren't coming across as preachy, these are literally the rules I tell myself to follow now when i'm implementing  a touch interface. They are handy tools because most of them are unintuitive, at least coming from the perspective I was with regard to touch interfaces. One of my misconceptions was that touch, or direct manipulation was awesome because you could actually manipulate things directly like you could in the real world, providing a whole new level of accessibility not previously found on mobile devices.

This turned out to be  partially true. It's true that directly manipulating physical objects like switches and toggles are a uniquely accessible interface paradigm, but it's also true that a touch interface is nothing like directly manipulating a switch or an object. This leads to rule no. 2.

2. Rarely do you want to use touch input data directly. By this I mean, rarely do you want to take the x,y coordinate of a touch and reposition anything based on it's exact location. In the real world when you toggle a switch or drag a piece of paper across your desk, nothing move unless directly acted on by your finger. On the iPhone things are a little trickier. Take the On / Off toggle I recently implemented for the settings menu.

Media_httpfruhtcomlit_steki
My first implementation was to position the slider nub at the center of the touch. So if someone touched slider, it would try to center itself under their touch as best as possible. Sliding their finger back and forth across the control would move the slider back and forth under their finger. Seems simple right? In practice it felt terrible.  If the user swiped their hand quickly over the toggle, the slider would barely move and it would get stuck in a half way state. Even on a swipe moving moderately fast it was easy to not complete a full toggle of the switch. On closer inspection, the slider wouldn't really start to move until your finger was at least half the distance of the slider from either side of the toggle because it always tried to position the slider in the mid point under the touch.

If by chance a quick touch had enough input to move the slider, it would toggle so fast the user wouldn't get to enjoy the transition between the On and OFF state. I might as well have used two images, one in the on state and one in the off and switched between them.  The resulting solution involved a surprising amount of subtly, using the momentum of the touch and intelligently auto completing the toggle from On to Off or visa versa based on the direction and velocity of the touch input the control received. The other part was to ensure the toggle never moved faster then a certain maximum speed to make sure that the user always got to experience a nice analog transition from on to off to really achieve that accessible interface feel.

Another great example is in scrolling your games window via touch. If you just try to position the screen under the users finger, it feels wrong. To be rapidly moving the screen and then have it instantly stop when the finger is released. This is how you'd like to handle the case as a programmer. Touch starts... begin scrolling the game window... touch moves... keep scrolling... touch ends... stop scrolling. This ends up feeling choppy and slightly frustrating to use, what is really needed is to take the velocity that the finger was traveling and apply a diminishing fraction of that velocity to the screen after the touch is released. That way the user feels like they have imparted some momentum to the scrolling like they would if they were flicking a piece of paper across a tabletop. It's unintuitive for a programmer to code this way, but once you wrap your head around it you can create some pretty slick feeling and easy to use interfaces.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Sat, 21 Nov 2009 00:03:00 -0800 Rules for Touch Interfaces http://raincitygames.com/LittleSoldiers-19 http://raincitygames.com/LittleSoldiers-19

It's been quite interesting implemented a touch based user interface for Little Soldiers HD. There is definitely a lot to learn and not all of it is entirely intuitive at first. One of my goals for the interface in LS HD is to make sure it feels at home and natural on the iphone, this means leaving behind a lot of the paradigms that exist for mouse based interfaces. When I started working on the menu screens for LS I had only one datapoint. Something that I herd in an apple keynote somewhere,  with touch you can directly manipulate objects so you don't need to control them by clicking on little boxes. The example they used was the On / Off switch you see all over the iPhone settings screens. Instead of a checkbox that you tapped to toggle  [  ] to [X] , they had this nice analog switch that you could manipulate directly by touching it. I loved the intuative nature of "sliding a switch" to toggle something on or off and I wanted all our interfaces to behave that way.

It turns out, everything is not easy as it seems, and it does take some work to get things to respond as naturally as they do in the iPhone UI kit. The largest unwritten law that I've discovered is that while "direct manipulation via touch" is nice, it's not sufficient.

Rule #1 : Your UI object should always be manipulatable by a singe tap of the finger. Direct manipulation of controls is great, but is difficult for most new users to discover.  I have 3 examples here that are made better by having single tap manipulation. The first place I ran into this rule was the in game menu.

Media_httpfruhtcomlit_fjrem

Initially I had this great scheme where someone would drag the touch over the menu button, and then the menu would pop up, the user would drag up over the option they wanted and then when they released the touch over that option it would perform the action.  It made great intuitive sense to me, Begin a touch over the menu button, the menu stays visible for the duration of the touch, ending the touch hides the menu or makes a selection from the menu.  It totally failed the wife test.

Out for dinner at a steakhouse for date night, I had her try the game. I watched in horror as she tapped away at the menu button, the menu flickering on for the brief interval her finger was on the screen. "Whats wrong with the menu she asked?".  "Touch and hold" I said, depressed knowing a good user experience is one that's discoverable. The touch and hold code still exsists, but that night I went back and changed the behavior code so that tapping the menu button makes the menu pop up, and then tapping a menu options makes a selection while tapping outside the menu hides it.

The nice thing is that both behaviors, touch-and-hold, and tap can coexist. This makes the interface work the way the user wants it to work, which is an attribute of good UI design. The next place I saw it was on the On/Off toggle.

Media_httpfruhtcomlit_ftlbu
I spent a day an a half getting it to be the smoothest, nicest feeling touch slider ever. When I had Alex test it, the first thing he did was start tapping it. Apparently the iPhone toggle that this one is based on supports that feature.  Fortunately like with the in game menu, both behaviors can coexist and result in better usability for anyone using it.

The interesting thing about making elements in the interface "tap" accessible was suddenly the ones that weren't were really annoying. The last example was the folder popup that shows in "title" form until the user dragged it up to reveal the play button and level achievements (not yet implemented). Being forced to drag this folder up with a swipe started to feel like a real chore so it was a no brainier to make it hide or show itself if it was tapped.

Media_httpfruhtcomlit_gieoe

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Wed, 18 Nov 2009 05:35:15 -0800 The Grind http://raincitygames.com/LittleSoldiers-18 http://raincitygames.com/LittleSoldiers-18 Oh yes, it's here. That part of game development that no bright eyed, bushy tailed, game designer / developer sees from the project outset. It happens in every project, the part of game development that's only "kinda" fun. For the most part the game is feature complete but you have to connect the dots, dot the i's and cross the t's.  Even if you haven't hit the complexity barrier, theres still a lot of grunt work that probably should have been done earlier, but you were putting it off till later. Well on LS HD, later is now.
Media_httpfruhtcomlit_ljekh
We are rapidly approaching an Alpha build, and if all the feature lists and prioritization I did today are correct, we have about a weeks worth of work to really nail it. We are cranking on little things like various particle effects, tutorial elements, and settings menus. We work hard, but there's nothing really exciting to post about, still we will do our best to keep you abreast of the changes :)

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Sat, 14 Nov 2009 16:38:58 -0800 Being a Geek in public for you http://raincitygames.com/LittleSoldiers-17 http://raincitygames.com/LittleSoldiers-17 Yes, I know it's saturday but I'm posting anyway. Last night justin and I headed to McMinimans, a local pub that brews it's own beer and free wifi. We ordered a round of beers and sweet potato frys and fired up the laptops. Justin did some research on entity component models and I added the ability to drive around the level map in a truck (and another mystery vehicle that shall remain nameless).

Media_httpfruhtcomlit_wlyqh

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Thu, 12 Nov 2009 19:28:17 -0800 Complexity Barrier http://raincitygames.com/LittleSoldiers-16 http://raincitygames.com/LittleSoldiers-16 The complexity barrier is the point at which adding any feature to your code, even a trivial one requires so much work that it becomes impossible to motivate yourself to add that feature. For most developers this is a feeling that they can relate to easily. The project starts with a blank solution and every line of code seems to result in incredible progress, features and functionality are added almost daily. Then as the project passes the 60% complete mark more and more time is spent refining features and adding new ones. Somehow, development slows to a crawl and it starts to take entire days to add a single feature. Each time something get's added 5 other things seem to break and progress becomes depressingly slow.
Media_httpfruhtcomlit_paqci
In my experience the Complexity Barrier is responsible for the death of more software projects then any other factor. It is nearly impossible to finish a project that has hit the complexity barrier. So the question is, where does all this complexity come from? Surely developers aren't setting out o create complex code that will eventually kill the project, so what else could it be? The real culprit  is changing requirements. Consider this from an civil engineering standpoint. A foundation is set for a 3 story building, but as the building is being built the requirements change, the owner wants it to be a 5 story building. The builder looks at the changing requirements and calculates that with some structural reinforcements of the lower floors the building could be modified to support two extra stories. Then the owner states that they would like a swimming pool on the roof, this presents even more challenges. It's difficult for the builder to account for all the changes that were made from the first reinforcement and the new forces that will be applied. Finally with a lot of testing trial and error the builder manages to create something that will hold up to the new requirements. So they fill the pool and a strong wind comes and the building collapses under the load of the wind and all the additional weight added to the structure. Code is a lot like this, the developer sets out to hit a simple target but as the game or application evolves he discovers that the target is not the target he expected and it's much more complex.  In the past this problem was solved by a very disciplined and rigorous approach to requirements gathering. Essentially the whole application would be designed from start to finish in paper form and be reviewed by all the relevant parties to make sure that when built, it would solve the problem. These days that process has been abandoned because it is expensive and time consuming, and quite honestly requires it's practitioners to be experienced developers and know the problem space really well. The tact most developers take these days is to just start building and "iterating" towards a solution. Unfortunately a lot of developers don't realize when the foundation that they started from is no longer adequate to support the weight of the evolving requirements. Games are notoriously difficult to anticipate all features and requirements up front (unless the game is a clear derivative of an existing game) as a result, in order for most games to be completed there will be a point in their development cycle where massive sections are rewritten or re factored so that incremental features can be added without resulting in hours or days of testing and bug fixing.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Tue, 10 Nov 2009 20:00:03 -0800 cafe latté? http://raincitygames.com/LittleSoldiers-15 http://raincitygames.com/LittleSoldiers-15 in the never ending quest to not be bored with our surroundings we've spent a fair amount of time working out of coffee shops and bakery type storefronts. being the avid espresso fan that I am, I just had to make some sort of mention about them in general. Maybe even give a shout out to those coffee shops that have housed us for so long (not that they're likely to ever read this). To date I think the tully's located on Seattle's Alki beach has been the most inviting, overall. Spacious, great view, free wifi and quiet most of the time. I say most of the time because once or twice a week a group of 10 or so retirees meet and reserve a table here. The sound they produce is akin to a high school's lunchroom table that is packed full of excited teenagers.. We tried more neutral location like the public libraries but the first time the lady at the table next to you turns around and tells you to shut the f*ck up you realize it may not be the right place to brainstorm game ideas. Coffee shops seem to have the right mix of background noise (so we can be loud when we need to be) and caffeinated happiness in a paper cup =D My impressions of some of our recent work session locales: -Alki, Tully's (no complaints), -Bellevue Tully's (absolutely packed most of the day. limited group seating) -Kirkland, Zoka (limited seating for a group of 3-4 of us, lots of power outlets), -Kirkland, Cafe Ladro (the one we visited was cold as sin but good otherwise) -anywhere, Starbucks (no free wifi.. seriously?..) -Seattle, Louisas (extremely limited seating.. impossible to fit 5 of us anywhere) -Bellevue, Public Library (not bad but it would be far improved if they had an espresso stand out front) -Seattle, Grand Central Bakery (no complains) Now if we could just talk more coffee houses into provided power strips...

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Mon, 09 Nov 2009 17:30:08 -0800 "Game development is a synthesis" http://raincitygames.com/LittleSoldiers-14 http://raincitygames.com/LittleSoldiers-14 The title of this post is a quote from John over at http://www.wolfire.com and it really is the truth. At their very core games are a synthesis of so many different disciplines all of which need to work together before the game really resonates as an attractive, entertaining, and engaging experience for the player. Game development is part art, part science, driven by creativity, and supported by discipline.  These factors combine in a multiplicative  way such that if any one of them is zero or a small number, regardless of how well accomplished the other factors are the resulting experience will still be something close to zero. A great example of this is in our Title menu, shown here fully functional in all it's developer art glory.
Media_httpfruhtcomlit_sntgv
Functional, bug free, well implemented, but somehow lacking and not very appealing.  Then we apply the aesthetic interpretation of the creative discipline. Someone who applies the same discipline and rigor to the aesthetic and creative aspects of the menu as the programmer did to the code and functionality and *poof* you start to have something that feels like a game.
Media_httpfruhtcomlit_cfnyx
We decided to drop the "Exit" button to more closely follow the Human Interface Guidelines provided by apple, but other then that the functionality stayed the same. It is incredible, when you have this up and running on the iPhone just how much more polished and engaging it feels when navigating the title screen all because the art / creative factor that was hovering down around zero was brought to where the other factors were at. When all the various factors of game development come together and are polished they all bring out the best of of the other factors and the "Synthesis" is more then the sum of its parts :)

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Sat, 07 Nov 2009 05:36:35 -0800 Testing in the meantime? http://raincitygames.com/LittleSoldiers-13 http://raincitygames.com/LittleSoldiers-13

One thing all testers know but few talk about in open audience is the downtime we can experience on a regular basis. testing apps and games alike is great, minus the potential downtime from major refactors and rewrites. Not so much of a big deal on larger products as there always seems to be something to occupy your time. Documentation, test plans, usability flows, etc.. but on smaller projects (ie little soldiers HD) there just isn’t that much “busy work” to do when your team is in the midst of major changes.

What do I do when justin is writing the game physics or dan is fiddling with how sprites are drawn on the level map? I’m glad you asked! Sometimes I find bits of code or logic I don’t like, play around with them and see if I can present a better solution. Sometimes I write blog posts and Sometimes I just read through the code to see if I can identify potential weak points for test. Make myself mental notes (or real ones if I’ve had enough coffee) of where I see that code might fall apart in use and test it later after a stable build is posted. At the very least reading through the code puts me in the mindset of the dev that wrote it and lets me see the product through their eyes (important for me when I’m trying to figure out where their logic might fall short). In a lot of scenarios when I find a bug, if I have time, I’ll browse through the source to try and identify where it is before I log it. Sometimes it takes the developer a little while to reproduce the bug, set up the debugger, track down the error, grab the call stack, get to the root of the problem and Identify the actual bug. All that time that they’re not thinking of how implement their new feature or how to get their physics to apply in scenario A but not B, etc.. Not to mention changing mindsets is always a pain, switching focus from one problem to the next just isn’t an instant process (a fact I wish more PM’s and sales people realized).

A good example is when this project started, development was being done mostly on PCs and a small amount on OSX. After I got ramped up on the project and deployed out to the iphone there seemed to be a DB problem with the persistence of saved data. Since the developers are busy enough I took it on myself to try and figure out why the data wasn’t persisting. My first thoughts were the SQL statements themselves or specifically, the finalize portion of the statement, weren’t being sent correctly. After reading through the code I realized the DB wasn’t being copied out of the bundle. At that point I hit up the closest dev to confirm my suspicion and have it fixed asap.. The problem never presented to anybody else because on the PC or OSX the data is modified just fine but the iphone OS doesn’t allow modifications to the DB while its in the bundle (safety feature, I’ guess).

Anyway, I’d write more but Dan just made a checkin and imma go test some stuff =D

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Thu, 05 Nov 2009 06:17:21 -0800 A nice thing about small teams http://raincitygames.com/LittleSoldiers-12 http://raincitygames.com/LittleSoldiers-12 Having spent a good number of years in the software consulting / digital agency world I've had to work with a lot of different development processes, each with its own disciplines and artifacts. One classic artifact is the "spec" or functional specification document. In game development this is usually the design document. These types of documents are necessary for dissemination of  information to a larger audience or having a physical artifact that can be used as a starting point for consensus between client and consultant. One of the nicest things about working on a small team with people you know well, is the ability to forgo formal documentation and just do enough to communicate the idea. Luckily for us, the existing LittleSoldiers acts as a living design document in many ways, if there are any questions we just fire it up and test it out to see how it worked in the past. But there are new things being added to Little Soldiers HD, not the least of which is a UI optimized for touch based input. The following is the "spec" for the in game hud...
Media_httpfruhtcomlit_byrcm
Basically I just scribbled it down (it got crunched in my laptop bag) and showed Alex and Justin what my plan was by using my fingers to show how the state would change in response to a touch. It only took a few seconds for them to understand, provide feedback and agree to. It took a little longer then I'd like but a day and a half later it's working and in the game.
Media_httpfruhtcomlit_cedha
Media_httpfruhtcomlit_hxsdv
(art subject to change after our artist get's his hands on it)

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Tue, 03 Nov 2009 22:50:38 -0800 Adding an Action Bar http://raincitygames.com/LittleSoldiers-11 http://raincitygames.com/LittleSoldiers-11 Whew, hope everyone had a safe and happy Halloween, we've been back in business working away on LS HD. Yesterday and today I've been adding an action bar to the "in game" interface of LS HD. The purpose of this bar is to give players a status of how many of each type of action they've accumulated as well as be an intuitive, efficient, and accessible way to perform actions in the game. One of the challenges in designing an interface for Little Soldiers on a smaller screen like the iPhones is that as a player you see less of the level. Anything obscuring your view of the level is slightly frustrating because it interferes with your ability to see ahead in the level and make decisions about how your soldiers should move. The first pass at this was to make an Action Bar that hid out of the way when not being used and then when it became time to perform an action would expand to allow for easy selection of items.  This is the result in all it's developer art glory :)
Media_httpfruhtcomlit_ejqaw
Media_httpfruhtcomlit_xkbsf

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Fri, 30 Oct 2009 21:39:01 -0700 Getting to know you http://raincitygames.com/LittleSoldiers-10 http://raincitygames.com/LittleSoldiers-10 Based on feedback from our 5 or so readers (you know who you are!) we've decided to be even more transparent with this blog by letting you see the individual personalities behind fruht. To that end I've added a "By so-and-so" line below the title of each post and spent an annoying amount of time editing past posts to display the correct author. Hopefully this makes it a little more clear who's writing , what their motivations are, and what they do. If you don't already know, my name is Dan and I do a little of everything, if I had to pick I would say my primary contributions right now are programming and game design for LSHD. :)

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Thu, 29 Oct 2009 19:07:55 -0700 Quality and Criticism http://raincitygames.com/LittleSoldiers-9 http://raincitygames.com/LittleSoldiers-9 A view from test. In testing and game testing especially its important that everybody involved with LSHD should have some idea of what it is and where it came from. Since LSHD the natural evolution of the original Little Soldiers then in this case the simple answer is everyone spends time to play little soldiers, the first one. On the surface it almost seems like a waste of time to spend a few hours goofing off playing a video game that is antiquated and years outside of development, however I've noticed a trait that developers and testers alike all seem to share. When they use an application or play a game they almost always have that little voice in their head saying "thats dumb.. it should do this" or "ooohh, thats cool! what if it did this too!?".. Do it often enough and you can't even shut it off anymore. Your mom makes you a nice steak and you immediately blurt out "ooo, if you'd taken this off the BBQ 5 minutes ago it would have been perfect!" In testing, I have a tendency to play with the first "cool" thing I find. I know my mind will hyper focus on it whether I want it to or not so I tend to try and focus that attention (misguided as it sometimes is) on that element until I can complain / criticize it. Yesterday I was looking at a particle effect thinking "this is soooo F--- cool!!", I ended up playing with it and staring at it (zooming in and zooming out and swirling around, etc) until I got to the point where I stopped liking it. I found a bug or an inconsistency that nags at me. Now I can prioritize a bug and push back to the guy that wrote the particle effects. [caption id="attachment_124" align="aligncenter" width="322" caption="Particles"]
Media_httpfruhtcomlit_eixde
[/caption] Thats not to say that I don't put down a list of all the elements that need testing and drudge through it but when I get the itch to play with something I don't fight it, I embrace it. Its like in Call of Duty where you play the same level 400 times and in the end you stealthily sneak up to each enemy on the level (because you know where every single one stands and the pathing they go through) so you can knife them all.. that level of obsession works great in game testing because there are simply too many possible permutations to test to not be obsessive.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames
Wed, 28 Oct 2009 19:59:09 -0700 Game design is a Wicked Problem http://raincitygames.com/LittleSoldiers-8 http://raincitygames.com/LittleSoldiers-8 A wicked problem is a problem that can only fully be defined by solving it once. A problem where the requirements are emergent and not foreseeable from the beginning before implementation. The classic example from our area is the Tacoma Narrows bridge, otherwise known as Gallopin' Gertie . This bridge was designed to the best possible engineering practices but they couldn't have anticipated that the consistent wind force would create oscillations in the bridge that would eventually tear it apart. After the bridge collapsed the engineers went back to the drawing board taking into account the new understanding of the problem and designed a bridge that still stands today. Game design is a lot like that, there are best practices and formulas but the way each element interacts in practice is so subtle and the result is truly more then the sum of its parts.  Having stumbled on this perspective the hard way we've learned to write code that is modular and data driven. It was quite refreshing yesterday when we first started testing the user experience of the world map and finding out there were a number of unexpected friction points that were resolvable with single line code changes. Along those lines, we managed to get a few iPhones provisioned yesterday and have begun testing the game on the device. This is a good sign and means that portions of the game are maturing to a point where we feel we can start to polish them.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/4wejBjIV2cvL raincitygames raincitygames