<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[复刻 &lt;Palamedes&gt;]]></title><description><![CDATA[<p><div class="video-embed"><iframe src="//www.youtube.com/embed/QwrIExVUwdI" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div></p>
<p>大家好, 我是 COCO.<br />
现任 Colyseus 社区管理.<br />
我非常喜欢 <a href="https://defold.com" rel="nofollow">Defold</a> 和 <a href="https://colyseus.io" rel="nofollow">Colyseus</a>, 很想用这两种技术制作游戏.<br />
以前做的都是 DEMO, 这次终于下决心从头到尾做一款真正的游戏了.<br />
我小时候很喜欢玩 Palamedes 这款 Puzzle 类游戏. 可以和 AI 对战, 也可以双人对战.<br />
使用 Defold 和 Colyseus, 我决心把它做成互联网对战游戏.</p>
<p>首先, 游戏的主要玩法是骰子射击. 从网上找到了一些免费的骰子图片:<br />
<img src="/assets/uploads/files/1664173718754-2b40a7b4-4c2c-4e56-ab5a-20cb26f774e4-image.png" alt="0_1664173714749_2b40a7b4-4c2c-4e56-ab5a-20cb26f774e4-image.png" class="img-responsive img-markdown" /><br />
稍加修改做成游戏需要的样子:<br />
<img src="/assets/uploads/files/1664173735421-4e479c62-c7d0-485a-a3ac-75ee4ea6b991-image.png" alt="0_1664173731169_4e479c62-c7d0-485a-a3ac-75ee4ea6b991-image.png" class="img-responsive img-markdown" /><br />
六帧的爆炸动画, 逐帧动画 once forward:<br />
<img src="/assets/uploads/files/1664173751419-e0bb6ddb-45c1-4ab7-bfcf-a6a8821e7d98-image-resized.png" alt="0_1664173747416_e0bb6ddb-45c1-4ab7-bfcf-a6a8821e7d98-image.png" class="img-responsive img-markdown" /><br />
话说 Defold 如果能支持 TexturePacker 的格式就好了.</p>
<ul>
<li>Github 与 lfs 存储<br />
使用 Git 与 Github 来进行版本控制与数据备份大家都知道, 这里就不多说了.<br />
有一点值得注意的是对于二进制大文件, 比如 psd 文件, 我的习惯是把他们放在一个特殊目录里, 然后使用 Git LFS 进行追踪, 这样不但减少了存储空间的消耗, 还能在线查看 psd 等文件的内容, 甚至对比更新前后的不同, 一举两得, 非常方便.</li>
</ul>
<p><img src="/assets/uploads/files/1664173767404-eb30f4a9-4963-4cbc-81f6-0469dfa5de86-image-resized.png" alt="0_1664173763535_eb30f4a9-4963-4cbc-81f6-0469dfa5de86-image.png" class="img-responsive img-markdown" /> <img src="upload://3jyVFHEQZxsxO6J3oY3kYoljXk9.png" alt="image|690x402" class="img-responsive img-markdown" /></p>
<ul>
<li>
<p>服务器权威与客户端无效操作<br />
该游戏设计成为一对一在线对战游戏, 那么就要考虑服务器的权威性. 即游戏重要的状态数据和操作都要由服务器造成并进行数据下发. 比如玩家位置，玩家骰子变换点数，等等. 但是有一些操作，比如下图中用二点骰子射击三点目标:<br />
<img src="/assets/uploads/files/1664173786045-7c44b823-c0ae-4d80-af03-d8dbd13f7406-image.png" alt="0_1664173781352_7c44b823-c0ae-4d80-af03-d8dbd13f7406-image.png" class="img-responsive img-markdown" /></p>
<p>这类操作在游戏中是无效的，那么就不应该把这种无效射击操作发送到服务器，服务器只要进行有效的射击的验证工作就好了. 这样做不但能减少服务器的计算压力，同时也能节省下宝贵的带宽.</p>
</li>
</ul>
<ul>
<li>
<p>花样<br />
游戏中保留最近消掉的6个骰子点数, 这些点数可以构成各种花样, 每种花样根据构成的难易程度给与玩家奖励. 比如点数序列 &quot;1,2,3,4,5,6&quot; 可与让游戏帮你消掉四行骰子.<br />
<img src="/assets/uploads/files/1664173855499-patterns.png" alt="0_1664173849187_patterns.png" class="img-responsive img-markdown" /></p>
</li>
<li>
<p>操作<br />
游戏的输入操作非常简单: 上下左右加一个切换骰子的功能. 为了同时满足键盘输入与手机上的手势输入, 游戏中使用了 <a href="https://defold.com/assets/defoldinput" rel="nofollow">Defold Input</a> 这一扩展程序. 注意程序中要避免 on_input 函数和 on_message 函数的冲突.</p>
</li>
<li>
<p>UI<br />
Defold 引擎核心很小, 所以就连GUI中按钮点击监测这样的功能都没有提供. 好在官方和社区为 Defold 提供了许许多多的原生扩展和插件, 以满足各种需求. 逛一逛 Defold 免费的 <a href="https://defold.com/assets" rel="nofollow">资源大厅</a> 吧, 为自己游戏添加想要的功能, 就像逛超市一样.<br />
本游戏里使用了基本的两个插件: <a href="https://defold.com/assets/gooey" rel="nofollow">gooey</a> 和 <a href="https://defold.com/assets/monarch" rel="nofollow">monarch</a>.<br />
gooey 负责监听GUI中按钮的点击操作, monarch 负责场景的切换.<br />
建议经常逛逛Defold社区和资源大厅以及Github, 你会发现大家给Defold创造了许许多多让人眼前一亮的扩展功能.</p>
</li>
</ul>
<p>在线试玩:<br />
<a href="https://cocosgames.itch.io/palamedes" rel="nofollow">https://cocosgames.itch.io/palamedes</a></p>
<p>开源地址:<br />
<a href="https://github.com/CocosGames/Palamedes" rel="nofollow">https://github.com/CocosGames/Palamedes</a></p>
]]></description><link>http://discuss.colyseus.io/topic/655/复刻-palamedes</link><generator>RSS for Node</generator><lastBuildDate>Thu, 12 Mar 2026 16:26:40 GMT</lastBuildDate><atom:link href="http://discuss.colyseus.io/topic/655.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Jun 2022 10:38:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 复刻 &lt;Palamedes&gt; on Mon, 26 Sep 2022 06:37:40 GMT]]></title><description><![CDATA[<p><div class="video-embed"><iframe src="//www.youtube.com/embed/QwrIExVUwdI" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div></p>
<p>大家好, 我是 COCO.<br />
现任 Colyseus 社区管理.<br />
我非常喜欢 <a href="https://defold.com" rel="nofollow">Defold</a> 和 <a href="https://colyseus.io" rel="nofollow">Colyseus</a>, 很想用这两种技术制作游戏.<br />
以前做的都是 DEMO, 这次终于下决心从头到尾做一款真正的游戏了.<br />
我小时候很喜欢玩 Palamedes 这款 Puzzle 类游戏. 可以和 AI 对战, 也可以双人对战.<br />
使用 Defold 和 Colyseus, 我决心把它做成互联网对战游戏.</p>
<p>首先, 游戏的主要玩法是骰子射击. 从网上找到了一些免费的骰子图片:<br />
<img src="/assets/uploads/files/1664173718754-2b40a7b4-4c2c-4e56-ab5a-20cb26f774e4-image.png" alt="0_1664173714749_2b40a7b4-4c2c-4e56-ab5a-20cb26f774e4-image.png" class="img-responsive img-markdown" /><br />
稍加修改做成游戏需要的样子:<br />
<img src="/assets/uploads/files/1664173735421-4e479c62-c7d0-485a-a3ac-75ee4ea6b991-image.png" alt="0_1664173731169_4e479c62-c7d0-485a-a3ac-75ee4ea6b991-image.png" class="img-responsive img-markdown" /><br />
六帧的爆炸动画, 逐帧动画 once forward:<br />
<img src="/assets/uploads/files/1664173751419-e0bb6ddb-45c1-4ab7-bfcf-a6a8821e7d98-image-resized.png" alt="0_1664173747416_e0bb6ddb-45c1-4ab7-bfcf-a6a8821e7d98-image.png" class="img-responsive img-markdown" /><br />
话说 Defold 如果能支持 TexturePacker 的格式就好了.</p>
<ul>
<li>Github 与 lfs 存储<br />
使用 Git 与 Github 来进行版本控制与数据备份大家都知道, 这里就不多说了.<br />
有一点值得注意的是对于二进制大文件, 比如 psd 文件, 我的习惯是把他们放在一个特殊目录里, 然后使用 Git LFS 进行追踪, 这样不但减少了存储空间的消耗, 还能在线查看 psd 等文件的内容, 甚至对比更新前后的不同, 一举两得, 非常方便.</li>
</ul>
<p><img src="/assets/uploads/files/1664173767404-eb30f4a9-4963-4cbc-81f6-0469dfa5de86-image-resized.png" alt="0_1664173763535_eb30f4a9-4963-4cbc-81f6-0469dfa5de86-image.png" class="img-responsive img-markdown" /> <img src="upload://3jyVFHEQZxsxO6J3oY3kYoljXk9.png" alt="image|690x402" class="img-responsive img-markdown" /></p>
<ul>
<li>
<p>服务器权威与客户端无效操作<br />
该游戏设计成为一对一在线对战游戏, 那么就要考虑服务器的权威性. 即游戏重要的状态数据和操作都要由服务器造成并进行数据下发. 比如玩家位置，玩家骰子变换点数，等等. 但是有一些操作，比如下图中用二点骰子射击三点目标:<br />
<img src="/assets/uploads/files/1664173786045-7c44b823-c0ae-4d80-af03-d8dbd13f7406-image.png" alt="0_1664173781352_7c44b823-c0ae-4d80-af03-d8dbd13f7406-image.png" class="img-responsive img-markdown" /></p>
<p>这类操作在游戏中是无效的，那么就不应该把这种无效射击操作发送到服务器，服务器只要进行有效的射击的验证工作就好了. 这样做不但能减少服务器的计算压力，同时也能节省下宝贵的带宽.</p>
</li>
</ul>
<ul>
<li>
<p>花样<br />
游戏中保留最近消掉的6个骰子点数, 这些点数可以构成各种花样, 每种花样根据构成的难易程度给与玩家奖励. 比如点数序列 &quot;1,2,3,4,5,6&quot; 可与让游戏帮你消掉四行骰子.<br />
<img src="/assets/uploads/files/1664173855499-patterns.png" alt="0_1664173849187_patterns.png" class="img-responsive img-markdown" /></p>
</li>
<li>
<p>操作<br />
游戏的输入操作非常简单: 上下左右加一个切换骰子的功能. 为了同时满足键盘输入与手机上的手势输入, 游戏中使用了 <a href="https://defold.com/assets/defoldinput" rel="nofollow">Defold Input</a> 这一扩展程序. 注意程序中要避免 on_input 函数和 on_message 函数的冲突.</p>
</li>
<li>
<p>UI<br />
Defold 引擎核心很小, 所以就连GUI中按钮点击监测这样的功能都没有提供. 好在官方和社区为 Defold 提供了许许多多的原生扩展和插件, 以满足各种需求. 逛一逛 Defold 免费的 <a href="https://defold.com/assets" rel="nofollow">资源大厅</a> 吧, 为自己游戏添加想要的功能, 就像逛超市一样.<br />
本游戏里使用了基本的两个插件: <a href="https://defold.com/assets/gooey" rel="nofollow">gooey</a> 和 <a href="https://defold.com/assets/monarch" rel="nofollow">monarch</a>.<br />
gooey 负责监听GUI中按钮的点击操作, monarch 负责场景的切换.<br />
建议经常逛逛Defold社区和资源大厅以及Github, 你会发现大家给Defold创造了许许多多让人眼前一亮的扩展功能.</p>
</li>
</ul>
<p>在线试玩:<br />
<a href="https://cocosgames.itch.io/palamedes" rel="nofollow">https://cocosgames.itch.io/palamedes</a></p>
<p>开源地址:<br />
<a href="https://github.com/CocosGames/Palamedes" rel="nofollow">https://github.com/CocosGames/Palamedes</a></p>
]]></description><link>http://discuss.colyseus.io/post/1929</link><guid isPermaLink="true">http://discuss.colyseus.io/post/1929</guid><dc:creator><![CDATA[COCO]]></dc:creator><pubDate>Mon, 26 Sep 2022 06:37:40 GMT</pubDate></item><item><title><![CDATA[Reply to 复刻 &lt;Palamedes&gt; on Mon, 03 Oct 2022 11:29:44 GMT]]></title><description><![CDATA[<p><img src="/assets/uploads/files/1664796493203-4b6252d6-64bc-4dbb-953e-acf54861ba2d-image-resized.png" alt="0_1664796491231_4b6252d6-64bc-4dbb-953e-acf54861ba2d-image.png" class="img-responsive img-markdown" /></p>
<p>获得 Defold gamejam 2022 第5名</p>
]]></description><link>http://discuss.colyseus.io/post/2157</link><guid isPermaLink="true">http://discuss.colyseus.io/post/2157</guid><dc:creator><![CDATA[COCO]]></dc:creator><pubDate>Mon, 03 Oct 2022 11:29:44 GMT</pubDate></item><item><title><![CDATA[Reply to 复刻 &lt;Palamedes&gt; on Invalid Date]]></title><description><![CDATA[<p>top 5 huh :)</p>
]]></description><link>http://discuss.colyseus.io/post/2158</link><guid isPermaLink="true">http://discuss.colyseus.io/post/2158</guid><dc:creator><![CDATA[COCO]]></dc:creator><pubDate>Invalid Date</pubDate></item></channel></rss>