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. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  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. High Climb 2018 – Cool Corona Template High Climb 2018 is a challenging tap-to-play template for Corona. You swing your gorilla back and forth as you climb the rock wall picking up goodies along the way. Check it out! TVShader TVShader is a shader from Dave Bollinger for Corona SDK that implements old-school retro-style full-screen CRT effects. The shader supports many different settings to give you a variety of different effects. WebSockets The WebSockets plugin from Develephant provides a WebSocket client for your Corona projects with a simple-to-use API. Supports both secure and standard connections using the RFC6455 WebSocket protocol. View the full article
  9. CoronaRob

    Social media assets guide

    Image by Milky – Digital Innovation, from The Noun Project [CC BY 3.0 us], via Wikimedia Commons Every app and game developer needs an online presence if they expect to have success. Aside from a website, social media is a huge area for helping market your app. Getting started is simple enough, create a Twitter account, create a Facebook page and other sites as well. One daunting challenge is artwork. Each social media site has their own requirements. It can take hours to figure out just what you need in addition to creating the work. But never fear, Laura Bularca has created a guide to the art assets needed for a social media presence. Click on over to her website for her handy list of sites and what you need to set up that presence. View the full article
  10. CoronaRob

    From the Forum – Issue #186

    Welcome to this week’s From the Forum. In this post, we highlight a few Corona Community Forums posts that cover important topics. Going Indie? Many Corona developers start out as solo developers. Some may start as artists, others as programmers and some with skills in both. But when is it time to partner up with someone or work on a team? Should you use a publisher to help with marketing? In this thread, a developer asks these questions and got great responses. Into the Shadows Many 2D games don’t need dynamic shadows, but when you do, how do you go about it? Corona developer @XeduR has come up with a pretty unique approach. Learn more about what he’s doing in this thread. Old Game Dev vs. Modern Game Dev Corona community rock star @roaminggamer has posed a very thoughtful question: What modern dev tools make your life easier today that would have required a lot of code in the golden day of game development? Jump into this thread and add your opinion on the things that have impacted you the most. Do you have a particular forum thread that was helpful for you? Let us know about it! Email support@coronalabs.com, put FTF: and the forum title in the subject, and include the URL in the email. We will consider adding it to an upcoming edition of From the Forum. View the full article
  11. Content scaling can be a mystery even for some seasoned developers. Let’s try to demystify it. First, forget pixels. You are going to create a virtual content area that is measured in values that make sense for you to use. Your content area could be 1 x 1 if you want. Of course to position something on the screen you would need to use fractional values, which is probably pretty inconvenient. You could match your content area to some device standards like a width of 1080 and a height of 1920. This would provide a 1 to 1 mapping to the typical HDTV screen or computer monitor which also happens to be a common device resolution for many modern phones. This is all defined in the config.lua file. config.lua is always written assuming a portrait orientation That is, your width should always be the smaller value and the height the larger value that you specify, even if your game/app is going to run in landscape mode. Aspect ratios You shouldn’t care about pixels. Corona converts your “content area points” to pixels for you. You only need to care about what number of points you want to work with. However, aspect ratio matters. If you set your width and height to both be 1000, then you have a 1:1 aspect ratio, the width and height are the same. If you set your width to 1000 and height to 1500 then you have a 1:1.5 aspect ratio. There are many standard aspect ratios that are common among displays: 1:1.5 – Common to the iPhone 3 and 4 family, cameras produce 4×6 photos (which is 2:3 or 1:1.5), some laptop screens are 1:1.5 as well. 3:4 – Common to Standard def TV and computer monitors such as 1024×768, the Apple iPad and several Android tablets. This is also 1:1.33. 16:9 – This is the HDTV standard or 720p (1280×720) or 1080p (1920×1080). This is very common to many modern phones too. This works out to 1:1.777778 if you want to measure it based on a 1 point scale. Which aspect ratio should you use? Corona Labs recommends that you use the 2:3 or 1:1.5 aspect ratio. While this is common on older phones, using 16:9 may make more sense, however if you want to build apps that work both on more square iPads/tablets as well as more rectangular 16:9 or more extreme devices, the 1:1.5 aspect ratio fits nicely on all devices. Of course this means that you’re going to have extra screen space to use that is outside of your defined content area. It’s important to point out there is no “perfect” or “right” way to define the content area. You need to use what works for you and it may vary from app to app. This is recommended because it fits on all screens. In the graphic below, green is your defined content area in config.lua (based on a 1:1.5 aspect ratio). Blue is the typical 16:9 device, pink is the typical iPad/tablet. Does width and height matter? You should use what works best for you. But you will see that many Corona-produced samples seem to be stuck on an archaic 320 width and 480 height setting. This has not been a pixel match to any device since the iPhone 3 which makes it very old indeed. However, Apple still measures everything in points and they are using a 320 point base system. Android devices are based off of a 160dpi system so a 2″ widescreen, common to phones would be 320 as well. Finally Corona’s widget library is based on a 320 point system and many of the widgets are not designed to work with arbitrary sizes, so we continue to use 320×480. You should use what’s right for you, but 320×480 is a pretty good standard to base your app on. Aligning the content area By default, Corona will center your content area on the screen for you. This is the common use case for most games. You can use the xAlign and yAlign properties to change the default. For instance, if you’re making a portrait business app, it might make more sense for the very left, top spot on the screen be 0, 0 and you fill content down the page. These apps don’t do a lot of centering and having left, top be 0, 0 and right, bottom be display.actualContentWidth, display.actualContentHeight makes that simple. Games come in two basic configurations: Objects have to be the same distance apart regardless of the screen. Think about Angry Birds. The distance from the sling shot to the structure has to be the same on every device for the gameplay to be consistent. Space to the left of the sling shot or to the right of the structure is just filler. In this scenario having a centered content area makes sense. Objects should fill the screen and spacing isn’t critical. Think of a card game. The stacks of cards look best when they are spread out to fill the screen. In this case, you may want to left-align the content area and use display.actualContentWidth to determine how to balance your card stacks out. Corona’s display attributes There are several important values you can get in your Corona app based on your settings in config.lua: display.contentWidth = the value you set for “width” in config.lua display.contentHeight = the value you set for “height” in config.lua display.actualContentHeight = a computed value based on your width/height but adjusted for your screen’s aspect ratio. For instance if your portrait app has a height of 480, but you’re on a 16:9 device, display.actualContentHeight would be 568 (16/9 * 320) display.actualContentWidth = a computed value based on your width/height but adjusted for the screen’s aspect ratio. For instance an iPad would return 360 for a portrait app (3 / 4 * 480) display.screenOriginX, display.screenOriginY = for a centered content area and a bigger screen, some of the extra area will be to the left or to the top of the content area. These values provide you that offset These values are important for positioning their objects around the edges of your screen or to fill your screen. Consider this image: Given this config.lua: application = { content = { width = 320, height = 480, scale = "letterbox", fps = 60, }, } You are creating a centered content area (the green block). The blue area would be the typical 16:9 phone such as an iPhone 5 family. We will discuss the yellow block in a little bit. 0, 0 is the left, top corner of your defined content area. Your right, bottom corner is display.contentWidth, display.contentHeight. Both of these are exactly what you specified in config.lua. Corona will fill the screen either vertically or horizontally depending on the aspect ratio of the device. For phones, the 320 will fill the narrow width of the device. For tablets, the 480 will fill the device. The other value is computed based on the actual device. These values then become display.actualContentWidth and display.actualContentHeight. Corona also automatically adjusts these values based on your device’s orientation. The config.lua is always written for portrait, so on a portrait app, 320 width will be 320 (or 360 for iPads). If you rotate the device, the narrow edge of the phone is now the height instead of the width. Corona adjusts these attributes to match the orientation automatically. Back to the graphic above, you will notice that there are blue areas on the left and right of the display. That’s because the content area is 480 points, but the actual screen is 568 points, an 88 point difference. Since the area is centered, that means there are 44 points left of 0, 0 and 44 points of screen to the right of your defined height. Corona makes getting the left edge in this case very easy. The display.screenOriginX will in this case be -44 and display.screenOriginY will be 0. Flip the device to portrait and display.screenOriginY would be -44 and display.screenOriginX would be 0. If you want to position a button in the left, top of the display 25 points from the edge, you could do: button.x = 25 + display.screenOriginX button.y = 25 + display.screenOriginY Getting to the right side in this example is a little bit tricker. While display.actualContentWidth will return 568, which is the actual width of the content area, with the content area being centered, it will be 44 pixels too far to the right. To position a button at the right, bottom, you still have to use the display.screenOrigin* values: button.x = display.actualContentWidth - 25 + display.screenOriginX button.y = display.actualContentHeight - 25 + display.screenOriginY For your game critical items that need to be at predictable distances for each other, keep them inside the 0, 0 and display.contentWidth, display.contentHeight area and it will work on all devices. Then you can fill the background to fill the full screen and edge position scores, lives, User Interface (UI) buttons and such so they also fill the screen. iPhone X weirdness Apple introduced some features with the iPhone X that makes laying out your app a bit of a challenge. Corona has some alternate versions of display.screenOriginX, display.screenOriginY, display.actualContentWidth, display.actualContentHeight that takes these changes into account. If you plan on supporting the iPhone X, you should use display.safeScreenOriginX, display.safeScreenOriginY, display.safeActualContentWidth, and display.safeActualContentHeight for positioning UI elements into the safe zone. But you should still use the non-safe versions for filling the background. Filling the background Consider this game’s UI: This simple interface has a health indicator, lives indicator, score indicator and some other buttons along the bottom edge. The red ship is inside the config.lua's defined content area. When making your background, you want to try and use graphics that can extend beyond the screen edges. Then for the UI elements, don’t build them into the background, but have them be their own graphics so they can be edge positioned to fill the visible screen. Then you can draw your hearts, bars and score values inside those graphics. Before Samsung came out with the S8 and S9 and Apple the iPhone X, the most extreme screen was the 16:9 screens and the iPads (in the other direction). This made it a very easy formula for filling the background. Based on a 320×480 content area, you would want your backgrounds to be 360×570 for portrait or 570×360 for landscape. Center it on the screen and you would have no black “letterbox” bars to contend with. The S8 and S8 are a 1:2 aspect ratio which means your backgrounds need to be 640×360 to fully fill the screen. Then Apple went even more extreme with the iPhone X and its 19.5:9 aspect ratio (a 1:2.1666667 screen). You will need a 694 pixel wide image to fill the background on this device. Hopefully this will help you understand the config.lua a little better and propel you to success in your next #madewithcorona app! View the full article
  12. Everyone loves 5-star ratings for their apps and games and hates getting 1-star ratings. Bad ratings and reviews are a death sentence for a new game. One way to help prevent these bad ratings is to thoroughly test your app. Many new developers are in such a rush to get published, they don’t spend as much time testing their apps as they should. In this blog post by Kaushal Singh, a QA manager at Keywords Studios, he goes over basic testing strategies you should employee during your development. It covers testing that should be done during various development and release states before you make your game public. Hopefully, armed with this information you can improve your app testing which will result in higher rankings and your success. Read the post View the full article
  13. Designed by Freepik Corona is of course popular for making 2D games. But it takes more than a great engine and a great idea to be successful. There is a lot that’s needed to bring that great idea to a complete product that will be well received by your audience. In this blog post on Gamasutra, Richard Atlas, dives into the concept of consistency. Consistency comes in many forms from marketing consistency to the expectations of genre pieces. Perhaps some of this advice will help you make the next rockstar game that brings you fame and fortune. View the full article
  14. CoronaRob

    From the Forum – Issue #185

    Welcome to this week’s From the Forum. In this post, we highlight a few Corona Community Forums posts that cover important topics. Life Bars Many games allow the main hero (or the enemy spawn) to take incremental damage and as a game developer you need to communicate the current health of the character to the player. There are many ways to do this and there are many stylistic choices for the developer to make. But how do you go about updating the life bar and show damage taken? Several community developers jumped into this thread to show the way. Corona on Linux? No doubt, many developers want to use Corona on Linux. It’s been on the wish list for a long time. While our engineering team looks for time to work on this platform, an enterprising developer figured out how to get Corona working with WINE on Linux. This thread documents his process for opening up our awesome engine to the Linux world Using Tiled Tiled (https://www.mapeditor.org) is a great tool to layout many styles of games that can be made with Corona. There are several third-party, community-made libraries for using Tiled content, one of the most popular being PonyTiled from @ponywolf. This thread helps users figure out why they’re having issues with Tiled and gets them on the right path to building games with this really great tool. Do you have a particular forum thread that was helpful for you? Let us know about it! Email support@coronalabs.com, put FTF: and the forum title in the subject, and include the URL in the email. We will consider adding it to an upcoming edition of From the Forum. View the full article
  15. Corona Labs is pleased to announce the availability of our latest public release of Corona: 2018.3326. This build contains significant bug fixes and new features that we hope you will appreciate. Google Play One of the biggest changes in this public build is addressing changes required by Google. Since the last public build, Google has changed their Vitals detection methods and have gotten considerably more aggressive with their detection. To support these changes, we’ve updated all of our support plugins for Android to bring them up to modern standards. We have also increased our Android API level to 27 (Android 8.1) in preparation for Google’s August, 2018 requirement to have API level 26 support. Google is also pushing new app signing procedures. As such, Corona can now employ the modern encryption methods used by the latest Java keytool built keystores as well as older keystores. HTML5 You will notice that a majority of the updates in this build are involving HTML5. That’s right – HTML5 builds are now in Open Beta! HTML5 is becoming a considerably more stable product. We now include the base code needed to build Facebook Instant Games as well as support for the VK social media site’s version as well. HTML5 builds are already having an impact on other platforms. Developers have prototyped HTML5 versions of game ideas and pitched them to publishers to build mobile versions of the games. Being able to quickly give someone a look into your prototype is a great way to market your content. GDPR The European Union’s General Data Protection Regulation went into effect on May 25, 2018. This public release of Corona does not collect data considered personal in nature. Also, Corona Labs doesn’t collect any personal data in Corona-managed advertising plugins. The third-party SDKs used in the plugins have their own GDPR requirements.. Apple On the Apple side, we have updated to support iOS 11.4 and Xcode 9.4 and implemented additional features to support iOS 11 edge gestures that impact the iPhone X. One breaking change that comes with iOS 11 is that getting the default language of the device is now dependent on additions to the iOS plist. iOS 11 only returns supported values that your app supports. You must include an entry in your build.settings file to list the supported languages by the app. For example: settings = { iphone = { plist = { CFBundleLocalizations = {"en", "fr", "pt", "zh", "de", "it", "ja", "es", "ru", "uk"}, }, }, } You can look at the sample app: SampleCode/GettingStarted/HelloWorldLocalized for an example of this requirement or see our localization guide. Open-source libraries In addition to these changes, Corona Labs is open-sourcing the following libraries: timer.* easing.* transition.* composer.* You can download the Lua source for these libraries from the Corona Labs GitHub account. In addition, the widget.* library was updated to be in sync with our internal library. Facebook Facebook has recently changed their permission requirements for apps. You now have to submit your app to Facebook for review and get approved to use the user_friends permission. We have removed the default addition of the user_friends permission from the login process. Starting with this release (2018.3326) plugin facebook_v4a only asks for public_profile by default. This may be a breaking change if your app depends on the user_friends permission. If this is a case, add the permission when requesting login, like facebook.login( { 'user_friends' } ). Check it out! You can see a full list of changes in our release notes for 2017.3326. If you have questions or comments on this release, join us in our community forums. Download Corona 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!