» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

indie developer用哪个引擎好?更新:MVP制作完成!1080P画面秒杀Wii U!

引用:
原帖由 karsus 于 2014-3-23 23:42 发表

所以说你纯打嘴炮,c#和c++开发和调试速度能一样吗?编译就差了数量级去了,谁用谁知道,当然,mono是狗屎,不过vs想用好也不容易。
unity那玩意,我这几个月随便用用基本上都能进行操作,ue的编辑器嘛,我只问你 ...
讨论就好好说话,口气大上天也就C#编译速度快这么一个论据,整篇帖子就你嘴臭还说别人嘴炮。

对于新人Unity Editor不用学吗?再加上Unity editor就一残废,需要搞一堆Asset与Extension,是不是学习成本?C#本身是不是学习成本?
我前面就说了,如果是搞Flappy bird这样的东西,Unity、UE、CE都不适合。谁第一眼看到这三个选择都会判断是希望做个有点画面追求的3D游戏,那我倾向于选UE4有什么问题?


TOP

posted by wap, platform: BlackBerry (Z10)
引用:
原帖由 @FXCarl  于 2014-3-24 01:11 发表
按照现在这个阶段来问引擎的话,可以先自问几个问题

1 我要做的游戏是什么
2 3D 对游戏有什么用
3 我打算什么时候做出来

答案摸底是这样的

第一个问题,一般很多时候动手时都能说个一二。我要做个 XXX 的玩意,这个我们就不解说了
第二个问题,如果你想说的是我希望游戏看起来好看,或者说我希望画面牛逼 …… 那你搞错了,拼画面的事情委实轮不到 indie 来干,除非你自己是艺术家
第三个问题,这个问题意味着你是要成果还是享受过程,享受过程不在意结果,那用多复杂的工具都没所谓,享受结果 …… 那只能用会用的,没有会用的要算学习成本

最后的悲剧结果一般是这样的,最后滚回去修改问题1的答案 …… indie 就是这样子的
成功的 indie 作品大多数是垃圾堆砌起来的一个偶然作品 …… 那些成功了得牛逼了的 indie 很多根本就是有行业背景的正规军出来搞小分队
很多多年 indie 之后逐步获得了成功的 indie 其实去行业里也是挑公司的节奏

所以LZ,其实你现在先摸个容易弄到的引擎先研究起来 …… 譬如 Unity,之后呢,慢慢一边实践一边修改自己的创意。会有成果的。
有人说你为啥推荐 Unity …… 我想说我其实更想推荐 Cocos 2DX 但肯定会被 LZ 鄙视不够高大上
主要是个人爱好,我在微软做full time ba,做3d游戏不为赚钱,也不会收钱。



TOP

引用:
原帖由 yilaguan2k2 于 2014-3-24 01:16 发表

讨论就好好说话,口气大上天也就C#编译速度快这么一个论据,整篇帖子就你嘴臭还说别人嘴炮。

对于新人Unity Editor不用学吗?再加上Unity editor就一残废,需要搞一堆Asset与Extension,是不是学习成本?C#本身 ...
说的好,赞 ~

虽然技术角度来说,是管道越死的引擎越容易出效果 …… 但是我觉得这些引擎都是坑死美术不偿命的类型 …… Unreal 的可视化材质编辑器也就稍微好那么一点点

咱不能眼睁睁的看着楼主往坑里跳啊 …… 伸手拉一把吧 …… 没海量美术还是赶紧好好回头想想自己的初心吧


TOP

引用:
原帖由 FXCarl 于 2014-3-24 01:20 发表


说的好,赞 ~

虽然技术角度来说,是管道越死的引擎越容易出效果 …… 但是我觉得这些引擎都是坑死美术不偿命的类型 …… Unreal 的可视化材质编辑器也就稍微好那么一点点

咱不能眼睁睁的看着楼主往坑里跳啊 ...
是呀,要早知道就一人单干,就不回这帖子了。
少于4人团队这三个都别搞,还是cocos2D得了,光是3D的美术流程和关卡编辑器一个人半年都搞不定。

unreal的Material editor确实是重要卖点,而且一直是UE美术流程的核心。去年试了一下Unity那个卖80刀的shader forge,瞬间就觉得现在UE4才19刀性价比无敌了。另外请关注一下这几天UE4的开放新策略,已经几乎没有门槛了。

[ 本帖最后由 yilaguan2k2 于 2014-3-24 01:36 编辑 ]

