|
查看: 4372|回复: 51
|
TETRIS游戏制作讨论区
[复制链接]
|
|
|
之前因为想请教各位制作游戏从何开始。。。
但是问题不太具体。。
就想鸟TETRIS这组游戏会太难DEVELOP吗???
若不是很难偶们可以在这里讨论如何弄一个完整的TETRIS GAME, 将来让新的网有做参考也好。。。
不知道这里各位大大觉得怎样???
[ 本帖最后由 弥勒 于 2-8-2006 11:09 AM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 31-7-2006 11:44 AM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 31-7-2006 04:25 PM
|
显示全部楼层
其实开这个贴是希望
让偶们这些没有头绪的人知道怎么开始。。。
有米有那一个大大可以给下意见。。 |
|
|
|
|
|
|
|
|
|
|
发表于 31-7-2006 11:50 PM
|
显示全部楼层
弥勒 魔方是明智的开始,
一般初试咱们会建议做简单的魔方类,还有贪吃蛇也是很好的开始。
原因很简单,就是因为游戏一般的基础、概念和技巧都在里面了。
弥勒有编程基础么? |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 1-8-2006 12:21 AM
|
显示全部楼层
原帖由 sson 于 31-7-2006 11:50 PM 发表
弥勒 魔方是明智的开始,
一般初试咱们会建议做简单的魔方类,还有贪吃蛇也是很好的开始。
原因很简单,就是因为游戏一般的基础、概念和技巧都在里面了。
弥勒有编程基础么?
有。。。
我有C++,C,C#。NET,JAVA 等的基础。。
现在也DEGREE LAST YEAR 了。。。
只是没有制作GAME的基础。。。
想问。。。
如果魔方的话。。。
第一步应该准备和决定什么??? |
|
|
|
|
|
|
|
|
|
|
发表于 1-8-2006 08:21 AM
|
显示全部楼层
|
这。。不同的人有不同的做法吧。。。。。我会先define那个2d array. |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 1-8-2006 10:22 AM
|
显示全部楼层
原帖由 tensaix2j 于 1-8-2006 08:21 AM 发表
这。。不同的人有不同的做法吧。。。。。我会先define那个2d array.
直接进入PROGRAMMING吗??无须设立SOMOK2D引擎吗?? |
|
|
|
|
|
|
|
|
|
|
发表于 2-8-2006 01:57 AM
|
显示全部楼层
原帖由 弥勒 于 1-8-2006 10:22 AM 发表
直接进入PROGRAMMING吗??无须设立SOMOK2D引擎吗??
建議把 game logic 和 graphics engine 分開
這樣你可以有不同的選擇, 開始的 graphics engine 隨便就好,
到最後才強化, 或者交給有經驗的人.
然後先處理一粒方格,
而每一次出現的不同形狀的一组將會 call 4 個方格
看看能不能在往下, 或者旋轉
用 timer 來處理一组 4 個方格向下掉的速度, 並撿差消除完整的一行以及 game over
例如 :
timer() {
j = 0;
for( i=0; i<4; i++ ) {
if( box.checkDown() ) j++;
}
if( j==4 ) {
processDown();
}
}
[ 本帖最后由 flashang 于 2-8-2006 02:22 AM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 2-8-2006 02:19 AM
|
显示全部楼层
原帖由 tensaix2j 于 1-8-2006 08:21 AM 发表
这。。不同的人有不同的做法吧。。。。。我会先define那个2d array.
2d array 記得多留四行在上面, 新出來的都從這裡開始 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 2-8-2006 09:17 AM
|
显示全部楼层
原帖由 flashang 于 2-8-2006 01:57 AM 发表
建議把 game logic 和 graphics engine 分開
這樣你可以有不同的選擇, 開始的 graphics engine 隨便就好,
到最後才強化, 或者交給有經驗的人.
然後先處理一粒方格,
而每一次出現的不同形狀的一组將會 ...
你直接进入PROGRAMMING,我一头雾水。。。
你说的TIMER是用来让那四个方格往下的是吗???
BOX。CHECKDOWN()的用处是??还有PROCESSDOWN)(
对不起哦。。。LOGIC有一点高不清楚。。。。 |
|
|
|
|
|
|
|
|
|
|
发表于 2-8-2006 10:38 AM
|
显示全部楼层
原帖由 弥勒 于 1-8-2006 12:21 AM 发表
有。。。
我有C++,C,C#。NET,JAVA 等的基础。。
现在也DEGREE LAST YEAR 了。。。
只是没有制作GAME的基础。。。
想问。。。
如果魔方的话。。。
第一步应该准备和决定什么???
如果是我,我会先想“引擎”的部分。。。。因为,这个部分是最困难的。。。
引擎做好之后,我会测试引擎,随便做一些砖块来test。。。
成功之后,再设计砖块的种类,形状,如何旋转。。。
最后,再作graphic的部分。。。
引擎的部分,我不想用2 dimension array。。。
我想用1 dimension的integer array。。。
砖块,直接用bit来计算。。。
计算砖块的停止,被阻挡,就用logical and 来test。。。
至于,砖块的速度,我可能不用timer。。。我想用无止境的loop来控制。。。
你们有什么高见。。。 |
|
|
|
|
|
|
|
|
|
|
发表于 2-8-2006 10:40 AM
|
显示全部楼层
原帖由 弥勒 于 1-8-2006 12:21 AM 发表
有。。。
我有C++,C,C#。NET,JAVA 等的基础。。
现在也DEGREE LAST YEAR 了。。。
只是没有制作GAME的基础。。。
想问。。。
如果魔方的话。。。
第一步应该准备和决定什么???
不知道,你想用什么语言来编写。。。你有用vb6吗? |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 2-8-2006 11:13 AM
|
显示全部楼层
原帖由 meemee 于 2-8-2006 10:40 AM 发表
不知道,你想用什么语言来编写。。。你有用vb6吗?
偶比较精通C#。NET。。
VB6 还好啊。。。。 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 2-8-2006 11:18 AM
|
显示全部楼层
小弟对LOGIC有一点迷惑。。。
我些了那些LOGIC。。。PROGRAMING的PART,怎样MAP去GRAPHIC??
现在小弟明白各位大大SYNTAX和CODING,不明白怎样用。。。
比如,具体些。。。
魔方是一个一个掉下来的。。。
首先要方格掉是用TIMER来让一格一格掉吗???
小弟不明白如何用TIMER与LOOP来让GUI那里一个一个掉下来。。。。
还有。。。
各位大大说的2ARRAY,你们是不是把整个游戏变成2D ARRAY象一个一个PIXEL酱子吗??然后是说当魔方掉的时候一个一个ARRAY去改他是吗???
恕小弟酱新手。。。 |
|
|
|
|
|
|
|
|
|
|
发表于 2-8-2006 12:30 PM
|
显示全部楼层
唔……
实际上,小章鱼不推荐初学的去想什么“引擎”
一来不太实用,二来也容易让初学者混乱。
再来就是,要知道这些所谓的“引擎”完全就是编程的艺术结晶,
需要丰富的经验才能完美,也不是一般人或一个人可以完成的。
小章鱼自认也未曾完成一个“引擎”。
对于小游戏,实际上也无需什么“引擎”,所有的咚咚对游戏量身而造就好。
量身而造意思就是:需要用到就做
久了就会慢慢知道什么东西会经常用到、怎样才方便等,那时候就很自然会想到把它打包、造成类等。
慢慢的累积,你就有一个“引擎”了。
小章鱼也建议,一开始不必想什么 DirectX/OpenGL 的,
弥勒是用 C# 的,有 GDI+ 就很足够应付简单的魔方了。
声音方面第一次可以忽略。
在考虑往后的发展,一般不推荐在游戏里使用 timer (像 setInterval)一类的处理,
建议使用 loop 来自己完成 timer 的运作。
弥勒,一般在开始编游戏前都需要计划,如画些 flow 等,在 flow 中就会简单的知道需要些什么“功能”,这跟编网页、应用程式没什么差别。
小章鱼较懒,一般都是把故事(游戏方式)草草写一些,画个简单的流程再把需要的功能草草列一列就动工。
酱的好处是,你会知道你需要什么,纵然是可选性的咚咚,你也可以预留空间,方便日后升级。
游戏一般的主结构就是(像 flashang 说的):
while(gameNotTerminated){
// 这个就是游戏主要的演算等,像物件的移动、碰撞,演算后更新到新的位置。
updateGameLogic()
// 把游戏的物件、界面等绘到银幕上。
// 就是所谓的“MAP去GRAPHIC”
drawGame()
// 游戏的 timer ,如果还未到下一帧的时间,就制造“处理”把时间消耗。
// 你应该了解游戏帧的概念,也就是一般说的 FPS(FramePerSecond)
// 简单的说,如果以上所有的处理使用时间是零,那么:一个 FPS=60 的游戏,下面 sleep() 的时间就是 1秒/60 = 16.6667毫秒
if(currentTime < nextFrameTime){
sleep()
}
}
所以建议弥勒把你的 flow 放上来咱们一起研究,然后再来研究编程部分。 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 2-8-2006 01:33 PM
|
显示全部楼层
原帖由 sson 于 2-8-2006 12:30 PM 发表
唔……
实际上,小章鱼不推荐初学的去想什么“引擎”
一来不太实用,二来也容易让初学者混乱。
再来就是,要知道这些所谓的“引擎”完全就是编程的艺术结晶,
需要丰富的经验才能完美,也不是一般人或一个人可 ...
小章鱼这里的意思是不是先要画一些FLOW CHART 呢??
是计划好整个PROGRAM的LOGIC怎样走是吗???
就是说先草稿整个GAME的概念是吗??
比如:
第一个方块没出来之前。。。怎样RANDOM弄一个四个小方格的方块,
然后到出来了,怎样一个一个往下,然后让玩家控制?
是这一些FLOW吗。。。。
其实FPS对偶决不生疏。。。
但是不是真正了解。。。
FPS的意思是一秒内LOGIC MAP 去 GRAPHIC的次数有几次吗??
[ 本帖最后由 弥勒 于 2-8-2006 01:35 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 2-8-2006 10:18 PM
|
显示全部楼层
弥勒,对。无论做什么,先起个稿,往后做什么也方便些吧?
而且方向也会比较明确。
具体的逻辑运算不用怎么想,只要做个稿,方便领导自己摆了,就像指南一样。
实际上小章鱼认为“LOGIC MAP 去 GRAPHIC”这种想法和概念是错误的。
上个帖有说过了编游戏和编网页、应用程式没什么差别。
简单的想就是呈现(GUI)方式不一样罢了。
FPS 简单说就是一秒游戏总体绘多少次。
“绘”在游戏编程里有个叫法:render(中文就是渲染或着色)
FPS=60 游戏逻辑不一定要一秒验算 60 次,不过就一定会渲染 60 次。 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 4-8-2006 09:25 AM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 9-8-2006 05:24 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 10-8-2006 03:48 PM
|
显示全部楼层
原帖由 sson 于 9-8-2006 05:24 PM 发表
弥勒 近来忙?
对啊。。。
因为FINAL YEAR PROJECT 近在眼前。。但还是很想学。。
你说的简单概念是不是类似简单的FLOWCHART还是PSUEDOCODE 酱子吗? |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|