Weekly Comment
Black Myth: Wukong is an action role-playing game developed over several years by the Chinese game studio Game Science, inspired by the classic Chinese novel “Journey to the West”. It was officially released on multiple platforms on August 20th (the same day this weekly newsletter is published).
As the first true AAA game produced by a Chinese game developer, “Wukong” has garnered widespread attention from Chinese players. The game quality showcased before its release has also won the anticipation of players worldwide. During the pre-sale period, sales exceeded 1.2 million copies. Although it still can’t be compared to some famous established IPs, this achievement is already delightful.
On its launch day, “Wukong” broke several records, including the one for the most concurrent players in a paid single-player game on Steam.
Beyond expectations for the game’s quality, as Chinese players, we hope that “Wukong” can bring some positive changes to China’s game industry. As a market that ranks among the top in the world in terms of gaming population and consumption, China has long suffered from a severe imbalance in game types, with mobile and online games occupying the vast majority of market share, while single-player games account for an extremely low proportion.
Since most single-player games adopt a one-time purchase model (not primarily relying on microtransactions), developers usually pay more attention to the integrity of the story and strive to attract user consumption by improving the game’s first impression.
I’m not entirely against non-one-time purchase games. However, whether a game can make consumers continuously invest time, energy, and money should depend on whether it can bring players sustained freshness and good gaming experiences. Yet, in the current market, to stimulate player consumption, the development of many games has completely deviated from the original intention of the word “game”, instead exploiting human weaknesses to create addictive activities. Games are making more money, but they’re also becoming less fun.
Once product development is completely dominated by business thinking, its essence undergoes a huge change. This situation exists not only in the game industry but is also increasingly common in the mobile application field. More and more applications have adopted subscription-based charging methods without offering a one-time purchase option. Compared to the paid update mechanism from a few years ago, the subscription model means that users lose access to the product if they don’t renew, and the spread of this trend undoubtedly increases consumers’ cost burden and the uncertainty of user data.
As Chinese players, we need more works like “Wukong” to improve the market environment. As a consumer of digital products, I also hope that more products can retain the one-time purchase mechanism to reduce user burden and provide guarantees for product and data ownership.
BTW: ❤️ Our email-based weekly newsletter subscriptions surpassed 2,000 last week.
Originals
Considerations for Using Codable and Enums in SwiftData Models
Compared to Core Data, SwiftData has fundamentally revolutionized the way data models are constructed. It not only supports a purely code-based declaration method but also allows the direct use of types conforming to the Codable
protocol and enum types within models, which are its significant new features. Many developers are inclined to leverage these new capabilities because they seem to fit very well with the Swift language’s declaration style. However, a lack of understanding of the implementation details and potential limitations of these new features may lead to various issues in the future. This article aims to discuss several key points to consider when using Codable
and enums in SwiftData models, helping developers avoid common pitfalls.
Recent Selections
Global Sheets Pattern in SwiftUI
SwiftUI offers a highly flexible way to declare and display modal forms, allowing developers to declare and dynamically show or hide forms based on state. However, as the application scales, this highly flexible implementation may lead to complexity and difficulty in global management. In this article, Mohammad Azam explores how to optimize form display management through the implementation of the “Global Sheets Pattern”. This pattern centralizes form logic, not only simplifying the management process but also providing a clear, maintainable solution with an easy-to-use API. This method effectively resolves the common issues of redundancy and confusion in managing forms across multiple views, making the code cleaner and easier to maintain.
SwiftUI in 2024: Bridging Perception and Reality
Rizwan Ahmed discusses the challenges and opportunities of developing with SwiftUI at the iOSKetchup2024 event, providing detailed solutions in the article. The article starts with the challenges of SwiftUI, covering its features, behavior differences across platforms, solutions to navigation issues, enhancing accessibility, and its potential as a design tool. The author emphasizes that despite the challenges, the dynamic cross-platform development potential of SwiftUI is immense, serving as a bridge between technological perception and reality, and facilitating close collaboration between developers and designers.
The (too?) complex state of the Emoji standard in 2024
In this article, Daniel Saidi discusses the current state of the emoji standard, particularly emphasizing the complexity brought by supporting skin tones, genders, and directional variants, and the significant decision by Apple to remove emojis in iOS 17.4 for the first time and its deeper implications. The article notes that as emoji support for more variants has grown, so has its complexity exponentially, leading to unprecedented technical compatibility issues. Saidi believes that while the initial intention of adding these variants was well-meaning, this approach might have diverted the emoji standard from its original goal of providing a simple, universal standard. He hopes that future emoji standards will more comprehensively reflect human diversity, rather than just revolving around skin tone and gender changes.
Disabling Xcode Asset Symbol Generation
Starting with Xcode 15, a new feature was introduced that allows for the creation of Swift and Objective-C symbols for colors and images in the asset catalog. This enables developers to use these generated symbols directly in SwiftUI views, reducing errors and leveraging autocomplete and compiler validation. However, when used in Swift Package Management (SPM), the default auto-generation setting could pose problems. Particularly in Xcode 15, there was no way to disable this feature. Keith Harrison discusses in this article how to disable asset symbol generation in the asset catalog in Xcode 16, which is particularly important for developers who want to avoid symbol name conflicts or do not rely on Xcode to auto-generate code. This feature update allows developers to more finely control the generation of asset symbols, enhancing project flexibility and code maintainability.
Thought: App Review Should Grant Core-Function Default Entitlements to Apps on the App Stores
With the launch of macOS 15 Sequoia, the management of app permissions has become stricter, for example, screen recording permission now requires weekly user confirmation. Matthias Gansrigler proposes that apps reviewed by the Apple App Store should automatically receive default permissions for their core functions, sparing users the hassle of repeated confirmations. He believes that App Review should be a key factor in determining whether an app receives certain permissions. This approach would not only enhance the user experience of apps downloaded from the Mac App Store, making them more friendly and refined but also highlight the superiority of Apple products. However, Gansrigler also notes that, given the frequency of oversight incidents in the App Review process, such an automatic authorization mechanism might still be an idealized notion. This further triggers a deep questioning of the value and effectiveness of App Review.