TOP

posted by wap, platform: BlackBerry (Z10)

我去看看cocos2d先。

TOP

posted by wap, platform: BlackBerry (Z10)
引用:
原帖由 @yilaguan2k2  于 2014-3-24 01:30 发表
是呀,要早知道就一人单干,就不回这帖子了。
少于4人团队这三个都别搞,还是cocos2D得了,光是3D的美术流程和关卡编辑器一个人半年都搞不定。

unreal的Material editor确实是重要卖点,而且一直是UE美术流程的核心。去年试了一下Unity那个卖80刀的shader forge,瞬间就觉得现在UE4才19刀性价比无敌了。另外请关注一下这几天UE4的开放新策略,已经几乎没有门槛了。

我如果用自带素材,一个场景外加几个敌人的游戏,用ue4,unity都需要多少时间。因为不卖钱,所以素质不用太高。

TOP

posted by wap, platform: iPhone
引用:
原帖由 @yilaguan2k2  于 2014-3-24 01:30 发表
是呀,要早知道就一人单干,就不回这帖子了。
少于4人团队这三个都别搞,还是cocos2D得了,光是3D的美术流程和关卡编辑器一个人半年都搞不定。

unreal的Material editor确实是重要卖点,而且一直是UE美术流程的核心。去年试了一下Unity那个卖80刀的shader forge,瞬间就觉得现在UE4才19刀性价比无敌了。另外请关注一下这几天UE4的开放新策略,已经几乎没有门槛了。

Ue4新策略是什么?有链接吗?

TOP

引用:
原帖由 业内消息 于 2014-3-24 01:19 发表
posted by wap, platform: BlackBerry (Z10)

主要是个人爱好,我在微软做full time ba,做3d游戏不为赚钱,也不会收钱。
那我真心实意的给LZ推荐一条不坑的路 …… 你看加分的人就知道可定是在努力帮你。看到好的一定给分了啊

3D 游戏其实有两种设计流派。我们姑且把它分为中西 …… 因为你主要看到的就是这两类。

中式游戏重内核,轻表现 —— 说实在我很多时候认为这和计算机教育有关系,很多程序相关的课程设计都是从实现一个数据管理模块开始的(不跑题了)。这个所谓的轻重,已经形成了行业特性,你在将来咨询别人的时候,特别是深入到行业,会听到一些有意思的名词。这里趁早给你解惑一下。国内的策划经常挂在嘴上和策划沟通的词儿是“数据结构”,譬如玩家属性结构,任务数据结构等等。这种数据至上的表现从本质上代理着一种观点 —— 游戏本身是一个数值系统,画面是它的表现形式。所以国内也常常会说这游戏有没有必要 3D 之类的讨论。

这种内核本质上是两样东西,一个玩家的数据集,一堆数据集的操作器,以及一堆约束器。譬如从国内的思考的方式,打怪这件事情是 [数据]/玩家/ 以 [修改器]/每秒5米的速度向怪物的方向移动/ 当 [约束器]/距离小于1米/ 时 [修改器] /攻击/ …… 接下来就是根据武器,攻击方式,敌人什么的一项一项分析下去。这个思路里是有很强的主次关系,目的性的。

你如果选择这样的游戏,其实引擎可以延迟决策。因为实际上你的内核做完了才会出来驱动外面的表现。而且对工具的依赖不多。UE 这样的工具反而不是很适合你,Unity 这种灵活的结构会比较让你开心。当然你资源不多的时候直接用 XNA 的接口在画面上画点东西也没什么困难。国内很多公司用 Unity 也是按照上面的思路用,在场景里有个硕大的单件类 ……

而西式游戏,以最近 @miloyip 翻译的书《游戏引擎架构》中为代表,是现有表现定义,后有游戏内核的。看起来好像不能接受,但却是现在很多 3D 引擎的一个基本入门敲门砖。这种架构有一个基本假设 “在 3D 空间里玩耍本身就是很好玩的事情”。 因此这些 3D 引擎一开始 “毫无游戏性”,它们解决的第一个问题是 3D 空间的描述问题 —— 如何记录,如何编辑,如何渲染,如何声响,如何播放动画,如何渲染画面特效,etc。然后接下来,游戏性寄托于这些基础的表现之上 ……

