编程学习成本低是说笑话呢,Unity学习曲线也太陡了(3)

Tips:点击图片进入下一页



我打算做的是这样一个游戏
thread-1549012-1-1.html
thread-1551967-1-1.html


游戏(开头部分)的逻辑是这样,



我第一版游戏开头,纯C#做



第二版游戏开头,C#和winform做



第三版游戏开头,Unity和C#做,浪费了大量时间,也算有进步,能从其他文件读取数据了,之前两版没做到,但这也随之而来产生了大量问题



在学习之后,我认为我的目标算是类似galgame系统和rpg系统的综合,
上一个贴中大家给出了各种宝贵意见后我总算是下定决心不考虑那么多了,就用Unity做游戏吧,新手各种懵圈,看教程各种“诶,怎么一下就跳到这里了,怎么就能work了,怎么做到的,没看懂”,


或者是“教程太浅了”,我本以为我的需求很简单就能实现了,自己一做发现原来那么难实现。一步一步来吧。


比如说具体到用Unity做游戏,现在还没处理好的非常头大这一步,


遇到三个陌生人
|
请求交朋友
|
可能成功交到朋友,可能不成功
|
成功的话要把朋友加入朋友列表(功能上类似RPG游戏把XX加入背包)


希望呈现在游戏里是:



进行到这一步的时候,生成三个文本框
|
随机生成三个陌生人
|
自动把三人的数据分别显示在三个框
|
这三个框不仅是显示文本,应该都是能按的按钮,按下等于请求交朋友
|
如果成功,要把该朋友的数据写入朋友列表,列表本身也得做UI,可以打开查看有哪些朋友




总之我发现,即便我放弃一切游戏美术,也没法放弃做UI,而学做UI,也超级花时间精力的,而且这也是游戏“编程”的一部分。


Unity的学习曲线也是非常陡,而且学编程的“成本”真是十分高


其实不能边吃饭或边做家务边学编程,因为要两只手都操作电脑;


不能在公交地铁上,或开车时学习编程,因为不能只听音频,而不着手练习;


必须有一段较长的不受到打扰的时间,进行高强度的思考,大脑并不能同时多线程做其他事。


所以说学编程成本低那真是说笑话哪。


如果大家有经验如何减少花在做UI上的时间请教教我!没有也没问题,把我的游戏编程学习过程放在这供大家一乐。



网友评论:
知乎:如何评价培训班3个月就能培训出一个合格的程序员。
不建议用unity,你这种纯逻辑的应该用动态脚本写,上 RPG Maker 或者 Python 吧
如果纯2D,用COCOS吧……虽然我觉得跟UNITY比也没简单到哪里去……
unity学习成本低(与更复杂的其他引擎相比)。

不妨拿RPG制作大师之类先做个原型。

----发送自 App for Android.
unity的优点是可以最快速的做出一款商业游戏,很多传统上程序员大拿做的事unity已经帮你搞好了
又是楼主你!其实我觉得你只是需要了解更多计算机科学方方面面的知识,非科班学编程没有系统,就算再简单的教程也会充满不理解的地方。具体到你这个问题,你可以去unity商店找到免费的UI素材,也有可视化UI动画框架,当然付费的要精美些。国内的素材站也能找到UI素材,有些开发者社区也提供免费的美术,音乐,音效等素材。
我女友在看我用python抢披萨成功后开始向我学,一个月后在我的帮助下都可以抢火车票了,没多难啊

有人指导比没人指导是两种学习体验。
做galgame的话为什么不试试神奇的renpy呢?

  -
这逻辑python就能搞定吧
如果你想单纯先玩算法请打断点。你这样的ui一开始没啥意义。又费劲
没有任何游戏开发经验,才学半年左右。说啥学习曲线陡峭。你是没用过cocos2dx,安装需要手动配置各种东西、看上去更恶心的c++代码。创建项目要用命令行,并且根本没有可视化编辑器,编译运行一次能泡杯茶。如果你是通过源码创建的项目你还可以得到一个3、4g大的项目文件夹。
当然我说的都是当年的情况,现在有cocoscreator,不过我已转投unity。
我头半年也就是只能照着教程做的程度,还必须是手把手式的每一步代码都给出来才行,学了1年才可以只看算法和思路,自己写代码,中途从cocos转的unity。1年半时就可以自己瞎写了,偶尔会查查别人写类似的东西的思路,看看有没有什么简洁的写法。
unity从官网上下载安装了就能启动,创建了脚本就能写代码,点个运行就能看的效果。网上手把手的视频一片一片的,入门类的出版书籍也一大把。这还不叫成本低。
大哥你知道一对一家教多贵吗?

  -
