怎么设计游戏
设计游戏方法如下:
1、游戏制作主要分为3大块,即程序开发、美术设计和游戏策划。
2、程序开发包括服务器端开发、客户端开发。
3、美术设计包括场景、角色、特效、动画等部分。
4、游戏程序:做游戏程序,需要精通至少一门以上程序语言,比如c语言和c++。
5、游戏美术:游戏中的画面都是由游戏美术师来制作的,具体细分为游戏原画、3D游戏模型贴画、游戏动画、游戏特效、关卡美术等,需要学习3dmax、ps、zbrush等软件。
6、游戏策划:游戏策划主要制定游戏的规则和玩法,游戏策划需要有较高的综合素质、沟通能力、理解能力、逻辑思维能力等。
先确认你要做什么类型的游戏,通常分为美术、策划、开发
美术:游戏界面、游戏场景、游戏模型、游戏动效和动画,美术界面和场景的设计软件以:ps、sai居多;模型通常是maya;特效:2d的Ae、ps等等,3d的3dmax、maya。
策划:游戏原型、游戏文案、游戏数值,
原型:axure或者其他原型软件;文案:doc、txt只要能记录文字的都可以;数值:excel居多;
开发:开发语言有很多,就不单独介绍了。主要介绍开发使用的引擎:unity,有着庞大的第三方插件市场,可以极大的加快开发进程;ue内置功能多,画面表现效果强,但是三方扩展少。cocos现在用于h5比较多,适合小型的开发者团队。不是很懂开发语言的开发者,可以使用rpg游戏制作大师等等便捷软件,另外国内现在的小型开发引擎还是可以的,taptap上有用国内引擎开发的游戏,评价也还行?
玩家第一次进入某一款游戏,并不见得就了解游戏也有可能不知道如何开始游戏。此时游戏中的任务就起到了很重要的作用,那么一个任务需要哪些元素构成呢?
一个完整的游戏必须但不仅仅要包含以下要素:
主要从2个方面考虑: 从设计者的角度考虑,是要通过任务的设计达成某些目的。比如引导初入游戏的玩家了解游戏、增强剧情故事给玩家营造强烈的代入感等等;从玩家角度考虑,就是满足玩家在游戏中的追求,比如更快的让玩家上手游戏从而奖励一些物质道具。或者是达成一些个人的荣誉等等。
为了增加任务的难度拉开不同任务的梯度并融合进游戏中一些元素,提高可玩性,所以要增加一些限制条件, 比如:等级要求、组队要求、性别要求、甚至装备要求等等。
触发方式就是玩家在游戏内接受任务的方式,一般包含以下几种:
NPC触发: 在游戏中的特性NPC处接受任务
剧情触发: 玩家完成或开启某些特定关卡或剧情时获得新的任务
场景触发: 在特定场景才能触发的任务
道具触发: 通过游戏内某种道具可以开启一个任务
时间触发: 通过特定时间自动触发,比如节日、休息日等
事件触发: 在游戏中发生某个事件时触发任务
活动触发: 在特定的活动中接受或触发的任务
任务地点就是玩家接取、完成任务所在的一个或多个游戏场景(地图)
任务完成以后,系统给予玩家的游戏奖励,包括金钱、经验、技能、道具、称号、声望成就等
游戏任务中涉及到的所有NPC,包括功能NPC和怪物NPC两大类:
功能NPC包括: 贩卖NPC、剧情NPC、场景NPC、任务NPC
怪物NPC包括: 怪物、采集物
任务要求: 交代完成任务所需要达成的目标,比如杀特定怪物、采集足够的物品等。
任务对白: 对任务内容进行介绍,交代任务背景一般为名字说明。
设计游戏的目的在我看来承载了以下几种用途:
在游戏中的任务流程,简单来看就是如图所示流程
上图这个流程中,我们可以尽情的发挥想象,将细节补充的更具有可玩性,达成目的。
比如想让玩家熟悉地图,那么就做一个连续多步骤任务,将整个地图NPC进行一个串联,让用户在地图内可以获得升级必备的道具如药品、装备等,同时熟悉新地图。
这个线路模式就是一种简单的串联模式,每个NPC都会遇到,且按照一定顺序绕城一周,用以了解地图全貌、NPC分布、NPC功能并引导了解游戏功能。
1、根据任务完成的形式,会有以下不同的任务分类:
2、根据任务功能不同有以下分类:
1、多玩游戏多研究,取其精华去其糟粕。
2、任务设计时要考虑玩家的操作习惯、某些被法律、道德、风俗禁止的内容绝对不能出现在任务中。
3、任务要和游戏的世界观、故事背景、人物场景风格等相吻合。
4、设计任务前一定要和程序和美术人员及时沟通,更好的实现自己的创意。
5、游戏任务的说明文字、完成条件、任务指引一定要清晰、简单、准确,让各种文化层次和阅读习惯的玩家都能看懂。
6、设计游戏任务时,要充分掌握和考虑当前场景的任务动线,避免让玩家做重复的事情、走重复的路线。
7、游戏任务不是单独存在的,适当地和游戏中的其它玩法、功能、系统联系起来,使游戏形成一个统一的整体。
今天主要是将游戏中任务的一些基本概念抛出来,让大家了解游戏任务是怎么回事。下一篇文章,我们就来揭秘如何做一个游戏任务。
其他文章导读:
知识产权大行其道,从游戏制作的角度理解IP!
游戏的绚丽你懂吗?让你懂得绚丽背后的故事!
游戏策划如何提一份靠谱的角色设计方案?
"扫雷"小游戏C代码
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
main( )
{char a[102][102],b[102][102],c[102][102],w
int i,j
int x,y,z[999]
int t,s
int m,n,lei
int u,v
int hang,lie,ge,mo
srand((int)time(NULL))
leb1:
printf("\n 请选择模式:\n 1.标准 2.自定义\n")
scanf("%d",&mo)
if(mo==2)
{do
{t=0printf("请输入\n行数 列数 雷的个数\n")
scanf("%d%d%d",&hang,&lie,&ge)
if(hang<2){printf("行数太少\n")t=1}
if(hang>100){printf("行数太多\n")t=1}
if(lie<2){printf("列数太少\n")t=1}
if(lie>100){printf("列数太多\n")t=1}
if(ge<1){printf("至少要有一个雷\n")t=1}
if(ge>=(hang*lie)){printf("雷太多了\n")t=1}
}while(t==1)
}
else{hang=10,lie=10,ge=10}
for(i=1i<=gei=i+1)
{do
{t=0z[i]=rand( )%(hang*lie)
for(j=1j<ij=j+1){if(z[i]==z[j]) t=1}
}while(t==1)
}
for(i=0i<=hang+1i=i+1)
{for(j=0j<=lie+1j=j+1) {a[i][j]='1'b[i][j]='1'c[i][j]='0'} }
for(i=1i<=hangi=i+1)
{for(j=1j<=liej=j+1) {a[i][j]='+'} }
for(i=1i<=gei=i+1)
{x=z[i]/lie+1y=z[i]%lie+1c[x][y]='#'}
for(i=1i<=hangi=i+1)
{for(j=1j<=liej=j+1)
{m=48
if(c[i-1][j-1]=='#')m=m+1if(c[i][j-1]=='#')m=m+1
if(c[i-1][j]=='#')m=m+1 if(c[i+1][j+1]=='#')m=m+1
if(c[i][j+1]=='#')m=m+1 if(c[i+1][j]=='#')m=m+1
if(c[i+1][j-1]=='#')m=m+1if(c[i-1][j+1]=='#')m=m+1
b[i][j]=m
}
}
for(i=1i<=gei=i+1)
{x=z[i]/lie+1y=z[i]%lie+1b[x][y]='#'}
lei=ge
do
{leb2:
system("cls")printf("\n\n\n\n")
printf(" ")
for(i=1i<=liei=i+1)
{w=(i-1)/10+48printf("%c",w)
w=(i-1)%10+48printf("%c ",w)
}
printf("\n |")
for(i=1i<=liei=i+1){printf("---|")}
printf("\n")
for(i=1i<=hangi=i+1)
{w=(i-1)/10+48printf("%c",w)
w=(i-1)%10+48printf("%c |",w)
for(j=1j<=liej=j+1)
{if(a[i][j]=='0')printf(" |")
else printf(" %c |",a[i][j])
}
if(i==2)printf(" 剩余雷个数")
if(i==3)printf(" %d",lei)
printf("\n |")
for(j=1j<=liej=j+1){printf("---|")}
printf("\n")
}
scanf("%d%c%d",&u,&w,&v)
u=u+1,v=v+1
if(w!='#'&&a[u][v]=='@')
goto leb2
if(w=='#')
{if(a[u][v]=='+'){a[u][v]='@'lei=lei-1}
else if(a[u][v]=='@'){a[u][v]='?'lei=lei+1}
else if(a[u][v]=='?'){a[u][v]='+'}
goto leb2
}
a[u][v]=b[u][v]
leb3:
t=0
if(a[u][v]=='0')
{for(i=1i<=hangi=i+1)
{for(j=1j<=liej=j+1)
{s=0
if(a[i-1][j-1]=='0')s=1if(a[i-1][j+1]=='0')s=1
if(a[i-1][j]=='0')s=1 if(a[i+1][j-1]=='0')s=1
if(a[i+1][j+1]=='0')s=1if(a[i+1][j]=='0')s=1
if(a[i][j-1]=='0')s=1 if(a[i][j+1]=='0')s=1
if(s==1)a[i][j]=b[i][j]
}
}
for(i=1i<=hangi=i+1)
{for(j=liej>=1j=j-1)
{s=0
if(a[i-1][j-1]=='0')s=1if(a[i-1][j+1]=='0')s=1
if(a[i-1][j]=='0')s=1 if(a[i+1][j-1]=='0')s=1
if(a[i+1][j+1]=='0')s=1if(a[i+1][j]=='0')s=1
if(a[i][j-1]=='0')s=1 if(a[i][j+1]=='0')s=1
if(s==1)a[i][j]=b[i][j]
}
}
for(i=hangi>=1i=i-1)
{for(j=1j<=liej=j+1)
{s=0
if(a[i-1][j-1]=='0')s=1if(a[i-1][j+1]=='0')s=1
if(a[i-1][j]=='0')s=1 if(a[i+1][j-1]=='0')s=1
if(a[i+1][j+1]=='0')s=1if(a[i+1][j]=='0')s=1
if(a[i][j-1]=='0')s=1 if(a[i][j+1]=='0')s=1
if(s==1)a[i][j]=b[i][j]
}
}
for(i=hangi>=1i=i-1)
{for(j=liej>=1j=j-1)
{s=0
if(a[i-1][j-1]=='0')s=1if(a[i-1][j+1]=='0')s=1
if(a[i-1][j]=='0')s=1 if(a[i+1][j-1]=='0')s=1
if(a[i+1][j+1]=='0')s=1if(a[i+1][j]=='0')s=1
if(a[i][j-1]=='0')s=1 if(a[i][j+1]=='0')s=1
if(s==1)a[i][j]=b[i][j]
}
}
for(i=1i<=hangi=i+1)
{for(j=1j<=liej=j+1)
{if(a[i][j]=='0')
{if(a[i-1][j-1]=='+'||a[i-1][j-1]=='@'||a[i-1][j-1]=='?')t=1
if(a[i-1][j+1]=='+'||a[i-1][j+1]=='@'||a[i-1][j+1]=='?')t=1
if(a[i+1][j-1]=='+'||a[i+1][j-1]=='@'||a[i+1][j-1]=='?')t=1
if(a[i+1][j+1]=='+'||a[i+1][j+1]=='@'||a[i+1][j+1]=='?')t=1
if(a[i+1][j]=='+'||a[i+1][j]=='@'||a[i+1][j]=='?')t=1
if(a[i][j+1]=='+'||a[i][j+1]=='@'||a[i][j+1]=='?')t=1
if(a[i][j-1]=='+'||a[i][j-1]=='@'||a[i][j-1]=='?')t=1
if(a[i-1][j]=='+'||a[i-1][j]=='@'||a[i-1][j]=='?')t=1
}
}
}
if(t==1)goto leb3
}
n=0
for(i=1i<=hangi=i+1)
{for(j=1j<=liej=j+1)
{if(a[i][j]!='+'&&a[i][j]!='@'&&a[i][j]!='?')n=n+1}
}
}
while(a[u][v]!='#'&&n!=(hang*lie-ge))
for(i=1i<=gei=i+1)
{x=z[i]/lie+1y=z[i]%lie+1a[x][y]='#'}
printf(" ")
for(i=1i<=liei=i+1)
{w=(i-1)/10+48printf("%c",w)
w=(i-1)%10+48printf("%c ",w)
}
printf("\n |")
for(i=1i<=liei=i+1){printf("---|")}
printf("\n")
for(i=1i<=hangi=i+1)
{w=(i-1)/10+48printf("%c",w)
w=(i-1)%10+48printf("%c |",w)
for(j=1j<=liej=j+1)
{if(a[i][j]=='0')printf(" |")
else printf(" %c |",a[i][j])
}
if(i==2)printf(" 剩余雷个数")
if(i==3)printf(" %d",lei)printf("\n |")
for(j=1j<=liej=j+1) {printf("---|")}
printf("\n")
}
if(n==(hang*lie-ge)) printf("你成功了!\n")
else printf(" 游戏结束!\n")
printf(" 重玩请输入1\n")
t=0
scanf("%d",&t)
if(t==1)goto leb1
}
开发制作游戏过程详解
游戏制作是指一个电子游戏的制作过程,由于游戏的类型、大小和要求,游戏制作需要的人员和时间也不同。以下是我整理的关于开发制作游戏过程详解,希望大家认真阅读!
制作游戏是一项工程,它同任何工程一样需要遵循一个规划周期。以下就是开发游戏的计划-执行-监控-控制-重新计划循环。
如果你根本不做任何计划,你可能就需要不断补缺补漏,而如果你一开始就做对了,可能就不需要浪费这么多精力来善后。如果你已经做好计划,但却没有检查事实情况(执行)是否符合计划(监控),那么最终结果迟早会与计划脱节。此外,即便你知道计划赶不上变化,假如你不采取补救措施(控制),那也迟早会失败。假设你控制了这种局面,那么你就需要重新制定计划,换句话也就是:
*如果你不知道会发生什么情况,那你怎么知道要做什么?
*如果你不知道正在发生什么情况,你又如何让事情朝正确的方向发展?
*如果你不能让事情朝正确的方向发展,你又怎么实现自己的目标?
*如果你的计划与实际情况脱节,你又怎么知道下一步该怎么走?
从上图可以看出,制作一款好游戏的主要流程与管理流程很相似。当你达到可玩模型这一阶段时,你需要试玩游戏,分析结果,调整模型,再次试玩,一直到你“完成”为止,或者就此放弃。
“系统”是组成一个复杂或统一整体的事物/部分的集合。一般来说,系统分析就是找出系统工作原理,或者说它的运行方式,其部分组件可能具有自动化特点。在此我们关注的是它如何运行,这样我们就可以运用一些设计方面的知识。
上图是套用系统分析所绘制的数据流图表,它显示了数据存储位置、数据/信息或对象的流向,以及与系统产生交集的外部实体。
圆圈代表流程,即事件发生位置
圆角矩形是数据存储位置
箭头号是指数据/信息或对象的流向
矩形代表设计师之外的外部实体
绘制这个图表的`目的并非显示各个事件发生的时间顺序,而是注明一切可能发生的事件。在系统运行过程中,可能会同时发生多个流程。在设计过程中的同一时间萌生新创意,在脑中边玩游戏边构思游戏框架,这已是一种常见现象。你通常可以在同一时间创造和调整原型文字标记、规则或软件,以及测试原型。
我们所绘制的系统图表只是游戏设计过程。发行商和测试者并不在这个系统中,因为他们并未参与游戏设计。
在此我们将“完成”一词标上引号是因为,发行商通常会提出修改游戏的要求,有时候是改善建议,有时候是因为游戏出现问题,有时候是偶然性,有时候是必然性。研究和解决大量的制作问题并不在这个系统考虑范围之列,因为这是制作者需处理的事情。
这个图表适用于任何游戏(包括电子和非电子游戏)的设计过程。这个图表假设的情况是单个设计师参与游戏设计,而非由多人参与设计AAA电子游戏,因为AAA游戏设计流程有更复杂的要求。
设计合作者也不在这个系统范围中,但有些情况下,两名合作者若紧密联手,使其执行效果就像是出自单人设计师一样,那么也可归入这一系统范围中。
过程
在这个图表显示的7个过程中,每个过程都可以再分解为另一个图表的子过程,直到无可分解为止。但这并不在本文讨论范围之内,对于初学者来说,掌握最顶级的过程就已经足够了。
要记住这7个过程(活动)也许会同时发生,不会按照特定的顺序进行。这些过程包括:
构思和调整想法。游戏起源于想法。我已经多次讨论过拥有大量想法的重要性,以及你该如何产生创意。
无论你想为创建哪种游戏理念的模型,都需要事先进行调查研究。例如,如果你要设计一款与农场有关的游戏,就需要了解如何耕作,这就需要进行一定的调查。如果你要设计一款与二战中的库尔斯克战争有关的游戏,那就得研究这场战役以及苏联、德军双方当时的军事实力和作战动机。如果你要开发一款反映现实的模拟游戏,那就极需要调查研究以便提高游戏模拟的准确度。无论如何,在项目开工前一定要进行足够的调查研究,然后投入游戏设计中,要防止被卡在无限的“调查研究”工作中。
在想象中玩游戏。你将逐渐在脑中形成一些游戏运行的概念。你需要在脑中体验游戏或游戏的部分环节,并自问“玩家会如何做,这一内容如何在游戏中呈现?”你可以在任何时刻进行这种想象,例如在开车、排队、阅读设计笔记的时候。富有经验的设计师常在创建原型之前通过这种方法,从脑中的大量想法中筛选游戏理念。电子游戏设计师必须依赖这一过程,因为制作电子游戏的可玩原型相对更困难并且更耗时间。
构思游戏结构和框架。到一定阶段后你就会掌握足够信息,并将游戏运行原理描绘到纸上。做到这一步后你就可以开始制作原型。
创造和调整原型。对于桌游而言,创建原型是一个相对快速的过程,但电子游戏原型而更费功夫。有些电子游戏设计师会首先制作纸质原型以测试游戏的核心理念。