T2GameCenter

This a personal project to develop a web app performing an online board game center.

instruction

not ready for now. try contact T2 for test case.

log

05/18/2023 立项。相较于前一个五子棋的不充分的准备,本次计划分蓝图一步步落实整个布局,先从框架开始而不是先从局部开始。今日计划:完成游戏大厅+登录的框架。

05/26/2023 本懒狗玩了一阵子王泪继续了。上次基本完成目标,登录基本完成。TODO 账号系统仍然需要完善注册时的验证码,简单防一下恶意破坏。 明日目标:大厅、房间关系完成,完成大厅的基本打印,完成房间的基本功能:进入、退出、准备(游戏的开始与结束的结算功能)。 重要:额外学习了一下cache,memorization.需考虑如何减少服务器资源消耗。这一点可能额外请教一下顶顶和钉钉哥比较好,目前可以一路做下去暂时。

05/27/2023 开整。先偏离计划一点,学习使用了bootstrap并替换现有组件。基本替换完成,登录、注册form均已更新。新增主页的四国军棋入口。 大厅完成了9成。接下来的主要工作流程: 1、基于socketio处理好游戏的框架。 2、完成四国军棋的逻辑,以完成最小可玩功能为初始目标。此阶段建议跟五子棋一样前端糊弄一下就行。 3、学习使用canvas完成棋盘+棋子界面

05/28/2023 开工。推进了一丢丢关于建立客户端和服务器websocket链接。接下来要解决的事:正确传递uid、sid作为标记,以及为断线重连留好该有的数据。进一步:update room时需要传递的数据及其在服务器的存储方法。

05/30/2023 完善了timer。为断线重连功能做好了充足的准备。日后需要给用户一个踢掉所有自己正在进行的游戏的socket连接的功能,以防出bug自己卡自己。room信息除了在棋局开始、结束、有玩家退出、重连(进入),这四个事件以外不会发生变化的,所以可以存缓存。players同理。明日首要考虑:怎么做到specific_data。

05/31/2023 从现在开始,emit里的to= room_id 是发送给该房间的观众的, str(room_id)+'_player' 是发送给该房间的玩家的。 前两天推不太动,今天总算推动了一点:以后一定要框架搭好。我因为不知道缓存层的实现,半路试图加上缓存层,整个项目乱成一锅粥,现在把缓存层弄清楚了,接下来开始一步步地把前面的混乱整治。 对于数据里有的数据,做好读取的方法就行,每次要拿数据的时候自动优先从缓存拿,没有再从数据库拿,往数据库更新数据的时候不用顾虑缓存,服务器监听事件会自动把不同步的缓存删除; 数据库里没有的数据,一定要手动设置一个超长的缓存过期时间以防万一。 目前主要集中在完成后端需要响应的事件,完成的有join, disconnect, sit down, stand up, 下一步是get ready, give up, move action.

06/02/2023 已完成get ready, give up, game over,超时判负。下一步是完成move action,然后就可以步入测试阶段了

06/03/2023 完成了move action。后端响应均已完成, 来到前端代码辣。 经过半天的调试,基本进入了可以前后端结合debug的状态。慢慢把现在的代码debug调通。

06/04/2023 按钮正常现实了,但是后端报错不明显,需要从sit down开始一步步调通 直到游戏开始前的都已调通,下一步是计时器的实施 + 服务器计时器任务debug