如何自制游戏?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何自制游戏?相关的知识,希望对你有一定的参考价值。

推荐几个制作软件

1、想出一个点子点子是启动游戏的引子,是一个游戏的源头。
这个点子首先在大体上应该是个类似于故事的东西。然后这个故事需要有一个目标。
2、分镜头脚本设计理解一个游戏最好的方法是使用分镜——创造一系列能体现游戏每个关卡或者不同的场景与目标的图片。每个分镜用一两幅图片来描述正在发生什么。
3、考虑细节做完分镜头脚本设计,就可以开始写游戏设计的细节。从这个步骤就开始变得复杂了。你将需要思考每一个可能的细节,并记录下来。
4、攥写设计文档用类似于电影脚本的形式记录你在上面两节所思考出来的东西。攥写文档看起来像是例行公事,但是攥写过程可以让你整理思路,以使你剔除那些一看就知道很白痴的想法或者添加一些其他的有趣的游戏元素。
参考技术A

制作游戏步骤如下:步骤1:制作游戏前需要给自己的游戏定位。

 在自己动手制作游戏前,需要先做下计划,给自己的游戏定位。是大型游戏还是小游戏,游戏的种类是那种,有动作、冒险、休闲等。这个设计好后,才能开始下一步的游戏剧情的设计。 

步骤2:设计自己的游戏剧情。

每个游戏都有自己的剧情和人物背景,根据自己想法,设计自己的游戏剧情。比如可以从小说中查找一些情节进行改写,形成游戏的主线,游戏的分支线可以在后期补充。

步骤3:选择制作游戏的开发工具。

不同种类的游戏,可以用不同的开发游戏的工具,大的游戏可以用编程开发工具,小的游戏,用脚本的开发工具也能制作出来,需要选择一个自己熟悉的开发工具,这样制作时,难度就会降低。

步骤4:设计游戏人物的原画和场景画。

游戏中人物的原画和场景设计很重要,开发工具设计的代码是在后台,展示在台面的就是人物的形象和不同风格的游戏场景。可根据自已设计的游戏主线,画出主场景和主要人物的原画,后期补充分场景和次要人物的原画。 

步骤5:把设计好的原画和场景画进行扫描和加工处理。

原画和场景设计花费的时间比较长,美好的人物形象在华丽的场景中出现,让人看了印象深刻。接着把设计好的原画和场景画进行扫描和加工处理。这样在游戏开发时就可以直接作为素材添加了。

步骤6:选择好的游戏背景和场景音乐。

在玩家玩游戏时,好的游戏背景和场景音乐,让人听了轻松又愉快,会体验到游戏的乐趣,制作自己的游戏时,可以选择自己喜欢的音乐来作为游戏的背景和场景音乐。

步骤7:制作自己的游戏的开发和测试。

游戏的开发就是花费时间长的阶段,如果学过编程的人,经过几个月的游戏开发工具学习就可以进行游戏开发了。如果想简单一点就可以制作一个Flash的小游戏开发。经过一段时间开发完成后,需要自己对游戏的主线和支线进行游戏的测试,避免游戏出错。

步骤8:把自己制作的游戏给朋友来玩,体验游戏设计和制作的乐趣。

游戏测试完成后,可以把自己制作的游戏给朋友来玩,体验游戏设计和制作的乐趣。

参考技术B 回答

您的问题似乎描述的不够详尽,请您做进一步的描述以便能进行精确的答复.

如何制作游戏软件?在制作游戏的时候我们首先应该确定一下自己要制作什么样的游戏,市场上其实有很多的游戏类型,付费游戏、单机游戏、大型网络游戏等,其实还分为枪战游戏、小游戏、微信游戏、H5游戏等,不同的游戏它们的属性和特点都是不同的,在进行制作游戏的时候我们应先确定一下方向。

在游戏制作的时候其实一个人是比较难完成的,因为一个完美的游戏需要制作人、策划、原画、程序开发、美术、音效和测试等一个大团队来一起完成,大型的游戏甚至需要几年才能完成,一个小游戏也需要几天才能完成。

那么该如何制作游戏软件?如果只是想要尝试一下如何制作游戏的话可以先尝试制作一下小游戏,市场上其实也有直接制作游戏的软件,如果是从事这个行业而想要学习制作游戏的话,最好还是学习专业的课程,这些课程包括游戏设计、游戏制作、游戏编程、电脑游戏图形元素、互动设计和计算机科学导论、动画及特效、计算机图形学、计算机科学、数码艺术、数字通信和多媒体、图形设计、三维动画、游戏设计和开发音像艺术等。

