Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
October 25, 2014
arrowPress Releases
October 25, 2014
PR Newswire
View All
View All     Submit Event





If you enjoy reading this site, you might also want to check out these UBM Tech sites:


 
The Indoor Pub Games Sports World PlayStationŽVita Post-Mortem
by Richard Hill-Whittall on 12/31/13 12:16:00 pm   Expert Blogs   Featured Blogs

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.

 

Our first Vita development experience - Indoor Sports World -  has been an interesting one. Personally it has financially ruined me; so many months of development all funded by not taking any wages. Developing a Vita engine, along with a fairly large game (it may seem simple but there is a lot of stuff in Sports World).

During the course of development my relationship with SCEE has been badly damaged, the stress and worry off the scale.

It has also been a really good learning experience, and it has forever changed my approach to development. No more developing and maintaining our own engine, trying to support new platforms and features. From now on it is third party all the way, using development systems such as Unity.

What Went Right

Focusing on solid graphics performance in our engine

We spent a lot of development time working on our game engine; adding effects and graphical touches and making sure they ran at a decent framerate. We looked very closely at the graphics effects in the Vita game ‘Hustle Kings’, as this seemed to be the game we would most likely be compared to. We wanted our game to look as nice if at all possible, and I think we managed to get close.

We added real-time reflections for the balls, so you can see the scene properly reflected on each ball. We also added a normal map to the ball surface to show slight damage/chips to the enamel of the balls. It is a slightly different approach to how the balls were rendered in Hustle Kings, but I was pleased as I didn’t want to directly copy their approach, and I feel this gave Sports its own identity.

IndoorSportsWorld14

Shiny Balls!

Next up were the other environment touches, such as nice reflective floors, water reflections, decent specular mapping and real-time shadows. I was the sole artist on the project, and as such I wanted to make each and every environment look as realistic as possible. My other aim was to have lots of variety within the environments, so they all looked very different to each other while still maintaining a level of believability – so you could expect to find such places in the real world.

I used normal mapping combined with real-time reflections to try and make the various surfaces look realistic and interesting. One incredibly useful tool I used for the job was ShaderMap, initially version 1, and later version 2. I tried Crazy Bump too, but preferred the extra control and lower price of ShaderMap. I used quite a few textures from CGTextures, and as none of them come with normal maps I had to create a lot of these from the textures, which is where ShaderMap came in. The key was to increase the detail on the generated normal maps; smoothed normal maps look horrible – like plastic wrap on everything. I also made sure the maps weren’t too intense, otherwise you get some nasty sharp edges in there where the light changes are too extreme.

IndoorSportsWorld15

Nice Lights and Shadows

The other real-time effects we experimented with were real-time SSAO (Screen Space Ambient Occlusion) – which is a rendering technique for adding subtle shadowing to all the nooks and crannies in the meshes, and Bloom. Bloom is the effect of light bleeding out from very bright areas, giving a subtle glow to the scene if used right, or a sticky coating of grease if overdone. Unfortunately we couldn’t get these two effects running fast enough, and decided that as they were only minor details, to drop both in favour of a solid framerate.

The final element for each environment was light baking; to render each environment with realistic lighting and shadows with minimal performance overhead. Our implementation works by a sort of reverse ray trace. It takes each pixel, works out what lights are visible from it; taking into account type of light, distance and light colour etc. and works out a lighting value for the pixel. Many of the scenes included dozens of lights added to provide a nice range of lighting and shadow variation.

So all in all a lot of time and effort went into making the graphics look as good as possible, to make each environment as immersive and believable as possible.

Adding plenty of detail in the 3d artwork

There’s not much point spending time developing graphics effects if you don’t have plenty of scene detail to utilize those effects. As such I really tried to add as many details and touches to each environment as possible. I used quite a few pre-built assets from sites such as Turbosquid and Dexsoft, for elements like furniture and fixtures and fittings. I found some amazingly good stuff on there – I think my favourite assets were the leather sofas from the Brewery Pub venue. I love those sofas!

The base scenes are about 20 – 30,000 polys (a mixture of quads and tris), the balls are several hundred each, the tables and dart boards another few thousand. Texture resolution was mostly 512×512, with the odd 1024×1024 texture in there on larger areas. Smaller detail bits were OK with 256×256 or even lower res textures.

I was surprised how much geometry detail and how many textures the Vita could handle. To be honest I expected to have to cut detail down a fair bit, but in the end I didn’t really have to compromise at all.

Plenty of Game Modes and Rule Sets

We tried to add a nice variety of different game modes, and rule sets for each of the games. While you always want more, I think we got a decent level of variety in there. I’d have liked online multiplayer, but it was just impossible given the resources we had (we are a two-man team; Steve on code and myself on art, design and audio). The offline multiplayer works well, and seemed a nice compromise.