同以打怪为例,到了西式思维力就变成了“一个摄影机追踪着的”“移动受到玩家控制的”“活动3D物件” 移动了 “位置”,“活动3D物件”“对周围半径一米实施了碰撞检测”“碰到了另外一个活动物件”。然后这两个 “活动3D物件” 各自开始‘琢磨’。发起碰撞检测的扣除了自己的“体力”属性(注意,体力是这个特殊活动3D物件的扩展属性),被碰撞的物体发觉撞到了一个东西,扣除了自己的“生命值”属性。这里面有种莫名的民主 …… 玩家和NPC没有主次,只有属性数量之别,对3D世界世界的响应不同。

很多技术人员会说,这其实一个是从设计角度一个是从技术角度说的嘛 …… 非也。现在的引擎大多有了内容制作工具,北美的游戏设计师(“策划”)们提出这样的工具需求必然是其设计出发点的差异导致的。就像国内的策划从来都是画个平面图,然后写文档,然后和程序商量着去哪里填数据表 —— 国内的游戏设计师还不知道如何创造一个游戏世界的时候就被行业的制作流程给弓虽女干了。以至于多年之后还在一边和美术和程序吵架说游戏看起来不是自己想要的感觉,一边又无奈的接受现实。除了位子坐的更高可以骂人骂的更理直气壮了之外毫无本质区别。此外这也是很多国外引擎到了国内来被反映没什么实际用途的主要原因之一。思路不同,拿来有个屁用 …… 只能使用一点交集。

说了这么多,回到开头。

实际上西方来的游戏引擎,基本上都是以后一种思路为出发点的。所以如果想玩好 3D 引擎做 3D 游戏,掌握一门 3D 制作工具基本上是必须的。这是我给楼主的真心建议,推荐你系统的玩弄一下 3DSMax ,特别是 2015 版开始引入场景层级结构视图之后。因为 Max 也是一个 3D 空间思维的软件。你在其中新建一个物件,然后给它塑性,然后安排动画,最后把它渲染。除了不能和你实时交互之外,真的和做 3D 游戏区别不大。你不需要做的像个 CG 艺术家 …… 哪怕是一堆弹跳的小球也是一个很有意义的过程。逛逛书店会发觉这种贯穿设计、建模、动画、灯光、材质、渲染、剪辑 的书和资料都比较难找,但这恰恰就是游戏设计师要理解的“全栈”。

当这些都没有问题之后,需要什么样的引擎来帮你实现什么样的游戏,心里也就有底了。这时候来讨论,问题也会问的不一样的。因为真的“懂3D”了

国外是不是就没有重数值抽象的游戏类型呢 ? 那显然不是的,文明有战略视图,模拟城市有独立的模拟引擎“Glass Box”。它们也是类似上面中式游戏设计思路来制作的。甚至还有“Fritz” 这种把画面渲染当插件用的结构呢 !

如果 LZ 真的是想做个 3D 游戏娱乐一下身心,扩充一下业余生活。可以从快速的玩一款 3D 制作软件开始。而如果还是不能理解怎么才是 用“3D”引擎 做游戏的话,那不如先就做做游戏内核,然后做好了内核之后再来研究怎么表现合适。也许也能找个“靠谱程序员”帮你把图形的部分做了。亦或者有人对你有兴趣拉你创业了。

[ 本帖最后由 FXCarl 于 2014-3-24 02:20 编辑 ]
本帖最近评分记录
  • snake850707 激骚 +6 精品文章 2014-3-25 09:15
  • ruu 激骚 +5 原创内容 2014-3-24 13:01
  • 业内消息 激骚 +1 最骚 Rated by wap 2014-3-24 04:46

TOP

posted by wap, platform: BlackBerry (Z10)
引用:
原帖由 @FXCarl  于 2014-3-24 02:09 发表
那我真心实意的给LZ推荐一条不坑的路 …… 你看加分的人就知道可定是在努力帮你。看到好的一定给分了啊

3D 游戏其实有两种设计流派。我们姑且把它分为中西 …… 因为你主要看到的就是这两类。

中式游戏重内核,轻表现 —— 说实在我很多时候认为这和计算机教育有关系,很多程序相关的课程设计都是从实现一个数据管理模块开始的(不跑题了)。这个所谓的轻重,已经形成了行业特性,你在将来咨询别人的时候,特别是深入到行业,会听到一些有意思的名词。这里趁早给你解惑一下。国内的策划经常挂在嘴上和策划沟通的词儿是“数据结构”,譬如玩家属性结构,任务数据结构等等。这种数据至上的表现从本质上代理着一种观点 —— 游戏本身是一个数值系统,画面是它的表现形式。所以国内也常常会说这游戏有没有必要 3D 之类的讨论。

