你想玩这样的 3D 数独吗? [建议有奖]

查看 16|回复 0
作者:andyzhshg   
大家好,我又来了,20 多天前我在 v 站发了数独游戏 Hi Sudoku 的推广帖子 /t/992373,得到了大家的支持,这里再次感谢 V 友们的支持。
如果你是数独爱好者,并且还没玩过 Hi Sudoku,真心希望你可以试一下,保证你能有全新的体验,你可以通过下面的链接来下载:



广告结束,言归正传,这个帖子的主要目的是来征求大家的建议,我正在开发一个3D 数独游戏,大概的玩法就是一个立方体,立方体的每个面都划分为 4x4 的网格。这样,立方体的每个面,以及按照任何方向环绕立方体一周的行,就都正好包含 16 个格子。这就组成了一个变体的 16 阶数独。示意图如下:

现在已经有了一个可以勉强试玩的Demo,想尝试一下的可以去下面的链接试玩。
https://hisudoku.com/3d/
因为还没有做任何优化,加载会慢一些,其耐心等一会。这是非常早期的一个版本,没有什么可玩性,正式版甚至开发平台都做了切换,所以这个版本主要用来示意游戏的玩法。正式版会与 Hi Sudoku 更加类似,包含 Hi Sudoku 中的提示和快捷操作之类的东西。
大家在玩法和操作上有什么建议,可以在这里留言,我会选取有价值的建议给予奖励——因为 3D 数独还没有上线,现在暂时会奖励 Hi Sudoku 的兑换码,后续 3D 数独上线可以凭获奖记录再获得 3D 版本的兑换码。为了方便收取奖励。请大家留言时附加邮箱(可以 base64 )和 使用平台( App Store 或 Google Play )。
可看可不看的后话
如之前帖子所言,我是一个深度的数独爱好者,玩过不计其数的数独游戏。在玩的过程中,积累的不少的经验,梦想着做一款更好的数独 App ,所以就有了 Hi Sudoku;与此同时,也产生了一些异想天开的想法,比如现在这个 3D 数独
事实上,这个 3D 数独的点子,甚至是这个 DEMO ,都是在 Hi Sudoku 之前产生的。
事情的先后顺序是这样的:
[ol]

  • 产生了 3D 数独的点子

  • 做个 DEMO 吧,挑来挑去,选择了 Cocos Studio ,用 Cocos 做了现在大家看到的这个 DEMO 。

  • 做完 DEMO 发现,以我的水平,用 Cocos 做界面太难了,勉强做出来也丑的要命,而且集成内购和广告都比较麻烦。

  • 目光转向了 flutter ,虽然一直做后端开发,我是稍微有一点 flutter 经验的,于是尝试用 flutter 和 cocos 混合开发,最初希望的方式是在原生的 cocos 项目中集成 flutter 做界面,但是苦于没有经验,一直不能成功;后来变了思路,用 flutter 做主项目,将 cocos 打包成 html 作为 webview 集成进去,这条路倒是走通了,但是 flutter 和 cocos 的 webview 通信有各种的延迟和不可靠,写了一堆跟游戏本身关系不大的布丁代码。

  • 勉强调通了游戏,就还有最后一个大的问题了,那就是游戏关卡数据。我才发现,这才是最难的部分,用 Dancing Link 加上随机挖孔法随便生成一些关卡倒是不难,但是这样生成出来的关卡,难度没法控制,用这样的关卡做出的游戏,注定是没人会持续玩的

  • 于是我开始做一个数独关卡生成器,生成符合逻辑,难度合理的关卡。因为现在主程序是 flutter 技术栈了,所以生成器自然而然的选择了 Dart 。我几乎手搓了大部分常见的数独逻辑解法,加上 Dart 本身就很臃肿,这个关卡生成器(也是逻辑解题器)洋洋洒洒整了近万行的 Dart 代码。

  • 在开发的过程中,总得试试题目的效果,因为 3D 数独毕竟不如传统数独直观,所以关卡生成器开发过程中我用 flutter 做了一个简单的 2D 传统数独来验证题库。

  • 当题库做的差不多的时候,我发现,既然我都有一个基础款的 2D 传统数独的雏形了,为什么不完善一下,把它做成一个完整的游戏呢?于是我把我之前总结的各种经验和想改进的点都做到了这个游戏里,然后,虽然是一个副产品,Hi Sudoku 却先一步被完成了。事情总是不按计划发展😂。

  • 最近迭代了一小波 Hi Sudoku ,总体来说无论是论坛,还是商店的评价,反馈还是很正面的,虽然下载量堪忧,但是也算是一个不错的开始吧。

  • Hi Sudoku 的大修改基本完成了,终于可以回到 3D 数独了。但是,前面说过的 flutter+cocos 的方案毕竟是不完美的,比如我在 Hi Sudoku 中做的智能提示等功能,要想在这个混合方案里实现,就得用 ts 在 cocos 中再实现一遍,既费力,又难以保证效果。

  • 于是我开始寻找只用 flutter 做 3D 数独的方案。但 flutter 是一个 2D 的 UI 引擎,pub.dev 上有一些移植了 OpenGL 的包,但是效果和兼容性都差强人意。直到最后我发现了这个包:flutter_cube,有了些豁然开朗的感觉。说到底,虽说是 3D ,但我只是画一个立方体而已,何不参考这个包的形式,用 2D 的绘图 API 来模拟 3D 效果呢?说干就干,于是只用了几百行 Dart 代码,就绘制出来了这个立方体,兜兜转转,原来解法比自己想象的简单得多。
    [/ol]
    这就是截止目前发生的所有事情了,后边我会在迭代 Hi Sudoku 的同时,用纯 flutter 实现 3D 数独,并尽快发布出来,因为可以复用 Hi Sudoku 的绝大部分代码,所以理论上不会太久,大家敬请期待。
    另外,得益于 flutter 的跨平台特点,后边 Hi Sudoku 和这个还没有名字的 3D 数独,也有可能出现在桌面( Steam 或者 Mac App Store 之类的)或者 web 等更多的平台。
    这就是整个故事了,如果你对这个 3D 数独或者 Hi Sudoku 有好的想法和建议,或者你有新鲜的关于数独的点子想让我来实现的,都可以在评论区提出来,我都会按照前面所说择优奖励兑换码。
    或者大家有什么想问我的问题,也可以留言提问哈。
    谢谢大家。
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部