首先恭喜楼主,选择unity,一些jiuq
首先恭喜楼主,选择unity,一切就已经简单了大半了。学习编程是一项长期的任务(参考用两万个小时精通++)。编程中有很多麻烦事都是在处理Ui,不考虑ui的话一切都会简单很多,这里给出一个游戏ui的最佳实践。不要考虑什么事件驱动,把你的游戏描述为一个个独立的状态,给定状态x,你的游戏正确显示就是ok


unity已经是商业引擎里最简单的了,cocos2d配置环境就能玩死人。

顺便ui这种东西,游戏ui的本质只是图片和文字动态显示,甚至都不需要学习各种binding,不需要学习多线程。我接触过很多小型独立游戏的日本开发者,他们很多人都是按最简单的静态ui来做的,没有高超的软件开发技巧,甚至连状态机都不用,但是游戏本身很好玩。

那么,你只需要知道最基础的c#消息系统就可以动态更新图片和文字了,其他的unity已经有很多内置轮子了。你不愿意用delegate甚至还有action和sendmessage,甚至还有update下实时监听,更新ui的方式一万种。

我觉得,并不是unity学习曲线太陡,而且楼主你对编程理解太偏了,把简单的东西想的很复杂。

针对主楼的栗子,比如说,你要怎么生成三个按钮,你可以做三个静态按钮放在一个panel下,隐藏这个panel或者存到prefab,先这一个单例模式来读剧本并且保存当前的阅读状态和包裹状态,然后在你读剧本的主系统上写一个状态机,比如有两个状态,read和wait,读剧本时是read,弹出选项,让状态机切到wait挂起。然后激活预先设计的prefab,把文字动态赋值。
等用户按下按钮,状态机切回read继续读。

在朋友按钮的部分,你需要做一个基础的prefab当做容器,如果有三个朋友,就复制三个容器,每一个按钮写一个onclick.addlistener,然后把action消息传进去,按下按钮就会动态执行你传入的action事件。好友列表写一个list,写一个追加一个删除就行了。button和list的子项目位置,unity会有自动排列ui原件的组件,连自己编程都不用。

如果你想学习各种常见软件开发设计模式开发的思路,有兴趣想当个独立游戏开发程序员,我建议去看那本 《游戏编程模式》。

如果你对这种基础架构的东西完全不感兴趣,只想设计游戏玩法,我建议你去用rpgmaker,放弃学习c#和unity。


—— 来自 OnePlus ONEPLUS A5010, Android 8.0.0上的 v1.3.2.2
你非要用unity当然陡,galgame\游戏我用浏览器自带的canvas写,简单快捷。

不懂求教,现在c++写游戏不是都抽出接口用高级语言写业务了吗,用python、lua或者干脆自己造个语言,运行的时候直接从xx.lua里读业务代码,完全不用编译。
感觉一开始用c#和unity是不是太陡了……
感觉楼主很多计算机基础好像很薄弱的样子,其实你可以不用c#的,你现在最了解的编程语言是python的话,那你就用python写个纯命令行的也行。

如果想练习oop的话,可以找点书学习下,或者写点其他程序也行。
这种界面和内容用HTML就够了,根本用不到UNITY
兄弟,unity学习难度低指的是对已经学过其他编程语言的人来说的,
像你从来没学过编程,那当然有难度,
另外,unity的优势是有大堆插件,像做ui用ngui,
做galgame也有专用的插件
连格子都对不齐的人,根本就不适合做编程。
用html和js应该都能完成这些工作了吧?
*能从其他文件读取数据了*....文件操作太基础了吧?
感谢大家替我着想让我换引擎换语言的,之前我几个帖子里也是众说纷纭;到这一步我不想再换了,就用这个项目锻炼C#和Unity了,其实我就是上来抱怨一下难学,不会放弃学习的,我的过往低水平胡乱学编程帖子合集:
thread-1478084-1-1.html
thread-1549012-1-1.html
thread-1551967-1-1.html
thread-1559981-1-1.html
我的建议是,用不到unity的物理引擎就不要用unity了,给自己找罪受
我LD38的时候发现了这个问题,之后就自己从零写起了

我假定你这么说的意思是“学3个月并不够学会如何用Unity制作游戏”
想清楚你是想要做游戏还是想要学习游戏引擎的使用技术吧。如果你只是想要做游戏,那你就改用简单的工具,如果你是想要学技术找工作,那就报个班。
3个月只能当测试帮忙debug打下手,独立架构整个系统从零开始得3年经验起

— from Google Pixel 2, Android 8.1.0 of Next Goose v1.3.2.1-fix-play
三个月也分已经有了丰富开发经验,通过第一手优质资料高效学了三个月。和几乎零基础,在培训班学了三个月
哈哈哈,用lua写逻辑。如果不是为了热更新,有毛病才用哭啊写逻辑。复杂逻辑的调试效率比编译型语言慢两个数量级

  -
