9+ Best Multiplayer Games iOS Android 2024


9+ Best Multiplayer Games iOS Android 2024

Interactive entertainment applications designed for synchronous play across different mobile operating systems represent a significant sector of the digital gaming industry. These applications allow users on Apple’s iOS and Google’s Android platforms to connect and participate in shared gaming experiences. An example includes a real-time strategy title where players on iPhones can compete against or cooperate with players on Android devices.

The value of cross-platform, synchronous mobile gaming lies in its expanded player base and enhanced accessibility. Historically, multiplayer mobile games often fragmented communities based on device preference. Enabling play between different operating systems mitigates this issue, fostering larger and more active player populations. This, in turn, increases engagement and extends the lifespan of the game, benefiting both players and developers.

Further discussion will elaborate on the technical challenges, design considerations, and emerging trends within this field. Topics covered will include network architecture, cross-platform development tools, and monetization strategies tailored to this unique gaming environment.

1. Cross-Platform Compatibility

Cross-platform compatibility is a foundational requirement for applications providing synchronous interactive entertainment across both iOS and Android operating systems. Its efficacy directly determines the user experience and the potential scope of the gaming community.

  • Codebase Management

    Maintaining a single codebase that can be compiled and deployed on both iOS and Android reduces development overhead and streamlines updates. Frameworks such as Unity or Unreal Engine facilitate this by providing abstraction layers that handle platform-specific nuances. Inefficient codebase management leads to increased development costs and potential feature disparity between versions, diminishing the overall experience.

  • Network Protocol Standardization

    All devices must adhere to a unified network protocol for seamless communication during gameplay. This protocol handles the exchange of game state data, player actions, and other relevant information. Inconsistent or poorly implemented network protocols can result in desynchronization, lag, and connectivity issues that negatively affect the user experience. Example: Ensuring identical handling of TCP or UDP packets between platforms.

  • Data Serialization and Deserialization

    Game data, including player profiles, progress, and in-game assets, needs to be serialized into a format that can be transferred across platforms and then deserialized for use on the receiving device. Standardized data formats such as JSON or Protocol Buffers guarantee compatibility. Discrepancies in data handling can lead to corruption, data loss, and inconsistencies in game state across different platforms.

  • Input Handling Abstraction

    iOS and Android devices utilize different input mechanisms (touch screens with varying resolutions and potentially physical controllers). Cross-platform compatibility requires abstracting these inputs into a unified interface. The game logic should respond consistently regardless of the input method used. Example: Abstracting touch events and controller inputs to a virtual joystick controlled by either tapping or using a physical stick. Poor input handling leads to awkward controls and an unsatisfactory experience.

These facets of cross-platform compatibility are vital for fostering a unified and enjoyable gaming environment across iOS and Android platforms. Addressing these technical challenges effectively is essential for realizing the full potential of mobile interactive entertainment.

2. Real-Time Synchronization

Real-time synchronization is a critical technical element for interactive entertainment experiences targeting iOS and Android platforms. It dictates the consistency and responsiveness of the shared virtual environment across diverse devices. Without effective synchronization, discrepancies in game state arise, leading to unfair advantages, illogical events, and an ultimately unacceptable user experience. The cause-and-effect relationship is direct: inadequate synchronization results in a flawed multiplayer experience, irrespective of other positive game attributes. As an example, a racing game allowing independent vehicle positions or a combat game displaying delayed attack animations would exemplify the consequences of failed real-time synchronization. This component is thus not merely desirable but essential for the function and success of such applications.

Practical application of real-time synchronization relies on multiple techniques working in concert. Client-side prediction attempts to anticipate player actions and update the game state locally before confirmation from the server. This hides network latency but necessitates reconciliation mechanisms to correct discrepancies when server data arrives. Server-side authority establishes the server as the ultimate arbiter of truth, preventing cheating and ensuring consistency. However, this approach can introduce latency if not carefully optimized. Implementing lag compensation techniques, such as rewinding player positions to account for network delays, mitigates the impact of latency on gameplay fairness and responsiveness. Game developers must also employ deterministic game logic, ensuring identical inputs produce identical outcomes across all platforms, thus minimizing divergence in game state.

