自学编程做游戏(自己编程做游戏需要什么)

http://www.itjxue.com  2023-03-08 09:46  来源:未知  点击次数: 

自学游戏开发需要学多久

半年。开发软件和开发游戏完全是两个不同的方向,就拿开发游戏来说,不同的游戏引擎所使用的编程语言也是有区别的,比如Unity用的是C#。

游戏开发需要学习的专业知识比较多。除了基础的Unity引擎知识,现在的游戏还会涉及一些VR技术等。除此以外,有些游戏公司还会要求游戏开发工程师具备一定的策划能力。

学习的先后顺序:

1、首先是C++语言。

2、只是做windows方面的游戏学习,可以学习下DirectX,这个很方便在windows下做游戏开发。

3、如果想制作跨平台游戏,建议学习下opengl/opengles,这是个很强大很专业的图形接口,因为很多平台支持所以适合跨平台游戏制作使用。

4、想学习 3d 游戏并迅速工作,建议学习 u3d 引擎、ue 引擎这些游戏引擎,有了以上的基础学习这些引擎也可以理解的更深入,u3d 还会用到 c# 与 js 语言。

如何自己编程做游戏?

自己学编程做游戏需要学习、了解以下几样东西:

1、知道自己想做什么类型的游戏,手游、主机、PC,明确后选择游戏引擎。

2、目前市面上主流的引擎是Unity3D、虚幻四,2个引擎的脚本语言不同、游戏类型不同,Unity是C#,偏手游,而虚幻四是C++,偏主机和PC游戏。

3、学习C语言,C++或者C#至少要精通其中一门,熟练掌握基本数据结构、基础的算法、设计模式后,就算新手入门了。

什么是编程:

编程是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。

为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。

编程:设计具备逻辑流动作用的一种“可控体系”【注:编程不一定是针对计算机程序而言的,针对具备逻辑计算力的体系,都可以算编程。】

从零开始学编程做游戏:一个文科生策划的14周

; ? ? ??前言: 刘嘉俊是一名从业不久的游戏策划,他在14周的时间里,从技术小白到能写600行代码。他的方法是,在日常工作之余,每周制作一个小游戏,通过这种方式来锻炼自己对游戏系统设计和开发过程的理解。以下为投稿原文,未经作者许可请勿转载。

我没有计算机背景或美术基础,但乘中国游戏行业大发展,却也幸运入行成为一名游戏策划。我希望在日常工作之余,用一个办法来锻炼自己对游戏系统设计和开发过程的理解。因此,我参加了 Coursera 上的几个课程,并且用课程提供的方便工具来实现设想中的功能。

这个方法我称之为「每周一游」,即每个星期快速开发一个游戏,连续进行数个星期。这是许多开发者们磨练自己想法和技巧的方式。

一开始的成果非常基本、非常简单,但到后面挑战等级逐渐上升,到最后已经能独立完成 600 行左右的程序。

接下来我就给各位看看我在这近四个月中的成果,以及我从中学习和体会到的内容。我尽量省略比较枯燥的实现细节,一来可以避免无聊,二来需要下功夫的东西还是亲手实践比较有帮助。如有兴趣可来我的微博交流。

   第一周:包剪锤蜥史波克(Rock-paper-scissors-lizard-Spock)

Sheldon 喜欢的游戏。

谢耳朵爱玩的游戏,石头剪子布的升级版。内容最最基本,只要在控制台里输入命令,命令通过 if-elif-else 转化成数字(0-4,分别代表出的5个东西)。

电脑则会随机生成一个数字,转换成字符串。再根据双方数字,用 if-else 判断胜负即可。

对我来说这是自己亲手编写的第一个游戏。它虽然简单,但包含了一个游戏必须的全部要素:它有着固定的开始和结束,以及胜负的规则。

第二周:猜数字

猜 数字游戏 就是由电脑随机生成指定范围内的一个数字,由你来猜,电脑告诉你是高还是低,一定次数后未猜中则输掉的游戏。

在这个游戏中第一次引入全局变量的概念。初始化时,上下限以及允许你猜测的次数都是读取全局变量。这样一来,我们可以在游戏核心的方法之外,使用别的方法来修改全局变量,让玩家可以自己选择数字范围和猜测次数。游戏本身则依然是 if-elif-else 这样写成的。

这是我亲手编写的第一个可以由玩家调整游戏设置的游戏。

   第三周:秒表游戏

秒表游戏是个考反应的游戏。点击开始后秒表开始向前走,若你按停秒表时,秒表的时间恰巧停在整数(小数点后为0),则你得1分。游戏会记录你按停的总次数和得分数。

这个游戏中涉及到为每个功能编写单独的方法。如玩家控制的按钮start()、stop()、reset();游戏本身时间前进的tick()等。同时,为了让时间正确地显示在屏幕上,还有一个将时间转化为「A:BC:D」这种形式的方法。

我们计时的方法是定义一个叫 time 的变量。由于这个游戏中最小的计时单位是 0.1 秒,所以每经过 100 毫秒我们就让这个数字 +1。与此同时,编写一个 format() 方法经过一系列计算将这个数字转化为分、秒和0.1秒,显示在屏幕上即可。判断玩家是否得分仍然使用 if-else 结构。

