Appstore Blogs Appstore DeveloperBlog /blogs/appstore/feed/entries/atom 2018-02-24T00:18:17+00:00 Apache Roller /blogs/appstore/post/d3d3ecdb-020b-43ec-af7a-7aa550ab4105/join-us-for-the-amazon-developer-days-at-gdc2018 Join Us for the Amazon Developer Days at GDC 2018 Tess Selim 2018-02-23T02:09:44+00:00 2018-02-24T00:18:17+00:00 <p><img alt="" src="" style="display:block; margin-left:auto; margin-right:auto" /></p> <p>GDC 2018 is right around the corner, and we’re excited to be back with a week full of brand new content! Let us know if you'll be going to GDC and you'll get free swag when you check in to the Amazon Developer Day on Monday, March 19<sup>th</sup>.</p> <p><img alt="GDC_header.png" src="" style="display:block; margin-left:auto; margin-right:auto" /></p> <p><br /> GDC 2018 is right around the corner, and we’re excited to be back with a week full of brand new content!</p> <p><strong>Amazon Developer Days | Monday - Tuesday</strong></p> <p>Join us Monday and Tuesday for the Amazon Developer Days. On Monday, March 19th, we will kick off the morning with a keynote presentation from Marja Koopmans, Director of Mobile eSports, on the future of mobile gaming and competitive gameplay beyond traditional eSports. The keynote will be followed by a technical session delivered by Developer Evangelist Peter Heinrich, focusing on competitive play integration, and two developer panels featuring speakers from&nbsp;Game Insight, nWay, Umbrella Game, GameCloud Studios, and Vector Unit. We will end the day with two talks from Twitch on leveraging Twitch Extensions and Twitch Integrations.</p> <p>On Tuesday, March 20th, AWS will start us off with a session on how to build an analytics pipeline for games using AWS services, then Lumberyard will teach you how to pack your games full of cloud-connected features using Cloud Gem micro-services. After lunch, we will explore trends of multiplayer game infrastructure with Amazon GameLift, and how to use&nbsp;AWS services to build games. Finally, we will end with an introduction to building voice-first games on Alexa.</p> <p style="text-align:center"><a href="" target="_blank">Add these sessions to the Session Scheduler</a><br /> &nbsp;</p> <p><strong>Amazon Expo Booth | Wednesday – Friday </strong></p> <p>Head to the Amazon booth #1001 in Moscone South, Wednesday, March 21st&nbsp;through Friday, March 23rd&nbsp;to learn how our tools and services can help your game succeed. This year, we’ve organized content around <a href="" target="_blank">five key use cases</a> to make it easier to find what you’re looking for. And, Amazon product teams will be on-site to answer any questions. Check out the <a href="" target="_blank">full list of classroom sessions</a>&nbsp;offered at the booth.&nbsp;</p> <p>Let us know if you are attending GDC and&nbsp;get free swag when you check in to the Amazon Developer Day on Monday, March 19th.&nbsp;</p> <p><a href="" target="_blank"><img alt="" src="" style="display:block; margin-left:auto; margin-right:auto" /> </a></p> /blogs/appstore/post/c3bb924b-e93f-4147-8f55-42fd34ad98bf/29-tips-to-make-the-most-out-of-your-next-conference 29 Tips to Make the Most Out of Your Next Conference Emily Esposito Fulkerson 2018-02-20T19:54:32+00:00 2018-02-20T23:33:20+00:00 <p><img alt="Opt1.png" src="" style="display:block; margin-left:auto; margin-right:auto" /><br /> Here are my tips to get the most out of your next conference, broken down into three parts: prep work before you go, what to do while you’re there, and how to follow up effectively.</p> <p><img alt="Opt1.png" src="" style="display:block; height:320px; margin-left:auto; margin-right:auto; width:800px" /><br /> Going to a conference isn’t cheap. Even if you get a free pass to a conference, you’ll need to take time off and spend money on room and board while you’re there.</p> <p>The good news? The upside can be potentially transformative. Finding investors or publishers, meeting an individual who ends up being incredibly valuable, learning something you didn’t even know you didn’t know…</p> <p>But, there is a catch. You can’t just show up at a conference and expect to get value. You’ve got to do some homework. In my experience, the value you get from a conference is directly proportional to the work you put into it.</p> <p>Here are my tips to get the most out of your next conference, broken down into three parts: prep work before you go, what to do while you’re there, and how to follow up effectively.</p> <h2>Preparation before the conference&nbsp;</h2> <p><u><strong>Have goals&nbsp;</strong></u></p> <p>What do you want to get out of the conference? If you can’t think of something, don’t go. It’s not enough to say you want to “stay open to possibilities.” I don’t know many developers who have been successful at a conference that way.</p> <p>If you’re looking for a place to start with goals, here are some ideas worth considering:<br /> &nbsp;</p> <ul> <li><strong>Meet a publisher or investor</strong>. Make yourself known and set up a follow up meeting. (Don’t expect to ink a deal at the conference. Typically, that happens later.)<br /> &nbsp;</li> <li><strong>Enter an indie game competition</strong>. It’s a great way to get exposure to influential folks in the industry and maximize exposure for your game. You may even get to showcase your game at the conference!<br /> &nbsp;</li> <li><strong>Get a mentor</strong>. Folks in our industry love to help each other. Meet folks at the mixers and parties. You may hit it off with a fantastic mentor who can help a lot. Make sure to have a clear ask on what you want to be mentored on.<br /> &nbsp;</li> <li><strong>Learn how to</strong>… Increase downloads, conversions, ad revenue, etc. There will typically be talks covering just about anything you want to learn more about. There are also a ton of vendors who would be happy to help, and even other developers will likely share what they’ve learned. Remember to check session attendance against your goals.<br /> &nbsp;</li> <li><strong>See your competition.</strong> It’s possible that the games competing for your potential players'&nbsp;attention are much better than you had thought. Do you need to change project goals to be competitive or are you setting the bar in your category?<br /> &nbsp;</li> </ul> <p><strong><u>Create a meeting strategy</u></strong></p> <p>Based on your goals for the conference, you should have a good idea who you want to meet with. If not, most conferences will have a list of attendees, so you can look through the list to help you find people to meet with. Do this early, as folks’ calendars fill up quickly.</p> <p>Here are some tips for setting meetings:<br /> &nbsp;</p> <ul> <li>When setting a meeting via email or a conference system, be sure to include a concise ask. For example, “I’d like to show you my game in development and discuss if there is a potential publishing arrangement for Q3 2018.”<br /> &nbsp;</li> <li>Avoid scheduling or accepting un-needed meetings. Remember your goals, and be respectful of the time of others.<br /> &nbsp;</li> <li>Be location-aware.&nbsp;Not all meetings are at the conference center.<br /> &nbsp;</li> <li>Confirm meetings two days prior to the conference.<br /> &nbsp;</li> </ul> <p>Give yourself time to process the last meeting before your next meeting. Make sure you finish your notes and leave time to travel to your next meeting. The worst mistake I made was to book meetings back to back. If they ran short, I was okay. But few ran short.</p> <p><strong><u>Prepare for your demo&nbsp;</u></strong></p> <p>Do you plan on doing a demo of your game? If so, here are some things to think about <em>before </em>you arrive at the conference.<br /> &nbsp;</p> <ul> <li><strong>Have a quick reset build available</strong>. It should take seconds to make your game demo ready for the next player.<br /> &nbsp;</li> <li><strong>Know what you want to showcase.</strong> You could choose to highlight amazing art, clever monetization mechanics, engaging game loop, or original game mechanics. <ul> <li>Create your demo build to show off that aspect of the game. Publishers probably want to see a fun loop that can be monetized. Investors may want to see you have an outstanding artist on staff. Prize voters (game judges)&nbsp;may want to see originality and creativity.</li> <li>Don’t forget to check this against your conference goals.<br /> &nbsp;</li> </ul> </li> </ul> <p>If all of this sounds like a lot of work, it’s true. And if you also need to staff a booth where you are showcasing your game, you may want to consider taking someone with you to the conference. Just make sure you have assigned tasks that they can do on their own while you concentrate on your own tasks.</p> <h2>At the conference&nbsp;</h2> <p>Smile! Say hello to strangers. The least productive attendees spend the conference sitting down, staring at their phone just waiting for someone to come up and talk to them. That almost never happens. Instead, stand up, smile, and greet people. Every person you talk to is an opportunity to practice your elevator pitch! You never know who you might meet this way.</p> <p><strong><u>Manage your meetings well</u></strong></p> <p>A well-prepared dev will always impress more than one who is disorganized. Here’s how to give a great first impression while being practical at the same time.<br /> &nbsp;</p> <ul> <li><strong>Print a hard-copy of your schedule</strong>. WiFi at conferences rarely works as well as you like, and never as well as you need.<br /> &nbsp;</li> <li><strong>Come prepared</strong>. Bring cards, pen and paper, but also research on the company you’re meeting with. Little is quite as embarrassing as asking for a meeting, only to learn that you don’t really understand what they do.<br /> &nbsp;</li> <li><strong>Take notes</strong>. You never remember as much as you think you will.<br /> &nbsp;</li> <li><strong>Make sure you get their business cards</strong>. This is critical for spelling and title accuracy when you follow up.<br /> &nbsp;</li> </ul> <p><strong><u>Demo your game</u></strong></p> <p>The first step is optimizing for your typical demo space. Rarely will the space available have bandwidth that makes your game look good. Consider this as you prepare the demo you want to show. If you are showcasing your game in conjunction with a competition, you’ll likely have a table to demo from. Yay! If not, you may need to optimize for two people standing next to each other in the middle of a crowd. In either case, showing off your audio will require headphones (don’t share earbuds. Gross.) So how do you get people to stop and play?<br /> &nbsp;</p> <ul> <li><strong>Ask people if they want to play your game</strong><br /> &nbsp;</li> <li><strong>Be able to describe it in two sentences</strong> <ul> <li>“It’s a match-3 game where you can move the board 90 degrees and cause a big reset!”</li> <li>“It’s a puzzle game set inside a text adventure. You get clues to the puzzles as you go farther through the adventure.”</li> <li>“It’s a first-person shooter where you attack with clever insults and defend with witty comebacks instead of using bullets and shields.”<br /> &nbsp;</li> </ul> </li> </ul> <p>Here is how to make sure players have a good experience once they stop to play your game:<br /> &nbsp;</p> <ul> <li><strong>Have the game ready to go</strong>. No waiting rocks!<br /> &nbsp;</li> <li><strong>Let your guest play the game</strong>. Don’t play it for them.<br /> &nbsp;</li> <li><strong>Offer influencers a copy of your game</strong>. You want to help them play, write, and talk about your game as much as possible.<br /> &nbsp;</li> <li><strong>Ask for their business cards.</strong><br /> &nbsp;</li> </ul> <p><strong><u>Other useful hints</u></strong><br /> &nbsp;</p> <ul> <li><strong>Introduce people to each other</strong>, and include context for the introduction. Both parties will remember the introduction with context favorably.<br /> &nbsp;</li> <li><strong>Check in on your staff occasionally. </strong>Not only to help them stay on-task, but to gather any hot leads or connections that you should act on quickly.<br /> &nbsp;</li> <li><strong>Remember your conference goals!</strong><br /> &nbsp;</li> </ul> <h2>Follow up</h2> <p>Every bit as important as preparation and execution, follow up is where business is conducted. Schedule time in your calendar for follow up. I am typically able to schedule two days to devote to following up, and it’s never enough.</p> <p>Here are some things that people appreciate:<br /> &nbsp;</p> <ul> <li><strong>Provide a lot of context in your follow up mail</strong>. They may not remember you, but don’t be offended. They probably met 100 devs just like you. A detailed follow-up will differentiate you from the rest.<br /> &nbsp;</li> <li><strong>List deliverables (yours and theirs)</strong>. It’s why you need to send the follow-up mail, after all.<br /> &nbsp;</li> <li><strong>Add the people you met on social media.&nbsp;</strong>Use a custom greeting, not the default note. You want your contact to feel special.<br /> &nbsp;</li> <li><strong>Record all your notes in one place. </strong>Make sure all the information you gathered gets recorded in one searchable place (CRM, Excel, whatever).</li> </ul> /blogs/appstore/post/57f6a789-6acc-4c4b-911c-3a11baf42938/webinar-the-case-for-competitive-gaming Webinar: The Case for Competitive Gaming Emily Esposito Fulkerson 2018-02-19T20:31:26+00:00 2018-02-19T20:31:26+00:00 <p><img alt="blog.jpg" src="" style="display:block; margin-left:auto; margin-right:auto" /><br /> When we think of competitive gaming, our minds go immediately to eSports. However, competitive gaming is much more than eSports. In this webinar, we’ll explore the growth behind eSports and what this means for you.</p> <p><img alt="blog.jpg" src="" style="display:block; margin-left:auto; margin-right:auto" /><br /> When we think of competitive gaming, our minds go immediately to eSports. However, competitive gaming is much more than eSports. Any time you play against another person, you are participating in a competitive game. Humans are wired for competition, and this creates a big opportunity for game developers.</p> <p>In this webinar, we’ll explore the growth behind eSports and what this means for you. You’ll learn about:</p> <ul> <li>Who is watching and playing competitive games</li> <li>eSports revenue and where competitive gaming is taking off</li> <li>Best practices to take advantage of competitive gaming</li> </ul> <p>We are offering two sessions of this webinar on Tuesday, February 27, 2018: 7:00 a.m. PST and 1:00 p.m. PST. Sign up today to reserve your spot!<br /> &nbsp;</p> <p><a href=";tp_key=54ff7b1ac2" target="_blank"><img alt="" src="" style="display:block; height:50px; margin-left:auto; margin-right:auto; width:200px" /></a><a href=";tp_key=8a4fa6af85" target="_blank"><img alt="" src="" style="display:block; height:50px; margin-left:auto; margin-right:auto; width:200px" /></a></p> /blogs/appstore/post/2b029753-4cf9-4baf-84a5-5494046c1744/case-study-atom-tickets-teams-up-with-amazon-to-fuel-the-fun-at-the-movies Case Study: Atom Tickets Teams Up with Amazon to Fuel the Fun at the Movies Emily Esposito Fulkerson 2018-02-15T22:39:33+00:00 2018-02-15T22:40:13+00:00 <p style="text-align:center"><img alt="lower_banner_width_720.jpg" src="" /></p> <p>Atom Tickets uses Login With Amazon and Amazon Pay services to simplify and streamline use of the app. The services enable Atom Tickets’ web and mobile app users to log in and pay with the trusted source they already use for other online shopping.</p> <p style="text-align:center"><img alt="upper_for-blog-2.jpg" src="" style="height:233px; width:600px" /></p> <p><br /> Atom Tickets’ intuitive service is all about great user experience: easy planning with friends and family; simple payment and cost sharing; the ability to walk right past concession and entry lines. Atom Tickets users get to sit back and enjoy the show.</p> <p>The company’s obsession with creating unsurpassed customer experiences inspired collaboration with Amazon. Atom Tickets uses Login With Amazon and Amazon Pay services to simplify and streamline use of the app. The services enable Atom Tickets’ web and mobile app users to log in and pay with the trusted source they already use for other online shopping.<br /> &nbsp;</p> <p><img alt="middle_for-blog-2.jpg" src="" style="display:block; height:23px; margin-left:auto; margin-right:auto; width:600px" /><br /> <br /> The benefits to users, theaters, and Atom Tickets are clear. Easier login and payment saves time and effort, allowing users to focus on the social experience. Users can also be confident that their personal and payment information is secure.</p> <p>With Amazon services, Atom Tickets has seen a 20% higher average order value and a massive 62% drop in cancellations for orders placed, while its theater chain customers have benefited from an 8% increase in tickets sold per order.<br /> &nbsp;</p> <p style="text-align:center"><a href="" target="_blank"><img alt="new-button-dark.png" src="" style="height:65px; width:260px" /></a><br /> &nbsp;</p> <p style="text-align:center"><img alt="bottom_for-blog-2.jpg" src="" style="height:233px; width:600px" /></p> /blogs/appstore/post/b6c0a06c-22bb-4b73-979f-18e6860a0248/tips-for-making-a-twitch-friendly-mobile-game-part-2 Tips for Making a Twitch-Friendly Mobile Game (Part 2) Emily Esposito Fulkerson 2018-02-09T17:48:53+00:00 2018-02-19T20:23:45+00:00 <p><img alt="Twitchfriendly-heroimage1.jpg" src="" style="display:block; height:385px; margin-left:auto; margin-right:auto; width:800px" /></p> <p>In this post, I'll talk about making your game technically easy for broadcasters to stream your game and how to enable compelling content.&nbsp;</p> <p><img alt="Twitchfriendly-heroimage1.jpg" src="" style="display:block; height:385px; margin-left:auto; margin-right:auto; width:800px" /></p> <p>Hello again and welcome to the second part of my series on how to make Twitch-friendly mobile games. Click <a href="" target="_blank">here</a> to read my first post on whether or not you need to integrate a streaming SDK.&nbsp;</p> <p>In this post, I'll talk about making your game technically easy for broadcasters to stream your game and how to enable compelling content.&nbsp;</p> <p>While there shouldn’t be a need for a game developer to invest a lot of engineering work to make their mobile game ready to be shown on Twitch, technical decisions <em>can</em> dramatically affect how easy it is for a broadcaster to stream a game. And while Twitch streamers will often go a long way to accommodate content that they think is compelling, reducing the amount of friction needed to add your game can only increase its appeal.</p> <h2>Tip: DO make it technically easy for a broadcaster to stream your game – and for a fan to watch it!</h2> <p>As I mentioned&nbsp;earlier, streaming gameplay is simply one part of the entire experience that a streamer builds. But that doesn’t mean that the gameplay is not central to the stream – it should be – and you need to make it easy for a broadcaster to show your game.</p> <p>What are the common ways for mobile games to be streamed?</p> <ul> <li><strong>Emulators</strong>: An Android emulator is an easy, no-extra-hardware-required way for broadcasters to include a mobile game into their stream. There are now quite a few emulators available for PCs, but the nature of emulators is that they don’t always act exactly like a phone or a tablet. In my experience, there are a surprising number of mobile games that aren’t emulator-compatible, often because of differences with how the emulators handle file storage. To be as Twitch-friendly as possible, you should test your game on the most common emulators just as you do the most common mobile devices.</li> <li><strong>Screen capture software</strong>: In this method, users&nbsp;use&nbsp;software on their mobile device to stream to their streaming machine. The advantage is that this doesn’t require any additional hardware, other than a mobile device, and the game is running natively. The downside is that the screen capture and streaming software require&nbsp;a good chunk of processor speed, which can impact the performance of the game.</li> <li>“<strong>Spectator mode:&quot;&nbsp;</strong>Another way that streamers can get mobile gameplay into their stream is by using Spectator Mode on another device. This approach is more common for productions displaying other people’s displays (such as with eSports broadcasts), but can also be a method for individual streamers.</li> <li><strong>Screen capturing hardware: </strong>Probably the best option for the Twitch streamer, this simply shows what is&nbsp;displayed on the mobile device. The game can run natively, there is no impact on the performance of the game, and there are no compatibility issues on the streamer’s machine.</li> </ul> <p>Certain technical design decisions can also impact how appealing a mobile game is for a broadcaster:</p> <ul> <li><strong>Orientation</strong>: Landscape mode matches the orientation of a Twitch broadcast, while portrait orientation requires an overlay to make different use of the screen.</li> <li><strong>Legible graphics</strong>: Large, distinctive graphic design makes your gameplay easier to see on a small screen (especially important if you need portrait orientation).</li> <li><strong>No audio locks</strong>: Mobile game fans often watch Twitch on their mobile device, and they often will listen to a stream in the background while playing the game. A Twitch-friendly mobile game should allow for this use case by not requiring audio or letting other audio play in the background.</li> </ul> <p>The overall strategy should be to understand what streamers need to do to build a real stream – beyond the simple broadcast of gameplay – and see how the game can enable their success.</p> <p>Of course, technical issues are not the only concern (or even a prime concern!) for a content creator.&nbsp;Content creators are in the business of telling a story and putting on a show, and it’s much easier to do that if they’re highlighting something that is fun to watch.</p> <h2>Tip: DO enable compelling content</h2> <p>For a game to be appealing to Twitch streamers, it must be a game that allows for compelling, or at least interesting, content for a stream. While it’s impossible to define exactly what defines “interesting content” on Twitch (and one of the great parts of Twitch is that there’s something for almost everyone), the mobile games that are popular on Twitch share some similar traits. Here are some of my tips:</p> <ul> <li><strong>Play well with others</strong>. Twitch streams thrive on interactivity, and features that help streamers play with their viewers, like PvP or co-op modes, enable them to interact with their community.&nbsp;</li> <li><strong>Skill matters: </strong>Games that let broadcasters show off their abilities are always popular on Twitch. From speed-running console games to showing off in hardcore “high skill cap” PC games, broadcasters love showing off how good they are. Is there a mode or a design in your game that lets streamers showcase their skill?</li> <li><strong>Be global: </strong>The audience for game content is incredibly global, and the game should match that availability. Streamers won’t want to show a game if it’s not available in large sections of the world that are important to their audience.</li> <li><strong>People love surprises: </strong>Don’t underestimate the appeal of opening a surprise gift! While people may debate what place random boxes, crates, or other “GACHA” mechanics should have in video games, the fact of the matter is that people love watching these random loot items being opened… ESPECIALLY if the audience didn’t have to pay for it!</li> </ul> <p>Content creators are very busy, and as a game developer, you already know that creating something for other people is not easy. Making it easier to use your game and making sure that there are elements that “show well” only increases the chances that your game will become something that other people will want to show off.</p> <p>In part three&nbsp;of this series, I will discuss ways that you can engage and promote your content creating community.</p> <h2>More reading</h2> <ul> <li><a href="" target="_blank">Tips for Making a Twitch-Friendly Mobile Game (Part 1)</a></li> </ul> <p>&nbsp;</p> /blogs/appstore/post/e355260d-ffed-4807-8f62-25dd0c8164f4/gamemaker-basics-parenting-and-inheritance GameMaker Basics: Parenting and Inheritance Emily Esposito Fulkerson 2018-02-07T20:34:17+00:00 2018-02-07T20:34:17+00:00 <p><img alt="Parenting_Nathan_image2.gif" src="" style="display:block; height:278px; margin-left:auto; margin-right:auto; width:700px" /></p> <p>It’s me again, back with yet another GameMaker basics tutorial, this time about&nbsp;parenting and inheritance.&nbsp;You can save a lot of time by creating a parent enemy object, which has common variables and code that all of your enemies may need, and passing it down.</p> <p><img alt="Parenting_Nathan_image2.gif" src="" style="display:block; height:278px; margin-left:auto; margin-right:auto; width:700px" /></p> <p>Howdy folks! It’s me again, back with yet another GameMaker basics tutorial, this time about&nbsp;parenting and inheritance. A parent object is able to pass its code down to child objects, which then run the parent code as if it were their own. You can save a lot of time by creating a parent enemy object, which has common variables and code that all of your enemies may need, and passing it down. This is exactly what we will be doing in this example.</p> <h1>Parent set up</h1> <p>The first thing we need to do is create the actual parent object. This object will not need to exist in the actual game itself, because it will only be passing its code to objects that will exist in the game. Create a new object and name it <strong>parentEnemy</strong>. This object does not need to have a sprite. Add the <strong>create event</strong> and <strong>step event</strong>, and let's&nbsp;add some code.</p> <p><strong>parentEnemy create event</strong></p> <pre> <code>life = 5; dead = false;</code></pre> <p><strong>parentEnemy step event</strong></p> <pre> <code>if(life &lt;= 0){ dead = true; } if(dead){ instance_destroy(); }</code></pre> <p>In the <strong>create event</strong> we are initializing two variables. <strong>Life</strong> is the amount of health/hp our enemy will have, and <strong>dead</strong> is a boolean that lets us define what happens when the enemy’s life reaches zero. In this case, we are just going to destroy the object.</p> <p>Now we need to create an enemy object to pass this code to. Create a sprite of some kind for your new enemy, it doesn’t matter what it looks like, and then create a new enemy object. Assign a sprite to this new enemy object, and set the parent to <strong>parentEnemy</strong>.</p> <p><img alt="Parenting_Nathan_Image1.png" src="" style="display:block; height:341px; margin-left:auto; margin-right:auto; width:728px" /></p> <p>Finally, add the <strong>create event</strong>, <strong>step event</strong>, and <strong>draw event</strong>.</p> <h1>Child set up</h1> <p>Now we are ready to pass our code from the parent to the new object, which will be referred to as the child object from here on out.</p> <p><strong>Child object create event</strong></p> <pre> <code>event_inherited();</code></pre> <p><strong>Child object step event</strong></p> <pre> <code>event_inherited(); if(mouse_check_button_pressed(mb_left)){ life --; }</code></pre> <p><strong>Child object draw event</strong></p> <pre> <code>draw_self(); draw_text(x,y - sprite_height, life);</code></pre> <p>By calling the <strong>event_inherited</strong> function, the code from the parent object is passed down. It is important to call this function in each event the child object shares with the parent object. So, since we have a create event, and step event in the parent and child, we have to call <strong>event_inherited</strong> in the child <strong>in both events</strong>. If our child object did <strong>not</strong> have one of the same events as the parent, let's&nbsp;say step event for example, the child will automatically inherit the step event code from the parent. Just something to keep in mind.</p> <p>The last bit of code up there for the draw event is mostly for debug purposes. We are drawing the <strong>life</strong> variable to the screen, so we can see it deplete when we click the mouse button. If you run the game now, and click the mouse, your enemy life should deplete to zero and then be deleted.</p> <p><img alt="Parenting_Nathan_image3.gif" src="" style="display:block; margin-left:auto; margin-right:auto" /></p> <p style="text-align:center">&nbsp;</p> <h1>Overwriting inherited code</h1> <p>There may be times when your child objects do not need to inherit all of the parents code, or you need to make changes to the code that is being inherited. Let's say you want one of your enemies to have ten life, instead of five that it is inheriting. To overwrite the inherited variable, all you need to do is re-initialize that variable after you call <strong>event_inherited</strong>.</p> <p><strong>Child object create event</strong></p> <pre> <code>event_inherited(); life = 10;</code></pre> <p><img alt="Parenting_Nathan_image2.gif" src="" style="display:block; margin-left:auto; margin-right:auto" /></p> <p>Each enemy has a different life variable, and is still a child of the parentEnemy object.</p> <p>For step events, and code that runs every frame, it can be a little different. For example, if we had this code in both the parent and the child…</p> <pre> <code>if(mouse_check_button_pressed(mb_left)){ life --; }</code></pre> <p>… and the child was inheriting from the parent, then every time we clicked the mouse the <strong>life</strong> variable would be reduced by two, rather than one. It’s best to avoid any duplicate code in the parent and child object. But, what do you do if you don’t want the child to inherit part of the parent code? It's&nbsp;as easy as not calling <strong>event_inherited</strong> in the child event. The best practice here is to try to give the parent code that you are absolutely sure the child will need.</p> <h1>Closing comments</h1> <p>That about wraps it up for parenting and inheritance. As you can see this is a very convenient and powerful tool that will help you manage your objects, and cut down on redundant code. Thank you for taking the time to read over this, and I’ll catch you next time. As always, you can reach me on <a href="" target="_blank">Twitter</a> or visit my <a href="" target="_blank">website</a> for more gamedev stuff.</p> <p>Thank you!</p> <div> &nbsp; </div> <p style="text-align:center"><a href=""><img alt="NathanRBio.jpg" src="" /></a></p> <p style="text-align:center"><em>Nathan Ranney is the founder of punk house game dev shop, <a href="" target="_blank">RatCasket</a>. He’s best known for the creation and development of Kerfuffle, an online indie fighting game.</em></p> /blogs/appstore/post/8731aea0-68ad-4702-af95-343237a78e7e/advanced-debugging-and-profiling-in-gamemaker-studio-2 Advanced Debugging and Profiling in GameMaker Studio 2 Emily Esposito Fulkerson 2018-02-02T00:04:04+00:00 2018-02-02T00:04:04+00:00 <p><img alt="debuggingarticle2image11.gif" src="" style="display:block; margin-left:auto; margin-right:auto" /><br /> In my <a href="" target="_blank">last post</a>, I explained my process when debugging games and some tips to find bugs quickly and identify bottlenecks in your game. In this post, I'll cover some more advanced debugging techniques and also talk about profiling your game.</p> <p><img alt="debuggingarticle2image11.gif" src="" style="display:block; margin-left:auto; margin-right:auto" /><br /> In my <a href="" target="_blank">last post</a>, I explained my process when debugging games and some tips to find bugs quickly and identify bottlenecks in your game. In this post, I'll cover some more advanced debugging techniques and also talk about profiling your game.</p> <h2>Debugging draw events and surfaces</h2> <p>These are probably my favorite set of tools, since I work with surfaces and draw code a lot. I’m talking specifically about the <strong>Render States</strong> and <strong>Surfaces &amp; Textures</strong> windows. In render states, you have all the different variables that determine how each object is changed before being drawn. Each of these variables has a function associated with it to change their values, so I will not cover those, but it’s good to know you can check the current state of all of them if you need to.<br /> &nbsp;</p> <p><img alt="debugging-post2-image1(1).gif" src="" style="display:block; margin-left:auto; margin-right:auto" /></p> <p><br /> We then have the <strong>Surfaces &amp; Textures</strong> window, which is divided in two sections, one for each. When you have a GameMaker project, your sprites are merged and put into what is called Texture Pages. The reason why GameMaker does this is to avoid sending hundreds of images to the GPU, one for each sprite, or even one for each frame of each animation of the sprite.</p> <p>Instead, GM sends the GPU a big texture page and the coordinates of each sprite you want to draw. This makes the process a lot faster if used correctly. What I mean&nbsp;is that it is in your best interest to get into the habit of grouping sprites you know will appear together (such as enemies and tilesets from a specific level or world) into their own texture group. When you do this, GameMaker will do its best to group those sprites together into the same texture page, which makes it so we don’t have to send too many textures to the GPU and the game runs faster.</p> <p>In my example below, I didn’t do this, which is why you can see a mess of sprites that don’t belong together in each page. It also created huge loading times for me, as GameMaker has to create all texture pages in the texture group when you change as single sprite in it, which was default in my case for every single one. Don’t make the same mistakes I did.</p> <p>If you are in the Textures tab, you can see all your texture pages. If they are not showing up, just click on the refresh icon and they should appear. Then, you can hover over any of the images to see an enlarged version and check that the sprites you want grouped together are in the same page.<br /> &nbsp;</p> <p><img alt="debugging-post2-image2.gif" src="" style="display:block; margin-left:auto; margin-right:auto" /></p> <p><br /> The second part to this window is the Surface one. It works the same way as the Texture section, but instead it shows all the current surfaces, including the application surface (where everything is drawn to). The refresh button is a lot more important in this section, as surfaces can change between frames, so always to remember to refresh so you know for sure you are looking at the latest version of each surface.</p> <p>Because surfaces are created at run-time, sometimes it’s hard to know if what you think should be drawn is actually what’s being drawn. With this tool, you can easily check that the surfaces created have the correct size and information drawn on it, and even debug it when you are composing multiple surfaces and shaders together to create an effect, like I did with HackyZack’s book menu.</p> <p>Below you can see an example of all the different surfaces that had to be created to draw the book and all the stickers, player, cursor, etc.<br /> &nbsp;</p> <p><img alt="debuggingarticle2image3.gif" src="" style="display:block; margin-left:auto; margin-right:auto" /></p> <h2><br /> Miscellaneous debug windows</h2> <p>I’ve covered most of the tools provided by the debugger, but a few don’t fall into any previous category, so I will quickly mention them now. The first is the <strong>Call Stack</strong> window. Previously I talked about the call stack, and this is a visual representation of it. The cool feature is that you can double-click on any entry in the stack and it will take you to the part of the code where this specific script was called from. This is especially useful when trying to figure out which object or event called a script used in multiple places throughout your code.<br /> &nbsp;</p> <p><img alt="debugging-post2-image4(1).gif" src="" style="display:block; margin-left:auto; margin-right:auto" /></p> <p><br /> Another cool little window you can display with the debugger is the <strong>Graph</strong>. This handy tool shows you important performance information about your game, such as the current and average FPS and Memory values. You may also notice a few vertical lines in the graph, the white ones being events called by the user (using the functions <strong>show_debug_message()</strong> and <strong>debug_event</strong>), and the blue ones being system events. If you hover on these lines, you will see more detailed information about what happened at that point, which is useful if you notice that the line aligns perfectly with a memory spike or an FPS drop.<br /> &nbsp;</p> <p><img alt="debugging-post2-image5.gif" src="" style="display:block; margin-left:auto; margin-right:auto" /></p> <p><br /> The last window I wanted to mention is for <strong>Buffers</strong>. I will admit that I’ve never used buffers in GameMaker, so I don’t have a good example of what it looks like nor how useful it can be. However, I know it is essentially a hex editor for a buffer, which you select by specifying the id. You can also select the alignment and how the data is displayed by clicking on the burger icon at the bottom right, or by right clicking anywhere on the window.<br /> &nbsp;</p> <p><img alt="debugging-post2-image6.gif" src="" style="display:block; margin-left:auto; margin-right:auto" /></p> <p><br /> That is all for the debugger portion of this article! We have one more topic to cover before we are done, which is profiling your game.</p> <h2>Using the profiler</h2> <p>In the <strong>Other</strong> tab, you will find the <strong>Profiler</strong> window. This tiny box has a lot of information and functionality to go through, so let’s get started. To profile your game, all you need to do is start the game with the debugger attached (F6) and get to the section of the game you want to test. It is advised to test sections separately as you will gather a ton of data and it’s easier to understand what’s going on if you approach it a chunk at a time. For example, you may want to test your menus first, then your normal levels, then a specific boss fight. This separates the sets of data, making it easier to digest and analyze. When we are ready, all we have to do is press <strong>Start Profiling</strong> and GameMaker will collect data. Likewise, when you feel you have collected enough data, you can press <strong>Stop Profiling</strong> and the information will stay intact for you to parse through.<br /> &nbsp;</p> <p><img alt="debugging-post2-image7.gif" src="" style="display:block; margin-left:auto; margin-right:auto" /></p> <p><br /> As you may notice, there is a ton of information being provided, which is good. With the current settings, the profiler will list each event being run by every instance in the room. Next, it shows three values, which are the average number of times that event is called each frame, the time (in Ms) it takes to execute that event, and the percentage of the frame that event takes. We can also get the total value of these three values instead of the average, by just unchecking the <strong>Average Values</strong> box.<br /> &nbsp;</p> <p><img alt="debuggingarticle2image8.gif" src="" style="display:block; margin-left:auto; margin-right:auto" /></p> <p><br /> You may have noticed that each event also has a plus sign next to it to show more information. If we open it up, it will give us a more detailed look at every function call performed inside of that event, providing the same three values broken down into smaller pieces.<br /> &nbsp;</p> <div> <img alt="debugging-post2-image9.gif" src="" style="display:block; margin-left:auto; margin-right:auto" /> </div> <div> &nbsp; </div> <div> Now, if this mode is useful to determine if a specific instance or event is taking up too much time in the frame, but what if we want to know how much time is being used up by a script or function? We can then change the view mode from <strong>Top-Down</strong> to <strong>Bottom-Up</strong>. In this mode, we will see each function and script displayed, and the information that can be expanded will be the specific event that is calling that function. <br /> &nbsp; </div> <div> &nbsp; </div> <div> <img alt="debuggingarticle2image10.gif" src="" style="display:block; margin-left:auto; margin-right:auto" /> </div> <div> &nbsp; </div> <div> The last dropdown we can interact with determines if we want to profile only calls made in our code, the engine calls, or both at the same time. If we select engine, we will see how long it takes to do a step, how long we spending drawing the room, and information of the sort. In the combined view, we see similar information, and to access our calls, we can expand the individual events (HandleStep, HandleAlarm, DrawTheRoom, for example) to see it. <br /> &nbsp; </div> <div> &nbsp; </div> <div> <img alt="debuggingarticle2image11.gif" src="" style="display:block; margin-left:auto; margin-right:auto" /> </div> <div> <br /> <br /> Finally, a note I wanted to add is that GameMaker, by default, uses a framerate controller that automatically stops the execution of the game when it finished doing all its operations, capping the framerate to what we set the room speed to be. Typically, games run at 30 FPS or 60 FPS, so if we do some math, we conclude that a game running at 30 FPS needs to finish every frame in <strong>one&nbsp;second / 30 frames</strong>, which is <strong>0.0333</strong> <strong>seconds</strong>, or <strong>33 Ms</strong>. For a 60 FPS game, every frame has to finish in <strong>16 Ms</strong> or less. If your game is running at a high framerate in the background, the <strong>Finish_Frame</strong> event in the Engine/Combined section will usually be a big chunk of each of your frames (32.5 Ms in my example). </div> <div> &nbsp; </div> <div> <h2>Conclusion</h2> <p>The topic of debugging and profiling is extensive and can be confusing if you are new to it. I hope you try it and take advantage of this tool moving forward when debugging and optimizing your game as it is invaluable. And,&nbsp;I can’t stress enough how useful and well written the official GameMaker documentation is. I definitely recommend that you open it (F1 while in GameMaker), or by going to this link: <a href="" target="_blank">GameMaker 2 Documentation</a> and then clicking on <strong>Extras → Debugging</strong> (or clicking <a href="" target="_blank">HERE</a> to get there directly).</p> I am always willing to help if you run into any issues with the material covered in the article, or something else related to GMS2. You can contact me on <a href="" target="_blank">Twitter</a>. </div> <div> &nbsp; </div> <div> &nbsp; </div> <p style="text-align:center"><img alt="AlejandroBio.jpg" src="" style="height:145px; width:583px" /></p> <p style="text-align:center"><em>Alejandro Hitti is a videogame Programmer and Designer from Venezuela. Although his background is in C++ and working using custom-made game engines, his two commercial games, INK and HackyZack, were made using GameMaker Studio 1.4. With the release of GameMaker Studio 2, that became his engine of choice. The novelty of GMS2, paired with his knowledge of the previous version, ignited his interest to create tutorials that focus on this new engine.</em></p> /blogs/appstore/post/eb803901-9969-4eb6-9c6b-ae9d2d442e31/tips-for-making-a-twitch-friendly-mobile-game-part-1 Tips for Making a Twitch-Friendly Mobile Game (Part 1) Emily Esposito Fulkerson 2018-01-30T20:20:51+00:00 2018-02-19T20:24:29+00:00 <p><img alt="Twitchfriendly-heroimage1.jpg" src="" style="display:block; height:385px; margin-left:auto; margin-right:auto; width:1000px" /></p> <p>This three-part series will&nbsp;describe the ways that mobile game developers can make their games more attractive to the&nbsp;broadcaster community. I will touch on technical and design elements, as well as external communications and marketing.</p> <p><img alt="Twitchfriendly-heroimage1.jpg" src="" style="display:block; height:385px; margin-left:auto; margin-right:auto; width:800px" /><br /> I'm a solutions architect at the Amazon Appstore, where I help developers bring their games to Amazon. One of the most common conversations I have with game developers is about how they can optimize their game to make the best use of Twitch. As a former game developer, Twitch enthusiast, and also as someone who helped build a sizeable Twitch stream featuring mobile games, I wanted to share my insights into what game developers can do to make their games more appealing to influencers and streamers.</p> <p>Many game developers today understand that streamers (broadcasters on Twitch) and other content creators can be an important outlet. But finding streamers on Twitch (or other content creators) to highlight a game isn’t like buying ad placements. While some streamers showcase sponsored games, the vast majority of game streamers are choosing games organically, based not just on their own personal preferences, but on the requirements they have as a broadcaster.</p> <p>This three-part series is intended to describe ways that mobile game developers can make their games more attractive to that broadcaster community. I will touch on technical and design elements, as well as external communications and marketing.</p> <h2>Tip: DON’T integrate a special streaming SDK for your game</h2> <p>This is the most common question I get about streaming mobile games: “Do we need to integrate a streaming SDK?” And the answer is, simply, no. There should be no need to integrate a mobile streaming SDK, and doing so will likely not impact the appeal that your game has for&nbsp;broadcasters.</p> <p>For why this is, let’s think about how and what the typical Twitch broadcaster includes in his or her stream. While broadcasting a stream naturally implies showing gameplay, broadcasters usually include a variety of other information and features into their video stream. Streaming SDKs let someone stream the game directly from inside the application, which is great for showing the gameplay, but neglects those other important features that streamers also use for their streams: donation notifications, chat integration, multiple inputs, space for ads and sponsorships, and so on.</p> <p>Here’s a simple example of how the promise of a built-in SDK fails in the real world: Twitch broadcasting is often about showcasing a broadcaster’s personality, and a camera showing the person playing the game is almost a requirement. Meanwhile, mobile devices all include cameras, so why not use the camera on the phone in the broadcast?</p> <p>Let me illustrate why someone doesn’t want to use their phone’s camera while they play:<br /> &nbsp;</p> <p><img alt="chrisfoley-image-1_v2.png" src="" style="display:block; height:447px; margin-left:auto; margin-right:auto; width:600px" /></p> <p style="text-align:center"><em>Webcam&nbsp;pose</em><br /> &nbsp;</p> <p style="text-align:center"><img alt="chrisfoley-image-2_V3.png" src="" style="height:500px; width:380px" /></p> <p style="text-align:center"><em>Camera phone angle</em></p> <p><br /> Needless to say, most content creators don’t want to treat their audience to a view up their nose! So while a camera <em>could</em> be used in a mobile game broadcast, the fact is that all broadcasters showing mobile games today use external cameras of different types for their stream.</p> <p>The point is that content creators, like game developers, demand a lot of control over the content that they create, and a phone doesn’t allow this control, despite the convenient availability of a camera, microphone, etc.</p> <p>So while an integrated streaming SDK seems, on the surface, to make a lot of sense, it just doesn’t provide value to a broadcaster. Remember that content creators - not just the big names with high production values, but also hobbyists and fans -&nbsp;are building an experience that is more than just the gameplay.</p> <p>Don’t worry about integrating an SDK. As a game developer you should focus on building a great game and let the content creator focus on putting together the elements to produce a great piece of content.</p> <p>In the next part of this series, I will discuss some things that you should do to make more streaming-friendly mobile games. Stay tuned!</p> <h2>More reading</h2> <ul> <li><a href="" target="_blank">Tips for Making a Twitch-Friendly Mobile Game (Part 2)</a></li> </ul> /blogs/appstore/post/7f26c155-741e-4d40-8c81-25d4118860c2/appstore-survey-share-your-experience-and-have-the-opportunity-to-influence-our-roadmap Appstore Survey: Share Your Experience and Influence Our Roadmap Emily Esposito Fulkerson 2018-01-26T20:43:52+00:00 2018-01-26T20:43:52+00:00 <p><img alt="NPS-survey-heroimage.png" src="" style="display:block; margin-left:auto; margin-right:auto" /><br /> Do you currently have apps or games published on the Amazon Appstore? If so, we want to hear from you!</p> <p><img alt="NPS-survey-heroimage.png" src="" style="display:block; margin-left:auto; margin-right:auto" /><br /> Do you currently have apps or games published on the Amazon Appstore? If so, we want to hear from you!</p> <p>As part of our ongoing effort to provide better services and support for our app developers and content creators, we’d like to request your feedback via <a href=";njp=1" target="_blank">a short online survey</a>. By completing&nbsp;this survey, you have the opportunity to help us improve and&nbsp;influence our roadmap, with all your feedback going directly to our product and marketing teams.</p> <p>Our goal is to understand your experience publishing on the Amazon Appstore, including your thoughts on Amazon Fire TV, the Amazon Developer Portal, Live App Testing, the Amazon Developer Forum, and more.</p> <p>We also want to learn about how you prefer to communicate and interact with us, like how you’d like to hear about new functionality, how we can help you troubleshoot an issue, and which topics you’d like to see added to our technical documentation. &nbsp;</p> <p>These survey responses will help us better serve you going forward.<br /> &nbsp;</p> <p><a href=";njp=1" target="_blank"><img alt="take-survey-button.png" src="" style="display:block; margin-left:auto; margin-right:auto" /></a></p> /blogs/appstore/post/464806a8-944b-4695-a12f-53cd5c327a8a/game-jamming-in-unity-three-ways-to-work-faster Game Jamming in Unity: Three Ways to Work Faster Emily Esposito Fulkerson 2018-01-26T17:38:08+00:00 2018-01-26T17:42:18+00:00 <p><img alt="game-jamming-blog-hero.png" src="" style="display:block; margin-left:auto; margin-right:auto" /><br /> As you begin, remember that preparation and planning are key. During the iterative phase of game development, when your mock-up is still very malleable and subject to radical change, look for techniques that will help speed up your development time.</p> <p><img alt="game-jamming-blog-hero.png" src="" style="display:block; margin-left:auto; margin-right:auto" /></p> <p>Game jams have become a popular way for game developers to try out ideas over a few days or weeks. They are fun, often themed game development events designed to stretch your creativity by imposing an extreme time limit. They call for rapid prototyping, often resulting in a throw-away proof-of-concept for a game mechanic or interesting idea.</p> <p>Unity is perfectly suited to this kind of rapid game development. It is a game engine that comes with tools, example code, and art assets to jump-start a working prototype, helping beginners and experts alike to skip months of low-level programming.</p> <p>As you begin, remember that preparation and planning are key. During the iterative phase of game development, when your mock-up is still very malleable and subject to radical change, look for techniques that will help speed up your development time and allow you to try out new ideas with the least amount of effort.</p> <p>Here are three ways to work faster:</p> <h2>1. Start on paper</h2> <p>When you first fire up Unity and create a new project, you immediately face that most familiar of scenes—the lovely blue sky gradient. Where do you take it from there? The possibilities are endless, of course, and this can sometimes be a real problem.</p> <p>For this reason, one of the best first steps when beginning a game jam or rapid prototype is to avoid sitting in front of your computer. Instead, grab a piece of paper and a pencil, and draw a comic book version of your game.</p> <p>Think of it like a storyboard. You only need stick figures, no artistic ability required.</p> <p><img alt="workfaster-image1.png" src="" style="display:block; height:184px; margin-left:auto; margin-right:auto; width:780px" /><br /> Scribble small thumbnails for each scene when first running the game. Perhaps it begins with a splash screen, followed by a main menu. Draw them without regard for art quality but instead from a mile-high view, like making thumbnails, until you have arrived at what feels like a fun introduction to a game.</p> <h2>2. Skip square one with &quot;basecode&quot;</h2> <p>What kind of camera is in use? What kind of movement will the player have? What does the world look like, and what will the moment-to-moment actions of the players be? Once you have these questions answered, you can forge ahead with the creation of your first prototype.</p> <p>It is often handy to have your own personal base code project to start from, which is more than just the empty default new Unity project template, but also has a few of your favorite goodies (camera scripts, your favorite save game system, or a handy scene all set up to be a main menu).</p> <p>A template project, which is often referred to in game jam circles as your “basecode,” or personal game template project, is an asset well worth developing in advance before proceeding with any new game project you create. After participating in several game jams, you'll begin to notice that many of the same things need solving no matter what game genre you are developing. If you don't have to start from scratch, don't!</p> <h2>3. Customize the Unity editor</h2> <p>Unity empowers developers to completely redesign the entire program to suit their needs; code can be set to run in-editor, as opposed to code that runs during the game. This is the perfect way to run custom “randomization” scripts, do tests, calculate statistics, or mass-rename groups of objects while editing. Think of all the ways you can save time during the design phase!</p> <p>If you place a C# source file in any folder named <strong>Editor</strong>, it will not be part of the game build at all and can be used for developer-only functionality. For code in other folders, you need only wrap it in a define: “#if UNITY_EDITOR … #endif” to ensure it is never run during normal gameplay. This is super handy to add debug information to the game, or for custom editor functionality.</p> <p>Imagine making your own tools for editing only, such as a Perlin noise terrain generator or something that rotates all selected objects to a particular orientation. To create your own menu items in the Unity editor, put the following meta tag immediately above a function: “[MenuItem (“Tools/My Custom Function”)]”.</p> <p>Now, your editor enhancement can access, for example, “Selection.gameObjects,” an array of whichever game objects are currently selected, ready to modify as required. From there you could change “Selection.gameObjects[0].transform.position” or any other value.<br /> &nbsp;</p> <p><img alt="workfaster-image2.png" src="" style="display:block; height:551px; margin-left:auto; margin-right:auto; width:780px" /></p> <p><br /> Coding your own custom edit-mode tools is very fulfilling. You will reap great rewards, not merely in terms of time saved, but as a way to extend Unity to do anything you wish it could do.</p> <h2>Read more tips: download the free eBook</h2> <p>To read all my tips on how to work faster, code faster, and make art faster, download this free eBook I wrote - Game Jamming in Unity: Tips and Tricks to Work Faster.&nbsp;<br /> &nbsp;</p> <p><a href=";ch=web&amp;chlast=web&amp;pub=blg&amp;publast=blg&amp;type=org&amp;typelast=org" target="_blank"><img alt="eBook_Button.png" src="" style="display:block; margin-left:auto; margin-right:auto" /></a><br /> <br /> &nbsp;</p> <p style="text-align:center"><a href=""><img alt="Christer_Bio.jpg" src="" /></a></p> <p style="text-align:center"><em>Christer Kaitila has been a freelance game dev since 1993. He has shipped dozens of games, and mentors at a game development club. He created <a href="" target="_blank">One Game a Month</a> and has published two other gamedev books.</em></p>