In summary, real-time synchronization presents significant technical challenges in interactive mobile entertainment applications. Overcoming these challenges through a combination of client-side prediction, server-side authority, and lag compensation is crucial for delivering a satisfying and consistent experience across iOS and Android devices. Ignoring or underestimating the importance of real-time synchronization will inevitably result in a negative user experience and undermine the core premise of synchronous multiplayer gaming.

3. Network Latency Mitigation

Network latency mitigation is a paramount concern in the development and deployment of interactive entertainment applications for iOS and Android that feature synchronous multiplayer functionality. The inherent variability in mobile network conditions across diverse geographical locations and carrier infrastructures necessitates robust strategies to minimize the impact of delay on the user experience. Without effective mitigation, even slight variations in latency can degrade the responsiveness and fairness of gameplay, severely impacting player satisfaction.

  • Client-Side Prediction

    Client-side prediction involves estimating the future game state based on player input, allowing for immediate feedback without waiting for server confirmation. This technique masks perceived latency by displaying predicted actions, such as movement or shooting, before the server acknowledges them. In environments with fluctuating network conditions, client-side prediction becomes crucial for maintaining a fluid and responsive user interface. Failure to implement prediction results in noticeable input lag, making games feel unresponsive and unplayable. An example would be predicting the trajectory of a projectile weapon to allow a player to lead their target, even with a delay.

  • Lag Compensation

    Lag compensation aims to reconcile discrepancies between client-side predictions and the authoritative server state. When the server receives input from a client, it may rewind the game state to the point in time when the input was generated, accounting for the client’s network latency. This ensures that actions are evaluated based on the state of the game as perceived by the client at the time the action was initiated. Without lag compensation, players with higher latency would be at a significant disadvantage. For instance, compensating for a delayed shot registration in a first-person shooter so the shooter gets appropriate credit for the hit.

  • Dead Reckoning

    Dead reckoning is a technique used to extrapolate the positions and states of game entities between updates received from the server. Instead of constantly transmitting full state information, the server sends updates at discrete intervals. Clients then use the last known state and movement patterns to predict the entity’s current state. This reduces the amount of data transmitted over the network, conserving bandwidth and minimizing latency. However, inaccuracies can accumulate over time, requiring periodic corrections from the server. An example would be predicting the movement of other players in an environment until updated states can be received.

  • Region Selection and Network Optimization

    Optimal region selection and tailored network protocols contribute to reduced latency. Allowing players to select their geographical region minimizes the physical distance data must travel, leading to decreased round-trip times. Furthermore, optimizing network protocols to prioritize critical game data, implement compression techniques, and minimize packet overhead can further reduce latency. For instance, an online game connecting players to the nearest server to reduce distance and latency, paired with a protocol that gives priority to player position and input data.

The strategic deployment of client-side prediction, lag compensation, dead reckoning, and network optimization is indispensable for delivering a compelling interactive entertainment experience within the constraints of mobile network environments. While individual techniques offer localized improvements, a holistic approach incorporating these measures is critical for minimizing the impact of network latency on games designed for both iOS and Android platforms, thereby enhancing both engagement and player retention.

4. Account System Integration

Account system integration serves as a foundational element for interactive entertainment applications designed for synchronous gameplay across iOS and Android platforms. It facilitates user authentication, data persistence, and cross-platform continuity, directly influencing the player experience and the overall functionality of the game.

  • Unified Player Identity

    A centralized account system creates a single, persistent identity for each player, regardless of the device or operating system used. This unified identity enables players to access their progress, in-game purchases, and social connections across both iOS and Android devices. Without a unified system, players may be forced to create separate accounts for each platform, leading to fragmented progress and diminished engagement. An example is a player using a username and password to login regardless of platform. If a player switches from an iPhone to an Android tablet, the unified system guarantees access to their established profile. The implication is a seamless transition and continued investment in the game.

  • Cross-Platform Data Synchronization

    Account systems synchronize player data, including progress, achievements, and in-game inventory, between iOS and Android devices. This synchronization ensures that players experience a consistent game state irrespective of the platform they are using. Cloud-based storage solutions, such as those provided by Firebase or PlayFab, facilitate this data synchronization. Inconsistent data synchronization can lead to frustration and disengagement. As an example, synchronization ensures a player retains access to unlocked characters and completed levels even after switching devices.

  • Social Integration and Connectivity

    Account systems enable social features such as friend lists, leaderboards, and matchmaking across iOS and Android platforms. By integrating with existing social networks or providing a custom social infrastructure, account systems allow players to connect with friends and compete with others regardless of their device preference. This fosters community and enhances the social aspect of multiplayer games. In the absence of social integration, player interaction becomes limited. Implementing such systems as friend lists or cross-platform tournaments enriches the gameplay by allowing individuals on distinct operating systems to play together.

  • Security and Fraud Prevention

    Robust account systems incorporate security measures to protect player data and prevent fraudulent activities. This includes encryption, authentication protocols, and anti-cheating mechanisms. Secure account management is essential for maintaining the integrity of the game and preventing unauthorized access or manipulation of player data. Without adequate security measures, the game becomes vulnerable to exploits. An example is utilizing multi-factor authentication to minimize the risk of account compromise; or banning illegitimate accounts from the system.

