Project1

标题: 【初级教学1】游戏总论(入门考试) [打印本页]

作者: 柳之一    时间: 2008-6-25 01:02
标题: 【初级教学1】游戏总论(入门考试)
【总论】
游戏最重要的是什么?
有人会说是画面,有人会说是系统。
个人认为是速度。
做游戏要速度。否则时间一长,就是一个坑。
玩起来要速度。再华丽的游戏,卡的不行也没有办法玩。
下起来要速度。几百兆的游戏,下的人自然就少。
能做出来总比坑掉要好。

下面是个人根据两年多的观察得出的一个数据统计:
游戏制作者的耐心变化

用rtp入门       :■■■■■■
开始接触脚本    :■■
中等制作者      :■■■■
准备离开6r的高手:■■■■■■■■


每个阶段的耗时变化

用rtp入门       :■■
开始接触脚本    :■■■■■■■■
中等制作者      :■■■■
准备离开6r的高手:■■



游戏策划与发布数量关系
[/quote]
大型游戏策划帖  :■■■■■■■■■■■■■■■
大型游戏预告贴  :■■■■■■■
大型游戏成品    :■

[/quote]


游戏关注因素
[/quote]
画面            :■■■■■■■■■■
系统            :■■■■■■
剧情            :■■
体积            :■■■
6r名人效应      :■■■■
名作同人效应    :■■■■■■

[/quote]


所以本次教学目的就是:要出作品
你可以通过这次教学来了解一下过程。了解玩法思路是如何转化为脚本或者事件来实现的。

一个好的策划功不可没。不但可以缩短开发时间,还让你的游戏更有人气。
一般策划一个游戏的话先看一下几点:

1 素材齐了吗?配套吗?不是自己画的话,就放弃吧。
2 核心脚本有吗?其他都做好了你突然最关键的系统没有,或是效果太多,冲突了就麻烦了
  很多游戏就是这样坑掉的。
3 你有时间吗?能做完吗?你的面向对象是谁?
4 是为了出名?还是为了混vip?还是什么?

本次的游戏是为了出成品。想出精品的请离开。

【正式教学内容】

【将思想转换为algorithm】

好了,现在开始开始思考一个问题。
你会猜拳吗?知道猜拳怎么玩吧。
我出 布 你出石头就输了。但是你出剪子就赢了。很简单的一个小游戏。哪么我们怎么转化为algorithm 呢?
首先我们要想好。如果对一个不会玩的人解释,你会解释吗?
你要是能够解释,完成algorithm 就不远了。

rm是不会听你口头表示的。
他主要只能做3个工作:
1 接受信息  2判断计算 表示信息。
接受信息就是我们通过键盘鼠标输入进去。
rm通过脚本事件的分歧啊判断啊什么的来对你的输入反应
最后将反应的结果,通过窗口啊,场景啊来反馈给你。

我们先来考虑如何和电脑猜拳。
首先来预测一下
如果我出 布
电脑 有可能出 3种情况
当电脑出 剪子 ,根据 规则 ,我输了。这个规则就是算法,也就是“脚本”。

换成rm的做法,就是新建一个工程
在地图上建立一个事件(自动执行)
选择选项:设置3个选项,代表 石头 剪子 布。
不过事件的变量里面不支持输入石头。
我们可以用123来表示石头剪子布。

显示选择项
选项1  石头
新建一个变量: 我的猜拳id  这个变量带入 3
选项2  剪子
新建一个变量: 我的猜拳id  这个变量带入 2
选项3  布
新建一个变量: 我的猜拳id  这个变量带入 1

好了,我们的输入部分就完成了。
运行一下。
上来就会出现窗口 让我们选择石头剪子布。
但是选择之后还会出来的。先不管。强行关闭。

我们来让电脑 选择一种。
电脑就好办了。再建立一个变量 : 电脑的猜拳id
这回带入的是随机数 1~3  电脑每次都会出的不一样。
这个是不作弊的情况。大多电脑ai都会做点弊的。

哪么怎么判断谁赢谁输呢?

这就用到事件里面最常用的一个东西了,条件分歧。
只要对比就可以了。