lz,我真心劝你先去找本计算机二级的编程题或者leetcode练一下,和unity不冲突,否则就会出现你如今的情况,比如不知道状态机,不知道怎么存数据……
為什麼帖子裡沒有任何一個人提到Unreal引擎……
建议lz先把unity官方教程里的那些2d游戏照着做一遍
然后找一些市面上简单的2d游戏自己分析自己实现一下
再然后再考虑自己实现设计吧
开个公司雇人做啊自己只要设计就行了 实现交给手下
做游戏这么麻烦的事情怎么能事无巨细全部亲力亲为
编程和做游戏是两个完全不相同的事情

  -


书上说的。
而且前面那位大佬说编译一遍要一两个小时,大佬你又说c++调试效率比这样搞快两个数量级,感觉有点自相矛盾。
用unity没问题 你现在抱怨的东西毫无意义
你觉得unity学习曲线陡 是因为一点基础都没有 看啥都不懂
你要爬上500米的山 自然要克服重力做500mg的功 这和你选哪条路上山无关
别人爬的轻松不是因为他选的路线比你好 而是因为他已经在半山腰上了

1.论联合编译的重要性
2.每次都要重编整个工程的话就要好好审视一下你的代码书写方式了
楼主的基础有点差是真的,加上没经验就这样了

unreal不是更难吗

大概我用慣了,覺得Unreal用起來很舒服啊。

用虚幻引擎开发galgame也挺难的

不明白這有何難啊……很簡單的啊。只是大材小用罷了。

是很简单,但是并没有人真的会去用虚幻开发avg

用脚本写逻辑最重要的就是热更新,虽然lz用不到。
然后就是开发效率高,程序员每天都要工资好么。至于调试效率,你真想的话断点调试都可以的。你真有复杂逻辑,也都是写在引擎里面然后导出给脚本业务逻辑的。

这年头不用脚本的游戏很难受的,当然部分原因是现在全是网游
lz有毅力坚持到现在很厉害了。
不过之前就说了,lz是基础太差。unity是帮你暗地里做了很多事了,所以lz才会疑惑“为什么跳到这里来了”,连引擎帮你做了什么都一团懵的。
最起码一点,熟悉一下设计模式,unity是组件模式的,了解一下应该有点帮助。或者你别管怎么生效的,照着demo做就是了。我记得不会写代码的美术,都用unity做过游戏的。

另外一点,虽然是用c#,但学习unity和学习c#其实有点差距的
你这界面用uwp都行。。先把基础搞扎实吧,别连走都不会就想跑
UI是Unity的超弱项,便利性不如WinForm,觉得难是正常的。

  -


UI太弱,蓝图对程序员不友好,楼主要是真用了可能会跳起来,像魔法一样。

而且就语法糖来说,魔改版c++并没有c#有优势

—— 来自 OnePlus ONEPLUS A5010, Android 8.0.0上的 v1.3.2.2
超级同意。
如果不是为了热更新,谁愿意用Lua呀,不管是语法还是性能还是IDE支持,C#都甩Lua几条街。

  -
对楼主的需求来说,虚幻更不称手啊。

  -

你看,反正樓主也不是程序員啊,反而藍圖能更容易上手呢


楼主不想做ui就找个ui少的游戏类型,想先避开物理引擎的话就赛车开飞机,熟悉之后再试试射击/rpg,楼上提过的unity官方教程项目里有不少合适的。但教程一般只有代码怎么写没有为什么这么写,所以单独提升下编程基础还是挺重要的

  -
你这个,我记得当初我学美术的时候,程序班的两位学了一年搞了一星期还没搞定一个小球弹跳的小游戏
其实学会游戏引擎用法本身对于编程0基础的人来说并不是容易的事。
所谓的unity学习成本低是相对于游戏引擎甚至底层API的说法,对于完全没有编程基础的人叫他从openGl,Directx开始那根本是不可能的。

如果你的目的是制作一个并不复杂的游戏(avg,rpg之类),那并没有用游戏引擎的必要,用RPG Maker应该更快。
对编程和游戏制作有一定了解的人从Unity开始做游戏才比较快。
我也在学Directx独立制作游戏,一个人做游戏确实是非常累的,LZ一起加油吧。

谢谢记得我,谢谢对我的水平的判断和建议,谢谢理解我目前充满不懂的状况。希望我之后能上来报告说我又有进步了,能对得起大家给我提建议。

谢谢理解我目前没人指导的困难,困难那也没办法,总会慢慢克服的。

感觉我要实现的目的比galgame复杂太多,用galgame的模式不太对,我想是我没说清楚。

谢谢,我对“我头半年也就是只能照着教程做的程度,还必须是手把手式的每一步代码都给出来才行,学了1年才可以只看算法和思路,自己写代码,中途从cocos转的unity。1年半时就可以自己瞎写了,偶尔会查查别人写类似的东西的思路,看看有没有什么简洁的写法”这些说话有很深的感受。