这种内核本质上是两样东西,一个玩家的数据集,一堆数据集的操作器,以及一堆约束器。譬如从国内的思考的方式,打怪这件事情是  
我只要能做出一个场景几个npc的fps就行了。

TOP

其实各个引擎都各有优劣,我看来区别不大,关键是你想做到什么样的效果。所谓对症下药
楼主目前是属于入门阶段,建议随便找个引擎学3个月,觉得不行再换。
如果想做出高大上的效果那必须得是每个模块都有专业人士负责才能搞定。所以花时间找个合适的合伙人比自己去学要有效率很多
所谓用什么引擎根本不需要纠结,都是会什么就用什么。除非你unreal,ce,Unity3个都会,而且很精通,可能会小纠结一下。当然这种情况也不可能出现。
我们现在2个人用unreal也做得挺好。一个负责美术,一个负责程序,当然我们选unreal的前提是我们都有好几年的unreal使用经验。
如果我们是好几年的Unity那我们就也就用它了
所以还是那句话,会什么就用什么。先学一个再说。
本帖最近评分记录
  • 业内消息 激骚 +1 最骚 Rated by wap 2014-3-24 05:33

TOP

posted by wap, platform: BlackBerry (Z10)
引用:
原帖由 @M9M8M7M6M5  于 2014-3-24 05:23 发表
其实各个引擎都各有优劣,我看来区别不大,关键是你想做到什么样的效果。所谓对症下药
楼主目前是属于入门阶段,建议随便找个引擎学3个月,觉得不行再换。
如果想做出高大上的效果那必须得是每个模块都有专业人士负责才能搞定。所以花时间找个合适的合伙人比自己去学要有效率很多
所谓用什么引擎根本不需要纠结,都是会什么就用什么。除非你unreal,ce,Unity3个都会,而且很精通,可能会小纠结一下。当然这种情况也不可能出现。
我们现在2个人用unreal也做得挺好。一个负责美术,一个负责程序,当然我们选unreal的前提是我们都有好几年的unreal使用经验。
如果我们是好几年的Unity那我们就也就用它了
所以还是那句话,会什么就用什么。先学一个再说。
多谢建议,那我还是先试试ue4吧。

TOP

引用:
原帖由 业内消息 于 2014-3-24 04:22 发表
posted by wap, platform: BlackBerry (Z10)

我只要能做出一个场景几个npc的fps就行了。
本来不想说的。不过看了总结了你的特点:
1.会写程序,移动平台接触过
2.只有1个人
3.游戏是个简单的3D FPS
4.对3D没概念
5.对各类主流游戏框架或引擎没有经验

简单给你个简易:
用Unity。

我不说高大上的内容,只说几个原因:
1.你要做fps,不可能去2D fps吧,所以Cocos2d-x暂时可以不用考虑了,新的3.0有有限的3D支持,但是工具链跟不上,会导致你浪费太多时间在非游戏核心设计上。所以就剩下Unity3D和UE了。
2.文档、示例。Unity3D和UE4秒Cocos2d-x几百条街没问题。
3.易学性以及开发者生态圈。这个目前Unity3D最优。众多平台扩展和Assets Store,UE在Mobile平台晚了一步造成了巨大差距。
4.集成开发环境的学习曲线。Unity上手会非常快,UE无法做到,UE更倾向于团队内有清晰分工并有所专长,而非Indie。
5.价格。这个可能没有关系但是对于Indie项目来说,我倒是更简易能买断的Licence Model而非分成式。

LZ可以以做一个简单FPS为目标,学习一下3D的FPS gameplay该怎样做,3D的游戏项目在知识结构上自己有哪些方面需要补充。这些对于以后使用其他引擎来说都可以算一个准备工作。而Unity3D的好处是,你在用它做准备工作的时候,不会发现有太多的连带的周边坑需要填。可以让你更容易专注在"你"的项目中。半年后等UE4基本稳定,可以再根据其发展状况和市场上的Indie美术人员的知识结构决定是否换开发工具。
本帖最近评分记录
  • 业内消息 激骚 +1 最骚 Rated by wap 2014-3-24 06:04

TOP