这是第一次涉及到玩家进行的复杂操作,也是第一次认识到,在游戏画面的表象之下究竟应该有些什么机制在运行。

第四周:乒乓(Pong)

终于我们从小朋友玩的游戏进入了街机时代!

传说 Pong 是世界上第一个电子游戏。在那个游戏机只有滚轴操作的年代,这个有着极简单画面的游戏启发了无限后来者。看着它在手下形成还有些小感动呢。

这个游戏也是我制作的第一个不模拟现实中的「逻辑」,而是模拟「物理」的游戏。它的核心部分是球的速度变化、板子的速度变化,以及球与边界和板子的碰撞。

为了让这个游戏不至于无限地进行下去,我让球的速度随着每一次板子碰撞上升。但上升的公式写成了指数函数,于是这球就啪啪啪越打越快每一回合很快就结束了。若改为对数函数,则会缓慢地趋近一个上限,令每一回合后期的双人对局非常紧张、充满变数。

这是我第一次体会到游戏的「手感」到底是怎么回事。每一次对参数的细微调整对手感带来的变化,可以让设计者与游戏本身有着更深刻的接触。这是在目前分工充分的网游公司的日常工作中体会不到的感觉。

除此之外,很快地你就能从一个简单原型中看出未来变化的可能。是否可以加入:

「球击打在板子的不同部位,会弹向不同方向」?

「当板子击球时,板子本身的速度会令球曲线飞出」?

或者「连续击中球数次后玩家可以发出大招」?等等诸如此类。想到这里,这个游戏能成为数十年游戏业的起点,也是有其道理的。

   第五周: 记忆游戏

记忆游戏就是将多对牌打乱顺序朝下放置,玩家一次翻开两张,若相同则原样留着,若不同则翻回去。所有牌都翻开后玩家胜利。

在这个游戏中,暂且用数字来代替扑克牌。我们用了一个 list (我有点搞不太清 list, array, tuple, set 几个词的中文翻译,不乱讲了……)来以 Boolean 值(True 和 False)记录每张牌是否翻开的状态。当设为翻开时,露出数字,否则在相应位置绘制一张牌背。

这个游戏的逻辑方面比较 tricky 的地方就是整个游戏实际上有三种状态,需要分别处理:

新游戏,一张牌都没翻开

翻开了(本回合内)第一张牌,等待翻开第二张

翻开了(本回合内)第二张牌,等待判断是否相同于是我使用一个叫做 state 的变量,分别以 0, 1, 2 代表三种状态。在核心方法中利用 state 的值来决定接下来要做什么。

第六周:21点(Blackjack)

啊,21 点。我人生中接触的第一个 扑克游戏 。是的,在我会打「拖拉机」之前,7岁的我就在DOS下的初代 大航海时代 的酒馆里学会了 21 点。这是年幼的我在那个游戏里玩懂的唯一一个系统……

这是个赌博游戏。简单来说规则是:庄家给自己和玩家各发(deal)一张暗牌、一张明牌,玩家决定是否继续加牌(hit);玩家加牌结束(stand)后庄家自行加牌,接着双方摊牌。拥有最高点数的玩家获胜,其点数必须等于或低于21点。

在编写这个游戏的过程中第一次引入了类(class)概念。因为在游戏中许多物件都会重复出现,使用类可以很方便地重复制造它们:

每一张牌是 Class Card;方法 get_suit() 可以获取它的花色;

方法 get_rank() 可以获取它的数字;

还有一个方法来把它绘制出来。

手牌是 Class Hand;方法 add_card() 可以在手牌中增加一张牌;

方法 get_value() 可以算出手牌的分数。

牌库则是 Class Deck。方法 shuffle() 可以洗牌库;

方法 deal_card() 用来发牌。

规定好这些基础方法以后,重发牌、加牌、摊牌都可以通过这些功能的组合来实现。例如开局就是洗牌库,向双方发牌;双方手牌加上两张发出来的牌。等等。

此外这个游戏还第一次涉及到怎样在画面上绘制固定的图形。整张牌表是一张大图,怎么样根据牌的值定位到对应的牌面也是要好好算一下。

第七周:小行星(Asteroid)

经典 街机游戏 的复刻版!大制作来临了!

这回的游戏涉及的内容比以前多,除了控制小飞船打来打去之外,动画、音效、UI 等也都引入了游戏中。但每一部分的实现都可以通过之前尝试的小功能叠加实现。简单地了解游戏图像和声音到底怎么运作后,并无特别的困难。只是这一次我学着一个模块一个模块渐次开发和测试,一个功能调通无误,再进行下一个。

反而是在游戏设计方面,制作这个游戏的过程给我带来很多思考。在这个游戏中可供调整的变量太多了:飞船需要推进和旋转;但推进是给飞船一个向前的加速度,而飞船本身还会有向着其他方向的速度。宇宙空间中微小的摩擦力、和陨石撞击后受到的力,都要考虑并且编入游戏中。

