Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

3206 Excellent


About gdarchive

  • Rank
    Third Party Articles

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. gdarchive

    Reverse-Normal 3d Outline Tutorial

    Duplicate your mesh. Apply flat black material for the outline. Select your duplicated model and reverse its Normal direction. 'Face normals' are the direction a face is pointing/rendering. Next, we turn on backface culling. 'Backfaces' are the sides of faces that are pointing away from the normal direction. Change your move manipulator to move based on normal direction. Then scale the mesh outwards. You can use a shader to do this but you will often get issues at corners where the faces diverge. Be mindful of your poly count since you're basically doubling it. If you're working super low-poly though it's all good! Note: This tutorial was originally published on the author's website, and is reproduced here with kind permission. Check out Brendan's ArtStation and Twitter accounts for portfolio and other tutorials.
  2. gdarchive

    Color Palettes

    Intro Due to my belief in learning through self-discovery and my ongoing creative evolution, I've long put off doing any tutorials. However, after making pixel art for over 3 years I've established many solid techniques worth laying out in a concrete fashion. While I'm excited by the prospect of helping others with my experience, I still urge artists to explore things their own way. The wonderful thing about art is the unlimited number of solutions to a problem. I offer you solutions that have worked for me and I hope they work for you, but I will be even more thrilled if you discover a better solution along the way. When it comes to pixel art, it all starts with a good color palette. Creating a custom color palette can be a very satisfying and powerful way to establish your own unique look. I'll guide you through my method as I create a new palette. But first, let's go over some basic principals. It's all about HSB I find it easiest to understand and control color through HSB. Hue - The actual color (0 - 360º) Saturation - The intensity or purity of a color (0 - 100%) Brightness - The amount of black or white mixed with a color (0 - 100%) By understanding and adjusting these 3 fundamental properties you can create custom colors with precise control. I recommend this article by Steven Bradley for more detailed definitions of HSB. Color Ramps A color ramp is a specific range of colors that work well together, arranged according to brightness. Here is an example of what I consider a good color ramp. Brightness steadily increases from left to right in this example. As the colors reach high brightness levels it's important to decrease saturation, or you'll end up with intense eye burning colors. Also, colors with very low brightness can become overly rich and weighty with high saturation. Saturation peaks in the middle swatch in this example. A good color ramp should also apply hue-shifting, which is a transition in hue across the color ramp. In the previous example the hue is shifting by positive degrees as the brightness increases. Many beginners overlook hue-shifting and end up with 'straight ramps' that only transition brightness and saturation. There is no law that says you can't do this but the resulting colors will lack interest and be difficult to harmonize with ramps of a different hue. This only makes sense to me if you want a monochromatic look and stick to one straight ramp. The Palette A color ramp is essentially a palette, but most palettes contain multiple ramps. I like to create large palettes with lots of ramps, which I can then pull smaller palettes from per assignment. Mondo - 128 colors Become a Pixel Insider member and download Mondo I took the opportunity to make a brand new palette for this tutorial. My intention was to create a general purpose palette that strikes a balance between vibrant colors and desaturated natural colors. So, how to make such a large palette? First I decide how many swatches I want per ramp and how many degrees of hue shift. For this palette I want 9 swatches per ramp with 20 degrees of positive hue shift between each swatch. I like a lot of hue shift because it creates harmony between ramps and just looks neat, but 20 is about as high as I go. The color picker panel in Photoshop. We only need to be concerned with adjusting HSB. I use Photoshop, but a similar color picker panel should be accessible in just about any graphics software. To start I pick a color that will fit right in the the middle of a ramp. The hue is somewhat arbitrary, but the saturation and brightness is critical. I want the middle color to be be the most vibrant so I set the saturation and hue to the max combined number I'm willing to go. After I've chosen my first color I can set the hue for the remaining swatches based on the positive 20 degree shift I wanted. I could reverse the direction of hue shift if I want but positive hue shift usually results in more natural colors, warming as they become brighter. I still need to sort out the increments for S&B. Unlike hue, shifting the S&B in uniform increments doesn't necessarily produce satisfactory results. However, there are a few tendencies I follow. Brightness consistently increases from left to right and usually never starts at 0, unless I want black. Saturation peaks around the middle and never fully goes to 100, or 0. The goal in mind is to create even contrast between each color. After some tuning and eyeballing these are my final values and resulting color ramp. The hue shift looks pretty strong but it will make sense when I add more ramps. This version shows the difference in the increments. Pay attention to what the S&B are doing. You can see there is some consistency in the pattern. The saturation takes larger steps on the ends and smaller steps in the middle where it's the highest percentage. The brightness takes smaller steps as it gets closer to the end at full 100%. Here's another visualization that clearly shows the flow of S&B as line graphs. You don't have to follow this general flow of S&B. It just depends what look you're going for. I've made ramps where the saturation continues to climb as the brightness decreases, creating an X pattern. This results in vivid dark colors. The biggest mistake is combining high saturation and brightness, unless you want to burn some eyeballs. I recommend a lot of experimentation with the HSB values of your ramp. I've tried to come up with mathematically precise formulas but it always seems to come down to trusting the eyeballs to some extent. Now let's finish the palette. Up to this point all I have been doing is picking colors and drawing them as single pixel dots on a tiny canvas. I haven't actually added any swatches into the swatch panel. With the first ramp established all I have to do to create more ramps for my palette is shift the entire set of hues. I want 8 ramps total so I will shift the hues of each ramp by 45 degrees to complete the 360 degree cycle around the color wheel. I could do this in the color picker by adjusting the H value one color at a time, but In Photoshop I can save a lot of time by duplicating the ramp and changing the hue of the entire selection (Image-Adjustments-hue/saturation, or ⌘+U). After adjusting the hue of all my color ramps my palette appears like this. It looks pretty nice but It's lacking more neutral desaturated colors. To add desaturated colors I duplicate the whole middle section of the palette, omitting only the darkest and lightest colors on the ends, flip it over and desaturate them with the Hue/Saturation panel. I omit the light and dark columns because they appear nearly the same as the originals. I flip the colors because it makes for easy navigation, and it looks cool. The desaturated colors can provide a more natural look, and work well as grays in combination with the vibrant colors. The final task is actually adding the colors into the swatch panel. With the color picker panel open I sample each color with the eyedropper and click the 'Add to Swatches' button. I add them from left to right, top to bottom so they will appear in the swatch panel in the correct order. This is quite tedious but the only way I know of to add the colors in the particular order I want. Once I've added all the colors into the swatch panel I click on the panel options and make sure to save my palette. I can then easily load the palette as a .aco file into the swatch panel anytime. Also, by selecting 'Save Swatches for Exchange' you can create a .ase file, which can be loaded into several other Adobe programs. Save the image of your palette as a .png file and you can load it into Aseprite. Well, that completes my 128 color palette - Mondo. Now let's look at how I use the palette with some examples. Picking Colors This example keeps it pretty simple, mostly relying on horizontal ramps of adjacent colors. You can also see how the warm desaturated colors work nicely with the vivid hues. I've added white into palette for extra contrast. This example shows how ramps can move horizontally and diagonally. Because of the hue shift every color is surrounded by colors that can work together. Harmony is everywhere, just pick and play! This example uses complimentary color in combination with neutrals. The result captures an ominous yet hopeful feeling that perfectly fits the mood I wanted. Picking colors for your art always requires some good sense, but a versatile palette with criss-crossing ramps like this makes it much easier. A little color goes a long way with pixel art, as you can see I never use a lot of colors for any one image. Creating a palette with this method also works great for game art, and will ensure everything in your game has consistent colors. I used this method to create a 160 color palette for Thyrian Defenders. We've been able to depict an incredible range of environments and characters while maintaining a consistent look overall. Other aesthetic choices come into play, but color is the fundamental ingredient that ties everything together. Final Word Overall I'm quite happy with how this palette turned out. I think you'll be seeing more of my work in the Mondo palette from now on! I hope this helps you come up with some palettes of your own. I know It can take a bit of time to get a feel for HSB, but even if you're a beginner I think making palettes like this is a great way to understand color. Go crazy with HSB and don't be afraid to experiment with formulas that look different than my example. Also, you don't have to make such a large palette. Start with trying to make a small ramp. About The Author Raymond Schlitter (Slynyrd) is a former graphic designer who turned his creative passion to pixel art and game design in early 2015. Now he shares his knowledge with tutorials while he continues to make fantastic art and work on games. Support him on Patreon and get the inside scoop on his latest work. Note: This post was originally published on Raymond's blog, and is reproduced here with kind permission from the author. If you enjoyed this article please consider supporting Raymond on Patreon, where he provides backers with exclusive downloads such the Mondo palette as .aco, .ase, and .png files. Get Mondo! You can also make a one time donation to the author if you prefer not to subscribe on Patreon. [Wayback Machine Archive]
  3. gdarchive

    Composition 101: Balance

    In physics, Balance is that point where a specific distribution comes to a standstill. In a balanced composition, all elements are determined in such a way that no change seems possible. The piece must give the feel of steadiness, otherwise, it will just seem off. Rudolf Arnheim, in his Art and Visual Perception book, stands that there are 3 elements to balance: shape, direction, and location. He also says that in the case of imbalance “the artistic piece becomes incomprehensible […] the stillness of the work becomes a handicap”. And that’s what gives that frustrating sensation of frozen time. In this simple example, you can see all this. Having the sphere off center gives the sensation of unrest. The sphere seems to be being pulled to the corner almost. It’s if like an invisible force is pulling it from the center. These pulls are what Arnheim calls Perceptual Forces. And with the sphere in the center of the walls, you have the sense of balance, where all the forces pulling from the sides and corners of the square are equal. Returning to physics, we can say that when talking about Balance the first thing that pops into our heads is Weight. And that’s what it is all about, what we think. Because, as I said before, perception is just the brain processing images. So, if when we talk about balancing something we think of weight it definitely has to have something to do with it in art, right? Exactly. Arnheim talks about knowledge and weight in balance referring to the fact that anyone who sees a picture of a scale with a hammer on one side and a feather in the other knows that the first one is heavier. If the scales are perfectly balanced it will just seem off. But balance does not always require symmetry, as we might tend to think. Isn’t equilibrium that brings balance. If the scales tilt to the “correct” side (the hammer) perceptual balance would have been achieved. In Art, as in physics, the weight of an element increases in relation to its distance from the center. So an object in the center can be balanced by objects to the sides, and objects on one side of the frame must be balanced with objects in the opposite location. But this doesn’t mean that the objects must be the same (symmetry and equilibrium), for there are properties that give objects weight besides their actual apparent weight. SIZE. The larger the object, the heavier. COLOR. Red is heavier than blue. Also, bright colors are heavier than dark ones. ISOLATION. An isolated object seems heavier than the same object accompanied by smaller ones all around it. Arnheim puts the moon and stars as an example here. SHAPE. Experimentation has shown that different shapes affect the way we perceive weight. Elongated, taller, figures seem heavier than short ones (even though they both have the same area size). To expand on this matter I recommend you to go back to the books I will reference in the sources down bellow. Even though these are really simple examples, I plan to move on with this theory applied to environment art. The whole take on Balance gives all the world building process a solid base stone. Embracing these principles will help you understand and better plan object placement in your scene to avoid the feared feel of steadiness Arnheim warned us about. There is still a bit more to explain about Balance so I will be expanding a bit more on this matter in future posts. Thumbnail art: Madame Cezanne in a Yellow Chair, c.1891 - Paul Cezanne Sources: Arnheim, Rudolf (ed.) Art and Visual Perception. A psycology of the creative eye. University of California. 1954. Bang, Molly. (ed) Picture This. (1991) Baker, David B. (ed.). The Oxford Handbook of the Psychology. Oxford University Press (Oxford Library of Psychology), 2012.
  4. Last Rites is an isometric role-playing game that takes place in TSR’s Planescape setting. It uses the Bioware Forgotten Realms engine with Interplay artists supplying the Planescape ambiance and feel. The player creates a single character. Over the course of the game, the player picks and chooses a series of allies (pals and romantic interests) to join his party and allow him to kick ass more efficiently. The maximum party size at any one time is five. Download: Torment_Vision_Statement_1997.pdf
  5. During the development of Metal Gear Solid 2: Sons of Liberty, Hideo Kojima came up with a Grand Game Plan for the sequel to Metal Gear Solid and how it would be utilized on the PlayStation 2. The Grand Game Plan was included in The Document of Metal Gear Solid 2, although only in the original Japanese text. In July 2006, Marc Laidlaw of Junker HQ released an English translation of the Grand Game Plan: MGS2gameplan.pdf
  6. gdarchive

    Ion Storm Design Docs

    Scanned collection of design, planning, and concept documents from Ion Storm. Download: Ion Storm Design Docs.pdf
  7. The Thief 4 Game Concept Submission Document from 2004. From the document: Download here: Thief 4 Submission Document.pdf
  8. gdarchive

    The Sims Design Docs

    A collection of design documentation from the development of The Sims from Electronic Arts and Maxis, dating back to 1997. 3DPeopleQuestion.pdf AnimationClassBreakdown.pdf AnimationDocumentation.pdf ArtDepartmentPostMortum.pdf BrainstormProblemListForArtTeam.pdf Ch00-TableOfContents.pdf Ch01-Goals.pdf Ch02-World.pdf Ch03-Objects.pdf Ch04-People.pdf Ch05-PetsAndPests.pdf Ch06-Simulator.pdf Ch08-Framework.pdf Ch09-Architecture.pdf Ch10-Graphics.pdf Ch11-Movement.pdf Ch12-CharacterAnim.pdf Ch13-Sound.pdf Ch14-Resources.pdf Ch16-Tools.pdf Ch17-TDSB.pdf Ch18-ContentDevelopment.pdf Ch19-SoftwareDevelopment.pdf Ch20-Documentation.pdf Ch21-Happy.pdf Ch22-ContainedInteractions.pdf CharacterRenderingDevelopmentPlan.pdf ComprehensiveArtAssessment.pdf ContentCreationRules.pdf CuckooClock.pdf EdithDocumentationOverview.pdf EdithPrimitives.pdf FailureTrees.pdf FigureNG.pdf FloatCompression.pdf GuineaPigCage.pdf HappyFriendsHome-2-10-96.pdf HitSoundRevivew.pdf HitSystemDesign.pdf HowToPursueHappiness.pdf JeffersonCharacterMotives.pdf JeffersonDemoTutorial.pdf JeffersonTools.pdf MasterIDAndSubIndexOverview.pdf MaxisSimRules.pdf MooseHead.pdf NotesFromMaxisNewPencilPostmortem.pdf ObjectFileFormat.pdf ObjectIFFFileFormat.pdf ObjectList.pdf ObjectMakingProcedure.pdf ProgrammingObjectsInTheSimsV3.pdf ProgrammingSimsDialogs.pdf ProposalForExtendingTheSimsFranchise.pdf QuickReferenceGuideForTheBewSimsSpriteExporter.pdf ResourceEXE.pdf ResourceFileOverview.pdf SimsBoxXSpecAndDesign.pdf SimsContentLibraryNotes.pdf SimsFileFormat.pdf SimsScripts.pdf SimTransmogrifierDesign.pdf SimTransmogrifierTODO.pdf SlotMachine.pdf SpriteGeneration.pdf Storytelling.pdf Strategy.pdf SuitConventions.pdf TDRObjects.pdf TDSB.pdf TDSBInfo.pdf TechnicalEmail.pdf TheSimsDesignDocumentDraft3-DonsReview.pdf TheSimsDesignDocumentDraft5-8-31-98-DonsReview.pdf TheSimsDesignDocumentDraft5-DonsReview.pdf TheSimsDesignDocumentDraft7-DonsReview.pdf TheSimsPieMenus.pdf TheSimsProjectCompletion-18-12-98.pdf TheSimsQuickStartGuide.pdf TheSoulOfTheSims.pdf TheStateOfTheArtAndGoingForwardToE3.pdf Tools%20Proposal%20Updated.pdf TransmogriferRenovationPlan.pdf VirtualMachine.pdf VitaboyOverview.pdf VM.pdf VMDesign.pdf WallLights.pdf XAnimatorDesign.pdf JeffersonDevelopmentMilestones.pdf JeffersonGameDescription.pdf JeffersonSpectrumOfChallenge.pdf SpriteRotations.pdf TDSEditToDo.pdf
  9. According to WSJ, the global mobile game market is expected to increase eightfold from $3.77 billion in 2010 to $29.6 billion in 2017. And among all the countries, the Asia Pacific region, with China and Japan as leaders, is the biggest market for mobile game developers with 48% of the global revenue and three times more paying gamers than the second biggest region, North America. Considering these statistics, it?EUR(TM)s no surprise that there are countless mobile games trying to expand abroad each year; however, very few can claim success. Part of the problem is that mobile gaming has become a modern-day gold rush. Worldwide developers flooded the market hoping to strike it rich, making today?EUR(TM)s mobile game market extremely competitive, no matter in domestic or oversea markets. But the biggest factor is that developers often underestimate the challenges and importance of mobile game localization. In our experience of helping mobile games go global, here are six common mistakes they make when jumping into the international market. Avoid these, and you will greatly increase your chances of success. 1. No explicit international strategy and plan The most basic and early stage mistake a game developer can make is failing to understand that localization is more than word-for-word language translation. Whenever you plan to take your game global, first establish a localization strategy that answers questions like: What factors characterize an attractive market for your company? (e.g population, GDP, mobile penetration, competitors, language, regulation, cultural factors, partners...) What?EUR(TM)s your prioritized list of the top 10 world markets based on these criteria? Can we test the demand of a market before going all-in? What are the market needs of each? Can your company address multiple markets at the same time? Should you find a local partner? What?EUR(TM)s your go-to-market strategy for each country? Lack of commitment and understanding in localization often kills an international initiative. Therefore, make sure your company has a strong corporate champion to drive the in-depth research, explore the markets and own the execution once the strategy is done. Without formulating the right strategy and translating it into actions, your game will fail, no matter how many languages it supports. 2. Ignoring localization in the early phase of game development Many game developers try to postpone localization-related discussion until the end of the development cycle, but they don?EUR(TM)t realize that they have made a huge mistake from the moment they write their first line of code. What this typically equates to is a lot of rework and additional costs to go back and modify your code to work when you add new language and localization requirements, costing your company thousands (or millions) of dollars and months of delay in getting into overseas markets. Instead of doing costly rework down the road, your team should make an explicit decision on internationalization upfront. Is your code well-prepared for the pre-translation phase? Are your UI strings all externalized? Have you given careful consideration in international non-text elements such as symbols, colours, time and date formats, and currency symbols? If your code isn?EUR(TM)t localized in the beginning, the problem is getting worse with every line you add. 3. No ?EURoeculturalization?EUR? process To increase the odds of a title?EUR(TM)s success in international markets, great attention must be paid to the cultural aspects. Basic language translation is the bare minimum that any game developers should be doing. Ideally, your translators should be able to adapt your game content to the local culture because culturalization is a necessity. ?EURoeWhat we learned about international markets is that it?EUR(TM)s not enough to localize the content by just translating it. Instead, we have to culturalize it,?EUR? Craig Alexander, VP of Product Development for game studio Turbine, said. In order to create the best gaming experience, your translators have to understand foreign cultural traditions, the latest pop culture in the targeted country, local points of reference, etc. The same applies to non-text assets. For example, while showing a peace sign is normal in the USA, a reverse peace sign suddenly becomes an insult in places like the UK. Why did EA?EUR(TM)s Plants vs. Zombies become one of the biggest mobile hits in China? Just look at the localised design of the zombies and the Great Wall background in the picture below. Keep in mind that you can build gamer loyalty by fully capturing a regionally exclusive experience within the game. 4. Underestimate the challenge of global mobile game distribution If you think that all the mobile game distribution channels in every country are similar, you are making a big mistake! In the rush to launch overseas, this is often the most overlooked problem by game developers. Do you know that China doesn?EUR(TM)t have Google Play? Instead, it has around 200 Android app stores creating a highly fragmented market. Without a system in place to track the performance of these channels, you basically can?EUR(TM)t have accurate strategies for distributing your app in this country. Each of those app stores serve a different audience with their own characteristics. You need to look at their different behaviours and adapt your games to different situations. For instance, market leaders often create different versions for different app stores. In other words, if there are 20 app stores they want to target, they will create 20 different versions and marketing strategies for their games. Due to these complexities, many western game developers work with local publishing and localization partners when they are trying to expand to China now. When your team comes up with the localization strategy plan, make sure to discuss whether a local partner is needed. 5. Failing to localize the monetization strategy Although your code and content may be the most obvious localization candidates, your revenue model is equally critical. In some developing countries, like China, their game players don?EUR(TM)t make as much money as the average US gamers. Your business model needs to reflect that reality as a result. When Plants Vs. Zombies 2 launched in China, they initially tried to optimize for the monetization too much, making the game way too hard and expensive to play, which backfired on user?EUR(TM)s reviews and dropped their rating from five star to two at one point. To overcome this, they learned from the experience and tried to figure out the right balance of difficulty and how to reasonably ask for money by changing the game?EUR(TM)s economy. Now they get far fewer negative reviews than before. When sharing his learnings at the Game Developers Conference, Leo Liu, GM of EA Mobile in China, said, "The Chinese market is so different, you have to be prepared for anything unusual from the Western perspective.?EUR? Make sure you won?EUR(TM)t repeat their mistakes. 6. No on-device testing and translation review prior to release This is an amateur problem that is so easily avoidable and yet we came across it time and time again. You work so hard on the game, create a great localization plan, translate UI strings, it launches, and suddenly, you realise something is broken. You find out that some extra long German words break some of your game UI! But the worst part of this scenario is when your CEO asks you how this happened, and you say, "I thought the translator was taking care of it?EUR??EUR? Never assume and never leave anything to chance. At the end of the day, if something does go wrong, and you could have easily prevented it, the responsibility is on you. Professional translators are human and people make mistakes sometimes, especially in the complex, fragmented and rapidly evolving world of mobile. Make sure your localization partners provide localization testing and review services on a number of mobile devices because you can?EUR(TM)t afford to disappoint your users with buggy games. After you?EUR(TM)ve received a poor rating, there is no way to hide poor quality in the world of mobile. Conclusion It?EUR(TM)s true that international expansion is hard to get right. Therefore, clear ownership, good strategy up-front, and great execution are critical. That way your mobile game will be in a great position to take advantage of the huge international opportunity! If you want to learn more about whether your mobile games are on the right track in terms of localization strategy, I invite you to get a Free Assessment with our Localization Managers today. We?EUR(TM)re here to help! Simply click the banner below to join the invitation. Note: This article was originally published on the OneSky Localization Blog and is republished here with kind permission of the original author.
  10. With Toto Temple Deluxe being almost ready for release (aiming for Summer 2015), we decided it was time for us to attend a real big event like PAX East. It was our very first PAX, with our very first 10' x 10' booth, for our very first console game release! We thought it'd be a good idea to share our overall experience, especially since we experimented a bit with marketing, as you can see in the title. Up North Indies We had our very own booth at the convention, but we were part of a bigger (and brand new) group called Up North Indies. We're essentially a group of multiple indie developers from Montreal/Quebec getting together to share knowledge, but also to get easier access to events like PAX. We've been learning and getting a lot of help from the other studios by being part of this group. We're definitely lucky! We made the logo for the group with some generous help from design superstar Cory Schmitz We had a little bit of branding at the event to identify each booth as part of the UNI, but we couldn't get anything big done in time (a huge hanging banner, for instance). We learned a lot from PAX, which was our first group event, so we'll definitely have better presence at future events. Photo by the Parabole crew, check out their game Kona! Designing our first 10' x 10' booth The event was in Boston, so about 5 hours drive south of Montreal. We managed to get there by car to save money, but the downside was that our car was pretty small and we couldn't travel with a lot of equipment. We still managed to get two 7' tall TV stands, two 42" TVs and one 50" TV. Here's how we did it. Empty, but not for long! First thing we took in consideration for the design of our booth is that we were on a corner (still lucky). We took advantage of that and tilted everything diagonally to face both sides simultaneously. We think it played a big role in the success of our booth. We also wanted to have one main TV station for players, and some higher cloned TVs for spectators. Since a single Toto Temple Deluxe match doesn't last very long, we didn't bother with chairs and stuff. Everyone played while standing up and rotation was fast. As this was our first big event with our first "big" booth, we had literally no equipment. We always managed to get by with borrowed stuff, but this time we had to invest in some new equipment. The monsters. We got ourselves some pretty tall TV stands from Displays2Go. They're heavy as hell, but they can support really big TVs up to 7' in the air! Our booth also came with a table, so we had enough to support 3 TVs in total. Speaking of TVs, we had no room in the car for 3 big TVs, so we simply decided to "rent" them at a nearby Best Buy in Boston. And by rent we mean buying them and taking them back after the event by saying it didn't fit our needs after all. No questions asked, thanks Best Buy! How we got noticed To put things in perspective a bit, we originally designed our PAX demo so that matches would be really quick. That way, we'd have a better flow and more players would try the game. Since matches wouldn't last long enough for the crowd to feel any major engagement, or for hype to build up, we needed a better way of getting spectators more engaged in the game as they were looking at it. See that crowd? We sort of designed it. Normally, only the 4 current players would be really engaged in the game. Maybe they were with a friend, and maybe that friend would get engaged and cheer a bit, but we felt like it wouldn't be enough to build enough engagement / hype overall. We then heard of a strategy that the guys from Vlambeer were doing at events for Nuclear Throne. They would have hourly challenges where everyone watching would get a free copy of the game if the current player managed to beat the game. That would normally encourage people to stay and look at the game. They would have something to win (or lose), so they should feel engaged. Yellow warning signs: A pretty good way of getting people's attention! We thought it was really clever and it would totally fit our needs, but we decided to push the idea a bit further. Instead of asking players to come back every hour to have a chance of winning a free copy of the game, we decided that every - single - match would be an opportunity to win a copy of the game. With that in mind, we needed something to link the giveaways to. Ideally, something that wouldn't happen every match, but only once in a while so we don't end up giving away 50,000 copies. That's when we came up with the showdown system. The Showdown system If you've followed the development of Toto Temple Deluxe a bit, or simply played the game, you know there's 2 main game modes. The Classic mode, where you fight for an egg-laying goat to make points, and the Bomb mode, where you fight for an explosive goat in order to kill your opponents with the blast. With the showdown system, pretty much all spectators got to see both modes. Since we needed something to link the giveaways to, we figured we could use the bomb mode for that. Here's how the system works: The winner of each match (in Classic mode) would be automatically thrown in a 1 vs 1 bomb showdown against 1 bot (set at hard). If that player manages to kill the bot 2 times, everybody watching would get a free copy of the game. BAM. It was also a good way of having players experience both modes and discover the game's content without having to come back to play a match in the other mode. The goat hat was necessary to participate in a showdown. To make things more official / exciting / funny, we also crafted goat hats for the winner to wear during the showdown. It had the effect of making the crowd laugh, friends would take pictures (always good), and it made the people passing by wonder what it was. We also needed people to know that they could win a free copy of the game simply by looking at it, so we designed 2 big signs explaining the rules and hung them over the cloned TVs (which you probably already saw in the pictures above). Giving away 1,700 keys in 3 days Every once in a while, a skilled player would win a match AND the following showdown. Here's what it looked like: [media][/media] As you can see, the showdown system managed to build hype and engagement from the crowd. It worked really well! Maybe a bit too well. The amount of showdown victories were reasonable, so we planned them right, but what we didn't expect what the amount of spectators watching the game! What happened was that spectators would literally stay and watch until someone eventually won a showdown. The crowd would grow bigger and bigger over time, but it had the weird effect of clearing the whole booth as soon as we handed out the keys after showdown victory. It was funny how empty the booth was after each victory, but a brand new crowd would form really quickly as 4 news players stopped to try the game. We were handing out printed Steam keys like these. We started out with 900 keys, and thought it would be enough for the whole event. We were dead wrong. We actually ran out of keys by the end of the second day, and Steam wouldn't let us generate more during the weekend, so we had to find a temporary solution on next morning. Actually, Marion kicked us out of our beds really early so we'd have enough time to plan the new solution. Good thing she was there! Our friend Alex from Tiny Build suggested we use a system similar to theirs. We simply had to generate a QR code that would point to a MailChimp newsletter, so that we can contact everyone later and send them their keys. Brilliant! The only detail we added was a unique string code to each paper, so that one QR code couldn't be used by multiple people. We had to cross check them manually, which could be automated with a bit of PHP and a database. The new keys! They are more flexible, so we might end up using that for our next event. We managed to get 1,000 new keys printed at the on-site Fedex office in the morning, which was super helpful. By the end of the event, we handed out about 1,700 keys, of which about 500 have been redeemed at this date. 1,700 keys. Was it worth it? It might look like a lot of keys at first, but they probably won't get all redeemed in the end (fingers crossed for not too many resellers). We also saw a couple players win more than one Steam key. Because why not. For the attention it got us during PAX, we definitely think it was worth it. We actually saw a lot of people stop by out of curiosity, in part because of the huge crowd, in part because they could get something for free. As they stood there and waited for something to happen, they usually tried to make sense of the gameplay. By the time they would reach the controllers as the crowd rotated, most of them already knew how to play. In other words, those big "free keys" signs acted as some kind of salesman, stopping players and introducing them to our game. All of that without us having to say a single word! **UPDATE from Reddit** In terms of how many players saw the game or learned about its existence, it's a bit hard to estimate. We had at least 4 new players every 7 minutes on average. Considering the game was available to the public for about 8 hours a day, we had around 70 matches / day. 70 matches x 4 players = 280 players / day, so 840 for 3 days. Let's round it down to 800, so we get rid of players who played multiple times. We had around 800 players for the whole event. Knowing that we gave away 1700 keys, and that a lot of people watched the game and never got a key, we could estimate that at least 50% of all spectators got a key. It would mean that around 3500 people learned about Toto Temple Deluxe's existence at PAX. That doesn't include people winning a key just by watching and then talking about their experience to their friends. Now we can't say for sure how much more people the promotion attracted, but we feel like it's at least twice as much. Tournament system (elite only) On top of the showdown system, we also experimented with an "easy" tournament system. We say "easy" because we didn't want to manage names, lists, finalists, whiteboards, time, etc. The system we went with was a "ticket" system, where the winner of each match would not only be thrown into a showdown, but would also get a tournament ticket. Pretty sure Charlie would have traded his golden ticket for one of these. A tournament ticket would let you enter the one and only tournament we had each day at 5pm. First-come, first-served! We would then do 4 rounds of 4 players each, and then have the winner of each round play in the final match against all the other winners. So, technically, these 4 last players would be best players of the day. The big winner of the tournament would win a Juicy Beast t-shirt + would end up in the game as an unlockable cameo to replace the goat! The system worked well, as we only had one tournament each day (no need to check the clock every hour or anything), plus since it was first-come first-served, we didn't have to deal with name lists and whiteboards. It was a good system for quick and easy tournaments, but we doubt it'd work for anything bigger or more serious. Expenses Since it was our first big event, we had to invest in stuff we won't need to buy twice, like TV stands and promotional banners. It ended up a little bit expensive for the small budget we had, but we're still pretty happy with the results. Here's a breakdown of the costs, for a total of about $8,000. No, we won't pay for that. It's important to note that, out of the $2,380 for the PAX related fees, there was one specific invoice that could have been avoided. We had a little issue with the company that handles pretty much all the logistics at PAX (Freeman). Before ordering our TV stands, we called Freeman and explained that it was our very first PAX and that we had no idea how we could get the stands to our booth. We heard that we could have them shipped there, but we didn't know what the process was, or what were the details. The person we spoke with told us that we could simply have our equipment shipped at the convention center on a specific date, and they would take care of all the rest (get the stuff to our booth, etc). We were pretty surprised by how simple that was, and they confirmed that it was an included service for all exhibitors. We said "Really?", they said "Yes". We mentioned we had no idea how things work, so they must have told us everything we needed to know! Well, that was easy! We simply ordered our TV stands online and had them shipped at the convention center. When we arrived at PAX, everything was neatly stacked at our booth. Awesome! So on the last day of PAX, we receive a nice little invoice from Freeman, listing all the packages they had to carry to our booth. Since the TV stands weigh 175 lbs each, the invoice ramped up to about $900 USD... *spits coffee* Wait. What? The good news is that, after placing some complaints at their office twice, debating over the fact someone on the phone told us the service was included, and demonstrating that paying $900 for $1000 worth of equipment while we came by car from Montreal made no sense at all, we managed to get the invoice dropped to $380. It's still a lot of money very badly spent, but it's better than $900. Next time, we won't use any of Freeman's services by default. Heck, even using small rolling carts to move our equipment out after the show was expensive. What went wrong Not much actually, but there was still a couple things we'll do differently next time. 1,000 flyers / buttons weren't enough, we should have ordered 1,500. We should have printed more free keys from the start (at least 2,000). We had a lot of equipment to handle for just 3 people with a small car. The goat hats were cheap but wouldn't fit well on everybody. We should make better hats for the next event. Big media appointments didn't show up because of the snow / flights being canceled. Freeman charging too much for handling the equipment (and lying to us on the phone). What went right Overall, pretty much everything went right. We found a couple of new things that we'll probably try to repeat for next events though, like: AirBnB was way cheaper than hotels. We used a Karma to get really cheap wifi for the whole event. Boston was close to Montreal, so it was possible to go by car and save a lot of money. The 2 TV stands helped a lot and made it easier for everyone to clearly see the game. Giving away keys attracted a LOT of people to our booth. Using the QR code trick for the keys also got us a couple extra emails in our newsletter (over 500 for one day, but could have been more if we would have used it from the start). The tournament system worked well, it was an easy solution for quick and simple tournaments. Being positioned on a corner definitely helped, especially with the crowd we had. Having only one playable station was definitely easier to manage with only 3 people. So, was PAX East worth it? Hell yes! We would totally do that again. We've never had such an engaged and fun crowd before. We totally connected with players and it felt great! Hopefully you found something interesting in that super long post. If you have any questions, tips, suggestions or comments regarding our experience or the article, please share them in the comments below! Note: This article was originally published on the Juicy Beast blog, and is republished here with kind permission of the author Yowan Langlais.
  11. gdarchive

    Substance Painter Review

    There are two ways to add details to a 3D model. For one, you can increase the number of polygons in a model to add expressive details. The popular modeling packages ZBrush and Mudbox are excellent at this, allowing users to sculpt exquisite models. But, this detail comes at a cost. Ultra high-res models, like those that are sculpted, are hard to animate and don't work very well in even the most advanced game engines. This brings us to the second way to add detail to a 3D model - with textures. An advanced set of textures can make even a simple sphere look incredible and with the use of normal maps, you can even simulate the sculpted effects of a model. The downside to textures is that they are hard to paint and apply to models. The typical workflow includes painting a texture and applying it to the model and then tweaking the mapping to make the texture fit the model and then return to touch up the texture, then rinse and repeat. This is a cumbersome process that takes a lot of time to get just right. This is where Substance Painter enters the scene. Substance Painter lets you paint directly on the 3D model with materials. All the major 3D packages include features that let you paint directly on the models, but they only let you paint with a single color or with a brightness value. Substance Painter lets you paint with complete defined materials and the paint strokes update all the required texture maps at once including diffuse color, brightness, specular, metal, etc. This is a huge benefit, allowing artists to paint a texture in a single package all at once without the whiplash of moving back and forth between various packages. Streamlined Workflow Once a model is loaded into the Painter interface, all its current textures are automatically identified and loaded with it. These can include normal maps, ambient occlusion maps, lighting passes, etc. You then specify the specific channels that you want to include. The options include the usual suspects such as Base Color, Height, Specular, Opacity, Roughness, and Metallic, but you can also include Emissive, Displacement, Glossiness, Anisotropic, Transmissive, Reflection, Ior and several user-defined channels. For each channel, you can specify the format to use when the texture is saved. After the channels are set up, you can then choose a material and begin painting. Each separate channel gets updated as you paint. You can also switch to solo mode to view and work with a single channel by itself. Once the texture is completed, you can export all the various channels with a single command. Each channel will share the project name and will have its channel name added on. Since you can view and verify the results directly within the Painter interface, there isn't any need to return to the originating modeling package. The files exported out of Painter can be loaded and used directly in the game engine. Advanced PBR Viewport Substance Painter isn't just a nice extension to your current 3d software (see Figure 1), it is a full-blown texturing package with its own interface, tools and an advanced viewport that can view realistic textures (PBR). Figure 1: The Substance Painter interface includes moveable panels of presets and tools along with an advanced viewport for viewing realistic (PBR) materials. The viewport gives you controls for adjusting the background environment map, the environment opacity and exposure. Using Substance Materials Substance Painter naturally uses the Substance Materials (Figure 2). Substance Painter comes with a large assortment of materials pre-installed and ready to use or you can purchase and add several additional material libraries. The software also lets you import and use any custom GLSL shaders that you've created. Figure 2: The default Substance materials included with the software offer a wide array of options. The nicest thing about the Substance Materials is that they are gorgeous. These shaders are built by material experts and they hold up really well under all kinds of lighting and environments. In addition to materials, the interface Shelf also includes a large assortment of brushes, decals and tools. These are alpha channel stencils that let you quickly add material details include bullet holes, zippers, frost, fur, bolts and rivets. Painting Tools The available painting tools include Paint, Eraser, Projection and Geometry Decals. Each tool can be customized and tweaked with a large assortment of controls including Size, Flow, Spacing, Angle, Jitter, Shape and Hardness. There is also a real-time interactive preview window that shows the results of the current settings. This is great for double checking your brush settings before you start to paint. There is also a Symmetry mode for applying paint equally on either side of a designated axis. Painting with Particles One of the coolest available features in Painter are the new particle brushes. Using these brushes, you can apply paint using thousands of tiny particles and these particles react to physical forces like gravity and wind so that weathering a model is easy with realistic results. Figure 3 shows a simple sphere painted with several different materials using the Physical Brush tool. Notice the complexity of the results. Figure 3: The ability to paint with particles is an amazing feature only available in Substance Painter. You can also choose the size, shape and effect of the particles. Some of the defaults include broken glass, burn, laser impact, leaking, fracture and veins. Each of these options moves the particles over the surface of the model in different ways and patterns. For example, if you choose the rain particle, then particles will fall from above the object and slowly drip down its side after impact painting the selected material as it flows. Painter includes several unique particle brushes, but it also includes an editor called Popcorn FX that can be used to create your own unique particles and effects. Post Effects Substance Painter uses the Yebis 2 middleware, developed by Silicon Studio, to enable post effects within the viewport. The available post effects include antialiasing, color correction, depth of field, tone mapping, glare, vignette and lens distortion. This lets you create your beauty passes directly in the software without having to export it and reload it in your modeling software. Exporting to Game Engines Once you are through with the texturing workflow, the completed bitmap textures can be exported to several different game engines including CryEngine 3, Unity and Unreal Engine 4. You also have the option to export the textures as PBR, PSD files or as any of the standard bitmap formats. Summary Substance Painter is a revolutionary new product that takes a lot of the busy work out of creating realistic textures and the new ability to paint with particles offers something that no other package has. The results are both stunning and easy to create. The one downside of this package is the weak set of included help files, but these are bolstered with a large set of youtube videos that you can access. Substance Painter is available in both Indie and Pro licensing options. A trial version is also available and can be downloaded from the Allegorithmic web site at http://www.allegorithmic.com.
  12. Most free-to-play games on mobile sell some sort of premium currency: gems in Clash of Clans, donuts in Simpsons Tapped Out, gold in Game of War and so on. I spent some time analysing how 32 games on the App Store sell their premium currency, and some interesting trends and tricks emerged. The Games Before we proceed, meet my data set. The 32 games analyzed are: 8 Ball Pool, Angry Birds Go!, Boom Beach, CastleVille Legends, Clash of Clans, Clumsy Ninja, CSR Racing, Disco Zoo, Dungeon Keeper, Empire, Farm Heroes Saga, Game of War, Hay Day, Hobbit: KoM, Jelly Splash, Juice Cubes, Kingdoms at War, Kingdoms of Camelot, Knights & Dragons, Modern War, Monster World, Moshi Monsters Village, Papa Pear Saga, Pocket Village, Puzzle & Dragons, Real Racing, Royal Revolt 2, Samurai Siege, Simpsons Tapped Out, Smurf's Village, Subway Surfers, Top Eleven. My method for selecting games was pretty unscientific... just a mix of games I had played, wanted to play, or were in the AppStore top grossing. Perhaps I'll expand on the list some day. Trends & Tricks 1) There is not much variety in pricing A lot of games offer the same 5 price points: ?2.99, ?6.99, ?13.99, ?34.99, ?69.99. Those are the 5 big bubbles you see in the diagram above. (That's $4.99, $9.99, $19.99, $49.99, $99.99 for American readers). The most popular thing to do is to offer those 5 price points exactly with no changes, as is done in Supercell's Boom Beach for example. This exact price progression accounts for 1/5th of all games surveyed. If you also count price progressions that are within 1 price of the most popular (meaning they can be reached by either adding, modifying or subtracting just 1 price from the progression), you've got over 3/5ths covered. Extend it again to count price progressions within 2 prices and almost all games are accounted for. Very few games deviate from this formula... Moshi Monsters Village and Empire are tied for the most unique price points award, with each offering 4 unique prices that no other game does. It's nice to see someone trying something a little different, it will be interesting to see if their pricing catches on. 2) Players agree on a minimum price, publishers don't The only price that games seem to disagree on is the minimum to charge. I wanted to know: is it worth offering a minimum price cheaper than ?2.99? The App Store most popular purchase ranking reveals some interesting information. In 100% of cases where ?2.99 is the cheapest price, it is also the most popular purchase. 17 games had both a starting price cheaper than ?2.99, as well as a price point at ?2.99. For the majority (70%) of those 17 games, ?2.99 was still the most popular price point. The same information visualized: It appears that even if you offer players a minimum price point cheaper than ?2.99, chances are they will probably still prefer to buy the ?2.99 option. But some questions remain... a) When ?2.99 is the cheapest option, how many sales are lost from players only willing to pay less than ?2.99? b) And how much revenue is gained from players that would have preferred a cheaper option but paid ?2.99 anyways because there was no cheaper option? c) And most importantly, which is greater? A or B? Unfortunately I don't have enough data to answer it. But it did make me think back to a talk I watched long ago in which a publisher claimed "you'd be surprised how many people who are willing to pay a dollar for something, will also be willing to pay 5 dollars". He goes on to express regret for setting the price too low. If it was up to me, I would probably start pricing at ?2.99 and then lower the price later through special starter pack offers if need be. It's always easier to lower a price than it is to raise it! 3) Buying more is not always a better deal for the player I assumed that by buying a larger currency pack, I would always get more currency per dollar spent. This is not always the case. The most significant example of this I came across was in Angry Birds Go: Pay 2.5 times as much, but only get 2.1 times as many gems. If you want 2,500 gems, you can save money by buying 2 x 1,200 gems + 1 x 100 gems for a total cost of ?29.97 - a whole ?5 cheaper than the 2,500 gems priced at ?34.99. Those are savings you could use to buy another 300 gems. It's hardly an isolated incident. 70% of the games surveyed do this kind of thing. Sometimes, you see the same thing happening in the US store. Other times I think it has to do with price localization. When something is priced at $4.99 in the US it is typically sold for ?2.99 in the UK. But for some reason $9.99 (double 4.99) becomes ?6.99 (more than double ?2.99) whereas it really should be ?5.99. Take Hay Day for example. Not sure how or why this practice originated, but I didn't see any games adjust the premium currency given as a result so sometimes we end up getting less currency per ?1 than you would get per $1. 4) 'Most popular' doesn't have to mean most popular As a player, don't trust everything publishers tell you. In only 1 out of 8 games that prominently displayed a "Most Popular" badge next to a currency pack, was that also the actual most popular purchase in the App Store ranking. Angry Birds Go, the only one to correctly label the "Most Popular" offer: Does this mean everybody else is lying? I guess if at some point in the past or in a different territory the offer tagged as "Most Popular" was actually most popular, then you could say it's just out of date. In any case, it wouldn't be in any publisher's best interest because in all 7 cases where the "Most Popular" was mislabeled, a cheaper offer was the most popular and who would want to encourage players to buy a cheaper pack? Apparently only Rovio is honest enough. 5) There's more than 1 way to calculate a bonus A few games like to tell players exactly how much of a better deal the larger currency packs are. There are different ways of calculating this which can make the discount sound more or less impressive. This first example is from Kabam's Hobbit game. The lowest amount of gems per ?1 is found in the ?6.99 pack: 100 / 6.99 = 14.3 currency per ?1. At this exchange rate, for ?13.99 you should get 13.99 x 14.3 = 200 currency. But they give you 240 for ?13.99 instead of 200. 240 / 200 = 1.2, thus you are getting 120%, ie 20% more than you should get. The numbers have been arranged so as to maximize how impressive the bonus sounds while remaining 100% truthful. Not everybody calculates it the same way. Here's a different example from flare's Royal Revolt 2. Like Hobbit, they use the lowest exchange rate which again is from the ?6.99 pack. At that rate, you should get 5,256 currency for ?34.99 but instead they give you 7,500. This is where the method diverges from Hobbit. The extra amount of currency being given is 7,500 - 5,256 = 2,244. 2,244 / 7,500 = 0.299, so we can say that of the 7,500 currency you are being given 29% for free. First off, they could easily have rounded 29.9% up to 30%. More significantly, using Hobbit's method you could say that 7,500 / 5,256 = 1.43, therefore it is equally honest to say that you are getting 43% extra. Another interesting example is Monster World. If you try to calculate the bonus using any sane method, it just doesn't make sense. It had me stumped for a little while. Then I checked the US AppStore pricing and it all fell into place. If you use the US prices, the bonuses make perfect sense using the same method as Hobbit. So it appears that when the prices were localized, the bonuses were not. In reality, the bonuses in the UK AppStore are far less generous than their US counterparts (eg 7% UK instead of 25% US for 100 potions and 70% UK instead of 100% US for 4,000 potions). Final Words I hope this information helps anyone working on (or simply curious about) f2p game premium currency pricing. There's certainly a lot more going on with the prices than is obvious at first glance. The more I looked, the more I found. Still not satisfied? Try my spreadsheet. It's full of extra figures and graphs I didn't consider important enough to single out. And if you find something in the data I missed, let us know! Note: This post was originally published on Wolfgang's blog AllWorkAllPlay, and is republished with Wolfgang's kind permission.
  13. This subject is an incredibly important one that gets a lot less attention than it should. Most videogame development guides and tutorials fail to acknowledge that communication is a game development skill. Knowing how to speak and write effectively is right up there alongside knowing how to program, use Photoshop, follow design process, build levels, compose music, or prepare sounds. As with any of those skills there are techniques to learn, concepts to master, and practice to be done before someone's prepared to bring communication as a valuable skill to a team. Game Developers Especially Surely, everyone in the world needs to communicate, and could benefit from doing it better. Why pick out game developers in particular? "...sometimes when people are fighting against your point, they're not really disagreeing with what you said. They're disagreeing with how you said it!" I don't meant to claim that only game developers have communications issues. But after spending much of the past ten years around hundreds of computer science students, indie developers, and professional software engineers, I can say that there are particular patterns to the types of communication issues most common among the game developers that I've met. This is also an issue of particular interest to us because it's not just a matter of making the day go smoother; our ability to communicate well has a real impact on the level of work that we're able to accomplish, collaboratively and even independently. Game developers often get excited about our work, for good reason, but whether a handful of desirable features don't make it in because of technical limitations or because of communication limitations, either way the game suffers for it the same. Whose Job is It? If programmers program, designers design, artists make art, and audio specialists make audio, is there a communication role in the same way? There absolutely is. There are several, even. The Producer. Even though on small hobby or student teams this is often wrapped into one of the other roles, the producer focuses on communication between team members, and between team members and the outside world. Sometimes this work gets misunderstood as just scheduling, but for that schedule to get planned and adjusted sensibly requires a great deal of conversations and e-mails, followed by ongoing communications to keep everyone on the same page and on track. The Designer(s). One way to think about the designer's role in game development is to communicate with the player through the game. Indicating what's the goal, what will cause harm or benefit, where the player should or shouldn't try to go next, expressing the right amount of internal state information - these are matters of a game's design more so than its programming. Depending on a game team's skill makeup, in some cases the designer's only direct work with the game is in level layouts or value tuning, making it even more critical that within the team a designer can communicate well with programmers, artists, and others on the team when and where the work intersects. On a small team when the person mostly responsible for the design is also filling one or more other roles (often the programming) communication then becomes integral to keeping others involved in how the game takes shape. The Leads. On a team large enough to have leads, which is common for a professional team, the Lead Programmer, Lead Designer, or Lead Artist also have to bring top notch communication skills to the table. Those people aren't necessarily the lead on account of being the best programmer, designer, or artist - though of course they do need to be skilled - they're in that position because they can also lead others effectively, which involves a ton of communication in all directions: to the people they lead, from the people they lead, even mediating communications between people they lead or the people they lead and others. Some of the most talented programmers, designers, artists and composers that I've met have been quiet people. This isn't an arbitrary personality difference though. In practice it limits their work - when they don't speak up with their input it can cost their game, team, or company. The Writer. Not every game genre involves a writer, but for those that do, communication becomes even more important. Similar to the designer that isn't also helping as a programmer, a team's writer typically isn't directly creating much of the content or functionality, aside perhaps from actual dialog or other in-game and interstitial text. It's not enough to write some things down and call it a day, the writer and content creators need to be in frequent communication to ensure that satisfactory compromises can be found between implementation realities and the world as ideally envisioned. Non-Development Roles. And all that's only thinking about the internal communications on a team during development. Learning how to communicate better with testers, players, or if you've got a commercial project your customers and potential new hires (even ignoring investors and finance professionals), is a whole other world of challenges that at a large enough scale get dealt with by separate HCI (Human-Computer Interaction) specialists, marketing experts, PR (public relations) people and HR (Human Resources) employees. If you're a hobby, student, solo, or indie developer, you've got to wear all of these hats, too! There are two main varieties of communication issues that we tend to encounter. Although they may seem like polar opposites, in reality they're a lot closer than they appear. In certain circumstances one can even evolve from the other. Challenge 1: Shyness The first of these issues is that some of us can be a little too shy. Some of the most talented programmers, designers, artists and composers that I've met have been quiet people. This isn't an arbitrary personality difference though. In practice it limits their work - when they don't speak up with their input it can cost their game, team, or company. It's unfortunately very easy to rationalize shyness. After all, maybe the reason a talented, quiet person was able to develop their talent is because they've made an effort to stay out of what they perceive as bickering. Unfortunately this line of thinking is unproductive in helping them and the team benefit more from what they know. Conversation between team members serves a real function in the game's development, and if it's going to affect what gets made and how it can't be dismissed as just banter. Sometimes work needs to get done in 3D Studio Max, and sometimes it needs to get done around a table. Another factor I've found underlying shyness is that a person's awareness of what's great in their field can leave their self-confidence with a ding, since they can always see how much improvement their work still needs just to meet their own high expectations. Ira Glass has a great bit on this: [media][/media] It doesn't matter though where an individual stands in the whole world of people within their discipline, all that matters is that developers on the project know different things than one another. That's inevitably always the case since everyone's strengths, interests, and backgrounds are different. Challenge 2: Abrasiveness Sometimes shyness seems to evolve as an overcompensation for unsuccessful past interactions. Someone tried to speak up, to share their idea or input, just to add to someone else's point and yet it somehow wound up in hurt feelings and no difference in results. Entering into the discussion got people riled up, one too many times, so after one last time throwing hands into the air out of frustration, a developer decides to just stop trying. Maybe they feel that their input wasn't properly received, or even if it was it simply wasn't worth the trouble involved. As one of my mentors in my undergraduate years pointed out to me: "Chris, sometimes when people are fighting against your point, they're not really disagreeing with what you said. They're disagreeing with how you said it! If you made the same point differently they might get behind it." He was absolutely right. Once I heard that idea, in addition to catching myself doing it, I began to notice it everywhere from others as well. It causes tension in meetings, collaborative classroom projects, even just everyday conversations between people. Well-meaning folks with no intention of being combative, indeed in total overall agreement about both goals and general means, often wind up in counterproductive, circular scuffles arising from an escalation of unintended hostility. There are causes and patterns of behavior that lead to this problem. After 10 years of working on it, I've gotten better about this, but it still happens on occasion, and it's still something that I have to actively keep ahead of. It's understandable how someone could run through this pattern only so many times before feeling like their engaging with the group is the cause of the trouble. This is in turn followed by backing off, toning down their level of personal investment in the dialog, and (often bitterly) following orders from the action items that remain after others get done with the discussion. In either case - shyness or abrasiveness - and in any role on a team, nobody gains from having one less voice of experience, skill, and genuine concern involved. Simply tuning out isn't doing that person, their team, the game, or the players any real benefit. The issue isn't the person or their ideas, the issue is just how the communication is performed, and just as with any other skill a person can improve how they communicate. Failing to figure out a way to overcome these communications challenges can cause the team and developer much more trouble later, since not dealing with a few small problems early on when they're still small can cause them to grow and erupt later beyond all proportion. Listening and Taking to Heart You've heard this all your life. You'll no doubt hear it again. Hopefully every time communication comes up this gets mentioned too, first or prominently. Listening well, meaning not just hearing what they have to say or giving them an outlet but trying to work with them to get at underlying meaning or concerns and adapting accordingly, is way harder than it sounds, or at least more unnatural than we'd like to think. You can benefit from practicing better listening. I can say that without knowing anything about you, because everyone - presidents and interns, parents and kids, students and teachers - can always listen better. There's a tendency, even though we rationally know it's out of touch with reality, to think of oneself as the protagonist, and others like NPCs. Part of listening is consciously working to get past that. The goal isn't to get others to adopt your ideas, but rather it's to figure out a way forward that gains from the multiple backgrounds and perspectives available, in a positive way that people can feel good about being involved with. Don't Care Who Wins, Everyone Wins There's no winner in a conversation. This one also probably sounds obvious, but it's an important one that enough people run into that it isn't pointed out nearly enough. Development discussion doesn't need to be a debate. Even to the extent that creative tension will inevitably present certain situations in which incompatible ideas are vying for limited development attention on a schedule, debate isn't the right way to approach the matter. In one model for how a dialog exchange proceeds, two people with different ideas enter, and at the end of the exchange, one person won, one person lost. I don't think (hope?) that anyone consciously thinks about dialog this way, but rather it may emerge as a default from the kinds of exchanges we hear on television from political talking heads, movie portrayals of exchanges to establish relative status between characters, or even just our instinctive fight or flight sense of turf. Rather than thinking in terms of who the spectators (note: though avoid spectators when possible, as it can often pollute an otherwise civil exchange with defensive, ego-protecting posturing) or an impartial judge might declare a winner, consider which positions the two people involved would likely take in separate future arguments. If all of your prior references have led you to believe strongly about a particular direction, you only do that rhetorical position (and the team/project!) a disservice by creating opponents of it. Whenever we come across as unlikeable, especially in matters like design, art, or business where a number of directions may be equally viable, then it doesn't matter what theoretical support an option has if people associate it with a negative, hostile feeling or person. It doesn't matter what theoretical support an option has if people associate it with a negative, hostile feeling. Be friendly about it. Worry first about understanding the merits and considerations of their point, then about your own perspective being understood for consideration. Notice that neither of those is about "convincing" them, or showing them the "right" way, it's about trying to understand one another because without that the rest of discussion just amounts to barking and battling over imagined differences. You Might Just be Wrong Speaking of understanding one another: don't ever be afraid to back down from a point after figuring out what's going on, and realizing that there's another approach that'll work just as well or better. There's a misplaced macho sense of identity attached to sticking to our guns over standing up for our ideas - especially when the ideas aren't necessarily thoroughly developed and aren't exactly noble or golden anyhow. A smart person is open to changing their mind when new information or considerations come to light. You're not playing on Red team competing against Blue team. You're all on the same team, trying to get the ball to go the same direction, and maybe your teammate has a good point about which direction the actual goal is in. The other side of this is to give the other person a way out. Presenting new information or concerns may make it easier for them to change their mind, even if that particular information or concern isn't actually why they change their mind, simply because it can feel more appropriate to respond to new information then to appear to have been uncertain in the first place. Acknowledging the advantages in the position they're holding doesn't make your position seem weaker by comparison, it makes them feel listened to, acknowledged, and like there's a better chance you're considering not just your own initial thoughts but theirs too. When a point gets settled, whichever way things go, let the difference go instead of forming an impression of who's with or against you. (Such feelings have a way of being self-fulfilling. In practice, reasonable people are for or against particular points that come up, not for or against people.) When an idea inevitably gets compromised or thrown out, being a skilled communicator means not getting bitter or caught up in that. Don't take it personally. It's in the best interests of the team, and therefore the team's members (yourself included), that not every idea raised makes it into implementation or remains in the final game. Benefit of the Doubt, Assume the Best A straw man argument is when we disagree with or attempt to disprove a simplified opposition position. In informal, heated arguments over differences in politics or religious/cultural beliefs, these are frequently found in the form of disagreeing with the most extreme, irrational, or obviously troubled members of the group, rather than dealing with the more moderate, rational, and competent justifications of their most thoughtful adherents. This leads to deadlock, since both sides feel as though they're advancing an argument against the other, yet neither side feels as though their own points have been addressed. When the goal is to make a more successful collaboration, rather than to just make ourselves temporarily feel good, the right thing to do is often the opposite of setting up a straw man argument. Assume that the other person is coming from a rational, informed, well-intentioned place with their position, and if that's not what you're seeing from what has been communicated so far, then seek to further understand. Alternatively, even help them further develop their idea by looking for additional merit to identify in it beyond what they might have originally had in mind - maybe from where you're coming from it has possible benefits that they didn't realize mattered to you. If the idea you may be holding is different than what someone else is proposing, welcome your idea really being put to the test by measuring it against as well put-together an alternative as the two of you can conceive. If it gets replaced by a better proposal that you arrived at through real discussion and consideration, or working together to identify a path that seems more likely to pan out well for both of you, all the better. Your Frustration is With Yourself This is one of those little life lessons that I learned from my wrestling coach which has stayed with me well after I finished participating in athletic competitions. Most of the time when people are upset or frustrated or disappointed, they're upset or frustrated or disappointed mostly with themselves, and directing that at somebody else through blame isn't ever going to diffuse it. Even if this isn't 100% completely and totally true in every situation - sure, sometimes people can be very inconsiderate, selfish, or irresponsible and there may be good reason to be upset with them - I find that it's an incredibly useful way to frame thinking about our emotional state because it takes it from being something the outside world has control over and changes to focus to what we can do about it. Disappointed with someone violating our trust? Our disappointment may be with our failing to recognize we should not have trusted them. Upset with someone for doing something wrong? We may be upset with ourselves for not making the directions or expectations more clear. Frustrated with someone that doesn't understand something that you find obvious? Your frustration well may lie in your feeling of present inability to coherently and productively articulate to that person exactly what it is you think they're not understanding. If your point isn't well understood or received but you believe it has value that isn't being rightly considered, rather than assuming the other person is incapable of understanding it, put the onus on yourself to make a clearer case for it. Maybe they don't follow your reference, or could better get what you're trying to say if you captured it in a simple visual like a diagram or flow chart. Maybe they understand what you're saying but don't see why you think it needs to be said, or they get what you mean but don't see the connection you have in mind for what changes you think it should lead to. If your point isn't well understood or received but you believe it has value that isn't being rightly considered, rather than assuming the other person is incapable of understanding it, put the onus on yourself to make a clearer case for it. Clarify. Edit it down to summary highlights (people often have trouble absorbing details of an argument until they first already understand the high level). Explain it another way to triangulate. Provide a demonstration case or example. If there's a point you already made which you think was important to understanding it but that point didn't seem to stick, find a way to revisit it in a new way that leads with it instead of burying it among other phrases that were perhaps too disorganized at the time to properly set up or support it. Mistaking Tentative for Definitive Decisions can change. When they're in rough draft or first-pass, they're likely to - that's why we do them in rough form first! It's easier to fix and change things when they're just a plan, an idea, or a prototype, and the more they get built out into detail or stick around such that later decisions get made based on them, then the more cemented those decisions tend to become. There are two types of miscommunication that can come from this sort of misunderstanding: mistaking your own tentative ideas for being definitive, or mistaking someone else's tentative ideas for being definitive. During development, and as more people get involved, projects can change and evolve a bit to reflect what's working or what isn't, or to take better advantage of the strengths and interests of team members. If there was an idea you pushed for earlier in a project and people seemed onboard with it then, it's possible that discoveries during development or compromises being made for time and resource constraints have caused it to appear in a modified or reduced form. It might even be cut entirely, if not explicitly then maybe just lost in the shuffle. Before raising a case for it, it's worth rethinking how the project may have changed since the time the idea was initially formed, to determine whether it would need to be updated to still make sense for the direction the team and game has gone in. Sometimes the value of ideas during development is to give us focus and direction, and whether the idea survives in its originally intended form is secondary to whether the team and players are happy with the software that results. It may turn out to be worth revisiting and bringing back up, possibly in a slightly updated form, as maybe last time was at a phase in development when it wasn't as applicable as it might be now. Or it may be worth letting go as having been useful at the time, but perhaps not as useful now, a stepping stone to other ideas and realizations the team has made in the time that has passed. People get optimistic, people make planning mistakes, and people cannot predict the future - but it's important to not confuse those perfectly human imperfections with knowingly lying or failing to keep a promise. The other side to this is to make the same mistake in thinking about someone else's ideas: thinking they are definitive when they are necessarily tentative. This happens perhaps because of how far off the idea relates to the future, and how much will be discovered or answered between now and then that is unknown at the time of the initial conception and discussion. If a project recruits people with the intention of supporting a dozen types of cars, but during development reality sinks in and only three different vehicles make sense in favor of putting that energy into other development necessity, those things happen. People get optimistic, people make planning mistakes, and people cannot predict the future - but it's important to not confuse those perfectly human imperfections with knowingly lying or failing to keep a promise. If early in a project someone is trying to spell out a vision for what the project may look like later, don't take that too literally or think of it as a contract, look at it as a direction they see things headed in. Implementation realities have a way of requiring compromise along the way. Soften That Certainty Away A common source of fighting on teams is from a misplaced sense of certainty in an observation or statement which reflects value priorities that someone else on the team doesn't necessarily share, or especially when the confidently made statement steamrolls value priorities of someone else on team. Acknowledge with some humility that you only have visibility on part of all that's going on, and that the best you can offer is a clarification of how things look for where you're coming from or the angle you have on things. Leave wiggle room for disagreement. Little opening phrases like "As best as I can tell..." or "It looks to me like..." or "I of course can't speak for everyone, but at least based on the games that I've played in this genre..." may just seem like filler, but in practice they can be the difference between tying the team in a knot or opening up valuable discussion about different viewpoints. Consultant's Frustration School surrounds people with other people that think and work in similar patterns, with similar values, often of the same generation. Outside the classroom, whether collaborating on a hobby game project, joining a company, or doing basically anything else in the world besides taking Your Field 101, that isn't typically how things work. Often if your skills are in visual art, you have to work with people that don't know as much about visual art as you. If your skills are in design, you'll have to work with a lot of non-designers. If you have technical talents, you will be dealing with a lot of non-technical people. That is why you are there. Because you know things they don't know. You can spot concerns that they can't spot. You understand what's necessary to do things that they don't know how to do. If someone else on the team or company completely understood everything that you understand and in the same way, they wouldn't really need you to be involved. Your objective in this position is to help them understand, not to think poorly of them for knowing different things than you do. Help them see what you see. Teach a little bit. That is why you are there. Because you know things they don't know... Your objective in this position is to help them understand, not to think poorly of them for knowing different things than you do. Help them see what you see. I refer to this as the consultant's frustration because that's a case that draws particular emphasis to it: a company with no understanding of sales calls in a sales (or design, or IT, or whatever) consultant, because they have no understanding of that and that's why they made the call. A naive, inexperienced, unprepared consultant's reaction to these situations is one of horror and frustration - how on Earth are these people so unaware of the basic things that they need to know? The consultant is there to spot that gap and help them bridge it, not to look down on them for it. Meanwhile they're doing plenty of things right the specialist likely doesn't see or fully understand, because that's not the discipline or problem type that they're trained and experienced in being able to spot, assess, or repair. When you see something that concerns you, share that with the team. That is part of how you add value. You may see things that others on the team do not. Values Are Different Per Role The other side to the above-mentioned point is appreciating that other factors and issues less visible to your own vantage point may have to be balanced against this point, or in some cases may even override it. Frustration can arise from an exaggerated form of the consultant's frustration: a programmer may instinctively think of other roles on the team as second-rate programmers, or the designer may perceive everyone else on the team as second-rate designers, etc. This is not a productive way to think, because it's not just that they are less-well suited to doing your position, but you're also less-well suited to doing theirs. A position goes beyond what skills someone brings to move a project forward, it also brings with them an identity and responsibility on the team to uphold certain aspects of the project, a trained eye to keep watch for certain kinds of issues. The programmer may not be worried about the color scheme, the artist may not be worried about how the code is organized, the designer may not care about either as long as the gameplay works. ...a programmer may instinctively think of other roles on the team as second-rate programmers... That's one of the benefits of having multiple people filling specialized roles, even if it's people that are individually capable of wearing multiple hats or doing solo projects if they had to. In the intersection of these concerns, compromises inevitably have to get made. The artist may be annoyed by a certain anomaly in how the graphics render, but the engineer may have a solid case for why that's the best the team's going to get out for the given style of the technology they have available. The musician or sound designer may feel that certain advanced scoring and dynamic adjustment methods could benefit the game's sounds cape, but the gameplay and/or level designer may have complications they're close to about user experience, stage length, or input scheme that place some tricky limits on the applicability of those approaches. One of the reasons why producers (on very small student/hobby/indie teams this is often also either the lead programmer or lead designer) get a bad rap sometimes, as the "manager" that just doesn't get it, is because their particular accountability is to ensure that the game makes forward progress until it's done and released in a timely manner. So the compromise justification that they often have to counter with is, "...but we have to keep this game on schedule" which is a short-term version of "...but this game has to get done." If someone isn't fighting that fight for the project, it doesn't get done. Be glad that other people on a team, when you have the privilege of working with a good and well-balanced team, are looking out for where you have blind spots. Push yourself to be a better communicator so that you can help do the same for them. Too Much Emphasis on Role After that whole section on role, I feel the need to clarify that especially for small team development (i.e. I can total understand military-like hierarchy and clarity for 200+ person companies) role shouldn't pigeonhole someone's ability to be involved in discussions and considerations. While it's true that the person drawing the visual art is likely to have final say on how the art needs to be done (not only as a matter of aesthetic preference, but as a side effect of working within their own capabilities, strengths, and limitations), that does not mean that others from the team shouldn't be able to offer some feedback or input in terms of what style they feel better about working with, what best plays to their own strengths and limitations (ex. just because an artist can generate a certain visual style doesn't mean the programmer's going to be able to support it in real-time), and what they like just as fellow fans of games and media. Does one team member know more about animation than others on the project? Then for goodness sake, of course that person needs to be involved in discussions affecting the implementation or scheduling of animation. But even if you're not an animator, that you've accumulated a different set of media examples to draw upon, and have an idea for how that work may intersect with technical, design, or other complications, there's still often value in being a part of that discussion (though of course still leaving much of the decision with whoever it affects most, and whoever has the most related experience). It's unhelpful to hide behind your role, thinking either "Well, I'm not the artist so that isn't my problem" or "Well, I'm the designer, so this isn't your problem to worry about." The quality of the game affects everyone who got involved with making it. You make a point of surrounding yourself with capable people that are coming from different backgrounds and have different points of view to offer. Find ways to make the most of that. A related distinction to these notes about role is the concept of servant-leadership. Rather than a producer, director, or lead designer feeling like the boss of other people who are supposed to do what they say, it can be healthy and constructive for them to approach the development as another collaborator on the team, just with particular responsibilities to look out for and different types of experience to draw from. They're having to balance their own ideas with facilitating those of others to grow a shared vision, they're trying to keep the team happy and on track, that's their version of the compiler or Photoshop. Handling Critique Productively When critique comes up - whether of your game after it's done or of a small subpoint in a disagreement - separate yourself personally from the point discussed. When people give feedback on work you're doing, whether it's on your programming, art, audio, or otherwise, the feedback is about the work you're doing, it's not feedback about you (even if, and let's be fair here, we could all honestly benefit from a little more feedback about ourselves as a work-in-progress, too!). Feedback is almost always in the interest of making the work better, to point out perceived issues within a smaller setting before it's too late to fix the work in time for affecting more people, or before getting too far into the project to easily backtrack on it. Sometimes the feedback comes too late to fix them in this case, in which case rather than disagree with it accept that's the case and keep it in mind to improve future efforts (this isn't the last game or idea you're ever going to work on, right?). Defensiveness, of the sort mentioned in the recent playtesting entry, is often counterproductive, or at lease a waste of limited time and energy. Systems and Regular Channels Forms and routine one-on-one check-in meetings can feel like a bureaucratic chore, but in proper balance and moderation they can serve an important function. People need to have an outlet to have their concerns and thoughts heard. People need to be in semi-regular contact with the people who they might need to raise their concerns with, before there is a concern to be raised, so that there's some history of trust and prior interaction to build upon in those cases and it doesn't seem like a weirdly hostile exception just to bring up something small. In one of the game development groups I've been involved with recently we were trying to narrow down possible directions for going forward from an early stage when little had been set into action yet. From just an open discussion, three of the dozen or so ideas on the whiteboard got boxed as seeming to be in the lead. When we paused to get a show of hands to see how many people were interested in each of the ideas on the board, we discovered that one of the boxed items had only a few supporters - those few just happened to be some of the more vocal people in the room. Even introducing just a tiny bit of structure can be important in giving more of an outlet to the less outspoken people involved with a project, who have ideas and considerations that are likely just as good and, as mentioned earlier, probably weighing different sets of concerns and priorities. Practice, Make Mistakes to Learn From Seek out opportunities to get more practice communicating. In all roles, and at all scales. As part of a crowd. In front of a crowd. In formal and informal settings. Out with a few people. Out with a lot of people. Now, for personal context: I don't drink. I don't go to bars or clubs. I've admittedly never been one for parties. This weekend I have no plans to watch the Super Bowl. I'm not saying you should force yourself to do things that you don't want to do. What I am saying is to look for (or create) situations where you can comfortably exercise your communication abilities. Whatever form that may take for you. Given a choice to work alone or work with a group, welcome the opportunity to deal with the challenges of working with a group. Attend a meetup. Find some clubs to participate in. When a team you're on needs to present an update, volunteer to be the one presenting that update. Communication is a game development skill. As with any other game development skill, you'll find the biggest gains in ability through continued and consistent practice. Recommended Reading A few books that I've found helpful on this subject include: How to Win Friends and Influence People by Dale Carnegie (1936) The 7 Habits of Highly Effective People: Powerful Lessons in Personal Change by Stephen R. Covey (1989) To Sell Is Human: The Surprising Truth About Moving Others by Daniel Pink (2013) Note: This article was originally published in 2 parts (Part 1, Part 2) on Chris DeLeon's blog "HobbyGameDev.com". Chris kindly gives permission to reproduce his content.
  14. It's been two years since we launched Taptitude on Windows Phone, and we're still going strong! Keeping with our tradition of openly sharing our download and revenue stats, we'd like to take a look back at the last two years to see how far we've come, and where we have room to improve. This article will primarily focus on the Windows Phone version of Taptitude. We've recently ported Taptitude to Windows 8, Android (Google Play) and iOS, but we haven't been out long enough to collect meaningful numbers. Later in the year we'll do a follow up to see how those platforms are turning out. Let's start with some high level observations and then dig into the details. Windows Phone continues to be a great market for indie developers. The mini-game collection model continues to resonate with our users. There is significant headroom for future growth. Downloads We recently announced that Taptitude has broken the 1 million download mark on Windows Phone. Let's take a look at how these were distributed. As you can see we had a fairly slow start with < 1,000 downloads per day for the better part of the first year. Near the end of the first year we saw a large spike which added over 200k downloads over a two month period. This spike (middle of the graph above) aligned well with a number of things that worked in our favor. The first was that Nokia started releasing solid Windows Phone devices and our daily downloads started to grow faster than normal, and second we worked our way up the top downloaded chart which has a feedback effect adding further to the download spike. After the spike died down we went back to < 1,000 downloads a day for the rest of the summer. Around the time Windows Phone 8 came out (fall 2012) we started to see the numbers pick up again. We've had a relatively long stretch where 2,500+ downloads per day has been the norm. Let's look closer at the last 5 months. As you can see we haven't dipped below 2k/day in quite a while. From time to time we get a spike over 5k and in some cases over 9k. The spikes correspond to getting featured in the marketplace, and the higher average is likely due in part by Windows Phone 8's growing marketshare. WP8 brought with it changes to the marketplace that feature top rated games. Taptitude is one of the highest rated games on the marketplace with over 26k ratings and a 4.7 star average. Crashes Microsoft provides crash reports in their Dev Center portal. We find it helpful to monitor these reports weekly and fix any obvious bugs before we ship the next update. Generally our crashes per day are reasonably low compared to our user base, but from time to time a bug will slip through and we'll see a spike. As you can see we generally have < 200 crashes per day. Around November of 2012 (a) we started seeing a huge number of crashes due to a bug with Bally Bounce (a popular mini-game). Unfortunately once a bad bug like this gets through our QA process, we have little hope of fixing it in a timely manner. The first day the bugged version was released we started getting reports and had a fix for the bug. We submitted the fix later that day, but since Microsoft's cert process takes nearly a week we knew we were going to pay. In a more mature platform, we would have been given the ability to roll back to the previous version instantly to stop the bleeding while the fix is in cert, but we weren't that lucky. In the following week many of our users picked up the bad version and we were helpless until the fix went in. Even then, some residual set of users who didn't update to the fixed version. It took over a month before our crashes were back down below 200 per day. On the bright side, we're now under 200 per day again, which is better than the 200 per day we were getting last year because our user base is considerably larger now. With 30,000+ active users, the 200 remaining crashes represents a broad spectrum of hardware malfunctions, hard to reproduce race conditions and memory leaks. We fix them as we isolate the problems but most of the low hanging fruit has been picked. Advertising Taptitude is still primarily an ad-supported game, and we've enjoyed considerable success pursuing this business model. We keep things simple; showing a single ad on the screen at all times, and cycling once every 30 seconds. Users can remove the ad by purchasing Taptitude Gold from the in-game store. Over the last two years we've grown steadily up to ~40 million impressions per month. We had a dip after falling out of the top downloaded chart, but have since worked our way back up to a new high of nearly 50m impressions per month. We haven't increased the number of impressions per user per minute, so the growth is coming from an increase in both active users, and time-in-game. While impressions are growing, unfortunately eCPM (dollars per 1000 impressions) has been on the decline. This has been widely reported by other users of Microsoft's pubCenter Ads. The data from the first year averaged in excess of $1 eCPM, however this was when we were first ramping up, so the revenue wasn't ridiculous. The second half of this year has been netting us in the area of $0.35 eCPM, which some say is good compared to other games at the same time period. The combination of increased impressions and decreased eCPM has almost exactly cancelled each other out. You can see from the graph above that our monthly revenue from Taptitude is pretty steady around $15k/month. We peaked (a) at the end of our first year with a $40k month due to good eCPM (~$1) and great impressions (~40m). This dipped (b) mid last year due to a bug where we weren't showing ads for over a week. Not our bug, mind you, but one Microsoft kindly left in the pubCenter control. When you submit an app to the store it scans your app and looks for certain things to trigger capabilities. One update (of the over 100 we've done so far) we removed an unused component that happened to load the web browser control, which caused us to lose the browser usage capability. That was expected, but unfortunately pubCenter manually checks for this even though the XNA version doesn't use the web browser. We worked around the bug, but not after losing substantial revenue. The important thing to take away from the graph above is that games don't have to have a hockey stick revenue graph. We've seen tons of games that have a good start, but don't retain users and revenue dies off after a month or two. Many of them spike way higher than Taptitude, but the important thing is the area under the curve. We have optimized Taptitude to be the go-to game that you come back to every day for a long period. In-game stats show that many of our users haven't missed a single day of play time in well over a year, and this has led to fairly steady income. In App Purchase We added IAP to Taptitude at the beginning of 2013 and have seen pretty steady uptake. IAP still accounts for a very small fraction of our revenue (~5%), so we can't say we've nailed this business model yet. We feel like Taptitude's rich virtual economy would mesh well with the IAP model; however we're hesitant to push it too far for fear of turning off customers. We'll dive deep into IAP in another article, but for now let's just say we're working on monetizing IAP better in a customer friendly way. Summary Now that we've seen the numbers, let's look back at my original observations: 1. Windows Phone continues to be a great market for indie developers. Taptitude has been more successful than we had ever dreamed, and even after two years we're still bringing in significant revenue off of Windows Phone advertising. While eCPM has dropped, the market has grown, and we're happy with the results. IAP was added in WP8, which opens up new revenue streams, but we've yet to fully realize this potential. 2. The mini-game collection model continues to resonate with our users. Taptitude has grown from a small collection of only 5 mini-games to over 80 mini-games with increasing quality and complexity. We can see from in-game stats that our users are very sticky, some of which have put many days of in-game time into Taptitude. We have optimized for bite sized fun, getting users to come back every day, and continuously expanding the game so users stay engaged for months. This has yielded consistently high impressions per user. 3. There is significant headroom for future growth. While Taptitude is doing well on Windows Phone, we've only just begun. We've recently ported Taptitude to iOS, Android, and Windows 8 and we look forward to having enough data to compare. By some reports, Windows Phone only has ~5% of the market share, so with the addition of Android and iOS we could be looking at substantial gains in the next 6 months to a year. We've nailed the ad-supported model, but we have a lot of work ahead to monetize IAP without impacting the game negatively. Conclusion We hope sharing this data will help other indies understand the market and make better decisions about how to roll out fantastic mobile games. It's too tempting for most developer to see huge numbers on iOS/Android and think that these are the only platforms worth targeting. We're living proof that Windows Phone, even with its smaller market share, is a great platform to kick start your game project while you get it ready for the big (and more competitive) markets. If your game isn't developed with a million dollar budget, you might consider a similar strategy.
  15. gdarchive

    Autodesk Maya 2015 Review

    Autodesk recently released Maya 2015. It took a little longer to get this release out than in years past, but the extra time was worth it. Maya 2015 is packed full of new features, new effects engines, improvements and updates that make it easily the best version ever. The developers at Autodesk have really gone above and beyond with this release. In particular for gamers the new simulation tools, including Bifrost for liquids and Bullet Physics for rigid and soft-body dynamics, add a huge level of realism to animated scenes. For background scene population and control over hair and fur, the new XGen system is remarkable and the ability to create shaders directly in Maya with the ShaderFX Editor is a huge time-saver. Couple these new features with the ability to see all these effects in real-time within Viewport 2.0 and you have one strong tool for game artists. Bifrost Simulation Maya 2015 introduces a new liquid simulation platform called Bifrost. It was initially created by Naiad and has now been fully integrated into Maya 2015. It is quite powerful and surprisingly easy to use. To create a liquid effect, you simply need to select a geometry object and choose the Create Liquid option from the Bifrost menu. Then you need to select the collision objects and change settings as needed. Bifrost will automatically compute all the splashes and spray from the water particles caused by the collisions and their fall due to gravity. You can also specify animated geometry to act as emitters and accelerators for the simulation. These emitters and accelerators are used to add forces to the liquid object to create flowing rivers and gentle waves. Figure 1 shows an example of the type of results that Bifrost can create. Figure 1: Bifrost makes it possible to create amazing liquid effects. Once the simulation is started, the solution is computed in the background using a Scratch Cache and the available frames are shown in green on the animation timeline while frames still to be computed are displayed in yellow. This lets you continue to work while the simulation is still being computed. When you are satisfied with the results, you can save out a User Cache so the simulation doesn't need to be re-computed each time you scrub the timeline and for rendering the simulation. The resulting water particle motion from the simulation can be viewed in the viewport if Viewport 2.0 is selected . This provides a way to view and tweak the simulation without having to render out frames. If you are unsure where to start, the Visor has several Bifrost examples to get you started. XGen Particles The new XGen system gives you great control over the placement and style of curves, spheres and instanced geometry particles on the surface of other objects. This is a great system for creating unique hair and fur styles. It can also be used to populate an environment with instanced models such as trees and flowers. Custom objects can be exported as an archive and then read back in as multi-instances spread across the face of the scene and multiple archives can be selected and used together. For all the instanced geometry, you can control the length, width, depth, tilt, twist and density of their placements or even define them using expressions. The XGen system also includes an array of brushes that are used to edit various attributes of the applied objects. These brushes include the ability to attract, repel, part, bend, twist, smooth and add noise, among other things. The system includes support for Ptex maps that can define areas clear of particles. Figure 2 shows a scene where the plants are populated using the XGen system. Figure 2: The XGen system is great for adding a variety of plants to the current scene. Bullet Physics Dynamic animations are a breeze with the new Bullet Physics features. Simply select an object, choose an effect and click the Play button. The constraints and forces, such as gravity, are automatically applied and a full set of settings are available for tweaking the results to get just the motion you want. The Bullet engine includes support for both rigid and soft-body objects and ragdolls. Be aware that the Bullet engine has to be loaded using the Plug-In Manager before it can be used. Selected objects can be set as Active Rigid Body objects or Passive Rigid Body objects. Active objects will react to gravity and will collide with other rigid body objects. Passive objects will stay put and will collide unyielding with active objects. You can also animate rigid body object to interact with other objects such as a meteor impacting a group of rocks. Using the Shatter effect, you can break solid objects into pieces which break upon on impact. ShaderFX Editor Shaders can now be created within Maya using a real-time shader editor called ShaderFX. This node-based editor lets you connect nodes together and see the results directly within Viewport 2.0. The ShaderFX Editor supports both OpenGL and DirectX 11. Once a shader is applied to an object, you can select the Open ShaderFX option in the Attribute Editor for the shader node. Within the editor, you can add nodes using the list to the right or you can right click and select them from the menu. Input and output channels are connected by simply dragging between them and color coding between the channels makes it easy to know which channels are compatible. Each node also has a preview that you can access. Shaders can be saved to the HLSL, GLSL and CgFX formats. Viewport Improvements Maya's Viewport 2.0 now supports viewing dynamics and particles. This is a huge benefit for simulations allowing you to see the results without having to wait for the render. There is also support for viewing Paint Effects, Toon shading, nCloth, nHair, nParticles and fluids. There are also controls to enable and disable Ambient Occlusion and Anti-Aliasing on the fly. Viewport 2.0 is now set up to be the default renderer in Maya 2015. Figure 3: Viewport 2.0 supports particles and makes it easy to tweak effects to get the right look without having to render the scene. Image courtesy of Autodesk For navigating an existing scene, the new Walk tool is awesome. Using this mode, you can move through the scene as if you were playing a first-person shooter using the S, W, A and D keys. This allows navigation of the scene using a method that is familiar to most gamers. Another navigation option specifically for tablet users is support for Multi-Touch devices including certain Wacom, Cintiq and MacBook systems. Using the common two-finger pinch gesture, you can zoom in and out of the viewport. You can also tumble the scene with a swipe and return to home with a two-finger double-tap. Texture and Shrinkwrap Deformers Texture Deformers provide an easy way to view and use displacement maps. Once applied you can control the amount of influence the texture has over changing the surface of the model. Another new deformer is the Shrinkwrap deformer that wraps one object around another. This is a great way to apply flat textures to the surface of another object like a decal or to completely engulf an object like armor on a character's arm would. OpenSubDiv Support Maya 2015 now supports Pixar's OpenSubDiv mesh smoothing method. This allows for much faster playback of animated meshes over legacy smoothing methods. This is possible because OpenSubDiv utilizes parallel CPU and GPU architectures. Support for OpenSubDiv lets you view animated mesh-smoothed characters and objects as smoothed meshes without slowing down the frame rate. Modeling Improvements If you look closely at the manipulator for moving and scaling, you'll see that there are now plane handles that let you move and scale within a plane along two axes at once. The Quad Draw tool has been updated with some great new features including Edge Extend and Auto Weld. Edge Extend lets you create new polygons by extending a current edge and when vertices are place near one another, they can automatically be welded together when Auto Weld is enabled. There is also a new Relax brush that smoothes the mesh across the surface. The Make Live tool lets you set a scanned or dense mesh as a surface to follow. This makes tasks such a retopology much faster and easier. The Quad Draw tool also includes a new setting that lets you customize the hotkeys for controlling the different tool features. You can also customize the color display that is highlighted when using the different tools. The Split Polygon tool has been combined with the Interactive Split tool and the Cut Faces tool to create a single cutting tool called the Multi-Cut tool. This single tool can now be used to cut, split and combine polygons without having to switch to different tools. Beveling has been improved allowing for non-destructive bevel of corners. Boolean operations have also been improved to be faster and cleaner. There is also a new Convert Selection option to change the current component selection to the edges or vertices that make up the perimeter of the selection. UV Updates The UV Editor has also been improved with several great new features. The new multi-threaded Unfold3D mapping option lets you define cuts and then automatically unfolds the mesh for painting. The results are good because neighboring faces are kept together. There is also an Optimize feature that cleans up the UVs that are twisted along with a Distortion shader that lets you visually see the areas that are tightly bunched with red areas showing the stretched UVs and blue areas showing the compressed UVs, as shown in Figure 4. Figure 4: The Distortion shader quickly shows which UVs are stretched and compressed. Image courtesy of Autodesk There are also several new editing features such as Nudge UVs, Normalize: Scale on Closest Tile, and Create UV Shell, which creates a UV shell from the current selection. The UV Editor also includes support for multi-tiled textures that are common in Mudbox and ZBrush. These tiles are presented in a grid and you can easily move UV shells between the different tiles. Character Skinning Skinning characters is one of the trickiest aspects of character modeling, but the new Geodesic Voxel Binding feature handles this task by allowing for some flexibility when dealing with overlapping objects. It can also work with multiple objects. The system voxelizes the skeleton and the skin mesh and computes a good fit. This results in skin weights that are more realistic than other binding options and the system is compatible with most game engines. Summary Since Maya is used in so many different industries, it is common to see features custom-made for other types of users. However, with this release, game developers should rejoice because almost every new feature is specifically designed to help game creators be more efficient and cool effects just got easier to do. From the advanced simulation tools like Bifrost and Bullet Physics to the new ShaderFX Editor and improved Quad Draw and Multi-Cut tools, game developers have a lot to be happy about. And all the back-end engines wouldn't be that helpful if you couldn't see their results, but the new Viewport 2.0 improvements make it possible to see all these simulation improvements directly in the viewport letting you tweak the effect until it is just right and rendering it out only once. Maya 2015 is available for Windows, Linux, and Macintosh OS X. For more information on any of these products, visit the Autodesk web site located at http://www.autodesk.com. A free trial version is also available at http://www.autodesk.com/freetrials.
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!