2019-06-12

My Indie game Engine Performance Show (3), 2012's Old Mobile CPU A4-3300M

Video Explanation: Vic Gao’s game engine running on 2012’s entry-level mobile CPU A4-330m. Integrated graphics, 1366x800 notebook screen. Playing game + recording screen is smooth.



Vic Gao's game : Windows/MacOSX/Linux version  Html5 version (play directly)

My Indie Game Engine Performance Show (2), Mobile Cpu i3-8109u,4k Screen

Video Explanation: Vic Gao’s 4k game engine running on 2019’s entry-level CPU i3-8109u, integrated graphics 655. Video and image are all 4k. Video show playing 4k game + recording 4k screen is some poor, just playing 4k game is acceptable. Vic Heli 4k Java game on Linux and MacOSX is good, Windows is weak.



Vic Gao's game : Windows/MacOSX/Linux version  Html5 version (play directly)

2019-06-11

My Indie Game Engine Performance Show (1), Mobile Cpu i3-8109u,1080p Screen

Video Explanation:
    Vic Gao’s indie game engine running on 2019’s entry-level mobile CPU i3-8109u,
     integrated graphics 655, 1080p screen. 2 Helicopters,                   MissileLaunchers+Trailers+Radars+Panzers+Cannons+OilCans>100.
   Playing game + recording screen (60 fps) is still smooth.
   (Linux and MacOSX is good, Windows is a bit poor.)



Vic Gao's game : Windows/MacOSX/Linux version  Html5 version (play directly)

2019-06-07

Why Design My Own Game Engine ?

        Reasons:

        Designing own engine can fully control the direction of engine and product development, this is the main reason. The development cycle of game products is very long, even if develope a single-player game product, it is common to have a time span of more than one year or two years. For such a long time, many things can not be predicted in advance. Sometimes hard choices have to be made in the direction of development, all of these need engine support. The evolution and development of engines must obey my own product planning, so it is better to design my own engine.
       
        Designing own engine can accumulate assets. Game development is a long-term process. Generally speaking, the original game production time will be very long. In this process, there must be asset accumulation, otherwise, there will be nothing left after the time is passed. Making an own engine can make the life cycle of the whole development get the greatest continuity, the direction of engine upgrade will be in the most favorable direction of my own game products. Progressive renewal from generation to generation is necessary, when generation updates, if I have my own engine, I can upgrade according to my own wishes. If it was't my own engine, when forced to upgrade and replace it, everything would have to be cleared up, and then I have to start all over again, and the previous time might have been wasted.

        Designing own engine makes it easy to verify the possibilities of ideas. Game design is a very creative process, the game design process must also have many unique and innovative ideas, and also need to verify whether these ideas are viable. No matter how good the ideas are, if the engine doesn't support it, it can't be realized in the end. If it's a self-designed engine, even if the engine does not have these functions, it can also be developed to make the engine fully match the creativity.

        Designing own engine helps debug the game. Because of own engine code is very familiar with, so the entire development process debugging will be very smooth. In fact, it takes a long time and a lot of energy to master a commercial engine. In my experience, engines are so complex, if some one want to achieve the details and performance optimization to meet the requirements of commercial products, You need to be very proficient in a very large number of details. It takes so much time and energy, not as good as design it by myself (This turned out to be blind optimism, the actual design is extremely difficult). A lot of work on performance optimization can be done in engine design, and the development speed will be very fast when enter late stage.

        Designing own engine allows me to choose my favorite and comfortable programming environment. Because of designing own engine,so I can choose the development environment at will, I chose Linux+Java+Emacs, which I am very familiar with and love. Make game for the first time and design engine for the first time, encountered many difficulties and challenges. Have a very skilled and handy set of tools, can save a lot of time on code and can concentrate on product creativity, this is very important. On the other hand, game development is a long-term process, comfortable programming environment is also beneficial to health and life.

        Review after game finished, although the difficulty and workload far exceed the original imagination, I still think the designing own engine is correct. Several examples are given to illustrate:

        The first example is the requirement that the computer ten years old can also run my game smoothly. I think if my game could play smoothly on the computer ten years old, there would surely be more users. This requires special optimization of the engine, if it isn't my own engine, I couldn't have done it at all.

        The second example is to require the engine to support both client and browser versions. When I designed the engine at begining, because of knowing very little about the game industry, I thought that as long as the game could be made. The game is designed entirely in the Java environment and run entirely in the Java environment. But later, I learned more about the game industry, I feels that HTML5 games are easy to launch social content, have advantages in market, and may be have some steady cash flow. So, the game engine is required to support both client and browser versions. If it's not my own engine, half of the development has been done, if I want to do this, the only choice is replacing the engine. In this way, it is not easy to find such an engine, and it is possible that the previous work is wasted. My own engine is a lot more convenient, modify it directly to support this (Despite the heavy workload). Not only can the preliminary work be retained, but also the new direction of development fully supports my own ideas.
       
        The third example is that Html5's package must be very small. Html5 game must be able to play in a few seconds after the user clicks, which requires that the package must be very, very small, self-designed engines can be specially optimized in this respect.

        The fourth example is that each engine serves only one product family. This is a completely different idea from the popular business engine, and the advantage is that the engine can be optimized very well. Necessary functions can be retained, and unnecessary functions can be absent. Performances can be excellent, and package can be very small.

        All of this requires that the engine must support. Because it is my own engine, readjusted the direction of development, and finally achieved these goals, and the results are quite satisfactory. My first game VicHeli has not only client and browser versions, but also 1080p versions (including all the content of engine and game resources), the download package is only 1.8M, less than two megabytes. The performance is also satisfactory, and it can run smoothly on very old Toshiba L700D (A4cpu integrated graphics card 10 years ago). It's hard to do all this without my own engine.

        Finally, to design a set of engines which can meet publish quality, the workload is still relatively large. At present, all kinds of commercial engines on the market, whether functional or editorial development environment, are becoming better and better, but also a good choice.




