Skip to content

Releases: iohao/ioGame

21.34

17 Feb 01:49

Choose a tag to compare

21.34 Release Notes

This release focuses on improving the stability and readability of HTTP-related Netty handlers introduced after 21.32.

Highlights

  1. Refined HTTP handler flow in external-netty
  • Simplified HttpFallbackHandler.channelRead with early-return control flow for clearer behavior.
  • Simplified HttpRealIpHandler by removing unnecessary try/finally and manual ReferenceCountUtil.release(...) in pass-through scenarios.
  1. Safety improvement for message lifecycle handling
  • Reduced risk of incorrect reference-count handling when messages are forwarded down the Netty pipeline.
  1. Version alignment
  • Project/module versions have been updated to 21.34 across the repository.

Included commits (after 21.32)

  1. be699a6
    refactor(external): Simplify HTTP handler logic in HttpFallbackHandler and HttpRealIpHandler
  2. 4f43600
    🐳 21.34

21.32

31 Jan 03:59

Choose a tag to compare

What's Changed

external Module Refactoring:

  • refactor(external): Migrate HTTP handlers from SimpleChannelInboundHandler to ChannelInboundHandlerAdapter
  • refactor(external): Simplify HttpFallbackHandler logic
  • fix(external): #528 Add proper resource cleanup in HTTP handlers

21.31

22 Jan 09:11

Choose a tag to compare

What's Changed

  • 添加环境变量配置覆盖功能 by @kolnick in #529
  • fix(protobuf): handle same package proto type reference by @Rainfisher in #507

New Contributors

Full Changelog: 21.30...21.31

ioGame 21.30

11 Aug 01:13

Choose a tag to compare

https://github.com/iohao/ioGame/releases/tag/21.30

Version update summary

  1. fix(generate-code): #490 Fixed the escaping of special characters in the Listener exampleCode for the code generation module. 修复 C# 代码生成时的转义字符

ioGame 21.29

19 Jul 11:03

Choose a tag to compare

Version update summary

  1. #473 fix(core): Change the method name from DataSelfEncode getEncodeData to encodeData to avoid JSON serialization.
  2. fix(doc): #459 Supporting the referencing of classes within a JAR file in a multi-module Gradle environment.
  3. feat(generate-code): #452
  4. fix(generate-code): broadcast_action_example_action.txt、broadcast_action_example.txt
  5. feat(external): #469 Add HttpFallbackHandler to determine if it's a WebSocket upgrade request.
  6. perf(doc): Pre-create the Pb for the BroadcastDocument dataClass.

[other updates]

Upgrade reactor-netty 1.2.7、commons-io 2.19.0

ioGame 21.28

17 Jun 12:15

Choose a tag to compare

