Some time ago, a post titled "15-year-old junior high school students have developed a small game in under six weeks" appeared on the Cocos Chinese forum, which caused a wave of replies.
The post was posted by Cai Yuejiang, a 15-year-old boy from a small city in Hebei province. This year, he spent 42 days and typed nearly 6,000 lines of code to develop a 2D game named "Elfland." There are 11 levels in the game. The player can kill bosses and enemies to improve their character level, obtain weapons and equipment, and gold coins. The game requires a lot of skills by incorporating skill points and tasking.
When we contacted Cai Yuejiang for the first time for an interview, he was preparing for an exam. He messaged us with, "I have to take the exam first. Contact me later." So, about a month later, after he finished the exam and started his summer vacation, we finally had the opportunity to talk to him about his "advanced journey" from a zero-knowledge beginner to a Cocos Creator developer.
Cocos: Do you usually like to play games? How much time and money will you spend playing games?
Cai Yuejiang: I like it, FPS, card-based, survival... I play both single-player games and online games. I also particularly like large-scale games on Steam. I have been playing survival games such as "Survive on Raft," "Unturned," and "Dead Island Survival" recently, and I feel they are very interesting.
Now we have a little more time to play games during the summer vacation. When I’m in school, Saturday and Sunday, I’m going to a tutoring school for Chinese, mathematics, English, and three other subjects. After class, I have to write homework. After finishing my homework, I have to memorize politics and history to prepare for the weekly test every Monday, So I have less time for fun.
I'm also a player with no money because my parents disagree with me spending money on games. Basically, I use Steam’s and Epic’s free-to-play games.
C: How did you learn about Cocos? How did you learn to code with Cocos?
Cai: I have always been interested in game development. I especially wanted to learn, but I don't know where to start. In 2019, by chance, I saw a video tutorial on using Cocos Creator to develop "Flappy Bird" on iQiyi, and then I fell into building my own games when I was just a junior.
Now, I am a self-taught Cocos developer. I look for free lessons from Tencent Classroom and NetEase Cloud Classroom and then read some articles from major Cocos Creator developers. If you don’t understand, look at the documentation, browse the forums, and ask other programmers. My city is very small, there may not be a programmer in the whole area of my town, but through online chatting on QQ and WeChat, I know many programmers!
C: Was the self-study process smooth? Have you encountered any difficulties?
Cai: It wasn't good. I took many detours. For example, in the first "Flappy Bird" I made, the collision between the bird and the tube, I thought I had to write the “if” statement in the code to judge it by myself... At the time, I didn't know that Cocos Creator had the term "collision system." It took a long time and a lot of effort to realize that judgment on your own. Later, I watched it slowly on the Internet, and I gradually realized that there was this thing.
C: Is "ElfLand" the first game you developed with Cocos Creator? How is the experience of using the engine?
Cai: "Elfland" is the first relatively large game I developed with Cocos Creator. Before that, I had made a few small games. I made it at home during school suspension because of the epidemic last year. Some took a week, some took a few hours, and the game was finished and sent to classmates to play.
The development used Cocos Creator 2.x, and the experience is very good. The engine provides a lot of components, it is very convenient to use, and it is free and open-source, which is very friendly to newcomers. In fact, I have used Unreal before, but my computer can't run CUHK projects, so I’ll use it later.
C: Why did you want to develop "Elven Land" in the first place? Briefly introduce the development process.
Cai: I used to like "Dream Journey to the West" very much, and I have always wanted to make a game like "Dream Journey to the West." This winter vacation, I spent 42 days developing "Elfland." When I was developing it, I had to do it a few hours a day. Once I sat in front of the computer for more than 10 hours. In addition to eating and drinking water, my legs were numb... This thing is really addictive!
The entire game code is nearly 6000 lines, all written by myself. Some of the art resources were found online from free materials, some were bought, and one or two were really not found, so I had to cut and draw a picture by myself. I bought the Spine skeleton animations of all the characters from Taobao. It cost 20 to 30 yuan. Anyway, it is not expensive. In the protagonist’s set of Spine skeletal animation, there are some animations. I also spent fifty yuan to find professional art and add a few actions.
C: In the development process, is there a moment when you are very sad or even wanted to give up?
Cai: That's... um... Once I accidentally deleted this project after working on it for several days. Then I could only use the backup from a long, long time ago to do it again... At that time, I really wanted to cry, and it was especially uncomfortable. The whole development process is very tiring, hard work, and troublesome, but I enjoyed it.
C: How do you feel after finishing it? Are you satisfied with the finished product?
Cai: Happy, excited, full of accomplishment and pride. I am quite satisfied with the finished product. The most satisfying part is that I think the game could be even richer. Players can match skills and weapons at will. Its level, attack power, defense power, and critical attacks will change with the battle; I have been working on the art for a long time.
There are 11 levels in "Elfland." Each level has a different character image and scene design.
C: Are there any regrets?
Cai: Of course, I have regrets. After the game was finished, I didn't carefully adjust the parameters, such as the number of enemies, attack value, defense value, etc., which caused the game to be unreasonable in some parts, such as the first level, the mobs are very weak, the second level becomes very strong, and then the next level becomes very weak. It’s not very balanced.
C: What do you think is the difference between "playing games" and "making games"? Which one do you enjoy more?
Cai: Playing games is to experience the fruits of other people's labor, and making games is to let others experience the fruits of your labor. I think... I enjoy making games more. I am not particularly addicted to playing games, but I am starting to get addicted to making games. My mother couldn't control me making games. She urges me to turn off the computer every day. After ten o'clock, she told me to turn off the computer, and I just didn't turn it off.
C: After you shared this game on the forum, you got enthusiastic feedback from many developers. Are there any replies that impressed you?
Cai: The impressions are quite deep. After posting that post, I became friends with the "Plugin Little Prince" Xu Yanfeng. Every time I ask him a question, he answers me very patiently. The two of us made a phone call several times for several hours, and one day we started talking from around nine o'clock in the evening until the early hours of the morning. The main thing is to talk about some technical issues. He always tells me a lot of very profound knowledge... and he also talks about life planning and the like. He told me to learn the basics and don't worry, step by step.
C: In the future, if you are asked to develop another game, what type of game do you most want to develop?
Cai: I studied the 3D part of Cocos after finishing "ElvenLand," and I recently taught myself Cocos Creator 3.x. I really want to develop a 3D zombie survival game similar to "Unturned. " I especially admire the developer of "Unturned." This developer developed this game when he was 16 years old. It has received a lot of praise on Steam, and I also like to play it.
C: Based on your current experience in game development, what characteristics do you think a good game developer should possess?
Cai: You must have dreams, passion, creativity, and a strong foundation in technology and art. Technology alone is not enough. A programmer must also look at art.
C: Do you have any plans for this summer vacation?
Cai: I have been staring at a Creator paid course in the Tencent classroom for almost 3 years. My parents did not agree to buy it before, but now they finally agreed to buy it! I hope I can get a discount for being a kid.
Because I have always been self-study, I see something and research it today, and I will see more articles and research them tomorrow. The things I learn are messy and disorderly. Many things are done based on my own understanding. There are still many things to learn and functions that I didn’t know about, so I hope to take advantage of this summer vacation to study Creator more systematically and in-depth to make up for the omissions and deficiencies of the previous knowledge. After all, after my junior high school, I might not touch the computer with all the homework.
C: Finally, a very clichéd question. What is your dream?
Cai: Studying computers at university, and I will be a programmer in the future and do game development. I especially want to develop a kind of large-scale mobile game with outstanding graphics.
It seems that everything that is very extraordinary in the eyes of others can be simply attributed to the word "love." At the age when "love" can solve everything, it’s fun to explore, learn and persist, and finally bloom fresh and energetic like a flower. Regardless of whether it is an experienced veteran, a newcomer who is new to the game, a professional gamer, or an independent developer, Cocos helps everyone realize their wild ideas and "make game development easier."
I look forward to more and more young people joining the ranks of game development, young people with ambitions, and living up to their love like I am.