2019-06-05

Why Not Choose A Popular Game Engine?

        Reasons:

        Indie programmers have no advantage on popular commercial engines. These engines simplify a lot of programming work, the focus of the competition will be on large-scale advanced art, this is the advantage of capital, indie programmers are at a natural disadvantage.

        Popular engine can cause serious homogeneity. the same engine is used by countless people, no matter how innovative you are, the probability of meeting similar people is very high. Especially some popular plug-ins or good function, will causes a lot of products to be very similar.

        I learned about the game industry late, but when I saw some game video, I was shocked, how come so many games are so similar! Designing my own engine maybe avoid similarities with others. Games are creative products, it's very important not to repeat with others.     

        Some game's background is oily or blurred , I don't like, I like sharp background. Although I don't know much about these engines, but I guess it's not because of engine but because of distance, the content of the art scene is proportional to the square of the distance. Because the distance and the space are big, to have a clear background, it need a lot of art scenes and takes a huge amount of art work, obviously such a work mode is not suitable for a solo programmer. By my intuition, design an own engine, short range and local use 3D, distant background use 2D, the game making workload may be low, this mode suits me.

        Review after game finished, my intuition is correct, the art workload of a game is too great for a solo programmer.




2019-06-03

Java Is Also A Good Choice For Game And Engine Design

   
       The main reason is that the java game can be played on Windows,Linux and MacOSX. Each platform has a lot of users, this is very important. Java is convenient for development on Windows,Linux and MacOSX.

        Another reason is that both the server back-end and the front-end using Java language is more convenient. Using Java language is convenient for building a team, as well as facilitating internal communication and mutual help within the team.

        Review after game finished, I think choosing Java is right, the goal of being able to play my game on Windows/Linux/MacOSX platform is achieved. Both the server back-end and the front-end using Java language can save a lot of time and energy. Especially, jlink which is introduced from java9, is really convenient for distributing games.


Video: My Java Game And Engine on Windows


Video: My Java Game And Engine on MacOSX


Video: My Java Game And Engine on Linux


The Benefits Of Choosing Linux To Develop Game

        I chose Linux as my development environment, which I've been using for many years, I love and familiar with it.

        In fact, there are other considerations besides familiarity, Open source is an important reason. Another benefit is to keep my development environment the same as my server's.

        The game development, not only need the client's front-end technology, also need the backend server technology.  However, most of the time the server may have no problem, once appear problem, it is necessary to solve quickly. if the development environment is the same as the server, it is very beneficial to achieve this.

        Review after game finished, I think choosing Linux is correct.
     
        First, almost all needed game tools can be found in open source software, gimp, blender, imagemagic, kazam is really very good, a lot of other tools are easy to find also. Especially for the first time developing a game, a lot of things need to be explored. It will be wasted if buy a lot of commercial software from the start, but finally may be abandoned.

        Second, the game development time is very long, many tools need to learn, many things are the result of a lot of hard work,the development process should be built on a platform which may be used for a long time, I think Linux is a good choice.