Unity
Unity
Recent Updates
  • How to optimize your hybrid waterfall with CPM buckets

    In-app bidding has automated most waterfall optimization, yet developers still manage multiple hybrid waterfalls, each with dozens of manual instances. Naturally, this can be timely and overwhelming to maintain, keeping you from optimizing to perfection and focusing on other opportunities to boost revenue.Rather than analyzing each individual network and checking if instances are available at each price point, breaking down your waterfall into different CPM ranges allows you to visualize the waterfall and easily identify the gaps.Here are some tips on how to use CPM buckets to better optimize your waterfall’s performance.What are CPM buckets?CPM buckets show you exactly how much revenue and how many impressions you’re getting from each CPM price range, giving you a more granular idea of how different networks are competing in the waterfall. CPM buckets are a feature of real time pivot reports, available on ironSource LevelPlay.Identifying and closing the gapsTypically in a waterfall, you can only see each ad network’s average CPM. But this keeps you from seeing ad network distribution across all price points and understanding exactly where ad networks are bidding. Bottom line - you don’t know where in the waterfall you should add a new instance.By separating CPM into buckets,you understand exactly which networks are driving impressions and revenue and which CPMs aren’t being filledNow how do you do it? As a LevelPlay client, simply use ironSource’s real time pivot reports - choose the CPM bucket filter option and sort by “average bid price.” From here, you’ll see how your revenue spreads out among CPM ranges and you’ll start to notice gaps in your bar graph. Every gap in revenue - where revenue is much lower than the neighboring CPM group - indicates an opportunity to optimize your monetization strategy. The buckets can range from small increments like to larger increments like so it’s important to compare CPM buckets of the same incremental value.Pro tip: To best set up your waterfall, create one tab with the general waterfalland make sure to look at Revenue and eCPM in the “measures” dropdown. In the “show” section, choose CPM buckets and sort by average bid price. From here, you can mark down any gaps.But where do these gaps come from? Gaps in revenue are often due to friction in the waterfall, like not enough instances, instances that aren’t working, or a waterfall setup mistake. But gaps can also be adjusted and fixed.Once you’ve found a gap, you can look at the CPM buckets around it to better understand the context. Let’s say you see a strong instance generating significant revenue in the CPM bucket right below it, in the -80 group. This instance from this specific ad network has a lot of potential, so it’s worth trying to push it to a higher CPM bucket.In fact, when you look at higher CPM buckets, you don’t see this ad network anywhere else in the waterfall - what a missed opportunity! Try adding another instance of this network higher up in the waterfall. If you’re profiting well with a -80 CPM, imagine how much more revenue you could bring at a CPM.Pro tip: Focusing on higher areas in the waterfall makes a larger financial impact, leading to bigger increases in ARPDAU.Let’s say you decide to add 5 instances of that network to higher CPM buckets. You can use LevelPlay’s quick A/B test to understand if this adjustment boosts your revenue - not just for this gap, but for any and all that you find. Simply compare your existing waterfall against the new waterfall with these 5 higher instances - then implement the one that drives the highest instances.Božo Janković, Head of Ad Monetization at GameBiz Consulting, uses CPM buckets "to understand at which CPMs the bidding networks are filling. From there, I can pinpoint exactly where in the waterfall to add more traditional instances - which creates more competition, especially for the bidding networks, and creates an opportunity for revenue growth."Finding new insightsYou can dig even deeper into your data by filtering by ad source. Before CPM buckets, you were limited to seeing an average eCPM for each bidding network. Maybe you knew that one ad source had an average CPM of but the distribution of impression across the waterfall was a black box. Now, we know exactly which CPMs the bidders are filling. “I find ironSource CPM buckets feature very insightful and and use it daily. It’s an easy way to identify opportunities to optimize the waterfall and earn even more revenue."

    -Božo Janković, Head of Ad Monetization at GameBiz ConsultingUnderstanding your CPM distribution empowers you to not only identify your revenue sources, but also to promote revenue growth. Armed with the knowledge of which buckets some of their stronger bidding networking are performing in, some publishers actively add instances from traditional networks above those ranges. This creates better competition and also helps drive up the bids from the biddersThere’s no need for deep analysis - once you see the gaps, you can quickly understand who’s performing in the lower and higher buckets, and see exactly what’s missing. This way, you won’t miss out on any lost revenue.Learn more about CPM buckets, available exclusively to ironSource LevelPlay here.
    #how #optimize #your #hybrid #waterfall
    How to optimize your hybrid waterfall with CPM buckets
    In-app bidding has automated most waterfall optimization, yet developers still manage multiple hybrid waterfalls, each with dozens of manual instances. Naturally, this can be timely and overwhelming to maintain, keeping you from optimizing to perfection and focusing on other opportunities to boost revenue.Rather than analyzing each individual network and checking if instances are available at each price point, breaking down your waterfall into different CPM ranges allows you to visualize the waterfall and easily identify the gaps.Here are some tips on how to use CPM buckets to better optimize your waterfall’s performance.What are CPM buckets?CPM buckets show you exactly how much revenue and how many impressions you’re getting from each CPM price range, giving you a more granular idea of how different networks are competing in the waterfall. CPM buckets are a feature of real time pivot reports, available on ironSource LevelPlay.Identifying and closing the gapsTypically in a waterfall, you can only see each ad network’s average CPM. But this keeps you from seeing ad network distribution across all price points and understanding exactly where ad networks are bidding. Bottom line - you don’t know where in the waterfall you should add a new instance.By separating CPM into buckets,you understand exactly which networks are driving impressions and revenue and which CPMs aren’t being filledNow how do you do it? As a LevelPlay client, simply use ironSource’s real time pivot reports - choose the CPM bucket filter option and sort by “average bid price.” From here, you’ll see how your revenue spreads out among CPM ranges and you’ll start to notice gaps in your bar graph. Every gap in revenue - where revenue is much lower than the neighboring CPM group - indicates an opportunity to optimize your monetization strategy. The buckets can range from small increments like to larger increments like so it’s important to compare CPM buckets of the same incremental value.Pro tip: To best set up your waterfall, create one tab with the general waterfalland make sure to look at Revenue and eCPM in the “measures” dropdown. In the “show” section, choose CPM buckets and sort by average bid price. From here, you can mark down any gaps.But where do these gaps come from? Gaps in revenue are often due to friction in the waterfall, like not enough instances, instances that aren’t working, or a waterfall setup mistake. But gaps can also be adjusted and fixed.Once you’ve found a gap, you can look at the CPM buckets around it to better understand the context. Let’s say you see a strong instance generating significant revenue in the CPM bucket right below it, in the -80 group. This instance from this specific ad network has a lot of potential, so it’s worth trying to push it to a higher CPM bucket.In fact, when you look at higher CPM buckets, you don’t see this ad network anywhere else in the waterfall - what a missed opportunity! Try adding another instance of this network higher up in the waterfall. If you’re profiting well with a -80 CPM, imagine how much more revenue you could bring at a CPM.Pro tip: Focusing on higher areas in the waterfall makes a larger financial impact, leading to bigger increases in ARPDAU.Let’s say you decide to add 5 instances of that network to higher CPM buckets. You can use LevelPlay’s quick A/B test to understand if this adjustment boosts your revenue - not just for this gap, but for any and all that you find. Simply compare your existing waterfall against the new waterfall with these 5 higher instances - then implement the one that drives the highest instances.Božo Janković, Head of Ad Monetization at GameBiz Consulting, uses CPM buckets "to understand at which CPMs the bidding networks are filling. From there, I can pinpoint exactly where in the waterfall to add more traditional instances - which creates more competition, especially for the bidding networks, and creates an opportunity for revenue growth."Finding new insightsYou can dig even deeper into your data by filtering by ad source. Before CPM buckets, you were limited to seeing an average eCPM for each bidding network. Maybe you knew that one ad source had an average CPM of but the distribution of impression across the waterfall was a black box. Now, we know exactly which CPMs the bidders are filling. “I find ironSource CPM buckets feature very insightful and and use it daily. It’s an easy way to identify opportunities to optimize the waterfall and earn even more revenue." -Božo Janković, Head of Ad Monetization at GameBiz ConsultingUnderstanding your CPM distribution empowers you to not only identify your revenue sources, but also to promote revenue growth. Armed with the knowledge of which buckets some of their stronger bidding networking are performing in, some publishers actively add instances from traditional networks above those ranges. This creates better competition and also helps drive up the bids from the biddersThere’s no need for deep analysis - once you see the gaps, you can quickly understand who’s performing in the lower and higher buckets, and see exactly what’s missing. This way, you won’t miss out on any lost revenue.Learn more about CPM buckets, available exclusively to ironSource LevelPlay here. #how #optimize #your #hybrid #waterfall
    UNITY.COM
    How to optimize your hybrid waterfall with CPM buckets
    In-app bidding has automated most waterfall optimization, yet developers still manage multiple hybrid waterfalls, each with dozens of manual instances. Naturally, this can be timely and overwhelming to maintain, keeping you from optimizing to perfection and focusing on other opportunities to boost revenue.Rather than analyzing each individual network and checking if instances are available at each price point, breaking down your waterfall into different CPM ranges allows you to visualize the waterfall and easily identify the gaps.Here are some tips on how to use CPM buckets to better optimize your waterfall’s performance.What are CPM buckets?CPM buckets show you exactly how much revenue and how many impressions you’re getting from each CPM price range, giving you a more granular idea of how different networks are competing in the waterfall. CPM buckets are a feature of real time pivot reports, available on ironSource LevelPlay.Identifying and closing the gapsTypically in a waterfall, you can only see each ad network’s average CPM. But this keeps you from seeing ad network distribution across all price points and understanding exactly where ad networks are bidding. Bottom line - you don’t know where in the waterfall you should add a new instance.By separating CPM into buckets, (for example, seeing all the ad networks generating a CPM of $10-$20) you understand exactly which networks are driving impressions and revenue and which CPMs aren’t being filledNow how do you do it? As a LevelPlay client, simply use ironSource’s real time pivot reports - choose the CPM bucket filter option and sort by “average bid price.” From here, you’ll see how your revenue spreads out among CPM ranges and you’ll start to notice gaps in your bar graph. Every gap in revenue - where revenue is much lower than the neighboring CPM group - indicates an opportunity to optimize your monetization strategy. The buckets can range from small increments like $1 to larger increments like $10, so it’s important to compare CPM buckets of the same incremental value.Pro tip: To best set up your waterfall, create one tab with the general waterfall (filter app, OS, Ad unit, geo/geos from a specific group) and make sure to look at Revenue and eCPM in the “measures” dropdown. In the “show” section, choose CPM buckets and sort by average bid price. From here, you can mark down any gaps.But where do these gaps come from? Gaps in revenue are often due to friction in the waterfall, like not enough instances, instances that aren’t working, or a waterfall setup mistake. But gaps can also be adjusted and fixed.Once you’ve found a gap, you can look at the CPM buckets around it to better understand the context. Let’s say you see a strong instance generating significant revenue in the CPM bucket right below it, in the $70-80 group. This instance from this specific ad network has a lot of potential, so it’s worth trying to push it to a higher CPM bucket.In fact, when you look at higher CPM buckets, you don’t see this ad network anywhere else in the waterfall - what a missed opportunity! Try adding another instance of this network higher up in the waterfall. If you’re profiting well with a $70-80 CPM, imagine how much more revenue you could bring at a $150 CPM.Pro tip: Focusing on higher areas in the waterfall makes a larger financial impact, leading to bigger increases in ARPDAU.Let’s say you decide to add 5 instances of that network to higher CPM buckets. You can use LevelPlay’s quick A/B test to understand if this adjustment boosts your revenue - not just for this gap, but for any and all that you find. Simply compare your existing waterfall against the new waterfall with these 5 higher instances - then implement the one that drives the highest instances.Božo Janković, Head of Ad Monetization at GameBiz Consulting, uses CPM buckets "to understand at which CPMs the bidding networks are filling. From there, I can pinpoint exactly where in the waterfall to add more traditional instances - which creates more competition, especially for the bidding networks, and creates an opportunity for revenue growth."Finding new insightsYou can dig even deeper into your data by filtering by ad source. Before CPM buckets, you were limited to seeing an average eCPM for each bidding network. Maybe you knew that one ad source had an average CPM of $50, but the distribution of impression across the waterfall was a black box. Now, we know exactly which CPMs the bidders are filling. “I find ironSource CPM buckets feature very insightful and and use it daily. It’s an easy way to identify opportunities to optimize the waterfall and earn even more revenue." -Božo Janković, Head of Ad Monetization at GameBiz ConsultingUnderstanding your CPM distribution empowers you to not only identify your revenue sources, but also to promote revenue growth. Armed with the knowledge of which buckets some of their stronger bidding networking are performing in, some publishers actively add instances from traditional networks above those ranges. This creates better competition and also helps drive up the bids from the biddersThere’s no need for deep analysis - once you see the gaps, you can quickly understand who’s performing in the lower and higher buckets, and see exactly what’s missing. This way, you won’t miss out on any lost revenue.Learn more about CPM buckets, available exclusively to ironSource LevelPlay here.
    Like
    Love
    Wow
    Sad
    Angry
    544
    0 Comments 0 Shares
  • Creating FPS Mechanics in 10 minutes/1 hour/1 day | Clocked & Loaded

    Creating FPS Mechanics in 10 minutes/1 hour/1 day | Clocked & Loaded
    #creating #fps #mechanics #minutes1 #hour1
    Creating FPS Mechanics in 10 minutes/1 hour/1 day | Clocked & Loaded
    Creating FPS Mechanics in 10 minutes/1 hour/1 day | Clocked & Loaded #creating #fps #mechanics #minutes1 #hour1
    WWW.YOUTUBE.COM
    Creating FPS Mechanics in 10 minutes/1 hour/1 day | Clocked & Loaded
    Creating FPS Mechanics in 10 minutes/1 hour/1 day | Clocked & Loaded
    Like
    Love
    Wow
    Sad
    Angry
    421
    0 Comments 0 Shares
  • How to choose a programmatic video advertising platform: 8 considerations

    Whether you’re an advertiser or a publisher, partnering up with the right programmatic video advertising platform is one of the most important business decisions you can make. More than half of U.S. marketing budgets are now devoted to programmatically purchased media, and there’s no indication that trend will reverse any time soon.Everybody wants to find the solution that’s best for their bottom line. However, the specific considerations that should go into choosing the right video programmatic advertising solution differ depending on whether you have supply to sell or are looking for an audience for your advertisements. This article will break down key factors for both mobile advertisers and mobile publishers to keep in mind as they search for a programmatic video advertising platform.Before we get into the specifics on either end, let’s recap the basic concepts.What is a programmatic video advertising platform?A programmatic video advertising platform combines tools, processes, and marketplaces to place video ads from advertising partners in ad placements furnished by publishing partners. The “programmatic” part of the term means that it’s all done procedurally via automated tools, integrating with demand side platforms and supply side platforms to allow advertising placements to be bid upon, selected, and displayed in fractions of a second.If a mobile game has ever offered you extra rewards for watching a video and you found yourself watching an ad for a related game a split second later, you’ve likely been on the user side of an advertising programmatic transaction. Now let’s take a look at what considerations make for the ideal programmatic video advertising platform for the other two main parties involved.4 points to help advertisers choose the best programmatic platformLooking for the best way to leverage your video demand side platform? These are four key points for advertisers to consider when trying to find the right programmatic video advertising platform.A large, engaged audienceOne of the most important things a programmatic video advertising platform can do for advertisers is put their creative content in front of as many people as possible. However, it’s not enough to just pass your content in front of the most eyeballs. It’s equally important for the platform to give you access to engaged audiences who are more likely to convert so you can make the most of your advertising dollar.Full-screen videos to grab attentionYou need every advantage you can get when you’re grappling for the attention of a busy mobile user. Your video demand side platform should prioritize full-screen takeovers when and where they make sense, making sure your content isn’t just playing unnoticed on the far side of the screen.A range of ad options that are easy to testYour video programmatic advertising partner should be able to offer a broad variety of creative and placement options, including interstitial and rewarded ads. It should also enable you to test, iterate, and optimize ads as soon as they’re put into rotation, ensuring your ad spend is meeting your targets and allowing for fast and flexible changes if needed.Simple access to supplyEven the most powerful programmatic video advertising platform is no good if it’s impractical to get running. Look for partners that allows instant access to supply through tried-and-true platforms like Google Display & Video 360, Magnite, and others. On top of that, you should seek out a private exchange to ensure access to premium inventory.4 points for publishers in search of the best programmatic platformYou work hard to make the best apps for your users, and you deserve to partner up with a programmatic video advertising platform that works hard too. Serving video ads that both keep users engaged and your profits rising can be a tricky needle to thread, but the right platform should make your part of the process simple and effective.A large selection of advertisersEncountering the same ads over and over again can get old fast — and diminish engagement. On top of that, a small selection of advertisers means fewer chances for your users to connect with an ad and convert — which means less revenue, too. The ideal programmatic video advertising platform will partner with thousands of advertisers to fill your placements with fresh, engaging content.Rewarded videos and offerwallsInterstitial video ads aren’t likely to disappear any time soon, but players strongly prefer other means of advertisement. In fact, 76% of US mobile gamers say they prefer rewarded videos over interstitial ads. Giving players the choice of when to watch ads, with the inducement of in-game rewards, can be very powerful — and an offerwall is another powerful way to put the ball in your player’s court.Easy supply-side SDK integrationThe time your developers spend integrating a new video programmatic advertising solution into your apps is time they could have spent making those apps more engaging for users. While any backend adjustment will naturally take some time to implement, your new programmatic partner should offer a powerful, industry-standard SDK to make the process fast and non-disruptive.Support for programmatic mediationMediators such as LevelPlay by ironSource automatically prioritize ad demand from multiple third-party networks, optimizing your cash flow and reducing work on your end. Your programmatic video advertising platform should seamlessly integrate with mediators to make the most of each ad placement, every time.Pick a powerful programmatic partnerThankfully, advertisers and publishers alike can choose one solution that checks all the above boxes and more. For advertisers, the ironSource Programmatic Marketplace will connect you with targeted audiences in thousands of apps that gel with your brand. For publishers, ironSource’s marketplace means a massive selection of ads that your users and your bottom line will love.
    #how #choose #programmatic #video #advertising
    How to choose a programmatic video advertising platform: 8 considerations
    Whether you’re an advertiser or a publisher, partnering up with the right programmatic video advertising platform is one of the most important business decisions you can make. More than half of U.S. marketing budgets are now devoted to programmatically purchased media, and there’s no indication that trend will reverse any time soon.Everybody wants to find the solution that’s best for their bottom line. However, the specific considerations that should go into choosing the right video programmatic advertising solution differ depending on whether you have supply to sell or are looking for an audience for your advertisements. This article will break down key factors for both mobile advertisers and mobile publishers to keep in mind as they search for a programmatic video advertising platform.Before we get into the specifics on either end, let’s recap the basic concepts.What is a programmatic video advertising platform?A programmatic video advertising platform combines tools, processes, and marketplaces to place video ads from advertising partners in ad placements furnished by publishing partners. The “programmatic” part of the term means that it’s all done procedurally via automated tools, integrating with demand side platforms and supply side platforms to allow advertising placements to be bid upon, selected, and displayed in fractions of a second.If a mobile game has ever offered you extra rewards for watching a video and you found yourself watching an ad for a related game a split second later, you’ve likely been on the user side of an advertising programmatic transaction. Now let’s take a look at what considerations make for the ideal programmatic video advertising platform for the other two main parties involved.4 points to help advertisers choose the best programmatic platformLooking for the best way to leverage your video demand side platform? These are four key points for advertisers to consider when trying to find the right programmatic video advertising platform.A large, engaged audienceOne of the most important things a programmatic video advertising platform can do for advertisers is put their creative content in front of as many people as possible. However, it’s not enough to just pass your content in front of the most eyeballs. It’s equally important for the platform to give you access to engaged audiences who are more likely to convert so you can make the most of your advertising dollar.Full-screen videos to grab attentionYou need every advantage you can get when you’re grappling for the attention of a busy mobile user. Your video demand side platform should prioritize full-screen takeovers when and where they make sense, making sure your content isn’t just playing unnoticed on the far side of the screen.A range of ad options that are easy to testYour video programmatic advertising partner should be able to offer a broad variety of creative and placement options, including interstitial and rewarded ads. It should also enable you to test, iterate, and optimize ads as soon as they’re put into rotation, ensuring your ad spend is meeting your targets and allowing for fast and flexible changes if needed.Simple access to supplyEven the most powerful programmatic video advertising platform is no good if it’s impractical to get running. Look for partners that allows instant access to supply through tried-and-true platforms like Google Display & Video 360, Magnite, and others. On top of that, you should seek out a private exchange to ensure access to premium inventory.4 points for publishers in search of the best programmatic platformYou work hard to make the best apps for your users, and you deserve to partner up with a programmatic video advertising platform that works hard too. Serving video ads that both keep users engaged and your profits rising can be a tricky needle to thread, but the right platform should make your part of the process simple and effective.A large selection of advertisersEncountering the same ads over and over again can get old fast — and diminish engagement. On top of that, a small selection of advertisers means fewer chances for your users to connect with an ad and convert — which means less revenue, too. The ideal programmatic video advertising platform will partner with thousands of advertisers to fill your placements with fresh, engaging content.Rewarded videos and offerwallsInterstitial video ads aren’t likely to disappear any time soon, but players strongly prefer other means of advertisement. In fact, 76% of US mobile gamers say they prefer rewarded videos over interstitial ads. Giving players the choice of when to watch ads, with the inducement of in-game rewards, can be very powerful — and an offerwall is another powerful way to put the ball in your player’s court.Easy supply-side SDK integrationThe time your developers spend integrating a new video programmatic advertising solution into your apps is time they could have spent making those apps more engaging for users. While any backend adjustment will naturally take some time to implement, your new programmatic partner should offer a powerful, industry-standard SDK to make the process fast and non-disruptive.Support for programmatic mediationMediators such as LevelPlay by ironSource automatically prioritize ad demand from multiple third-party networks, optimizing your cash flow and reducing work on your end. Your programmatic video advertising platform should seamlessly integrate with mediators to make the most of each ad placement, every time.Pick a powerful programmatic partnerThankfully, advertisers and publishers alike can choose one solution that checks all the above boxes and more. For advertisers, the ironSource Programmatic Marketplace will connect you with targeted audiences in thousands of apps that gel with your brand. For publishers, ironSource’s marketplace means a massive selection of ads that your users and your bottom line will love. #how #choose #programmatic #video #advertising
    UNITY.COM
    How to choose a programmatic video advertising platform: 8 considerations
    Whether you’re an advertiser or a publisher, partnering up with the right programmatic video advertising platform is one of the most important business decisions you can make. More than half of U.S. marketing budgets are now devoted to programmatically purchased media, and there’s no indication that trend will reverse any time soon.Everybody wants to find the solution that’s best for their bottom line. However, the specific considerations that should go into choosing the right video programmatic advertising solution differ depending on whether you have supply to sell or are looking for an audience for your advertisements. This article will break down key factors for both mobile advertisers and mobile publishers to keep in mind as they search for a programmatic video advertising platform.Before we get into the specifics on either end, let’s recap the basic concepts.What is a programmatic video advertising platform?A programmatic video advertising platform combines tools, processes, and marketplaces to place video ads from advertising partners in ad placements furnished by publishing partners. The “programmatic” part of the term means that it’s all done procedurally via automated tools, integrating with demand side platforms and supply side platforms to allow advertising placements to be bid upon, selected, and displayed in fractions of a second.If a mobile game has ever offered you extra rewards for watching a video and you found yourself watching an ad for a related game a split second later, you’ve likely been on the user side of an advertising programmatic transaction. Now let’s take a look at what considerations make for the ideal programmatic video advertising platform for the other two main parties involved.4 points to help advertisers choose the best programmatic platformLooking for the best way to leverage your video demand side platform? These are four key points for advertisers to consider when trying to find the right programmatic video advertising platform.A large, engaged audienceOne of the most important things a programmatic video advertising platform can do for advertisers is put their creative content in front of as many people as possible. However, it’s not enough to just pass your content in front of the most eyeballs. It’s equally important for the platform to give you access to engaged audiences who are more likely to convert so you can make the most of your advertising dollar.Full-screen videos to grab attentionYou need every advantage you can get when you’re grappling for the attention of a busy mobile user. Your video demand side platform should prioritize full-screen takeovers when and where they make sense, making sure your content isn’t just playing unnoticed on the far side of the screen.A range of ad options that are easy to testYour video programmatic advertising partner should be able to offer a broad variety of creative and placement options, including interstitial and rewarded ads. It should also enable you to test, iterate, and optimize ads as soon as they’re put into rotation, ensuring your ad spend is meeting your targets and allowing for fast and flexible changes if needed.Simple access to supplyEven the most powerful programmatic video advertising platform is no good if it’s impractical to get running. Look for partners that allows instant access to supply through tried-and-true platforms like Google Display & Video 360, Magnite, and others. On top of that, you should seek out a private exchange to ensure access to premium inventory.4 points for publishers in search of the best programmatic platformYou work hard to make the best apps for your users, and you deserve to partner up with a programmatic video advertising platform that works hard too. Serving video ads that both keep users engaged and your profits rising can be a tricky needle to thread, but the right platform should make your part of the process simple and effective.A large selection of advertisersEncountering the same ads over and over again can get old fast — and diminish engagement. On top of that, a small selection of advertisers means fewer chances for your users to connect with an ad and convert — which means less revenue, too. The ideal programmatic video advertising platform will partner with thousands of advertisers to fill your placements with fresh, engaging content.Rewarded videos and offerwallsInterstitial video ads aren’t likely to disappear any time soon, but players strongly prefer other means of advertisement. In fact, 76% of US mobile gamers say they prefer rewarded videos over interstitial ads. Giving players the choice of when to watch ads, with the inducement of in-game rewards, can be very powerful — and an offerwall is another powerful way to put the ball in your player’s court.Easy supply-side SDK integrationThe time your developers spend integrating a new video programmatic advertising solution into your apps is time they could have spent making those apps more engaging for users. While any backend adjustment will naturally take some time to implement, your new programmatic partner should offer a powerful, industry-standard SDK to make the process fast and non-disruptive.Support for programmatic mediationMediators such as LevelPlay by ironSource automatically prioritize ad demand from multiple third-party networks, optimizing your cash flow and reducing work on your end. Your programmatic video advertising platform should seamlessly integrate with mediators to make the most of each ad placement, every time.Pick a powerful programmatic partnerThankfully, advertisers and publishers alike can choose one solution that checks all the above boxes and more. For advertisers, the ironSource Programmatic Marketplace will connect you with targeted audiences in thousands of apps that gel with your brand. For publishers, ironSource’s marketplace means a massive selection of ads that your users and your bottom line will love.
    0 Comments 0 Shares
  • Defining a unique visual identity for Starlight Re:Volver

    Defining a unique visual identity for Starlight Re:Volver
    #defining #unique #visual #identity #starlight
    Defining a unique visual identity for Starlight Re:Volver
    Defining a unique visual identity for Starlight Re:Volver #defining #unique #visual #identity #starlight
    WWW.YOUTUBE.COM
    Defining a unique visual identity for Starlight Re:Volver
    Defining a unique visual identity for Starlight Re:Volver
    0 Comments 0 Shares
  • Making a killing: The playful 2D terror of Psycasso®

    A serial killer is stalking the streets, and his murders are a work of art. That’s more or less the premise behind Psycasso®, a tongue-in-cheek 2D pixel art game from Omni Digital Technologies that’s debuting a demo at Steam Next Fest this week, with plans to head into Early Access later this year. Playing as the killer, you get a job and build a life by day, then hunt the streets by night to find and torture victims, paint masterpieces with their blood, then sell them to fund operations.I sat down with lead developer Benjamin Lavender and Omni, designer and producer, to talk about this playfully gory game that gives a classic retro style and a freshtwist.Let’s start with a bit of background about the game.Omni: We wanted to make something that stands out. We know a lot of indie studios are releasing games and the market is ever growing, so we wanted to make something that’s not just fun to play, but catches people’s attention when others tell them about it. We’ve created an open-world pixel art game about an artist who spends his day getting a job, trying to fit into society. Then at nighttime, things take a more sinister turn and he goes around and makes artwork out of his victim's blood.We didn’t want to make it creepy and gory. We kind of wanted it to be cutesy and fun, just to make it ironic. Making it was a big challenge. We basically had to create an entire city with functioning shops and NPCs who have their own lives, their own hobbies. It was a huge challenge.So what does the actual gameplay look like?Omni: There’s a day cycle and a night cycle that breaks up the gameplay. During the day, you can get a job, level up skills, buy properties and furniture upgrades. At nighttime, the lighting completely changes, the vibe completely changes, there’s police on the street and the flow of the game shifts. The idea is that you can kidnap NPCs using a whole bunch of different weapons – guns, throwable grenades, little traps and cool stuff that you can capture people with.Once captured on the street, you can either harvest their blood and body parts there, or buy a specialist room to keep them in a cage and put them in various equipment like hanging chains or torture chairs. The player gets better rewards for harvesting blood and body parts this way.On the flip side, there’s a whole other element to the game where the player is given missions each week from galleries around the city. They come up on your phone menu, and you can accept them and do either portrait or landscape paintings, with all of the painting being done using only shades of red. We've got some nice drip effects and splat sounds to make it feel like you’re painting with blood. Then you can give your creation a name, submit it to a gallery, then it goes into a fake auction, people will bid on the artwork and you get paid and large amount of in-game money so you can then buy upgrades for the home, upgrade painting tools like bigger paint brushes, more selection tools, stuff like that.Ben: There’s definitely nothing like it. And that was the aim, is when you are telling people about it, they’re like, “Oh, okay. Right. We’re not going to forget about this.”

    Let’s dig into the 2D tools you used to create this world.Ben: It’s using the 2D Renderer. The Happy Harvest 2D sample project that you guys made was kind of a big starting point, from a lighting perspective, and doing the normal maps of the 2D and getting the lighting to look nice. Our night system is a very stripped-down, then added-on version of the thing that you guys made. I was particularly interested by its shadows. The building’s shadows aren’t actually shadows – it’s a black light. We tried to recreate that with all of our buildings in the entire open world – so it does look beautiful for a 2D game, if I do say so myself.Can you say a bit about how you’re using AI or procedural generation in NPCs?Ben: I don’t know how many actually made it into the demo to be fair, number-wise. Every single NPC has a unique identity, as in they all have a place of work that they go to on a regular schedule. They have hobbies, they have spots where they prefer to loiter, a park bench or whatever. So you can get to know everyone’s individual lifestyle.So, the old man that lives in the same building as me might love to go to the casino at nighttime or go consistently on a Monday and a Friday, that kind of vibe.It uses the A* Pathfinding Project, because we knew we wanted to have a lot of AIs. We’ve locked off most of the city for the demo, but the actual size of the city is huge. The police mechanics are currently turned off, but there’s 80% police mechanics in there as well. If you punch someone or hurt someone, that’s a crime, and if anyone sees it, they can go and report to the police and then things happen. That’s a feature that’s there but not demo-ready yet.How close would you say you are to a full release?Omni: We should be scheduled for October for early access. By that point we’ll have the stealth mechanics and the policing systems polished and in and get some of the other upcoming features buttoned up. We’re fairly close.Ben: Lots of it’s already done, it’s just turned off for the demo. We don’t want to overwhelm people because there’s just so much for the player to do.Tell me a bit about the paint mechanics – how did you build that?Ben: It is custom. We built it ourselves completely from scratch. But I can't take responsibility for that one – someone else did the whole thing – that was their baby. It is really, really cool though.Omni: It’s got a variety of masking tools, the ability to change opacity and spacing, you can undo, redo. It’s a really fantastic feature that gives people the opportunity to express themselves and make some great art.Ben: And it's gamified, so it doesn’t feel like you’ve just opened up Paint in Windows.Omni: Best of all is when you make a painting, it gets turned into an inventory item so you physically carry it around with you and can sell it or treasure it.What’s the most exciting part of Psycasso for you?Omni: Stunning graphics. I think graphically, it looks really pretty.Ben: Visually, you could look at it and go, “Oh, that’s Psycasso.”Omni: What we’ve done is taken a cozy retro-style game, and we’ve brought modern design, logic, and technology into it. So you're playing what feels like a nostalgic game, but you're getting the experience of a much newer project.Check out the Psycasso demo on Steam, and stay tuned for more NextFest coverage.
    #making #killing #playful #terror #psycasso
    Making a killing: The playful 2D terror of Psycasso®
    A serial killer is stalking the streets, and his murders are a work of art. That’s more or less the premise behind Psycasso®, a tongue-in-cheek 2D pixel art game from Omni Digital Technologies that’s debuting a demo at Steam Next Fest this week, with plans to head into Early Access later this year. Playing as the killer, you get a job and build a life by day, then hunt the streets by night to find and torture victims, paint masterpieces with their blood, then sell them to fund operations.I sat down with lead developer Benjamin Lavender and Omni, designer and producer, to talk about this playfully gory game that gives a classic retro style and a freshtwist.Let’s start with a bit of background about the game.Omni: We wanted to make something that stands out. We know a lot of indie studios are releasing games and the market is ever growing, so we wanted to make something that’s not just fun to play, but catches people’s attention when others tell them about it. We’ve created an open-world pixel art game about an artist who spends his day getting a job, trying to fit into society. Then at nighttime, things take a more sinister turn and he goes around and makes artwork out of his victim's blood.We didn’t want to make it creepy and gory. We kind of wanted it to be cutesy and fun, just to make it ironic. Making it was a big challenge. We basically had to create an entire city with functioning shops and NPCs who have their own lives, their own hobbies. It was a huge challenge.So what does the actual gameplay look like?Omni: There’s a day cycle and a night cycle that breaks up the gameplay. During the day, you can get a job, level up skills, buy properties and furniture upgrades. At nighttime, the lighting completely changes, the vibe completely changes, there’s police on the street and the flow of the game shifts. The idea is that you can kidnap NPCs using a whole bunch of different weapons – guns, throwable grenades, little traps and cool stuff that you can capture people with.Once captured on the street, you can either harvest their blood and body parts there, or buy a specialist room to keep them in a cage and put them in various equipment like hanging chains or torture chairs. The player gets better rewards for harvesting blood and body parts this way.On the flip side, there’s a whole other element to the game where the player is given missions each week from galleries around the city. They come up on your phone menu, and you can accept them and do either portrait or landscape paintings, with all of the painting being done using only shades of red. We've got some nice drip effects and splat sounds to make it feel like you’re painting with blood. Then you can give your creation a name, submit it to a gallery, then it goes into a fake auction, people will bid on the artwork and you get paid and large amount of in-game money so you can then buy upgrades for the home, upgrade painting tools like bigger paint brushes, more selection tools, stuff like that.Ben: There’s definitely nothing like it. And that was the aim, is when you are telling people about it, they’re like, “Oh, okay. Right. We’re not going to forget about this.” Let’s dig into the 2D tools you used to create this world.Ben: It’s using the 2D Renderer. The Happy Harvest 2D sample project that you guys made was kind of a big starting point, from a lighting perspective, and doing the normal maps of the 2D and getting the lighting to look nice. Our night system is a very stripped-down, then added-on version of the thing that you guys made. I was particularly interested by its shadows. The building’s shadows aren’t actually shadows – it’s a black light. We tried to recreate that with all of our buildings in the entire open world – so it does look beautiful for a 2D game, if I do say so myself.Can you say a bit about how you’re using AI or procedural generation in NPCs?Ben: I don’t know how many actually made it into the demo to be fair, number-wise. Every single NPC has a unique identity, as in they all have a place of work that they go to on a regular schedule. They have hobbies, they have spots where they prefer to loiter, a park bench or whatever. So you can get to know everyone’s individual lifestyle.So, the old man that lives in the same building as me might love to go to the casino at nighttime or go consistently on a Monday and a Friday, that kind of vibe.It uses the A* Pathfinding Project, because we knew we wanted to have a lot of AIs. We’ve locked off most of the city for the demo, but the actual size of the city is huge. The police mechanics are currently turned off, but there’s 80% police mechanics in there as well. If you punch someone or hurt someone, that’s a crime, and if anyone sees it, they can go and report to the police and then things happen. That’s a feature that’s there but not demo-ready yet.How close would you say you are to a full release?Omni: We should be scheduled for October for early access. By that point we’ll have the stealth mechanics and the policing systems polished and in and get some of the other upcoming features buttoned up. We’re fairly close.Ben: Lots of it’s already done, it’s just turned off for the demo. We don’t want to overwhelm people because there’s just so much for the player to do.Tell me a bit about the paint mechanics – how did you build that?Ben: It is custom. We built it ourselves completely from scratch. But I can't take responsibility for that one – someone else did the whole thing – that was their baby. It is really, really cool though.Omni: It’s got a variety of masking tools, the ability to change opacity and spacing, you can undo, redo. It’s a really fantastic feature that gives people the opportunity to express themselves and make some great art.Ben: And it's gamified, so it doesn’t feel like you’ve just opened up Paint in Windows.Omni: Best of all is when you make a painting, it gets turned into an inventory item so you physically carry it around with you and can sell it or treasure it.What’s the most exciting part of Psycasso for you?Omni: Stunning graphics. I think graphically, it looks really pretty.Ben: Visually, you could look at it and go, “Oh, that’s Psycasso.”Omni: What we’ve done is taken a cozy retro-style game, and we’ve brought modern design, logic, and technology into it. So you're playing what feels like a nostalgic game, but you're getting the experience of a much newer project.Check out the Psycasso demo on Steam, and stay tuned for more NextFest coverage. #making #killing #playful #terror #psycasso
    UNITY.COM
    Making a killing: The playful 2D terror of Psycasso®
    A serial killer is stalking the streets, and his murders are a work of art. That’s more or less the premise behind Psycasso®, a tongue-in-cheek 2D pixel art game from Omni Digital Technologies that’s debuting a demo at Steam Next Fest this week, with plans to head into Early Access later this year. Playing as the killer, you get a job and build a life by day, then hunt the streets by night to find and torture victims, paint masterpieces with their blood, then sell them to fund operations.I sat down with lead developer Benjamin Lavender and Omni, designer and producer, to talk about this playfully gory game that gives a classic retro style and a fresh (if gruesome) twist.Let’s start with a bit of background about the game.Omni: We wanted to make something that stands out. We know a lot of indie studios are releasing games and the market is ever growing, so we wanted to make something that’s not just fun to play, but catches people’s attention when others tell them about it. We’ve created an open-world pixel art game about an artist who spends his day getting a job, trying to fit into society. Then at nighttime, things take a more sinister turn and he goes around and makes artwork out of his victim's blood.We didn’t want to make it creepy and gory. We kind of wanted it to be cutesy and fun, just to make it ironic. Making it was a big challenge. We basically had to create an entire city with functioning shops and NPCs who have their own lives, their own hobbies. It was a huge challenge.So what does the actual gameplay look like?Omni: There’s a day cycle and a night cycle that breaks up the gameplay. During the day, you can get a job, level up skills, buy properties and furniture upgrades. At nighttime, the lighting completely changes, the vibe completely changes, there’s police on the street and the flow of the game shifts. The idea is that you can kidnap NPCs using a whole bunch of different weapons – guns, throwable grenades, little traps and cool stuff that you can capture people with.Once captured on the street, you can either harvest their blood and body parts there, or buy a specialist room to keep them in a cage and put them in various equipment like hanging chains or torture chairs. The player gets better rewards for harvesting blood and body parts this way.On the flip side, there’s a whole other element to the game where the player is given missions each week from galleries around the city. They come up on your phone menu, and you can accept them and do either portrait or landscape paintings, with all of the painting being done using only shades of red. We've got some nice drip effects and splat sounds to make it feel like you’re painting with blood. Then you can give your creation a name, submit it to a gallery, then it goes into a fake auction, people will bid on the artwork and you get paid and large amount of in-game money so you can then buy upgrades for the home, upgrade painting tools like bigger paint brushes, more selection tools, stuff like that.Ben: There’s definitely nothing like it. And that was the aim, is when you are telling people about it, they’re like, “Oh, okay. Right. We’re not going to forget about this.” Let’s dig into the 2D tools you used to create this world.Ben: It’s using the 2D Renderer. The Happy Harvest 2D sample project that you guys made was kind of a big starting point, from a lighting perspective, and doing the normal maps of the 2D and getting the lighting to look nice. Our night system is a very stripped-down, then added-on version of the thing that you guys made. I was particularly interested by its shadows. The building’s shadows aren’t actually shadows – it’s a black light. We tried to recreate that with all of our buildings in the entire open world – so it does look beautiful for a 2D game, if I do say so myself.Can you say a bit about how you’re using AI or procedural generation in NPCs?Ben: I don’t know how many actually made it into the demo to be fair, number-wise. Every single NPC has a unique identity, as in they all have a place of work that they go to on a regular schedule. They have hobbies, they have spots where they prefer to loiter, a park bench or whatever. So you can get to know everyone’s individual lifestyle.So, the old man that lives in the same building as me might love to go to the casino at nighttime or go consistently on a Monday and a Friday, that kind of vibe.It uses the A* Pathfinding Project, because we knew we wanted to have a lot of AIs. We’ve locked off most of the city for the demo, but the actual size of the city is huge. The police mechanics are currently turned off, but there’s 80% police mechanics in there as well. If you punch someone or hurt someone, that’s a crime, and if anyone sees it, they can go and report to the police and then things happen. That’s a feature that’s there but not demo-ready yet.How close would you say you are to a full release?Omni: We should be scheduled for October for early access. By that point we’ll have the stealth mechanics and the policing systems polished and in and get some of the other upcoming features buttoned up. We’re fairly close.Ben: Lots of it’s already done, it’s just turned off for the demo. We don’t want to overwhelm people because there’s just so much for the player to do.Tell me a bit about the paint mechanics – how did you build that?Ben: It is custom. We built it ourselves completely from scratch. But I can't take responsibility for that one – someone else did the whole thing – that was their baby. It is really, really cool though.Omni: It’s got a variety of masking tools, the ability to change opacity and spacing, you can undo, redo. It’s a really fantastic feature that gives people the opportunity to express themselves and make some great art.Ben: And it's gamified, so it doesn’t feel like you’ve just opened up Paint in Windows.Omni: Best of all is when you make a painting, it gets turned into an inventory item so you physically carry it around with you and can sell it or treasure it.What’s the most exciting part of Psycasso for you?Omni: Stunning graphics. I think graphically, it looks really pretty.Ben: Visually, you could look at it and go, “Oh, that’s Psycasso.”Omni: What we’ve done is taken a cozy retro-style game, and we’ve brought modern design, logic, and technology into it. So you're playing what feels like a nostalgic game, but you're getting the experience of a much newer project.Check out the Psycasso demo on Steam, and stay tuned for more NextFest coverage.
    0 Comments 0 Shares
  • Viral Game Success with Chris Zukowski #gamemarketing

    Viral Game Success with Chris Zukowski #gamemarketing
    #viral #game #success #with #chris
    Viral Game Success with Chris Zukowski #gamemarketing
    Viral Game Success with Chris Zukowski #gamemarketing #viral #game #success #with #chris
    WWW.YOUTUBE.COM
    Viral Game Success with Chris Zukowski #gamemarketing
    Viral Game Success with Chris Zukowski #gamemarketing
    0 Comments 0 Shares
  • The 3 most important KPIs running an on-device acquisition campaign

    On-device channels are no longer all about preloads. Today, telcos represent another performance marketing channel with transparent reporting and deeper insights. To get the full picture behind the performance of your on-device campaigns, it’s critical to prioritize long-term KPIs. It’s the only way the stickiness of users acquired through these channels really shine. Why?On-device campaigns reach users when they’re setting up their new devices and looking to download apps they’ll use throughout the device lifetime, not necessarily right away. Think about it - if you download a booking app from an ad during device setup, are you planning to book a vacation immediately or later down the road?This means attribution is a waiting game for on-device campaigns, with day 30 as the turning point. In fact, if a user engages with your app 30 days down the line, they’re more likely to stay active for a long period of time. Simply put, LTV is high for on-device campaigns. This means you want to be looking at KPIs that allow you to measure and optimize the value of the users you attract far down the road.ROASROAS is king when it comes to measuring the long-term value of your users. To get the clearest idea of your ROAS and how to optimize it, there are a few things to keep in mind. First, ROAS should be measured on D30/60/90 not D1/3/7. This is because, with on-device channels, users are likely to open an app within the first 30 days or longer - when a user downloads an app during device setup, they do so expecting to open it in the future, not right away.You should also pay attention to how it’s being measured. ROAS is calculated by dividing the amount of revenue a campaign generates by the amount it costs to run it. In the context of on-device campaigns, that revenue comes from in-app purchases, subscriptions, or ad monetization.When measuring the effectiveness of your on-device campaigns, it’s important to calculate ROAS using your on-device ad revenue rather than average ad revenue, which will be lower. That’s because ad revenue is high for users acquired through on-device campaigns - on-device channels use unique data points and deep algorithms to ensure the right bid for each individual user. To get the clearest picture of where you stand in relation to your ROAS goals, you should integrate ad revenue with your on-device platform.Once calculated, ROAS gives a clear monetary view of your campaigns, so it’s clear how much you spent vs brought in. This monetary value is important because it tells you if your on-device campaigns are reaching valuable users. Looking at ROAS by placements, you get insight into which placements are doing it best. With the knowledge of how to maximize ROAS, you’ll maximize the long term value and engagement of your users, too.Cost KPIsComparing LTV to spend will help you determine whether or not your users are spending enough to cover your spend and ultimately turn a profit. You can even pinpoint areas of your strategy that are effective, and those that may need adjustment.There are a few ways to measure cost effectiveness. Here are the most common two, especially for on-device campaigns.Cost per actionIf it’s quality you’re looking for, first, run a CPA campaign to confirm that you’re looking in the right places for users who will engage with your app. To count as a conversion, users must see the ad, install the app, and complete the action you preset. You’ll only pay for the users who reach a chosen point in the app experience after installation. A CPA that is higher than LTV is a clear indicator that your campaigns are focused on less relevant channels or touchpoints, while a CPA that is lower than your LTV confirms that you are attracting high quality users.In the context of on-device campaigns, this is key because it means you won't pay immediately for a user who may not engage for a month or so. The pricing model also integrates in-app revenue, which is useful for apps that rely more on IAPs than ads.Cost per retained userIt’s also worthwhile to keep track of how much you’re paying for the user that’s still there on day 30. CPRU takes into account conversions and retention rate - if your budget is k, you have 1000 conversions and a day 1 retention rate of 20%, you come away with 200 converted users at a per user acquisition cost. If you can increase retention, you end up with higher quality users at a lower CPRU.Measuring CPRU, retention becomes a success metric for your UA campaigns and can help you determine whether you have enough engaged users to cover spend.On day 30 and beyond, these KPIs can help you optimize your on-device campaigns to reach the most engaged users with high LTV.
    #most #important #kpis #running #ondevice
    The 3 most important KPIs running an on-device acquisition campaign
    On-device channels are no longer all about preloads. Today, telcos represent another performance marketing channel with transparent reporting and deeper insights. To get the full picture behind the performance of your on-device campaigns, it’s critical to prioritize long-term KPIs. It’s the only way the stickiness of users acquired through these channels really shine. Why?On-device campaigns reach users when they’re setting up their new devices and looking to download apps they’ll use throughout the device lifetime, not necessarily right away. Think about it - if you download a booking app from an ad during device setup, are you planning to book a vacation immediately or later down the road?This means attribution is a waiting game for on-device campaigns, with day 30 as the turning point. In fact, if a user engages with your app 30 days down the line, they’re more likely to stay active for a long period of time. Simply put, LTV is high for on-device campaigns. This means you want to be looking at KPIs that allow you to measure and optimize the value of the users you attract far down the road.ROASROAS is king when it comes to measuring the long-term value of your users. To get the clearest idea of your ROAS and how to optimize it, there are a few things to keep in mind. First, ROAS should be measured on D30/60/90 not D1/3/7. This is because, with on-device channels, users are likely to open an app within the first 30 days or longer - when a user downloads an app during device setup, they do so expecting to open it in the future, not right away.You should also pay attention to how it’s being measured. ROAS is calculated by dividing the amount of revenue a campaign generates by the amount it costs to run it. In the context of on-device campaigns, that revenue comes from in-app purchases, subscriptions, or ad monetization.When measuring the effectiveness of your on-device campaigns, it’s important to calculate ROAS using your on-device ad revenue rather than average ad revenue, which will be lower. That’s because ad revenue is high for users acquired through on-device campaigns - on-device channels use unique data points and deep algorithms to ensure the right bid for each individual user. To get the clearest picture of where you stand in relation to your ROAS goals, you should integrate ad revenue with your on-device platform.Once calculated, ROAS gives a clear monetary view of your campaigns, so it’s clear how much you spent vs brought in. This monetary value is important because it tells you if your on-device campaigns are reaching valuable users. Looking at ROAS by placements, you get insight into which placements are doing it best. With the knowledge of how to maximize ROAS, you’ll maximize the long term value and engagement of your users, too.Cost KPIsComparing LTV to spend will help you determine whether or not your users are spending enough to cover your spend and ultimately turn a profit. You can even pinpoint areas of your strategy that are effective, and those that may need adjustment.There are a few ways to measure cost effectiveness. Here are the most common two, especially for on-device campaigns.Cost per actionIf it’s quality you’re looking for, first, run a CPA campaign to confirm that you’re looking in the right places for users who will engage with your app. To count as a conversion, users must see the ad, install the app, and complete the action you preset. You’ll only pay for the users who reach a chosen point in the app experience after installation. A CPA that is higher than LTV is a clear indicator that your campaigns are focused on less relevant channels or touchpoints, while a CPA that is lower than your LTV confirms that you are attracting high quality users.In the context of on-device campaigns, this is key because it means you won't pay immediately for a user who may not engage for a month or so. The pricing model also integrates in-app revenue, which is useful for apps that rely more on IAPs than ads.Cost per retained userIt’s also worthwhile to keep track of how much you’re paying for the user that’s still there on day 30. CPRU takes into account conversions and retention rate - if your budget is k, you have 1000 conversions and a day 1 retention rate of 20%, you come away with 200 converted users at a per user acquisition cost. If you can increase retention, you end up with higher quality users at a lower CPRU.Measuring CPRU, retention becomes a success metric for your UA campaigns and can help you determine whether you have enough engaged users to cover spend.On day 30 and beyond, these KPIs can help you optimize your on-device campaigns to reach the most engaged users with high LTV. #most #important #kpis #running #ondevice
    UNITY.COM
    The 3 most important KPIs running an on-device acquisition campaign
    On-device channels are no longer all about preloads. Today, telcos represent another performance marketing channel with transparent reporting and deeper insights. To get the full picture behind the performance of your on-device campaigns, it’s critical to prioritize long-term KPIs. It’s the only way the stickiness of users acquired through these channels really shine. Why?On-device campaigns reach users when they’re setting up their new devices and looking to download apps they’ll use throughout the device lifetime, not necessarily right away. Think about it - if you download a booking app from an ad during device setup, are you planning to book a vacation immediately or later down the road?This means attribution is a waiting game for on-device campaigns, with day 30 as the turning point. In fact, if a user engages with your app 30 days down the line, they’re more likely to stay active for a long period of time. Simply put, LTV is high for on-device campaigns. This means you want to be looking at KPIs that allow you to measure and optimize the value of the users you attract far down the road.ROASROAS is king when it comes to measuring the long-term value of your users. To get the clearest idea of your ROAS and how to optimize it, there are a few things to keep in mind. First, ROAS should be measured on D30/60/90 not D1/3/7. This is because, with on-device channels, users are likely to open an app within the first 30 days or longer - when a user downloads an app during device setup, they do so expecting to open it in the future, not right away.You should also pay attention to how it’s being measured. ROAS is calculated by dividing the amount of revenue a campaign generates by the amount it costs to run it. In the context of on-device campaigns, that revenue comes from in-app purchases, subscriptions, or ad monetization.When measuring the effectiveness of your on-device campaigns, it’s important to calculate ROAS using your on-device ad revenue rather than average ad revenue, which will be lower. That’s because ad revenue is high for users acquired through on-device campaigns - on-device channels use unique data points and deep algorithms to ensure the right bid for each individual user. To get the clearest picture of where you stand in relation to your ROAS goals, you should integrate ad revenue with your on-device platform.Once calculated, ROAS gives a clear monetary view of your campaigns, so it’s clear how much you spent vs brought in. This monetary value is important because it tells you if your on-device campaigns are reaching valuable users. Looking at ROAS by placements, you get insight into which placements are doing it best. With the knowledge of how to maximize ROAS, you’ll maximize the long term value and engagement of your users, too.Cost KPIsComparing LTV to spend will help you determine whether or not your users are spending enough to cover your spend and ultimately turn a profit. You can even pinpoint areas of your strategy that are effective, and those that may need adjustment.There are a few ways to measure cost effectiveness. Here are the most common two, especially for on-device campaigns.Cost per action (CPA)If it’s quality you’re looking for, first, run a CPA campaign to confirm that you’re looking in the right places for users who will engage with your app. To count as a conversion, users must see the ad, install the app, and complete the action you preset. You’ll only pay for the users who reach a chosen point in the app experience after installation. A CPA that is higher than LTV is a clear indicator that your campaigns are focused on less relevant channels or touchpoints, while a CPA that is lower than your LTV confirms that you are attracting high quality users.In the context of on-device campaigns, this is key because it means you won't pay immediately for a user who may not engage for a month or so. The pricing model also integrates in-app revenue, which is useful for apps that rely more on IAPs than ads.Cost per retained user (CPRU)It’s also worthwhile to keep track of how much you’re paying for the user that’s still there on day 30. CPRU takes into account conversions and retention rate - if your budget is $10k, you have 1000 conversions and a day 1 retention rate of 20%, you come away with 200 converted users at a $50 per user acquisition cost. If you can increase retention, you end up with higher quality users at a lower CPRU.Measuring CPRU, retention becomes a success metric for your UA campaigns and can help you determine whether you have enough engaged users to cover spend.On day 30 and beyond, these KPIs can help you optimize your on-device campaigns to reach the most engaged users with high LTV.
    Like
    Love
    Wow
    Angry
    Sad
    637
    0 Comments 0 Shares
  • The what, why and how of web-to-app acquisition campaigns

    Nailing cross-channel marketing for your app is crucial in today’s ecosystem. This isn’t just a speculation, it’s a hard fact: the average mobile marketer uses 5 or fewer media sources, but CPIs tend to be much higher for marketers using 6 or more media sources, according to a report by Singular and ironSource Aura.It’s time to start looking elsewhere for users. Something to consider is returning to old-school, tried-and-true strategies that have taken a backseat as the industry has advanced, such as web acquisition campaigns. There are two clicks in these campaigns - the first click directs users from an ad to a web landing page and the second click directs users from the web page to the app store. While the funnel to get to your app is longer, it’s actually an opportunity. Let’s dive into why and how you should be running web-to-app acquisition campaigns.3 benefits of web-to-app campaignsWeb acquisition campaigns became tried-and-true for a reason and many apps are beginning to take advantage of the strategy to reduce costs, get better visibility, and expand their reach.Reduce costsWhile the cost of app acquisition campaigns is increasing as the space becomes more saturated, web campaigns have been underutilized in recent years. This means many advertisers are finding that the cost of web campaigns are less than app store acquisitions. Much of these higher costs comes from high app store fees - Apple takes a 30% cut from large developers and a 15% cut from smaller developers. The web remains a relatively low-cost, accessible channel.Get better visibilityWith the ability to direct users to your owned mobile site before they click to download your app, you get better visibility into new users and where they came from - the app store is a black box where it’s nearly impossible to match the user who clicked an ad to the user who downloaded your app. On top of that, longer funnels give you more control and insight into each step users take to get to your app - allowing you to better optimize your campaigns. For example, you can try out different web landing pages to find the most effective way to increase users’ understanding of your app before they download it. This increases your likelihood of, first, motivating users to download your app, and second, encouraging them to stick around.Expand your reachInternet users worldwide spent 415.5 minutes a day online in 2021 according to Oberlo. App users spend at most 300 mins a day in apps according to TechCrunch. The internet is still more prevalent than apps because, let’s face it, the web predates the app store. Even more so, users have become especially savvy on the web, visiting the search bar to research a brand, fact check a friend, or dive deeper into a news headline. This means that by running web campaigns, you’re reaching a massive audience - nearly the entire world population.Andre Kempe, Founder and CEO of Admiral Media says, “marketers consider web acquisition important because they’re reaching a different type of audience that may convert to becoming an active app user, even though they were surfing on a news website… When you start advertising for the web, you reach an audience you haven’t reached before. This is definitely a growth opportunity." Listen to the full podcast.Web campaigns are a tried and true strategy, which is what makes them so effective in today’s ecosystem. Realizing that you should be considering this acquisition channel, let’s discuss how web onboarding can help you maximize success.Maximize success with web onboardingTypically, users complete onboarding directly on your app. Web onboarding, however, means letting users register, subscribe, and sometimes pay on the web, before heading to your app. This way, users are fully prepared to start using your app before even clicking download, ensuring they can engage at full capacity as soon as download is complete.When users onboard through the app, they may not immediately decide to engage but at least the app is still on their phones reminding them everyday of its value - they’re likely to open it again at some point in time. When a user onboards on the web and decides your app isn’t valuable, they’ll never end up actually downloading it - it’s gone and forgotten before it even started. That said, with web onboarding, the users who end up downloading your app will do so with high-intent to actively engage. Plus, you don’t have to pay for users that download without ever engaging. Whatever category your app is - fitness, food delivery, dating, reading, learning, etc. - you can use the web touchpoint to drive quality users to your app.Ensure the transition is seamlessFirst, ensure the web experience mimics the app experience enough that users don’t feel jipped when they actually start using your app. The transition from the web to the app should be seamless. If you’re offering users a taste of your app, the web touchpoint should look exactly like your app or, at least, include all of the same features. If the buttons to adjust settings are on the right side of the page during onboarding, they should be on the right side in the app as well. To ensure users stick around, you have to give them what they signed up for.Give users a sneak peakYou should also determine your main selling point and give users a sneak peak. For example, if you’re a reading app that allows users to adjust the settings of the page, you could give users premium access to the first chapter of a book allowing them to adjust font size or brightness. Readers will not want to leave the experience behind, encouraging them to set up their subscription and input their credit card information on the web before heading to the app to continue reading the book. The best part - when they open your app for the first time they’ll be able to jump right into the app experience.Learn more about how to improve your app’s onboarding experienceWeb-to-app campaigns should not be ignored in this competitive landscape - lower costs, more visibility, better optimization, and strong reach. Going even further to onboard users through the web, you’re improving the quality of the users entering your app for the first time.
    #what #why #how #webtoapp #acquisition
    The what, why and how of web-to-app acquisition campaigns
    Nailing cross-channel marketing for your app is crucial in today’s ecosystem. This isn’t just a speculation, it’s a hard fact: the average mobile marketer uses 5 or fewer media sources, but CPIs tend to be much higher for marketers using 6 or more media sources, according to a report by Singular and ironSource Aura.It’s time to start looking elsewhere for users. Something to consider is returning to old-school, tried-and-true strategies that have taken a backseat as the industry has advanced, such as web acquisition campaigns. There are two clicks in these campaigns - the first click directs users from an ad to a web landing page and the second click directs users from the web page to the app store. While the funnel to get to your app is longer, it’s actually an opportunity. Let’s dive into why and how you should be running web-to-app acquisition campaigns.3 benefits of web-to-app campaignsWeb acquisition campaigns became tried-and-true for a reason and many apps are beginning to take advantage of the strategy to reduce costs, get better visibility, and expand their reach.Reduce costsWhile the cost of app acquisition campaigns is increasing as the space becomes more saturated, web campaigns have been underutilized in recent years. This means many advertisers are finding that the cost of web campaigns are less than app store acquisitions. Much of these higher costs comes from high app store fees - Apple takes a 30% cut from large developers and a 15% cut from smaller developers. The web remains a relatively low-cost, accessible channel.Get better visibilityWith the ability to direct users to your owned mobile site before they click to download your app, you get better visibility into new users and where they came from - the app store is a black box where it’s nearly impossible to match the user who clicked an ad to the user who downloaded your app. On top of that, longer funnels give you more control and insight into each step users take to get to your app - allowing you to better optimize your campaigns. For example, you can try out different web landing pages to find the most effective way to increase users’ understanding of your app before they download it. This increases your likelihood of, first, motivating users to download your app, and second, encouraging them to stick around.Expand your reachInternet users worldwide spent 415.5 minutes a day online in 2021 according to Oberlo. App users spend at most 300 mins a day in apps according to TechCrunch. The internet is still more prevalent than apps because, let’s face it, the web predates the app store. Even more so, users have become especially savvy on the web, visiting the search bar to research a brand, fact check a friend, or dive deeper into a news headline. This means that by running web campaigns, you’re reaching a massive audience - nearly the entire world population.Andre Kempe, Founder and CEO of Admiral Media says, “marketers consider web acquisition important because they’re reaching a different type of audience that may convert to becoming an active app user, even though they were surfing on a news website… When you start advertising for the web, you reach an audience you haven’t reached before. This is definitely a growth opportunity." Listen to the full podcast.Web campaigns are a tried and true strategy, which is what makes them so effective in today’s ecosystem. Realizing that you should be considering this acquisition channel, let’s discuss how web onboarding can help you maximize success.Maximize success with web onboardingTypically, users complete onboarding directly on your app. Web onboarding, however, means letting users register, subscribe, and sometimes pay on the web, before heading to your app. This way, users are fully prepared to start using your app before even clicking download, ensuring they can engage at full capacity as soon as download is complete.When users onboard through the app, they may not immediately decide to engage but at least the app is still on their phones reminding them everyday of its value - they’re likely to open it again at some point in time. When a user onboards on the web and decides your app isn’t valuable, they’ll never end up actually downloading it - it’s gone and forgotten before it even started. That said, with web onboarding, the users who end up downloading your app will do so with high-intent to actively engage. Plus, you don’t have to pay for users that download without ever engaging. Whatever category your app is - fitness, food delivery, dating, reading, learning, etc. - you can use the web touchpoint to drive quality users to your app.Ensure the transition is seamlessFirst, ensure the web experience mimics the app experience enough that users don’t feel jipped when they actually start using your app. The transition from the web to the app should be seamless. If you’re offering users a taste of your app, the web touchpoint should look exactly like your app or, at least, include all of the same features. If the buttons to adjust settings are on the right side of the page during onboarding, they should be on the right side in the app as well. To ensure users stick around, you have to give them what they signed up for.Give users a sneak peakYou should also determine your main selling point and give users a sneak peak. For example, if you’re a reading app that allows users to adjust the settings of the page, you could give users premium access to the first chapter of a book allowing them to adjust font size or brightness. Readers will not want to leave the experience behind, encouraging them to set up their subscription and input their credit card information on the web before heading to the app to continue reading the book. The best part - when they open your app for the first time they’ll be able to jump right into the app experience.Learn more about how to improve your app’s onboarding experienceWeb-to-app campaigns should not be ignored in this competitive landscape - lower costs, more visibility, better optimization, and strong reach. Going even further to onboard users through the web, you’re improving the quality of the users entering your app for the first time. #what #why #how #webtoapp #acquisition
    UNITY.COM
    The what, why and how of web-to-app acquisition campaigns
    Nailing cross-channel marketing for your app is crucial in today’s ecosystem. This isn’t just a speculation, it’s a hard fact: the average mobile marketer uses 5 or fewer media sources, but CPIs tend to be much higher for marketers using 6 or more media sources, according to a report by Singular and ironSource Aura.It’s time to start looking elsewhere for users. Something to consider is returning to old-school, tried-and-true strategies that have taken a backseat as the industry has advanced, such as web acquisition campaigns. There are two clicks in these campaigns - the first click directs users from an ad to a web landing page and the second click directs users from the web page to the app store. While the funnel to get to your app is longer, it’s actually an opportunity. Let’s dive into why and how you should be running web-to-app acquisition campaigns.3 benefits of web-to-app campaignsWeb acquisition campaigns became tried-and-true for a reason and many apps are beginning to take advantage of the strategy to reduce costs, get better visibility, and expand their reach.Reduce costsWhile the cost of app acquisition campaigns is increasing as the space becomes more saturated, web campaigns have been underutilized in recent years. This means many advertisers are finding that the cost of web campaigns are less than app store acquisitions. Much of these higher costs comes from high app store fees - Apple takes a 30% cut from large developers and a 15% cut from smaller developers. The web remains a relatively low-cost, accessible channel.Get better visibilityWith the ability to direct users to your owned mobile site before they click to download your app, you get better visibility into new users and where they came from - the app store is a black box where it’s nearly impossible to match the user who clicked an ad to the user who downloaded your app. On top of that, longer funnels give you more control and insight into each step users take to get to your app - allowing you to better optimize your campaigns. For example, you can try out different web landing pages to find the most effective way to increase users’ understanding of your app before they download it. This increases your likelihood of, first, motivating users to download your app, and second, encouraging them to stick around.Expand your reachInternet users worldwide spent 415.5 minutes a day online in 2021 according to Oberlo. App users spend at most 300 mins a day in apps according to TechCrunch. The internet is still more prevalent than apps because, let’s face it, the web predates the app store. Even more so, users have become especially savvy on the web, visiting the search bar to research a brand, fact check a friend, or dive deeper into a news headline. This means that by running web campaigns, you’re reaching a massive audience - nearly the entire world population.Andre Kempe, Founder and CEO of Admiral Media says, “marketers consider web acquisition important because they’re reaching a different type of audience that may convert to becoming an active app user, even though they were surfing on a news website… When you start advertising for the web, you reach an audience you haven’t reached before. This is definitely a growth opportunity." Listen to the full podcast.Web campaigns are a tried and true strategy, which is what makes them so effective in today’s ecosystem. Realizing that you should be considering this acquisition channel, let’s discuss how web onboarding can help you maximize success.Maximize success with web onboardingTypically, users complete onboarding directly on your app. Web onboarding, however, means letting users register, subscribe, and sometimes pay on the web, before heading to your app. This way, users are fully prepared to start using your app before even clicking download, ensuring they can engage at full capacity as soon as download is complete.When users onboard through the app, they may not immediately decide to engage but at least the app is still on their phones reminding them everyday of its value - they’re likely to open it again at some point in time. When a user onboards on the web and decides your app isn’t valuable, they’ll never end up actually downloading it - it’s gone and forgotten before it even started. That said, with web onboarding, the users who end up downloading your app will do so with high-intent to actively engage. Plus, you don’t have to pay for users that download without ever engaging. Whatever category your app is - fitness, food delivery, dating, reading, learning, etc. - you can use the web touchpoint to drive quality users to your app.Ensure the transition is seamlessFirst, ensure the web experience mimics the app experience enough that users don’t feel jipped when they actually start using your app. The transition from the web to the app should be seamless. If you’re offering users a taste of your app, the web touchpoint should look exactly like your app or, at least, include all of the same features. If the buttons to adjust settings are on the right side of the page during onboarding, they should be on the right side in the app as well. To ensure users stick around, you have to give them what they signed up for.Give users a sneak peakYou should also determine your main selling point and give users a sneak peak. For example, if you’re a reading app that allows users to adjust the settings of the page, you could give users premium access to the first chapter of a book allowing them to adjust font size or brightness. Readers will not want to leave the experience behind, encouraging them to set up their subscription and input their credit card information on the web before heading to the app to continue reading the book. The best part - when they open your app for the first time they’ll be able to jump right into the app experience.Learn more about how to improve your app’s onboarding experienceWeb-to-app campaigns should not be ignored in this competitive landscape - lower costs, more visibility, better optimization, and strong reach. Going even further to onboard users through the web, you’re improving the quality of the users entering your app for the first time.
    Like
    Love
    Wow
    Sad
    Angry
    245
    0 Comments 0 Shares
  • RAIN EFFECTS Shader Graph Deep Dive ft. @BenCloward

    RAIN EFFECTS Shader Graph Deep Dive ft. @BenCloward
    #rain #effects #shader #graph #deep
    RAIN EFFECTS Shader Graph Deep Dive ft. @BenCloward
    RAIN EFFECTS Shader Graph Deep Dive ft. @BenCloward #rain #effects #shader #graph #deep
    WWW.YOUTUBE.COM
    RAIN EFFECTS Shader Graph Deep Dive ft. @BenCloward
    RAIN EFFECTS Shader Graph Deep Dive ft. @BenCloward
    Like
    Love
    Wow
    Sad
    Angry
    418
    0 Comments 0 Shares
  • Understanding the impact of rewarded ads on IAP, retention and engagement

    Tapjoy studies have shown that mobile gamers prefer rewarded ads to interstitials 4-to-1. It’s a valuable insight for advertisers and developers alike when it comes maximizing ad revenue, but rewarded ads also have the potential to impact other parts of the user experience and your game’s performance overall.To ensure a healthy portfolio, it’s critical that developers understand the additional impact rewarded ads have beyond ad revenue. This includes their effect on metrics like in-app purchase conversion rate, average user spend, 30-day retention, and daily session count. To find out more, we conducted an in-depth analysis of eight different high-DAU apps across iOS and Android for several varying timeframes to find out how users behave when exposed to rewarded ads compared to those who aren’t.Higher IAP conversion ratesWe studied new app users during a one month period and segmented them into two different groups: Those who engaged with at least one rewarded ad and those who never engaged with an ad. We then compared the IAP conversion ratesfor each group.On average, users who engage with rewarded ads are 4.5 times more likely to make in-app purchase versus those who do not.7 out of the 8 of apps studied demonstrated higher conversion rates among those who engaged with ads versus those who did not.In the case of two of the apps studies, we found that users who engaged with an ad were over 9 times more likely to make a purchase.Higher average spend per userWe measured the average spend per user in each app for seven days before and seven days after a user’s first rewarded ad engagement.In all 8 apps studied, user spend increased significantly after they engaged with an ad. The average weighted increase in user spend was 326%. Among the apps studied, the boost in average spend per user ranged from just shy of 200% to over 500%.Increased 30-day retentionWe measured the 30-day retention rates of users who engaged with 1-6 rewarded ads during their first week of using an app. Three types of rewarded ad formats were studiedand measured against the average 30-day retention benchmark for all apps.Players who complete just one rewarded ad in the first week — whether a video, full-screen interstitial or an offerwall engagement — have a retention rate of at least 50%, compared to the benchmark of 13%.Rewarded video has the most profound effect on retention of any ad type. 30-day retention steadily increases with each video view, ranging from 53% to 68%, which is 3.5-5 times greater than the benchmark.Higher average daily session countWe measured the average number of user sessions per day — both seven days before and seven days after a user’s first rewarded ad engagement — for each high-DAU app.In all cases, users engaged with apps more frequently after completing a rewarded ad.All 8 apps studied demonstrated a lift in the average number of user sessions among those who completed an ad.The average weighted increase in user sessions across all apps was 34%.What does this mean for developers?4 key monetization strategies became abundantly clear following our research:Make rewarded ads easy to find – To increase visibility, consider adding a button to your app’s home screen or storefront, or utilize in-app messaging or push notifications to promote rewarded offers. Tapjoy’s Native-to-Earn, Message-to-Earn, and Push-to-Earn features make it easy for developers to add and manage these additions right from the dashboard.Explore currency sale promotions – Try running limited-time offers in which your players earn more currency than usual for every rewarded ad they complete. These currency sales can drive serious spikes in revenue. With Tapjoy, it’s easy to personalize your currency sale with custom branding and to control the payout ratio.Introduce ads early – Getting users to interact with ads early in their gameplay increases the chance that they will continue to engage with or make a purchase in your app. Rewarded ads introduce players to the mechanics and benefits of your in-app currency, so it’s important to make ads visible and easy to access during the player’s first few sessions.Integrate multiple rewarded formats – Integrating multiple formats — such as rewarded video and offerwall combined — provides developers with the best opportunity to monetize their users and maximize revenue. Diversifying formats not only unlocks higher eCPMs, but it provides players with the freedom to pick and choose the rewarded offer that appeals most to them.
    #understanding #impact #rewarded #ads #iap
    Understanding the impact of rewarded ads on IAP, retention and engagement
    Tapjoy studies have shown that mobile gamers prefer rewarded ads to interstitials 4-to-1. It’s a valuable insight for advertisers and developers alike when it comes maximizing ad revenue, but rewarded ads also have the potential to impact other parts of the user experience and your game’s performance overall.To ensure a healthy portfolio, it’s critical that developers understand the additional impact rewarded ads have beyond ad revenue. This includes their effect on metrics like in-app purchase conversion rate, average user spend, 30-day retention, and daily session count. To find out more, we conducted an in-depth analysis of eight different high-DAU apps across iOS and Android for several varying timeframes to find out how users behave when exposed to rewarded ads compared to those who aren’t.Higher IAP conversion ratesWe studied new app users during a one month period and segmented them into two different groups: Those who engaged with at least one rewarded ad and those who never engaged with an ad. We then compared the IAP conversion ratesfor each group.On average, users who engage with rewarded ads are 4.5 times more likely to make in-app purchase versus those who do not.7 out of the 8 of apps studied demonstrated higher conversion rates among those who engaged with ads versus those who did not.In the case of two of the apps studies, we found that users who engaged with an ad were over 9 times more likely to make a purchase.Higher average spend per userWe measured the average spend per user in each app for seven days before and seven days after a user’s first rewarded ad engagement.In all 8 apps studied, user spend increased significantly after they engaged with an ad. The average weighted increase in user spend was 326%. Among the apps studied, the boost in average spend per user ranged from just shy of 200% to over 500%.Increased 30-day retentionWe measured the 30-day retention rates of users who engaged with 1-6 rewarded ads during their first week of using an app. Three types of rewarded ad formats were studiedand measured against the average 30-day retention benchmark for all apps.Players who complete just one rewarded ad in the first week — whether a video, full-screen interstitial or an offerwall engagement — have a retention rate of at least 50%, compared to the benchmark of 13%.Rewarded video has the most profound effect on retention of any ad type. 30-day retention steadily increases with each video view, ranging from 53% to 68%, which is 3.5-5 times greater than the benchmark.Higher average daily session countWe measured the average number of user sessions per day — both seven days before and seven days after a user’s first rewarded ad engagement — for each high-DAU app.In all cases, users engaged with apps more frequently after completing a rewarded ad.All 8 apps studied demonstrated a lift in the average number of user sessions among those who completed an ad.The average weighted increase in user sessions across all apps was 34%.What does this mean for developers?4 key monetization strategies became abundantly clear following our research:Make rewarded ads easy to find – To increase visibility, consider adding a button to your app’s home screen or storefront, or utilize in-app messaging or push notifications to promote rewarded offers. Tapjoy’s Native-to-Earn, Message-to-Earn, and Push-to-Earn features make it easy for developers to add and manage these additions right from the dashboard.Explore currency sale promotions – Try running limited-time offers in which your players earn more currency than usual for every rewarded ad they complete. These currency sales can drive serious spikes in revenue. With Tapjoy, it’s easy to personalize your currency sale with custom branding and to control the payout ratio.Introduce ads early – Getting users to interact with ads early in their gameplay increases the chance that they will continue to engage with or make a purchase in your app. Rewarded ads introduce players to the mechanics and benefits of your in-app currency, so it’s important to make ads visible and easy to access during the player’s first few sessions.Integrate multiple rewarded formats – Integrating multiple formats — such as rewarded video and offerwall combined — provides developers with the best opportunity to monetize their users and maximize revenue. Diversifying formats not only unlocks higher eCPMs, but it provides players with the freedom to pick and choose the rewarded offer that appeals most to them. #understanding #impact #rewarded #ads #iap
    UNITY.COM
    Understanding the impact of rewarded ads on IAP, retention and engagement
    Tapjoy studies have shown that mobile gamers prefer rewarded ads to interstitials 4-to-1. It’s a valuable insight for advertisers and developers alike when it comes maximizing ad revenue, but rewarded ads also have the potential to impact other parts of the user experience and your game’s performance overall.To ensure a healthy portfolio, it’s critical that developers understand the additional impact rewarded ads have beyond ad revenue. This includes their effect on metrics like in-app purchase conversion rate, average user spend, 30-day retention, and daily session count. To find out more, we conducted an in-depth analysis of eight different high-DAU apps across iOS and Android for several varying timeframes to find out how users behave when exposed to rewarded ads compared to those who aren’t.Higher IAP conversion ratesWe studied new app users during a one month period and segmented them into two different groups: Those who engaged with at least one rewarded ad and those who never engaged with an ad. We then compared the IAP conversion rates (or percentage of users that made a first time purchase) for each group.On average, users who engage with rewarded ads are 4.5 times more likely to make in-app purchase versus those who do not.7 out of the 8 of apps studied demonstrated higher conversion rates among those who engaged with ads versus those who did not.In the case of two of the apps studies, we found that users who engaged with an ad were over 9 times more likely to make a purchase.Higher average spend per userWe measured the average spend per user in each app for seven days before and seven days after a user’s first rewarded ad engagement.In all 8 apps studied, user spend increased significantly after they engaged with an ad. The average weighted increase in user spend was 326%. Among the apps studied, the boost in average spend per user ranged from just shy of 200% to over 500%.Increased 30-day retentionWe measured the 30-day retention rates of users who engaged with 1-6 rewarded ads during their first week of using an app. Three types of rewarded ad formats were studied (rewarded video, full-screen interstitial, and offerwall placements) and measured against the average 30-day retention benchmark for all apps.Players who complete just one rewarded ad in the first week — whether a video, full-screen interstitial or an offerwall engagement — have a retention rate of at least 50%, compared to the benchmark of 13%.Rewarded video has the most profound effect on retention of any ad type. 30-day retention steadily increases with each video view, ranging from 53% to 68%, which is 3.5-5 times greater than the benchmark.Higher average daily session countWe measured the average number of user sessions per day — both seven days before and seven days after a user’s first rewarded ad engagement — for each high-DAU app.In all cases, users engaged with apps more frequently after completing a rewarded ad.All 8 apps studied demonstrated a lift in the average number of user sessions among those who completed an ad.The average weighted increase in user sessions across all apps was 34%.What does this mean for developers?4 key monetization strategies became abundantly clear following our research:Make rewarded ads easy to find – To increase visibility, consider adding a button to your app’s home screen or storefront, or utilize in-app messaging or push notifications to promote rewarded offers. Tapjoy’s Native-to-Earn, Message-to-Earn, and Push-to-Earn features make it easy for developers to add and manage these additions right from the dashboard.Explore currency sale promotions – Try running limited-time offers in which your players earn more currency than usual for every rewarded ad they complete. These currency sales can drive serious spikes in revenue. With Tapjoy, it’s easy to personalize your currency sale with custom branding and to control the payout ratio.Introduce ads early – Getting users to interact with ads early in their gameplay increases the chance that they will continue to engage with or make a purchase in your app. Rewarded ads introduce players to the mechanics and benefits of your in-app currency, so it’s important to make ads visible and easy to access during the player’s first few sessions.Integrate multiple rewarded formats – Integrating multiple formats — such as rewarded video and offerwall combined — provides developers with the best opportunity to monetize their users and maximize revenue. Diversifying formats not only unlocks higher eCPMs, but it provides players with the freedom to pick and choose the rewarded offer that appeals most to them.
    Like
    Love
    Wow
    Sad
    Angry
    372
    0 Comments 0 Shares
  • What’s next for computer vision: An AI developer weighs in

    In this Q&A, get a glimpse into the future of artificial intelligenceand computer vision through the lens of longtime Unity user Gerard Espona, whose robot digital twin project was featured in the Made with Unity: AI series. Working as simulation lead at Luxonis, whose core technology makes it possible to embed human-level perception into robotics, Espona uses his years of experience in the industry to weigh in on the current state and anticipated progression of computer vision.During recent years, computer visionand AI have become the fastest-growing fields both in market size and industry adoption rate. Spatial CV and edge AI have been used to improve and automate repetitive tasks as well as complex processes.This new reality is thanks to the democratization of CV/AI. Increasingly affordable hardware access, including depth perception capability as well as improvements in machine learning, has enabled the deployment of real solutions on edge CV/AI systems.Spatial CV using edge AI enables depth-based applications to be deployed without the need of a data center service, and also allows the user to preserve privacy by processing images on the device itself.Along with more accessible hardware, software and machine learning workflows are undergoing important improvements. Although they are still very specialized and full of technical challenges, they have become much more accessible, offering tools that allow users to train their own models.Within the standard ML pipeline/workflow, large-scale edge computing and deployment can still pose issues. One of the biggest general challenges is to reduce the costs and timelines currently required to create and/or improve machine learning models on real-world applications. In other words, the challenge is how to manage all these devices to enable a smooth pipeline for continuous improvement.Also, the implicit limitations in terms of compute processing need extra effort on the final model deployed on the device. That said, embedded technology evolves really fast, and each iteration is a big leap in processing capabilities.Spatial CV/AI is a field that still requires a lot of specialization and systems. Workflows are often complicated and tedious due to numerous technical challenges, so a lot of time is devoted to smoothing out the workflow instead of focusing on value-added tasks.Creating datasets, annotating the images, preprocessing/augmentation process, training, deploying and closing the feedback loop for continuous improvement is a complex process. Each step of the workflow is technically difficult and usually involves time and financial cost, and more so for systems working in remote areas with limited connectivity.At Luxonis, we help our customers build and deploy solutions to solve and automate complex tasks at scale, so we’re facing all these issues directly. Our mission, “Robotic vision made simple,” provides not only great and affordable depth-capable hardware, but also a solid and smooth ML pipeline with synthetic datasets and simulation.Another important challenge is the work that needs to be done on the interpretability of models and the creation of datasets from an ethical, privacy and bias point of view.Last but not least, global chip supply issues are making it difficult to get the hardware into everybody’s hands.Data-centric AI is potentially useful when a working model is underperforming. Investing a large amount of time to optimize the model often leads to almost zero real improvement. Instead, with data-centric AI the investment is in analysis, cleaning and improving of the dataset.Usually when a model is underperforming, the issue is within the dataset itself, as there is not enough data for the model to outperform. This could be the result of two possible reasons: 1) the model needs a much larger amount of data, which is difficult to collect in the real world, or 2) the model doesn’t have enough examples of rare cases, which take a lot of time to happen in the real world.In both situations, synthetic datasets could help.Thanks to Unity’s computer vision tools, it is very easy to create photorealistic scenes and randomize elements like materials, light conditions and object placement. The tools come with common labels like 2D bounding boxes, 3D bounding boxes, semantic and instance segmentation, and even human body key points. Additionally, these can be easily extended with custom randomizers, labelers and annotations.Almost any task you want to automate or improve using edge CV/AI very likely involves detecting people for obvious safety and security reasons. It’s critical to guarantee user safety around autonomous systems or robots when they’re working, requiring models to be trained on data about humans.That means we need to capture a large amount of images, including information like poses and physical appearance, that are representative of the entire human population. This task raises some concerns about privacy, ethics and bias when starting to capture real human data to train the model.Fortunately, we can use synthetic datasets to mitigate some of these concerns using human 3D models and poses. A very good example is the work done by the Unity team with PeopleSansPeople.PeopleSansPeople is a human-centric synthetic dataset creator using 3D models and standard animations to randomize human body poses. Also, we can use a Unity project template, to which we add our own 3D models and poses to create our own human synthetic dataset.At Luxonis, we’re using this project as the basis for creating our own human synthetic dataset and training models. In general, we use Unity’s computer vision tools to create large and complex datasets with a high level of customization on labelers, annotations and randomizations. This allows our ML team to iterate faster with our customers, without needing to wait for real-world data collection and manual annotation.Since the introduction of transformer architecture, CV tasks are more accessible. Generative models like DALL-E 2 could also be used to create synthetic datasets, and NeRF as a neural approach to generate novel point of views of known objects and scenes. It’s clear all these innovations are catching the attention of audiences.On the other hand, having access to better annotation tools and model zoos and libraries with pre-trained, ready-to-use models are helping drive wide adoption.One key element contributing to the uptick in computer vision use is the fast evolution of vision processing unitsthat currently allow users to perform model inferences on deviceat 4 TOPS of processing power. The new generation of VPUs promises a big leap in capabilities, allowing even more complex CV/AI applications to be deployed on edge.Any application related to agriculture and farming always captures my attention. For example, there is now a cow tracking and monitoring CV/AI application using drones.Our thanks to Gerard for sharing his perspective with us – keep up with his latest thoughts on LinkedIn and Twitter. And, learn more about how Unity can help your team generate synthetic data to improve computer vision model training with Unity Computer Vision.
    #whats #next #computer #vision #developer
    What’s next for computer vision: An AI developer weighs in
    In this Q&A, get a glimpse into the future of artificial intelligenceand computer vision through the lens of longtime Unity user Gerard Espona, whose robot digital twin project was featured in the Made with Unity: AI series. Working as simulation lead at Luxonis, whose core technology makes it possible to embed human-level perception into robotics, Espona uses his years of experience in the industry to weigh in on the current state and anticipated progression of computer vision.During recent years, computer visionand AI have become the fastest-growing fields both in market size and industry adoption rate. Spatial CV and edge AI have been used to improve and automate repetitive tasks as well as complex processes.This new reality is thanks to the democratization of CV/AI. Increasingly affordable hardware access, including depth perception capability as well as improvements in machine learning, has enabled the deployment of real solutions on edge CV/AI systems.Spatial CV using edge AI enables depth-based applications to be deployed without the need of a data center service, and also allows the user to preserve privacy by processing images on the device itself.Along with more accessible hardware, software and machine learning workflows are undergoing important improvements. Although they are still very specialized and full of technical challenges, they have become much more accessible, offering tools that allow users to train their own models.Within the standard ML pipeline/workflow, large-scale edge computing and deployment can still pose issues. One of the biggest general challenges is to reduce the costs and timelines currently required to create and/or improve machine learning models on real-world applications. In other words, the challenge is how to manage all these devices to enable a smooth pipeline for continuous improvement.Also, the implicit limitations in terms of compute processing need extra effort on the final model deployed on the device. That said, embedded technology evolves really fast, and each iteration is a big leap in processing capabilities.Spatial CV/AI is a field that still requires a lot of specialization and systems. Workflows are often complicated and tedious due to numerous technical challenges, so a lot of time is devoted to smoothing out the workflow instead of focusing on value-added tasks.Creating datasets, annotating the images, preprocessing/augmentation process, training, deploying and closing the feedback loop for continuous improvement is a complex process. Each step of the workflow is technically difficult and usually involves time and financial cost, and more so for systems working in remote areas with limited connectivity.At Luxonis, we help our customers build and deploy solutions to solve and automate complex tasks at scale, so we’re facing all these issues directly. Our mission, “Robotic vision made simple,” provides not only great and affordable depth-capable hardware, but also a solid and smooth ML pipeline with synthetic datasets and simulation.Another important challenge is the work that needs to be done on the interpretability of models and the creation of datasets from an ethical, privacy and bias point of view.Last but not least, global chip supply issues are making it difficult to get the hardware into everybody’s hands.Data-centric AI is potentially useful when a working model is underperforming. Investing a large amount of time to optimize the model often leads to almost zero real improvement. Instead, with data-centric AI the investment is in analysis, cleaning and improving of the dataset.Usually when a model is underperforming, the issue is within the dataset itself, as there is not enough data for the model to outperform. This could be the result of two possible reasons: 1) the model needs a much larger amount of data, which is difficult to collect in the real world, or 2) the model doesn’t have enough examples of rare cases, which take a lot of time to happen in the real world.In both situations, synthetic datasets could help.Thanks to Unity’s computer vision tools, it is very easy to create photorealistic scenes and randomize elements like materials, light conditions and object placement. The tools come with common labels like 2D bounding boxes, 3D bounding boxes, semantic and instance segmentation, and even human body key points. Additionally, these can be easily extended with custom randomizers, labelers and annotations.Almost any task you want to automate or improve using edge CV/AI very likely involves detecting people for obvious safety and security reasons. It’s critical to guarantee user safety around autonomous systems or robots when they’re working, requiring models to be trained on data about humans.That means we need to capture a large amount of images, including information like poses and physical appearance, that are representative of the entire human population. This task raises some concerns about privacy, ethics and bias when starting to capture real human data to train the model.Fortunately, we can use synthetic datasets to mitigate some of these concerns using human 3D models and poses. A very good example is the work done by the Unity team with PeopleSansPeople.PeopleSansPeople is a human-centric synthetic dataset creator using 3D models and standard animations to randomize human body poses. Also, we can use a Unity project template, to which we add our own 3D models and poses to create our own human synthetic dataset.At Luxonis, we’re using this project as the basis for creating our own human synthetic dataset and training models. In general, we use Unity’s computer vision tools to create large and complex datasets with a high level of customization on labelers, annotations and randomizations. This allows our ML team to iterate faster with our customers, without needing to wait for real-world data collection and manual annotation.Since the introduction of transformer architecture, CV tasks are more accessible. Generative models like DALL-E 2 could also be used to create synthetic datasets, and NeRF as a neural approach to generate novel point of views of known objects and scenes. It’s clear all these innovations are catching the attention of audiences.On the other hand, having access to better annotation tools and model zoos and libraries with pre-trained, ready-to-use models are helping drive wide adoption.One key element contributing to the uptick in computer vision use is the fast evolution of vision processing unitsthat currently allow users to perform model inferences on deviceat 4 TOPS of processing power. The new generation of VPUs promises a big leap in capabilities, allowing even more complex CV/AI applications to be deployed on edge.Any application related to agriculture and farming always captures my attention. For example, there is now a cow tracking and monitoring CV/AI application using drones.Our thanks to Gerard for sharing his perspective with us – keep up with his latest thoughts on LinkedIn and Twitter. And, learn more about how Unity can help your team generate synthetic data to improve computer vision model training with Unity Computer Vision. #whats #next #computer #vision #developer
    UNITY.COM
    What’s next for computer vision: An AI developer weighs in
    In this Q&A, get a glimpse into the future of artificial intelligence (AI) and computer vision through the lens of longtime Unity user Gerard Espona, whose robot digital twin project was featured in the Made with Unity: AI series. Working as simulation lead at Luxonis, whose core technology makes it possible to embed human-level perception into robotics, Espona uses his years of experience in the industry to weigh in on the current state and anticipated progression of computer vision.During recent years, computer vision (CV) and AI have become the fastest-growing fields both in market size and industry adoption rate. Spatial CV and edge AI have been used to improve and automate repetitive tasks as well as complex processes.This new reality is thanks to the democratization of CV/AI. Increasingly affordable hardware access, including depth perception capability as well as improvements in machine learning (ML), has enabled the deployment of real solutions on edge CV/AI systems.Spatial CV using edge AI enables depth-based applications to be deployed without the need of a data center service, and also allows the user to preserve privacy by processing images on the device itself.Along with more accessible hardware, software and machine learning workflows are undergoing important improvements. Although they are still very specialized and full of technical challenges, they have become much more accessible, offering tools that allow users to train their own models.Within the standard ML pipeline/workflow, large-scale edge computing and deployment can still pose issues. One of the biggest general challenges is to reduce the costs and timelines currently required to create and/or improve machine learning models on real-world applications. In other words, the challenge is how to manage all these devices to enable a smooth pipeline for continuous improvement.Also, the implicit limitations in terms of compute processing need extra effort on the final model deployed on the device (that is, apps need to be lightweight, performant, etc.). That said, embedded technology evolves really fast, and each iteration is a big leap in processing capabilities.Spatial CV/AI is a field that still requires a lot of specialization and systems. Workflows are often complicated and tedious due to numerous technical challenges, so a lot of time is devoted to smoothing out the workflow instead of focusing on value-added tasks.Creating datasets (collecting and filtering images and videos), annotating the images, preprocessing/augmentation process, training, deploying and closing the feedback loop for continuous improvement is a complex process. Each step of the workflow is technically difficult and usually involves time and financial cost, and more so for systems working in remote areas with limited connectivity.At Luxonis, we help our customers build and deploy solutions to solve and automate complex tasks at scale, so we’re facing all these issues directly. Our mission, “Robotic vision made simple,” provides not only great and affordable depth-capable hardware, but also a solid and smooth ML pipeline with synthetic datasets and simulation.Another important challenge is the work that needs to be done on the interpretability of models and the creation of datasets from an ethical, privacy and bias point of view.Last but not least, global chip supply issues are making it difficult to get the hardware into everybody’s hands.Data-centric AI is potentially useful when a working model is underperforming. Investing a large amount of time to optimize the model often leads to almost zero real improvement. Instead, with data-centric AI the investment is in analysis, cleaning and improving of the dataset.Usually when a model is underperforming, the issue is within the dataset itself, as there is not enough data for the model to outperform. This could be the result of two possible reasons: 1) the model needs a much larger amount of data, which is difficult to collect in the real world, or 2) the model doesn’t have enough examples of rare cases, which take a lot of time to happen in the real world.In both situations, synthetic datasets could help.Thanks to Unity’s computer vision tools, it is very easy to create photorealistic scenes and randomize elements like materials, light conditions and object placement. The tools come with common labels like 2D bounding boxes, 3D bounding boxes, semantic and instance segmentation, and even human body key points. Additionally, these can be easily extended with custom randomizers, labelers and annotations.Almost any task you want to automate or improve using edge CV/AI very likely involves detecting people for obvious safety and security reasons. It’s critical to guarantee user safety around autonomous systems or robots when they’re working, requiring models to be trained on data about humans.That means we need to capture a large amount of images, including information like poses and physical appearance, that are representative of the entire human population. This task raises some concerns about privacy, ethics and bias when starting to capture real human data to train the model.Fortunately, we can use synthetic datasets to mitigate some of these concerns using human 3D models and poses. A very good example is the work done by the Unity team with PeopleSansPeople.PeopleSansPeople is a human-centric synthetic dataset creator using 3D models and standard animations to randomize human body poses. Also, we can use a Unity project template, to which we add our own 3D models and poses to create our own human synthetic dataset.At Luxonis, we’re using this project as the basis for creating our own human synthetic dataset and training models. In general, we use Unity’s computer vision tools to create large and complex datasets with a high level of customization on labelers, annotations and randomizations. This allows our ML team to iterate faster with our customers, without needing to wait for real-world data collection and manual annotation.Since the introduction of transformer architecture, CV tasks are more accessible. Generative models like DALL-E 2 could also be used to create synthetic datasets, and NeRF as a neural approach to generate novel point of views of known objects and scenes. It’s clear all these innovations are catching the attention of audiences.On the other hand, having access to better annotation tools and model zoos and libraries with pre-trained, ready-to-use models are helping drive wide adoption.One key element contributing to the uptick in computer vision use is the fast evolution of vision processing units (VPUs) that currently allow users to perform model inferences on device (without the need for any host) at 4 TOPS of processing power (current Intel Movidius Myriad X). The new generation of VPUs promises a big leap in capabilities, allowing even more complex CV/AI applications to be deployed on edge.Any application related to agriculture and farming always captures my attention. For example, there is now a cow tracking and monitoring CV/AI application using drones.Our thanks to Gerard for sharing his perspective with us – keep up with his latest thoughts on LinkedIn and Twitter. And, learn more about how Unity can help your team generate synthetic data to improve computer vision model training with Unity Computer Vision.
    Like
    Love
    Wow
    Sad
    Angry
    381
    0 Comments 0 Shares
  • The Last Golfer Launch Trailer

    The Last Golfer Launch Trailer
    #last #golfer #launch #trailer
    The Last Golfer Launch Trailer
    The Last Golfer Launch Trailer #last #golfer #launch #trailer
    WWW.YOUTUBE.COM
    The Last Golfer Launch Trailer
    The Last Golfer Launch Trailer
    Like
    Love
    Wow
    Sad
    Angry
    186
    0 Comments 0 Shares
  • The multiplayer stack behind MMORPG Pantheon: Rise of the Fallen

    Finding your own path is at the core of gameplay in Pantheon: Rise of the Fallen – players can go anywhere, climb anything, forge new routes, and follow their curiosity to find adventure. It’s not that different from how its creators, Visionary Realms, approaches building this MMORPG – they’re doing it their own way.Transporting players to the fantasy world of Terminus, Pantheon: Rise of the Fallen harkens back to classic MMOs, where accidental discovery wandering through an open world and social interactions with other players are at the heart of the game experience.Creating any multiplayer game is a challenge – but a highly social online game at this scale is an epic quest. We sat down with lead programmer Kyle Olsen about how the team is using Unity to connect players in this MMORPG fantasy world.So what makes Pantheon: Rise of the Fallen unique compared to other MMO games?It’s definitely the social aspect. You have to experience the world and move through it naturally. It can be a bit more of a grind in a way, but it I think connects you more to your character, to the game, and the world instead of just sort of teleporting everywhere and joining LFG systems or just being placed in a dungeon. You learn the land a bit better, you have to navigate and you use your eyes more than just bouncing around like a pinball from objective to objective, following quest markers and stuff. It’s more of a thought game.How are you managing synchronization between the player experience and specific world instances?We have our own network library we built for the socket transport layer called ViNL. That’s the bread and butter for all of the zone communications, between zones and player to zone. SQL server in the back end, kind of standard stuff there. But most of the transports are handled by our own network library.How do you approach asset loading for this giant world?We’ve got a step where we bake our continents out into these tiles, and we’ve got different backends that we can plug into that. We’ve got one that just outputs standard Prefabs, and we’ve got one that outputs subscenes that we were using before Unity 6, and then we’ve got actual full-on Unity scenes that you can load additively, so you can choose how you want to output your content. Before Unity 6, we had moved away from Prefabs and started loading the DOTS subscenes and using that, built on BRG.We also have an output that can render directly to our own custom batch render group as well, just using scriptable objects and managing our own data. So we’ve been able to experiment and test out the different ones, and see what yields the best client performance. Prior to Unity 6, we were outputting and rendering the entire continent with subscenes, but with Unity 6 we actually switched back to using Prefabs with Instantiate Async and Addressables to manage everything.We’re using the Resident Drawer and GPU occlusion culling, which ended up yielding even better performance than subscenes and our own batch render group – I’m assuming because GPU occlusion culling just isn’t supported by some of the other render paths at the moment. So we’ve bounced around quite a bit, and we landed on Addressables for managing all the memory and asset loading, and regular Instantiate Prefabs with the GPU Resident Drawer seems to be the best client-side performance at the moment.Did you upgrade to Unity 6 to take advantage of the GPU Resident Drawer, specifically?Actually, I really wanted it for the occlusion culling. I wasn’t aware that only certain render paths made use of the occlusion culling, so we were attempting to use it with the same subscene rendering that we were using prior to Unity 6 and realizing nothing’s actually being culled. So we opted to switch back to the Prefab output to see what that looked like with the Resident Drawer, and occlusion culling and FPS went up.We had some issues initially, because Instantiate Async wasn’t in before Unity 6, so we had some stalls when we would instantiate our tiles. There were quite a few things being instantiated, but switching that over to Instantiate Async after we fixed a couple of bugs we got rid of the stall on load and the overall frame rate was higher after load, so it was just a win-win.Were there any really remarkable productivity gains that came with the switch to Unity 6?Everything I've talked about so far was client-facing, so our players experienced those wins. For the developer side of things, the stability and performance of the Editor went up quite a bit. The Editor stability in Unity 6 has gone up pretty substantially – it’s very rare to actually crash now. That alone has been, at least for the coding side, a huge win. It feels more stable in its entirety for sure.How do you handle making changes and updates without breaking everything?We build with Addressables using the labels very heavily, and we do the Addressable packaging by labels. So if we edit a specific zone or an asset in a zone, or like a VFX that’s associated with a spell or something like that, only those bundles that touch that label get updated at all.And then, our own content delivery system, we have the game available on Steam and our own patcher, and those both handle the delta changes, where we’re just delivering small updates through those Addressable bundles. The netcode requires the same version to be connected in the first place, so the network library side of that is automatically handled in the handshake process.What guidance would you give someone who’s trying to tackle an MMO game or another ambitious multiplayer project?You kind of start small, I guess. It's a step-by-step process. If you’re a small team, you You start small. It's a step-by-step process. If you’re a small team, you can’t bite off too much. It’d be completely overwhelming – but that holds true with any larger-scale game, not just an MMO. Probably technology selection – making smart choices upfront and sticking to them. It’s going to be a lot of middleware and backend tech that you’re going to have to wrangle and get working well together, and swapping to the newest cool thing all the time is not going to bode well.What’s the most exciting technical achievement for your team with this game?I think that there aren’t many open world MMOs, period, that have been pulled off in Unity. We don’t have a huge team, and we're making a game that is genuinely massive, so we have to focus on little isolated areas, develop them as best we can, and then move on and get feedback.The whole package together is fairly new grounds – when there is an MMO, it needs to feel like an MMO in spirit, with lots of people all around, doing their own thing. And we’ve pulled that off – I think better than pretty much any Unity MMO ever has. I think we can pat ourselves on the back for that.Get more insights from developers on Unity’s Resources page and here on the blog. Check out Pantheon: Rise of the Fallen in Early Access on Steam.
    #multiplayer #stack #behind #mmorpg #pantheon
    The multiplayer stack behind MMORPG Pantheon: Rise of the Fallen
    Finding your own path is at the core of gameplay in Pantheon: Rise of the Fallen – players can go anywhere, climb anything, forge new routes, and follow their curiosity to find adventure. It’s not that different from how its creators, Visionary Realms, approaches building this MMORPG – they’re doing it their own way.Transporting players to the fantasy world of Terminus, Pantheon: Rise of the Fallen harkens back to classic MMOs, where accidental discovery wandering through an open world and social interactions with other players are at the heart of the game experience.Creating any multiplayer game is a challenge – but a highly social online game at this scale is an epic quest. We sat down with lead programmer Kyle Olsen about how the team is using Unity to connect players in this MMORPG fantasy world.So what makes Pantheon: Rise of the Fallen unique compared to other MMO games?It’s definitely the social aspect. You have to experience the world and move through it naturally. It can be a bit more of a grind in a way, but it I think connects you more to your character, to the game, and the world instead of just sort of teleporting everywhere and joining LFG systems or just being placed in a dungeon. You learn the land a bit better, you have to navigate and you use your eyes more than just bouncing around like a pinball from objective to objective, following quest markers and stuff. It’s more of a thought game.How are you managing synchronization between the player experience and specific world instances?We have our own network library we built for the socket transport layer called ViNL. That’s the bread and butter for all of the zone communications, between zones and player to zone. SQL server in the back end, kind of standard stuff there. But most of the transports are handled by our own network library.How do you approach asset loading for this giant world?We’ve got a step where we bake our continents out into these tiles, and we’ve got different backends that we can plug into that. We’ve got one that just outputs standard Prefabs, and we’ve got one that outputs subscenes that we were using before Unity 6, and then we’ve got actual full-on Unity scenes that you can load additively, so you can choose how you want to output your content. Before Unity 6, we had moved away from Prefabs and started loading the DOTS subscenes and using that, built on BRG.We also have an output that can render directly to our own custom batch render group as well, just using scriptable objects and managing our own data. So we’ve been able to experiment and test out the different ones, and see what yields the best client performance. Prior to Unity 6, we were outputting and rendering the entire continent with subscenes, but with Unity 6 we actually switched back to using Prefabs with Instantiate Async and Addressables to manage everything.We’re using the Resident Drawer and GPU occlusion culling, which ended up yielding even better performance than subscenes and our own batch render group – I’m assuming because GPU occlusion culling just isn’t supported by some of the other render paths at the moment. So we’ve bounced around quite a bit, and we landed on Addressables for managing all the memory and asset loading, and regular Instantiate Prefabs with the GPU Resident Drawer seems to be the best client-side performance at the moment.Did you upgrade to Unity 6 to take advantage of the GPU Resident Drawer, specifically?Actually, I really wanted it for the occlusion culling. I wasn’t aware that only certain render paths made use of the occlusion culling, so we were attempting to use it with the same subscene rendering that we were using prior to Unity 6 and realizing nothing’s actually being culled. So we opted to switch back to the Prefab output to see what that looked like with the Resident Drawer, and occlusion culling and FPS went up.We had some issues initially, because Instantiate Async wasn’t in before Unity 6, so we had some stalls when we would instantiate our tiles. There were quite a few things being instantiated, but switching that over to Instantiate Async after we fixed a couple of bugs we got rid of the stall on load and the overall frame rate was higher after load, so it was just a win-win.Were there any really remarkable productivity gains that came with the switch to Unity 6?Everything I've talked about so far was client-facing, so our players experienced those wins. For the developer side of things, the stability and performance of the Editor went up quite a bit. The Editor stability in Unity 6 has gone up pretty substantially – it’s very rare to actually crash now. That alone has been, at least for the coding side, a huge win. It feels more stable in its entirety for sure.How do you handle making changes and updates without breaking everything?We build with Addressables using the labels very heavily, and we do the Addressable packaging by labels. So if we edit a specific zone or an asset in a zone, or like a VFX that’s associated with a spell or something like that, only those bundles that touch that label get updated at all.And then, our own content delivery system, we have the game available on Steam and our own patcher, and those both handle the delta changes, where we’re just delivering small updates through those Addressable bundles. The netcode requires the same version to be connected in the first place, so the network library side of that is automatically handled in the handshake process.What guidance would you give someone who’s trying to tackle an MMO game or another ambitious multiplayer project?You kind of start small, I guess. It's a step-by-step process. If you’re a small team, you You start small. It's a step-by-step process. If you’re a small team, you can’t bite off too much. It’d be completely overwhelming – but that holds true with any larger-scale game, not just an MMO. Probably technology selection – making smart choices upfront and sticking to them. It’s going to be a lot of middleware and backend tech that you’re going to have to wrangle and get working well together, and swapping to the newest cool thing all the time is not going to bode well.What’s the most exciting technical achievement for your team with this game?I think that there aren’t many open world MMOs, period, that have been pulled off in Unity. We don’t have a huge team, and we're making a game that is genuinely massive, so we have to focus on little isolated areas, develop them as best we can, and then move on and get feedback.The whole package together is fairly new grounds – when there is an MMO, it needs to feel like an MMO in spirit, with lots of people all around, doing their own thing. And we’ve pulled that off – I think better than pretty much any Unity MMO ever has. I think we can pat ourselves on the back for that.Get more insights from developers on Unity’s Resources page and here on the blog. Check out Pantheon: Rise of the Fallen in Early Access on Steam. #multiplayer #stack #behind #mmorpg #pantheon
    UNITY.COM
    The multiplayer stack behind MMORPG Pantheon: Rise of the Fallen
    Finding your own path is at the core of gameplay in Pantheon: Rise of the Fallen – players can go anywhere, climb anything, forge new routes, and follow their curiosity to find adventure. It’s not that different from how its creators, Visionary Realms, approaches building this MMORPG – they’re doing it their own way.Transporting players to the fantasy world of Terminus, Pantheon: Rise of the Fallen harkens back to classic MMOs, where accidental discovery wandering through an open world and social interactions with other players are at the heart of the game experience.Creating any multiplayer game is a challenge – but a highly social online game at this scale is an epic quest. We sat down with lead programmer Kyle Olsen about how the team is using Unity to connect players in this MMORPG fantasy world.So what makes Pantheon: Rise of the Fallen unique compared to other MMO games?It’s definitely the social aspect. You have to experience the world and move through it naturally. It can be a bit more of a grind in a way, but it I think connects you more to your character, to the game, and the world instead of just sort of teleporting everywhere and joining LFG systems or just being placed in a dungeon. You learn the land a bit better, you have to navigate and you use your eyes more than just bouncing around like a pinball from objective to objective, following quest markers and stuff. It’s more of a thought game.How are you managing synchronization between the player experience and specific world instances?We have our own network library we built for the socket transport layer called ViNL. That’s the bread and butter for all of the zone communications, between zones and player to zone. SQL server in the back end, kind of standard stuff there. But most of the transports are handled by our own network library.How do you approach asset loading for this giant world?We’ve got a step where we bake our continents out into these tiles, and we’ve got different backends that we can plug into that. We’ve got one that just outputs standard Prefabs, and we’ve got one that outputs subscenes that we were using before Unity 6, and then we’ve got actual full-on Unity scenes that you can load additively, so you can choose how you want to output your content. Before Unity 6, we had moved away from Prefabs and started loading the DOTS subscenes and using that, built on BRG.We also have an output that can render directly to our own custom batch render group as well, just using scriptable objects and managing our own data. So we’ve been able to experiment and test out the different ones, and see what yields the best client performance. Prior to Unity 6, we were outputting and rendering the entire continent with subscenes, but with Unity 6 we actually switched back to using Prefabs with Instantiate Async and Addressables to manage everything.We’re using the Resident Drawer and GPU occlusion culling, which ended up yielding even better performance than subscenes and our own batch render group – I’m assuming because GPU occlusion culling just isn’t supported by some of the other render paths at the moment. So we’ve bounced around quite a bit, and we landed on Addressables for managing all the memory and asset loading, and regular Instantiate Prefabs with the GPU Resident Drawer seems to be the best client-side performance at the moment.Did you upgrade to Unity 6 to take advantage of the GPU Resident Drawer, specifically?Actually, I really wanted it for the occlusion culling. I wasn’t aware that only certain render paths made use of the occlusion culling, so we were attempting to use it with the same subscene rendering that we were using prior to Unity 6 and realizing nothing’s actually being culled. So we opted to switch back to the Prefab output to see what that looked like with the Resident Drawer, and occlusion culling and FPS went up.We had some issues initially, because Instantiate Async wasn’t in before Unity 6, so we had some stalls when we would instantiate our tiles. There were quite a few things being instantiated, but switching that over to Instantiate Async after we fixed a couple of bugs we got rid of the stall on load and the overall frame rate was higher after load, so it was just a win-win.Were there any really remarkable productivity gains that came with the switch to Unity 6?Everything I've talked about so far was client-facing, so our players experienced those wins. For the developer side of things, the stability and performance of the Editor went up quite a bit. The Editor stability in Unity 6 has gone up pretty substantially – it’s very rare to actually crash now. That alone has been, at least for the coding side, a huge win. It feels more stable in its entirety for sure.How do you handle making changes and updates without breaking everything?We build with Addressables using the labels very heavily, and we do the Addressable packaging by labels. So if we edit a specific zone or an asset in a zone, or like a VFX that’s associated with a spell or something like that, only those bundles that touch that label get updated at all.And then, our own content delivery system, we have the game available on Steam and our own patcher, and those both handle the delta changes, where we’re just delivering small updates through those Addressable bundles. The netcode requires the same version to be connected in the first place, so the network library side of that is automatically handled in the handshake process.What guidance would you give someone who’s trying to tackle an MMO game or another ambitious multiplayer project?You kind of start small, I guess. It's a step-by-step process. If you’re a small team, you You start small. It's a step-by-step process. If you’re a small team, you can’t bite off too much. It’d be completely overwhelming – but that holds true with any larger-scale game, not just an MMO. Probably technology selection – making smart choices upfront and sticking to them. It’s going to be a lot of middleware and backend tech that you’re going to have to wrangle and get working well together, and swapping to the newest cool thing all the time is not going to bode well.What’s the most exciting technical achievement for your team with this game?I think that there aren’t many open world MMOs, period, that have been pulled off in Unity. We don’t have a huge team, and we're making a game that is genuinely massive, so we have to focus on little isolated areas, develop them as best we can, and then move on and get feedback.The whole package together is fairly new grounds – when there is an MMO, it needs to feel like an MMO in spirit, with lots of people all around, doing their own thing. And we’ve pulled that off – I think better than pretty much any Unity MMO ever has. I think we can pat ourselves on the back for that.Get more insights from developers on Unity’s Resources page and here on the blog. Check out Pantheon: Rise of the Fallen in Early Access on Steam.
    0 Comments 0 Shares
  • Crafting DREDGE’s cozy atmospheric horror

    Crafting DREDGE’s cozy atmospheric horror
    #crafting #dredges #cozy #atmospheric #horror
    Crafting DREDGE’s cozy atmospheric horror
    Crafting DREDGE’s cozy atmospheric horror #crafting #dredges #cozy #atmospheric #horror
    WWW.YOUTUBE.COM
    Crafting DREDGE’s cozy atmospheric horror
    Crafting DREDGE’s cozy atmospheric horror
    0 Comments 0 Shares
  • App Analytics: 3 ways to optimize performance by combining player and growth data

    Optimizing monetization and UA is key for growth - but they only get you so far if the app itself isn't optimized. In fact, the best way to maximize growth is by tying monetization and user acquisition data to user behavior. The more granular you can get, the more you can do to strengthen your business.Using ironSource's App Analytics solution to break down the data, here are 3 ways you can better optimize for growth.#1: Reconciling impressions vs playtimeThere’s typically a tradeoff between the number of impressions you serve users versus its effect on user engagement. That’s because game designers are determined to improve the user experience in the game, while monetization managers are focused on maximizing the revenue per user. The key to reconciling these pain points is to deep dive into each metric to find the sweet spot that maximizes both.For example, you can compare playtime versus impressions per user, side by side. Let’s say you want to increase impressions from a cap of 3 to 5. The first step is to assess whether this affects playtime, and make the best adjustments to ensure a positive user experience. If you see a significant drop in playtime, it’s a sign that users weren’t happy, and a lesson to return to the original impressions cap. However, if increasing the cap has no effect on playtime - you can generate revenue without affecting user experience.Now your data-informed conclusions can improve both user experience and profits. It’s not always easy to find the optimal point between them, but looking at them side by side with a tool like App Analytics can help to reconcile multiple interests.#2: Improving user engagement with cohortsTraditionally, retention analysis focuses on user churn. Going one step further - not just looking at if users return, but also understanding their behavior when they return - paints a much clearer picture about how to better retain users and find more places to monetize them.Assessing how users playTo encourage your players to keep going, first understand what’s already motivating them in the first place. If you have in-app purchase API data, simply split paying versus non-paying users and see how they compare in different metrics. Now you can better understand your paying users and how they differ from non-paying users - for example, if you see that session length is higher for paying or non-paying users, you can use this information to your advantage.Let’s say App Analytics shows there was a spike in your revenue on a cohorted day. You also see that your users were running out of the initial resources from their starter pack and hadn’t utilized ways to earn more, like clans and special events. Your profits spiked because users only had one choice - to keep playing, they had to use in-app purchases to gain more resources.Offering just the right reward amountTo determine a reward amount that continuously engages users, you need to first understand your users. Start by looking at impressions per user. The figure should be fairly consistent, especially if you’re capping impressions, but it’s still important to monitor this number for any technical issues.Let’s say you see a drop in impressions on day 5 on the App Analytics platform. You can dive deeper to understand why - it turns out that on day 5, users received a special daily bonus with a lot of gems. However, they acquired so much currency, they didn’t need to watch a rewarded video to move forward - which is why impressions were low that day.The best practice would be to decrease the reward on day 5, so that users stay in the sweet spot: engaged in the game but needing extra gems to progress.Maximizing your strengthsTo increase your user retention, you want to maximize exposure to events that engage users, like clans. To do that, look for areas in the game with increased playtime and determine whether it’s connected to an event. For example, if you see increased playtime on day 8 and know that users usually unlock the clan on day 8, you can infer that’s why you saw a spike. Great! Let’s put our focus here.Try moving the clan date earlier in the user experience. If you can identify key engagement moments in the game and offer those experiences before the typical drop in retention, you have a better chance at retaining users for a longer period. You can track the success of this decision on the App Analytics cohorts page by using both the retention and playtime metric for users who were exposed to this change. #3: Determine your milestones with the funnel pageTo boost user playtime and revenue, we need to optimize how users move from one milestone in the game to another. This is where funnels come in: with a custom events API on App Analytics, you can create custom funnels and immediately see how users progress through your milestones, or fall in the pitfalls between them. For example, you can create a level funnel that shows how many users started level 1, then progressed to level 2, and so on.Optimizing your in-app purchase flowTo best understand your user journey in action, define exactly what you’re interested in observing and create clear funnels based on that path. For example, if you’re looking to convert more users into paying users, you might want to understand user purchase patterns. You can create funnels that filter users who make a specific purchase, and follow whether users continue making purchases after that. Informed by your new funnels, you can start using trial and error to adjust your in-app purchases’ rewards or placements and increase your conversion rate.Optimizing engagementThe majority of users drop off in the first days of playing. So to improve user engagement, it’s essential to monitor the onboarding process. Using funnels, define each of your onboarding milestones and order them chronologically - for example, “registration,” “privacy policy,” “select avatar,” and more. This way, you can view the dropoff rate between them.These insights can inform exactly the tweaks your game needs to improve retention. We recommend you test your changes with A/B testing. In fact, you can dive even deeper. If you created a “select avatar” milestone, you can focus on specific avatars to gain more insight. If the conversion rate is much higher for players who chose a specific avatar, you can use this information to update your game accordingly.You can also assess behavior by level. For example, if suddenly on level 3 there’s a major drop in conversion rate, it’s an indication to dig deeper and understand the cause. Create a level funnel to understand how conversion changes incrementally. Try to find the origin - did this drop happen before level 3, or during it? All of this information will bring you closer to making the adjustments needed to improve engagement, boosting game performance.With any app, understanding user engagement is the key to understanding how to scale up your business. App Analytics ensures this process is easy and intuitive by providing different pagesto zoom in on user behavior and understand what’s affecting it. Learn more about App Analytics here.
    #app #analytics #ways #optimize #performance
    App Analytics: 3 ways to optimize performance by combining player and growth data
    Optimizing monetization and UA is key for growth - but they only get you so far if the app itself isn't optimized. In fact, the best way to maximize growth is by tying monetization and user acquisition data to user behavior. The more granular you can get, the more you can do to strengthen your business.Using ironSource's App Analytics solution to break down the data, here are 3 ways you can better optimize for growth.#1: Reconciling impressions vs playtimeThere’s typically a tradeoff between the number of impressions you serve users versus its effect on user engagement. That’s because game designers are determined to improve the user experience in the game, while monetization managers are focused on maximizing the revenue per user. The key to reconciling these pain points is to deep dive into each metric to find the sweet spot that maximizes both.For example, you can compare playtime versus impressions per user, side by side. Let’s say you want to increase impressions from a cap of 3 to 5. The first step is to assess whether this affects playtime, and make the best adjustments to ensure a positive user experience. If you see a significant drop in playtime, it’s a sign that users weren’t happy, and a lesson to return to the original impressions cap. However, if increasing the cap has no effect on playtime - you can generate revenue without affecting user experience.Now your data-informed conclusions can improve both user experience and profits. It’s not always easy to find the optimal point between them, but looking at them side by side with a tool like App Analytics can help to reconcile multiple interests.#2: Improving user engagement with cohortsTraditionally, retention analysis focuses on user churn. Going one step further - not just looking at if users return, but also understanding their behavior when they return - paints a much clearer picture about how to better retain users and find more places to monetize them.Assessing how users playTo encourage your players to keep going, first understand what’s already motivating them in the first place. If you have in-app purchase API data, simply split paying versus non-paying users and see how they compare in different metrics. Now you can better understand your paying users and how they differ from non-paying users - for example, if you see that session length is higher for paying or non-paying users, you can use this information to your advantage.Let’s say App Analytics shows there was a spike in your revenue on a cohorted day. You also see that your users were running out of the initial resources from their starter pack and hadn’t utilized ways to earn more, like clans and special events. Your profits spiked because users only had one choice - to keep playing, they had to use in-app purchases to gain more resources.Offering just the right reward amountTo determine a reward amount that continuously engages users, you need to first understand your users. Start by looking at impressions per user. The figure should be fairly consistent, especially if you’re capping impressions, but it’s still important to monitor this number for any technical issues.Let’s say you see a drop in impressions on day 5 on the App Analytics platform. You can dive deeper to understand why - it turns out that on day 5, users received a special daily bonus with a lot of gems. However, they acquired so much currency, they didn’t need to watch a rewarded video to move forward - which is why impressions were low that day.The best practice would be to decrease the reward on day 5, so that users stay in the sweet spot: engaged in the game but needing extra gems to progress.Maximizing your strengthsTo increase your user retention, you want to maximize exposure to events that engage users, like clans. To do that, look for areas in the game with increased playtime and determine whether it’s connected to an event. For example, if you see increased playtime on day 8 and know that users usually unlock the clan on day 8, you can infer that’s why you saw a spike. Great! Let’s put our focus here.Try moving the clan date earlier in the user experience. If you can identify key engagement moments in the game and offer those experiences before the typical drop in retention, you have a better chance at retaining users for a longer period. You can track the success of this decision on the App Analytics cohorts page by using both the retention and playtime metric for users who were exposed to this change. #3: Determine your milestones with the funnel pageTo boost user playtime and revenue, we need to optimize how users move from one milestone in the game to another. This is where funnels come in: with a custom events API on App Analytics, you can create custom funnels and immediately see how users progress through your milestones, or fall in the pitfalls between them. For example, you can create a level funnel that shows how many users started level 1, then progressed to level 2, and so on.Optimizing your in-app purchase flowTo best understand your user journey in action, define exactly what you’re interested in observing and create clear funnels based on that path. For example, if you’re looking to convert more users into paying users, you might want to understand user purchase patterns. You can create funnels that filter users who make a specific purchase, and follow whether users continue making purchases after that. Informed by your new funnels, you can start using trial and error to adjust your in-app purchases’ rewards or placements and increase your conversion rate.Optimizing engagementThe majority of users drop off in the first days of playing. So to improve user engagement, it’s essential to monitor the onboarding process. Using funnels, define each of your onboarding milestones and order them chronologically - for example, “registration,” “privacy policy,” “select avatar,” and more. This way, you can view the dropoff rate between them.These insights can inform exactly the tweaks your game needs to improve retention. We recommend you test your changes with A/B testing. In fact, you can dive even deeper. If you created a “select avatar” milestone, you can focus on specific avatars to gain more insight. If the conversion rate is much higher for players who chose a specific avatar, you can use this information to update your game accordingly.You can also assess behavior by level. For example, if suddenly on level 3 there’s a major drop in conversion rate, it’s an indication to dig deeper and understand the cause. Create a level funnel to understand how conversion changes incrementally. Try to find the origin - did this drop happen before level 3, or during it? All of this information will bring you closer to making the adjustments needed to improve engagement, boosting game performance.With any app, understanding user engagement is the key to understanding how to scale up your business. App Analytics ensures this process is easy and intuitive by providing different pagesto zoom in on user behavior and understand what’s affecting it. Learn more about App Analytics here. #app #analytics #ways #optimize #performance
    UNITY.COM
    App Analytics: 3 ways to optimize performance by combining player and growth data
    Optimizing monetization and UA is key for growth - but they only get you so far if the app itself isn't optimized. In fact, the best way to maximize growth is by tying monetization and user acquisition data to user behavior. The more granular you can get, the more you can do to strengthen your business.Using ironSource's App Analytics solution to break down the data, here are 3 ways you can better optimize for growth.#1: Reconciling impressions vs playtimeThere’s typically a tradeoff between the number of impressions you serve users versus its effect on user engagement (playtime). That’s because game designers are determined to improve the user experience in the game, while monetization managers are focused on maximizing the revenue per user. The key to reconciling these pain points is to deep dive into each metric to find the sweet spot that maximizes both.For example, you can compare playtime versus impressions per user, side by side. Let’s say you want to increase impressions from a cap of 3 to 5. The first step is to assess whether this affects playtime, and make the best adjustments to ensure a positive user experience. If you see a significant drop in playtime, it’s a sign that users weren’t happy, and a lesson to return to the original impressions cap. However, if increasing the cap has no effect on playtime - you can generate revenue without affecting user experience.Now your data-informed conclusions can improve both user experience and profits. It’s not always easy to find the optimal point between them, but looking at them side by side with a tool like App Analytics can help to reconcile multiple interests.#2: Improving user engagement with cohortsTraditionally, retention analysis focuses on user churn. Going one step further - not just looking at if users return, but also understanding their behavior when they return - paints a much clearer picture about how to better retain users and find more places to monetize them.Assessing how users playTo encourage your players to keep going, first understand what’s already motivating them in the first place. If you have in-app purchase API data, simply split paying versus non-paying users and see how they compare in different metrics (playtime, impressions per user, sessions, session length, etc.). Now you can better understand your paying users and how they differ from non-paying users - for example, if you see that session length is higher for paying or non-paying users, you can use this information to your advantage.Let’s say App Analytics shows there was a spike in your revenue on a cohorted day. You also see that your users were running out of the initial resources from their starter pack and hadn’t utilized ways to earn more, like clans and special events. Your profits spiked because users only had one choice - to keep playing, they had to use in-app purchases to gain more resources.Offering just the right reward amountTo determine a reward amount that continuously engages users, you need to first understand your users. Start by looking at impressions per user. The figure should be fairly consistent, especially if you’re capping impressions, but it’s still important to monitor this number for any technical issues.Let’s say you see a drop in impressions on day 5 on the App Analytics platform. You can dive deeper to understand why - it turns out that on day 5, users received a special daily bonus with a lot of gems. However, they acquired so much currency, they didn’t need to watch a rewarded video to move forward - which is why impressions were low that day.The best practice would be to decrease the reward on day 5, so that users stay in the sweet spot: engaged in the game but needing extra gems to progress.Maximizing your strengthsTo increase your user retention, you want to maximize exposure to events that engage users, like clans. To do that, look for areas in the game with increased playtime and determine whether it’s connected to an event. For example, if you see increased playtime on day 8 and know that users usually unlock the clan on day 8, you can infer that’s why you saw a spike. Great! Let’s put our focus here.Try moving the clan date earlier in the user experience. If you can identify key engagement moments in the game and offer those experiences before the typical drop in retention, you have a better chance at retaining users for a longer period. You can track the success of this decision on the App Analytics cohorts page by using both the retention and playtime metric for users who were exposed to this change. #3: Determine your milestones with the funnel pageTo boost user playtime and revenue, we need to optimize how users move from one milestone in the game to another. This is where funnels come in: with a custom events API on App Analytics, you can create custom funnels and immediately see how users progress through your milestones, or fall in the pitfalls between them. For example, you can create a level funnel that shows how many users started level 1, then progressed to level 2, and so on.Optimizing your in-app purchase flowTo best understand your user journey in action, define exactly what you’re interested in observing and create clear funnels based on that path. For example, if you’re looking to convert more users into paying users, you might want to understand user purchase patterns. You can create funnels that filter users who make a specific purchase, and follow whether users continue making purchases after that. Informed by your new funnels, you can start using trial and error to adjust your in-app purchases’ rewards or placements and increase your conversion rate.Optimizing engagement (level drop)The majority of users drop off in the first days of playing. So to improve user engagement, it’s essential to monitor the onboarding process. Using funnels, define each of your onboarding milestones and order them chronologically - for example, “registration,” “privacy policy,” “select avatar,” and more. This way, you can view the dropoff rate between them.These insights can inform exactly the tweaks your game needs to improve retention. We recommend you test your changes with A/B testing. In fact, you can dive even deeper. If you created a “select avatar” milestone, you can focus on specific avatars to gain more insight. If the conversion rate is much higher for players who chose a specific avatar, you can use this information to update your game accordingly.You can also assess behavior by level. For example, if suddenly on level 3 there’s a major drop in conversion rate, it’s an indication to dig deeper and understand the cause. Create a level funnel to understand how conversion changes incrementally. Try to find the origin - did this drop happen before level 3, or during it? All of this information will bring you closer to making the adjustments needed to improve engagement, boosting game performance.With any app, understanding user engagement is the key to understanding how to scale up your business. App Analytics ensures this process is easy and intuitive by providing different pages (explore, cohorts, and funnels) to zoom in on user behavior and understand what’s affecting it. Learn more about App Analytics here.
    0 Comments 0 Shares
  • Pick up these helpful tips on advanced profiling

    In June, we hosted a webinar featuring experts from Arm, the Unity Accelerate Solutions team, and SYBO Games, the creator of Subway Surfers. The resulting roundtable focused on profiling tips and strategies for mobile games, the business implications of poor performance, and how SYBO shipped a hit mobile game with 3 billion downloads to date.Let’s dive into some of the follow-up questions we didn’t have time to cover during the webinar. You can also watch the full recording.We hear a lot about the Unity Profiler in relation to CPU profiling, but not as much about the Profile Analyzer. Are there any plans to improve it or integrate it into the core Profiler toolset?There are no immediate plans to integrate the Profile Analyzer into the core Editor, but this might change as our profiling tools evolve.Does Unity have any plans to add an option for the GPU Usage Profiler module to appear in percentages like it does in milliseconds?That’s a great idea, and while we can’t say yes or no at the time of this blog post, it’s a request that’s been shared with our R&D teams for possible future consideration.Do you have plans for tackling “Application Not Responding”errors that are reported by the Google Play store and don’t contain any stack trace?Although we don’t have specific plans for tracking ANR without stack trace at the moment, we will consider it for the future roadmap.How can I share my feedback to help influence the future development of Unity’s profiling tools?You can keep track of upcoming features and share feedback via our product board and forums. We are also conducting a survey to learn more about our customers’ experience with the profiling tools. If you’ve used profiling tools beforeor are working on a project that requires optimization, we would love to get your input. The survey is designed to take no more than 5–10 minutes to complete.By participating, you’ll also have the chance to opt into a follow-up interview to share more feedback directly with the development team, including the opportunity to discuss potential prototypes of new features.Is there a good rule for determining what counts as a viable low-end device to target?A rule of thumb we hear from many Unity game developers is to target devices that are five years old at the time of your game’s release, as this helps to ensure the largest user base. But we also see teams reducing their release-date scope to devices that are only three years old if they’re aiming for higher graphical quality. A visually complex 3D application, for example, will have higher device requirements than a simple 2D application. This approach allows for a higher “min spec,” but reduces the size of the initial install base. It’s essentially a business decision: Will it cost more to develop for and support old devices than what your game will earn running on them?Sometimes the technical requirements of your game will dictate your minimum target specifications. So if your game uses up large amounts of texture memory even after optimization, but you absolutely cannot reduce quality or resolution, that probably rules out running on phones with insufficient memory. If your rendering solution requires compute shaders, that likely rules out devices with drivers that can’t support OpenGL ES 3.1, Metal, or Vulkan.It’s a good idea to look at market data for your priority target audience. For instance, mobile device specs can vary a lot between countries and regions. Remember to define some target “budgets” so that benchmarking goals for what’s acceptable are set prior to choosing low-end devices for testing.For live service games that will run for years, you’ll need to monitor their compatibility continuously and adapt over time based on both your actual user base and current devices on the market.Is it enough to test performance exclusively on low-end devices to ensure that the game will also run smoothly on high-end ones?It might be, if you have a uniform workload on all devices. However, you still need to consider variations across hardware from different vendors and/or driver versions.It’s common for graphically rich games to have tiers of graphical fidelity – the higher the visual tier, the more resources required on capable devices. This tier selection might be automatic, but increasingly, users themselves can control the choice via a graphical settings menu. For this style of development, you’ll need to test at least one “min spec” target device per feature/workload tier that your game supports.If your game detects the capabilities of the device it’s running on and adapts the graphics output as needed, it could perform differently on higher end devices. So be sure to test on a range of devices with the different quality levels you’ve programmed the title for.Note: In this section, we’ve specified whether the expert answering is from Arm or Unity.Do you have advice for detecting the power range of a device to support automatic quality settings, particularly for mobile?Arm: We typically see developers doing coarse capability binning based on CPU and GPU models, as well as the GPU shader core count. This is never perfect, but it’s “about right.” A lot of studios collect live analytics from deployed devices, so they can supplement the automated binning with device-specific opt-in/opt-out to work around point issues where the capability binning isn’t accurate enough.As related to the previous question, for graphically rich content, we see a trend in mobile toward settings menus where users can choose to turn effects on or off, thereby allowing them to make performance choices that suit their preferences.Unity: Device memory and screen resolution are also important factors for choosing quality settings. Regarding textures, developers should be aware that Render Textures used by effects or post-processing can become a problem on devices with high resolution screens, but without a lot of memory to match.Given the breadth of configurations available, can you suggest a way to categorize devices to reduce the number of tiers you need to optimize for?Arm: The number of tiers your team optimizes for is really a game design and business decision, and should be based on how important pushing visual quality is to the value proposition of the game. For some genres it might not matter at all, but for others, users will have high expectations for the visual fidelity.Does the texture memory limit differ among models and brands of Android devices that have the same amount of total system memory?Arm: To a first-order approximation, we would expect the total amount of texture memory to be similar across vendors and hardware generations. There will be minor differences caused by memory layout and alignment restrictions, so it won’t be exactly the same.Is it CPU or GPU usage that contributes the most to overheating on mobile devices?Arm: It’s entirely content dependent. The CPU, GPU, or the DRAM can individually overheat a high-end device if pushed hard enough, even if you ignore the other two completely. The exact balance will vary based on the workload you are running.What tips can you give for profiling on devices that have thermal throttling? What margin would you target to avoid thermal throttling?Arm: Optimizing for frame time can be misleading on Android because devices will constantly adjust frequency to optimize energy usage, making frame time an incomplete measure by itself. Preferably, monitor CPU and GPU cycles per frame, as well as GPU memory bandwidth per frame, to get some value that is independent of frequency. The cycle target you need will depend on each device’s chip design, so you’ll need to experiment.Any optimization helps when it comes to managing power consumption, even if it doesn’t directly improve frame rate. For example, reducing CPU cycles will reduce thermal load even if the CPU isn’t the critical path for your game.Beyond that, optimizing memory bandwidth is one of the biggest savings you can make. Accessing DRAM is orders of magnitude more expensive than accessing local data on-chip, so watch your triangle budget and keep data types in memory as small as possible.Unity: To limit the impact of CPU clock frequency on the performance metrics, we recommend trying to run at a consistent temperature. There are a couple of approaches for doing this:Run warm: Run the device for a while so that it reaches a stable warm state before profiling.Run cool: Leave the device to cool for a while before profiling. This strategy can eliminate confusion and inconsistency in profiling sessions by taking captures that are unlikely to be thermally throttled. However, such captures will always represent the best case performance a user will see rather than what they might actually see after long play sessions. This strategy can also delay the time between profiling runs due to the need to wait for the cooling period first.With some hardware, you can fix the clock frequency for more stable performance metrics. However, this is not representative of most devices your users will be using, and will not report accurate real-world performance. Basically, it’s a handy technique if you are using a continuous integration setup to check for performance changes in your codebase over time.Any thoughts on Vulkan vs OpenGL ES 3 on Android? Vulkan is generally slower performance-wise. At the same time, many devices lack support for various features on ES3.Arm: Recent drivers and engine builds have vastly improved the quality of the Vulkan implementations available; so for an equivalent workload, there shouldn’t be a performance gap between OpenGL ES and Vulkan. The switch to Vulkan is picking up speed and we expect to see more people choosing Vulkan by default over the next year or two. If you have counterexamples of areas where Vulkan isn’t performing well, please get in touch with us. We’d love to hear from you.What tools can we use to monitor memory bandwidth?Arm: The Streamline Profiler in Arm Mobile Studio can measure bandwidth between Mali GPUs and the external DRAM.Should you split graphical assets by device tiers or device resolution?Arm: You can get the best result by retuning assets, but it’s expensive to do. Start by reducing resolution and frame rate, or disabling some optional post-processing effects.What is the best way to record performance metric statistics from our development build?Arm: You can use the Performance Advisor tool in Arm Mobile Studio to automatically capture and export performance metrics from the Mali GPUs, although this comes with a caveat: The generation of JSON reports requires a Professional Edition license.Unity: The Unity Profiler can be used to view common rendering metrics, such as vertex and triangle counts in the Rendering module. Plus you can include custom packages, such as System Metrics Mali, in your project to add low-level Mali GPU metrics to the Unity Profiler.What are your recommendations for profiling shader code?You need a GPU Profiler to do this. The one you choose depends on your target platform. For example, on iOS devices, Xcode’s GPU Profiler includes the Shader Profiler, which breaks down shader performance on a line-by-line basis.Arm Mobile Studio supports Mali Offline Compiler, a static analysis tool for shader code and compute kernels. This tool provides some overall performance estimates and recommendations for the Arm Mali GPU family.When profiling, the general rule is to test your game or app on the target device. With the industry moving toward more types of chipsets, how can developers profile and pinpoint issues on the many different hardware configurations in a reasonable amount of time?The proliferation of chipsets is primarily a concern on desktop platforms. There are a limited number of hardware architectures to test for console games. On mobile, there’s Apple’s A Series for iOS devices and a range of Arm and Qualcomm architectures for Android – but selecting a manageable list of representative mobile devices is pretty straightforward.On desktop it’s trickier because there’s a wide range of available chipsets and architectures, and buying Macs and PCs for testing can be expensive. Our best advice is to do what you can. No studio has infinite time and money for testing. We generally wouldn’t expect any huge surprises when comparing performance between an Intel x86 CPU and a similarly specced AMD processor, for instance. As long as the game performs comfortably on your minimum spec machine, you should be reasonably confident about other machines. It’s also worth considering using analytics, such as Unity Analytics, to record frame rates, system specs, and player options’ settings to identify hotspots or problematic configurations.We’re seeing more studios move to using at least some level of automated testing for regular on-device profiling, with summary stats published where the whole team can keep an eye on performance across the range of target devices. With well-designed test scenes, this can usually be made into a mechanical process that’s suited for automation, so you don’t need an experienced technical artist or QA tester running builds through the process manually.Do you ever see performance issues on high-end devices that don’t occur on the low-end ones?It’s uncommon, but we have seen it. Often the issue lies in how the project is configured, such as with the use of fancy shaders and high-res textures on high-end devices, which can put extra pressure on the GPU or memory. Sometimes a high-end mobile device or console will use a high-res phone screen or 4K TV output as a selling point but not necessarily have enough GPU power or memory to live up to that promise without further optimization.If you make use of the current versions of the C# Job System, verify whether there’s a job scheduling overhead that scales with the number of worker threads, which in turn, scales with the number of CPU cores. This can result in code that runs more slowly on a 64+ core Threadripper™ than on a modest 4-core or 8-core CPU. This issue will be addressed in future versions of Unity, but in the meantime, try limiting the number of job worker threads by setting JobsUtility.JobWorkerCount.What are some pointers for setting a good frame budget?Most of the time when we talk about frame budgets, we’re talking about the overall time budget for the frame. You calculate 1000/target frames per secondto get your frame budget: 33.33 ms for 30 fps, 16.66 ms for 60 fps, 8.33 ms for 120 Hz, etc. Reduce that number by around 35% if you’re on mobile to give the chips a chance to cool down between each frame. Dividing the budget up to get specific sub-budgets for different features and/or systems is probably overkill except for projects with very specific, predictable systems, or those that make heavy use of Time Slicing.Generally, profiling is the process of finding the biggest bottlenecks – and therefore, the biggest potential performance gains. So rather than saying, “Physics is taking 1.2 ms when the budget only allows for 1 ms,” you might look at a frame and say, “Rendering is taking 6 ms, making it the biggest main thread CPU cost in the frame. How can we reduce that?”It seems like profiling early and often is still not common knowledge. What are your thoughts on why this might be the case?Building, releasing, promoting, and managing a game is difficult work on multiple fronts. So there will always be numerous priorities vying for a developer’s attention, and profiling can fall by the wayside. They know it’s something they should do, but perhaps they’re unfamiliar with the tools and don’t feel like they have time to learn. Or, they don’t know how to fit profiling into their workflows because they’re pushed toward completing features rather than performance optimization.Just as with bugs and technical debt, performance issues are cheaper and less risky to address early on, rather than later in a project’s development cycle. Our focus is on helping to demystify profiling tools and techniques for those developers who are unfamiliar with them. That’s what the profiling e-book and its related blog post and webinar aim to support.Is there a way to exclude certain methods from instrumentation or include only specific methods when using Deep Profiling in the Unity Profiler? When using a lot of async/await tasks, we create large stack traces, but how can we avoid slowing down both the client and the Profiler when Deep Profiling?You can enable Allocation call stacks to see the full call stacks that lead to managed allocations. Additionally, you can – and should! – manually instrument long-running methods and processes by sprinkling ProfilerMarkers throughout your code. There’s currently no way to automatically enable Deep Profiling or disable profiling entirely in specific parts of your application. But manually adding ProfilerMarkers and enabling Allocation call stacks when required can help you dig down into problem areas without having to resort to Deep Profiling.As of Unity 2022.2, you can also use our IgnoredByDeepProfilerAttribute to prevent the Unity Profiler from capturing method calls. Just add the IgnoredByDeepProfiler attribute to classes, structures, and methods.Where can I find more information on Deep Profiling in Unity?Deep Profiling is covered in our Profiler documentation. Then there’s the most in-depth, single resource for profiling information, the Ultimate Guide to profiling Unity games e-book, which links to relevant documentation and other resources throughout.Is it correct that Deep Profiling is only useful for the Allocations Profiler and that it skews results so much that it’s not useful for finding hitches in the game?Deep Profiling can be used to find the specific causes of managed allocations, although Allocation call stacks can do the same thing with less overhead, overall. At the same time, Deep Profiling can be helpful for quickly investigating why one specific ProfilerMarker seems to be taking so long, as it’s more convenient to enable than to add numerous ProfilerMarkers to your scripts and rebuild your game. But yes, it does skew performance quite heavily and so shouldn’t be enabled for general profiling.Is VSync worth setting to every VBlank? My mobile game runs at a very low fps when it’s disabled.Mobile devices force VSync to be enabled at a driver/hardware level, so disabling it in Unity’s Quality settings shouldn’t make any difference on those platforms. We haven’t heard of a case where disabling VSync negatively affects performance. Try taking a profile capture with VSync enabled, along with another capture of the same scene but with VSync disabled. Then compare the captures using Profile Analyzer to try to understand why the performance is so different.How can you determine if the main thread is waiting for the GPU and not the other way around?This is covered in the Ultimate Guide to profiling Unity games. You can also get more information in the blog post, Detecting performance bottlenecks with Unity Frame Timing Manager.Generally speaking, the telltale sign is that the main thread waits for the Render thread while the Render thread waits for the GPU. The specific marker names will differ depending on your target platform and graphics API, but you should look out for markers with names such as “PresentFrame” or “WaitForPresent.”Is there a solid process for finding memory leaks in profiling?Use the Memory Profiler to compare memory snapshots and check for leaks. For example, you can take a snapshot in your main menu, enter your game and then quit, go back to the main menu, and take a second snapshot. Comparing these two will tell you whether any objects/allocations from the game are still hanging around in memory.Does it make sense to optimize and rewrite part of the code for the DOTS system, for mobile devices including VR/AR? Do you use this system in your projects?A number of game projects now make use of parts of the Data-Oriented Technology Stack. Native Containers, the C# Job System, Mathematics, and the Burst compilerare all fully supported packages that you can use right away to write optimal, parallelized, high-performance C#code to improve your project’s CPU performance.A smaller number of projects are also using Entities and associated packages, such as the Hybrid Renderer, Unity Physics, and NetCode. However, at this time, the packages listed are experimental, and using them involves accepting a degree of technical risk. This risk derives from an API that is still evolving, missing or incomplete features, as well as the engineering learning curve required to understand Data-Oriented Designto get the most out of Unity’s Entity Component System. Unity engineer Steve McGreal wrote a guide on DOTS best practices, which includes some DOD fundamentals and tips for improving ECS performance.How do you go about setting limits on SetPass calls or shader complexity? Can you even set limits beforehand?Rendering is a complex process and there is no practical way to set a hard limit on the maximum number of SetPass calls or a metric for shader complexity. Even on a fixed hardware platform, such as a single console, the limits will depend on what kind of scene you want to render, and what other work is happening on the CPU and GPU during a frame.That’s why the rule on when to profile is “early and often.” Teams tend to create a “vertical slice” demo early on during production – usually a short burst of gameplay developed to the level of visual fidelity intended for the final game. This is your first opportunity to profile rendering and figure out what optimizations and limits might be needed. The profiling process should be repeated every time a new area or other major piece of visual content is added.Here are additional resources for learning about performance optimization:BlogsOptimize your mobile game performance: Expert tips on graphics and assetsOptimize your mobile game performance: Expert tips on physics, UI, and audio settingsOptimize your mobile game performance: Expert tips on profiling, memory, and code architecture from Unity’s top engineersExpert tips on optimizing your game graphics for consolesProfiling in Unity 2021 LTS: What, when, and howHow-to pagesProfiling and debugging toolsHow to profile memory in UnityBest practices for profiling game performanceE-booksOptimize your console and PC game performanceOptimize your mobile game performanceUltimate guide to profiling Unity gamesLearn tutorialsProfiling CPU performance in Android builds with Android StudioProfiling applications – Made with UnityEven more advanced technical content is coming soon – but in the meantime, please feel free to suggest topics for us to cover on the forum and check out the full roundtable webinar recording.
    #pick #these #helpful #tips #advanced
    Pick up these helpful tips on advanced profiling
    In June, we hosted a webinar featuring experts from Arm, the Unity Accelerate Solutions team, and SYBO Games, the creator of Subway Surfers. The resulting roundtable focused on profiling tips and strategies for mobile games, the business implications of poor performance, and how SYBO shipped a hit mobile game with 3 billion downloads to date.Let’s dive into some of the follow-up questions we didn’t have time to cover during the webinar. You can also watch the full recording.We hear a lot about the Unity Profiler in relation to CPU profiling, but not as much about the Profile Analyzer. Are there any plans to improve it or integrate it into the core Profiler toolset?There are no immediate plans to integrate the Profile Analyzer into the core Editor, but this might change as our profiling tools evolve.Does Unity have any plans to add an option for the GPU Usage Profiler module to appear in percentages like it does in milliseconds?That’s a great idea, and while we can’t say yes or no at the time of this blog post, it’s a request that’s been shared with our R&D teams for possible future consideration.Do you have plans for tackling “Application Not Responding”errors that are reported by the Google Play store and don’t contain any stack trace?Although we don’t have specific plans for tracking ANR without stack trace at the moment, we will consider it for the future roadmap.How can I share my feedback to help influence the future development of Unity’s profiling tools?You can keep track of upcoming features and share feedback via our product board and forums. We are also conducting a survey to learn more about our customers’ experience with the profiling tools. If you’ve used profiling tools beforeor are working on a project that requires optimization, we would love to get your input. The survey is designed to take no more than 5–10 minutes to complete.By participating, you’ll also have the chance to opt into a follow-up interview to share more feedback directly with the development team, including the opportunity to discuss potential prototypes of new features.Is there a good rule for determining what counts as a viable low-end device to target?A rule of thumb we hear from many Unity game developers is to target devices that are five years old at the time of your game’s release, as this helps to ensure the largest user base. But we also see teams reducing their release-date scope to devices that are only three years old if they’re aiming for higher graphical quality. A visually complex 3D application, for example, will have higher device requirements than a simple 2D application. This approach allows for a higher “min spec,” but reduces the size of the initial install base. It’s essentially a business decision: Will it cost more to develop for and support old devices than what your game will earn running on them?Sometimes the technical requirements of your game will dictate your minimum target specifications. So if your game uses up large amounts of texture memory even after optimization, but you absolutely cannot reduce quality or resolution, that probably rules out running on phones with insufficient memory. If your rendering solution requires compute shaders, that likely rules out devices with drivers that can’t support OpenGL ES 3.1, Metal, or Vulkan.It’s a good idea to look at market data for your priority target audience. For instance, mobile device specs can vary a lot between countries and regions. Remember to define some target “budgets” so that benchmarking goals for what’s acceptable are set prior to choosing low-end devices for testing.For live service games that will run for years, you’ll need to monitor their compatibility continuously and adapt over time based on both your actual user base and current devices on the market.Is it enough to test performance exclusively on low-end devices to ensure that the game will also run smoothly on high-end ones?It might be, if you have a uniform workload on all devices. However, you still need to consider variations across hardware from different vendors and/or driver versions.It’s common for graphically rich games to have tiers of graphical fidelity – the higher the visual tier, the more resources required on capable devices. This tier selection might be automatic, but increasingly, users themselves can control the choice via a graphical settings menu. For this style of development, you’ll need to test at least one “min spec” target device per feature/workload tier that your game supports.If your game detects the capabilities of the device it’s running on and adapts the graphics output as needed, it could perform differently on higher end devices. So be sure to test on a range of devices with the different quality levels you’ve programmed the title for.Note: In this section, we’ve specified whether the expert answering is from Arm or Unity.Do you have advice for detecting the power range of a device to support automatic quality settings, particularly for mobile?Arm: We typically see developers doing coarse capability binning based on CPU and GPU models, as well as the GPU shader core count. This is never perfect, but it’s “about right.” A lot of studios collect live analytics from deployed devices, so they can supplement the automated binning with device-specific opt-in/opt-out to work around point issues where the capability binning isn’t accurate enough.As related to the previous question, for graphically rich content, we see a trend in mobile toward settings menus where users can choose to turn effects on or off, thereby allowing them to make performance choices that suit their preferences.Unity: Device memory and screen resolution are also important factors for choosing quality settings. Regarding textures, developers should be aware that Render Textures used by effects or post-processing can become a problem on devices with high resolution screens, but without a lot of memory to match.Given the breadth of configurations available, can you suggest a way to categorize devices to reduce the number of tiers you need to optimize for?Arm: The number of tiers your team optimizes for is really a game design and business decision, and should be based on how important pushing visual quality is to the value proposition of the game. For some genres it might not matter at all, but for others, users will have high expectations for the visual fidelity.Does the texture memory limit differ among models and brands of Android devices that have the same amount of total system memory?Arm: To a first-order approximation, we would expect the total amount of texture memory to be similar across vendors and hardware generations. There will be minor differences caused by memory layout and alignment restrictions, so it won’t be exactly the same.Is it CPU or GPU usage that contributes the most to overheating on mobile devices?Arm: It’s entirely content dependent. The CPU, GPU, or the DRAM can individually overheat a high-end device if pushed hard enough, even if you ignore the other two completely. The exact balance will vary based on the workload you are running.What tips can you give for profiling on devices that have thermal throttling? What margin would you target to avoid thermal throttling?Arm: Optimizing for frame time can be misleading on Android because devices will constantly adjust frequency to optimize energy usage, making frame time an incomplete measure by itself. Preferably, monitor CPU and GPU cycles per frame, as well as GPU memory bandwidth per frame, to get some value that is independent of frequency. The cycle target you need will depend on each device’s chip design, so you’ll need to experiment.Any optimization helps when it comes to managing power consumption, even if it doesn’t directly improve frame rate. For example, reducing CPU cycles will reduce thermal load even if the CPU isn’t the critical path for your game.Beyond that, optimizing memory bandwidth is one of the biggest savings you can make. Accessing DRAM is orders of magnitude more expensive than accessing local data on-chip, so watch your triangle budget and keep data types in memory as small as possible.Unity: To limit the impact of CPU clock frequency on the performance metrics, we recommend trying to run at a consistent temperature. There are a couple of approaches for doing this:Run warm: Run the device for a while so that it reaches a stable warm state before profiling.Run cool: Leave the device to cool for a while before profiling. This strategy can eliminate confusion and inconsistency in profiling sessions by taking captures that are unlikely to be thermally throttled. However, such captures will always represent the best case performance a user will see rather than what they might actually see after long play sessions. This strategy can also delay the time between profiling runs due to the need to wait for the cooling period first.With some hardware, you can fix the clock frequency for more stable performance metrics. However, this is not representative of most devices your users will be using, and will not report accurate real-world performance. Basically, it’s a handy technique if you are using a continuous integration setup to check for performance changes in your codebase over time.Any thoughts on Vulkan vs OpenGL ES 3 on Android? Vulkan is generally slower performance-wise. At the same time, many devices lack support for various features on ES3.Arm: Recent drivers and engine builds have vastly improved the quality of the Vulkan implementations available; so for an equivalent workload, there shouldn’t be a performance gap between OpenGL ES and Vulkan. The switch to Vulkan is picking up speed and we expect to see more people choosing Vulkan by default over the next year or two. If you have counterexamples of areas where Vulkan isn’t performing well, please get in touch with us. We’d love to hear from you.What tools can we use to monitor memory bandwidth?Arm: The Streamline Profiler in Arm Mobile Studio can measure bandwidth between Mali GPUs and the external DRAM.Should you split graphical assets by device tiers or device resolution?Arm: You can get the best result by retuning assets, but it’s expensive to do. Start by reducing resolution and frame rate, or disabling some optional post-processing effects.What is the best way to record performance metric statistics from our development build?Arm: You can use the Performance Advisor tool in Arm Mobile Studio to automatically capture and export performance metrics from the Mali GPUs, although this comes with a caveat: The generation of JSON reports requires a Professional Edition license.Unity: The Unity Profiler can be used to view common rendering metrics, such as vertex and triangle counts in the Rendering module. Plus you can include custom packages, such as System Metrics Mali, in your project to add low-level Mali GPU metrics to the Unity Profiler.What are your recommendations for profiling shader code?You need a GPU Profiler to do this. The one you choose depends on your target platform. For example, on iOS devices, Xcode’s GPU Profiler includes the Shader Profiler, which breaks down shader performance on a line-by-line basis.Arm Mobile Studio supports Mali Offline Compiler, a static analysis tool for shader code and compute kernels. This tool provides some overall performance estimates and recommendations for the Arm Mali GPU family.When profiling, the general rule is to test your game or app on the target device. With the industry moving toward more types of chipsets, how can developers profile and pinpoint issues on the many different hardware configurations in a reasonable amount of time?The proliferation of chipsets is primarily a concern on desktop platforms. There are a limited number of hardware architectures to test for console games. On mobile, there’s Apple’s A Series for iOS devices and a range of Arm and Qualcomm architectures for Android – but selecting a manageable list of representative mobile devices is pretty straightforward.On desktop it’s trickier because there’s a wide range of available chipsets and architectures, and buying Macs and PCs for testing can be expensive. Our best advice is to do what you can. No studio has infinite time and money for testing. We generally wouldn’t expect any huge surprises when comparing performance between an Intel x86 CPU and a similarly specced AMD processor, for instance. As long as the game performs comfortably on your minimum spec machine, you should be reasonably confident about other machines. It’s also worth considering using analytics, such as Unity Analytics, to record frame rates, system specs, and player options’ settings to identify hotspots or problematic configurations.We’re seeing more studios move to using at least some level of automated testing for regular on-device profiling, with summary stats published where the whole team can keep an eye on performance across the range of target devices. With well-designed test scenes, this can usually be made into a mechanical process that’s suited for automation, so you don’t need an experienced technical artist or QA tester running builds through the process manually.Do you ever see performance issues on high-end devices that don’t occur on the low-end ones?It’s uncommon, but we have seen it. Often the issue lies in how the project is configured, such as with the use of fancy shaders and high-res textures on high-end devices, which can put extra pressure on the GPU or memory. Sometimes a high-end mobile device or console will use a high-res phone screen or 4K TV output as a selling point but not necessarily have enough GPU power or memory to live up to that promise without further optimization.If you make use of the current versions of the C# Job System, verify whether there’s a job scheduling overhead that scales with the number of worker threads, which in turn, scales with the number of CPU cores. This can result in code that runs more slowly on a 64+ core Threadripper™ than on a modest 4-core or 8-core CPU. This issue will be addressed in future versions of Unity, but in the meantime, try limiting the number of job worker threads by setting JobsUtility.JobWorkerCount.What are some pointers for setting a good frame budget?Most of the time when we talk about frame budgets, we’re talking about the overall time budget for the frame. You calculate 1000/target frames per secondto get your frame budget: 33.33 ms for 30 fps, 16.66 ms for 60 fps, 8.33 ms for 120 Hz, etc. Reduce that number by around 35% if you’re on mobile to give the chips a chance to cool down between each frame. Dividing the budget up to get specific sub-budgets for different features and/or systems is probably overkill except for projects with very specific, predictable systems, or those that make heavy use of Time Slicing.Generally, profiling is the process of finding the biggest bottlenecks – and therefore, the biggest potential performance gains. So rather than saying, “Physics is taking 1.2 ms when the budget only allows for 1 ms,” you might look at a frame and say, “Rendering is taking 6 ms, making it the biggest main thread CPU cost in the frame. How can we reduce that?”It seems like profiling early and often is still not common knowledge. What are your thoughts on why this might be the case?Building, releasing, promoting, and managing a game is difficult work on multiple fronts. So there will always be numerous priorities vying for a developer’s attention, and profiling can fall by the wayside. They know it’s something they should do, but perhaps they’re unfamiliar with the tools and don’t feel like they have time to learn. Or, they don’t know how to fit profiling into their workflows because they’re pushed toward completing features rather than performance optimization.Just as with bugs and technical debt, performance issues are cheaper and less risky to address early on, rather than later in a project’s development cycle. Our focus is on helping to demystify profiling tools and techniques for those developers who are unfamiliar with them. That’s what the profiling e-book and its related blog post and webinar aim to support.Is there a way to exclude certain methods from instrumentation or include only specific methods when using Deep Profiling in the Unity Profiler? When using a lot of async/await tasks, we create large stack traces, but how can we avoid slowing down both the client and the Profiler when Deep Profiling?You can enable Allocation call stacks to see the full call stacks that lead to managed allocations. Additionally, you can – and should! – manually instrument long-running methods and processes by sprinkling ProfilerMarkers throughout your code. There’s currently no way to automatically enable Deep Profiling or disable profiling entirely in specific parts of your application. But manually adding ProfilerMarkers and enabling Allocation call stacks when required can help you dig down into problem areas without having to resort to Deep Profiling.As of Unity 2022.2, you can also use our IgnoredByDeepProfilerAttribute to prevent the Unity Profiler from capturing method calls. Just add the IgnoredByDeepProfiler attribute to classes, structures, and methods.Where can I find more information on Deep Profiling in Unity?Deep Profiling is covered in our Profiler documentation. Then there’s the most in-depth, single resource for profiling information, the Ultimate Guide to profiling Unity games e-book, which links to relevant documentation and other resources throughout.Is it correct that Deep Profiling is only useful for the Allocations Profiler and that it skews results so much that it’s not useful for finding hitches in the game?Deep Profiling can be used to find the specific causes of managed allocations, although Allocation call stacks can do the same thing with less overhead, overall. At the same time, Deep Profiling can be helpful for quickly investigating why one specific ProfilerMarker seems to be taking so long, as it’s more convenient to enable than to add numerous ProfilerMarkers to your scripts and rebuild your game. But yes, it does skew performance quite heavily and so shouldn’t be enabled for general profiling.Is VSync worth setting to every VBlank? My mobile game runs at a very low fps when it’s disabled.Mobile devices force VSync to be enabled at a driver/hardware level, so disabling it in Unity’s Quality settings shouldn’t make any difference on those platforms. We haven’t heard of a case where disabling VSync negatively affects performance. Try taking a profile capture with VSync enabled, along with another capture of the same scene but with VSync disabled. Then compare the captures using Profile Analyzer to try to understand why the performance is so different.How can you determine if the main thread is waiting for the GPU and not the other way around?This is covered in the Ultimate Guide to profiling Unity games. You can also get more information in the blog post, Detecting performance bottlenecks with Unity Frame Timing Manager.Generally speaking, the telltale sign is that the main thread waits for the Render thread while the Render thread waits for the GPU. The specific marker names will differ depending on your target platform and graphics API, but you should look out for markers with names such as “PresentFrame” or “WaitForPresent.”Is there a solid process for finding memory leaks in profiling?Use the Memory Profiler to compare memory snapshots and check for leaks. For example, you can take a snapshot in your main menu, enter your game and then quit, go back to the main menu, and take a second snapshot. Comparing these two will tell you whether any objects/allocations from the game are still hanging around in memory.Does it make sense to optimize and rewrite part of the code for the DOTS system, for mobile devices including VR/AR? Do you use this system in your projects?A number of game projects now make use of parts of the Data-Oriented Technology Stack. Native Containers, the C# Job System, Mathematics, and the Burst compilerare all fully supported packages that you can use right away to write optimal, parallelized, high-performance C#code to improve your project’s CPU performance.A smaller number of projects are also using Entities and associated packages, such as the Hybrid Renderer, Unity Physics, and NetCode. However, at this time, the packages listed are experimental, and using them involves accepting a degree of technical risk. This risk derives from an API that is still evolving, missing or incomplete features, as well as the engineering learning curve required to understand Data-Oriented Designto get the most out of Unity’s Entity Component System. Unity engineer Steve McGreal wrote a guide on DOTS best practices, which includes some DOD fundamentals and tips for improving ECS performance.How do you go about setting limits on SetPass calls or shader complexity? Can you even set limits beforehand?Rendering is a complex process and there is no practical way to set a hard limit on the maximum number of SetPass calls or a metric for shader complexity. Even on a fixed hardware platform, such as a single console, the limits will depend on what kind of scene you want to render, and what other work is happening on the CPU and GPU during a frame.That’s why the rule on when to profile is “early and often.” Teams tend to create a “vertical slice” demo early on during production – usually a short burst of gameplay developed to the level of visual fidelity intended for the final game. This is your first opportunity to profile rendering and figure out what optimizations and limits might be needed. The profiling process should be repeated every time a new area or other major piece of visual content is added.Here are additional resources for learning about performance optimization:BlogsOptimize your mobile game performance: Expert tips on graphics and assetsOptimize your mobile game performance: Expert tips on physics, UI, and audio settingsOptimize your mobile game performance: Expert tips on profiling, memory, and code architecture from Unity’s top engineersExpert tips on optimizing your game graphics for consolesProfiling in Unity 2021 LTS: What, when, and howHow-to pagesProfiling and debugging toolsHow to profile memory in UnityBest practices for profiling game performanceE-booksOptimize your console and PC game performanceOptimize your mobile game performanceUltimate guide to profiling Unity gamesLearn tutorialsProfiling CPU performance in Android builds with Android StudioProfiling applications – Made with UnityEven more advanced technical content is coming soon – but in the meantime, please feel free to suggest topics for us to cover on the forum and check out the full roundtable webinar recording. #pick #these #helpful #tips #advanced
    UNITY.COM
    Pick up these helpful tips on advanced profiling
    In June, we hosted a webinar featuring experts from Arm, the Unity Accelerate Solutions team, and SYBO Games, the creator of Subway Surfers. The resulting roundtable focused on profiling tips and strategies for mobile games, the business implications of poor performance, and how SYBO shipped a hit mobile game with 3 billion downloads to date.Let’s dive into some of the follow-up questions we didn’t have time to cover during the webinar. You can also watch the full recording.We hear a lot about the Unity Profiler in relation to CPU profiling, but not as much about the Profile Analyzer (available as a Unity package). Are there any plans to improve it or integrate it into the core Profiler toolset?There are no immediate plans to integrate the Profile Analyzer into the core Editor, but this might change as our profiling tools evolve.Does Unity have any plans to add an option for the GPU Usage Profiler module to appear in percentages like it does in milliseconds?That’s a great idea, and while we can’t say yes or no at the time of this blog post, it’s a request that’s been shared with our R&D teams for possible future consideration.Do you have plans for tackling “Application Not Responding” (ANR) errors that are reported by the Google Play store and don’t contain any stack trace?Although we don’t have specific plans for tracking ANR without stack trace at the moment, we will consider it for the future roadmap.How can I share my feedback to help influence the future development of Unity’s profiling tools?You can keep track of upcoming features and share feedback via our product board and forums. We are also conducting a survey to learn more about our customers’ experience with the profiling tools. If you’ve used profiling tools before (either daily or just once) or are working on a project that requires optimization, we would love to get your input. The survey is designed to take no more than 5–10 minutes to complete.By participating, you’ll also have the chance to opt into a follow-up interview to share more feedback directly with the development team, including the opportunity to discuss potential prototypes of new features.Is there a good rule for determining what counts as a viable low-end device to target?A rule of thumb we hear from many Unity game developers is to target devices that are five years old at the time of your game’s release, as this helps to ensure the largest user base. But we also see teams reducing their release-date scope to devices that are only three years old if they’re aiming for higher graphical quality. A visually complex 3D application, for example, will have higher device requirements than a simple 2D application. This approach allows for a higher “min spec,” but reduces the size of the initial install base. It’s essentially a business decision: Will it cost more to develop for and support old devices than what your game will earn running on them?Sometimes the technical requirements of your game will dictate your minimum target specifications. So if your game uses up large amounts of texture memory even after optimization, but you absolutely cannot reduce quality or resolution, that probably rules out running on phones with insufficient memory. If your rendering solution requires compute shaders, that likely rules out devices with drivers that can’t support OpenGL ES 3.1, Metal, or Vulkan.It’s a good idea to look at market data for your priority target audience. For instance, mobile device specs can vary a lot between countries and regions. Remember to define some target “budgets” so that benchmarking goals for what’s acceptable are set prior to choosing low-end devices for testing.For live service games that will run for years, you’ll need to monitor their compatibility continuously and adapt over time based on both your actual user base and current devices on the market.Is it enough to test performance exclusively on low-end devices to ensure that the game will also run smoothly on high-end ones?It might be, if you have a uniform workload on all devices. However, you still need to consider variations across hardware from different vendors and/or driver versions.It’s common for graphically rich games to have tiers of graphical fidelity – the higher the visual tier, the more resources required on capable devices. This tier selection might be automatic, but increasingly, users themselves can control the choice via a graphical settings menu. For this style of development, you’ll need to test at least one “min spec” target device per feature/workload tier that your game supports.If your game detects the capabilities of the device it’s running on and adapts the graphics output as needed, it could perform differently on higher end devices. So be sure to test on a range of devices with the different quality levels you’ve programmed the title for.Note: In this section, we’ve specified whether the expert answering is from Arm or Unity.Do you have advice for detecting the power range of a device to support automatic quality settings, particularly for mobile?Arm: We typically see developers doing coarse capability binning based on CPU and GPU models, as well as the GPU shader core count. This is never perfect, but it’s “about right.” A lot of studios collect live analytics from deployed devices, so they can supplement the automated binning with device-specific opt-in/opt-out to work around point issues where the capability binning isn’t accurate enough.As related to the previous question, for graphically rich content, we see a trend in mobile toward settings menus where users can choose to turn effects on or off, thereby allowing them to make performance choices that suit their preferences.Unity: Device memory and screen resolution are also important factors for choosing quality settings. Regarding textures, developers should be aware that Render Textures used by effects or post-processing can become a problem on devices with high resolution screens, but without a lot of memory to match.Given the breadth of configurations available (CPU, GPU, SOC, memory, mobile, desktop, console, etc.), can you suggest a way to categorize devices to reduce the number of tiers you need to optimize for?Arm: The number of tiers your team optimizes for is really a game design and business decision, and should be based on how important pushing visual quality is to the value proposition of the game. For some genres it might not matter at all, but for others, users will have high expectations for the visual fidelity.Does the texture memory limit differ among models and brands of Android devices that have the same amount of total system memory?Arm: To a first-order approximation, we would expect the total amount of texture memory to be similar across vendors and hardware generations. There will be minor differences caused by memory layout and alignment restrictions, so it won’t be exactly the same.Is it CPU or GPU usage that contributes the most to overheating on mobile devices?Arm: It’s entirely content dependent. The CPU, GPU, or the DRAM can individually overheat a high-end device if pushed hard enough, even if you ignore the other two completely. The exact balance will vary based on the workload you are running.What tips can you give for profiling on devices that have thermal throttling? What margin would you target to avoid thermal throttling (i.e., targeting 20 ms instead of 33 ms)?Arm: Optimizing for frame time can be misleading on Android because devices will constantly adjust frequency to optimize energy usage, making frame time an incomplete measure by itself. Preferably, monitor CPU and GPU cycles per frame, as well as GPU memory bandwidth per frame, to get some value that is independent of frequency. The cycle target you need will depend on each device’s chip design, so you’ll need to experiment.Any optimization helps when it comes to managing power consumption, even if it doesn’t directly improve frame rate. For example, reducing CPU cycles will reduce thermal load even if the CPU isn’t the critical path for your game.Beyond that, optimizing memory bandwidth is one of the biggest savings you can make. Accessing DRAM is orders of magnitude more expensive than accessing local data on-chip, so watch your triangle budget and keep data types in memory as small as possible.Unity: To limit the impact of CPU clock frequency on the performance metrics, we recommend trying to run at a consistent temperature. There are a couple of approaches for doing this:Run warm: Run the device for a while so that it reaches a stable warm state before profiling.Run cool: Leave the device to cool for a while before profiling. This strategy can eliminate confusion and inconsistency in profiling sessions by taking captures that are unlikely to be thermally throttled. However, such captures will always represent the best case performance a user will see rather than what they might actually see after long play sessions. This strategy can also delay the time between profiling runs due to the need to wait for the cooling period first.With some hardware, you can fix the clock frequency for more stable performance metrics. However, this is not representative of most devices your users will be using, and will not report accurate real-world performance. Basically, it’s a handy technique if you are using a continuous integration setup to check for performance changes in your codebase over time.Any thoughts on Vulkan vs OpenGL ES 3 on Android? Vulkan is generally slower performance-wise. At the same time, many devices lack support for various features on ES3.Arm: Recent drivers and engine builds have vastly improved the quality of the Vulkan implementations available; so for an equivalent workload, there shouldn’t be a performance gap between OpenGL ES and Vulkan (if there is, please let us know). The switch to Vulkan is picking up speed and we expect to see more people choosing Vulkan by default over the next year or two. If you have counterexamples of areas where Vulkan isn’t performing well, please get in touch with us. We’d love to hear from you.What tools can we use to monitor memory bandwidth (RAM <-> VRAM)?Arm: The Streamline Profiler in Arm Mobile Studio can measure bandwidth between Mali GPUs and the external DRAM (or system cache).Should you split graphical assets by device tiers or device resolution?Arm: You can get the best result by retuning assets, but it’s expensive to do. Start by reducing resolution and frame rate, or disabling some optional post-processing effects.What is the best way to record performance metric statistics from our development build?Arm: You can use the Performance Advisor tool in Arm Mobile Studio to automatically capture and export performance metrics from the Mali GPUs, although this comes with a caveat: The generation of JSON reports requires a Professional Edition license.Unity: The Unity Profiler can be used to view common rendering metrics, such as vertex and triangle counts in the Rendering module. Plus you can include custom packages, such as System Metrics Mali, in your project to add low-level Mali GPU metrics to the Unity Profiler.What are your recommendations for profiling shader code?You need a GPU Profiler to do this. The one you choose depends on your target platform. For example, on iOS devices, Xcode’s GPU Profiler includes the Shader Profiler, which breaks down shader performance on a line-by-line basis.Arm Mobile Studio supports Mali Offline Compiler, a static analysis tool for shader code and compute kernels. This tool provides some overall performance estimates and recommendations for the Arm Mali GPU family.When profiling, the general rule is to test your game or app on the target device(s). With the industry moving toward more types of chipsets (Apple M1, Arm, x86 by Intel, AMD, etc.), how can developers profile and pinpoint issues on the many different hardware configurations in a reasonable amount of time?The proliferation of chipsets is primarily a concern on desktop platforms. There are a limited number of hardware architectures to test for console games. On mobile, there’s Apple’s A Series for iOS devices and a range of Arm and Qualcomm architectures for Android – but selecting a manageable list of representative mobile devices is pretty straightforward.On desktop it’s trickier because there’s a wide range of available chipsets and architectures, and buying Macs and PCs for testing can be expensive. Our best advice is to do what you can. No studio has infinite time and money for testing. We generally wouldn’t expect any huge surprises when comparing performance between an Intel x86 CPU and a similarly specced AMD processor, for instance. As long as the game performs comfortably on your minimum spec machine, you should be reasonably confident about other machines. It’s also worth considering using analytics, such as Unity Analytics, to record frame rates, system specs, and player options’ settings to identify hotspots or problematic configurations.We’re seeing more studios move to using at least some level of automated testing for regular on-device profiling, with summary stats published where the whole team can keep an eye on performance across the range of target devices. With well-designed test scenes, this can usually be made into a mechanical process that’s suited for automation, so you don’t need an experienced technical artist or QA tester running builds through the process manually.Do you ever see performance issues on high-end devices that don’t occur on the low-end ones?It’s uncommon, but we have seen it. Often the issue lies in how the project is configured, such as with the use of fancy shaders and high-res textures on high-end devices, which can put extra pressure on the GPU or memory. Sometimes a high-end mobile device or console will use a high-res phone screen or 4K TV output as a selling point but not necessarily have enough GPU power or memory to live up to that promise without further optimization.If you make use of the current versions of the C# Job System, verify whether there’s a job scheduling overhead that scales with the number of worker threads, which in turn, scales with the number of CPU cores. This can result in code that runs more slowly on a 64+ core Threadripper™ than on a modest 4-core or 8-core CPU. This issue will be addressed in future versions of Unity, but in the meantime, try limiting the number of job worker threads by setting JobsUtility.JobWorkerCount.What are some pointers for setting a good frame budget?Most of the time when we talk about frame budgets, we’re talking about the overall time budget for the frame. You calculate 1000/target frames per second (fps) to get your frame budget: 33.33 ms for 30 fps, 16.66 ms for 60 fps, 8.33 ms for 120 Hz, etc. Reduce that number by around 35% if you’re on mobile to give the chips a chance to cool down between each frame. Dividing the budget up to get specific sub-budgets for different features and/or systems is probably overkill except for projects with very specific, predictable systems, or those that make heavy use of Time Slicing.Generally, profiling is the process of finding the biggest bottlenecks – and therefore, the biggest potential performance gains. So rather than saying, “Physics is taking 1.2 ms when the budget only allows for 1 ms,” you might look at a frame and say, “Rendering is taking 6 ms, making it the biggest main thread CPU cost in the frame. How can we reduce that?”It seems like profiling early and often is still not common knowledge. What are your thoughts on why this might be the case?Building, releasing, promoting, and managing a game is difficult work on multiple fronts. So there will always be numerous priorities vying for a developer’s attention, and profiling can fall by the wayside. They know it’s something they should do, but perhaps they’re unfamiliar with the tools and don’t feel like they have time to learn. Or, they don’t know how to fit profiling into their workflows because they’re pushed toward completing features rather than performance optimization.Just as with bugs and technical debt, performance issues are cheaper and less risky to address early on, rather than later in a project’s development cycle. Our focus is on helping to demystify profiling tools and techniques for those developers who are unfamiliar with them. That’s what the profiling e-book and its related blog post and webinar aim to support.Is there a way to exclude certain methods from instrumentation or include only specific methods when using Deep Profiling in the Unity Profiler? When using a lot of async/await tasks, we create large stack traces, but how can we avoid slowing down both the client and the Profiler when Deep Profiling?You can enable Allocation call stacks to see the full call stacks that lead to managed allocations (shown as magenta in the Unity CPU Profiler Timeline view). Additionally, you can – and should! – manually instrument long-running methods and processes by sprinkling ProfilerMarkers throughout your code. There’s currently no way to automatically enable Deep Profiling or disable profiling entirely in specific parts of your application. But manually adding ProfilerMarkers and enabling Allocation call stacks when required can help you dig down into problem areas without having to resort to Deep Profiling.As of Unity 2022.2, you can also use our IgnoredByDeepProfilerAttribute to prevent the Unity Profiler from capturing method calls. Just add the IgnoredByDeepProfiler attribute to classes, structures, and methods.Where can I find more information on Deep Profiling in Unity?Deep Profiling is covered in our Profiler documentation. Then there’s the most in-depth, single resource for profiling information, the Ultimate Guide to profiling Unity games e-book, which links to relevant documentation and other resources throughout.Is it correct that Deep Profiling is only useful for the Allocations Profiler and that it skews results so much that it’s not useful for finding hitches in the game?Deep Profiling can be used to find the specific causes of managed allocations, although Allocation call stacks can do the same thing with less overhead, overall. At the same time, Deep Profiling can be helpful for quickly investigating why one specific ProfilerMarker seems to be taking so long, as it’s more convenient to enable than to add numerous ProfilerMarkers to your scripts and rebuild your game. But yes, it does skew performance quite heavily and so shouldn’t be enabled for general profiling.Is VSync worth setting to every VBlank? My mobile game runs at a very low fps when it’s disabled.Mobile devices force VSync to be enabled at a driver/hardware level, so disabling it in Unity’s Quality settings shouldn’t make any difference on those platforms. We haven’t heard of a case where disabling VSync negatively affects performance. Try taking a profile capture with VSync enabled, along with another capture of the same scene but with VSync disabled. Then compare the captures using Profile Analyzer to try to understand why the performance is so different.How can you determine if the main thread is waiting for the GPU and not the other way around?This is covered in the Ultimate Guide to profiling Unity games. You can also get more information in the blog post, Detecting performance bottlenecks with Unity Frame Timing Manager.Generally speaking, the telltale sign is that the main thread waits for the Render thread while the Render thread waits for the GPU. The specific marker names will differ depending on your target platform and graphics API, but you should look out for markers with names such as “PresentFrame” or “WaitForPresent.”Is there a solid process for finding memory leaks in profiling?Use the Memory Profiler to compare memory snapshots and check for leaks. For example, you can take a snapshot in your main menu, enter your game and then quit, go back to the main menu, and take a second snapshot. Comparing these two will tell you whether any objects/allocations from the game are still hanging around in memory.Does it make sense to optimize and rewrite part of the code for the DOTS system, for mobile devices including VR/AR? Do you use this system in your projects?A number of game projects now make use of parts of the Data-Oriented Technology Stack (DOTS). Native Containers, the C# Job System, Mathematics, and the Burst compilerare all fully supported packages that you can use right away to write optimal, parallelized, high-performance C# (HPC#) code to improve your project’s CPU performance.A smaller number of projects are also using Entities and associated packages, such as the Hybrid Renderer, Unity Physics, and NetCode. However, at this time, the packages listed are experimental, and using them involves accepting a degree of technical risk. This risk derives from an API that is still evolving, missing or incomplete features, as well as the engineering learning curve required to understand Data-Oriented Design (DOD) to get the most out of Unity’s Entity Component System (ECS). Unity engineer Steve McGreal wrote a guide on DOTS best practices, which includes some DOD fundamentals and tips for improving ECS performance.How do you go about setting limits on SetPass calls or shader complexity? Can you even set limits beforehand?Rendering is a complex process and there is no practical way to set a hard limit on the maximum number of SetPass calls or a metric for shader complexity. Even on a fixed hardware platform, such as a single console, the limits will depend on what kind of scene you want to render, and what other work is happening on the CPU and GPU during a frame.That’s why the rule on when to profile is “early and often.” Teams tend to create a “vertical slice” demo early on during production – usually a short burst of gameplay developed to the level of visual fidelity intended for the final game. This is your first opportunity to profile rendering and figure out what optimizations and limits might be needed. The profiling process should be repeated every time a new area or other major piece of visual content is added.Here are additional resources for learning about performance optimization:BlogsOptimize your mobile game performance: Expert tips on graphics and assetsOptimize your mobile game performance: Expert tips on physics, UI, and audio settingsOptimize your mobile game performance: Expert tips on profiling, memory, and code architecture from Unity’s top engineersExpert tips on optimizing your game graphics for consolesProfiling in Unity 2021 LTS: What, when, and howHow-to pagesProfiling and debugging toolsHow to profile memory in UnityBest practices for profiling game performanceE-booksOptimize your console and PC game performanceOptimize your mobile game performanceUltimate guide to profiling Unity gamesLearn tutorialsProfiling CPU performance in Android builds with Android StudioProfiling applications – Made with UnityEven more advanced technical content is coming soon – but in the meantime, please feel free to suggest topics for us to cover on the forum and check out the full roundtable webinar recording.
    0 Comments 0 Shares
  • Made with Unity Monthly: August 2022 roundup

    With so many interesting and varied projects being shared with us at any given moment, whether via direct tags or the #MadeWithUnity and #UnityTips hashtags, it can be hard to keep up with all that’s happening within our community. Don’t worry, we’ve got you covered. Sit back, relax, and enjoy this roundup of highlights that showcase everything you need to know about what the community got up to last month.Each Monday, we celebrate a milestone hit by one of our creators. From new game launches to awards won, we are constantly in awe at your achievements!Throughout August we celebrated the launch of Lost in Play by Happy Juice Games, the launch of As Dusk Falls by INTERIOR/NIGHT, and Dot's Home by Rise-Home Stories Project for winning big at the Games for Change Awards!Tuesdays are dedicated to #UnityTips on Twitter, and last month Massive Monster, makers of Cult of the Lamb, took over @UnityGames to share tips on how to make your 2D Sprites work harder.Some other great tips that were shared include Ehsan Ehrari’s quick and easy way to neaten up your workflow if your layers end up getting messy and Sunny Valley Studio’s tip on how to fix holes in your shadows.We share tips on our Twitter channels every Tuesday, so keep tagging us and using the #UnityTips hashtag!We love seeing your works in progress, and each Friday we share the projects that have us searching for a playable demo.August was no exception! Rollerdrome by Roll 7 had us mesmerized with a peek under the hood at the prototype to final game transition, Grimm Tales made a pool of water look so refreshing that all we could think about was going for a swim, and François Martineau sent our imagination racing about what other great foes we’d encounter on our hero’s journey.Each time we browse through the #MadeWithUnity hashtag across social media, we’re always amazed at the creativity and love you bring to your projects. Keep sharing!Last month, the Unity YouTube saw a flurry of activity with two new entries into our Meet the Creator series and a sizzle reel for gamescom 2022.Want more? We have you covered with two amazing YouTube playlists you need to keep your eye on.We love #MadeWithUnityMade with Unity Game TrailersLast month on Twitch we:Sat down with INTERIOR/NIGHT, the team behind As Dusk Falls, to gain insights into their development: unique character pipelines that blend 2D and 3D, the use of Unity Timeline, their companion app, and more.Skated into the Rollerdrome with Roll_7 to look at level design, shaders, physics, and more.Spoke to Thomas Brush, creator of Father, who shared his approach to pitching to publishers, crowdfunding, and demoing.Don’t forget to follow us on Twitch and hit the notification bell so you never miss a stream. If you miss us live no sweat, we upload full streams to our YouTube playlist.We kicked off August with 40% off select Asset Store tools and packages to spark your imagination. Then, Daniel Zeller took over the @AssetStore Twitter to share tips on the Fluffy Grooming Tool, and so did Renaud Forestié from More Mountains, who offered insights on how you can use FEEL to level up your game.For even more on assets, see how the smaller teams behind popular game Sable and indie mobile business Tinytouchtales have used Asset Store resources to speed up game development and save time.Each Friday, we also feature beautiful assets made by our publisher community. Whether it’s something new, or a popular tool that has been around for a while, we love to see the assets in action. Check out some of what was shared in August below!InfiniGRASS by ArtnGameGPU Grass by Dan PhilipsScreen Ripple by Steven GerrardElemental Animations by Kevin IglesiasDo you want to show off your work? Make sure to use the #AssetStore hashtag!And finally, here’s a non-exhaustive list of Made with Unity games released in August. See any on the list that have already become new favorites?Big Ambitions, Hovgaard GamesThe Mortuary Assistant, DarkStone DigitalTwo Point Campus, Two Point StudiosStereo Boy, Main Gauche GamesFarthest Frontier, Crate EntertainmentLost in Play, Happy Juice GamesArcade Paradise, Nosebleed InteractiveCult of the Lamb, Massive MonsterRollerdrome, Roll7Cursed to Golf, Chuhai LabsMidnight Fight Express, Jacob DzwinelI Was a Teenage Exocolonist, Northway GamesORX, johnbellImmortality, Sam BarlowHalf MermaidTinykin, SplashteamThat’s a wrap for August! Want more as it happens? Don’t forget to follow us on social media.
    #made #with #unity #monthly #august
    Made with Unity Monthly: August 2022 roundup
    With so many interesting and varied projects being shared with us at any given moment, whether via direct tags or the #MadeWithUnity and #UnityTips hashtags, it can be hard to keep up with all that’s happening within our community. Don’t worry, we’ve got you covered. Sit back, relax, and enjoy this roundup of highlights that showcase everything you need to know about what the community got up to last month.Each Monday, we celebrate a milestone hit by one of our creators. From new game launches to awards won, we are constantly in awe at your achievements!Throughout August we celebrated the launch of Lost in Play by Happy Juice Games, the launch of As Dusk Falls by INTERIOR/NIGHT, and Dot's Home by Rise-Home Stories Project for winning big at the Games for Change Awards!Tuesdays are dedicated to #UnityTips on Twitter, and last month Massive Monster, makers of Cult of the Lamb, took over @UnityGames to share tips on how to make your 2D Sprites work harder.Some other great tips that were shared include Ehsan Ehrari’s quick and easy way to neaten up your workflow if your layers end up getting messy and Sunny Valley Studio’s tip on how to fix holes in your shadows.We share tips on our Twitter channels every Tuesday, so keep tagging us and using the #UnityTips hashtag!We love seeing your works in progress, and each Friday we share the projects that have us searching for a playable demo.August was no exception! Rollerdrome by Roll 7 had us mesmerized with a peek under the hood at the prototype to final game transition, Grimm Tales made a pool of water look so refreshing that all we could think about was going for a swim, and François Martineau sent our imagination racing about what other great foes we’d encounter on our hero’s journey.Each time we browse through the #MadeWithUnity hashtag across social media, we’re always amazed at the creativity and love you bring to your projects. Keep sharing!Last month, the Unity YouTube saw a flurry of activity with two new entries into our Meet the Creator series and a sizzle reel for gamescom 2022.Want more? We have you covered with two amazing YouTube playlists you need to keep your eye on.We love #MadeWithUnityMade with Unity Game TrailersLast month on Twitch we:Sat down with INTERIOR/NIGHT, the team behind As Dusk Falls, to gain insights into their development: unique character pipelines that blend 2D and 3D, the use of Unity Timeline, their companion app, and more.Skated into the Rollerdrome with Roll_7 to look at level design, shaders, physics, and more.Spoke to Thomas Brush, creator of Father, who shared his approach to pitching to publishers, crowdfunding, and demoing.Don’t forget to follow us on Twitch and hit the notification bell so you never miss a stream. If you miss us live no sweat, we upload full streams to our YouTube playlist.We kicked off August with 40% off select Asset Store tools and packages to spark your imagination. Then, Daniel Zeller took over the @AssetStore Twitter to share tips on the Fluffy Grooming Tool, and so did Renaud Forestié from More Mountains, who offered insights on how you can use FEEL to level up your game.For even more on assets, see how the smaller teams behind popular game Sable and indie mobile business Tinytouchtales have used Asset Store resources to speed up game development and save time.Each Friday, we also feature beautiful assets made by our publisher community. Whether it’s something new, or a popular tool that has been around for a while, we love to see the assets in action. Check out some of what was shared in August below!InfiniGRASS by ArtnGameGPU Grass by Dan PhilipsScreen Ripple by Steven GerrardElemental Animations by Kevin IglesiasDo you want to show off your work? Make sure to use the #AssetStore hashtag!And finally, here’s a non-exhaustive list of Made with Unity games released in August. See any on the list that have already become new favorites?Big Ambitions, Hovgaard GamesThe Mortuary Assistant, DarkStone DigitalTwo Point Campus, Two Point StudiosStereo Boy, Main Gauche GamesFarthest Frontier, Crate EntertainmentLost in Play, Happy Juice GamesArcade Paradise, Nosebleed InteractiveCult of the Lamb, Massive MonsterRollerdrome, Roll7Cursed to Golf, Chuhai LabsMidnight Fight Express, Jacob DzwinelI Was a Teenage Exocolonist, Northway GamesORX, johnbellImmortality, Sam BarlowHalf MermaidTinykin, SplashteamThat’s a wrap for August! Want more as it happens? Don’t forget to follow us on social media. #made #with #unity #monthly #august
    UNITY.COM
    Made with Unity Monthly: August 2022 roundup
    With so many interesting and varied projects being shared with us at any given moment, whether via direct tags or the #MadeWithUnity and #UnityTips hashtags, it can be hard to keep up with all that’s happening within our community. Don’t worry, we’ve got you covered. Sit back, relax, and enjoy this roundup of highlights that showcase everything you need to know about what the community got up to last month.Each Monday, we celebrate a milestone hit by one of our creators. From new game launches to awards won, we are constantly in awe at your achievements!Throughout August we celebrated the launch of Lost in Play by Happy Juice Games, the launch of As Dusk Falls by INTERIOR/NIGHT, and Dot's Home by Rise-Home Stories Project for winning big at the Games for Change Awards!Tuesdays are dedicated to #UnityTips on Twitter, and last month Massive Monster, makers of Cult of the Lamb, took over @UnityGames to share tips on how to make your 2D Sprites work harder (1,2,3,4,5).Some other great tips that were shared include Ehsan Ehrari’s quick and easy way to neaten up your workflow if your layers end up getting messy and Sunny Valley Studio’s tip on how to fix holes in your shadows.We share tips on our Twitter channels every Tuesday, so keep tagging us and using the #UnityTips hashtag!We love seeing your works in progress, and each Friday we share the projects that have us searching for a playable demo.August was no exception! Rollerdrome by Roll 7 had us mesmerized with a peek under the hood at the prototype to final game transition, Grimm Tales made a pool of water look so refreshing that all we could think about was going for a swim, and François Martineau sent our imagination racing about what other great foes we’d encounter on our hero’s journey.Each time we browse through the #MadeWithUnity hashtag across social media, we’re always amazed at the creativity and love you bring to your projects. Keep sharing!Last month, the Unity YouTube saw a flurry of activity with two new entries into our Meet the Creator series and a sizzle reel for gamescom 2022.Want more? We have you covered with two amazing YouTube playlists you need to keep your eye on.We love #MadeWithUnityMade with Unity Game TrailersLast month on Twitch we:Sat down with INTERIOR/NIGHT, the team behind As Dusk Falls, to gain insights into their development: unique character pipelines that blend 2D and 3D, the use of Unity Timeline, their companion app, and more.Skated into the Rollerdrome with Roll_7 to look at level design, shaders, physics, and more.Spoke to Thomas Brush, creator of Father, who shared his approach to pitching to publishers, crowdfunding, and demoing.Don’t forget to follow us on Twitch and hit the notification bell so you never miss a stream. If you miss us live no sweat, we upload full streams to our YouTube playlist.We kicked off August with 40% off select Asset Store tools and packages to spark your imagination. Then, Daniel Zeller took over the @AssetStore Twitter to share tips on the Fluffy Grooming Tool, and so did Renaud Forestié from More Mountains, who offered insights on how you can use FEEL to level up your game.For even more on assets, see how the smaller teams behind popular game Sable and indie mobile business Tinytouchtales have used Asset Store resources to speed up game development and save time.Each Friday, we also feature beautiful assets made by our publisher community. Whether it’s something new, or a popular tool that has been around for a while, we love to see the assets in action. Check out some of what was shared in August below!InfiniGRASS by ArtnGameGPU Grass by Dan PhilipsScreen Ripple by Steven GerrardElemental Animations by Kevin IglesiasDo you want to show off your work? Make sure to use the #AssetStore hashtag!And finally, here’s a non-exhaustive list of Made with Unity games released in August. See any on the list that have already become new favorites?Big Ambitions, Hovgaard Games (August 1)The Mortuary Assistant, DarkStone Digital (August 2)Two Point Campus, Two Point Studios (August 9)Stereo Boy, Main Gauche Games (August 9)Farthest Frontier, Crate Entertainment (August 9)Lost in Play, Happy Juice Games (August 10)Arcade Paradise, Nosebleed Interactive (August 11)Cult of the Lamb, Massive Monster (August 11)Rollerdrome, Roll7 (August 16)Cursed to Golf, Chuhai Labs (August 18)Midnight Fight Express, Jacob Dzwinel (August 23)I Was a Teenage Exocolonist, Northway Games (August 25)ORX, johnbell (August 30)Immortality, Sam BarlowHalf Mermaid (August 30)Tinykin, Splashteam (August 30)That’s a wrap for August! Want more as it happens? Don’t forget to follow us on social media.
    0 Comments 0 Shares
  • Clean up your code: How to create your own C# code style

    While there’s more than one way to format Unity C# code, agreeing on a consistent code style for your project enables your team to develop a clean, readable, and scalable codebase. In this blog, we provide some guidelines and examples you can use to develop and maintain your own code style guide.Please note that these are only recommendations based on those provided by Microsoft. This is your chance to get inspired and decide what works best for your team.Ideally, a Unity project should feel like it’s been developed by a single author, no matter how many developers actually work on it. A style guide can help unify your approach for creating a more cohesive codebase.It’s a good idea to follow industry standards wherever possible and browse through existing style guides as a starting point for creating your own. In partnership with internal and external Unity experts, we released a new e-book, Create a C# style guide: Write cleaner code that scales for inspiration, based on Microsoft’s comprehensive C# style.The Google C# style guide is another great resource for defining guidelines around naming, formatting, and commenting conventions. Again, there is no right or wrong method, but we chose to follow Microsoft standards for our own guide.Our e-book, along with an example C# file, are available for free. Both resources focus on the most common coding conventions you’ll encounter while developing in Unity. These are all, essentially, a subset of the Microsoft Framework Design guidelines, which include an extensive number of best practices beyond what we cover in this post.We recommend customizing the guidelines provided in our style guide to suit your team’s preferences. These preferences should be prioritized over our suggestions and the Microsoft Framework Design guidelines if they’re in conflict.The development of a style guide requires an upfront investment but will pay dividends later. For example, managing a single set of standards can reduce the time developers spend on ramping up if they move onto another project.Of course, consistency is key. If you follow these suggestions and need to modify your style guide in the future, a few find-and-replace operations can quickly migrate your codebase.Concentrate on creating a pragmatic style guide that fits your needs by covering the majority of day-to-day use cases. Don’t overengineer it by attempting to account for every single edge case from the start. The guide will evolve organically over time as your team iterates on it from project to project.Most style guides include basic formatting rules. Meanwhile, specific naming conventions, policy on use of namespaces, and strategies for classes are somewhat abstract areas that can be refined over time.Let’s look at some common formatting and naming conventions you might consider for your style guide.The two common indentation styles in C# are the Allman style, which places the opening curly braces on a new line, and the K&R style, or “one true brace style,” which keeps the opening brace on the same line as the previous header.In an effort to improve readability, we picked the Allman style for our guide, based on the Microsoft Framework Design guidelines:
    Whatever style you choose, ensure that every programmer on your team follows it.A guide should also indicate whether braces from nested multiline statements should be included. While removing braces in the following example won’t throw an error, it can be confusing to read. That’s why our guide recommends applying braces for clarity, even if they are optional.Something as simple as horizontal spacing can enhance your code’s appearance onscreen. While your personal formatting preferences can vary, here are a few recommendations from our style guide to improve overall readability:Add spaces to decrease code density:The extra whitespace can give a sense of visual separation between parts of a lineUse a single space after a comma, between function arguments.Don’t add a space after the parenthesis and function arguments.Don’t use spaces between a function name and parenthesis.Avoid spaces inside brackets.Use a single space before flow control conditions: Add a space between the flow comparison operator and the parentheses.Use a single space before and after comparison operators.Variables typically represent a state, so try to attribute clear and descriptive nouns to their names. You can then prefix booleans with a verbfor variables that must indicate a true or false value. Often they are the answer to a question such as, is the player running? Is the game over? Prefix them with a verb to clarify their meaning. This is often paired with a description or condition, e.g., isPlayerDead, isWalking, hasDamageMultiplier, etc.Since methods perform actions, a good rule of thumb is to start their names with a verb and add context as needed, e.g., GetDirection, FindTarget, and so on, based on the return type. If the method has a bool return type, it can also be framed as a question.Much like boolean variables themselves, prefix methods with a verb if they return a true-false condition. This phrases them in the form of a question, e.g., IsGameOver, HasStartedTurn.Several conventions exist for naming events and event handles. In our style guide, we name the event with a verb phrase,similar to a method. Choose a name that communicates the state change accurately.Use the present or past participle to indicate events “before” or “after.” For instance, specify OpeningDoor for an event before opening a door and DoorOpened for an event afterward.We also recommend that you don’t abbreviate names. While saving a few characters can feel like a productivity gain in the short term, what is obvious to you now might not be in a year’s time to another teammate. Your variable names should reveal their intent and be easy to pronounce. Single letter variables are fine for loops and math expressions, but otherwise, you should avoid abbreviations. Clarity is more important than any time saved from omitting a few vowels.At the same time, use one variable declaration per line; it’s less compact, but also less error prone and enhances readability. Avoid redundant names. If your class is called Player, you don’t need to create member variables called PlayerScore or PlayerTarget. Trim them down to Score or Target.In addition, avoid too many prefixes or special encoding.A practice highlighted in our guide is to prefix private member variables with an underscoreto differentiate them from local variables. Some style guides use prefixes for private member variables, constants, or static variables, so the name reveals more about the variable.However, it’s good practice to prefix interface names with a capital “I” and follow this with an adjective that describes the functionality. You can even prefix the event raising methodwith “On”: The subject that invokes the event usually does so from a method prefixed with “On,” e.g., OnOpeningDoor or OnDoorOpened.Camel case and Pascal case are common standards in use, compared to Snake or Kebab case, or Hungarian notations. Our guide recommends Pascal case for public fields, enums, classes, and methods, and Camel case for private variables, as this is common practice in Unity.There are many additional rules to consider outside of what’s covered here. The example guide and our new e-book, Create a C# style guide: Write cleaner code that scales, provide many more tips for better organization.The concept of clean code aims to make development more scalable by conforming to a set of production standards. A style guide should remove most of the guesswork developers would otherwise have regarding the conventions they should follow. Ultimately, this guide should help your team establish a consensus around your codebase to grow your project into a commercial-scale production.Just how comprehensive your style guide should be depends on your situation. It’s up to your team to decide if they want their guide to set rules for more abstract, intangible concepts. This could include rules for using namespaces, breaking down classes, or implementing directives like the #region directive. While #region can help you collapse and hide sections of code in C# files, making large files more manageable, it’s also an example of something that many developers consider to be code smells or anti-patterns. Therefore, you might want to avoid setting strict standards for these aspects of code styling. Not everything needs to be outlined in the guide – sometimes it’s enough to simply discuss and make decisions as a team.When we talked to the experts who helped create our guide, their main piece of advice was code readability above all else. Here are some pointers on how to achieve that:Use fewer arguments: Arguments can increase the complexity of your method. By reducing their number, you make methods easier to read and test.Avoid excessive overloading: You can generate an endless permutation of method overloads. Select the few that reflect how you’ll call the method, and then implement those. If you do overload a method, prevent confusion by making sure that each method signature has a distinct number of arguments.Avoid side effects: A method only needs to do what its name advertises. Avoid modifying anything outside of its scope. Pass in arguments by value instead of reference when possible. So when sending back results via the out or ref keyword, verify that’s the one thing you intend the method to accomplish. Though side effects are useful for certain tasks, they can lead to unintended consequences. Write a method without side effects to cut down on unexpected behavior.We hope that this blog helps you kick off the development of your own style guide. Learn more from our example C# file and brand new e-book where you can review our suggested rules and customize them to your team’s preferences.The specifics of individual rules are less important than having everyone agree to follow them consistently. When in doubt, rely on your team’s own evolving guide to settle any style disagreements. After all, this is a group effort.
    #clean #your #code #how #create
    Clean up your code: How to create your own C# code style
    While there’s more than one way to format Unity C# code, agreeing on a consistent code style for your project enables your team to develop a clean, readable, and scalable codebase. In this blog, we provide some guidelines and examples you can use to develop and maintain your own code style guide.Please note that these are only recommendations based on those provided by Microsoft. This is your chance to get inspired and decide what works best for your team.Ideally, a Unity project should feel like it’s been developed by a single author, no matter how many developers actually work on it. A style guide can help unify your approach for creating a more cohesive codebase.It’s a good idea to follow industry standards wherever possible and browse through existing style guides as a starting point for creating your own. In partnership with internal and external Unity experts, we released a new e-book, Create a C# style guide: Write cleaner code that scales for inspiration, based on Microsoft’s comprehensive C# style.The Google C# style guide is another great resource for defining guidelines around naming, formatting, and commenting conventions. Again, there is no right or wrong method, but we chose to follow Microsoft standards for our own guide.Our e-book, along with an example C# file, are available for free. Both resources focus on the most common coding conventions you’ll encounter while developing in Unity. These are all, essentially, a subset of the Microsoft Framework Design guidelines, which include an extensive number of best practices beyond what we cover in this post.We recommend customizing the guidelines provided in our style guide to suit your team’s preferences. These preferences should be prioritized over our suggestions and the Microsoft Framework Design guidelines if they’re in conflict.The development of a style guide requires an upfront investment but will pay dividends later. For example, managing a single set of standards can reduce the time developers spend on ramping up if they move onto another project.Of course, consistency is key. If you follow these suggestions and need to modify your style guide in the future, a few find-and-replace operations can quickly migrate your codebase.Concentrate on creating a pragmatic style guide that fits your needs by covering the majority of day-to-day use cases. Don’t overengineer it by attempting to account for every single edge case from the start. The guide will evolve organically over time as your team iterates on it from project to project.Most style guides include basic formatting rules. Meanwhile, specific naming conventions, policy on use of namespaces, and strategies for classes are somewhat abstract areas that can be refined over time.Let’s look at some common formatting and naming conventions you might consider for your style guide.The two common indentation styles in C# are the Allman style, which places the opening curly braces on a new line, and the K&R style, or “one true brace style,” which keeps the opening brace on the same line as the previous header.In an effort to improve readability, we picked the Allman style for our guide, based on the Microsoft Framework Design guidelines: Whatever style you choose, ensure that every programmer on your team follows it.A guide should also indicate whether braces from nested multiline statements should be included. While removing braces in the following example won’t throw an error, it can be confusing to read. That’s why our guide recommends applying braces for clarity, even if they are optional.Something as simple as horizontal spacing can enhance your code’s appearance onscreen. While your personal formatting preferences can vary, here are a few recommendations from our style guide to improve overall readability:Add spaces to decrease code density:The extra whitespace can give a sense of visual separation between parts of a lineUse a single space after a comma, between function arguments.Don’t add a space after the parenthesis and function arguments.Don’t use spaces between a function name and parenthesis.Avoid spaces inside brackets.Use a single space before flow control conditions: Add a space between the flow comparison operator and the parentheses.Use a single space before and after comparison operators.Variables typically represent a state, so try to attribute clear and descriptive nouns to their names. You can then prefix booleans with a verbfor variables that must indicate a true or false value. Often they are the answer to a question such as, is the player running? Is the game over? Prefix them with a verb to clarify their meaning. This is often paired with a description or condition, e.g., isPlayerDead, isWalking, hasDamageMultiplier, etc.Since methods perform actions, a good rule of thumb is to start their names with a verb and add context as needed, e.g., GetDirection, FindTarget, and so on, based on the return type. If the method has a bool return type, it can also be framed as a question.Much like boolean variables themselves, prefix methods with a verb if they return a true-false condition. This phrases them in the form of a question, e.g., IsGameOver, HasStartedTurn.Several conventions exist for naming events and event handles. In our style guide, we name the event with a verb phrase,similar to a method. Choose a name that communicates the state change accurately.Use the present or past participle to indicate events “before” or “after.” For instance, specify OpeningDoor for an event before opening a door and DoorOpened for an event afterward.We also recommend that you don’t abbreviate names. While saving a few characters can feel like a productivity gain in the short term, what is obvious to you now might not be in a year’s time to another teammate. Your variable names should reveal their intent and be easy to pronounce. Single letter variables are fine for loops and math expressions, but otherwise, you should avoid abbreviations. Clarity is more important than any time saved from omitting a few vowels.At the same time, use one variable declaration per line; it’s less compact, but also less error prone and enhances readability. Avoid redundant names. If your class is called Player, you don’t need to create member variables called PlayerScore or PlayerTarget. Trim them down to Score or Target.In addition, avoid too many prefixes or special encoding.A practice highlighted in our guide is to prefix private member variables with an underscoreto differentiate them from local variables. Some style guides use prefixes for private member variables, constants, or static variables, so the name reveals more about the variable.However, it’s good practice to prefix interface names with a capital “I” and follow this with an adjective that describes the functionality. You can even prefix the event raising methodwith “On”: The subject that invokes the event usually does so from a method prefixed with “On,” e.g., OnOpeningDoor or OnDoorOpened.Camel case and Pascal case are common standards in use, compared to Snake or Kebab case, or Hungarian notations. Our guide recommends Pascal case for public fields, enums, classes, and methods, and Camel case for private variables, as this is common practice in Unity.There are many additional rules to consider outside of what’s covered here. The example guide and our new e-book, Create a C# style guide: Write cleaner code that scales, provide many more tips for better organization.The concept of clean code aims to make development more scalable by conforming to a set of production standards. A style guide should remove most of the guesswork developers would otherwise have regarding the conventions they should follow. Ultimately, this guide should help your team establish a consensus around your codebase to grow your project into a commercial-scale production.Just how comprehensive your style guide should be depends on your situation. It’s up to your team to decide if they want their guide to set rules for more abstract, intangible concepts. This could include rules for using namespaces, breaking down classes, or implementing directives like the #region directive. While #region can help you collapse and hide sections of code in C# files, making large files more manageable, it’s also an example of something that many developers consider to be code smells or anti-patterns. Therefore, you might want to avoid setting strict standards for these aspects of code styling. Not everything needs to be outlined in the guide – sometimes it’s enough to simply discuss and make decisions as a team.When we talked to the experts who helped create our guide, their main piece of advice was code readability above all else. Here are some pointers on how to achieve that:Use fewer arguments: Arguments can increase the complexity of your method. By reducing their number, you make methods easier to read and test.Avoid excessive overloading: You can generate an endless permutation of method overloads. Select the few that reflect how you’ll call the method, and then implement those. If you do overload a method, prevent confusion by making sure that each method signature has a distinct number of arguments.Avoid side effects: A method only needs to do what its name advertises. Avoid modifying anything outside of its scope. Pass in arguments by value instead of reference when possible. So when sending back results via the out or ref keyword, verify that’s the one thing you intend the method to accomplish. Though side effects are useful for certain tasks, they can lead to unintended consequences. Write a method without side effects to cut down on unexpected behavior.We hope that this blog helps you kick off the development of your own style guide. Learn more from our example C# file and brand new e-book where you can review our suggested rules and customize them to your team’s preferences.The specifics of individual rules are less important than having everyone agree to follow them consistently. When in doubt, rely on your team’s own evolving guide to settle any style disagreements. After all, this is a group effort. #clean #your #code #how #create
    UNITY.COM
    Clean up your code: How to create your own C# code style
    While there’s more than one way to format Unity C# code, agreeing on a consistent code style for your project enables your team to develop a clean, readable, and scalable codebase. In this blog, we provide some guidelines and examples you can use to develop and maintain your own code style guide.Please note that these are only recommendations based on those provided by Microsoft. This is your chance to get inspired and decide what works best for your team.Ideally, a Unity project should feel like it’s been developed by a single author, no matter how many developers actually work on it. A style guide can help unify your approach for creating a more cohesive codebase.It’s a good idea to follow industry standards wherever possible and browse through existing style guides as a starting point for creating your own. In partnership with internal and external Unity experts, we released a new e-book, Create a C# style guide: Write cleaner code that scales for inspiration, based on Microsoft’s comprehensive C# style.The Google C# style guide is another great resource for defining guidelines around naming, formatting, and commenting conventions. Again, there is no right or wrong method, but we chose to follow Microsoft standards for our own guide.Our e-book, along with an example C# file, are available for free. Both resources focus on the most common coding conventions you’ll encounter while developing in Unity. These are all, essentially, a subset of the Microsoft Framework Design guidelines, which include an extensive number of best practices beyond what we cover in this post.We recommend customizing the guidelines provided in our style guide to suit your team’s preferences. These preferences should be prioritized over our suggestions and the Microsoft Framework Design guidelines if they’re in conflict.The development of a style guide requires an upfront investment but will pay dividends later. For example, managing a single set of standards can reduce the time developers spend on ramping up if they move onto another project.Of course, consistency is key. If you follow these suggestions and need to modify your style guide in the future, a few find-and-replace operations can quickly migrate your codebase.Concentrate on creating a pragmatic style guide that fits your needs by covering the majority of day-to-day use cases. Don’t overengineer it by attempting to account for every single edge case from the start. The guide will evolve organically over time as your team iterates on it from project to project.Most style guides include basic formatting rules. Meanwhile, specific naming conventions, policy on use of namespaces, and strategies for classes are somewhat abstract areas that can be refined over time.Let’s look at some common formatting and naming conventions you might consider for your style guide.The two common indentation styles in C# are the Allman style, which places the opening curly braces on a new line (also known as the BSD style from BSD Unix), and the K&R style, or “one true brace style,” which keeps the opening brace on the same line as the previous header.In an effort to improve readability, we picked the Allman style for our guide, based on the Microsoft Framework Design guidelines: Whatever style you choose, ensure that every programmer on your team follows it.A guide should also indicate whether braces from nested multiline statements should be included. While removing braces in the following example won’t throw an error, it can be confusing to read. That’s why our guide recommends applying braces for clarity, even if they are optional.Something as simple as horizontal spacing can enhance your code’s appearance onscreen. While your personal formatting preferences can vary, here are a few recommendations from our style guide to improve overall readability:Add spaces to decrease code density:The extra whitespace can give a sense of visual separation between parts of a lineUse a single space after a comma, between function arguments.Don’t add a space after the parenthesis and function arguments.Don’t use spaces between a function name and parenthesis.Avoid spaces inside brackets.Use a single space before flow control conditions: Add a space between the flow comparison operator and the parentheses.Use a single space before and after comparison operators.Variables typically represent a state, so try to attribute clear and descriptive nouns to their names. You can then prefix booleans with a verbfor variables that must indicate a true or false value. Often they are the answer to a question such as, is the player running? Is the game over? Prefix them with a verb to clarify their meaning. This is often paired with a description or condition, e.g., isPlayerDead, isWalking, hasDamageMultiplier, etc.Since methods perform actions, a good rule of thumb is to start their names with a verb and add context as needed, e.g., GetDirection, FindTarget, and so on, based on the return type. If the method has a bool return type, it can also be framed as a question.Much like boolean variables themselves, prefix methods with a verb if they return a true-false condition. This phrases them in the form of a question, e.g., IsGameOver, HasStartedTurn.Several conventions exist for naming events and event handles. In our style guide, we name the event with a verb phrase,similar to a method. Choose a name that communicates the state change accurately.Use the present or past participle to indicate events “before” or “after.” For instance, specify OpeningDoor for an event before opening a door and DoorOpened for an event afterward.We also recommend that you don’t abbreviate names. While saving a few characters can feel like a productivity gain in the short term, what is obvious to you now might not be in a year’s time to another teammate. Your variable names should reveal their intent and be easy to pronounce. Single letter variables are fine for loops and math expressions, but otherwise, you should avoid abbreviations. Clarity is more important than any time saved from omitting a few vowels.At the same time, use one variable declaration per line; it’s less compact, but also less error prone and enhances readability. Avoid redundant names. If your class is called Player, you don’t need to create member variables called PlayerScore or PlayerTarget. Trim them down to Score or Target.In addition, avoid too many prefixes or special encoding.A practice highlighted in our guide is to prefix private member variables with an underscore (_) to differentiate them from local variables. Some style guides use prefixes for private member variables (m_), constants (k_), or static variables (s_), so the name reveals more about the variable.However, it’s good practice to prefix interface names with a capital “I” and follow this with an adjective that describes the functionality. You can even prefix the event raising method (in the subject) with “On”: The subject that invokes the event usually does so from a method prefixed with “On,” e.g., OnOpeningDoor or OnDoorOpened.Camel case and Pascal case are common standards in use, compared to Snake or Kebab case, or Hungarian notations. Our guide recommends Pascal case for public fields, enums, classes, and methods, and Camel case for private variables, as this is common practice in Unity.There are many additional rules to consider outside of what’s covered here. The example guide and our new e-book, Create a C# style guide: Write cleaner code that scales, provide many more tips for better organization.The concept of clean code aims to make development more scalable by conforming to a set of production standards. A style guide should remove most of the guesswork developers would otherwise have regarding the conventions they should follow. Ultimately, this guide should help your team establish a consensus around your codebase to grow your project into a commercial-scale production.Just how comprehensive your style guide should be depends on your situation. It’s up to your team to decide if they want their guide to set rules for more abstract, intangible concepts. This could include rules for using namespaces, breaking down classes, or implementing directives like the #region directive (or not). While #region can help you collapse and hide sections of code in C# files, making large files more manageable, it’s also an example of something that many developers consider to be code smells or anti-patterns. Therefore, you might want to avoid setting strict standards for these aspects of code styling. Not everything needs to be outlined in the guide – sometimes it’s enough to simply discuss and make decisions as a team.When we talked to the experts who helped create our guide, their main piece of advice was code readability above all else. Here are some pointers on how to achieve that:Use fewer arguments: Arguments can increase the complexity of your method. By reducing their number, you make methods easier to read and test.Avoid excessive overloading: You can generate an endless permutation of method overloads. Select the few that reflect how you’ll call the method, and then implement those. If you do overload a method, prevent confusion by making sure that each method signature has a distinct number of arguments.Avoid side effects: A method only needs to do what its name advertises. Avoid modifying anything outside of its scope. Pass in arguments by value instead of reference when possible. So when sending back results via the out or ref keyword, verify that’s the one thing you intend the method to accomplish. Though side effects are useful for certain tasks, they can lead to unintended consequences. Write a method without side effects to cut down on unexpected behavior.We hope that this blog helps you kick off the development of your own style guide. Learn more from our example C# file and brand new e-book where you can review our suggested rules and customize them to your team’s preferences.The specifics of individual rules are less important than having everyone agree to follow them consistently. When in doubt, rely on your team’s own evolving guide to settle any style disagreements. After all, this is a group effort.
    0 Comments 0 Shares
  • PAX East 2025 - Made with Unity indies

    PAX East 2025 - Made with Unity indies
    #pax #east #made #with #unity
    PAX East 2025 - Made with Unity indies
    PAX East 2025 - Made with Unity indies #pax #east #made #with #unity
    WWW.YOUTUBE.COM
    PAX East 2025 - Made with Unity indies
    PAX East 2025 - Made with Unity indies
    0 Comments 0 Shares
  • Try the new UI Toolkit sample – now available on the Asset Store

    In Unity 2021 LTS, UI Toolkit offers a collection of features, resources, and tools to help you build and debug adaptive runtime UIs on a wide range of game applications and Editor extensions. Its intuitive workflow enables Unity creators in different roles – artists, programmers, and designers alike – to get started with UI development as quickly as possible.See our earlier blog post for an explanation of UI Toolkit’s main benefits, such as enhanced scalability and performance, already being leveraged by studios like Mechanistry for their game, Timberborn.While Unity UI remains the go-to solution for positioning and lighting UI in a 3D world or integrating with other Unity systems, UI Toolkit for runtime UI can already benefit game productions seeking performance and scalability as of Unity 2021 LTS. It’s particularly effective for Screen Space – Overlay UI, and scales well on a variety of screen resolutions.That’s why we’re excited to announce two new learning resources to better support UI development with UI Toolkit:UI Toolkit sample – Dragon Crashers: The demo is now available to download for free from the Asset Store.User interface design and implementation in Unity: This free e-book can be download from hereRead on to learn about some key features part of the UI Toolkit sample project.The UI Toolkit sample demonstrates how you can leverage UI Toolkit for your own applications. This demo involves a full-featured interface over a slice of the 2D project Dragon Crashers, a mini RPG, using the Unity 2021 LTS UI Toolkit workflow at runtime.Some of the actions illustrated in the sample project show you how to:Style with selectors in Unity style sheetfiles and use UXML templatesCreate custom controls, such as a circular meter or tabbed viewsCustomize the appearance of elements like sliders and toggle buttonsUse Render Texture for UI overlay effects, USS animations, seasonal themes, and moreTo try out the project after adding it to your assets, enter Play mode. Please note that UI Toolkit interfaces do not appear in the Scene view. Instead, you can view them in the Game view or UI Builder.The menu on the left helps you navigate the modal main menu screens. This vertical column of buttons provides access to the five modal screens that comprise the main menu.While some interactivity is possible, such as healing the characters by dragging available potions in the scene, gameplay has been kept to a minimum to ensure continued focus on the UI examples.Let’s take a closer look at the UIs in the menu bar:The home screen serves as a landing pad when launching the application. You can use this screen to play the game or receive simulated chat messages.The character screen involves a mix of GameObjects and UI elements. This is where you can explore each of the four Dragon Crashers characters. Use the stats, skills, and bio tabs to read the specific character details, and click on the inventory slots to add or remove items. The preview area shows a 2D lit and rigged character over a tiled background.The resources screen links to documentation, the forum, and other resources for making the most of UI Toolkit.The shop screen simulates an in-game store where you can purchase hard and soft currency, such as gold or gems, as well as virtual goods like healing potions. Each item in the shop screen is a separate VisualTreeAsset. UI Toolkit instantiates these assets at runtime; one for each ScriptableObject in the Resources/GameData.The mail screen is a front-end reader of fictitious messages that uses a tabbed menu to separate the inbox and deleted messages.The game screen is a mini version of the Dragon Crashers project that starts playing automatically. In this project, you’ll notice a few revised elements with UI Toolkit, such as a pause button, health bars, and the capacity to drag a healing potion element to your characters when they take damage.UI Toolkit enables you to build stable and consistent UIs for your entire project. At the same time, it provides flexible tools for adding your own design flourishes and details to further flesh out the game’s theme and style.Let’s go over some of the features used to refine the UI designs in the sample:Render Textures:UI Toolkit interfaces are rendered last in the render queue, meaning you can’t overlay other game graphics on top of a UI Toolkit UI. Render Textures provide a workaround to this limitation, making it possible to integrate in-game effects into UI Toolkit UIs. While these effects based on Render Textures should be used sparingly, you’ll still be able to afford sharp effects within the context of a fullscreen UI, without running gameplay. The following images show a number of Render Textures from the demo.Themes with Theme style sheets: TSS files are Asset files that are similar to regular USS files. They serve as a starting point for defining your own custom theme via USS selectors as well as property and variable settings. In the demo, we duplicated the default theme files and modified the copies to offer seasonal variations.Custom UI elements: Since designers are trained to think outside the box, UI Toolkit gives you plenty of room to customize or extend the standard library. The demo project highlights a few custom-built elements in the tabbed menus, slide toggles, and drop-down lists, plus a radial counter to demonstrate what UI artists are capable of alongside developers.USS transitions for animated UI state changes: Adding transitions to the menu screens can polish and smooth out your visuals. UI Toolkit makes this more straightforward with the Transition Animations property, part of the UI Builder’s Inspector. Adjust the Property, Duration, Easing, and Delay properties to set up the animation. Then simply change styles for UI Toolkit to apply the animated transition at runtime.Post-processing volume for a background blur: A popular effect in games is to blur a crowded gameplay scene to draw the player’s attention to a particular pop-up message or dialog window. You can achieve this effect by enabling Depth of Field in the Volume framework.We made sure that efficient workflows were used to fortify the UI. Here are a few recommendations for keeping the project well-organized:Consistent naming conventions: It’s important to adopt naming conventions that align with your visual elements and style sheets. Clear naming conventions not only maintain the hierarchy’s organization in UI Builder, they make it more accessible to your teammates, and keep the code clean and readable. More specifically, we suggest the Block Element Modifiernaming convention for visual elements and style sheets. Just at a glance, an element’s BEM naming can tell you what it does, how it appears, and how it relates to the other elements around it. See the following BEM naming examples:Responsive UI layout: Similar to web technologies, UI Toolkit offers the possibility of creating layouts where “child” visual elements adapt to the current available size inside their “parent” visual elements, and others where each element has an absolute position anchored to a reference point, akin to the Unity UI system. The sample uses both options as needed through the visual elements of the UI.PSD Importer: One of the most effective tools for creating the demo, PSD Importer allows artists to work in a master document without having to manually export every sprite separately. When changes are needed, they can be done in the original PSD file and updated automatically in Unity.ScriptableObjects: In order to focus on UI design and implementation, the sample project simulates backend data, such as in-app purchases and mail messages, using ScriptableObjects. You can conveniently customize this stand-in data from the Resources/GameData folder and use the example to create similar data assets, like inventory items and character or dialog data in UI Toolkit.Remember that with UI Toolkit, UI layouts and styles are decoupled from code. This means that rewriting the backend data can occur independently from the UI design. If your development team replaces those systems, the interface should continue to work.Additional tools used in the demo include particle systems created with the Built-in Particle System for special effects, and the 2D toolset, among others. Feel free to review the project via the Inspector to see how these different elements come into play.You can find reference art made by the UI artists under UI/Reference, as replicated in UI Builder. The whole process, from mockups to wireframes, is also documented in the e-book. Finally, all of the content in the sample can be added to your own Unity project.You can download the UI Toolkit sample – Dragon Crashers from the Asset Store. Once you’ve explored its different UI designs, please provide your feedback on the forum.Then be sure to check out our e-book, User interface design and implementation in Unity. Download
    #try #new #toolkit #sample #now
    Try the new UI Toolkit sample – now available on the Asset Store
    In Unity 2021 LTS, UI Toolkit offers a collection of features, resources, and tools to help you build and debug adaptive runtime UIs on a wide range of game applications and Editor extensions. Its intuitive workflow enables Unity creators in different roles – artists, programmers, and designers alike – to get started with UI development as quickly as possible.See our earlier blog post for an explanation of UI Toolkit’s main benefits, such as enhanced scalability and performance, already being leveraged by studios like Mechanistry for their game, Timberborn.While Unity UI remains the go-to solution for positioning and lighting UI in a 3D world or integrating with other Unity systems, UI Toolkit for runtime UI can already benefit game productions seeking performance and scalability as of Unity 2021 LTS. It’s particularly effective for Screen Space – Overlay UI, and scales well on a variety of screen resolutions.That’s why we’re excited to announce two new learning resources to better support UI development with UI Toolkit:UI Toolkit sample – Dragon Crashers: The demo is now available to download for free from the Asset Store.User interface design and implementation in Unity: This free e-book can be download from hereRead on to learn about some key features part of the UI Toolkit sample project.The UI Toolkit sample demonstrates how you can leverage UI Toolkit for your own applications. This demo involves a full-featured interface over a slice of the 2D project Dragon Crashers, a mini RPG, using the Unity 2021 LTS UI Toolkit workflow at runtime.Some of the actions illustrated in the sample project show you how to:Style with selectors in Unity style sheetfiles and use UXML templatesCreate custom controls, such as a circular meter or tabbed viewsCustomize the appearance of elements like sliders and toggle buttonsUse Render Texture for UI overlay effects, USS animations, seasonal themes, and moreTo try out the project after adding it to your assets, enter Play mode. Please note that UI Toolkit interfaces do not appear in the Scene view. Instead, you can view them in the Game view or UI Builder.The menu on the left helps you navigate the modal main menu screens. This vertical column of buttons provides access to the five modal screens that comprise the main menu.While some interactivity is possible, such as healing the characters by dragging available potions in the scene, gameplay has been kept to a minimum to ensure continued focus on the UI examples.Let’s take a closer look at the UIs in the menu bar:The home screen serves as a landing pad when launching the application. You can use this screen to play the game or receive simulated chat messages.The character screen involves a mix of GameObjects and UI elements. This is where you can explore each of the four Dragon Crashers characters. Use the stats, skills, and bio tabs to read the specific character details, and click on the inventory slots to add or remove items. The preview area shows a 2D lit and rigged character over a tiled background.The resources screen links to documentation, the forum, and other resources for making the most of UI Toolkit.The shop screen simulates an in-game store where you can purchase hard and soft currency, such as gold or gems, as well as virtual goods like healing potions. Each item in the shop screen is a separate VisualTreeAsset. UI Toolkit instantiates these assets at runtime; one for each ScriptableObject in the Resources/GameData.The mail screen is a front-end reader of fictitious messages that uses a tabbed menu to separate the inbox and deleted messages.The game screen is a mini version of the Dragon Crashers project that starts playing automatically. In this project, you’ll notice a few revised elements with UI Toolkit, such as a pause button, health bars, and the capacity to drag a healing potion element to your characters when they take damage.UI Toolkit enables you to build stable and consistent UIs for your entire project. At the same time, it provides flexible tools for adding your own design flourishes and details to further flesh out the game’s theme and style.Let’s go over some of the features used to refine the UI designs in the sample:Render Textures:UI Toolkit interfaces are rendered last in the render queue, meaning you can’t overlay other game graphics on top of a UI Toolkit UI. Render Textures provide a workaround to this limitation, making it possible to integrate in-game effects into UI Toolkit UIs. While these effects based on Render Textures should be used sparingly, you’ll still be able to afford sharp effects within the context of a fullscreen UI, without running gameplay. The following images show a number of Render Textures from the demo.Themes with Theme style sheets: TSS files are Asset files that are similar to regular USS files. They serve as a starting point for defining your own custom theme via USS selectors as well as property and variable settings. In the demo, we duplicated the default theme files and modified the copies to offer seasonal variations.Custom UI elements: Since designers are trained to think outside the box, UI Toolkit gives you plenty of room to customize or extend the standard library. The demo project highlights a few custom-built elements in the tabbed menus, slide toggles, and drop-down lists, plus a radial counter to demonstrate what UI artists are capable of alongside developers.USS transitions for animated UI state changes: Adding transitions to the menu screens can polish and smooth out your visuals. UI Toolkit makes this more straightforward with the Transition Animations property, part of the UI Builder’s Inspector. Adjust the Property, Duration, Easing, and Delay properties to set up the animation. Then simply change styles for UI Toolkit to apply the animated transition at runtime.Post-processing volume for a background blur: A popular effect in games is to blur a crowded gameplay scene to draw the player’s attention to a particular pop-up message or dialog window. You can achieve this effect by enabling Depth of Field in the Volume framework.We made sure that efficient workflows were used to fortify the UI. Here are a few recommendations for keeping the project well-organized:Consistent naming conventions: It’s important to adopt naming conventions that align with your visual elements and style sheets. Clear naming conventions not only maintain the hierarchy’s organization in UI Builder, they make it more accessible to your teammates, and keep the code clean and readable. More specifically, we suggest the Block Element Modifiernaming convention for visual elements and style sheets. Just at a glance, an element’s BEM naming can tell you what it does, how it appears, and how it relates to the other elements around it. See the following BEM naming examples:Responsive UI layout: Similar to web technologies, UI Toolkit offers the possibility of creating layouts where “child” visual elements adapt to the current available size inside their “parent” visual elements, and others where each element has an absolute position anchored to a reference point, akin to the Unity UI system. The sample uses both options as needed through the visual elements of the UI.PSD Importer: One of the most effective tools for creating the demo, PSD Importer allows artists to work in a master document without having to manually export every sprite separately. When changes are needed, they can be done in the original PSD file and updated automatically in Unity.ScriptableObjects: In order to focus on UI design and implementation, the sample project simulates backend data, such as in-app purchases and mail messages, using ScriptableObjects. You can conveniently customize this stand-in data from the Resources/GameData folder and use the example to create similar data assets, like inventory items and character or dialog data in UI Toolkit.Remember that with UI Toolkit, UI layouts and styles are decoupled from code. This means that rewriting the backend data can occur independently from the UI design. If your development team replaces those systems, the interface should continue to work.Additional tools used in the demo include particle systems created with the Built-in Particle System for special effects, and the 2D toolset, among others. Feel free to review the project via the Inspector to see how these different elements come into play.You can find reference art made by the UI artists under UI/Reference, as replicated in UI Builder. The whole process, from mockups to wireframes, is also documented in the e-book. Finally, all of the content in the sample can be added to your own Unity project.You can download the UI Toolkit sample – Dragon Crashers from the Asset Store. Once you’ve explored its different UI designs, please provide your feedback on the forum.Then be sure to check out our e-book, User interface design and implementation in Unity. Download #try #new #toolkit #sample #now
    UNITY.COM
    Try the new UI Toolkit sample – now available on the Asset Store
    In Unity 2021 LTS, UI Toolkit offers a collection of features, resources, and tools to help you build and debug adaptive runtime UIs on a wide range of game applications and Editor extensions. Its intuitive workflow enables Unity creators in different roles – artists, programmers, and designers alike – to get started with UI development as quickly as possible.See our earlier blog post for an explanation of UI Toolkit’s main benefits, such as enhanced scalability and performance, already being leveraged by studios like Mechanistry for their game, Timberborn.While Unity UI remains the go-to solution for positioning and lighting UI in a 3D world or integrating with other Unity systems, UI Toolkit for runtime UI can already benefit game productions seeking performance and scalability as of Unity 2021 LTS. It’s particularly effective for Screen Space – Overlay UI, and scales well on a variety of screen resolutions.That’s why we’re excited to announce two new learning resources to better support UI development with UI Toolkit:UI Toolkit sample – Dragon Crashers: The demo is now available to download for free from the Asset Store.User interface design and implementation in Unity: This free e-book can be download from hereRead on to learn about some key features part of the UI Toolkit sample project.The UI Toolkit sample demonstrates how you can leverage UI Toolkit for your own applications. This demo involves a full-featured interface over a slice of the 2D project Dragon Crashers, a mini RPG, using the Unity 2021 LTS UI Toolkit workflow at runtime.Some of the actions illustrated in the sample project show you how to:Style with selectors in Unity style sheet (USS) files and use UXML templatesCreate custom controls, such as a circular meter or tabbed viewsCustomize the appearance of elements like sliders and toggle buttonsUse Render Texture for UI overlay effects, USS animations, seasonal themes, and moreTo try out the project after adding it to your assets, enter Play mode. Please note that UI Toolkit interfaces do not appear in the Scene view. Instead, you can view them in the Game view or UI Builder.The menu on the left helps you navigate the modal main menu screens. This vertical column of buttons provides access to the five modal screens that comprise the main menu (they stay active while switching between screens).While some interactivity is possible, such as healing the characters by dragging available potions in the scene, gameplay has been kept to a minimum to ensure continued focus on the UI examples.Let’s take a closer look at the UIs in the menu bar:The home screen serves as a landing pad when launching the application. You can use this screen to play the game or receive simulated chat messages.The character screen involves a mix of GameObjects and UI elements. This is where you can explore each of the four Dragon Crashers characters. Use the stats, skills, and bio tabs to read the specific character details, and click on the inventory slots to add or remove items. The preview area shows a 2D lit and rigged character over a tiled background.The resources screen links to documentation, the forum, and other resources for making the most of UI Toolkit.The shop screen simulates an in-game store where you can purchase hard and soft currency, such as gold or gems, as well as virtual goods like healing potions. Each item in the shop screen is a separate VisualTreeAsset. UI Toolkit instantiates these assets at runtime; one for each ScriptableObject in the Resources/GameData.The mail screen is a front-end reader of fictitious messages that uses a tabbed menu to separate the inbox and deleted messages.The game screen is a mini version of the Dragon Crashers project that starts playing automatically. In this project, you’ll notice a few revised elements with UI Toolkit, such as a pause button, health bars, and the capacity to drag a healing potion element to your characters when they take damage.UI Toolkit enables you to build stable and consistent UIs for your entire project. At the same time, it provides flexible tools for adding your own design flourishes and details to further flesh out the game’s theme and style.Let’s go over some of the features used to refine the UI designs in the sample:Render Textures:UI Toolkit interfaces are rendered last in the render queue, meaning you can’t overlay other game graphics on top of a UI Toolkit UI. Render Textures provide a workaround to this limitation, making it possible to integrate in-game effects into UI Toolkit UIs. While these effects based on Render Textures should be used sparingly, you’ll still be able to afford sharp effects within the context of a fullscreen UI, without running gameplay. The following images show a number of Render Textures from the demo.Themes with Theme style sheets (TSS): TSS files are Asset files that are similar to regular USS files. They serve as a starting point for defining your own custom theme via USS selectors as well as property and variable settings. In the demo, we duplicated the default theme files and modified the copies to offer seasonal variations.Custom UI elements: Since designers are trained to think outside the box, UI Toolkit gives you plenty of room to customize or extend the standard library. The demo project highlights a few custom-built elements in the tabbed menus, slide toggles, and drop-down lists, plus a radial counter to demonstrate what UI artists are capable of alongside developers.USS transitions for animated UI state changes: Adding transitions to the menu screens can polish and smooth out your visuals. UI Toolkit makes this more straightforward with the Transition Animations property, part of the UI Builder’s Inspector. Adjust the Property, Duration, Easing, and Delay properties to set up the animation. Then simply change styles for UI Toolkit to apply the animated transition at runtime.Post-processing volume for a background blur: A popular effect in games is to blur a crowded gameplay scene to draw the player’s attention to a particular pop-up message or dialog window. You can achieve this effect by enabling Depth of Field in the Volume framework (available in the Universal Render Pipeline).We made sure that efficient workflows were used to fortify the UI. Here are a few recommendations for keeping the project well-organized:Consistent naming conventions: It’s important to adopt naming conventions that align with your visual elements and style sheets. Clear naming conventions not only maintain the hierarchy’s organization in UI Builder, they make it more accessible to your teammates, and keep the code clean and readable. More specifically, we suggest the Block Element Modifier (BEM) naming convention for visual elements and style sheets. Just at a glance, an element’s BEM naming can tell you what it does, how it appears, and how it relates to the other elements around it. See the following BEM naming examples:Responsive UI layout: Similar to web technologies, UI Toolkit offers the possibility of creating layouts where “child” visual elements adapt to the current available size inside their “parent” visual elements, and others where each element has an absolute position anchored to a reference point, akin to the Unity UI system. The sample uses both options as needed through the visual elements of the UI.PSD Importer: One of the most effective tools for creating the demo, PSD Importer allows artists to work in a master document without having to manually export every sprite separately. When changes are needed, they can be done in the original PSD file and updated automatically in Unity.ScriptableObjects: In order to focus on UI design and implementation, the sample project simulates backend data, such as in-app purchases and mail messages, using ScriptableObjects. You can conveniently customize this stand-in data from the Resources/GameData folder and use the example to create similar data assets, like inventory items and character or dialog data in UI Toolkit.Remember that with UI Toolkit, UI layouts and styles are decoupled from code. This means that rewriting the backend data can occur independently from the UI design. If your development team replaces those systems, the interface should continue to work.Additional tools used in the demo include particle systems created with the Built-in Particle System for special effects, and the 2D toolset, among others. Feel free to review the project via the Inspector to see how these different elements come into play.You can find reference art made by the UI artists under UI/Reference, as replicated in UI Builder. The whole process, from mockups to wireframes, is also documented in the e-book. Finally, all of the content in the sample can be added to your own Unity project.You can download the UI Toolkit sample – Dragon Crashers from the Asset Store. Once you’ve explored its different UI designs, please provide your feedback on the forum.Then be sure to check out our e-book, User interface design and implementation in Unity. Download
    0 Comments 0 Shares
More Stories
CGShares https://cgshares.com