We also tried to include plenty of unlocks and rewards, for customising the various game equipment such as play tables, cues, darts, boards, etc.

IndoorSportsWorldDLC

Unlocks/DLC Content – Click to View Full Sized

While we only included one Air Hockey mode, Steve spent a lot of time optimising to ensure that Hockey ran at 60FPS, which is essential to the smooth flow of the game.

What Went Wrong

Developing Our Own Tech

Historically, we have always developed our own tech; supporting several console platforms such as PS2, PSP and Wii. It seemed a natural progression to continue this and expand to Vita; can’t be that difficult eh! Well it was tough, coked-up Chuck Norris tough. The Vita is great and the development environment is first rate, but poor Steve just had too much on his plate. The task was huge, particularly as we had never added shaders into our engine before. All the new graphics effects were added from scratch. We ditched the old routines for things like specular and environment mapping, and rewrote them all to take advantage of what the Vita offered.

It all just took so long, Steve working silly hours adding to and adapting the engine. Even features like video playback and audio took a lot of time to get right and smoothly integrated into the engine. It was a killer – during this time we were not earning any money, it was all just one huge ever-increasing expense. Our release windows kept sailing by – we had originally planned to launch Sports (or Pub Games as it was originally named) shortly after the Vita launched, LOL!

Looking back I think we needed two or three engine coders to handle a task like this, but then without income, that is just not possible. Also the Vita just isn’t as powerful as say a PS3 or Xbox, so it required a fair few months of code optimisations to get decent performance out of the various shaders and effects. When we first added the various new effects the game ran at about 5 frames per second!

The Game was Too Big

It seems silly to say it, given the impression most people have is that the game is very simple. However, it is true, this is one big game! There were so many modes to keep track of, and the Arcade and Season modes take hours to fully test.

This is the odd thing with sports games; they seem simple but in fact are really difficult to properly test and balance due to the time it takes to play through modes like Season & Career. Add to that developer familiarity and you have a situation where you really need some fresh eyes and external QA support. We didn’t have the budget for this unfortunately, and it let us down.

IndoorSportsWorld10

My Favourite Venue – Club 16 Bit

Not Enough Testing Time

I hang my head in shame and admit Sports needed more testing. The difficulty isn’t properly balanced; it gets too hard, too quickly. As touched upon above, Steve and I were both so used to the way Sports plays that we were able to beat opponents that in hindsight are stupidly hard. The game is about amateur indoor sports, not professional sporting prowess.

It really needed an extra period of testing, testing and more testing. The other issue we had was that by the end of the project we were beaten; financially and morally. No money to live on and a sense that this game would never be finished if we didn’t get the bloody thing out quickly. I’ve had some tough development experiences in the past, but I think this was in many ways the most damaging. It just felt like it would never end, and when all your money goes, you get evicted from your house and have to sell your personal stuff just to buy food, you know you are doing something badly wrong!

TRCs and Sony QA Submission

Sony TRCs (Technical Requirements Checklist) are in short, a complete and utter nightmare. Again I really feel for Steve, I think his head actually melted at one point due to the extreme levels of pedantry associated with implementing the TRCs. There are just so many eventualities and scenarios you have to factor in to properly implement the TRCs. Also we tackled many of these at the end of the project, when we were both heartily fed-up with the whole thing.

Sony QA was an exercise in frustration too. When you desperately need to start earning money from the game, hitting QA is akin to running into a brick wall. The testing process is slow, and each resubmission adds a few weeks to the time it takes to get the game out. In total it was about two months or so of back and forth with QA before we were approved. One particularly frustrating round was the one where they only found one single issue, a MF (Must Fix) bug, which they found on day-1 of testing. 10 days later they conclude the testing with no more bugs found. Yay we thought, quick fix and we’re sorted. We resubmitted with the fix, and then on day-1 of the resubmission QA found one new MF issue, then no more.

Steve and I were convinced by this point that Sony hated us, and they were never going to let Sports get through!

What We Have Learned

First and foremost; never to attempt to develop our own tech again. I think that you need to be a fair bit larger than our two man team to effectively develop and maintain your own cross-platform tools & technology. You also need plenty of financial support in place to keep things ticking over during the R&D phase.

To ALWAYS give more time to testing; we made mistakes here and it has cost us in review scores and user goodwill. We are currently working on a patch to rectify these issues, primarily:

  • Tweak the AI, as Darts and Air Hockey are exceptionally hard to beat on later levels
  • Fix Darts issues; sometime it is too easy and sometimes seemingly random
  • The player’s finger obscuring the darts and pucks at times on the front screen
  • Add aiming aid for pool & snooker back into Arcade Mode

We always try to fix mistakes/hiccups if we can; user feedback is really important to us and one of the best bits of development.