目前的确处于“教程说什么就必须照抄什么”的阶段,甚至文件名、variable name也得一字不差的抄,否则接下来的步骤就不知道哪里会冒出些问题,回头去找问题的时候就~!@#¥&

所以对你清楚表达这个时间表也非常感谢,我也能以“学1年”“学1年半”的时候大概应该要达到什么目标心里有准备。

唉......

谢谢提出明确的指导和建议!

谢谢!我的确根据你这么清晰的描述而写了不少行,然后又自己卡住了,应该我还是要学些前置知识点再回来

有这样详细的回复让我感觉非常温暖人心

希望我之后能回来报告说我根据建议有了具体的进步,不辜负大家打那么多字帮助我

ngui感觉还在一头雾水地学习中

我没说清楚,我还没做到这一步,这是我截图后,在系统自带的画图程序里,画了三个框进去,为了贴在帖子里让大家知道我到底在说啥;之后做到这一步会小心的

专门百度了LD38是什么

好,有心理准备了

没有培训班...


看完你的建议,以及帖子里其他人的建议,过去这几天就是这样的学习方向

怪我标题党,看完大家的建议,不会真抱怨

谢谢建议,可能先要“不管如何照着DEMO做”一段时间
楼主的问题是程序本身的基础太差,跟我的一个3d美术出身想转技术美术的朋友一样。
你最初的几个程序都是简单的控制台,但从unity开始你想用GUI来显示内容,一下子接触了很多很多东西。

确实,游戏开发本来就有很多东西要干,不仅仅是在控制台输出东西。缺乏一般基础而教程又默认你该懂这些东西的时候,你自然会觉得难了。
你会困惑于如何找到某个对象,如何访问预设,等等一系列问题。

对于这种情况……没什么好办法,你需要从文件系统开始去理解计算机这个事情,去慢慢弄清楚unity隐藏了或是默默为你做好了哪些事情。
这需要相当一段时间,也许是几个月,也许是一年。

也许你可以考虑看一下如何从头建立一个游戏运行主循环的文章。
当年没有游戏引擎的时候,所有游戏开发的书都是从这儿开始讲的。你不需要照着做一个,但可以考虑看看这些来学习一下思想。
你可以尝试搜搜windows游戏编程之类的关键字。

谢谢!教程一般只有代码怎么写没有为什么这么写,目前虽然就是面对这样比较困难的环境,还是想着“读书百遍其义自见”,应该还是能学会吧
想做游戏用gamemaker吧

谢谢你理解我目前的低水平,会坚持下去的

非常感谢,对我很有启发,这些话当中我现在不懂的东西,希望我之后能上来说我又懂了一些
不明白为什么楼主抗拒学算法与数据结构,按说你也学编程这么久了,这些早就要补上才对。

如果你有C++基础,可以看这个清华大学的版本
http://www.bilibili.com/video/**61746/这个是B站搬运,我也在看这个
当然最好去也可以去原网站http://www.xuetangx.com/courses/ ... X+30240184+sp/about
包含课程和习题,如果你付费还会给你一个象征意义的证书

虽然加起来很多但是每节课都只有不到10分钟,讲的也非常细致,还看不懂也能反复看,适合碎片时间

这网站能找到一切计算机专业本科生会学到的东西,你嫌自己没受过本科教育靠这网站就能补回来

主要是没经验导致没有思路,进而导致不知道查询什么关键字来学习相关知识。

建议你简化问题到如何在unity里面画三个大按钮出来,上面显示一些简单格式的文本。

可以先预设几个人物信息,暂时不要考虑随机生成和点击之后怎么办的问题。

把问题一步步分解是学编程的必要技能,楼主还是多适应吧。

谢谢,应该是看过我之前的帖子吧,希望我之后能回来报告我有进步了

谢谢!一直在思考如何把我最后想做到的东西分解成一步步来进行从简单到复杂的学习和制作。

谢谢建议。
算上调试,总的开发效率脚本型语言确实低,因为出错不好查。编码一时爽,调试火葬场。我有深刻体会。

  -
别学ugui了。推荐你用fairygui,这个对非程序员最简单

  -
打错字了,ngui别学了,ugui你想学可以,不过最好还是fairygui

  -

虽然全都不懂是什么,但是先谢谢了
做文字类型的游戏可以试着用下unity的插件Fungus 。b站有教程
http://www.bilibili.com/video/av11915175

谢谢推荐!不完全是文字游戏,可能是我想要的太多了,现在在考虑分解为更简单完成的一个个任务


Unity3d面向Asset Store/Github/油管 编程
如果是为了做gal游戏,可以使用下面两个插件:Fungus
Vinoma
不知为啥加不了链接,一直非法,到AssetStore搜下就可以了。







你好,请问fairygui用着怎么样