这时你会发现,同样的一些参数,经过调整会让整个游戏变得彻底不同。这艘飞船到底是笨重、转向慢、射速慢、射程远的战列舰,还是轻盈、转向快、射速快、射程近的战斗机?你要躲闪的是从一个方向袭来的流星群(陨石都从一边来,而且向一个方向阻力特别大),还是四面八方出现的乱石?每一种选择,好像都挺好玩的……

到这时我才了解到一个游戏设计者脑中「指挥意图」清晰的重要性。你到底要做一个什么样的游戏,给玩家带来什么样的情感?只有一个大概的「我要爽」是不够的:究竟是控制巨大战舰缓慢机动将将擦过一块流星的

如何在家自己编程游戏?

您的孩子还没有接触少儿编程吗?少儿编程现已成为全球父母和教育者们关注的焦点, 美国前总统奥巴马呼吁全民学编程,英国将编程教育列入了小学新课纲,在我国也有越来越多的孩子将少儿编程作为课余兴趣的首选。

少儿编程究竟是什么?

少儿编程是通过编程游戏启蒙、可视化图形编程等课程,学习拆分任务、拖拽模块、控制进度,建立编程思维。少儿编程帮助孩子理清思维过程、抽象定义问题,通过收集数据解决问题。

通过课程学习,孩子可以完成动画、游戏的设计制作,当别的孩子还在玩游戏的时候,您的孩子已经可以制作属于自己的游戏了。

为什么要学习少儿编程?

1. 开发智力,提升逻辑思维和创造力

学习编程有助于智力发展,可以培养孩子的逻辑思维和创新思考能力。当孩子们掌握初级的算法之后,他们的自学能力也能大大提高。

2.培养耐心和专注力

严谨而有趣的编程语言, 不仅有益智力,更是最好的注意力训练工具。在学习编程的过程中,培养孩子专注、耐心的习惯,养成良好性格。

3.提高升学竞争力

编程现已陆续进入各省高考考纲,南京教育部门表示将把少儿编程引入小学课堂。少儿编程更是被视为“下一个奥数级别的市场”。学习编程,为孩子的升学留学加码。

4.掌握专业技能,为未来提供更多可能性

AI时代,编程语言是世界70亿人的通用语言,学习编程比学习英语更加重要。越早接触编程,掌握编程技能,就是让孩子拥有更加广阔而光明的事业与人生前景。

少儿编程课程包含哪些内容?

图形编程——创建动画和游戏,与智能软件相结合,完成创造项目。其中包括图形化界面、steam教学、python编程。

代码编程——制作简单有趣的小游戏、开发小网站等。包括基本的游戏化场景、动画教学、exe制作。

算法编程——孩子在接触编程一段时间后,可以尝试学习核心算法、参加NOIP比赛。

孩子应该去哪儿学?

优秀的教育机构,一定具备以下几点要素:

1.儿童专属授课方式,打造真正有兴趣的“兴趣班”

符合儿童认知规律,采用案例式教学,以一个个有趣的游戏为学习单元,让孩子在玩中学、学中玩,真正实现孩子感兴趣的兴趣班。

2.专业的教育团队,最佳的知识讲授

配备专业团队,具有丰富的教学经验的讲师,讲授最新、最实用的技术知识。

3.良好的学习氛围

温馨舒适的环境帮助孩子更好地学习成长。课堂合作学习为孩子创造更多交朋友的机会。

如果您希望让孩子找到真正喜欢的兴趣班,掌握一项有用的技能,请选择诚筑说少儿编程!

如何自己编程做游戏

自己编程做游戏方法如下:

1、基础语言阶段:常用的编程语言有,C,C++,JAVA,其中最广泛被使用的就是C++,C++语言是一切游戏程序的基础,换而言之,一个优秀的游戏程序员,必须非常熟练掌握并应用C++。

2、数据结构:在掌握C++之后,需要进行数据结构的学习,形象的讲,就是那么一大堆数据,如何去有序的排列其结构。通过对数据结构的学习,便能够开始阅读他人编写的代码,尝试开发简单的程序,可以实现一些编程者自己的构想,是每个程序员必须掌握的技巧。

3、“库”的学习及应用:最常用的有MFC(微软公司类库),GUI(图形界面库),当然“库”的知识及功能非常庞大,通常来说,熟练掌握一部分经常涉及的知识即可。4、游戏程序对于硬件的操纵。比如,内存,CPU,显卡,这将会涉及到一些数学知识,比如立体几何,线性代数等,但是也不用惊慌,并不是非常困难。通过对硬件的熟练操纵,才能将游戏的画面,流畅度等等充分给予表达。

5、对于相关知识的学习。包括物理,脚本,美术等等。不需要深入了解,但相关知识的丰富对于将来做游戏程序会有直接帮助。

6、对于游戏引擎的熟悉及使用。游戏引擎一般包括渲染器,内存管理器,组织管理几部分。对游戏的画面做出渲染,高效使用内存以及如何控制动画播放等功能。熟悉引擎的使用,也将对于游戏程序员有直观的帮助。

(责任编辑:IT教学网)

更多

推荐思科认证文章