情况有9种:
(我,电脑)
1,1
1,2
1,3
2,1
2,2
2,3
3,1
3,2
3,3



就像这样一个一个的设置就行了。

有人会说了,好麻烦啊,我还有简单的方法。好了。简单方法打住。
那是优化流程的东西。目前在构思阶段先不考虑。反正才9种情况。
我也知道这个麻烦。先从麻烦的开始思路清晰。


好了,下面是入门考试。

做一个小游戏。

要求:
玩家可以选择 石头剪子布
然后文章显示电脑选择什么了
然后显示 是谁赢了。
然后从新开始游戏再选择。

东西很简单,不过不要小看。三国志的舌战其实就是这个的变种。

递交方法:
贴上你的事件截图就行了。至于对比算法可以自己优化。只要能比较就行。
14天后截止。
两个礼拜也看不到这个帖子的人。我会认为没有时间参加。




作者: 忘殇。    时间: 2008-6-25 02:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: 心情de对白    时间: 2008-6-25 03:23
占楼准备交作业。。。········
在弱弱的问下。2个星期只干这么点{/gg}
忽忽。不过终于有事情可以做了。。


完毕。。先就这样。。后面慢慢想想怎样优化。
更正完毕
作者: 禾西    时间: 2008-6-25 04:21
那啥 = =,禾西用不了 RM ...用不了 RM ...用不了 RM ...用不了 RM ...
五個月都用不了 T T
旁聽生需要交作業嗎 = =...
不然這樣好了...用腳本寫一段
message = Window_Message.new
...
a = message.index
b = rand(3)
result = a - b
case result
when 0     ;p "平手"
when 1,-2  ;p "輸了"
when -1, 2 ;p "勝利"
end

柳之一狠狠地 Pia 死我吧 = =b
作者: hitlerson    时间: 2008-6-25 04:55
楼上的同学都好优秀啊!

老师好难啊,我做不下去了,快来帮帮忙啊{/pz}{/pz}{/pz}


作者: dguanlin    时间: 2008-6-25 05:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: 心情de对白    时间: 2008-6-25 05:33
以下引用dguanlin于2008-6-24 21:10:46的发言:





我是最笨的方法,哈哈

自己也要定义!!是直接判断不是用文章喊- -||+|
作者: 亿万星辰    时间: 2008-6-25 05:40
以下引用心情de对白于2008-6-24 21:33:50的发言:
自己也要定义!!是直接判断不是用文章喊- -||+|

自己也要定义?
我觉得他那个方法就可以的啊~

顺便做广告:
此教学配套群:53535461
作者: dguanlin    时间: 2008-6-25 05:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: 心情de对白    时间: 2008-6-25 06:04
以下引用dguanlin于2008-6-24 21:44:19的发言:

什么意思?布明白

以下引用心情de对白于2008-6-24 21:33:50的发言:


以下引用dguanlin于2008-6-24 21:10:46的发言:





我是最笨的方法,哈哈


自己也要定义!!是直接判断不是用文章喊- -||+|

咳咳!当我没说。。不过要求是用VX. 你用的XP?!

作者: 越前止まる殇    时间: 2008-6-25 16:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: 劍之飛龍☆    时间: 2008-6-25 16:12
那我就不凑热闹了,鼓励之
作者: 亿万星辰    时间: 2008-6-25 21:08
纠正一下“心情de对白”所出现的问题吧

只看这半张图就好了,问题出在了“[石头] 的场合”下面。
既然这里已经由玩家进行了选择 石头 的操作,那么下面对[变量1:我猜的]所进行的是否为1的判断就完全没有必要了。
作者: 多於的回憶    时间: 2008-6-25 21:24
作业






hehe
作者: 越前止まる殇    时间: 2008-6-26 00:00
提示: 作者被禁止或删除 内容自动屏蔽
作者: 心情de对白    时间: 2008-6-26 01:40
以下引用亿万星辰于2008-6-25 13:08:21的发言:

纠正一下“心情de对白”所出现的问题吧

