Rare! The U.S. federal government is releasing NFTs to investors for the “first time”. The reason is…
The U.S. federal government will contact victims of a million-dollar cryptocurrency scam via NFTs after the founder pleaded guilty.
WeiliangAuthor: Jake @ Antalpha Ventures, Blake @ Akedo Games, Jawker @ Cipherwave Capital
Due to the different architectures adopted by different R&D companies (adopting project + middle platform organizational structure), the emphasis on projects and middle platform organizations is different. Some are strong projects and weak middle platforms, while others are strong middle platforms and weak projects. Therefore, this series of articles mainly analyzes the functions and processes involved in game development. Based on this, the second article in this series mainly analyzes the industrial production and production (art and technology) of Web3 Gaming. After the game project was established, the game planners have determined the core gameplay and playability details, including character growth, player behavior guidance, maps and plots. Therefore, game planners need to communicate with art and technology to advance Web3 game development to the design and development stage.
When the planner has clarified the requirements, the front-end and back-end technology and other technical program teams of the game need to implement the game design proposed by the planning department, write game code, and ensure the technical implementation of the game. In the specific implementation process, it can be divided into front-end programs and back-end programs. The main program needs to manage the entire process of technology, including but not limited to determining the main technical implementation plan, optimizing various performances, and guiding the construction of the underlying framework.
Front-end program: covers display, optimization and logic, including the processing of sound files, image files and text files.
Back-end program: covers the server side, including but not limited to database structure, data transmission, verification, storage and communication methods, etc.
The following figure shows Web3 Gaming in the front-end program and the back-end program. The two parts will be analyzed in detail later.
The front-end program development of the game focuses on the game interface, interaction and user experience. In terms of interactivity and user experience, it is necessary to focus on the interactivity and user experience of the game, which includes the design and implementation of the game interface (UI), the development of the user interaction (UI) system, and the creation of animations and visual effects. In addition, front-end engineers must ensure that the game has a consistent user experience on different platforms, including desktop and mobile devices. In terms of implementing game logic, developers need to focus on the behavior of characters in the game, the execution of game rules, the management of scores and progress, and the event response mechanism in the game. Developers need to write efficient and seamless code to ensure smooth, fair and challenging gameplay.
Therefore, according to the above goals, front-end developers need to use relevant programming languages (such as C#
, C++
, etc.), use game engines (such as Unreal, Unity, Source and CryEngine, etc.) to create game interfaces, adjust animation effects and sound effects, etc. There are many game engine tools on the market for developers to use, and specific game engine tools need to be selected according to the specific needs of developers. Different game engines have different focuses on supporting the developer community. The following are the preferences and requirements of game technology research and development for game engine selection:
Project requirements: Different types of games have different requirements for engine selection. For example, for AAA games that emphasize visual effects, Unreal Engine or CryEngine may be more suitable; while for small games on mobile platforms, Unity may be a better choice.
Learning curve and community support: An engine that is easy to master and use can significantly reduce the difficulty of development. In addition, an active community can provide rich resources and support, allowing developers to quickly find solutions when they encounter problems.
Performance and optimization: The performance and optimization capabilities of the engine are crucial to the running effect of the game.
Cost and licensing: Some engines may require payment or have specific licensing requirements. Developers need to make trade-offs based on budget and project requirements.
Extensibility and customizability: As the game industry continues to develop, game engines must be able to adapt to new technological trends and requirements. Understanding the scalability and customization capabilities of the engine can help developers better cope with future changes.
Based on the above demand analysis, the following is a brief introduction and analysis of two representative game engines, Unity and Unreal Engine.
Unity is a game engine that supports multiple mainstream platforms, such as Windows, Mac, iOS, Android, etc. Unity is highly customizable and allows developers to write scripts in C#
or JavaScript
. In addition, Unity provides a rich resource store where developers can purchase and download various plug-ins, models and sound effects. The main advantages of Unity include an active community, excellent cross-platform compatibility, a relatively easy-to-use development environment and a large number of third-party packages. Developers can create their own feature packages and sell them in Unity's official store. Currently, more than 1.5 million developers browse the store every month, and there are more than 56,000 packages available. From the perspective of commercialization and monetization, Unity will be more diversified. The commercialization channels include Monetization SDK, Unity Game Cloud one-stop online game service, Vivox game voice service, Multiplay overseas server hosting service, Unity content distribution platform (UDP), Unity cloud construction and other diversified services. Among them, Monetization SDK is for developers to access, and Unity directly serves as an advertising distribution portal to distribute advertisements. At present, this service has replaced the engine commercial authorization and become Unity's main source of income. World-renowned games such as "Escape from Tarkov", "Temtem", "Call of Duty" mobile games and "Hearthstone" have proved that Unity is one of the best game engines on the market. However, Unity's performance optimization is relatively poor, and its processing capabilities for large-scale scenes and high-precision models are relatively limited. Unity's UI experience is inferior to Unreal, so developers must add many third-party packages to improve the engine's functions. In addition, in terms of programming, Unity uses C#
and JavaScript
, which leads to some adaptability problems in the Unity development process. In March 2020, Unity officially launched its latest 2019.3
version, which includes two features, HDRP (High Definition Render Pipeline) and URP (Universal Render Pipeline), which enhance visual effects and optimization capabilities. At the same time, special effects view editor, real-time fiber tracing system, etc. were added to make it more adaptable to the needs of the current market and applied to the production of large-scale games.
Unreal Engine is a fully open source high-performance game engine, known for its excellent graphics and physics engine. It supports C++ and blueprint visual programming, provides a powerful material editor and lighting system, and can achieve realistic game graphics. For developers, Unreal can not only be used for free, but also allow them to study the code to further improve development efficiency. In addition, the Unreal engine comes with blueprints, so even if you are not a technical developer, you can complete the design of the game through a point-to-point visual interface. In addition, Unreal Engine has cross-platform compatibility and a highly customizable UI system. In terms of charging, Unreal has adopted the traditional engine business model. The first charging model is to charge a fixed commission of 5% for the part of the total game revenue exceeding US$1 million; the other charging model is to sell official or third-party materials in the mall and extract 12% of the revenue. In terms of game output and popularity, world-renowned games such as "Borderlands", "Batman: Arkham Asylum" and "Final Fantasy 7 Remake" all use the Unreal engine. However, the learning curve of Unreal Engine is steep, easy to get started but not easy to master, and it takes a certain amount of time and experience to master it.
According to data analysis by Medium and Jinghe, in 2021, Unity's global market share reached 49.5%, and Unreal's global market share reached 9.7%, forming a duopoly competition pattern. Another market research report shows that in 2023, the market shares of Unity and Unreal Engine will be 48% and 13%, respectively. The following table compares the two in terms of graphics, features, code, and performance.
In terms of visual and image effects, Unreal Engine can achieve slightly better results than Unity, but the difference is very small. From the perspective of getting started, Unity is easier for beginners to use, and the C#
required by Unity can usually achieve faster compilation speeds and shorter iteration times; while Unreal Engine is more difficult for beginners in terms of animation and graphics processing. In actual use, the effects that Unreal Engine hopes to achieve and achieve can also be achieved through Unity. Both software can achieve better quality and more efficient graphics performance effects by calling APIs or tools. According to statistics, in actual operations, code engineers prefer Unity, while technical artists who have higher requirements for graphics and expression prefer to use Unreal Engine.
Similarly, for front-end technology developers, in addition to Unity and Unreal, there are other game engines to choose from. The following are several commonly used game engines for reference by front-end technicians:
CryEngine It is well known for its high-quality graphics and powerful physics engine. It provides real-time global illumination and high-quality models and materials, providing developers with the possibility of creating real-world games. However, CryEngine has relatively few documents and community resources, which may be difficult for novices to learn.
GameMaker Studio 2 is a game development tool that can be used to make 2D or 3D games. There are many tools and editors to help developers realize their game ideas and port the final project from the same initial basic resources to multiple platforms. GameMaker Studio 2 provides an intuitive and easy-to-use drag and drop (DnD™) action interface icon that allows games to be created using virtual code logic. At the same time, you can use the scripting language GML to create games, and even combine the two to use DnD™ actions to call functions.
Godot Engine is a versatile, cross-platform 2D and 3D open source game engine that can run on multiple operating systems such as Windows, macOS, and Linux. The games it creates can run on platforms such as PC, Android, iOS, and HTML5. By designing games based on a node-based architecture, the 3D renderer design can enhance the graphics of 3D games. The 2D game function with built-in tools works in pixel coordinates and can control the 2D game effects.
No matter which game engine is chosen, front-end game technology developers need to consider the actual use in operation. Since Web3 games are consumer products, diverse gameplay mechanisms (such as concentration, empathy, and imagination) and immersive emotional interactive experiences (such as pleasure, fear, desire, growth, leisure, relaxation, and surprise) are important prerequisites for consumers to continue to consume. The following takes the physical simulation and drawing system (rendering system/renderer) in the game process as an example to analyze the technical details and user experience issues that front-end technicians need to consider when using the game engine. Without accurate physical effect simulation, even the most gorgeous game will appear static and dull. The diverse scenes in the game all involve physical principles and physics engines. The physics engine is a component that gives the game world objects real-world physical properties (such as weight and shape, etc.) and abstracts them into rigid body models (including pulleys and ropes, etc.), so that the game objects can simulate the movement of the real world and the collision process between them under the action of forces. That is, based on the Newtonian classical mechanics model, the movement, rotation and collision of game objects are calculated through a simple API, and the effects of real movement and collision are calculated. In the calculation process, theories and calculations of multiple disciplines such as kinematics and dynamics are applied.
Kinematics: A branch of mechanics that describes and studies the law of change of the position of an object over time from a geometric perspective (referring to the physical properties of the object itself and the forces applied to the object). The kinematics of a point studies the motion equations, trajectories, displacements, velocities, accelerations and other motion characteristics of a point, as well as its transformation in different spaces. Kinematics is a branch of theoretical mechanics that uses geometric methods to study the motion of objects. In the course of work, front-end technology needs to consider adding assumptions and premises to reduce the computational complexity while being as close to the actual physical rules as possible. Common assumptions include: not considering the motion under the action of external forces, taking an object as a geometric component and abstracting it as a particle motion model, and only considering the properties of the object (such as position, velocity, angle, etc.).
Dynamics: Mainly studies the relationship between the force acting on an object and the motion of the object. The object of study of dynamics is a macroscopic object whose motion speed is much less than the speed of light. In the game physics engine, it mainly involves rigid body dynamics, including the basic theorem of particle system dynamics, the momentum theorem, the momentum moment theorem, the kinetic energy theorem and some other theorems derived from these three basic theorems. Among them, momentum, momentum moment and kinetic energy are the basic physical quantities that describe the motion of particles, particle systems and rigid bodies. In work and calculation engineering, the factors and assumptions that need to be considered include: the influence of external forces on the motion of objects, the effect of forces (gravity, resistance and friction, etc., acting on the weight and shape of objects, even including elastic objects), the assumption of rigid objects and the objects in the game are close to their motion in the real world.
Using the physics engine, game developers only need to consider giving shapes (assuming uniform distribution) and forces to game objects, and automatically complete the calculation of motion and collision under the drive of the game engine. And based on the above analysis of the physics engine, the front-end technical team does not need to explore complex kinematics knowledge and collision calculation and optimization, but only needs to input parameters into the physics engine. However, it should be noted that in order to use the physics engine efficiently, the front-end technical team must not only understand the basic knowledge of physical motion, but also need to have insight into the special phenomena produced by the discrete simulation of the game to avoid game distortion. Experienced front-end technicians also need to consider the fluency of the game and think about issues such as game performance.
Before building a rigid body motion model in the game, the following factors need to be considered:
Whether the model it sets is a rigid body and the degree of elastic deformation after it is subjected to force;
Whether its shape and size will change during motion or after being subjected to force;
Whether the relative positions of the points inside the object change during motion or after being subjected to force;
Therefore, based on the above analysis, the technical front-end team needs to set the center, shape, mass, initial motion direction and trajectory of the object. Moreover, in view of the gravity and movement of the object, the object needs to focus on setting its center of mass, assuming that the object model is homogeneous and the center coincides with the center of mass. When setting the movement of the object, it is necessary to consider decomposing the force acting on the object into the force on the center of action and the torque rotating around the center. Its parameter setting must be consistent with the player's cognition of the object and movement to create a sense of immersion, otherwise the player will be out of the game during the game and it is difficult to feel immersed. The following figure is a schematic diagram of the decomposition of force and torque:
In order to achieve realistic physical behavior, objects in the game need to be accelerated correctly (that is, consistent with human cognition) and be affected by forces such as collision and gravity. The first thing to note is that when setting up the motion of a 3D object model, you must determine whether the object model is convex, that is, a line drawn between any two of its vertices does not leave the surface of the object. Although most real-world objects are not convex, convex objects are often a good approximation in physics simulations. Convex objects can more accurately generate passive behaviors such as collisions and falls when the physics engine calculates and simulates collisions. Convex collision shapes strike a balance between primitive and concave collision shapes and can represent any complex shape. By controlling physics through scripts, you can give objects the dynamic characteristics of vehicles, machines, and even cloth. Of course, the input mesh can be concave, and the physics engine will calculate its convex part. Depending on the complexity of the object, using multiple convex shapes usually gives better performance than using concave collision shapes. The Godot engine allows convex decomposition to generate convex shapes that roughly match hollow objects, but this performance advantage is reduced when there are too many convex shapes. For large and complex objects, such as entire levels, concave shapes are recommended. When modeling the shape of an object, commonly used reference types include sphere (SPHERE), cube (BOX), capsule (CAPSULE), cylinder (CYLINDER) and convex hull (CONVEX_HULL), etc. You can add parameters such as center point, rotation angle, size, etc. for use by the technical front end.
When simulating the movement of an object, an additional calculation process is required. Adding a physics engine when importing a model may fail, so you can wrap the object with a simple Mesh and let the object's posture follow the Mesh. Meshes created with Babylon can have physical properties added directly, or they can be created with a custom Shader. Although custom Shaders are more complicated, they work better. In the actual operation of the editor, select a mesh instance and use the Mesh menu at the top of the 3D viewport to generate one or more convex collision shapes. The editor provides two generation modes:
Create Single Convex Collision Creates a ColisionShape node with an automatically generated convex collision shape using the Quickhull
algorithm. Since only a single shape is generated, this has better performance and is suitable for small object models.
Create Multiple Convex Collision Siblings Uses the V-HACD
algorithm to create several ColisionShape nodes, each with a convex shape. Since multiple shapes are generated, it is more accurate for concave objects at the cost of performance. For objects of moderate complexity, this may be faster than using a single concave collision shape.
For concave collision shapes, Concave is the slowest option, but is also the most accurate in Godot. Concave shapes can only be used with StaticBodies. They cannot be used with KinematicBodies or RigidBody unless the RigidBody's mode is Static. When not using GridMaps for level design, concave shapes are the best approach for level collision. It is also possible to build a simplified collision mesh in the 3D modeler and have Godot automatically generate collision shapes for it. Concave collision shapes can be generated from the editor by selecting Meshlnstance and using the Mesh menu at the top of the 3D viewport. The editor exposes two options:
Create Trimesh Static Body Creates a StaticBody containing a concave shape that matches the mesh's geometry.
Create Trimesh Collision Sibling Creates a CollisionShape node with a concave shape that matches the mesh's geometry.
As a reminder, it is recommended to keep the number of shapes as small as possible to improve performance, especially for dynamic objects such as RigidBodies and KinematicBodies; avoid translating, rotating or scaling CollisionShapes to benefit from the physics engine's internal optimizations. When using a single, untransformed collision shape in a StaticBody, the engine's wide-phase algorithm can discard inactive PhysicsBodies. If you encounter performance issues, you must make a trade-off for accuracy. Most games do not have 100% accurate collision, and games have found creative ways to hide it or otherwise make it unnoticeable during normal gameplay.
The above content analyzes the content that front-end developers need to complete and pay attention to based on the physical simulation part; and the following will take the drawing system (rendering system/renderer) as an example to analyze the things that front-end developers need to complete. The drawing system is also one of the highest and most difficult parts of the entire game engine. In theory, rendering needs to solve two problems, namely the accuracy of mathematics (correctness in mathematics, physics and algorithms) and drawing effects (lighting, stereo angle, scattering, refraction and reflection, etc.), so that users can feel immersed in the game. In the process of execution and practice, the following four practical problems need to be solved:
Scene complexity: The rendering of multiple objects in a single scene from multiple angles and the generation of each frame of the game screen all require repeated operations; and the rendering of multiple objects from multiple angles in multiple scenes will be more complicated;
Hardware depth adaptation: The capabilities of hardware such as PCs and mobile phones affect the operation and output of the algorithm. For hardware, it is necessary to handle various time-consuming texture sampling tasks and more complex mathematical calculations, such as transcendental function operations such as sine, cosine, exponential and logarithmic. In addition, the support of the hardware unit that performs the operation at the bottom for mixed precision operations is also one of the key considerations for hardware depth adaptation;
Performance budget: No matter how high the game screen requirements are, the game engine must ensure that the game screen is calculated within 33 milliseconds (i.e. 1/30 second). For large-scale deeply immersive games, the game screen may change greatly in a short period of time, but the calculation time requirement cannot be shortened. Moreover, with the development of the game industry, the requirements for the level of sophistication of games are getting higher and higher, and the requirements for the frame rate and image size of the game screen are getting higher and higher. The time budget for each frame is getting smaller and smaller, but at the same time, the requirements for image quality are getting higher and higher;
Time budget allocation for each frame of the game screen: In terms of the proportion of graphics card performance, the GPU can account for a larger proportion than the CPU. The graphics rendering algorithm cannot occupy excess CPU computing resources, and computing resources must be allocated to other modules in the system.
According to the above analysis, calculation is one of the most important core functions of the drawing and rendering system, that is, to perform calculations on tens of millions of vertices and pixels, logical operation units and textures. Simply put, in the specific operation, multiple planes constructed by triangles are projected onto the screen space after passing through the projection matrix; vertex data is converted into fragments through rasterization, and each element in the fragment corresponds to a pixel in the frame buffer. This process converts the image into a two-dimensional image composed of a grid. In the process of shading and drawing, the material and texture corresponding to each small pixel are calculated, and the pixel is rendered into the corresponding color. In addition, in order to increase the sense of immersion and realism, it is necessary to adjust the lighting and object patterns according to the actual situation, and render the final effect. After that, the vertex buffer and index buffer are constructed, and the mesh data is transferred to the graphics card. The above process of "projection-rasterization-shading and rendering-post-processing and lighting calculation" is the rendering process.
In detail, the objects and scenes to be rendered have a variety of geometric shapes, materials, patterns, and application scenarios, so the objects and scenes need to be analyzed on a case-by-case basis in the actual rendering operation. In general, multiple vertices need to be saved in the model file, including the vertex position, the normal direction at the vertex, the UV coordinates of the vertex, and other attribute data. In most cases, the direction of the triangle of each model is calculated, and then the normal vectors of several adjacent triangles are averaged to obtain the direction of the normal vector of the vertex; in the actual execution process, the triangle of the model file is described by index data and vertex data, and all vertices are placed in an array. Only the index position information of three vertices is stored, which can save the storage capacity to 1/6 of the original storage capacity.
Texture is a very important way to express materials. The perception of material type is often not determined by the material parameters, but by its texture. For example, the visual distinction between smooth metal surfaces and rusty non-metallic surfaces is distinguished by the texture of roughness. In the process of shading and drawing, the performance consumption of texture sampling is huge and complex. For one texture sampling, 2 x 4, a total of 8 pixel data points, need to be sampled, and 7 interpolation operations are required. It is worth noting that texture sampling needs to avoid related problems such as aliasing, and avoid the phenomenon of picture jitter and dislocation caused by changes in perspective; therefore, when sampling, four points need to be taken and interpolated, and it is also necessary to sample the two layers of texture in proportion.
When shading and drawing, various elements need to be spliced and combined. At this time, the Shader code generated by the engine will be compiled into a binary data block, that is, a Block, which will be stored together with the network. The combination of diverse grids and Shader codes will form a diverse game world. For different materials of the same model, you can use your own materials, textures and Shader codes in your own sub-grids. Since each sub-grid only uses part of the data, you only need to store the offset values of the start and end positions in the index buffer. Moreover, in the actual operation of shading and drawing, in order to save space, you can share the same resource pool (such as grid pool, texture pool, etc.). It is worth noting that in the process of instanced rendering, sharing a vertex data greatly reduces the usage of video memory and reduces the video memory bandwidth. At the same time, for games with higher requirements, the use of instances requires other additional technical processing, such as the selection operation of a single object.
In the process of post-processing and lighting calculation, it is necessary to consider multiple dimensions such as light intensity, light angle, user perspective, scattering and refraction, and the degree of light absorption by the material. For example, in Unity's Built-in pipeline, if you want to complete the post-processing effect, you can use the post-processing plug-in Post Processing Stack to achieve this goal, or you can use OnRenderlmage()
with Shader
to customize it. This method implements the desired post-processing effect on the scene, and has a high degree of freedom and can be modified and expanded at any time. In the game engine, the calculation process of lighting processing is relatively complicated. You can refer to the following figure for the analysis and equation expression of lighting. Interested readers can adjust the parameters and try it themselves. With the development of the game industry in terms of refinement, lighting performance has a trend of becoming an important high-level performance in the game industry. Related rendering technologies can also be used in many fields such as animation, film, and virtual reality.
It should be added that the game engine drawing system is a kind of computer engineering science, which requires a deep understanding of the graphics card architecture, performance, energy consumption, speed and limitations in order to fully exert the engine effect. In addition, the GPU has extremely strong high-speed parallel processing capabilities, which can form a depth map of a group of occluders at a low cost, and then remove some model objects, which can optimize the processing capabilities of complex scenes.
The main work of the backend covers technical solutions such as server-side logic and data processing, network communication and synchronization. In terms of server logic, backend developers need to handle server-side logic and game data storage, including player account management, game world state synchronization, and multi-player interaction support. In addition, developers need to design and implement an efficient database architecture to store game progress, player achievements, virtual items, and other information. In addition, the backend system also needs to process requests from game clients, including interactions between players, player user data, character upgrades, and resource purchases. Web3 games can refer to the game backend architecture in the figure below. Affected by factors such as transmission speed and settlement time, based on the current level of communication and encryption technology, the backend architecture of large-scale Web3 games has not yet been fully built on the chain.
In terms of network communication and synchronization in the back-end development of games, back-end developers use various types of network protocols, such as TCP/IP, HTTP and WebSocket, to establish a stable communication link between the client and the server. In this development process, it is necessary to design and implement network protocols to support high-frequency data exchange and real-time game status updates. Effective network communication strategies and synchronization mechanisms can reduce latency and ensure that all players see a consistent state in the game world. Especially in online games, the transmission and synchronization of real-time data is the core to ensure a good user experience.
When developing the back-end, attention should be paid to improving the overall scalability, stability and performance. In terms of performance, the backend not only needs to achieve low latency and fast calculation feedback in terms of caching, but also requires the ability to communicate with the server in real time in terms of HTTP protocol; in terms of stability and utility, each server needs to be isolated to avoid problems with a single server affecting all servers; and in terms of high scalability, developers need to focus on the expansion of computing capacity and functions, use a single server connection with multiple sub-servers, and communicate through channels such as TCP and IPC to improve the server's ability to handle information and requests during peak periods. The following figure is a representative overall structural diagram of the technical backend, which can be used for reference in terms of storage, services, and interaction.
For Web3 games with multiple users and multiple scenarios, developers can set up multiple servers to ensure the experience of game users and reduce the pressure of a large number of access requests in a short period of time. In each server, multiple world models can be grouped to meet the utility of a large number of users for the game. At the same time, in a multi-server setting, it can support real-time operations of a large number of users, and try to reduce latency in the process of many visits and requests. The figure below is a reference diagram of multiple servers and the world.
The technical front-end and back-end of Web3 games are not completely separated, and they need to cooperate in many aspects to complete the overall technical support. For example, in terms of plug-ins, the front-end and back-end technologies can play their respective advantages and cooperate to detect plug-ins. In the process of overall support of front-end and back-end technologies, the front-end can play the advantages of Unity and other aspects, while the back-end can play the advantages of data request and writing. In general, they cooperate in the following aspects:
Anti-acceleration: server verification, client cooperation;
Memory data encryption: encrypt client memory through the Unity AssetStore plug-in and reduce the dependence on all data in the client;
Protocol CD: prevent frequent access to a certain protocol. The access frequency can be limited, such as only one access every 300 milliseconds to 1,000 milliseconds;
Protocol encryption: increase the number of bytes in the protocol header;
Prevent WPE from sending repeated packages: prevent repeated collection and entry;
Monitor non-recharge channels: monitor the acquisition of currency and assets through non-recharge channels;
Anti-acceleration of movement and operation: detection logic can be placed in the player process and scene process;
The above uses plug-ins as an example of the cooperation between the front-end and the back-end. Through a deep understanding of the front-end and back-end in the process of game development, we understand that each is responsible for different tasks, but they are closely connected and together constitute a complete game system. A wonderful game experience comes from the rich interaction of the front-end and the strong support of the back-end. The above is only a brief introduction to the technology of some Web3 games. If readers are interested in more front-end and back-end technologies, they can refer to the following books to learn more:
Mathematical aspects of Web3 game programs: "Foundations of Game Engine Development, Vol 1: Mathematics", "Mathematical Methods in 3D Games and Computer Graphics", "3D Math Primer for Graphics and Game Development", "Essential Mathematics for Games and Interactive Applications", "Geometric Algebra for Computer Science", "Detailed Explanation of Geometric Tools and Algorithms in Computer Graphics", "Visualizing Quaternions", "Divergence, Curl, and Gradient Interpretation", and "Computational Geometry"
Game Programming: "Learning Unreal Engine Game Development", "Blueprints Visual Scripting for Unreal Engine", "Introduction to Game Design, Prototyping, and Development", "Unity 5 Actual Combat", "Game Programming Algorithms and Techniques", "Game Programming Patterns", "Cross-Platform Game Programming", "Android NDK Game Development Cookbook", "Building an FPS Game with Unity" Unity", "Unity Virtual Reality Projects", "Augmented Reality", "Practical Augmented Reality", "Game Programming Golden Rules", "Best Game Programming Gems", and "Advanced Game Programming".
Game Engine: "Game Engine Architecture", "3D Game Engine Architecture", "3D Game Engine Design", "Advanced Game Script Programming", "Programming Language Implementation Patterns", "Garbage Collection Algorithm Manual: The Art of Automatic Memory Management", "Video Game Optimization", "Unity 5 Game Optimization", "Algorithm Experience: The Secret of Efficient Algorithms", "Modern X86 Assembly Language Programming", "GPU Programing for Games and Science", "Vector Games Math Processors", "Game Development Tools", and "Designing the User Experience of Game Development Tools".
Computer Graphics and Rendering: "Real-Time 3D Rendering with DirectX and HLSL", "Computer Graphics", "Principles and Practice of Computer Graphics: C Language Description", "Principles of Digital Image Synthesis", "Digital Image Processing", and "3D Game Programming Master Skills", "Real-time Shadow Technology", "Real-time Computer Graphics", "Real-time Volume Graphics", "Ray Tracing Algorithms and Techniques", "Physically Based Rendering", "Graphics Programming Methods", "Practical Rendering and Computation with Direct3D", "Graphics Shaders", "OpenGL Shading Language", "OpenGL Insights", "Advanced Global Illumination", "Production Volume Rendering", "Texturing and Modeling", "Polygon Mesh Processing", "Level of Detail for 3D Graphics", "3D Engine Design for Virtual Globes", "Non-Photorealistic Rendering", "Isosurfaces", "The Magic of Computer Graphics"
Game Sound Effects: "Game Audio Programming"
Game Physics and Animation: "The Nature of Code: Simulating Natural Systems with Programming", "Computer Animation", "Physics of Game Development", "Physics Modeling for Game Programmers", "Physics Based Animation", "Real-Time Cameras", "Game Inverse Kinematics", "Fluid Engine Development", "Game Physics Pearls》《The Art 藕粉 Fluid Animation》《Fluid Simulation for Computer Graphics》《Collision Detection in Interactive 3D Environments》《Real-time Collision Detection Algorithm Technology》《Game Physics Engine Development》
Game Artificial Intelligence: 《Artificial Intelligence for Games》《Artificial Intelligence in Game Development》《Game Artificial Intelligence Programming Case Essence》《Unity Artificial Intelligence Game Development》《Behavioral Mathematics for Game AI》
Multiplayer Game Programming: 《Multiplayer Game Programming》《Massively Multiplayer Game Development》《POSIX Multithreaded Programming》《Large-Scale Online Game Development》《TCP/IP Detailed Explanation Volume 1-3》
Due to space limitations, this section briefly analyzes the art of the Web3 game part. Art plays a very important role in Web3 games. Excellent game works are not just games for entertainment, especially at the 3A level. Every high-level 3A game is a work of art that conveys a message. Regarding the artistic expression, game studios will improve the artistic expression of Web3 games from multiple aspects, such as special effects, interaction, animation, and rendering. The following table shows the aspects that need to be considered in the artistic expression of Web3 games from multiple subdivisions. Due to the differences in game types, game production time, and game target groups, Web3 game studios need to comprehensively consider how to balance and make trade-offs in terms of artistic expression.
Overall, the art style of the game must conform to the theme and background set by the planner, but the evaluation and analysis of art performance is relatively subjective. The following eight angles can be used as examples to analyze and evaluate the art performance of the game:
Art style: conform to the background and theme style, unique artistic expression and specific time and technology display;
Color application: color harmony, symbolism and contrast;
Environmental design: scene details and atmosphere in the environment, interactivity of scene objects;
Character design: character appearance, character animation, character action and the integration of character and environment;
UI/UX Design: user interface design, consistency of interface and art style, and information presentation effect;
Animation and special effects: fluency and game expressiveness, visual impact of special effects, and integration of sound effects and visual effects;
Technical implementation: realistic physical presentation effect, balance between image quality and performance;
Artistic expression and playability: art support for the core mechanism of the game, and support for its background and narrative;
In addition, Web3 game skins are one of the game components that users are most willing to consume and buy. From the perspective of consumer goods, artistic expressions such as skins, accessories, and special effects are one of the core driving forces to attract users to buy and consume. Differentiated artistic expressions can allow users to experience different psychological feelings. The psychology of game users' willingness to purchase additional art products can be analyzed from the following perspectives:
Additional asset utility in the game: NFT assets in the game can give players additional gain effects in Web3 games, including but not limited to attack, defense, speed and income bonuses;
In-game economy: In some Web3 In the game, skins have trading and exchange value. Users and arbitrageurs can buy and trade skins and even make profits in this way;
Social factors: In multiplayer online games, owning popular or rare skins will attract the attention or envy of other players, thereby enhancing the player's sense of superiority and social experience;
Personalization and self-expression: Skins can achieve customized character appearance. By choosing unique skins, players can express their own personality, style and preferences;
Show achievements or status: Some rare or limited edition skins are often only available after completing specific tasks, activities or purchasing. Owning these skins can show the player's achievements or status in the game;
According to statistical analysis as of Q2 2024, users in different regions have different preferences for art. The popularity ratio of American cartoons, comics, and realism is 51:5:44. The popularity of cartoon style may be due to the popularity of American cartoons and casual categories; the popularity ratio of Japanese cartoons, comics, and realism is 35:44:20, and the inclination towards "two-dimensional" has reached 80%.
For the direction of audio and sound effects, the current game studios pay different attention to audio and sound effects performance due to various factors. For large studios with sufficient budgets, they have the ability and time to invest more resources to improve the high-quality performance of audio and sound effects, including hiring professional audio designers, music composers, and sound engineers, and using advanced audio technology and equipment to create an immersive audio experience and enhance the atmosphere and emotional resonance of the game. However, for small studios with limited budgets, the resources for audio and sound effects may be relatively insufficient. Due to funding and personnel constraints, small studios may have to rely on ready-made sound effect libraries or simple audio design tools to complete their work. Some small game studios also outsource audio and sound effects to complete their work. Therefore, the quality of audio and sound effects may not be as good as that of large studios.
At the same time, audio will also cooperate with other departments to improve the quality of the game. For example, in the process of cooperation between audio and copywriting, audio design involves VO work. The audio department will contact the copywriter many times, from helping to formulate the performance of the character, determining the direction of the dialogue branch, and even assisting in dubbing at the VO stage to ensure how the dubbing needs to be pronounced and how to correctly convey the lines written by the copywriter. In the process of audio and map editing, animation and special effects, their output needs to cooperate with each other. For example, when a character moves in the map, it is necessary to set the footsteps of the character passing through the grass, and even trigger the special effects of important props in the map. Therefore, it requires cooperation from multiple departments, a lot of communication to coordinate work, and negotiate each other's access rights to files to ensure that they work together on the same things and ensure the high quality of the output content.
In addition, the scale and type of the project also affect the investment in audio and sound effects. For games that focus on visual effects or plot, audio and sound effects may be considered secondary elements and relatively less invested. In games that need sound effects to enhance the atmosphere and build immersion, the importance of audio design is significantly increased.
This article is the second in the Web3 game analysis series on industrial production and production (technology and art). Please look forward to the next article in the Web3 game analysis series (three) testing and operation.
The U.S. federal government will contact victims of a million-dollar cryptocurrency scam via NFTs after the founder pleaded guilty.
WeiliangRNDcoin.kr, a crypto platform, enhances your understanding of digital currencies through educational resources together with social network Steemit. But with nary a presence and a lackluster website, how can it stand out?
KikyoThis article provides a detailed cryptocurrency withdrawal guide for Chinese investors around the world, introduces how to safely withdraw cryptocurrency from trading platforms to bank cards, and shares multi-currency conversion tips.
AlexWilly Bum Bum, a viral sensation now facing significant challenges, has launched its own memecoin, $BUM, despite recent value declines and skepticism. The coin, created by a doxxed team and backed by a capped supply and strategic token allocation, is struggling with a 23.86% drop in value and low trading volume, reflecting waning investor interest.
AnaisMusk and Vitalik Buterin voiced their support for the Telegram founder, whose arrest at a French airport has caused panic in the cryptocurrency community, with Russia pointing the finger at the United States.
AlexThis article briefly analyzes the various safe ways to withdraw funds after purchasing virtual currency, including withdrawals to bank cards, P2P transactions, and cryptocurrency exchange services, and compares their fees and risks to help investors choose the most suitable withdrawal path.
MiyukiThis article briefly introduces how to buy Bitcoin and Ethereum on the trading platform, including choosing a platform, creating an account, recharging funds, placing orders to buy, and withdrawing virtual currency. It provides a safe and efficient cryptocurrency investment guide for Chinese investors around the world.
WeiliangThe latest report from the US "Wall Street Journal" claims that Chinese artificial intelligence developers have found a way to use the most advanced American chips without bringing them to China. The report pointed out that Chinese artificial intelligence developers work with middlemen to obtain overseas computing power and sometimes use technology from the cryptocurrency world to hide their identities.
AlexTelegram CEO Pavel Durov was arrested on 24 August over alleged violations tied to the messaging platform. His detention was extended by the French court. The arrest has garnered support from tech leaders like Vitalik Buterin, Elon Musk, and Robert F. Kennedy Jr., sparking the #FreePavel movement. Is free speech in peril, or will it prevail?
CatherinePavel Durov, founder of Telegram, was detained in France amid allegations that Telegram facilitated illegal activities. His arrest has sparked controversy and support from the crypto community, reflecting concerns over digital privacy and free speech.
Anais