Account system integration is not merely a technical consideration but a strategic imperative for interactive mobile entertainment applications. By providing a unified player identity, enabling cross-platform data synchronization, fostering social connectivity, and ensuring security, robust account systems contribute to a seamless, engaging, and secure gaming experience across both iOS and Android platforms. Neglecting this aspect of development can lead to fragmented player bases, data inconsistencies, and ultimately, a less compelling and potentially insecure gaming environment.

5. Scalable Server Architecture

Scalable server architecture is a fundamental necessity for supporting interactive entertainment applications facilitating synchronous multiplayer experiences across iOS and Android platforms. The capacity to dynamically adjust server resources in response to fluctuating player demand directly determines the stability, responsiveness, and overall quality of the gaming environment. Without a scalable infrastructure, even moderate increases in player concurrency can lead to performance degradation, service outages, and a severely compromised user experience.

  • Dynamic Resource Allocation

    Dynamic resource allocation involves automatically adjusting server capacity based on real-time player demand. This typically entails provisioning additional virtual machines or container instances to handle increased traffic during peak hours and deallocating resources during off-peak periods. Cloud-based platforms such as Amazon Web Services (AWS), Google Cloud Platform (GCP), and Microsoft Azure provide tools for automating resource scaling. For instance, an application experiencing a surge in player activity during a weekend event can automatically spin up additional servers to maintain performance. Failure to implement dynamic resource allocation results in over-provisioning, incurring unnecessary costs, or under-provisioning, leading to unacceptable latency and service disruptions.

  • Load Balancing

    Load balancing distributes incoming network traffic across multiple servers to prevent any single server from becoming overloaded. This ensures that all players receive a consistent level of performance, regardless of their geographical location or the overall server load. Load balancers can be implemented using hardware appliances or software solutions. A load balancer might distribute player connections across multiple game server instances, ensuring each instance operates within its capacity limits. Without effective load balancing, players connected to overloaded servers will experience increased latency, lag, and disconnections, negatively impacting their engagement.

  • Database Scalability

    Database scalability is crucial for storing and retrieving player data, game state information, and other persistent data required by the application. Relational databases, such as MySQL or PostgreSQL, can be scaled horizontally using techniques like sharding, which involves partitioning the database across multiple physical servers. NoSQL databases, such as MongoDB or Cassandra, are inherently designed for scalability and can handle large volumes of data with high availability. A database might be sharded based on player region, distributing the load across multiple database servers. Inadequate database scalability can result in slow data access, data corruption, and ultimately, game instability.

  • Geographic Distribution

    Distributing servers across multiple geographical regions minimizes network latency for players located in different parts of the world. By deploying servers closer to player populations, round-trip times are reduced, improving responsiveness and fairness. Content delivery networks (CDNs) can be used to cache static game assets, such as textures and models, closer to players, further reducing latency. A game with players in North America, Europe, and Asia might deploy servers in each region to minimize latency. Without geographic distribution, players located far from the primary server location will experience significant lag, impacting their ability to compete effectively.

These facets of scalable server architecture are integral to the successful operation of interactive entertainment applications targeting synchronous multiplayer gaming across iOS and Android devices. By adopting dynamic resource allocation, implementing load balancing, ensuring database scalability, and leveraging geographic distribution, developers can deliver a robust and engaging gaming experience that can accommodate a large and geographically diverse player base. Failure to address these considerations can lead to performance bottlenecks, service disruptions, and ultimately, a negative impact on player satisfaction and retention.