Version update summary

  1. feat(room): The room supports convenient operations.
  2. Deprecated RoomStatusEnum.
  3. feat(room): The room supports convenient broadcastRange.
  4. docs(all): Update documentation link (https://iohao.github.io/game)
  5. #451 Refactor the usage documentation to use the new access address: https://iohao.github.io/game/

[other updates]

<netty.version>4.1.122.Final</netty.version>

ioGame 21.27 GDScript SDK、GenerateCode

09 May 05:23

Choose a tag to compare

Documentation and Logs

Releases: 1 to 2 versions are released every month, and upgrades within a major version are always compatible, such as 21.1 is upgraded to any higher version 21.x


Version update summary

  1. feat(generate-code): #449 Supports GDScript GenerateCode
  2. #444 Provides GDScript SDK
  3. #448 Provides GDScript Example with ioGame
  4. perf(core): ActionCommandDocKit

feat(generate-code): #449 Supports GDScript GenerateCode

About examples: https://github.com/iohao/ioGameSdkGDScriptExampleGodot

public final class GenerateTest {
    // setting root path
    static String rootPath = "/Users/join/gitme/ioGame-sdk/";

    public static void main(String[] args) {
        // CHINA or US
        Locale.setDefault(Locale.CHINA);

        // Load the business framework of each gameLogicServer
        // cn: 加载游戏逻辑服的业务框架
        yourListLogic().forEach(BrokerClientStartup::createBarSkeleton);

        /*
         * Generate actions, broadcasts, and error codes.
         * cn: 生成 action、广播、错误码
         */
        
        // ----- About generating GDScript code -----
        generateCodeGDScriptGodot();

        // Added an enumeration error code class to generate error code related information
        IoGameDocumentHelper.addErrorCodeClass(YourGameCodeEnum.class);
        // Generate document
        IoGameDocumentHelper.generateDocument();
    }

    private static void generateCodeGDScriptGodot() {
        var documentGenerate = new GDScriptDocumentGenerate();
        // By default, it will be generated in the target/code directory
        // cn: 设置代码生成所存放的路径,如果不做任何设置,将会生成在 target/code 目录中
        String path = rootPath + "ioGameSdkGDScriptExampleGodot/gen/code";
        documentGenerate.setPath(path);

        IoGameDocumentHelper.addDocumentGenerate(documentGenerate);
    }
}

ioGame 21.26 Java Netty Game Server

30 Apr 06:46

Choose a tag to compare

Documentation and Logs

Releases: 1 to 2 versions are released every month, and upgrades within a major version are always compatible, such as 21.1 is upgraded to any higher version 21.x


Version update summary

  1. refactor(Code generation): Code generation supports importing multiple .proto files
  2. refactor(i18n): #376

Supports importing multiple .proto files

public interface SdkProtoFile {
    String fileName = "common.proto";
    String filePackage = "common";

    String fileName2 = "common2.proto";
    String filePackage2 = "common2";
}


...
@ProtoFileMerge(fileName = SdkProtoFile.fileName, filePackage = SdkProtoFile.filePackage)
public final class LoginVerifyMessage {
    /** jwt */
    String jwt;
}


...
@ProtoFileMerge(fileName = SdkProtoFile.fileName2, filePackage = SdkProtoFile.filePackage2)
public final class BulletMessage {
    /** id */
    int bulletId;
    /** bullet name */
    String name;
}

[other updates]

<netty.version>4.1.121.Final</netty.version>

ioGame 21.25 Java Netty Game Server

20 Mar 04:51

Choose a tag to compare

Documentation and Logs

Releases: 1 to 2 versions are released every month, and upgrades within a major version are always compatible, such as 21.1 is upgraded to any higher version 21.x


Version update summary

  1. fix(broker): DefaultWithElementSelector

  2. refactor(net): enhance ResponseCollectItemMessage

  3. refactor(core): FlowContext add the createResponseMessage method



[other updates]

<netty.version>4.1.119.Final</netty.version>

ioGame 21.24 Netty Java Game Server

12 Feb 02:58

Choose a tag to compare

Documentation and Logs

Releases: 1 to 2 versions are released every month, and upgrades within a major version are always compatible, such as 21.1 is upgraded to any higher version 21.x


Version update summary

  1. refactor(client): Client support boxing and unboxing
  2. refactor(core): FlowContextKit add ofFlowContext method
  3. refactor(room): room add getPlayerBySeat method
  4. fix(core): #425 When there is a method with the same name as the action, the actionMethodIndex is not obtained correctly.
  5. refactor(core): MethodParser add parseData method

[client] Client support boxing and unboxing.

// my client,support:int、long、boolean、String、List
public final class MyInputCommandRegion extends AbstractInputCommandRegion {
    @Override
    public void initInputCommand() {
        this.inputCommandCreate.cmd = 1;

	// Client support boxing and unboxing
        ofCommand(2).setTitle("enterRoom").setRequestData(() -> {
            // enterRoom
            long roomId = 2;
            return roomId;
        });
        
        // or 
        ofCommand(2).setTitle("enterRoom").setRequestData(() -> {
           // enterRoom
           return LongValue.of(2);
        });
    }
}

// my action
@ActionController(1)
public final class MyAction {
    /**
     * enterRoom
     *
     * @param roomId roomId
     */
    @ActionMethod(2)
    public void enterRoom(long roomId) {
    }
}

[other updates]

<netty.version>4.1.117.Final</netty.version>