参考技术C 你可以先去【绘学霸】网站找“游戏设计/游戏制作”板块的【免费】视频教程-【点击进入】完整入门到精通视频教程列表: www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=307&zdhhr-11y17r-1761182686478082628

想要系统的学习可以考虑报一个网络直播课,推荐CGWANG的网络课。老师讲得细,上完还可以回看,还有同类型录播课可以免费学(赠送终身VIP)。

自制能力相对较弱的话,建议还是去好点的培训机构,实力和规模在国内排名前几的大机构,推荐行业龙头:王氏教育。
王氏教育全国直营校区面授课程试听【复制后面链接在浏览器也可打开】: www.huixueba.com.cn/school/3dmodel?type=2&zdhhr-11y17r-1761182686478082628

在“游戏设计/游戏制作”领域的培训机构里,【王氏教育】是国内的老大,且没有加盟分校,都是总部直营的连锁校区。跟很多其它同类型大机构不一样的是:王氏教育每个校区都是实体面授,老师是手把手教,而且有专门的班主任从早盯到晚,爆肝式的学习模式,提升会很快,特别适合基础差的学生。

大家可以先把【绘学霸】APP下载到自己手机,方便碎片时间学习——绘学霸APP下载: www.huixueba.com.cn/Scripts/download.html

参考技术D 大致方法/步骤

通过参考不同的游戏,写出想要制作的游戏的剧情和脚本。
游戏的种类有多种,根据自己喜欢的游戏种类,通过参考不同的游戏,写出要制作游戏的剧情和脚本。
2 根据游戏的剧情和脚本,使用手绘软件绘制游戏人物的图形和背景。
接着,根据游戏的剧情和脚本,使用手绘软件绘制游戏人物的图形和背景。可以使用多种手绘软件相结合,提高手绘的效果。
3 通过建模的软件把平面图形创建为立体模型效果。
有多种建模软件,可以通过建模的软件把平面图形创建为立体模型效果。比如使用常用的建模软件3dmax软件。
4 熟悉游戏制作软件的操作,这样制作游戏的效率高些。
游戏制作的软件有多种,比如用Unity3D开发游戏,熟悉游戏制作软件的操作,这样制作游戏的效率高些。
5 创建一个游戏的项目工程,在制作游戏时方便查找。
根据游戏的设计,创建一个游戏的项目工程。这样把游戏中所使用的资源文件和模型都放在一个目录下,在制作游戏时方便查找。
6 把创建好的模型导入到游戏制作软件中,构建游戏场景。
接着,可以把创建好的模型导入到游戏制作软件中,构建游戏场景。比如可以把3dmax软件创建的多种模型导入到Unity3D软件中。
7 在游戏制作软件使用透视与正交摄像机来查看场景。
不同的游戏场景需要使用不同的角度来查看,可以创建透视或正交摄像机来查看游戏场景。比如在Unity3D软件中添加摄像机。这样可以象游戏者的视角一样看物体和场景。
8 根据游戏的设计,添加合适的背景音乐与台词语音。
好的游戏都会有独特的音乐背景,游戏人物的语音生效有特点。可以请朋友帮忙添加合适的背景音乐与台词语音。
9 使用游戏制作的软件进行代码编写,并进行测试。
当游戏中的前台资源都整理好后,通过使用游戏制作的软件进行代码编写,用面向对象的方式封装不同类。比如在Unity3D可以使用编辑器,编写和运行游戏。好的游戏需要不断的测试,这样制作出来的游戏才稳定,不会出错。
10 全流程的测试游戏,找到不足的地方进行修改调整。
当游戏基础测试结束后,需要全流程的测试游戏,找到不足的地方进行修改调整。这样制作出来的游戏才经典。
11 分享和发布制作好的游戏,体验游戏设计和制作的乐趣。
当游戏制作好了,需要分享给朋友们,这样可以体验游戏设计和制作的乐趣。还可以听听游戏玩家给的建议,不断修改一下游戏设计中所没有的场景和脚步,使制作的游戏越来越好玩了

项目实战C/C++自制程序:双人击球游戏

每天一个编程小项目,提升你的编程能力!

游戏说明

Player1 玩家通过 W、S 按键控制左板上下移动,Player2 玩家通过 O、L 按键控制右板上下移动。在游戏过程中,小球的速度会随着接触木板的次数增加而加快,增加游戏难度。当小球没有碰到木板时游戏结束。

游戏效果

简单了解游戏后我们就来试试吧!(直接上源码,大家可以看注释)

///
// 程序名称:双人击球游戏
// 编译环境:VS2010,EasyX_20200902
//

#include <graphics.h>
#include <conio.h>