只看这半张图就好了,问题出在了“[石头] 的场合”下面。
既然这里已经由玩家进行了选择 石头 的操作,那么下面对[变量1:我猜的]所进行的是否为1的判断就完全没有必要了。

对呀,谢谢亿万的提醒。。{/hx}
作者: 多於的回憶    时间: 2008-6-26 06:01
以下引用越前止まる殇于2008-6-25 16:00:49的发言:

LS的好长好长-v-

因为我用的是旧办法,加了点对话,我这是第一次做这个,不好意思啊
作者: 亿万星辰    时间: 2008-6-26 16:04
LS的也可以看看我写的那些话,你也犯了同样的错误。。。
作者: hitlerson    时间: 2008-6-26 21:02
刘之一老师在上这节课的同时,还应该加上,如何简化代码长度的课程,并能使代码更有逻辑性和可读性
看了裹脚布那么长的代码,我觉得很有必要
作者: 灯笼菜刀王    时间: 2008-6-27 01:08
作业
  文章:强制玩的游戏,不玩就GAME OVER
  文章选择:我出石头,我出布,我出剪刀。
          我出石头的情况下
             变量1=1
          我出布的情况下
             变量1=2
          我出剪刀的情况下
             变量1=3
脚本:a = rand(3)
  case $game_variables[1]            
when 1            
  case a
  when 0
    $game_temp.message_text= "我出石头,平局。"
  when 1
    $game_temp.message_text="我出布,赢了。"
  when 2
    $game_temp.message_text="我出剪刀,输了"
end   
when 2              
  case a
  when 0
    $game_temp.message_text= "我出石头,输了。"
  when 1
    $game_temp.message_text="我出布,平局。"
  when 2
    $game_temp.message_text="我出剪刀,赢了。"
end      
when 3              
   case a
  when 0
    $game_temp.message_text= "我出石头,赢了。"
  when 1
    $game_temp.message_text="我出布,输了。"
  when 2
    $game_temp.message_text="我出剪刀,平局。"      
end
end
   

脚本太长,事件写不下-v-,直接输入吧.....            

作者: yangff    时间: 2008-6-27 01:44
我也爆脚本(我旁听)
in:0=剪刀
   1=石头
   2=布
out:0=平
    1=胜
    2=败
def win?(in)
  rnd = rand(3)
  if in - rnd == 0
     return 0
  end
  if (in - rnd == -2 ) or in - rnd == 1
     return 1
  else
    return 2
  end
end

作者: yangff    时间: 2008-6-27 01:51
以下引用hitlerson于2008-6-24 20:55:09的发言:

楼上的同学都好优秀啊!

老师好难啊,我做不下去了,快来帮帮忙啊


rand(3)-1=-1~1
-1
0
1
有必要吗?
作者: 多於的回憶    时间: 2008-6-27 05:41
以下引用亿万星辰于2008-6-26 8:04:16的发言:

LS的也可以看看我写的那些话,你也犯了同样的错误。。。

thank 亿万
作者: 精灵使者    时间: 2008-6-27 08:28
精灵曾经做过猜拳系统(参考安娜杜拉城的精灵女王),完整事件如下:




经rmvx验证后通过。
作者: 亿万星辰    时间: 2008-6-28 03:22
以下引用yangff于2008-6-26 17:44:35的发言:

我也爆脚本(我旁听)
in:0=剪刀
  1=石头
  2=布
out:0=平
   1=胜
   2=败

我差点以为这个也是脚本的……  orz
作者: 电子最终龙    时间: 2008-6-28 04:29
=。=好象来得晚了点


作者: 越前リョーマ    时间: 2008-6-28 21:49
我是在看教学的上部分……|||
作者: 溪风    时间: 2008-7-1 19:59
做好了,经测试,正常。
咱的方法比较原始,纯事件。
这是其中一部分,另外两个选择同理。较长,就不贴出了。



作者: 溪风    时间: 2008-7-1 20:01
总论讲得相当不错~
作者: xiarongshan    时间: 2008-7-12 01:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: 流水仙境    时间: 2008-8-8 20:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: gdmingxuezhi    时间: 2009-8-9 17:48
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1