6. Input Method Abstraction

Interactive entertainment applications designed for synchronous multiplayer experiences across iOS and Android operating systems necessitate a robust system for managing diverse input methods. Input method abstraction is the process of creating a unified interface that translates platform-specific inputssuch as touch gestures on iOS and physical controls on Android devicesinto a standardized format recognized by the game engine. The absence of effective input method abstraction leads to inconsistent player experiences, particularly when users on different platforms interact. As an example, a fighting game lacking proper abstraction might exhibit different move execution timings depending on the device, thereby creating an uneven playing field. The practical significance of input method abstraction lies in its ability to foster fair and equitable gameplay, irrespective of the device used.

The implementation of input method abstraction typically involves the creation of an intermediary layer that intercepts raw input data and converts it into abstract actions. For instance, a touch screen drag on iOS might be translated into a virtual joystick movement, while a physical gamepad input on Android might be mapped to the same virtual joystick action. This abstraction layer allows the game logic to respond consistently to player actions, regardless of the underlying input mechanism. Libraries such as SDL (Simple DirectMedia Layer) or frameworks such as Unity offer tools and functions to facilitate this process. These tools provide a common interface for handling input events, reducing the burden on developers to manage platform-specific differences. A real-world application might see a development team defining common actions such as “jump,” “attack,” and “move forward” then mapping various platform-specific input events to trigger those actions.

In summary, input method abstraction is a critical component for successful interactive entertainment development involving cross-platform multiplayer functionality. It ensures that players experience a consistent and fair gameplay environment across iOS and Android devices, promoting engagement and fostering a unified gaming community. Challenges in this area primarily involve managing the nuances of different input mechanisms and maintaining responsiveness across a range of devices. However, by addressing these challenges effectively, developers can create truly immersive and equitable multiplayer experiences.

7. Graphics API Normalization

Graphics API normalization is a critical process in the creation of interactive entertainment applications designed for synchronous multiplayer gaming across iOS and Android platforms. These platforms employ differing graphics APIs: Metal on iOS and OpenGL ES or Vulkan on Android. Without normalization, developers would be forced to maintain separate rendering pipelines for each operating system, significantly increasing development complexity and maintenance overhead. The result would be potential visual inconsistencies, performance disparities, and escalating costs. For instance, a particle effect rendered using platform-specific APIs might appear visually distinct or perform differently on iOS versus Android, creating an uneven user experience.

Graphics API normalization typically involves the use of a cross-platform game engine, such as Unity or Unreal Engine. These engines provide an abstraction layer that allows developers to write code targeting a single graphics API, which the engine then translates into the appropriate API for each platform. This approach significantly reduces the complexity of cross-platform development and ensures a more consistent visual experience. A team developing a title for both iOS and Android can use a single shader program written in a common shading language supported by the game engine. The engine then compiles this shader into Metal Shading Language (MSL) for iOS and OpenGL ES Shading Language (GLSL ES) or Vulkan Shader Language (depending on the Android device and settings) for Android, ensuring compatibility and consistent visual output.

In summary, graphics API normalization is essential for the efficient development and consistent visual presentation of interactive mobile entertainment applications supporting cross-platform multiplayer functionality. By abstracting away platform-specific details and providing a unified rendering pipeline, normalization minimizes development costs, maximizes visual consistency, and ensures a more equitable and engaging gaming experience for players on both iOS and Android. Effectively managing this normalization is vital for a successful title launch and continued maintenance.

8. Monetization Strategy Alignment

Monetization strategy alignment is a critical determinant of long-term sustainability for interactive entertainment applications supporting synchronous multiplayer gameplay across iOS and Android platforms. Inherent in the design of cross-platform multiplayer games is the need to establish a revenue model that functions equitably across both ecosystems without disrupting the competitive balance. Inconsistencies in pricing, availability of in-app purchases, or subscription models can generate player resentment and create a perception of unfair advantage, damaging the game’s reputation and player retention. As a consequence, a poorly aligned monetization strategy undermines the benefits derived from cross-platform play. An example would be offering a powerful, purchasable item exclusively on one platform; this creates an immediate imbalance and incentivizes players to migrate to the favored platform or abandon the game altogether.

