<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Welcome to the Game Server Services User Guide on Game Server Services | Docs</title>
    <link>/</link>
    <description>Recent content in Welcome to the Game Server Services User Guide on Game Server Services | Docs</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Design</title>
      <link>/overview/workflow/architect/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/overview/workflow/architect/</guid>
      <description>Once the game specifications have been determined, it is necessary to consider how to implement them. GS2 provides microservices that can be used to implement various game specifications.&#xA;Please refer to the following document for a description of the types of microservices provided by GS2 and the role of each microservice.&#xA;Introduction to Microservices Game Server Services offers paid support to help you with your design.&#xA;When you sign up for paid support, GS2 staff will work with you to understand your game specifications and how best to apply GS2&amp;rsquo;s microservices.</description>
    </item>
    <item>
      <title>GS2-Account</title>
      <link>/microservices/account/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/account/</guid>
      <description>The account system provided by Game Server Services is an &amp;ldquo;anonymous account&amp;rdquo; type of account system. This is a major system in Japan, but may be unfamiliar in other regions.&#xA;However, this account system makes a lot of sense for games.&#xA;What is an anonymous account? When you think of account management, you usually think of having a login ID and a password. Anonymous accounts are no different.&#xA;However, the most important feature is that both the login ID and password are randomly generated by the system.</description>
    </item>
    <item>
      <title>GS2-AdReward</title>
      <link>/microservices/ad_reward/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/ad_reward/</guid>
      <description>It has become common practice to have players view ads and earn rewards from ad platforms as a monetization method for mobile games. When an ad is viewed correctly, the ad platform notifies GS2 via server-to-server coordination, and rewards are granted by GS2, thereby preventing cheating.&#xA;In designs where rewards are granted solely via client-side callbacks, there is a risk of cheating using a tampered SDK. GS2-AdReward provides a mechanism that issues rewards based on trusted viewing-completion events delivered via direct Server-to-Server (S2S) notifications from the ad platform to GS2.</description>
    </item>
    <item>
      <title>GS2-Buff</title>
      <link>/microservices/buff/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/buff/</guid>
      <description>GS2-Buff provides a centralized function to manage compensation and rewards for microservices provided by GS2, as well as corrections to the maximum value of user data. It can be used to realize features such as increasing rewards for a limited period of time or raising the maximum value of user data while a subscription is active.&#xA;Rather than directly rewriting other microservices, GS2-Buff propagates correction values to each microservice via meta information called a &amp;ldquo;context stack&amp;rdquo; passed in API calls.</description>
    </item>
    <item>
      <title>GS2-Chat</title>
      <link>/microservices/chat/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/chat/</guid>
      <description>GS2-Chat allows you to add text chat to your game. Text chat requires an always-on session to detect new messages and has complex server requirements.&#xA;Game Server Services frees you from the hassle of managing these always-on sessions.&#xA;Room To start using GS2-Chat, you must first create a room. Rooms can be created freely by the player, or you can have a room created for you by the developer. You can also set a whitelist of user IDs that are allowed to post, enabling you to build rooms exclusive to specific members.</description>
    </item>
    <item>
      <title>GS2-Datastore</title>
      <link>/microservices/datastore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/datastore/</guid>
      <description>GS2-Datastore allows you to store arbitrary binary data on the server.&#xA;Uploaded data can have access permissions set: choose from public (open to everyone), protected (visible only to specified user IDs: up to 100), or private (yourself only).&#xA;GS2-Datastore is primarily intended for uploading data such as UGC or racing-game ghost data, and is not necessarily suitable for storing player user data.&#xA;This is because storing the quantity of possessions as binary data would allow item duplication via tampering of the save data or the application binary, or play with modded applications that illegally inflate acquired quantities.</description>
    </item>
    <item>
      <title>GS2-Deploy</title>
      <link>/microservices/deploy/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/deploy/</guid>
      <description>GS2-Deploy provides the ability to manage namespaces and master data of GS2 microservices as code, and to provision them declaratively.&#xA;Designed with a philosophy similar to AWS CloudFormation, it allows you to build, update, and delete resources spanning multiple microservices as a single unit (a stack) based on resource definitions described in a template file.&#xA;In game development, adjustments to master data and changes to namespace configurations occur frequently.&#xA;By using GS2-Deploy, you can manage these changes in Git, and run CI/CD pipelines linked with repositories such as GitHub to deploy them automatically.</description>
    </item>
    <item>
      <title>GS2-Dictionary</title>
      <link>/microservices/dictionary/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/dictionary/</guid>
      <description>GS2-Dictionary provides a dictionary (compendium) function for items and characters acquired in the game.&#xA;Basically, you can think of it as a simple-implementation version of GS2-Inventory, which manages a two-state (acquired / not acquired) ownership status.&#xA;It can also be used for purposes other than a dictionary. For example, the ownership status of avatar parts is a good example. Whether you own a particular avatar part is sufficient to manage as a two-state per part, so GS2-Dictionary is well suited for this.</description>
    </item>
    <item>
      <title>GS2-Distributor</title>
      <link>/microservices/distributor/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/distributor/</guid>
      <description>GS2-Distributor is the core service for executing transactions that span across multiple GS2 microservices. It provides the foundation for safely executing a sequence of operations that span multiple microservices, such as &amp;ldquo;consume an item to receive a reward&amp;rdquo; or &amp;ldquo;consume stamina to start a quest&amp;rdquo;.&#xA;In GS2, operations that are disadvantageous to the player are called &amp;ldquo;consume actions&amp;rdquo;, and operations that are advantageous are called &amp;ldquo;acquire actions&amp;rdquo;.&#xA;GS2-Distributor receives a &amp;ldquo;transaction&amp;rdquo; that bundles these actions together, then forwards and executes them against the appropriate microservices, allowing all of the processing that makes up the game cycle to be handled in a consistent manner.</description>
    </item>
    <item>
      <title>GS2-Enchant</title>
      <link>/microservices/enchant/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/enchant/</guid>
      <description>This service provides a feature for adding unique random parameters to equipment and characters. It can be used to implement expressions such as additional stats on weapons in an RPG, individual values granted to cards obtained from gacha, or additional effects on equipment in hack-and-slash games — i.e., representations where &amp;ldquo;even the same item has different performance for each individual instance&amp;rdquo;.&#xA;Two types of random parameters are available:&#xA;Balance parameter Rarity parameter graph TD Item[&amp;#34;Equipment, character, etc.</description>
    </item>
    <item>
      <title>GS2-Enhance</title>
      <link>/microservices/enhance/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/enhance/</guid>
      <description>This feature may be completely incomprehensible to some developers.&#xA;However, it is a feature that is always present in the de facto standard game systems of mobile games, starting with those in Japan. This game mechanic itself should be useful knowledge for realizing Game as a Service, so for developers who do not understand it we add an explanation of the game mechanism.&#xA;If you already have sufficient knowledge of the game mechanics of the enhancement feature, you can safely skip the rest of this explanation section.</description>
    </item>
    <item>
      <title>GS2-Exchange</title>
      <link>/microservices/exchange/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/exchange/</guid>
      <description>This is one of the most widely used microservices provided by GS2. It is responsible for converting the resources of any microservice into the resources of a completely different microservice.&#xA;There are many game specifications related to resource exchange, and GS2-Exchange comes into play each time.&#xA;Examples of resource exchange Conversion of enhancement materials Exchange 10 ★1 enhancement materials managed by GS2-Inventory for 1 ★2 enhancement material also managed by GS2-Inventory.</description>
    </item>
    <item>
      <title>GS2-Experience</title>
      <link>/microservices/experience/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/experience/</guid>
      <description>In Game as a Service, growth elements are indispensable. GS2-Experience provides experience and rank features for implementing a game cycle in which players grow their characters and use those grown characters to take on more challenging content.&#xA;GS2-Experience has a flexible design that lets you centrally manage not only the level of a single character but also the growth of multiple properties (characters, weapons, parties, guilds, etc.) within a single microservice.</description>
    </item>
    <item>
      <title>GS2-Formation</title>
      <link>/microservices/formation/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/formation/</guid>
      <description>It is a common specification to combine the resources you own into a single composition. This is the case when organizing multiple characters into a party, or organizing items such as weapons and armor as an equipment set.&#xA;GS2-Formation is a microservice that defines &amp;ldquo;what slots exist&amp;rdquo;, &amp;ldquo;what can be attached to each slot&amp;rdquo;, and &amp;ldquo;how many of the same type of formation can be held&amp;rdquo; as master data, and manages each player&amp;rsquo;s formation contents.</description>
    </item>
    <item>
      <title>GS2-Freeze</title>
      <link>/microservices/freeze/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/freeze/</guid>
      <description>GS2-Freeze is a feature that allows you to freeze the version of GS2 microservices used by your game at an arbitrary time, and to update the version on a schedule managed by the operator.&#xA;Normally, GS2 microservices are continuously upgraded, and games always use the latest version of the API. While most titles operate without issue under this model, there are situations such as right after the release of a large-scale title, or when stability is to be prioritized for a long period of time, where the operator wants to control the timing of service-side updates.</description>
    </item>
    <item>
      <title>GS2-Friend</title>
      <link>/microservices/friend/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/friend/</guid>
      <description>Provides the ability to create a game-specific social graph. While social graphs are a feature that platforms also offer, there is also value in creating your own in-game social graph.&#xA;Players tend to be reluctant to register platform-wide friend relationships. This is because there is a case of &amp;ldquo;I want to play the game I&amp;rsquo;m playing with this person, but I don&amp;rsquo;t want to play other games with them&amp;rdquo;. If we treat the social graph provided by the platform as reflecting a relationship closer to real life, and the game-specific social graph as reflecting a relationship within that game, players will feel more comfortable using the friend feature.</description>
    </item>
    <item>
      <title>GS2-Gateway</title>
      <link>/microservices/gateway/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/gateway/</guid>
      <description>GS2-Gateway provides the ability to maintain a persistent WebSocket connection between the game client and the server, and to deliver notifications from the server at any time.&#xA;Normal communication with a game server is a request-response model where the server responds to client requests, but GS2-Gateway enables server-initiated notifications (incoming messages, friend requests, guild invitations, etc.) to be delivered to the client in real time.&#xA;sequenceDiagram participant Client participant Gateway as GS2-Gateway participant Service as Each Microservice Client-&amp;gt;&amp;gt;Gateway: WebSocket Connect Client-&amp;gt;&amp;gt;Gateway: SetUserId (authenticate) Service-&amp;gt;&amp;gt;Gateway: SendNotification Gateway-&amp;gt;&amp;gt;Client: Deliver notification payload Main features Persistent WebSocket connection GS2-Gateway accepts connections from clients using the WebSocket protocol and maintains connection information per user.</description>
    </item>
    <item>
      <title>GS2-Grade</title>
      <link>/microservices/grade/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/grade/</guid>
      <description>A common specification for character and equipment development is to provide grade-up in addition to level-up as a short-term growth goal. Grading up can raise the level cap and make it possible to develop characters and equipment more powerfully.&#xA;There are several possible methods of upgrading: some can be done by consuming growth materials, while others involve synthesizing characters or equipment of the same kind. GS2-Grade does not care about the method.</description>
    </item>
    <item>
      <title>GS2-Guard</title>
      <link>/microservices/guard/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/guard/</guid>
      <description>GS2-Guard provides the ability to protect access to GS2 API endpoints. It allows you to determine the request source by various conditions such as country or region, IP address, anonymous IP, IP of hosting providers, and IPs with bad reputation, and to allow or deny API requests accordingly.&#xA;It functions as a kind of lightweight WAF (Web Application Firewall) for games, protecting the game server from misuse, cheating, and abusive traffic.</description>
    </item>
    <item>
      <title>GS2-Guild</title>
      <link>/microservices/guild/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/guild/</guid>
      <description>The guild function is a feature that allows multiple players to create a team and work together toward some goal. GS2-Guild is a microservice that manages guild members and the privileges that guild members have.&#xA;In GS2-Guild, a &amp;ldquo;guild&amp;rdquo; is treated as a single player and referred to as a guild user. Guild members are federated to be able to retrieve and update information as guild users, so that guild members can manipulate common properties.</description>
    </item>
    <item>
      <title>GS2-Identifier</title>
      <link>/microservices/identifier/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/identifier/</guid>
      <description>GS2-Identifier is a service that manages credentials for accessing the GS2 management console and GS2 APIs.&#xA;It issues and manages users associated with a GS2 owner account, the permissions (security policies) granted to each user, and the client ID / client secret actually used to call APIs.&#xA;GS2-Identifier is a service that is not intended to be called directly from game clients; it is used for operator-side setup, deployment automation, and CI/CD pipelines.</description>
    </item>
    <item>
      <title>GS2-Idle</title>
      <link>/microservices/idle/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/idle/</guid>
      <description>Implements a mechanism that grants rewards based on how long the game has not been played. For smartphone games, a design where &amp;ldquo;you launch the app after a while and obtain a large amount of rewards&amp;rdquo; strongly contributes to encouraging players to return. GS2-Idle is a microservice that makes it easy to incorporate such idle rewards.&#xA;graph LR Start[&amp;#34;Start waiting&amp;#34;] --&amp;gt; Idle[&amp;#34;Idle time elapses&amp;#34;] Idle --&amp;gt; Prediction[&amp;#34;Retrieve scheduled rewards&amp;#34;] Prediction --&amp;gt; Receive[&amp;#34;Receive rewards&amp;#34;] Receive --&amp;gt; Start Categories Multiple idle rewards can be provided.</description>
    </item>
    <item>
      <title>GS2-Inbox</title>
      <link>/microservices/inbox/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/inbox/</guid>
      <description>Implements a mechanism for delivering messages and gifts from the system or operators to players.&#xA;In games, situations frequently arise where rewards are delivered asynchronously to players, such as &amp;ldquo;apology distributions&amp;rdquo;, &amp;ldquo;login bonuses&amp;rdquo;, &amp;ldquo;purchase bonuses&amp;rdquo;, and &amp;ldquo;event rewards&amp;rdquo;. GS2-Inbox provides message queuing, unread/read management, reward attachment, and automatic deletion by expiration date, serving as the present box feature throughout the lifecycle of the game.&#xA;sequenceDiagram participant Ops as Operator / Server participant Inbox as GS2-Inbox participant Player as Player Ops-&amp;gt;&amp;gt;Inbox: Send message (with reward) Inbox--&amp;gt;&amp;gt;Player: receiveNotification Player-&amp;gt;&amp;gt;Inbox: Get message list Player-&amp;gt;&amp;gt;Inbox: Open message (Read) Inbox-&amp;gt;&amp;gt;Player: Grant attached reward (transaction) Player-&amp;gt;&amp;gt;Inbox: Delete read message Messages Read management Messages have a read status.</description>
    </item>
    <item>
      <title>GS2-Inventory</title>
      <link>/microservices/inventory/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/inventory/</guid>
      <description>Manage information about the items a player owns.&#xA;There are three methods for managing items. The first is standard inventory and the second is simple inventory and the third is big inventory.&#xA;Standard inventory has the following features.&#xA;Limit inventory capacity Splitting the same item into multiple stacks of a certain quantity Setting an expiration date on items Simple inventory, on the other hand, does not have the features of standard inventory.</description>
    </item>
    <item>
      <title>GS2-JobQueue</title>
      <link>/microservices/job_queue/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/job_queue/</guid>
      <description>GS2-JobQueue provides a job queue feature for stacking up processes to be executed asynchronously on the game server.&#xA;Game processing includes operations that do not need to return a result immediately, and operations that should progress gradually over time on the server side. Such processing can be registered as a &amp;ldquo;job&amp;rdquo; in the queue, and executed later either at the timing when the player accesses the server or by an explicit API call.</description>
    </item>
    <item>
      <title>GS2-Key</title>
      <link>/microservices/key/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/key/</guid>
      <description>GS2-Key is a service that manages encryption keys (symmetric keys) used within GS2, and provides AES-based encryption and decryption APIs.&#xA;In addition to use cases such as server-side encryption and decryption of sensitive data, it is also used as the key management foundation for various signing and encryption processes used internally by GS2 itself.&#xA;Encryption key management In GS2-Key, encryption keys are created and managed under a namespace.&#xA;A key can hold the following information.</description>
    </item>
    <item>
      <title>GS2-Limit</title>
      <link>/microservices/limit/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/limit/</guid>
      <description>This is a mechanism for limiting the number of times a player can act. You can centrally manage frequently-occurring count limits in games, such as &amp;ldquo;you can draw the gacha up to 5 times a day&amp;rdquo; or &amp;ldquo;a reward you can receive only once a week&amp;rdquo;.&#xA;graph LR Action[&amp;#34;Player action&amp;#34;] --&amp;gt; CountUp[&amp;#34;Count up (with maxValue specified)&amp;#34;] CountUp -- Limit not reached --&amp;gt; Success[&amp;#34;Allow processing&amp;#34;] CountUp -- Limit reached --&amp;gt; Failure[&amp;#34;Reject processing&amp;#34;] Reset[&amp;#34;Reset cycle&amp;#34;] --&amp;gt; Counter[&amp;#34;Reset counter to 0&amp;#34;] Counter An entity used to represent the number of times a player has acted.</description>
    </item>
    <item>
      <title>GS2-Lock</title>
      <link>/microservices/lock/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/lock/</guid>
      <description>GS2-Lock is a distributed mutual exclusion service that provides a mutex operating on a per-resource basis, preventing multiple server processes and multiple execution environments from accessing the same resource simultaneously.&#xA;In game operations, problems such as &amp;ldquo;performing the same process twice on the same player&amp;rdquo; or &amp;ldquo;different backend servers writing to the same data concurrently&amp;rdquo; can easily occur. GS2-Lock prevents these problems through a shared mutex provided as a microservice.</description>
    </item>
    <item>
      <title>GS2-Log</title>
      <link>/microservices/log/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/log/</guid>
      <description>GS2-Log provides a feature for aggregating and storing API access logs of all Game Server Services microservices embedded in your game.&#xA;In game operation, it is very important to be able to later trace &amp;ldquo;when, who, which API was called, with what arguments, and what result was returned&amp;rdquo;. GS2-Log data can be leveraged as the foundation for various operational tasks such as investigating fraudulent players, checking game balance, handling user inquiries, and aggregating KPIs.</description>
    </item>
    <item>
      <title>GS2-LoginReward</title>
      <link>/microservices/login_reward/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/login_reward/</guid>
      <description>This is a mechanism that distributes rewards to players who log in to the game every day. It provides a generic version of patterns frequently used in operations, such as distributing items that change daily, login bonuses that loop on a 7- or 30-day cycle, and the ability to retroactively compensate for missed days.&#xA;Mode There are two ways to provide login bonuses: 《Scheduled Mode》 and 《Streaming Mode》.&#xA;graph LR Mode{Bonus mode} --&amp;gt; Schedule[&amp;#34;Scheduled Mode&amp;lt;br/&amp;gt;(mode: schedule)&amp;#34;] Mode --&amp;gt; Streaming[&amp;#34;Streaming Mode&amp;lt;br/&amp;gt;(mode: streaming)&amp;#34;] Schedule -- Fixed to date --&amp;gt; SchEx[&amp;#34;Day 1=Gold, Day 2=Silver.</description>
    </item>
    <item>
      <title>GS2-Lottery</title>
      <link>/microservices/lottery/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/lottery/</guid>
      <description>This is a mechanism for implementing gachas. GS2-Lottery supports both normal gachas and box gachas.&#xA;graph TD Trigger[&amp;#34;Lottery trigger&amp;lt;br/&amp;gt;(GS2-Showcase purchase reward / quest clear reward, etc.)&amp;#34;] --&amp;gt; LotteryModel[&amp;#34;LotteryModel&amp;lt;br/&amp;gt;(lottery model)&amp;#34;] LotteryModel -- &amp;#34;mode = normal&amp;#34; --&amp;gt; Normal[&amp;#34;Normal mode lottery&amp;#34;] LotteryModel -- &amp;#34;mode = box&amp;#34; --&amp;gt; Box[&amp;#34;Box mode lottery&amp;#34;] Normal --&amp;gt; PrizeTable[&amp;#34;Prize table&amp;lt;br/&amp;gt;(PrizeTable)&amp;#34;] Box --&amp;gt; BoxData[&amp;#34;Player-exclusive box&amp;#34;] PrizeTable --&amp;gt; Prize[&amp;#34;Prize&amp;lt;br/&amp;gt;(acquireActions)&amp;#34;] BoxData --&amp;gt; Prize Prize --&amp;gt; Acquire[&amp;#34;GS2-Distributor&amp;lt;br/&amp;gt;reward distribution&amp;#34;] Normal Gacha A normal gacha performs a pure lottery with the specified probability.</description>
    </item>
    <item>
      <title>GS2-Matchmaking</title>
      <link>/microservices/matchmaking/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/matchmaking/</guid>
      <description>A feature that groups players based on conditions. It can be used to find opponents.&#xA;Script Triggers By configuring createGatheringTriggerScriptId, completeMatchmakingTriggerScriptId, and changeRatingScript on the namespace, you can execute custom scripts when a gathering is created, when matchmaking completes, and when ratings change.&#xA;The main configurable event triggers and the script setting names are as follows.&#xA;createGatheringTriggerScriptId: When a gathering is created completeMatchmakingTriggerScriptId: When matchmaking completes changeRatingScript: When a rating changes Push Notifications The main push notifications you can configure and their setting names are as follows.</description>
    </item>
    <item>
      <title>GS2-MegaField</title>
      <link>/microservices/mega_field/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/mega_field/</guid>
      <description>GS2-MegaField provides the ability to efficiently share and synchronize the position information of a large number of players in a huge 3D space.&#xA;In titles such as MMORPGs, open worlds, and metaverse-style services where a large number of players log in to the same world simultaneously, distributing every player&amp;rsquo;s position to every player would overwhelm both network bandwidth and CPU. GS2-MegaField solves this problem by efficiently retrieving &amp;ldquo;only the players near you&amp;rdquo;.</description>
    </item>
    <item>
      <title>GS2-Mission</title>
      <link>/microservices/mission/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/mission/</guid>
      <description>A mechanism for rewarding players based on actions they have accumulated in the game. It is used to implement features generally referred to as achievements, trophies, and missions.&#xA;graph TD Action[&amp;#34;In-game action&amp;lt;br/&amp;gt;(quest clear / gacha draw, etc.)&amp;#34;] -- &amp;#34;Increase counter&amp;lt;br/&amp;gt;(IncreaseCounterByUserId)&amp;#34; --&amp;gt; Counter[&amp;#34;Mission counter&amp;lt;br/&amp;gt;(Counter / Scope)&amp;#34;] Counter -- &amp;#34;Target value reached&amp;#34; --&amp;gt; Task[&amp;#34;Mission task&amp;lt;br/&amp;gt;(MissionTaskModel)&amp;#34;] Task -- &amp;#34;ReceiveRewards&amp;#34; --&amp;gt; Reward[&amp;#34;completeAcquireActions&amp;#34;] Reward --&amp;gt; Distributor[&amp;#34;GS2-Distributor&amp;lt;br/&amp;gt;reward distribution&amp;#34;] Task --&amp;gt; Group[&amp;#34;Mission group&amp;lt;br/&amp;gt;(MissionGroupModel)&amp;#34;] Group -- &amp;#34;Reset receipt flag&amp;lt;br/&amp;gt;based on resetType&amp;#34; --&amp;gt; Task Mission Counter An entity for counting the number of times based on a player&amp;rsquo;s actions.</description>
    </item>
    <item>
      <title>GS2-Money</title>
      <link>/microservices/money/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/money/</guid>
      <description>Warning GS2-Money2 has been released.&#xA;Unless there is a special reason, please use GS2-Money2 for new use cases.&#xA;A feature that handles in-game resources whose value is equivalent to cash. Be sure to use this feature when handling assets that fall under prepaid payment instruments (self-issued type) as defined by the Japanese Payment Services Act.&#xA;Balance GS2-Money does not manage a player&amp;rsquo;s billing currency balance as a simple quantity; instead, it manages quantities per the value at the time of purchase.</description>
    </item>
    <item>
      <title>GS2-Money2</title>
      <link>/microservices/money2/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/money2/</guid>
      <description>Tip GS2-Money2 is, as its name suggests, a microservice that corresponds to version 2.&#xA;For documentation on the previous version, see GS2-Money.&#xA;A feature for handling in-game resources that have a value equivalent to cash. Be sure to use this feature when handling assets that fall under prepaid payment instruments (self-issued type) as defined by the Japanese Payment Services Act.&#xA;GS2-Money2 is not merely a service that handles &amp;ldquo;billing currency balances&amp;rdquo;; it is a microservice that takes on the following accounting and legal-compliance requirements as a whole.</description>
    </item>
    <item>
      <title>GS2-News</title>
      <link>/microservices/news/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/news/</guid>
      <description>A mechanism for delivering in-game announcements in HTML format. The HTML content to be delivered must be generated by hugo (https://gohugo.io/).&#xA;When you upload article data to GS2-News, GS2 builds it with hugo and hosts it as static web content. Game clients can view the announcements by accessing the temporary URLs delivered by GS2.&#xA;graph LR Author[&amp;#34;Operator&amp;#34;] -- &amp;#34;ZIP upload&amp;#34; --&amp;gt; GS2[&amp;#34;GS2-News&amp;#34;] GS2 -- &amp;#34;hugo build (pre-generates all&amp;lt;br/&amp;gt;public/non-public patterns)&amp;#34; --&amp;gt; CDN[&amp;#34;CDN (HTML / ZIP)&amp;#34;] Player[&amp;#34;Player&amp;#34;] -- &amp;#34;GetContentsUrl&amp;#34; --&amp;gt; GS2 GS2 -- &amp;#34;URL &amp;#43; Cookie&amp;lt;br/&amp;gt;(valid for 1 hour)&amp;#34; --&amp;gt; Player Player -- &amp;#34;WebView or ZIP DL&amp;#34; --&amp;gt; CDN hugo hugo is a generator for producing static web pages.</description>
    </item>
    <item>
      <title>GS2-Quest</title>
      <link>/microservices/quest/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/quest/</guid>
      <description>Manages game progression and quest progress.&#xA;GS2-Quest is a microservice that manages on the server only the &amp;ldquo;entry&amp;rdquo; and &amp;ldquo;exit&amp;rdquo; of the in-game portion of the game (battles, stages, etc.). It is not involved in the internal logic of the in-game; it is responsible for processing that should be trusted by the server, such as cost consumption at start, granting rewards on clear, and evaluation of prerequisites.&#xA;graph LR Start[&amp;#34;Quest start&amp;lt;br/&amp;gt;StartAsync&amp;#34;] --&amp;gt; Battle[&amp;#34;Run the in-game&amp;lt;br/&amp;gt;(client / dedicated server)&amp;#34;] Battle -- Success --&amp;gt; End1[&amp;#34;Report quest end&amp;lt;br/&amp;gt;EndAsync(isComplete:true)&amp;#34;] Battle -- Failure --&amp;gt; End2[&amp;#34;Report quest end&amp;lt;br/&amp;gt;EndAsync(isComplete:false)&amp;#34;] End1 --&amp;gt; Reward[&amp;#34;Grant clear rewards&amp;#34;] End2 --&amp;gt; FailedReward[&amp;#34;Grant failure rewards&amp;#34;] Quests A quest is the basic unit of in-game play and is the entity you select when starting the in-game portion.</description>
    </item>
    <item>
      <title>GS2-Ranking</title>
      <link>/microservices/ranking/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/ranking/</guid>
      <description>Warning GS2-Ranking2 has been released.&#xA;Unless there is a special reason, please use GS2-Ranking2 for new use cases.&#xA;Implements a ranking feature for competing on game scores and clear times.&#xA;There are two types of rankings: &amp;ldquo;those where all participants compete on the same board&amp;rdquo; and &amp;ldquo;those where players compete against the scores of players they have subscribed to.&amp;rdquo; The former is called a global ranking, and the latter is called a scope ranking.</description>
    </item>
    <item>
      <title>GS2-Ranking2</title>
      <link>/microservices/ranking2/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/ranking2/</guid>
      <description>Tip GS2-Ranking2 is, as its name suggests, a microservice that corresponds to version 2.&#xA;For documentation on the previous version, see GS2-Ranking.&#xA;Implements a ranking feature for competing on game scores and clear times.&#xA;GS2-Ranking2 provides the following three modes.&#xA;Global ranking Cluster ranking Subscription ranking Most of the ranking requirements a game needs should be satisfiable by one of these modes.&#xA;Ranking Modes Global Ranking Global ranking provides a ranking feature for competing against all players.</description>
    </item>
    <item>
      <title>GS2-Realtime</title>
      <link>/microservices/realtime/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/realtime/</guid>
      <description>This feature can be used for low-latency, high-frequency communication to allow game players to play against each other.&#xA;GS2 typically charges by the number of API requests, but for this service, once the game server is up and running, a fee is charged for the time the game server is running and for communication capacity. There is no charge per number of communications.&#xA;graph TD Match[&amp;#34;Lobby established&amp;lt;br/&amp;gt;by GS2-Matchmaking&amp;#34;] --&amp;gt; Want[&amp;#34;Request a room with RoomWant&amp;#34;] Want -- Allocated from hot standby --&amp;gt; Warm[&amp;#34;Warm Start (1 to 3 seconds)&amp;#34;] Want -- New launch --&amp;gt; Cold[&amp;#34;Cold Start (40 to 60 seconds)&amp;#34;] Warm --&amp;gt; Connect[&amp;#34;Player connects&amp;#34;] Cold --&amp;gt; Connect Connect --&amp;gt; Play[&amp;#34;In-game communication via packet relay&amp;#34;] Play -- No communication for 1 minute or 3 hours elapsed --&amp;gt; Shutdown[&amp;#34;Room terminated&amp;#34;] Server Type Currently, GS2-Realtime only provides packet relay functionality.</description>
    </item>
    <item>
      <title>GS2-Schedule</title>
      <link>/microservices/schedule/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/schedule/</guid>
      <description>Provides functionality to manage schedules for in-game events and similar activities.&#xA;On its own, GS2-Schedule only manages event duration information; reward granting, purchase restrictions, and similar processing are realized by combining it with other microservices. Nearly all game-element microservices such as GS2-Showcase / GS2-Exchange / GS2-LoginReward / GS2-Mission are designed on the premise of cooperating with event durations, making it the core microservice when conducting limited-time operations.&#xA;Event Duration There are two types of event duration.</description>
    </item>
    <item>
      <title>GS2-Script</title>
      <link>/microservices/script/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/script/</guid>
      <description>GS2-Script is a Lua-based script execution environment that runs custom logic on the server side in response to events from GS2 microservices.&#xA;Each GS2 microservice provides a mechanism called &amp;ldquo;script triggers&amp;rdquo; that runs a script before or after a specific API call.&#xA;By linking scripts written with GS2-Script to these triggers, you can execute on the server side game-specific validation logic, data processing, and external system integration that cannot be achieved with the standard features of each service.</description>
    </item>
    <item>
      <title>GS2-SeasonRating</title>
      <link>/microservices/season_rating/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/season_rating/</guid>
      <description>This feature classifies players by player skill and enables matchmaking with players of similar skill. GS2-Matchmaking has a matchmaking function based on rating values, but it does not support the recently increasing system of ranking players over the course of a season, which can last from a few weeks to a few months in real time.&#xA;This microservice can be used to realize a game cycle in which players repeatedly play against each other to achieve a high tier during a season, considering a defined period of time as a season.</description>
    </item>
    <item>
      <title>GS2-SerialKey</title>
      <link>/microservices/serial_key/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/serial_key/</guid>
      <description>This feature can be used when you want to distribute in-game items through out-of-game merchandising, real events, SNS campaigns, collaboration campaigns, and so on. The same mechanism can handle codes printed on paper packaging or QR codes, as well as strings distributed via email/SNS.&#xA;However, some platformers do not allow the implementation of this feature, so please check the platformer&amp;rsquo;s guidelines before adoption.&#xA;Types of Serial Codes There are two types of serial codes:</description>
    </item>
    <item>
      <title>GS2-Showcase</title>
      <link>/microservices/showcase/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/showcase/</guid>
      <description>This feature is used to sell products in the game.&#xA;The difference from GS2-Exchange is the existence of a showcase. DisplayItems can be placed on a showcase, and you can configure the cost required to purchase a DisplayItem and the reward obtained when purchasing it.&#xA;There are two types of showcases: the &amp;ldquo;Standard Showcase,&amp;rdquo; on which fixed DisplayItems are placed, and the &amp;ldquo;Random Showcase,&amp;rdquo; on which the displayed contents are randomly drawn at regular intervals.</description>
    </item>
    <item>
      <title>GS2-SkillTree</title>
      <link>/microservices/skill_tree/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/skill_tree/</guid>
      <description>This microservice realizes the skill tree functionality commonly used as a growth element for characters and other objects. A skill tree is a feature with a tree structure such as the one shown below, in which releasing nodes improves a character&amp;rsquo;s parameters. Releasing a node requires a cost, and GS2-SkillTree allows you to set the consume actions provided by each microservice.&#xA;flowchart TD Base --&amp;gt; Node1[STR&amp;#43;5] Node1 --&amp;gt; Node2[DEF&amp;#43;5] Node2 --&amp;gt; Node3[SPD&amp;#43;5] Node3 --&amp;gt; Node4[STR&amp;#43;5] Node4 --&amp;gt; Node5[DEF&amp;#43;5] Node5 --&amp;gt; Node6[STR&amp;#43;5] Node6 --&amp;gt; Node7[DEF&amp;#43;5] Node3 --&amp;gt; Node10[SPD&amp;#43;5] Node10 --&amp;gt; Node11[DEF&amp;#43;5] Node11 --&amp;gt; Node12[SPD&amp;#43;5] Node12 --&amp;gt; Node13[DEF&amp;#43;5] Node11 --&amp;gt; Node30[SPD&amp;#43;5] Node30 --&amp;gt; Node31[STR&amp;#43;5] Node31 --&amp;gt; Node32[SPD&amp;#43;5] Node7 --&amp;gt; Node20[STR&amp;#43;5] Node13 --&amp;gt; Node20 Node20 --&amp;gt; Node21[STR&amp;#43;5] Node21 --&amp;gt; Node22[STR&amp;#43;5] Node Definition (NodeModel) Nodes that make up the skill tree are defined as the master data NodeModel.</description>
    </item>
    <item>
      <title>GS2-Stamina</title>
      <link>/microservices/stamina/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/stamina/</guid>
      <description>Stamina is a feature that realizes in-game limits on the number of times something can be done. GS2-Limit expresses limits like &amp;ldquo;3 times a day,&amp;rdquo; but GS2-Stamina expresses limits with a combination of time progression and consume actions, such as &amp;ldquo;use stamina that recovers 1 point every 8 hours to enforce a limit of 3 times per day.&amp;rdquo;&#xA;In the case of stamina, by varying the points consumed, you can realize specifications such as &amp;ldquo;action A is 3 times per day, action B is 5 times per day.</description>
    </item>
    <item>
      <title>GS2-StateMachine</title>
      <link>/microservices/state_machine/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/state_machine/</guid>
      <description>GS2-Quest provided a mechanism to manage the start and end of quests and to receive rewards on completion according to the quest started. However, GS2-Quest had a problem handling game specifications where in-game randomness is strong and rewards are difficult to determine in advance.&#xA;GS2-StateMachine was developed to manage in-game state at a finer granularity.&#xA;State Machine The state machine is what is used to manage in-game state.&#xA;flowchart TD Start ----&amp;gt; MainStateMachine_Initialize MainStateMachine_Pass ----&amp;gt; Exit subgraph MainStateMachine MainStateMachine_Initialize[[Initialize]] --&amp;gt;|Pass| MainStateMachine_ChoiceSkill MainStateMachine_ChoiceSkill[/ChoiceSkill/] MainStateMachine_InGame([InGame]) --&amp;gt;|Pass| MainStateMachine_NextTurn MainStateMachine_InGame([InGame]) --&amp;gt;|Fail| MainStateMachine_Pass MainStateMachine_NextTurn[[NextTurn]] --&amp;gt;|Next| MainStateMachine_ChoiceSkill MainStateMachine_NextTurn[[NextTurn]] --&amp;gt;|Exit| MainStateMachine_Pass MainStateMachine_Pass[\Pass/] subgraph ChoiceSkill ChoiceSkill_Initialize[[Initialize]] --&amp;gt;|Pass| ChoiceSkill_LotterySkills ChoiceSkill_LotterySkills[[LotterySkills]] --&amp;gt;|Pass| ChoiceSkill_WaitChoiceSkill ChoiceSkill_WaitChoiceSkill([WaitChoiceSkill]) --&amp;gt;|ChoiceSkill| ChoiceSkill_ChoiceSkill ChoiceSkill_WaitChoiceSkill([WaitChoiceSkill]) --&amp;gt;|ReLotterySkill| ChoiceSkill_ReLotterySkill ChoiceSkill_ReLotterySkill[[ReLotterySkill]] --&amp;gt;|Pass| ChoiceSkill_LotterySkills ChoiceSkill_ReLotterySkill[[ReLotterySkill]] --&amp;gt;|AlreadyReLottery| ChoiceSkill_WaitChoiceSkill ChoiceSkill_ChoiceSkill[[ChoiceSkill]] --&amp;gt;|Pass| ChoiceSkill_Pass ChoiceSkill_ChoiceSkill[[ChoiceSkill]] --&amp;gt;|InvalidSkillIndex| ChoiceSkill_WaitChoiceSkill ChoiceSkill_Pass[\Pass/] end end MainStateMachine_ChoiceSkill --&amp;gt; ChoiceSkill_Initialize ChoiceSkill_Pass --&amp;gt;|Pass| MainStateMachine_InGame Player -----&amp;gt;|Interaction| MainStateMachine_InGame Player -----&amp;gt;|Interaction| ChoiceSkill_WaitChoiceSkill If you are a programmer, you have probably received a flowchart like the one above from your planner.</description>
    </item>
    <item>
      <title>GS2-Version</title>
      <link>/microservices/version/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/microservices/version/</guid>
      <description>Provides the ability to determine the version of the application, the version of any additional assets, and the version of the terms of service the player has agreed to.&#xA;If the version check passes, a new temporary GS2 client ID/secret can be issued.&#xA;By using this feature, the GS2 client ID/secret embedded in the application only has the authority to call the APIs that perform login and version check, and only after passing the version check can it receive a client ID/secret with the privileges sufficient to actually play the game.</description>
    </item>
    <item>
      <title>GS2 States Language Format</title>
      <link>/api_reference/state_machine/format/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/api_reference/state_machine/format/</guid>
      <description>Introduction GS2 States Language (GSL) is a state machine definition language with a unique structure. A state machine is generally composed of Tasks, which represent multiple states, and Transitions, which represent transitions between tasks. When a message is sent from the outside, the &amp;ldquo;running Task&amp;rdquo; transitions based on the rules defined by the Transition to manage the state.&#xA;In addition to &amp;ldquo;running Tasks,&amp;rdquo; a state machine also has &amp;ldquo;state variables. There are several different types of Tasks, but in general, the process can be described by executing a GS2-Script.</description>
    </item>
    <item>
      <title>Register a GS2 account</title>
      <link>/overview/workflow/setup_gs2/create_account/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/overview/workflow/setup_gs2/create_account/</guid>
      <description>To start using Game Server Services, you must first register an account.&#xA;Account registration can be done from the bottom of the page at https://gs2.io.&#xA;During this phase, you will need to discuss the operational policy for the accounts that developers will use.&#xA;Each developer creates a dedicated account for development Developing with a shared account Each developer creates a dedicated account for development GS2 recommends this method.&#xA;By having each developer create a dedicated account and develop in a dedicated environment, development can proceed smoothly without being affected by other developers&amp;rsquo; changes to GS2 settings.</description>
    </item>
    <item>
      <title>setup using the management console</title>
      <link>/overview/workflow/setup_gs2_resources/manual_setup/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/overview/workflow/setup_gs2_resources/manual_setup/</guid>
      <description>The first thing a developer should do in the Management Console is to create a namespace and register master data. These can be created in the Management Console.&#xA;Select Region Below the side menu, there is a region menu. From here you can select the region in which you want to operate microservices.&#xA;Create a namespace Log in to the Management Console and select Microservices.&#xA;When the list of namespaces appears, create a new namespace.</description>
    </item>
    <item>
      <title>Create a project in GS2</title>
      <link>/overview/workflow/setup_gs2/create_project/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/overview/workflow/setup_gs2/create_project/</guid>
      <description>Once you have created an account, create a project.&#xA;A project can have a fee plan and a billing address. This means that you can set up different billing addresses for different projects, even within a single account.&#xA;This should be a useful structure for developers who have publishers who pay GS2 usage fees.&#xA;Once you have finished creating your project, you are ready to start using GS2.</description>
    </item>
    <item>
      <title>Implementation Patterns for Error Handling</title>
      <link>/articles/tech/error/pattern/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/articles/tech/error/pattern/</guid>
      <description>In network feature implementation using GS2, error handling directly impacts game stability and user experience (UX). Here are some practical implementation patterns that go beyond simple exception catching.&#xA;1. Error Classification and Handling Policy GS2 exceptions can be broadly classified into three categories based on their nature.&#xA;Category Applicable Exceptions (Example) Handling Policy Transient Errors InternalServerError, ServiceUnavailable, RequestTimeout Automatic Retry. If it fails after several attempts, display an error dialog. Logic/Configuration Errors BadRequest, NotFound Errors to be resolved during development.</description>
    </item>
    <item>
      <title>Setup using GS2-Deploy</title>
      <link>/overview/workflow/setup_gs2_resources/automation_setup/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/overview/workflow/setup_gs2_resources/automation_setup/</guid>
      <description>Setup using the management console is attractive because it is easy to perform.&#xA;However, you must despair when you receive an order to &amp;ldquo;create another of the same environment&amp;rdquo;. Game development typically requires multiple server environments: a development environment, a test environment, and a production environment.&#xA;It is impossible to configure GS2 in each of them by repeating the same operation in the management console without making mistakes.&#xA;GS2-Deploy GS2 provides GS2-Deploy, a microservice for creating environments.</description>
    </item>
    <item>
      <title>Setup using GS2-CDK</title>
      <link>/overview/workflow/setup_gs2_resources/cdk_setup/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/overview/workflow/setup_gs2_resources/cdk_setup/</guid>
      <description>GS2-Deploy did a great job of setting up the environment. However, there was still a challenge in writing templates. That is, you cannot get any input help to write a template file.&#xA;I have already explained that I used AWS&amp;rsquo; Cloud Formation as a reference to design GS2-Deploy, but In 2019, AWS announced the AWS CDK (Cloud Development Kit).&#xA;This was the result of an effort to enable template writing in various programming languages, as a solution to the problem of not getting input support for writing template files in traditional JSON or YAML.</description>
    </item>
    <item>
      <title>CI/CD for Master Data</title>
      <link>/articles/master_data/cicd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/articles/master_data/cicd/</guid>
      <description>Automating master data updates can reduce human error and speed up the development cycle.&#xA;Automation Flow The general automation flow is as follows:&#xA;Data Creation: Create master data using Excel, Google Sheets, CSV, etc. Conversion: Convert from spreadsheets to GS2 master data format (JSON). Commit: Commit the converted JSON or GS2-Deploy template to a Git repository. Deployment: CI tools (GitHub Actions, CircleCI, etc.) detect changes and reflect them in GS2. Automating Deployment Using GS2-Deploy If you embed master data in a GS2-Deploy template, you can reflect changes by updating the GS2-Deploy stack from your CI.</description>
    </item>
    <item>
      <title>GS2 States Language Definition Extension</title>
      <link>/api_reference/state_machine/deploy/extention/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/api_reference/state_machine/deploy/extention/</guid>
      <description>GSL is a state machine definition language with excellent readability and descriptiveness, but it is not superior in terms of IDE input support and learning cost. CDK can be used to define GSL using various programming languages.&#xA;CDK details&#xA;Start defining a state machine Use the following syntax to start a state machine definition&#xA;Language: Java PHP Python TypeScript C# class TestStateMachine extends io.gs2.cdk.stateMachine.integration.StateMachineDefinition { public TestStateMachine() { // write state definition here } } class TestStateMachine extends \Gs2Cdk\StateMachine\Integration\StateMachineDefinition { public function __construct() { parent::__construct(); // write state definition here } } class TestStateMachine(gs2_cdk.</description>
    </item>
  </channel>
</rss>
