Hey there,
This could be a completely non-programming post, but due the fact that a lot of people is trying to get his head into this business, I think that some advice will be useful and guide them to get a good freelance for their project :)
In these days the mobile world is exploding and it's very popular, tons of people are willing to create their awesome apps or games ideas, so freelances are more needed than ever.
But do you know about outsourcing and software costs?
Software is one of the MOST EXPENSIVE things out there, it doesn't matter if you want to create an app or a game, it will cost you A LOT of money, usually a simply and crappy non-polished app starts at 1000$, but never mind, let's start with some basic advice to help you :)
First, as an example you are a guy living in the US, and for this example you are living in California to be more specific. You decided to create an app/game and you need someone to do it, so your first AND MORE IMPORTANT step is to contact companies/freelances IN YOUR AREA, so contact 5 companies/freelances and get quotes from all of them.
For this example let's say that you want to create a game, a temple run clone for iOS, which is a popular game and of course you want to add your twist to it, so you've contacted a bunch of companies in your city and you got quotes from 50.000$ to 100.000$ for such game, you see a different range of prices based on the quality and expertise of those companies.
Now you could be thinking, wow that's a hell lot of money, yes, it is, but this what it cost a real quality and polished game (and much more than that).
So in order to save you some bucks you can hire a freelance of outside US and get the benefits of outsourcing, but be careful here, outsourcing doesn't mean that you will find someone to create that game for 2000$, outsourcing means that you will be able to find a company/freelance that can offer you a quote up to a 50% lower of the original US price, but be careful, the percentage depends on the country of the freelance, a lot of countries in Europe are almost as expensive as the US and you won't get ANY reduction at all.
Assuming you are contacting someone living in a "low cost country", then a realistic quote (expecting a decent and polished game) will be something between 20.000$ and 50.000$ for such game.
Thanks to the low cost living conditions of some countries you can save up to a 50% which is very nice, right?
But once again, be careful, the prices depends entirely on the country of the freelance/company, you WON'T get the same price contacting a company/freelance in London than a company/freelance in India or China,etc,etc.
Remember the more important detail, you get what you pay for, aim too low and don't get surprised if your game/app is just a piece of crap.
Have fun, Alex
EskemaGames iphone programming tutorials
A blog to create 2D and 3D games for iPhone
Friday, November 30, 2012
Wednesday, May 16, 2012
War&Warriors, turn based strategy game for IOS
Hey there,
Long time since my last post. I guess I should do a little bit of self promotion of my upcoming game. It's called "War&Warriors" and it's intended to be an strategic turn based game.
Do you remember classic board games like heroquest or space hulk?, this game is something close to that line.
You will select a group of 4 members and engage your quest solving missions to gain fame and glory. There's not much story behind, you are a group of heroes looking for fame and glory, so you travel around the world solving quests.
As usual in this kind of games you have some actions to do in each turn, walk, combat, search for traps, access your inventory,etc.
The game will come with an external level editor, you can create your own custom quests and play them or share them with friends.
All the custom quests will be installed on your device through itunes.
The game will be a universal and a free download with paid content, you can pay for more quests and enjoy more powerful equipment, or you can stick with the default quest pack included with the game and your custom quests :)
The game is not finished yet, I'm working with an artist to improve all the graphics, so far I've spent 7 months working full time on this, and almost all the programming part is finished. The game is being done with unity3D.
Here's an image :)
See ya,
Thursday, December 29, 2011
Update for the LanguageManager Unity3D
Hi folks, long time since my last post.
I didn't noticed that the languagemanager had some bugs and some missing files, so I updated the package to add the missing file + modifying the class to load the files as txt instead of json files.
You just need to drag your files within the resources folder and adjust the path names on the class to point to your resources.
For example in my case it points to Resources/GameAssets/TextFiles/ change this to whatever folder you have for these files.
The loading and the usage didn't changed anything, just do this
And the string with play will be displayed, check the txt file to see how to build your translated files, and just call textstrings["string"] in your code to load the localized string.
Download link
See ya,
I didn't noticed that the languagemanager had some bugs and some missing files, so I updated the package to add the missing file + modifying the class to load the files as txt instead of json files.
You just need to drag your files within the resources folder and adjust the path names on the class to point to your resources.
For example in my case it points to Resources/GameAssets/TextFiles/ change this to whatever folder you have for these files.
The loading and the usage didn't changed anything, just do this
LanguageManager le = new LanguageManager();
le.ReadJsonFileWithStrings("menuText", LanguageType._ENGLISH);
Debug.Log("" + le.TextStrings["play"]);
And the string with play will be displayed, check the txt file to see how to build your translated files, and just call textstrings["string"] in your code to load the localized string.
Download link
See ya,
Sunday, August 7, 2011
LanguageManager for Unity3D and C#
Hi folks, long time since my last post. Anyways I'm working with unity and I decided to move my languagemanager to unity. In this case to avoid the overload of the xml system I decided to use json files, that way we can save a couple of mg from the final build.
It's coded in C# (sorry if you are using javascript, you shouldn't) and the way to use this is exactly the same (or similar) than the cocos2d version. If the system cannot find the translated file it will fall back and load your english file. Assuming you have an english file as the base of your project and you add the other languages later.
The good thing about this is that you can skip the iphone settings and create your own menu to select language within the game. Also this can be used on your pc/mac/android as you are not relaying in any platform specific settings.
Declare the object to use
And call the init function in your start function or whatever
And that's it, you can now fill your guitext or your uitext (you should be using UItoolkit btw) just calling the text function like this
And you will be using the string number 0 from your json file. The json file(s) must be included in the "StreamingAssets" folder in the root of your unity project.
Download it from here , you will find the .cs file and 2 json files as an example to know how to build your files for this.
See ya,
It's coded in C# (sorry if you are using javascript, you shouldn't) and the way to use this is exactly the same (or similar) than the cocos2d version. If the system cannot find the translated file it will fall back and load your english file. Assuming you have an english file as the base of your project and you add the other languages later.
The good thing about this is that you can skip the iphone settings and create your own menu to select language within the game. Also this can be used on your pc/mac/android as you are not relaying in any platform specific settings.
Declare the object to use
//create the lenguage manager to use during the GUI process
LanguageManager _languageText;
And call the init function in your start function or whatever
//init the file with the text for the GUI game
_languageText = new LanguageManager();
_languageText.ReadJsonFileWithStrings("GUIText", LanguageType._ENGLISH);
And that's it, you can now fill your guitext or your uitext (you should be using UItoolkit btw) just calling the text function like this
myuitext = text.addTextInstance( _languageText.TextStrings["text0"], 0, 0, 1.0f );
And you will be using the string number 0 from your json file. The json file(s) must be included in the "StreamingAssets" folder in the root of your unity project.
Download it from here , you will find the .cs file and 2 json files as an example to know how to build your files for this.
See ya,
Wednesday, May 11, 2011
LenguageManager for Cocos2D
Hi there folks,
I've been using cocos2d for a while because a client asked me to do the game with cocos2d, so I thought I can share some of my code for cocos2d.
So I decided to share my lenguagemanager, it's pretty simply to use and it's very basic but enough to handle your text strings in your games.
To use it you only need to drag'n drop the class files and the TBXML files into your project, later you need to add to your resources some xml files for the texts. In the zip you will find all the files needed.
Let's see an example about how to use this class.
In your menuscene or whatever scene add the classical
then create the pointer to use the class:
That's it, now the class will load a file called menu without any extension. You might be asking how this will load the appropriate lenguage?
Well according with this class, it will scan for the lenguage used on your device, if any of the listed lenguages are in use the system will load the xml file with the proper extension, otherwise it will fall back to english.
That means that you will have 2 files, menuEN.xml and menuES.xml, as you might guess, the menuEN.xml is for english and the menuES.xml is for spanish.
That's why in our previous code block we simply called [_Text LoadText:@"menu"]; because the system will load the extension for us. If the system detects your iphone configured in french the class will try to load the file menuFR.xml, but if it doesn't exists it will fall back and load menuEN.xml
In my example I've added 2 files for spanish and english. Just to give you an example about how this works.
But let's continue with the class explanation, for now we have created the pointer and initiated the class to load our xml file. All the strings included in the xml file are stored in a single array, so now it's your turn to create a label and get the appropriate text for your label,
You only need to get the string in the correct position according with your xml file, for example in the included xml files the element 0 is "New game".
And that's it you will display your beloved text in the lenguage used by your idevice.
Donwload the files from here
I've been using cocos2d for a while because a client asked me to do the game with cocos2d, so I thought I can share some of my code for cocos2d.
So I decided to share my lenguagemanager, it's pretty simply to use and it's very basic but enough to handle your text strings in your games.
To use it you only need to drag'n drop the class files and the TBXML files into your project, later you need to add to your resources some xml files for the texts. In the zip you will find all the files needed.
Let's see an example about how to use this class.
In your menuscene or whatever scene add the classical
#import "LenguageManager.h"
then create the pointer to use the class:
-(void)InitMenuScene
{
//create the lenguagemanager object to load the text
LenguageManager *_Text = [[LenguageManager alloc] init];
[_Text LoadText:@"menu"];
}
That's it, now the class will load a file called menu without any extension. You might be asking how this will load the appropriate lenguage?
Well according with this class, it will scan for the lenguage used on your device, if any of the listed lenguages are in use the system will load the xml file with the proper extension, otherwise it will fall back to english.
That means that you will have 2 files, menuEN.xml and menuES.xml, as you might guess, the menuEN.xml is for english and the menuES.xml is for spanish.
That's why in our previous code block we simply called [_Text LoadText:@"menu"]; because the system will load the extension for us. If the system detects your iphone configured in french the class will try to load the file menuFR.xml, but if it doesn't exists it will fall back and load menuEN.xml
In my example I've added 2 files for spanish and english. Just to give you an example about how this works.
But let's continue with the class explanation, for now we have created the pointer and initiated the class to load our xml file. All the strings included in the xml file are stored in a single array, so now it's your turn to create a label and get the appropriate text for your label,
CCLabelBMFont* newgameLabel = [CCLabelBMFont labelWithString:[_Text.TextArray objectAtIndex:0] fntFile:@"myfont.fnt"];
You only need to get the string in the correct position according with your xml file, for example in the included xml files the element 0 is "New game".
And that's it you will display your beloved text in the lenguage used by your idevice.
Donwload the files from here
Monday, March 28, 2011
2D engine tutorial
Hello guys, I decided to make a small video to explain in more depth how this engine works, and how you can create a game with it.
I'm gonna cover the scenes included in the project to show how easy is this to use, and how you can use this for your games.
Frankly if you are looking for a complete and powerful solution, cocos2d is a good choice, but I only need half features from cocos2d, so my engine is perfect for me at this point.
Enjoy the video and if you have any questions, please post a comment
I'm gonna cover the scenes included in the project to show how easy is this to use, and how you can use this for your games.
Frankly if you are looking for a complete and powerful solution, cocos2d is a good choice, but I only need half features from cocos2d, so my engine is perfect for me at this point.
Enjoy the video and if you have any questions, please post a comment
Monday, March 21, 2011
Multiplayer games
Hi guys,
One of the most fascinating things in the game programming is the multiplayer addition, make a solo game is not a big deal in the sense of game design, but multiplayer games are more complicated to design.
I didn't find tutorials or anything about multiplayer games and how to structure the code, the flow to handle the connections, how the game will respond when an user disconnects from the game, and I'm not talking about gamecenter but multiplayer general programming.
I'm working now in a multiplayer game, and I thought this will be a good point to make some tutorials about this topic, probably those tutorials will be for a small 2d game with a 2 players coop-option made with my engine, and easy to use in cocos2d because all the code is in Obj-C.
I will cover gamecenter integration here and the normal game flow for a multiplayer game. I promise that I will try to do this really easy to follow for anyone. Anyway I must say that a real multiplayer game is really hard to create, the network connection is not easy to handle and personally I see this option only useful for a turn based games or not too fast action games. Maybe it's because in Spain the internet connections sucks but damn, play with a decent ping it's almost impossible and create artificial lag for all the players to compensate and balance the game it's a really complicated task.
For example after setup the players positions and assign the roles (player 1,2,3,etc) it will be a good idea measure the ping of each player and take the highest ping and add it to the render time to add this artificial lag for all the players including the host, that way the game will seem much more balanced because no one has any advantage, and more than that, we don't want anyone dying on a screen and dodging the bullet in another. This will ruin the game experience and it's a really important point.
To give an idea to anyone thinking in include a multiplayer option for his game, from my point of view let's assume we need 3 months to do a solo game, add the multiplayer feature will take easily 2 months more, the beta testing is really slowing things, compile and deploy the build in all the devices, try to connect all of them, test the game, repeat the process...... time consuming.
There is no ETA for now, I'm really busy with my dayjob but this is something that I want to do as soon as possible :)
See ya,
One of the most fascinating things in the game programming is the multiplayer addition, make a solo game is not a big deal in the sense of game design, but multiplayer games are more complicated to design.
I didn't find tutorials or anything about multiplayer games and how to structure the code, the flow to handle the connections, how the game will respond when an user disconnects from the game, and I'm not talking about gamecenter but multiplayer general programming.
I'm working now in a multiplayer game, and I thought this will be a good point to make some tutorials about this topic, probably those tutorials will be for a small 2d game with a 2 players coop-option made with my engine, and easy to use in cocos2d because all the code is in Obj-C.
I will cover gamecenter integration here and the normal game flow for a multiplayer game. I promise that I will try to do this really easy to follow for anyone. Anyway I must say that a real multiplayer game is really hard to create, the network connection is not easy to handle and personally I see this option only useful for a turn based games or not too fast action games. Maybe it's because in Spain the internet connections sucks but damn, play with a decent ping it's almost impossible and create artificial lag for all the players to compensate and balance the game it's a really complicated task.
For example after setup the players positions and assign the roles (player 1,2,3,etc) it will be a good idea measure the ping of each player and take the highest ping and add it to the render time to add this artificial lag for all the players including the host, that way the game will seem much more balanced because no one has any advantage, and more than that, we don't want anyone dying on a screen and dodging the bullet in another. This will ruin the game experience and it's a really important point.
To give an idea to anyone thinking in include a multiplayer option for his game, from my point of view let's assume we need 3 months to do a solo game, add the multiplayer feature will take easily 2 months more, the beta testing is really slowing things, compile and deploy the build in all the devices, try to connect all of them, test the game, repeat the process...... time consuming.
There is no ETA for now, I'm really busy with my dayjob but this is something that I want to do as soon as possible :)
See ya,
Subscribe to:
Posts (Atom)
