Each game has a wide variety of resources (sometimes called the composition of assets or media), such as networks, materials, textures, shader programs, animations, audio, level layout, collision data, physical parameters, etc. Game resources must be properly kept. This includes two aspects. On the one hand, it is an offline tool for creating resources, on the one hand, it is loading, unloading and operating resources during execution. Therefore, every game has some form of resource manager.
Each game resource manager consists of two components, which are independent and integrated with each other. One is responsible for the offline tool chain, which is used to create assets and convert them into a form that can be used by the engine. The other component manages resources during execution to ensure that the resources have been transferred into memory before use, and remove them from memory when not needed. Remove.
In some engines, resource management is a clearly designed, unified, and centralized subsystem that is responsible for managing all types of resources used in the game. The resource managers of other engines are not separate subsystems, or they want to be laid out in different subsystems. Perhaps these subsystems have been written by different authors through the engine and have a long and colorful history, but no matter how the resource manager is implemented , He mainly takes certain responsibilities and solves some clearly defined problems. This section will discuss the resource management functions of typical game engines and their implementation details.
Offline resource management and tool chain
22.214.171.124 Asset version control
Solve the problem of data volume
126.96.36.199 Resource database
- Can handle many types of resources, ideally (but certainly not necessarily) in a consistent manner
- Ability to create new resources
- Ability to delete resources
- Ability to view and modify existing resources
- Ability to move resources from one location to another. (This is very useful because artists and game designers often have to rearrange assets to reflect changes in project goals, rethink game design, add or cancel features, etc.)
- Allow resources to cross-reference other resources (for example, a network references materials, a level references a set of animations). Cross-reference usually drives the resource management generation process and the loading process
- It can maintain the referential integrity of all cross-references in the database. After performing all common operations, such as deleting or removing resources, you can still maintain referential integrity
- It can save the version history, and include the complete log to record the change and the reason.
- If the resource database can support different forms of search and query, it will be very useful. For example, a developer may want to know which level uses an animation and which materials reference a texture.
188.8.131.52 Some successful resource database designs
- The unreal resource database is managed by its universal tool UnrealEd. UnrealEd is responsible for almost everything, regardless of resource metadata management, asset creation, level layout and so on. The advantage is that it is part of the game engine and there is one-stop shopping.
- The disadvantage is that the package file is binary and cannot be merged; after the resource is renamed or moved, a virtual object is generated.
Naughty Dog's "Uncharted Sea: Captain Drake's Treasure" Engine
- Small-grained resources
- Required features
- Obvious source file mapping
- Easy to change the way DCC data is exported and processed
- Easy to generate assets
- Lack of visualization tools
- Tools are not fully integrated
184.108.40.206 Asset adjustment pipeline
Most resource data will become the data used by the game engine through the asset conditioning pipeline.
- Resource compiler
- Resource linker
6.2.2 Runtime resource management
220.127.116.11 Responsibilities of the runtime resource manager
- Make sure there is only one copy of the same resource in memory at any time
- Manage the life cycle of each resource, load the required resources, and do not uninstall when needed
- Handle loading of composite resources. Compound resources are resources composed of multiple resources
- Maintain referential integrity.
- Manage memory usage after resources are loaded
- Allows custom processing to be performed after loading resources by resource type
- Usually provides a single unified interface to manage multiple resource types
- If the engine supports it, it is necessary to handle streaming (that is, asynchronous resource loading
18.104.22.168 Organization of resource files and directories
Usually a tree
Wrapping multiple resources into a single file has the advantage of reducing loading time. When loading data from a file, the three major costs are seek time (that is, the time to move the head to the correct location on the physical media), the time to open the file each month, and the time to read data from the file to memory.
The resource manager of the OGRE rendering engine supports two modes at the same time, you can configure the resource files on the hard disk, or you can put the resources in a huge ZIP archive, the benefits of using the ZIP format Have:
1. ZIP is an open format
2. The virtual files in the ZIP archive also have relative paths
3. ZIP archive can be compressed
4. ZIP archive can be regarded as a module
22.214.171.124 Resource file format
Each type of resource may have a different file format. One is to use an open standard format.
One is a custom file format. The reason is that some of the information required by the engine may not be stored in a standard format, and resources are processed offline to reduce the time it takes to load resources at runtime.
126.96.36.199 Resource Global Uniform Identifier
A common GUID option is the file system path of the resource.
188.8.131.52 Resource registry
There will only be one copy of each resource loaded into memory, and most resource managers contain some form of resource registry. It is common to use dictionaries, that is, key-value pairs. Loading resources is a slow operation, because it involves locating and opening files on the hard disk, reading potentially large amounts of data into memory, and having the opportunity to perform initialization after the resource data is loaded. Loading resources may have a very noticeable effect on the game frame rate, or even a pause of a few seconds.
There are two ways to deal with it. 1 While the game is in progress, it is completely forbidden to load resources. 2. Resources are loaded asynchronously
184.108.40.206 Resource lifetime
The lifetime of a resource is defined as the period between when the resource is loaded into memory and when the memory is returned for other purposes.
- Must be loaded at the beginning.
- The lifetime of some resources can correspond to a game level
- Some time shorter than the level
- Some resources, such as background music, are streamed in real time during playback.
220.127.116.11 Memory management required by resources
Resource management and memory management are closely related. Some resources must reside in video memory, including textures, vertex buffers, index buffers, and shaders. Most other resources may reside in main memory.
Heap-based resource allocation will cause memory fragmentation problems. The game runs on a personal computer and supports advanced virtual memory allocation.
Stack-based resource allocation only applies if 1 is the game is linear and the level is centered. 2 is the memory is enough to accommodate each complete level.
Pool-based resource allocation
Load resource data in chunks of equal size. Because all chunks are the same size, you can use a pool allocator. "Block-style" resource allocation inherently has a trade-off problem, which is waste of space. Unless the resource size is just a multiple of the block size.
Resource chunk allocator
Set up a special memory allocator, this allocator can use the unused part of the block. Manage a linked list. The unused area in the resource chunk is released. Most game engines need to allocate dynamic memory when loading resources, you can use this method.
Segmented resource file
A typical resource file may contain 1 to 4 segments, each segment is divided into one or more chunks to match the resource allocation based on the pool.
18.104.22.168 Compound resources and referential integrity
The game resource database can be expressed as a directed graph composed of interdependent data objects. Cross-references between data objects can be internal or external.
22.214.171.124 Handling cross-references created by resources
To use a global unified identifier for cross-references is to store the cross-reference as a string or hash code, which contains the unique identifier of the referenced object.
Pointer correction table The method of storing objects in a binary file, converting the pointer to a file offset value, and storing the position of the pointer in a simple list, this table is the pointer correction table.
To handle external references, in addition to specifying the offset value or GUID, the path of the file to which the resource object belongs must also be added. The key to loading resources composed of multiple files is to load all interdependent files first.
126.96.36.199 Initialize after loading
* In some cases, initialization after loading is an unavoidable step. The vertices and index values of the 3D mesh are defined, and after being loaded into the main memory, they are transferred to the video memory.
* In some cases, initialization after loading can be avoided. Add the calculated data to avoid the computational overhead of running.
The above content comes from the resource manager of the second section of Chapter 6 of "Game Engine Architecture", the key content notes
Unity3D supports resource formats, you can see the official documentation.
Any assets imported with Importing Assets
In this step, Unity3D generates metadata for all resources, and "compiles" and "links" them into resources that the game can use directly. The resources before conversion are saved in "Assets", the converted resources are saved in "Library", all resources can be modified in the Inspector panel metadata data, as shown below
shaderCache is a compiled shade file under the PC.
For the Android or ios version, the resources are programmed into the resources of the corresponding platform and packed into the package.
If you use version controllers such as SVN, you need to synchronize all resources and their metadata. Open Edit-> Project Settings-> Editor and change Mode to "Meta Files" (default "Disabled"), as shown below
Tools for handling resources in the project
The BundleManage in the project is the modified version of the official store BundleManager for the project,basic introduction
The following figure shows the directory structure of project resources
The bundle selected by the bright light, you can see that the size at the top right is 364k, which includes the UI prefabs, and those that depend on the art resources. The yellow mark indicates that this resource is referenced elsewhere.
The picture below shows the settings of the picture format on the android and ios platforms.
The data structure in the resource manager, using JSON for data storage.
If there is a compound resource, put it in the root node. The resource loading will load the root node, and then the content under the child node will be loaded.
When generating a mobile platform package, use android as an example here. When it is appropriate to start the game, obtain the version number from the server and make a comparison, whether to update the resource. Compare crc and whether there is a local cache, etc.
This is the XML and Lua code used in the table and configuration in my experience project, and it can also be used as a hot update of resources.
In the development and running state, List maintains all loaded resources and displays how many references, to ensure that each resource is used up to uninstall.
The advantage is: good resources compiled in the project are used, and re-pulling the project reduces the time to compile art resources. When updating, you can update it in a small package. Will the local or server pull the latest one after the comparison?
The disadvantage is: because of the use of md5, it can not support multiple people to package resources at the same time; the second is to update the entire Bundle package to the server, because the upload time is a bit long. When there is a change in a node, or when there is a resource moving position, all resources need to be repackaged. Sometimes there is a problem that requires forcing all resources to be packaged.
Why resource management is challenging? ›
Resource management challenges are bound to the very nature of working with teams. Oftentimes you need to plan the work and resources managing multiple projects at once. Organizing, monitoring, and improving processes are crucial parts of project resource management that may make or break your projects.What does good resource management look like? ›
Planning and scheduling – Understanding what resources are available and when. Available and required skills – Assessing the skills of each person and whether additional skills (or people) need to be added. Resource utilization – Knowing where people are already committed and if those allocations are appropriate.How important is resource management? ›
Importance of resource management. Managing resources effectively plays a significant role in improving a business's profitability and sustainability. It ensures that the right resources are available at the right time and cost for successful project completion.What is resource management in programming? ›
In computer programming, resource management refers to techniques for managing resources (components with limited availability).What are the barriers to resource management? ›
Common reasons include unclear goals, overallocation of resources, poor prioritization of tasks, and budget overruns. In other words, poor resource management is a major barrier to successful projects.What is poor resource management? ›
Poor resource management prevents department managers from making informed decisions and executing well-planned strategies, creating an inefficient and unstable working environment.What are the 3 main areas of resource management? ›
- The People. The fact that people are ultimately responsible for project success is the most important thing to remember about resource management. ...
- The Plan. Every project, no matter the size, needs a plan. ...
- The Time. ...
- Free Project Management Software.
Business management is a long and tedious process, hence its structure is divided into five M's that lay the foundation of business management; those are money, manpower, machines, materials, and method. The foundation of the business management process starts with money.What are the 5 steps for resource management? ›
- Step 1: Resource Planning. To determine the resource requirements for completing a project, you first need to understand the work. ...
- Step 2: Estimate Resources / Resource Allocation. ...
- Step 3: Acquire Resources. ...
- Step 4: Develop and Manage Team. ...
- Step 5: Continuously Evaluate Resources.
Resource management skills are the developed capacities used to allocate resources efficiently (O*NET). Look below for specific resources management skills and tools to help foster them in yourself or others!! Management of Financial, Material and Personal Resources. Time Management.
What is the main and most important resources in management? ›
It's the people. The employees of any organisation are the driving force behind its success.What is an example of resource management in a computer? ›
An example of resource management in an operating system is the CPU in a time-sharing system. In such a system, the OS allocates time slots for the CPU. The first process in the ready queue gets the CPU, and when its time slot expires, the CPU switches to the next process in the queue.How do you manage program resources? ›
- Resource estimation. Estimating the requirement of internal and external resources is one of the first steps in project resource management. ...
- Collection of data. ...
- Resource plan. ...
- Schedule development. ...
- Checking for resource over allocation. ...
- Negotiating for resources.
- Start with resource planning and data-driven resource allocation. ...
- Plan for uncertainty. ...
- Apply resource optimization techniques. ...
- Take care of resources' workload. ...
- Manage employees' competences. ...
- Keep team members engaged. ...
- Leverage resource management software.
ANSWER: The six competitive challenges facing human resources departments are (1) globalization, (2) embracing new technology, (3) managing change, (4) developing human capital, (5) responding to the ma rket, and (6) containing costs.What are the challenges of resources allocation? ›
Resources are considered as an investment and management ensures that they are allocated effectively and efficiently throughout the entity to get maximum profits and longer sustainability. Sometimes there can be mismanagement in allocation. It can lead to heavy costs, delay in delivery, and time delay as well.How do you overcome lack of project resources? ›
- Shift resources between non critical tasks to the critical path (if we have)
- Try to reduce the resources needed. ...
- Prioritize deliverables, split the project outcomes in phase. ...
- Get new resources: If you have budget you need to get new resources.
In my opinion, from business point of view it is manpower. Since goods or equipment can be replace or replenish at and when it is need and we can have control on it.What causes poor resource utilization? ›
Low resource utilization usually happens when underutilizing some team members at the cost of overutilizing others. Improper resource allocation results from underutilizing potential and increasing bench-time or overloading the existing team by adding more tasks into their workload.What causes lack of resources? ›
Resource scarcity occurs when demand for a natural resource is greater than the available supply – leading to a decline in the stock of available resources. This can lead to unsustainable growth and a rise in inequality as prices rise making the resource less affordable for those who are least well-off.
What are the 7 resources of management? ›
There are seven main types of resources in project management: services, labor, equipment, materials, money, time, and space.What are the six essential resource management concepts? ›
They are: 1) Command and Management; 2) Preparedness; 3) Resource Management; 4) Communications and Information Management; 5) Supporting Technologies; and 6) Ongoing Management and Maintenance.What are the 4 elements of management resources? ›
Originally identified by Henri Fayol as five elements, there are now four commonly accepted functions of management that encompass these necessary skills: planning, organizing, leading, and controlling.What is 4m in production? ›
By implementing best practices that address the 4Ms of Machines, Manpower, Methods, and Material.What is the most important in 5ms of management? ›
Man: Man, the first of the five M's is the most important. The right personnel for the right position is a sure bet for organizational effectiveness and efficiency.What are the 7Ms of resource analysis? ›
In this research systematic approach has been used for organization and production system inputs which named as 7Ms (Management, Manpower, Marketing, Method, Machine, Material, and Money).What is basic resource management? ›
Resource management is an aspect of the project management process that includes planning, organizing, managing, and measuring a resource's efforts on a project. Its purpose is to plan, allocate and schedule an organization's resources as efficiently as possible.What makes a good resource manager? ›
Detail oriented. To be able to create an accurate resource plan an effective Resource Manager needs to have an eye for the detail coupled with clear visibility of all available resources. Visibility is a vital ingredient in the successful resourcing of every project.What are the 3 different types of resources? ›
First, students will learn about three types of resources (human, natural, and capital) that are a part of communities and cultures.What are the 7 types of resources? ›
Every technological system makes use of seven types of resources: people, information, materials, tools and machines, energy, capital and time. Since there is limited amount of certain resources on the earth, we must use these resources wisely.
What are 4 types of resources? ›
4 Key Resources - The four basic kinds of resources used to produce goods and services: land or natural resources, labor or human resources, capital, and entrepreneurship.What are the 4 categories of resources examples? ›
- Natural resources (land)
- Labor (human capital)
- Capital (machinery, factories, equipment)
The human being as the most important resource
In a company, people are considered a human resource.
These are just a few questions that management and leadership have to face in today's work environment. The answer to these questions… “people.” Indeed, a company's greatest asset and resource is its human resource.What are 3 examples of computer management tasks? ›
- freeing storage space.
- compressing files and folders.
- updating your software.
- backing-up your files.
- scanning for viruses and malware.
- checking your hard disks.
- Planning. Planning is a vital aspect within an organization. ...
- Communication. Possessing great communication skills is crucial for a manager. ...
- Decision-making. Another vital management skill is decision-making. ...
- Delegation. Delegation is another key management skill. ...
- Problem-solving. ...
- Tie Your Program to the Business… All the Time. ...
- Know Your Audience. Knowing your stakeholders and communicating with them effectively is essential to success. ...
- Use Situational Thinking. ...
- Take Time to Build Talent. ...
- Know the Numbers and What They Mean. ...
- Be the Catalyst.
The first step in developing a resource management policy and process is to define your resource management goals. These are the outcomes that you want to achieve by managing your resources effectively. Using the SMART framework, you can set specific, measurable, achievable, relevant, and time-bound goals.How can I improve my program management skills? ›
- Complete training courses. ...
- Ask for feedback. ...
- Study project management methodologies. ...
- Job shadow other project managers. ...
- Sign up for content from professionals in the field. ...
- Incorporate team-building exercises. ...
- Track your time. ...
- Use templates.
It is a challenge for human resources because employees can make things happen. On the other hand, they can block any changes they don't like. It is the real role of the leader to get people to believe in the new vision. It is about influencing and sharing common values.
What are the three main resource management approaches? ›
Maximum sustainable yield, ecosystem-based management, and adaptive management are three approaches to resource management.What is the biggest threat to natural resources? ›
- Effects of Climate Change.
- Illegal Fishing.
- Illegal Wildlife Trade.
- Oil and Gas Development.
- Soil Erosion and Degradation.
- Water Scarcity.
In short, raw material extraction and processing always impact on the environment, resulting as they do in soil degradation, water shortages, biodiversity loss, damage to ecosystem functions and global warming exacerbation.