The global hand tour industry will exceed $25 billion, and more and more developers are entering the field of hand-travel research and development, and as a rookie, many times, if no other developer's advice, will go a lot of bends. Independent Studios Sheado.net Company's Chad ATA shares in their blog The experience they have accumulated from the start of their first tour to the past four years, hoping to provide some help to new entrants.
The following are the translations:
When you start to enter the field of game development, it is difficult to know what tools to choose, what programming language and which frameworks, you will face a lot of choices and suggestions, my team and I can always find that the experience of other game companies is useful, so here are some of our experience, hope to do hand-tour novice to some help.
First tour industry
Although I have had more than more than 10 years of programming and planning experience in other industries, I still feel like a rookie when I started to do the research and development of the hand tour. Our first game, Furdiburb (Pet adventure game), was originally developed in 2009 and was specifically designed for Android. Java is the only programming language available to us with no game development experience. As a 2D game, we are very unwise to start non-hardware accelerated graphics development without using OpenGL. As Furdi was welcomed by more people, our game programs got more attention, and eventually we ran into performance and porting issues. If we had learned the experience of other developers before, many problems could be completely avoided.
Find a better way
After completing the development of FURDIBURB and using Playn to slowly transplant the game to the iOS platform, we decided to start the development of the second game (Eras of Alchemy). We wanted to get rid of the Java language and find a wide range of cross-platform development tools, preferably in the future to support the host gaming platform.
Then we started the search, and I spent nearly one months comparing frames, tools and engines, and finally, my team and I were very happy with the new way of research and development, and it was very good. I'm not going to say why I choose these, the framework is constantly changing, and the reason for choosing it a year ago may not be the main factor to consider now. So, the rest of this article will simply describe the reasons why we chose a tool. Here are the results we chose and compared after one months:
Programming
What we have listed is used in the development of our games, and just the way we do the game, a lot of tools and frameworks are very well combined, it needs to be discovered by the developers themselves.
Framework
All of the architectures we choose are either open source or open code. This is very good because we can make urgent changes and optimizations when necessary.
Cocos2d-x: All of our cross-platform developments are done using the open source Cocos2d-x framework, and we used version 2 in the development of the eras of alchemy, and our next game is using version 3, which has a large API and performance boost. Overall, the Cocos2d-x 2D is very good, and the file management is very convenient.
Spine: We used Spine to animate, so we added the C language-based Cocos2d-x plugin.
Box2D: We haven't released a game that uses the engine, but our next game, a quiver of crows, will be used, and we're using this tool for the current development.
Sqlite:cocos2d-x itself also provides data storage solutions, but we prefer to use sqlite because it reads and writes faster and with better performance.
Programming languages
C++:cocos2d-x supports multiple language programming, but we chose C + + because we think the language is the most suitable for cross-platform development.
C: You often want to add some open source APIs, some of which are C programming.
Java: We still need to use Java, but it's only when the Android platform is doing in-game IAP, ads, and special system functions. Switching between languages can be done through JNI.
Objective-c: The reason for choosing it is that, like Java, we use OBJECTIVE-C to use specific features of the iOS system.
Scripting: This includes programmatic scripting and other scripting languages, and all developers have to write scripts from time to time, but we rarely talk about this. The problem is very easy, but if you're like me and you don't remember some syntax because you don't use it very often, it's a very time-consuming task, and we're going to write scripts for maintenance code, automatic audio conversion, and texture wrapping.
Development environment
Xcode: Everyone told us that Xcode was great, so I tried, and I had to say, this is my favorite development environment right now. I do not want to say a lot of specific reasons here, because I do not want to provoke an integrated development environment (IDE) controversy, we use Xcode for cross-platform development, but also for the Apple platform to do special programming.
Eclipse: Very slow for the IDE, but it seems to me very useful. We used eclipse to do all the Java and Android development, including adaptation and bug fixing. Android is currently pushing Android studio instead of Eclipse, but we don't have that much time and there's no special reason to switch to the new tool.
Visual Studio: is also a very good IDE, we use it to do about the Microsoft-related programming, bug fixes and adaptation.
Version control
Even if your team has only one person, you should use version control. Everyone makes mistakes, and any big change can lead to a mysterious game of death. There are only 3 people in our team, so version control is essential from the first day of your tour. There are a lot of options available today, but we use the following several:
SVN: I personally like SVN, because I can do all the functions I need, such as merging, syncing, recovering, etc., but it is difficult to learn.
Git: Many of the open source frameworks we use use Git. We use Git to stay in sync with the framework and to fix it quickly when needed.
Computer
Obviously, you need to use a computer to do the game. All of the initial research and development was done on a Linux machine. But after we started the development of the iOS platform, it was very inefficient to use two or three computers, so we bought some imac and we all enjoyed it for game development. Fortunately, many of OSX's instructions are the same as Linux, so many of our scripts haven't changed.
Graphical tools
Adobe CS: No one is surprised to believe this, and our artists most often use illustrator and Photoshop.
Spine: This tool is highly recommended for skeletal animation, which saves hard disk space compared to traditional frame-to-frame animations, but also saves a lot of research and development time and provides powerful features such as animation blending, skinning techniques, and mesh morphing.
Texture Packer: You might want to pack the pictures to get bigger images for better gameplay. We chose texture Packer to do the work, and we used its instruction function to automate the packaging process.
Level editor
The level editing tools we use include:
No editor: We will never use an editor if it is not possible. We can work with code, which sounds crazy and a bit of a waste of time, but if your team is very small, sometimes you don't have to write an editor for a one-time task in order to save a few hours.
Custom Editor: Sometimes we write a very bad in-game editor to do graphics or levels, I mean without optimization, I am afraid that only we will do so.
R.U.B.E: For our next game, we have developed an in-game editor almost ourselves before using R.U.B.E (Really useful box2d editor), a very powerful tool that saves us a lot of time, But if we decide to make a level editor, we have to develop it ourselves.
Music and video
Ffmpeg: I personally like Ffmpeg very much, this tool is very useful, and we usually use scripts to turn our video into the format required by each platform.
Cakewalk Sonar: This is a very powerful music production software, the beginning of the study will be more difficult.
Garritan Personal Orchestra: If you want to add orchestral music to your game, Garritan can bring you a very high-quality soundtrack that we usually mix with sonar.
Audacity: A very good video editing and recording tool.
The following 2 are tools we no longer use, but may still be recommended for beginners:
Anvil Studio: If you are familiar with musical instruments and are willing to learn some music, and want to do MIDI format music, this is a very good software.
Linux Multaimedia Studio: This is a very good and simple software that can make very good music and does not require you to read a lot of music knowledge.
Conclusion
There are so many tools to do games, these tools are just the tools we choose when we do 2D games, so far we are very pleased with these tools, and our newest games are released to iOS, Android and Windows Phone platforms. We also plan to extend the game to PC, Mac and Linux platforms with the same tools when the next game is released. |