I would like to share the new promo video that was made for Puzzle You. The video is not finished yet, but it shows well the game play. I hope you like it.
0 Comments
Our first game is a puzzle one, so we had to deal a lot with image manipulation. In this post I would like to share some basic knowledge about dealing with image in Corona and also some details that could save you some time in the future. First, create a empty text file and save it as main.lua. Now let show a image, my dolphin.jpg file, in the screen. We can do that by writing the following code inside the main.lua: local img = display.newImage( "dolphin.jpg") In the code above we displayed the image (dolpin.jpg) in the screen and created the variable img that will handle the image. Our screen will look like below: Using the image properties (accessible by the variable name, in our case, img) we can specify the image position, increase/decrease its height or width and modify other properties. You can see the common image properties here. Now lets change the image position just a little away from the margin. img:setReferencePoint(display.TopLeftReferencePoint) In the first line of the code above, we just specify what point of the image (e.g: Center of the image, top-left corner,...) Corona must use to position the image. In our case, we specified that we want the top-left corner of the image to be at the (x,y) = (50, 100). Just remember that top-left corner of the screen is the (0,0) coordinate and as you move to the right the x-axis increases. As you move down you increase the y-axis. Our updated screen is like below: Lets say that we want to reduce the width of the image by half. We can do that by writing the following code: img.yScale = 0.5 The code above reduces the original y-dimension (image height, that in our case is 276 pixels) of the image by a factor of 0.5. Just be careful that yScale (or the xScale) is based on the original image dimensions (height or width). I.e, if we write the code above again in the file, nothing will change in the screen. If I would like to reduce the size by half again, I would have to set the yScale factor to 0.25. The xScale and yScale reduce the respective image dimension by the factor specified, leaving unmodified the original image dimension (height, width). So, now our screen is as below. Since the image height is maintained unmodified, if we would like to get the image height that we see in the image (i.e, half of the original), we could use the properties contentHeight (img.contentHeight) instead of the height property (img.height). I will show a summary in the end of the post that will clarify that difference. We could have changed the image height by setting the property height of the image (img.height). In that case, just make sure that you reset yScale to 1 (or the final image would still be affected by the scale factor). Now lets learn how to create a border (stroke) in an image. To do that, we just have to write the following code: img:setStrokeColor(255,255,255) In the first line of the code above, we define what color (in RBG) the border will have. In the next line, we define the border width. You need to specify the border width or the border will not show in the screen. Lets see how our image (without the yScale = 0.5) would be with the code above. Now you already know how to show an image in the screen, how to set its position, reduce its dimensions and also set a border to it. To summarize all that we saw above, I created the screen below in which I show the same image with different xScale and yScale. I printed in the screen the main properties of the image so you can see how the xScale / yScale affect them. I ask you to pay attention to the border of the images. Did you notice that when you use xScale or yScale properties the border width is also modified?
So, be careful if you want to include a border to an image that has a xScale or yScale different from 1. If the image is reduced and you want to include a border width = 1, you probably have to set it with a width value more than 1 (since the border width will be reduced). Andres Loew gentily gave me free licences to review two of his products. The products are:
I will try the products and post a complete review here in this blog. In the meantime, I suggest you to check the programs' website because they appear to be very useful (and they work not only with Corona, but also almost cross-development platform). Hi people.
We are finishing our first game (and we already started another. I will talk about the new game later) and I would like to share screenshots of the game. The game design is not finished, so the screenshots are not final. If you would like to be the first ones to play with it, let me know. We will be releasing a test demo so I can put your name on the list. See ya. I would like to continue to talk about games ideas. I think that people usually give too much importance to the idea, specially in having one before others. People often question me if there are space to develop a game that nobody developed before. Well, being honesty, I dare. AppStore has more than 100k of games apps, I truly believe, with 99% confidence, that any game idea that you have may be already available in the market. May not exactly be the same idea that you had, but the concept behind it probably is there. Is that a reason to give up? I don't think so and I will show you why. Look at the companies below and think: what they have in common? Yes, they all are successful tech companies. But, what I would like to detach is that none of them invented the idea of their products. Instead, they all created better versions of what already existed. You see, Google was not the first search engine in the market. If you belong to the internet dial-up connection probably will remember search sites like Altavista. Apple did not create the personal computer neither the smartphone. Facebook was not the first social network site. Making a parallel with the world of gaming, Angry bird did not invent the game of throwing things in the air to destroy others. Pop Song did not invent the game of guessing which song is playing. Draw something not invented the game of guessing drawings of others. So, the point that I want to make is: does not matter if the idea that you want to develop already exists, what matter is your ability to develop it better. See you. UPDATE: I just remembered a interview of Malcom Gladwell in which he says that being first is not better. I can see the interview below (at 16m18s): Hi.
I already wrote about some development platforms, but for those who continue with doubt about which one to choose, I recommend you to read this site. That post contains a extensive comparison of Corona, Gideros, Love and Moai. In addition, you can see the code of the famous "Hello World" using that engines. If you already used one of those platforms (and even the other that I already discussed - Unity and Ethanon), give us your opinion using the comment area. See you. Hello. In my last post I said that, for your fist game, I recommend you to develop a simple one like throwing darts at balloons. To help you achieve that, I list below some video tutorial that shows how to create these simple games. These videos are based on Corona platform, the one that I chose to use. They are also a great opportunity for you to get familiar with all the resources that Corona provides. Tutorial: Make a game in 8 minutes (good tutorial to learn the basics - event handlers, physics,..) Tutorial: Make a game in 8 minutes - Part 2 Ballon Burst Game - Part 1 (great tutorial to learn how to make a simple game) by Dr. Rafael Hernandez Ballon Burst Game - Part 2 by Dr. Rafael Hernandez Ballon Burst Game - Part 3 by Dr. Rafael Hernandez I hope you enjoy the videos. You can find a lot more on youtube. See you.
Hi all. First I would like to apologize for disappearing these past weeks. I was finishing a project that was taking all my time. Today I would like to talk about a subject that I friend asked me: Ideas Generation for games. Obviously this is a super important and complex issue and therefore one post will not be sufficient to talk about all. I'll start with the basics and in the future I will update this post.. To begin, I would like to share a photo I found on the internet (http://www.incidentalcomics.com/2011/05/how-to-get-ideas.html ) about this subject: Well, the last phrase for me is the best. In fact, some weeks ago I saw a movie and I thought: "Wow, that movie could be a great game".
So, my first advice is: Do not put yourself too focused on finding a big idea. Instead, try to list the characteristics that a great game must have. Example: Try to understand why Angry birds is a huge success. If you need help, look for it on the internet (here is one link that talks about it). My second advice is: If you are going to develop your first game, do a simple one. If you do not have experience in mobile programming, choose a simple game like throwing darts at balloons or something like that. First, you will learn the basics that will need to know in order to develop your big game. Second, you will not have to create zillions of phases in order to launch it in the market. In my case, I am today developing a Puzzle game. This simple game made me learn about events, image handlers, ... Well, that is it for today. As I said in the beginning, I will come back to this post in the future to update it, specially due to the knowledge that I gain in this adventure. See you. In my last technical post, I talked about the programming languages required for each mobile system. I said that if you want to develop a game (or app) for iOS system, you would need to program using Objetive-C and if you target Andoid, you would need to use Java. If you are ok with that, you just need to download the respective IDE (Integrated development environment) and start programming. Find below some IDEs that you can use:
If you want to know more about the IDEs avaliable, just google "IDE for Android" for example. For those who do not want to write two codes for the same game/app, there is an alternative called Development Platform (or also called Cross-Development Platforms). These platforms allow you to write a single code and the platform makes the necessary work to build you game/app in the desired final system (iOS, Android, Windows Phone,...). There are a lot of these platforms and if you want a list of them, just google it. Find below some of platforms that I investigated when I was choosing the one that I would use. Unity Pros: Great platform for 3d development; One time license fee Cons: Required extra effort to configure for 2d development Corona Pros: Very easy to use and t program; Focus on 2d games Cons: License fee is annual Ethanon Pros: Very robust platform for heavy image games; Free Cons: Not easy to program (require similar C++ programming language knowledge) I chose Corona to develop my games. A recent survey published by Game Developer magazine with mobile game developers found that 53.1% use Unity, 39.8% use a custom engine, 17.7% use Cocos2D, 5.3% use Marmalade and 5.3% use Corona (the number don't sum up 100% because one developer can use more than one platform). You can find the article about the survey here. Any question or if you want to add some info, feel free to post a comment. Creating a game is the same as creating a program: you need to develop an algorithm and compile it for a specific plataform.
Algorithm is like a cake receipt. In a cake receipt you have a list of instructions that you need to perform in order to create a cake. An algorithm is a list of instructions that the computer need to peform in order to achieve a goal. The nivel of detail of algorithm can vary a lot. You may write it using human language (as English) or write it using computer language (like VB, C++, Java,...). The algorithm in computer language is also called "code". To illustrate that, let's see an example of an algorithm of a function that calculates the average of two numbers. Algorithm using human language:
Algorithm using computer language (VB): Function CaculateAverage ( number1 as Double, number2 as Double) sum = number1 + number2 average = sum / 2 CaculateAverage = average End function Even if you do not know VB, when comparing the two algorithm, you see some similarity, don't you? After writing the (computer language) algorithm in the computer, you need to compile it. After that your program will be ready to use. With that said, let's return to our game industry. When you write a game (or a program) with focus in a specific smartphone, first you need to discover the operating system that it runs. The two dominant mobile operating systems are:
Each of these operating system requires that you write your code in a specific computer language, that are:
So, if you like to have your game running on the two most important mobile systems, you will have to write two different (computer language) algorithms. That's why sometimes you find a specific new game (or app) only available for iPhone or Android. The developers prefer to wait if the game will get some traction in one system before dedicating effort to create the same game for the other system. Of course, the development of the second algorithm should take less time than the first, after all, you already have the human language algorithm developed. Before you get upset with the need of having double work, on my next post I will write about the "Development platforms" and you will see that you can bypass these rework using one of them. See you. |
AuthorThis blog it not updated anymore. Archives
February 2015
Categories
All
|