posted by wap, platform: BlackBerry (Z10)
引用:
原帖由 @SONIC3D  于 2014-3-24 05:55 发表
本来不想说的。不过看了总结了你的特点:
1.会写程序,移动平台接触过
2.只有1个人
3.游戏是个简单的3D FPS
4.对3D没概念
5.对各类主流游戏框架或引擎没有经验

简单给你个简易:
用Unity。

我不说高大上的内容,只说几个原因:
1.你要做fps,不可能去2D fps吧,所以Cocos2dx暂时可以不用考虑了,新的3.0有有限的3D支持,但是工具链跟不上,会导致你浪费太多时间在非游戏核心设计上。所以就剩下Unity3D和UE了。
2.文档、示例。Unity3D和UE4秒Cocos2dx几百条街没问题。
3.易学性以及开发者生态圈。这个目前Unity3D最优。众多平台扩展和Assets Store,UE在Mobile平台晚了一步造成了巨大差距。
4.集成开发环境的学习曲线。Unity上手会非常快,UE无法做到,UE更倾向于团队内有清晰分工并有所专长,而非Indie。
5.价格。这个可能没有关系但是对于Indie项目来说,我倒是更简易能买断的Licence Model而非分成式。

LZ可以以做一个简单FPS为目标,学习一下3D的FPS gameplay该怎样做,3D的游戏项目在知识结构上自己有哪些方面需要补充。这些对于以后使用其他引擎来说都可以算一个准备工作。而Unity3D的好处是,你在用它做准备工作的时候,不会发现有太多的连带的周边坑需要填。可以让你更容易专注在"你"的项目中。半年后等UE4基本稳定,可以再根据其发展状况和市场上的Indie美术人员的知识结构决定是否换开发工具。
多谢,我决定用unity了!有好的英文tutorial吗

TOP

posted by wap, platform: Firefox

以前C++写的作业hangman,不知道水平够不够用unity, 请大家指点。

Source.cpp

#include <random>
#include <time.h>
#include "Hangman.h"

using namespace std;

string words[10] = { "COMPUTER"
                                        ,"INTERNET"
                                        ,"MONITOR"
                                        ,"TABLET"
                                        ,"PHONE"
                                        ,"SURFACE"
                                        ,"BANANA"
                                        ,"APPLE"
                                        ,"PEACH"
                                        ,"ORANGE" };
Hangman hangman;

