Building Mini Game Platform

Aze / Independent developer

Games, tools
& things I find
interesting.

我是 Aze,一个在实践中学习的个人开发者。做游戏、工具和应用,把想法变成能用的东西。

01 / Featured work

From an idea to a place to play.

Android / Multiplayer / In development

Mini Game Platform

一处集合五子棋、中国象棋与在线房间的原生 Android 小游戏平台。

从一局棋开始,把客户端、游戏规则和联机系统串在一起。本地可以与 AI 对弈,也能通过房间和邀请进入由服务端裁定的在线对局。

Play locally, connect online
五子棋与中国象棋 · 本地人机 · 在线房间与邀请
One client, an authoritative server
Compose 多模块客户端,Nakama / Lua 权威对局,PostgreSQL 持久化。
  • Kotlin
  • Jetpack Compose
  • Nakama
  • Lua
  • PostgreSQL
交流这个项目 完整源码暂未公开 · 暂无公开下载
gomoku.luaLua
function M.match_join(context, dispatcher, tick, state, presences)    for _, presence in ipairs(presences) do        state.players[presence.user_id] = presence    end     if player_count(state) == 2 and state.status == "reconnecting" then        state.status = "playing"        state.reconnect_deadline_tick = 0    elseif player_count(state) == 2 and state.status == "waiting" then        state.status = "playing"        state.turn_user_id = state.black_user_id        state.reconnect_deadline_tick = 0    elseif state.status == "waiting" then        state.status = "waiting"        state.turn_user_id = ""    end    broadcast_state(dispatcher, state)    return stateend

Source excerpt / 重连恢复

两名玩家重新就位后恢复对局,清除重连倒计时,并广播同一份服务端状态。

CLIENT → Kotlin / ComposeREALTIME → WebSocket / NakamaSERVER → Lua / PostgreSQL

02 / More experiments

Different ideas. Same curiosity.

context_budget.goGo
func selectMemoryRecords(memories []MemoryRecord, maxChars int) []MemoryRecord {	if maxChars <= 0 {		return nil	}	ranked := sortMemoryRecords(memories)	selected := make([]MemoryRecord, 0, len(ranked))	used := 0	for _, candidate := range ranked {		contentChars := contextRuneCount(strings.TrimSpace(candidate.item.Content))		if contentChars == 0 || used+contentChars > maxChars {			continue		}		selected = append(selected, candidate.item)		used += contentChars	}	return selected} 

Source excerpt / 记忆预算

先排序记忆,再按字符预算逐条筛选,跳过空内容和超额条目,让模型输入保持可控。

AI / Tools / Desktop

QQ Bot

让 AI 对话走进 QQ,也让机器人的配置和维护有一个桌面入口。Go 服务连接 OneBot,Wails 提供控制台,支持角色、记忆、模型任务与备份管理。

  • Go
  • Wails
  • SQLite
  • WebSocket
聊聊工具开发 完整源码暂未公开
experience_component.gdGDScript
func add_experience(amount: int) -> void:	if not initialized or amount <= 0:		return 	var player = get_parent()	if is_instance_valid(player) and player.get("is_dead") == true:		return 	current_experience += amount	while current_experience >= required_experience:		current_experience -= required_experience		level += 1		level_up_requested.emit(level) 	experience_changed.emit(current_experience, required_experience, level)

Source excerpt / 经验升级

一次经验拾取可连续触发升级;通过信号通知其他组件,让经验计算与界面解耦。

Games / Windows / Prototype

RG-GAME

一个基于 Godot 4 的独立 Windows 游戏 Demo。从主菜单进入战斗,再到暂停、设置与重新开始,探索如何把游戏流程做成一个完整、可运行的原型。

  • Godot 4
  • GDScript
  • Windows
交流游戏原型 完整源码暂未公开

03 / Things I build

Ideas, made tangible.

游戏、工具和网页,是我把想法落地的不同方式。我关心界面如何被使用,也愿意深入背后的规则、数据与通信,让一个想法从屏幕上的样子,变成真正可用的作品。

01

Apps & tools

让功能有一个好用的入口

从原生 Android 应用到桌面控制台,我把分散的功能组织成清晰的操作流程。在 QQ Bot 中,角色、记忆与模型配置都可以通过桌面界面管理。

Kotlin / Compose / Go / Wails

QQ Bot桌面管理 · 角色与记忆
02

Realtime systems

让每一步落子都有共同的答案

联机不只是把两个人连在一起。我在小游戏平台中处理房间、回合与重连,由服务端校验操作、同步棋局,让双方围绕同一份状态继续游戏。

Nakama / Lua / WebSocket / PostgreSQL

Mini Game Platform回合校验 · 断线重连
03

Games & interaction

让规则成为玩家能感受到的反馈

一局棋的胜负、一次战斗后的升级,都是规则与反馈的结合。我用 Kotlin 实现棋类玩法,也用 Godot 串起战斗、成长与场景流程,制作可玩的原型。

Godot / GDScript / Kotlin

RG-GAME战斗流程 · 经验升级
04

Web & visual craft

在清晰之外,多一点值得停留的细节

这个主页也是我的交互实验。从内容层次、响应式排版,到动效与可交互的三维魔方,我尝试让视觉有自己的性格,同时保持阅读与操作的清晰。

Next.js / TypeScript / Motion / Three.js

Personal Homepage三维交互 · 响应式排版

04 / In progress

On the
workbench.

最近,我的注意力主要放在两件事上:让一局在线游戏更连贯,让 AI 对话中的信息更有条理。沿着已有项目继续往深处做,也在具体问题里学习新的东西。

Focus / September 2026

Building

PRIMARY FOCUS

Mini Game Platform

把一局棋从开始到结束的体验继续做扎实:断线后怎样回到原来的棋局,上一局的操作怎样避免影响下一局。这些不总被看见的细节,是我在联机流程中重点打磨的部分。

What you can play
五子棋 / 中国象棋
本地挑战 AI,也能在线对弈
What I'm refining
回合校验 / 重连恢复
让对局状态在变化中保持一致
看看联机背后的实现

Exploring

AI tools, with context.

对话越长,越需要决定什么值得留下。我在 QQ Bot 中探索记忆筛选与上下文预算,让有限的模型输入承载更有用的信息;也通过桌面控制台,让角色与配置更便于管理。

MEMORY / CONTEXT / DESKTOP看看记忆如何被选择

05 / Behind the work

I'm Aze.

Aze.BUILD
& EXPLORE
Identity
个人开发者
Interests
游戏 / 工具 / 交互
Approach
动手构建,持续打磨

我喜欢做的,
是自己也想用的东西。

我是 Aze,一名在实际项目中不断学习的个人开发者。我对游戏、工具和交互感兴趣,也喜欢亲手走完一个想法从界面、逻辑到部署的过程。看着它从代码变成可以操作、可以体验的作品,是开发中很有吸引力的部分。

小游戏平台、QQ Bot 和 RG-GAME,是这份兴趣的不同落点。它们让我接触联机状态、对话记忆与游戏机制,也让我越来越在意同一件事:功能之外,使用它的人能否看懂、能否顺畅地完成一次操作。

How I approach the work

先做成,再打磨
先让一局游戏能玩、一次对话能完成,再从实际使用中找到下一步。
把意外也想进去
断线、过期操作、超出预算的信息,都值得有明确的处理方式。
让细节有用
排版帮助理解,反馈说明状态,动效引导注意。每一处打磨都有理由。
如果你也在做有意思的东西,欢迎聊聊

06 / Contact

Let's connect.

关于项目、游戏,或一个有趣的想法。