Practical application involves careful consideration of diverse monetization methods such as in-app purchases (IAP), subscriptions, advertising, and hybrid approaches. IAP, particularly cosmetic items or boosts that do not directly impact gameplay, often present the least disruptive model. Subscription services, offering access to exclusive content or features, require meticulous balancing to ensure equitable value across platforms. Advertising-based monetization, while prevalent, must be implemented judiciously to avoid negatively impacting the player experience. Real-world examples include “Fortnite,” which primarily relies on cosmetic IAP, or “Call of Duty: Mobile,” which employs a combination of battle passes and optional item purchases. Both games maintain platform parity in their monetization offerings to avoid fragmenting their player base. Careful A/B testing of different monetization strategies across platforms allows developers to gather data-driven insights and refine their approach.

Effective alignment necessitates a comprehensive understanding of platform-specific user demographics, purchase behaviors, and regulatory guidelines. Challenges include navigating differing app store policies, managing currency conversion rates, and addressing regional variations in player preferences. Aligning monetization strategies requires a proactive approach focused on fairness, transparency, and consistent value proposition across both iOS and Android platforms. Failure to achieve this alignment poses a significant threat to the financial viability and the long-term health of interactive mobile entertainment applications targeting cross-platform multiplayer gaming.

9. Consistent User Experience

A consistent user experience across iOS and Android platforms is paramount for the success of interactive entertainment applications offering synchronous multiplayer functionality. Discrepancies in performance, visual fidelity, or control responsiveness between operating systems can significantly detract from player engagement and competitive fairness. Therefore, maintaining a uniform and intuitive user experience is not merely a desirable attribute, but a fundamental requirement for fostering a thriving cross-platform gaming community. A disparate experience introduces a cause-and-effect dynamic, where inconsistencies generate player frustration and attrition, ultimately undermining the core value proposition of cross-platform play. For example, a game exhibiting frequent frame rate drops on Android while running smoothly on iOS creates an uneven playing field and incentivizes players to favor the more performant platform.

Achieving a consistent experience necessitates careful consideration of numerous technical and design elements. Game engines such as Unity and Unreal Engine offer cross-platform development tools, but developers must actively optimize performance and address platform-specific nuances to ensure parity. This includes careful management of graphical settings, input handling, and network communication protocols. Furthermore, consistent visual design and user interface elements contribute to a unified brand identity and minimize user confusion. A practical application involves rigorous testing across a wide range of devices and operating system versions to identify and resolve performance bottlenecks and visual discrepancies. Development teams may also employ techniques such as dynamic resolution scaling or adaptive quality settings to maintain consistent frame rates across devices with varying hardware capabilities.

In summary, a consistent user experience is an indispensable component of successful cross-platform multiplayer gaming on iOS and Android. Addressing the challenges associated with performance optimization, visual consistency, and input harmonization is essential for creating an engaging and equitable gaming environment. Neglecting this aspect of development can lead to fragmented player bases, negative reviews, and ultimately, diminished financial returns. A dedication to providing a uniform and intuitive user experience across platforms is not merely a technical consideration but a strategic imperative for interactive mobile entertainment applications.

Frequently Asked Questions

The following provides answers to commonly asked questions regarding interactive mobile entertainment applications designed for synchronous multiplayer functionality across both iOS and Android platforms.

Question 1: What technical challenges are inherent in developing cross-platform mobile games?

Significant technical challenges include managing disparate graphics APIs (Metal on iOS, OpenGL ES/Vulkan on Android), handling varied screen resolutions and aspect ratios, ensuring consistent performance across diverse hardware configurations, and mitigating network latency across different mobile networks. Addressing these requires specialized knowledge of each platform and strategic optimization techniques.

Question 2: How does one ensure fair gameplay in cross-platform multiplayer environments?

Fair gameplay mandates the implementation of robust anti-cheat measures, input normalization to account for device-specific control differences, and lag compensation techniques to minimize the impact of network latency. Furthermore, developers often employ server-side authority to validate player actions and prevent unauthorized manipulation of game state.

Question 3: What monetization strategies are most effective for cross-platform mobile games?

Effective monetization strategies typically involve a balanced approach that avoids creating pay-to-win scenarios. Cosmetic items, optional subscriptions for enhanced features, and well-integrated advertising can generate revenue without disrupting the competitive balance. Alignment of pricing and availability across platforms is crucial.

Question 4: How can developers optimize performance for cross-platform mobile games?