int main()
{       
        srand ((unsigned int ) time(NULL));

        while (true)
        {
                hangman.setUp(words[rand() %10]);

                hangman.play();

                cout << "Play again? (yes/no) ";       
                string playAgain;
                cin >> playAgain;
                if (playAgain != "yes"
                {
                        break;
                }
        }

        cout<<"\nThank you for playing hangman."<<endl;

        system("pause";
        return 0;
}

Hangman.h

#include <iostream>
#include <string>
#include <set>

using namespace std;

class Hangman
{
public:
        Hangman();
        void setUp (const string);
        void play();

private:               
        const static int MaxNumberOfGuess = 7;
        string word;               
        unsigned int wrongGuess;
        unsigned int rightGuess;       
        set<char> guessedLetters;
       
        char getUserInput();
        string wordWithMask() const;
        void displayAvatar() const;
        void processGame(char);
        void displayGuess() const;
};

Hangman.cpp

#include "Hangman.h"

Hangman::Hangman()
{
}

void Hangman::setUp(string wordToGuess) // init or reset the game state
{
        Hangman::word = wordToGuess;
        Hangman::guessedLetters.clear();
        Hangman::wrongGuess = 0;
        Hangman::rightGuess = 0;
}

void Hangman::play() // one round play for one word
{
        while (true)
        {
                cout << "Guess the word: "<<string (Hangman::word.length(), 'X') << endl << endl;

                char input = getUserInput();
                processGame(input);
                displayAvatar();

                if (Hangman::wrongGuess == Hangman::MaxNumberOfGuess)
                {
                        cout << "...GAME OVER..." << endl << endl << endl;
                        cout << "Word:" << Hangman::word << endl << endl;
                        break;
                }

                displayGuess();

                if (Hangman::rightGuess == Hangman::word.length())
                {
                        cout << "Word: " << Hangman::word << endl << endl;
                        cout << "Congratulations!!! You guessed my word." << endl;
                        break;
                }
        }
}

string Hangman::wordWithMask() const
{
        string maskedWord = Hangman::word;

        for (string::iterator it = maskedWord.begin()
                ;it != maskedWord.end()
                ;it++)
        {
                bool letterIsGuessed = false;
                for (set<char>::iterator it2 = Hangman::guessedLetters.begin()
                        ;it2 != Hangman::guessedLetters.end()
                        ;it2++)
                {
                        if (*it == *it2)
                        {
                                letterIsGuessed = true;
                                break;
                        }
                }
                if (!letterIsGuessed)
                {
                        *it = '?';
                }
        }
        return maskedWord;
}

void Hangman::displayGuess() const
{
        cout << "Your guesses:" << endl;
        for (set<char>::iterator it = Hangman::guessedLetters.begin()
                        ;it != Hangman::guessedLetters.end()
                        ;it++)
        {
                cout << " " << *it;               
        }
        cout << "\n\n";
}

void Hangman::processGame( char input)
{
        bool isInWord = false;

        Hangman::guessedLetters.insert(input);

        for (string::const_iterator it=Hangman::word.begin()
                ;it!=Hangman::word.end()
                ;it++)
        {
                if (*it == input)
                {
                        Hangman::rightGuess ++;                       
                        isInWord = true;
                }
        }

        if (!isInWord)
        {
                Hangman::wrongGuess ++;
        }       
}

char Hangman::getUserInput()
{       
        char input;

        while (true)
        {               
                cout << "Guess a letter (case does not matter): " << wordWithMask() << endl << "? ";

                cin >> input;

                input = toupper(input);

                if (!isalpha(input))
                {
                        cout << "\nLETTERS ONLY PLEASE" << endl << endl << endl;
                        continue;
                }

                bool isValidInput = true;

                for (set<char>::iterator it=Hangman::guessedLetters.begin()
                        ;it!=Hangman::guessedLetters.end()
                        ;it++)
                {
                        if (*it == input)
                        {
                                cout << "\nYOU HAVE THIS LETTER BEFORE!!!" << endl << endl << endl;
                                isValidInput = false;
                        }
                }

                if (!isValidInput)               
                {               
                        continue;
                }

                return input;
        }
}

void Hangman::displayAvatar() const
{
        switch(Hangman::wrongGuess)
        {
                case 1:
                        cout << " o";
                        break;
                case 2:
                        cout << " o" << endl << "/";
                        break;
                case 3:
                        cout << " o" << endl << "/|";
                        break;
                case 4:
                        cout << " o" << endl << "/|\\";
                        break;
                case 5:
                        cout << " o" << endl << "/|\\" << endl << " |";
                        break;
                case 6:
                        cout << " o" << endl << "/|\\" << endl << " |" << endl << "/";
                        break;
                case 7:
                        cout << " o" << endl << "/|\\" << endl << " |" << endl << "/ \\" << endl;
                        break;
                default:
                        break;
        }
        cout << endl << endl;
}

TOP

引用:
原帖由 FXCarl 于 2014-3-24 02:09 发表


那我真心实意的给LZ推荐一条不坑的路 …… 你看加分的人就知道可定是在努力帮你。看到好的一定给分了啊

3D 游戏其实有两种设计流派。我们姑且把它分为中西 …… 因为你主要看到的就是这两类。

中式游戏重内 ...
这一段要赞。
我在国内推广UE的过程中发现阻力最大的并不是美术而是程序,特别是有个2-3年经验的那类。他们往往觉得引擎对他们是束缚,什么都得按引擎的思路来很不舒服。于是虽然用着引擎但处处逆着引擎来做,让引擎沦为纯美术工具。
美术往往是最欢迎引擎的,因为再也不用受程序员的鸟气了。国内美术的苦逼人所共知,要实现一个效果得求着程序,程序通常都很忙,没闲工夫帮美术实现,更别提做工具了。有了引擎以后就扬眉吐气多了,再难也愿意学。
策划就没啥好说的了,愿意花大量精力学引擎的策划我就没见过,和他们说基于prototype的设计他们就当听个热闹。

其实现在的UE已经成熟到完全不需要代码,就可以做出非常完善的prototype的阶段了。UE4新的Blue print可视化脚本可以实现原来Unreal script 70-80%的功能,学习起来虽然难一点但比起学一门语言总是简单多了。现在主要是人们一听到Unreal就觉得这玩意好重、好复杂,直接就打了退堂鼓,一听到Unity就觉得“大家都说好简单,我就用它吧”。
本帖最近评分记录
  • Lucifer6E 激骚 +3 感谢分享 2014-3-24 22:12

TOP

发新话题
     
官方公众号及微博