Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

113 Neutral

About CoronaRob

  • Rank

Personal Information

Recent Profile Visitors

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

  1. Corona Labs is pleased to announce the immediate availability of a new plugin: Animations. This plugin was originally planned to be an extension to the existing transition.* library. During the design, there were sufficient changes that warranted it being a new library. We also decided to make this a plugin instead of a core feature to help keep the core lightweight. The plugin is broken into two main categories: tweens and timelines. Tweens are your standard transitions like moving an object over time, fading an object in and out, etc. Tweens have new features including scalable speeds and additional events. Timelines allow you to have more control over what happens to a tween over time. You can set timeline markers that you can advance or return to. You can have events fire when the timeline passes a marker. Since it’s a plugin, you will need to go to the Corona Marketplace and activate it. Next you will need to include it in your build.settings: plugins = { ["plugin.animation"] = { publisherId = "com.coronalabs" }, }, And require the plugin in modules where you will use it: local animation = require("plugins.animation") For normal transitions, the call is now: local myAnimation = animation.to( object, { x = 200, alpha = 0 }, { time = 1000, onComplete = whenDoneFunction } ) Notice there are two tables involved, the first table is for object parameters, the second one for transition parameters. For timelines, you can now program animations that can contain multiple sequential and/or overlapping tweens, each performing unique tweens on one or multiple objects. Additionally, you can set time markers anywhere across the span of the timeline as jump-to points. For example, you could: local function timelineListener( obj ) print( "Timeline completed; ID: " .. obj.id ) end -- Create a timeline object local timelineParams = { tweens = { { startTime=0, tween={ object1, { x=display.contentWidth-50 }, { time=4000, iterations=5, reflect=true } } }, { startTime=1000, tween={ object1, { y=400 }, { time=4000, easing=easing.outQuad } } } }, markers = { { name="marker_start", time=0 }, { name="marker_2000", time=2000 } }, id = "timeline1", onComplete = timelineListener } local newTimeline = animation.newTimeline( timelineParams ) Which will do a transition that moves an object back and forth on the X axis five times over four seconds. Then starting one second in, move the object down the screen over four seconds and setting markers to allow you to go back to the beginning of the timeline or jump to two seconds in. The animation plugin is free to use. You can learn more about the plugin and its new features by reading the documentation for the plugin. Like many of our other Lua based libraries, we are going to go ahead and make this open source so you can download the source code and make your own changes to the library. Let us know what you think about this new great addition to Corona in our Community Forums. View the full article
  2. CoronaRob

    Update on the new GPGS v2 plugin

    Corona Labs would like to update you about our recent plugin for Google Play Games Services. This plugin is known as GPGS v2 and there is a breaking change to be aware of. We’ve worked hard to make it call compatible with the older GPGS v1 plugin, however Google has changed their initialization and login process significantly. We had to make a change that you will need to adapt to so that you can successfully login and know if your app is connected. Simply remove any calls to the gpgs.init() API and instead call gpgs.login() directly: gpgs.login( { userInitiated=true, listener=gpgsLoginListener } ) Where gpgsLoginListener is the name of your function to handle a successful login. If you have questions about the plugin, please joins us in our community forums. View the full article
  3. CoronaRob

    #madewithcorona: Mission Me!

    Periodically a game comes along that breaks out and does something different. Corona Labs would like to introduce you to Mission Me by Sillysoft Games. Mission Me is a lifestyle game. In this game, you get missions that you frequently have to do in real life and may require you to get off of your device for a while to accomplish. As you complete missions, you gain experience and move up to more missions. Example missions include things like “Clean up your desk and add a decoration” or “Say something nice to a cashier”. You start with “Self” missions and move to “Family” missions and so on. This game is engaging and helps you with your own self-esteem. The game is available as a free app on Apple’s App Store and Google Play. Check it out! If you want you can leave feedback to the developer in our Community Forums! View the full article
  4. The concept of game difficulty is always a challenge for developers. Games that are too easy won’t get played. Games that are too hard will frustrate the users and they will quit. You have to find that right balance of difficulty where the player feels challenged yet feels as if they are progressing. To compound matters, no two players are the same. Some need an easier game, others need a lot more challenge. How do you strike that balance? Alex Vu, pixel artist and game designer working for Fine Monkeys, LLC has contemplated the problem, and discusses some solutions in his blog post A Different Approach to Difficulty. In this post, he talks about the problems with simple difficulty modes as well as Dynamic Difficulty Adjustment (DDA) and offers a deep dive into Organic Difficulty and Effectiveness-Ludoaesthetics Spectrum. This advice might just make your game more interesting to your players. Read: A Different Approach to Difficulty View the full article
  5. Corona Labs is pleased to announce that the Steamworks plugin is now open-source. The Steamworks plugin is used by PC and macOS games published to Valve’s Steam service that allows support for leaderboards, achievements, user profile data, and microtransaction support. Now you can download the repository for the plugin and add your own features and extensions to it. You will have to have a Steam developer account to be able to test the plugin. Follow Steamworks documentation (available on Steam’s developer portal) to learn how to enable Steamworks debugging and development for your game. You can get the plugin source at our GitHub repository. You can learn more about the Steamworks plugin in our previous announcement. View the full article
  6. Corona Labs is pleased to announce the immediate availability of a new, updated Google Play Games Services plugin. This plugin in a complete rewrite of the version one of the plugin using the latest GPGS core libraries and dependencies. One of the key reasons for the GPGS v2 plugin, besides staying with modern underlying SDK’s is support for preventing Google rejections for using invalid login scopes. The previous version of the underlying GPGS SDK contained Google Plus login scope which has been deprecated. The new version has this removed. The GPGS v2 plugin should be a drop in replacement for the GPGS v1 plugin. First, visit the Marketplace and activate the plugin, then simply update your build.settings to include the plugin using: settings = { plugins = { ["plugin.gpgs.v2"] = { publisherId = "com.coronalabs", supportedPlatforms = { ["android"] = true, } } } } And where you require the plugin in your lua code: local gpgs = require( "plugin.gpgs.v2" ) This is a completely new version of the plugin and you should fully test your app against the code. If you have questions about the new plugin, please check out our documentation. Join us in the community forums to discuss this new plugin. View the full article
  7. New tutorial! First, we would like to take this opportunity to let you know about a new tutorial on implementing advertising in your Corona apps. The tutorial covers code and common code to implement an ad plugin in your app. You can view it here! Read the Implementing Ads tutorial Monetization best practices A great question was asked in our Community Forums about using in-app purchases (IAP) to turn off advertising. It may seem like a simple idea but there is more to it. When you sell your app for a fixed price, that person pays you once, ever. When you use ads, you get a continuous stream of income as long as your app or game is being used. If someone uses IAP to turn off ads, you get continuous income until they pay for the IAP, then you get the one-time fee and that’s it. For some apps, IAP subscriptions can provide ongoing income, but an app has to be pretty special, with lots of new content to convince users to continuously pay for it. Let’s look at the financial considerations in answering this question. Let’s say that you end up setting the IAP fee to turn off ads at $0.99 (or an initial purchase price with no ads). Because the app stores take 30% of your sales, that means you will make $0.69 from that user when they make the purchase. But the question is: Will you make more from advertising? Using Appodeal as an example and information from Appodeal’s E-Book “Monetizing Casual Games”, banner ads typically pay about $0.43 per thousand banner ads shown. To earn that same $0.69 from app sales, you need to display over 1,600 banner ads to your app user. Assuming your banner ads rotate every 45 seconds, it will take over 1,200 minutes or about 20 hours of view time to earn that same amount of money from the user. Note: eCPM values for the United States and Europe were averaged together from numbers in the e-Book. Banner ads may not be the best way to implement ads. If you’re using other ad forms, like interstitials which pay an average of $4.59 per thousand ads, you need to show about 150 interstitial ads to earn the equivalent purchase income. Note, video interstitials pay more than static interstitial ads. Let’s say you can show 2 interstitial ads per session on average, the user only has to play about 75 times to make up that income. You don’t want to over-show ads to keep it from becoming an annoyance causing your user to just quit your app. Rewarded video pays about $10 per 1000 rewarded videos. That means the user only needs to view 7 rewarded videos to earn you that same $0.69. How do you get to that many ad displays? Most users tend to play a game a lot at first, then over time, they play less and less. All games have a usage “tail”. If you view this generic usage graph, it looks like a dinosaur: Picture by Hay Kranen / PD The left side is your initial usage spike (the head) and then as time passes it gets used less and less (the tail). Some games will have a long tail, but many will have a short tail. No one can really predict in advance how long your game’s tail will be. Successful apps will have a longer tail and a taller tail. It indicates that you are retaining users longer. Games and apps with a long tail will make more money from advertising. If your game doesn’t have any longevity to it, you want to convert them to paid as soon as possible. This combination of retention and revenue is your game’s LTV or Lifetime Value. If your game is too short, offering an option to disable ads won’t be effective because you won’t have any retention to motivate them to disable ads. If your ads are too annoying, people may get turned off to your app and give up on it early. You have to strike a proper balance between advertising and entertainment or utility value of your app. Even short-lived apps can monetize successfully by … Using Rewarded Video Rewarded video is clearly the winner in the eCPM value for you, but you have to use them wisely. Rewarded video is the user volunteering their time in exchange for some in-game reward. You can’t just throw a rewarded video in front of a user automatically. That’s the job of an interstitial ad. If you force the user to watch an ad, even if you reward them, it’s still forcing them to watch the ad. Consider they have played your level and lost. Your game logic shows them an ad and resets back to the beginning. That is an Interstitial ad placement. If you prompt them “Would you like to view an ad to continue to the next level?” and if they agree, you should show them the video and let them move on to the next level. If they choose no, simply take them back to the beginning, but don’t force them to watch the ad. Rewarded ads encourage players to continue playing, either by not losing progress or by gaining some in-game feature which can extend your app’s LTV. Using these techniques, even games with shorter tails can be quite successful. Conclusion Every app is different. You should make the most entertaining game you can or the most useful business or utility app that brings real value to the user, then balance your advertising, in-app purchases and in-app currency to maximize your income. View the full article
  8. If you haven’t peeked into the Corona Marketplace recently, it now offers dozens of plugins and assets, from art packs to audio tracks to useful utility plugins. Periodically, we will highlight a few exciting products which can help you develop your dream app using Corona. Qiso Isometric Tilemap Engine Qiso is an isometric tilemap engine for Corona SDK. It handles the complexity of converting between screen, Cartesian and isometric co-ordinates, allows you to programmatically add or remove tile layers at any time, and add player or machine controlled characters. It takes care of map rendering, camera movement/zoom, and has built-in A* pathfinding algorithms. Check it out! Wild West assets from Beatheart Artist Beatheart has created a series of “Wild West” assets for you to use in a cowboy themed game. Each character has multiple animations available. DataViz With the DataViz plugin, you can create Arcs, Polygons, Stars and Circle segments that are popular in many types of business and utility apps. You can manipulate colors, set palettes and named colors and more. Check it out! View the full article
  9. CoronaRob

    Linux builds for Corona

    Corona Labs is pleased to announce early beta testing for Linux builds. With this feature you can use the Corona Simulator either on Windows or macOS to produce a Corona build that should run on Debian and generic x86-64 Linux platforms. This feature is currently in a limited beta test. You will need to enable building before the option appears in the simulator. Information on enabling the Corona Simulator to make Linux builds can be found in pinned posts either on: Our community forums ( https://forums.coronalabs.com/forum/662-linux/ ) or Our community Slack’s #linux channel ( https://coronalabs.com/slack/ ) We request that any observations, comments and issues be reported at those two locations. Note: This is using Windows and macOS to make apps that run on Linux. This feature is not running the Corona Simulator on Linux to make Android builds. View the full article
  10. If you haven’t peeked into the Corona Marketplace recently, it now offers dozens of plugins and assets, from art packs to audio tracks to useful utility plugins. Periodically, we will highlight a few exciting products which can help you develop your dream app using Corona. Lama Chef This is a new “tap to play” exclusive arcade game template made with Corona. It is easy to re-skin and modify to your needs and has Appodeal ads integrated. Check it out! Old Movie Effects Combine the Old Movie Effects with Corona’s image effects to create an amazing retro feeling for your app. In the demo video, the old movie effects are used together with Corona’s duotone image effect. Cartoon & Comedy Sounds ‘Cartoon & Comedy Sounds‘ by Cinematic Sound Design features a collection of more than 250 hand-crafted , 100% royalty-free cartoon and comedy sound effects. View the full article
  11. One of the struggles with building simple “casual” free-to-play (F2P) games is how to keep the player engaged and playing for the long term. Having a lot of initial downloads is great, but you need the app users to keep playing your game so they engage with your advertising and take advantage of your in-app purchases. In this blog post by Josh Bycer, he discusses the problems with short game-play loop games and how late game play turns into a painful grind to keep income coming in and how more complex games address additional content. Factoring these issues into your game design can go a long way to helping you build more sustainable games. Click here to read: How Free to Play Design Runs out of Steam View the full article
  12. CoronaRob

    Finding playtesters for your game

    One of the challenges in building successful games comes down to one simple, but hard to answer question: Is it fun? We all need to know that answer. Compounding the problem is the fact that what you might find as fun, someone else may not enjoy. In this blog post by Joost van Dongen, a lead programmer and co-founder of Ronimo Games, talks about how they go about finding playtesters for their games. He also discusses the differences between QA (Quality Assurance) and playtesting. Fun games lead to more successful games. How do you find playtesters? Let’s discuss playtesting further in the Corona community forums! Click here to read: The challenge of finding enough playtesters View the full article
  13. If you haven’t peeked into the Corona Marketplace recently, it now offers dozens of plugins and assets, from art packs to audio tracks to useful utility plugins. Periodically, we will highlight a few exciting products which can help you develop your dream app using Corona. AppsFlyer AppsFlyer is the world’s leading mobile attribution & marketing analytics platform, helping app marketers around the world make better decisions. Check it out! 5 Fruit Monsters 2D Game Character Sprite 5 Fruit Monsters is a set of cartoon sprites that can be used in 2D games like platformers or endless runners. Hud Interface Sounds Hud Interface Sounds by Cinematic Sound Design delivers a huge collection of user interface, computations, readouts, glitches, Sci-Fi sounds and more. View the full article
  14. We all want to make successful apps, but how do we get there? There are many different ideas of how to reach success and many different ways to get there, but it’s a challenging path. Think about Fortnite’s “Battle Royale” format. You start with 100 players and at the end only one person has climbed to the top and can claim “Victory Royale”. Now imagine that but on a much grander scale. Your indie title is competing against thousands of other indie titles and of course the “pro” AAA titles that come out as well. Luck will sometimes favor you to the top. Hard work will sometimes propel you and other times it’s perseverance. There are plenty of things for you to think about. Paul Taylor, the Joint Managing Director of Mode 7 Games, an indie studio based in Oxford, UK provides ten things for you to think about as you start building your next Indie title. Read over this blog post which just might be the key to your next hit. Click here to read: The 10 Secrets to Indie Game Success View the full article
  15. CoronaRob

    Building in-game tutorials

    Some game designs make it obvious as to how you should play. Some games are so complex the entire game may feel like it needs a constant guide to play. But in most guides a simpler tutorial is usually called for. The staff at Game Career Guide has produced a handy tutorial guiding you through some basics on building effective tutorials for your games. They offer six concepts that can make your in-game tutorials more effective for your players. Head on over to their tutorial to get this great advice. Read Tutorial View the full article
  • Advertisement

Important Information

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

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!