int main()

	initgraph(640, 480);
	srand(GetTickCount());
	setbkcolor(WHITE);
	cleardevice();

	setfillcolor(BLACK);
	setlinecolor(BLACK);
	settextstyle(30, 0, L"verdana");
	settextcolor(BLACK);

	int p1_x, p1_y, p2_x, p2_y, ball_x, ball_y;
	int dx, dy;
	int win = 1;							// 赢玩家
	p1_x = 45;								// 左板
	p1_y= 240;
	p2_x = 595;								// 右板
	p2_y = 240;	
	ball_x = rand() % 240 + 200;			// 小球 x 坐标
	ball_y = rand() % 180 + 150;			// 小球 y 坐标
	dx = (rand() % 2 * 2 - 1)*2;			// 小球移动增量
	dy = (rand() % 2 * 2 - 1)*2;			// 小球移动增量

	outtextxy(190, 200, L"Put Enter To Begin");
	while(_getwch() != 13);

	cleardevice();

	// player
	settextstyle(20, 0, L"Verdana");
	outtextxy(20, 50, L"Payer1");
	outtextxy(565, 50, L"Player2");

	// 提示
	settextstyle(15, 0, L"Verdana");
	outtextxy(20, 400, L"W 向上");
	outtextxy(20, 425, L"S 向下");
	outtextxy(590, 400, L"O 向上");
	outtextxy(590, 425, L"L 向下");

	line(50, 100, 590, 100);											// 上边界
	line(50, 380, 590, 380);											// 下边界
	solidcircle(ball_x, ball_y, 10);

	wchar_t key=0;
	while(true)
	
		clearcircle(ball_x, ball_y, 10);								// 清除小球位置
		clearrectangle(p1_x - 5, p1_y - 20, p1_x + 5, p1_y + 20);		// 清除左板
		clearrectangle(p2_x - 5, p2_y - 20, p2_x + 5, p2_y + 20);		// 清除右板

		if(_kbhit())
		
			// 获取按键
			key = _getwch();		
	
			// 判断板移动的位置
			if(key == L's')
				p1_y += 30;
			else if(key == L'w')
				p1_y -= 30;
			else if(key == L'l')
				p2_y += 30;
			else if(key == L'o')
				p2_y -= 30;
		

		// 判断左右俩板是否超出移动界限
		if((p1_y - 20) < 100)
			p1_y = 120;
		else if((p1_y + 20) > 380)
			p1_y = 360;
		else if((p2_y - 20) < 100)
			p2_y = 120;
		else if((p2_y + 20)> 380)
			p2_y = 360;

		// 画左右两板位置
		solidrectangle(p1_x - 5, p1_y - 20, p1_x + 5, p1_y + 20);
		solidrectangle(p2_x - 5, p2_y - 20, p2_x + 5, p2_y + 20);

		ball_x = ball_x + dx;
		ball_y = ball_y + dy;

		// 判断小球遇到左右板反弹
		if(ball_x < 62 )
		
			if(ball_y < p1_y + 20 && ball_y > p1_y - 20)
			
				dx = -dx;
				dx += dx / 10;
			
			else 
			
				win = 2;
				solidcircle(ball_x, ball_y, 10);
				break;
			
		
		else if(ball_x > 578)
		
			if(ball_y < p2_y + 20 && ball_y > p2_y - 20)
			
				dx = -dx;
				dx += dx / 10;
			
			else
			
				solidcircle(ball_x, ball_y, 10);
				break;
			
		

		// 判断小球遇到上下边界反弹
		if(ball_y < 115)
			dy = -dy;
		else if(ball_y > 364)
			dy = -dy;

		solidcircle(ball_x, ball_y, 10);

		Sleep(20);
	

	settextstyle(30, 0, L"Verdana");
	if(win == 1)
		outtextxy(250, 200, L"Player1 赢");
	else
		outtextxy(250, 200, L"Player2 赢");
	
	_getch();
	closegraph();
	return 0;

大家赶紧去动手试试吧!

此外,我也给大家分享我收集的其他资源,从最零基础开始的教程到C语言C++项目案例,帮助大家在学习C语言的道路上披荆斩棘!

整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)最重要的是你可以在群里面交流提问编程问题哦!

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!(资料领取↓↓↓↓↓↓

 

以上是关于如何自制游戏?的主要内容,如果未能解决你的问题,请参考以下文章

xbox360自制系统怎么更新游戏封面

Java自制人机小游戏——————————剪刀石头布

20170913自制猜数字游戏

自制紧张刺激的滑雪游戏,来一把?

自制贪吃蛇游戏中的几个“大坑”

点击即用自制的一款情侣小游戏