Performance optimization involves profiling game code to identify bottlenecks, employing efficient data structures and algorithms, optimizing rendering techniques, and utilizing platform-specific APIs for tasks such as memory management and thread scheduling. Adaptive quality settings allow games to adjust graphical fidelity based on device capabilities.

Question 5: What are the legal and regulatory considerations for cross-platform mobile games?

Legal and regulatory considerations include compliance with app store policies (Apple App Store and Google Play Store), adherence to data privacy regulations (such as GDPR and CCPA), and ensuring intellectual property rights are respected. Localization and culturalization may also be necessary to cater to diverse player demographics.

Question 6: How is user data managed to ensure privacy and security across different platforms?

User data management necessitates robust encryption of sensitive information, secure authentication protocols to prevent unauthorized access, and transparent data privacy policies that comply with relevant regulations. Regular security audits and penetration testing are crucial for identifying and mitigating potential vulnerabilities.

These answers address the most common concerns surrounding interactive mobile entertainment applications featuring synchronous multiplayer across iOS and Android. Successfully navigating these challenges is essential for creating compelling and sustainable gaming experiences.

The next section will delve into emerging trends and future directions in the field of cross-platform mobile gaming.

Tips for Developing Games Across iOS and Android for Multiplayer

This section offers guidance on core development considerations for interactive mobile entertainment applications supporting synchronous multiplayer functionality across iOS and Android platforms. Attention to these tips will contribute to a more successful product.

Tip 1: Prioritize Network Protocol Optimization: Select a network protocol tailored for real-time communication. Consider UDP for low-latency but potentially unreliable data transmission, or TCP for reliable but potentially higher-latency communication. Investigate solutions like WebRTC or dedicated game networking libraries for optimized performance. Implement compression techniques to minimize data transfer volumes.

Tip 2: Implement Robust Client-Side Prediction and Reconciliation: Client-side prediction allows players to experience immediate feedback to their actions, masking network latency. Implement reconciliation mechanisms to correct any discrepancies between the predicted client state and the authoritative server state. This minimizes the perception of lag and ensures fair gameplay.

Tip 3: Standardize Input Handling Through Abstraction: Abstract input methods to create a unified interface that functions consistently across touch screens and physical controllers. This ensures that game logic responds identically regardless of the input method used, fostering a more equitable experience.

Tip 4: Adopt a Cross-Platform Development Framework: Utilize a robust game engine such as Unity or Unreal Engine to streamline development and ensure cross-platform compatibility. These frameworks provide tools for handling graphics rendering, input management, and network communication across both iOS and Android.

Tip 5: Profile and Optimize Performance Across Diverse Devices: Conduct thorough performance testing on a range of iOS and Android devices to identify and address performance bottlenecks. Employ optimization techniques such as dynamic resolution scaling, level of detail (LOD) adjustments, and efficient memory management.

Tip 6: Secure Server-Side Architecture: Server-side security is vital. Implement comprehensive security measures to protect player data and prevent cheating or unauthorized access. This includes robust authentication protocols, data encryption, and anti-cheat detection mechanisms.

Tip 7: Leverage Cloud-Based Services for Scalability: Employ cloud-based services such as AWS, Google Cloud, or Azure to ensure scalability and reliability. These platforms offer tools for dynamic resource allocation, load balancing, and geographically distributed server deployments.

Careful attention to these tips will help mitigate risks and increase the likelihood of developing engaging and profitable interactive entertainment applications that function effectively across iOS and Android platforms.

The next section will present a summary of the key concepts discussed in this article.

Conclusion

The development of interactive entertainment applications categorized as “games ios android multiplayer” presents significant technical and design challenges. Successful implementations require careful attention to cross-platform compatibility, real-time synchronization, network latency mitigation, account system integration, scalable server architecture, input method abstraction, graphics API normalization, aligned monetization strategies, and consistent user experience. These elements collectively determine the viability and long-term success of such applications.

Continued advancement in mobile technology and networking infrastructure will undoubtedly expand the scope and complexity of interactive experiences within the “games ios android multiplayer” sector. Developers and researchers must remain vigilant in addressing emerging challenges and capitalizing on new opportunities to deliver compelling and equitable gaming experiences across diverse platforms. Focused development and study in this area hold considerable potential for future innovation within the interactive entertainment industry.