Not to do a sports title again. In my career to date I have developed eight Pool/Snooker games, a PSP Darts game, two Bowling games and two games with Air Hockey included. They are always very testing heavy, and not the sort of games to ever really get good press coverage or build up a community. From this point onward I shall be focusing on original, unique games such as Life of Pixel, games that I can really get my teeth into and implement something special. With the exception of my first Unity test game, this is the direction Super Icon will go from now on.

And lastly that we need to earn more money; we can’t carry on making so little revenue – it is too damaging for our families and our own mental health & morale.


Related Jobs

Digital Extremes
Digital Extremes — London, Ontario, Canada
[10.25.14]

Sound Designer
Disruptor Beam, Inc.
Disruptor Beam, Inc. — Framingham, Massachusetts, United States
[10.25.14]

Lead 3D Artist
Red 5 Studios
Red 5 Studios — Orange County, California, United States
[10.24.14]

Graphics Programmer
Red 5 Studios
Red 5 Studios — Orange County, California, United States
[10.24.14]

Gameplay Programmer






Comments


Peter Eisenmann
profile image
Wow, it does sound overly optimistic to start such a project with only two people. But then, you seem to have a lot of experience with this type of game on consoles. Too bad it was such a terrible experience.
This console QA stuff would probably kill me, even if I do see why it's necessary.

Andrew Gahan
profile image
It's nice to see an honest postmortem -thanks guys and good luck with the game.

Kevin Hsu
profile image
that sounds rough, More QA Time is always needed there's never enough QA Time never enough time to find all the bugs coming from someone who does a lot of Beta testing.

John Wallace
profile image
Thoroughly written and thanks for some of the suggestions in using pre-made assets.

Richard Hill-Whittall
profile image
Thanks guys for the comments.

Regarding the ready made assets - another great place to look is on gametextures.com. I found it at the end of Sports, so I don't think I actually used their textures for Sports, but I certainly am on our new shooter Vektor Wars.

And the Unity Asset store too is incredible; some brilliant art on there.

Judy Tyrer
profile image
Thank you, as a 2.5 woman team starting an ambitious project I appreciate the take-aways, particularly with regard to testing. It takes a lot of time to write automated test suites, but in the end we will save ourselves more time than we spend by doing it now.

Wes Jurica
profile image
Thanks for sharing.

I had a particular troubling month of development leading up to the release of our game. Since I was the lone programmer, my brother (art) had to sit by and watch me fall into the abyss of despair trying to get the game out on Android and iOS. A week or so after the release of the game, the post-release high passed and left me with two months of depression. Finally back in the saddle again and enjoying my chosen career! Time heals all wounds!(?)

On the choice of games you two make, I think you are making the right moves going forward. If making small, high-quality games is a valid business plan for companies like Double Fine, then why not smaller two person teams like you two (and us two/too)?

Good luck and enjoy the benefits of Unity!

Richard Hill-Whittall
profile image
Thanks Wes. And you're spot-on, time heals and also let's you re-focus and reflect on what you have learned going forward.

Jonathan Jennings
profile image
I think it's the most beautiful and frustrating thing trying to make a game , as you state multiple times in your article the game seems simple but engineering it was anything but and while sure there are some areas where you could have taken another approach that would have made life easier I think one of the most exciting things is that understanding and knowledge that game development is so much more than meets the eye .

Where other people just see a player aiming at a billiard ball, hitting it , and seeing the balls react the game developer who has even a small bit of knowledge recognizes that the creation of that process was anything but a simple 3 step process not to mention the other numerous sub-systems i'm sure your game utilizes . Thanks for the awesome and honest post-mortem and I hope to give your game a try !

Michael Hogue
profile image
I don't suppose that you factored in that maybe you made games no one wants to play and blaming it on SCEE is what ruined you financially. Honestly, the gist of this blog comes off as "Nobody bought our mediocre game that we put our careers on the line for and its all Sony's fault"

Katy Smith
profile image
Ouch!

I took the article to be more like "we got in over our heads" than specifically blaming SCEE. Personally, I loves me some TRCs/ TCRs/ LotChecks, but I can totally see how they can be tricky, especially when it's new.

Richard Hill-Whittall
profile image
There was no blame in the post-mortem for SCEE. TRCs are frustrating, and I don't think the QA rounds were handled very well, but I suspect that was down to a Christmas rush on their part.

Not sure how you read into it that I was blaming SCEE, so I suggest you re-read it rather than acting like this.

And I have no idea if anyone has bought the game as yet, as we haven't had a sales report. The purpose of the post-mortem was to bring some closure to a pretty traumatic development experience and detail the things we have learned from it.

Jim Sanders
profile image
Wow, I hope things go better for you, it's quite the project to develop an engine. Good luck in the future!

Jim | http://www.evictionkingoflasvegas.com/


none
 
Comment: