If you are a software developer working in the video game industry and wondering what else you could do to improve the quality of your product or make the development process easier and you don’t use static analysis – it’s just the right time to start doing so. You doubt that? OK, I’ll try to convince you. And if you are just looking to see what coding mistakes are common with video-game and game-engine developers, then you’re, again, at the right place: I have picked the most interesting ones for you.
One of the best ways to prove that static analysis is a useful method is probably through examples showing it in action. That’s what the PVS-Studio team does while checking open-source projects. After publishing of various articles, we compiled our top-10 mistakes from the program code in the video-game industry, and now we suggest you read this article - https://www.viva64.com/en/b/0570/
List of projects considered in the article:
- X-Ray Engine
- CryEngine V
- Space Engineers
- Quake III Arena GPL
- Doom 3
- Unreal Engine 4
Although video-game development includes a lot of steps, coding remains one of the basic ones. Even if you don’t write thousands of code lines, you have to use various tools whose quality determines how comfortable the process is and what the ultimate result will be. Static analysis is a very useful tool when developing, and one more option to help you improve the quality of your code (and thus of the final product).
A story about the sense of vision, the perception of frames and the refresh rate, motion blur and television screens.
IntroductionYou could hear the term frames per second (FPS), and that 60 FPS is really a good reference for any animation. But most console games go for 30 FPS, and movies are usually recorded on 24 FPS, so why should we aim for 60 FPS?
Frames ... per second?
The early days of filmmaking
The shooting of the 1950 Hollywood film Julius Caesar with Charlton Heston
When the first cinematographers began to make films, many discoveries were made not by a scientific method, but by trial and error. The first cameras and projectors were manually controlled, and the film was very expensive - so expensive that when trying to shoot, they tried to use the smallest possible frame rate, just to save the film. This threshold was usually between 16 and 24 FPS.
The speed of the game is the responsibility of all team members, regardless of the position. We, 3D programmers, have ample opportunities to control the performance of the video processor: we can optimize the shaders, sacrifice picture quality for speed, use more cunning rendering techniques ... However, there is an aspect that we can not fully control, and this is the graphics resources of the game.
We hope that artists will create resources that not only look good, but also will be effective in rendering. If the artists learn a little more about what is happening inside the video processor, this can have a big impact on the frame rate of the game. If you are an artist and want to understand why aspects such as draw calls, LODs and MIP textures are important for performance, then read this article. To take into account the impact that your graphics resources have on game performance, you need to know how the polygon meshes get from the 3D editor to the game screen. This means that you need to understand the operation of the video processor, the chip that controls the graphics card and is responsible for the 3D real-time rendering. Armed with this knowledge, we will look at the most frequent performance problems, understand why they are a problem, and explain how to deal with them.
The artists painted bright graphics, the programmers built it into the game, the animators added movements - it would seem, everything is ready. But no, managers do not like:
You need to remove gray spots and white lines. Then the pulsating button jerks, there the progress bar goes with a ladder.You look at the game resources - there is nothing in them, all sprites are cropped. You read the code - the formulas are correct, there is enough shader accuracy. But the result was still unimportant. Where is the mistake?
A small poll for those who already know where the artifacts come from. What to do in this situation?
You need a powerful graphics card and fresh drivers;
It is worth making downloadable sets of graphics for all possible screen resolutions;
Square textures with the sizes of a degree of two do not have such problems;
This is all due to the compression of graphics (PVRTC / DXT5 / ETC1 / ...);
In the graphics editor you will have to smudge the edges slightly;
This should have happened, because we did not prepare graphic data;
Only antialiasing will help;
You need textures and targets in the premultiplied alpha mode.
What is the correct answer, why exactly and how to overcome the artifacts of graphics read under the cut.
I will introduce you to the full tutorial on HTML5 with a demo on the algorithm of machine learning the video game Flappy Bird. The purpose of this experiment is to write an artificial intelligence controller based on neural networks and a genetic algorithm.
That is, we want to create an AI robot that can learn the optimal game in Flappy Bird. As a result, our little bird can safely fly through obstacles. In the best scenario, she will never die.
After reading the theory behind this project, you can download the source code at the end of this tutorial. All code is written in HTML5 using the <a title="Phaser Framework" href="http://phaser.io/"> phaser </a> framework. In addition, we used the Synaptic Neural Network library to implement a neural network so that it would not be created from scratch.
DemoFirst, look at the demo to evaluate the algorithm in action:
Run in full-screen mode
In the code id Software sometimes there are unmatched pearls. The most famous is, of course, 0x5f3759df , which even got comics on xkcd . Here we are talking about filling the screen: pixels are colored one at a time in random order, without repetition. How is this done?
The problem of most disputes about the problem of piracy is that in them "value" is estimated only in "monetary" dollars. Therefore, the problem is formulated like this: "When buying a game from us, the user spends money dollars. A pirated copy costs zero money dollars. So most people will pirate the game if they have a choice, so you need to stop them at any cost. "
The dollar is famous for everyone.
This is the error, therefore, at least four currencies, and not one (monetary dollars) should be taken into account here.
I propose the following notation:
($ D) Monetary dollars
($ B) Temporary dollars
($ D) Headache paints [in the original Pain-in-the-butt-dollars]
($ Ч) Honesty Dollars
The player makes the choice to buy or spiratit game based on how much "each" service (and not product! ) costs in these four currencies, and also depending on the value for the player each of them.
According to the StatCounter statistics, the number of mobile web users has surpassed the number of desktop web users. This goes to show how many people use their mobile devices to browse the internet. According to Gartner prediction, the revenues from mobile app will surge to $77 billion in 2017. The question remains, how will you make your app stand out from millions of other mobile apps? The answer is by following the best mobile app development practices. In this article, you will learn about seven best mobile app development practices.
Know Your Target Audience
The first question that you need to ask yourself is who will use this app? Understand how your user will interact with your app and which feature they want in your app. If you want your mobile app to be a roaring success then you should know your audience like a palm of your hands. The better you know your audience, the better change you have to give them what they are looking for. Not only does this makes your job a whole lot easier but it also pave the way for delivering a perfect user experience for your app users.
Have a Design Strategy
Having a design strategy is critical for success especially when you are developing a cross platform mobile application. When you are designing a cross platform app, multiple activities are underway simultaneously. Therefore, if you do not have a sound strategy then there are bright chances that you mess up your mobile app. List down key functionality of your mobile app as well as future components on paper so that you can easily minimize the risk of emerging problems at different stages of app development cycle. Involving users into the design process will provide you with valuable feedback that will take you closer to designing a perfect mobile app for your users.
Develop Most Important Features First
Many app developers take the adventurous route of creating the most difficult feature of the app first. As a result, they fail to launch the app before the deadline and their mobile app exceeds budget. The best way to go about it is to focus on essential and core features and develop them first then move on to create features that are more complex. You will have to lay a solid foundation with core features and then take it from there. App developers can work on additional features and launch them in next releases or as a plug in when necessary but should focus on critical features of an app.
Make App Security Your Priority
According to Now Secure mobile security report, 35% of mobile communication, both voice and data are not encrypted. Moreover, most of the mobile communication takes place through wireless medium. This makes it a soft target for hackers and more vulnerable than other wired communication devices. Make mobile app security your priority, identify and fix any vulnerability in your mobile app before releasing the mobile app for users. Keep the user confidential and private information safe so that users are comfortable in using your mobile app.
Test, Test, Test
Despite putting a lot of emphasis on testing the mobile app before putting it up for downloads, a survey revealed that, less than 50% of companies test their mobile app for security while 33% do not even bother to test their mobile app, which is quite alarming. It is better to test your mobile app at each stage of the app development cycle but if you cannot do it, at least test the app thoroughly at the end and make sure that there are no glitches left before uploading your mobile application on app store. One bad user experience can prove to be very costly so it is better to pass your mobile app through comprehensive testing processes to prevent such issues.
Establish a Feedback Mechanism
Last but certainly not the least, is to incorporate feedback into your mobile application. Provide user with a medium through which they can give their feedback and share their opinion with you. Users can prove to be a vital resource if you allow them to give feedback as they experience crashes, bugs and errors that you might have missed. This makes it easy for app developers to make improvements in the future. Ask users about which features they want to see and add them in the future releases to satisfy them.
At the end of the day, it usually comes down to the user experience and satisfaction that will decide the fate of your app. If you know about any other mobile app development best practice that can make a big difference to your mobile app development efforts, then feel free to share it with us in comments section below.
Once it seemed that the movie stunts will be done without stuntmen. However, it's still wrong. The computer animation always uses the motion capture technology to capture the stuntman motion.
Even the the most advanced blockbusters to make the animation that exceeds the stuntman capabilities when shooting motion capture use the steel ropes, trampolines and other tricks. Is the animation possibility limited to that?
GuildWars 2 is a new multiplayer game that is one of the most expected MMO in Europe. In addition, it is one of the most promising projects in the recent years. ArenaNet developers went through all standards of MMO and destroyed them, or at least they overtaxed them. If the developers’ promise will come true for at least 60% -70%, this game could really become something new and very interesting. According to the beta tests, they proved to be 90% for sure.
So, what's so special in this game? I want to make a reservation right away, the most features of the game are not new, but before all these solutions were never used together and worked out so carefully.
The first and perhaps the most curious feature is almost complete absence of standard in-game quests. They are replaced by the dynamic events. For example, the developers give the following situation:
In a regular MMO with the quests, you run into a farm during traveling around the world, at the porch entrance stands a peasant with an exclamation mark above his head. You come to him, click on the button and read the plain text, which states that a farm will be destroyed by terrible trolls. You take a task to protect the farm and go to the nearest glade with trolls. These miserable monsters did not even think to attack the farm, they just have grazed on this glade and gathered flowers all their life. You kill dozens of trolls and go back to the farm, there you hand over the task and get your reward ... It looks standard, it is known and boring.