有什么用Lua做的好玩的cocos2dxlua项目实战嘛

ulua - unity效率最高、最完善的热更新方案!!
uLuaQQ 群:
& Developing:
关于对slua两次挑衅的被逼回应&ulua真实性能测试报告
& 恭喜蒙哥的发布,ulua一开始从AssetStore上面的一个收费开源lua热更新小插件,发展到今天被各大游戏公司争相使用的热更新技术,真的离不开各位的使用与贡献,我先介绍下ulua吧,好像只有我介绍比较合适,因为我是一年前花钱买了ulua后,在国内第一个引用到商业游戏里面《Q灵三国》的,并且把它从一个默默无名的小插件变得如此之庞大的使用社群。ulua的组成部分是luajit(免费开源)+LuaInterface(免费开源)+luawrap.c(作者添加些函数),然后稍微修改后就上传到AssetStore收费开源了。98%的代码都是免费开源的,我不知道luajit的原作者跟luainterface的原作者看了以后会不会气炸了,也不知道是不是迫于开源精神道德压力,还是什么原因,至少ulua原作者最后1.03版本的时候,也就不更新,我倒是想问问,拿着开源的代码去卖的是否合法?既然开源了嘛,我们感觉老外还算厚道,至少给我们机会源码去扩展并且完善它。作者也应该能想到会有人去这样做。
& 问几个问题,为啥要改ulua?答案是他已经不能满足用户要求(反射效率慢+众多移动平台不支持(iOS64/安卓x86/WP平台)),不改就没法用了嘛。那好,我们改了以后应该以一种什么形式存在呢?是换个名字xxLua上Assetstore跟ulua抢用户厚道?还是直接开源厚道?(至少大家要用嘛)大家很清楚我们选择了后者,虽然slua作者说ulua原作者会气死,我觉得至少比slua山寨ulua把luainterface+lua源码继续包起来拿到Assetstore跟ulua抢用户厚道吧?因为你跟ulua原作者抢生意去了,断了人家财路,他不气你?
& 上面已经开始提到slua这货,这货首次发布介绍文章是日,而我们游戏使用上线,接触ulua应该是2014年3月,我在是2014年4月,2014年6月建ulua技术交流群,当时跟刚认识的大C、蒙哥讨论,建议有人做静态化调用,提高效率。(当时L#作者李建英在我群里都可为证,因为我建议他去做,可惜他钟情于c#light,后来蒙哥去做了而已)是在2014年7月,而蒙哥应该是2014年的9月,半年时间怎么没看到你slua“亮瞎狗眼的率先原创发布”呢?酝酿了半年才发布?还是忘记了?还是没完成?毕竟cstolua发布几个月后,你才发!!
从一上来就纠缠着、死咬着、叫嚣着什么比ulua快一百倍,你怎么不说相差一万亿倍呢?都是同一份luajit、luavm源码,能差距100倍?你这忽悠别人的牛逼吹大发了吧?ulua不怕别人来较量(代蒙哥说),从去年热更新较早的c#light(L#)、Scorpio-Sharp、nlua时代,一直有人拿ulua做对比,我们并不介意,因为ulua很火,那为啥今天要写这么多文字来回应下呢?首先,他们虽然也是竞争关系,但是他们的劳动的确是原创的,多少个日日夜夜的技术攻克,是值得我们尊重的竞争对手!你敢说slua完全在ulua、cstolua之前就架构设计上的原创?不否认cstolua也借鉴了原来其他技术的设计概念,但是在unity平台,他是绝对的首创!!多少人看了代码都跟我说,这货敢情直接copy的蒙哥的cstolua设计架构,底层库是ulua的方式,静态代码绑定是cstolua的方式,后来我在群里试探说它不支持反射,相当于个太监,没有性生活,因为不能“射”了嘛,果然又给加上了个CreateClass。甚至后来有人发现只要cstolua这边一修复一些luainterface的bug,slua马上就有相同的修复,你是蒙哥肚子里蛔虫?思维这么高度统一?这么多历历在目的证据你敢说你没抄?是借鉴,可以吧?可以!如果是借鉴,不管从架构设计还是代码copy,都要向前辈致敬,而不是踩着前辈的身躯上位,得瑟的说:“看,这货没我牛逼!我比他牛逼100倍!”这一点做人的道理,我替你妈提醒下你!!都说旁观者清,连slua用户都认为你道义是错的,了解真相的人评价最客观。也就是有些人用你东西,觉得你人性不行!!!群里的人一边用着你的东西,心里却觉得你人性不行,真不知道你做何感想??还是你根本不在乎旁人鄙视你的目光。我都替你感到悲哀!!以彼之道还施彼身,为啥要感激一个恶意攻击我们的人?
虽然cstolua早就存在了,你没代码copy?你LuaDLL里面不就是把原来的ulua改成了slua?有何脸面指责他人?但我还是一直以ulua称呼其存在(只有我自己还这么叫它,为了感激ulua原作者给我们带来的贡献),为啥,Unity插件版本仍以ulua_v1.xx.unitypackage命名,为啥?这就是你缺少的那一份基本道德,我没办法替ulua原作者收费(网上就有免费下载,后面很多优化方案都是群里同学合力完成的,毕竟这不是ulua原作者的贡献,我虽然作为群主但没权利把他们分享的知识商业化,然后返利给ulua原作者),国内又那么多免费用户,你当时不就是其中一个?
(我国《计算机软件保护条例》日开始实施。该条例第二十四条规定:软件的最终用户,包括任何单位和个人未经软件著作权人许可,使用盗版软件即为非法!!!)
还有,slua能从一发布就拉着ulua秀速度、优越感,凭什么ulua就不能了?你管得着吗?切~还好意思拿这条来指责,我真想不通,还能找出更好的理由来吗?你指责的跟你有毛关系,关用户毛事?每个理由都是强词夺理、无中生有、人身攻击、恶心行径令人发指。cstolua本身就是从ulua演化来的,我承认。slua没抄?有什么资格说cstolua(我觉得c#light到是有资格,但是你没有资格^0^)?你是国家广电、还是文化部版署的?
NGUI在国内有几个付费的?到处都在免费下载,国家都没管,你急个啥!真是皇帝不急太监急,你怎么不去帮NGUI作者收收费?现在做Uniy热更的有谁不知道有个ulua,这叫饮水思源,懂不懂!没想到我们的道义竟然被当做把柄来回侮辱,在你眼中只有重新自己抄一份、彻底换个名字才算是合法????从一开始就用诋毁ulua,抬高自己的方式博得别人眼球,让朋友来群里刷屏拉用户(我群规不允许营销或者宣传,你找的人违反我们群规,自然按照群规处理T掉),这种事情你做的出来,我没让人去你群里干这种龌蹉的事情吧?还在”知乎“忽悠拉用户、在微博被骂骗子的2货有什么脸,什么资格说别人阴暗?你比谁不阴暗?如果说起源,也是你半年前纠缠挑起的。这些都合乎你家礼仪道德?谁教你这样做人做事的?一个抄ulua却指责我们无奈修改的下三滥二货,不以为耻反以为荣,纯人品问题!
& 接下来说技术,说实话我没看过slua代码,全部都是别人告诉我的,slua如何如何,又怎样怎样了(我只是个转述者而已,听错或者记错都非常正常),我代替用户问几个问题,在社群同学说他们lua配置较高大概有56M,循环创建大量GameObject之后直接lua堆栈崩溃了?你目前的luainterface.call怎么也有gc allc呢?你怎么说是0呢?你在每一帧的Physic.Raycast不用valueType有泄漏,每一帧的累计,你造吗?你的可选参数数组,隐藏着类型匹配问题,会遭致用户数据错乱,你的slua用户小伙伴造吗?我腾讯的技术朋友也就看了下代码就发现隐藏问题29处之多(4处要命,11处重要,14处一般),这些你都告诉你的slua用户小伙伴造吗?cstolua为了稳定做了大量的类型检查,而你为了那一丁点儿的提升,一直在裸奔,致小伙伴项目安全于不顾,你这样做真的好吗?你的小伙伴们造吗?不否认你的lua很熟,做了大量小细节修改,但是c#,unity真的做过实战项目吗?对Unity引擎深层次的问题,真的了解吗?是不是可以这样可以解释你没办法用lua写完所有valuetype的代码,而鼓动别人去偷取cstolua的实现部分?对引擎的坑都不了解的话,写的东西真的贴近引擎吗?这样的东西真的没风险吗?
&效率问题,你不是觉得不屑于lua源码实现valuetype还瞧不起protobuf-lua-gen、csjon、pbc、sqlite之流嘛,本文做一个你的见证,看你最后食言不食言,等你食言的时候大家也就看清你的操行了。借用你一句话,别“不服来辩”了,每句话都暴露你博上位的企图,咱们不服来测!!!看你还要继续抄cstolua的优化策略不~~若还抄,用一个山寨货干嘛不用首创原版来的直接?
&本来这些我们没准备文字化来说,平时谁都有些小毛病,如果只是单纯效率对比,我们看的多了,宣雨松的C#light也跟ulua对比过,我们也没说啥吧?半年前slua第一次做对比,我们更没说啥。在群里吐吐槽,实在不行骂两句,是吧,过去就过去了,非不,在上个月非要在博客上文字化骂我们道德不行吧、阴暗吧,把平时群里的吐槽提升到隔空人身攻击,有兴趣的人可以对比下博文时间。目前对于我们来说,走的每一步都是被逼的!cstolua作者蒙哥是个低调的人,是个老实人,真正的技术大咖,不愿意替自己申辩,请不要欺负老实人,被人这么挑衅,兄弟们看不过去,那这些算是替蒙哥跟兄弟们说些从道德到技术上的心里话吧,都骂到我们头上了,还不算挑衅?我们被逼得没办法,是个有血性的汉子,至少都得回应一次吧。要不就太怂B了!!!
&严正声明,蒙哥是cstolua作者,我骏擎CP是ulua群主,非同一人,包括在slua群里面的Chiuan,还有其他兄弟,我们都是去年10月一起把酒言谈的兄弟。你要不是故意的捏造”马甲“,也可以向他求证他亲眼见到的是不是一个人。若你不在乎,那就是故意的找借口、故意诽谤、故意人身攻击而已。劝你一句群众眼睛是雪亮的,把别人当傻逼的人往往是傻逼。所以我都实事求是。非要捏造个马甲,故意显得别人阴暗,岂不知那么多知道真相的人,怎么看你这个装逼的,你不是要较量嘛?没问题,做优化蒙哥+其他兄弟上,写文章玩文字,我陪你,大家各自分工,你高兴,我无所谓!!!
使用你的测试脚本,取各自最新版。
1)属性的读取和设置
local start = os.clock()
for i=1,200000 do
local v = transform.position
transform.position=v
print(“test1/lua ” .. (os.clock() – start));
2)成员方法的调用
local v = transform.position
local t = os.clock()
for i=1,200000 do
v:Normalize()
print(“lua cost time: ” .. (os.clock() – t));
3)静态方法调用并返回
local t = os.clock()
for i=1,200000 do
v = Vector3.Normalize(v)
print(“lua cost time: ” .. (os.clock() – t));
4)纯属性设置
local v = transform.position
local t = os.clock()
for i=1,200000 do
transform.position=v
print(“lua cost time: ” .. (os.clock() – t));
5)构造valuetype并返回
local t = os.clock()
for i=1,200000 do
v = Vector3(i,i,i)
print(“lua cost time: ” .. (os.clock() – t));
真实的数据(单位:秒)
0.2&&&&: 0.26
0.3&&&&: 0.93
0&&&&&&&: 0.15
2&&&&&&&:
0.45&&: 0.62
另外附上使用slua群的朋友(黄琰,小陆slua框架贡献者)的测试结果:
本来不想把朋友的名字打出来,怕他夹在中间为难,既然你以为我们是伪造数据,那看下slua群里黄琰的测试数据吧。不要为难我兄弟,这只是真实数据而已。
ulua/cstolua全面领先slua,这才是真实数据!
补一句:不在乎lua核心效率、堆栈安全、周边库效率的继续用slua,我看挺好!!^o^您的浏览器已经禁用了脚本,这可能会影响您正常使用本站的功能。
学习Lua源代码的一些经验和参考资料推荐
断断续续在博客更新Lua5.1.4分析的一些文章,当前写的还是很杂乱。前面大体分析了一些数据结构(通用数据结构,表),一些流程的处理(赋值,逻辑跳转),还有函数相关的代码。后面还有不少没有分析到,目测还有表相关的操作,GC,Lua调试器等等,内容还是不少。
今天暂时打住,记录一下我看Lua代码这段历程来用到的一些知识点,经验和参考资料。
起初决定看Lua代码的理由很简单。每个对代码有点喜欢的人,都会觉得能创造一门语言是很酷而且充满神秘感的事情,尤其对我这样非科班出身的人。龙书很早就买了,一直搁着,上面布满了灰尘。中间也接触过一些编译类的书籍,比如编译原理与实践就实现了一个Toy级别的脚本语言,虽然五脏俱全,但是毕竟离正经产品级的代码还是有距离。
Lua也是一早就听说过,但是一直没有太多了解。直到2011年换工作之后,使用C++ + Lua做游戏服务器。这个服务器大体的框架是C++层做为所谓的引擎层,实现网络,数据库查询,AOI等,C++提供一个逻辑线程,所有网络收报之后的处理将数据放到Lua层来做逻辑处理。看上去没有什么太特别的。而惊艳的地方在于,在引入了Lua脚本层之后,一般情况下对逻辑的调试修改都是在Lua层进行,由于脚本可以实现热更新,加断点调试,这样在修改调试的时候大部分时间不用再重启服务器了。游戏服务器不同于其他本身不需要保存状态的服务器,启动的时候需要加载数据,所以启动会比较慢,调试不用重启服务器这对开发效率是极大的提高。
这是Lua给我带来最爽的快感。Lua不是一个自己能跑起来的脚本语言,不像Python,Ruby那样,它需要一个宿主环境,从诞生起它就做好了给别人当配角的打算,对于CC++这样的静态编译语言来说,需要一些动态特性的时候搭配上Lua是绝好的搭配。
于是,怀着对创造一门语言的神秘感,和Lua带来的极大方便,我开始打算好好看Lua的代码。这各时间点,大概是2012年初了吧。
我最开始的计划,是自上而下的,也就是从常规的词法分析,语法分析到语义分析。然则这里遇到了比较大的问题。在编译原理与实践中的教学语言,使用的非常传统的方式,词法分析,语法分析之后生成语法树,然后再到语义分析。这是大概两遍扫描文件的流程,第一遍先生成语法树,第二遍再语义分析。然而Lua中并没有生成语法树,而是一边分析一边进行语义分析,一遍分析就搞定。由于省略了这一个中间步骤,给我阅读Lua代码带来极大困难,因为我之前并没有正经学过编译原理,只是大概知道怎么回事。所以开始的方式,是先去补编译原理的一些知识,这个过程大概持续了几个月,到现在,我仍然不认为我把这套流程完全明白了。
由于在前面遇到太多挫折,我后来反思了一下最开始的计划。可能最开始想的太完美,反而会进步缓慢,于是开始从Lua的opcode下手。提起这里参考最多的资料,应该是《A No Frills Intro To Lua51 VM Instructions》。这个资料最好的一点是,它将Lua中每个opcode基本过了一个遍,对每个指令给出例子场景和相应生成的opcode。我个人在阅读Lua代码的过程,将opcode像它那样分为几种类型,比如函数类,赋值类,表操作类,一个一个写示例代码调试。我写的demo例子代码是这样的:
int main(int argc, char *argv[]) {
char * = NULL;
if (argc == 1) {
file = &my.lua&;
file = argv[1];
lua_State *L = lua_open();
luaL_openlibs(L);
luaL_dofile(L, file);
很简单,加载一个叫my.lua的文件来执行。需要注意的一点的是,生成任何Lua opcode的时候,最后都会调用函数luaK_code。那么这个事情就很简单了,你按照你想分析的Lua执行写一段代码,然后开,在这个函数下断点,然后开始执行,它中间会产生什么opcode就一目了然了,慢慢分析吧。另外一个重要的函数就是lvm.c中的luaX_execute函数,这是Lua虚拟机开始执行指令的入口。你把握住了这两个入口点,生成什么指令和如何执行指令,就把握住了,剩下的就是耐心和毅力。所以我这时候的学习方式,就是不停的在my.lua中加入我想分析的Lua指令,在这两个重要的函数上下断点,分析其流程。这段时间是我对Lua了解进步很快的时间。
至于其他的资料,老实说很多都是看了一遍不会再看的(当然讲解Lua语法的书得准备一下随时查阅)。只有这份资料是每次开始看Lua代码时都会打开的。
回头看学习Lua代码的这一段历程,最开始学习编译原理以分析Lua语义分析的流程是最痛苦的。而当我现在对Lua源码有一定了解之后,我觉得如果你不是对编译特别感兴趣,只想弄明白Lua本身,实际上可以不必在这里耗费太多时间,直接按照我前面说的那样,把Lua的opcode过一遍收获可能会更大。而当你搞定了这些,再回头啃这块硬骨头的时候,心态也会不一样。做为一个过来人,我建议就是先以了解Lua本身为主,顺带学习编译为锦上添花的点。
将阅读Lua代码本身能学习和涉及到的一些知识点罗列如下,我看分为几大块:
1)编译原理相关的,如果你要学习如何创造一门语言这部分可以看看,包括词法分析,语法分析,语义分析。
2)Lua本身相关的,你要对Lua本身有个通透的了解,最好把它的opcode全部过一遍,Lua的opcode不算多,30多个吧,上面提到的参考资料每个都分析了,可以按照我的方法也每种指令都写Lua代码来调试跟踪整个流程。这个过程走下来之后,对Lua的了解整个就上了一个档次。
另外需要提一个点,Lua是使用Lua栈与C进行交互的,把这个点理解好可以理解Lua执行流程的关键点,网上有一篇文章分析的不错,在。
3) 表是Lua最重要的数据结构,可以说无处不在都是表,所以我把表相关知识点单独拿出来算一项以提高它的重要性。与它相关的知识点出了Lua表的实现,相关的opcode(表相关的只有三个),还包括如何使用Lua表实现面向对象,meta表,registry表,G表。
4)GC,Lua中使用的垃圾收集机制。
5)Lua如何进行热更新,如何实现一个Lua调试器。
6)其他的杂项,比如Lua中使用的一些编码技巧,如何用C实现异常处理,Lua代码优雅的点,等等。
从前面的说法来看,我觉得1)不是最重要的,能完整的把2)走完,对Lua的了解会倍增同时也会得到很多信心,这样就可以再按照其他知识点依次看下去。
最后的最后,做为一门生命期已经超过15年,而且流行程度能在世界排前20的语言,Lua只有不到2W行代码,而再把一些不重要的地方去掉,代码量还会更少,可能核心的代码不到1W行吧。另外做为一门纯C语言编写的项目,我认为其代码质量比大家都评价很高的还要高,这个问题我以后会专门聊一聊。我说了这些,是想说从学习优秀开源项目代码的角度来说,学习Lua的性价比很高,坚持下去收获很大。
收藏Ctrl+D
关注Linux/Unix应用技术、业界新闻,同时也发布开源、移动互联网等新鲜资讯!
—— Powered ——运行在|  
|  
|  
|  
|  
只需一步,快速开始
查看: 8371|回复: 29
lua加Java能做大型游戏吗
主题帖子积分
游戏亡灵, 积分 -69, 距离下一级还需 69 积分
游戏亡灵, 积分 -69, 距离下一级还需 69 积分
额......这只是我的猜想 大家都知道(没学过的人应该也知道) Java是出了名的慢&&但是我想用他做出个游戏(不是那个牛人做的minecraft) 用Java先做个游戏的小引擎 用Java为主 lua为敷 虽然我没测试过 但是中感觉他们是最佳组合&&求高人指点 他们结合起来到底会不会比传统的Java快
主题帖子积分
游戏狂人, 积分 1740, 距离下一级还需 260 积分
游戏狂人, 积分 1740, 距离下一级还需 260 积分
典范。我的世界 楼主去参考吧
主题帖子积分
中级玩家, 积分 225, 距离下一级还需 25 积分
中级玩家, 积分 225, 距离下一级还需 25 积分
好像求错区了
这区没这方面的人才
主题帖子积分
中级玩家, 积分 206, 距离下一级还需 44 积分
中级玩家, 积分 206, 距离下一级还需 44 积分
主题帖子积分
一般游戏都是从VC做的,java不是太好
主题帖子积分
新手玩家, 积分 5, 距离下一级还需 25 积分
新手玩家, 积分 5, 距离下一级还需 25 积分
这是什么意思啊,是代码吗
主题帖子积分
游戏精英, 积分 8249, 距离下一级还需 751 积分
游戏精英, 积分 8249, 距离下一级还需 751 积分
贡献度1268
谁告诉你java是出了名的慢 只是相对来说慢点 数据量不大的游戏没多大区别&&网游之类几乎都是c++
Android是上用java实现的引擎多的是 依然也有很多人用
lua 是使用c写的 速度快是肯定
做游戏时使用一些脚本语言提升运行速度这早已广泛使用
能自己用java写个引擎然后做个游戏&&LZ水平应该很牛&&怎么还会问这种问题
主题帖子积分
初级玩家, 积分 93, 距离下一级还需 7 积分
初级玩家, 积分 93, 距离下一级还需 7 积分
先做起来 要是真慢了 以后再想办法& &
主题帖子积分
超级玩家, 积分 758, 距离下一级还需 242 积分
超级玩家, 积分 758, 距离下一级还需 242 积分
java的确出了名的慢。
但是你要看它出名慢所比较的对象是谁……
它比的是那些出了名的快的东西,能不慢才有鬼啊。
理论上java做小游戏没问题。如果lz你是单干,做做2d什么的java足矣了。
但是要做3d……minecraft的画面有多蹉,你就知道java有多不适合做大作了。
当然,用什么语言,和游戏好不好玩,是完全没有必然联系的。请继续做下去
主题帖子积分
\\\\?( 'ω' )? ////
游戏精英, 积分 4298, 距离下一级还需 4702 积分
游戏精英, 积分 4298, 距离下一级还需 4702 积分
龍歌online 用java的
主题帖子积分
超级玩家, 积分 604, 距离下一级还需 396 积分
超级玩家, 积分 604, 距离下一级还需 396 积分
ch87819 发表于
一般游戏都是从VC做的,java不是太好
签名档是哪个片子啊。。。求出处
主题帖子积分
中级玩家, 积分 152, 距离下一级还需 98 积分
中级玩家, 积分 152, 距离下一级还需 98 积分
仔细想想确实java没什么大游戏……
lua作为脚本最多辅助一下设置文件什么的……你不会希望把游戏逻辑全都暴露出来吧
主题帖子积分
高级玩家, 积分 557, 距离下一级还需 43 积分
高级玩家, 积分 557, 距离下一级还需 43 积分
這個其實要看LZ有沒有恆心,做一個似樣的遊戲,快則半年,慢則三、四年,除非LZ已有基本需要的程式碼
或者LZ是神人級如Chris Sawyer等,2星期可以寫一隻「過山車大享」& & (題外話:神人級數都要被公司炒)
主题帖子积分
游戏精英, 积分 7510, 距离下一级还需 1490 积分
游戏精英, 积分 7510, 距离下一级还需 1490 积分
1、如果想写大型游戏,那么最好找一个引擎。如UDK,CE3。没有引擎,写游戏事倍功半。当年我实现一个一般的水波效果花了一个星期,一个很棒的火焰效果花了两个星期,一个简单的可以模拟翻书的阅读软件用了一个月。写一个好的3D引擎,往往是 N千人*月 级别的task。
& & 当然,有了引擎之后就是 xxx = createobj(water); 之类的事,和细节就没有耦合了。事实上,引擎是游戏中最大的工作。完美国际基本所有游戏都是同一套引擎、同一套系统,但他们还是活的有声有色。像war3 和 wow也是用的同一套引擎(wow是改良版),这些引擎都是“借鉴”了人类历史上各种伟大的代码来制造的,工作量很庞大。
2、JAVA是比较适合写代码的语言,不同于C,它的优化不好,但是开发者可以用的很顺手。无引擎下用C语言,主要是OPENGL和DX,也是小团队不错的选择,但是工作量一般是 time(JAVA)*3 。
3、任何脚本对于开发者而言都是实用的,但是它们只是脚本,不能合入到系统里。
主题帖子积分
中级玩家, 积分 189, 距离下一级还需 61 积分
中级玩家, 积分 189, 距离下一级还需 61 积分
lua脚本和java配套的不太好,有一个开源项目叫做lua4j,但是速度完全不如同样支持JVM(虚拟器)Groovy脚本。
所以你想用Java做游戏的话,还是考虑下Groovy脚本而不是Lua脚本
如果你想用C++做游戏的话,Lua脚本绝对是你的菜。
Java从JDK7开始运行速度大概之比C++慢一点点了。有兴趣的话可以再谷歌搜一下 Proramming Language Benchmark
Java开发效率高,如果程序崩溃了,Java能一瞬间知道哪里出错了,而这对于C++来说是一场噩梦,出个错够你找两天三月的。
主题帖子积分
中级玩家, 积分 168, 距离下一级还需 82 积分
中级玩家, 积分 168, 距离下一级还需 82 积分
佩服你,能发这么好的帖子,厉害
主题帖子积分
高级玩家, 积分 293, 距离下一级还需 307 积分
高级玩家, 积分 293, 距离下一级还需 307 积分
没关系,反正核心的部分都不是Java写的.
主题帖子积分
中级玩家, 积分 189, 距离下一级还需 61 积分
中级玩家, 积分 189, 距离下一级还需 61 积分
LoveDelphi 发表于
没关系,反正核心的部分都不是Java写的.
确实,C或者C++速度很快,是很多系统,比如操作系统,的核心。
不过如果是写个游戏而言,什么语言都没什么问题,只不过牛逼的程序员没有使用这些语言来写而已。
牛逼的程序员用什么语言都可以写出牛逼的游戏的。
就像前几年的中国动漫。我猜很多搞动漫的人都以为日系风格的动漫才能火。
事实上,最终他会发现他技术不行,搞哪种动漫都火不起来了,没那个天赋。
就像写程序的似的,用啥语言写都不好使。。。
然后年轻人像个老头子似的开始鄙视所有的花架子,假把式。而这些是年轻人以前吐槽老人不懂潮流的东西。。。
最终会发现所有的东西都得回归到老老实实的搞技术。。。
写游戏的话,啥语言都行。。。看哪个顺手用哪个。。。
主题帖子积分
中级玩家, 积分 241, 距离下一级还需 9 积分
中级玩家, 积分 241, 距离下一级还需 9 积分
如果是2D,直接有Lua开发的引擎
主题帖子积分
高级玩家, 积分 371, 距离下一级还需 229 积分
高级玩家, 积分 371, 距离下一级还需 229 积分
java不合适配搭lua。
lua最好就是配搭c/c++。
java写游戏的话,效率是一个问题,特别是3d,其次还得用户装java虚拟机。
其实什么语言都没什么关系,最好直接找个好的引擎。
主题帖子积分
游戏狂人, 积分 1532, 距离下一级还需 468 积分
游戏狂人, 积分 1532, 距离下一级还需 468 积分
JAVA 么&&Spiralknights 感觉很不错 楼主可以参考下 应该可以算大型游戏了吧&&500多M的客户端
主题帖子积分
中级玩家, 积分 132, 距离下一级还需 118 积分
中级玩家, 积分 132, 距离下一级还需 118 积分
忍不住回帖....
楼主可以看看 lwjgl
这个是java对opengl的一个实现.当然mincraft 就是用的这个了.
引擎也有一个 好像是叫&&monkey 什么的..忘了..底层好像用的jogl
java慢的问题那是很久远的时代的事情了.
目前没有用java做的游戏不代表java目前不合适.
就国产情况看,大多数公司都是用以往的代码换一换皮....
所以他们不会费事重新用java重新写一遍....
而且java还有一个问题就是比c++写的容易破解....
我不会告诉你很多网络游戏后台是用java实现的(看看网游公司招聘信息就知道了)....
所以如果楼主只是玩玩.马上开始吧.java是一个很好的选择.脚本就别用lua了,直接使用jvm的脚本语言groovy.与java无缝结合.
不过,我觉得楼主可以去看看unity3d.这个目前比较火.而且入门比起opengl容易太多了.如果找工作的话也比较容易找到合适的工作.
主题帖子积分
游戏狂人, 积分 1527, 距离下一级还需 473 积分
游戏狂人, 积分 1527, 距离下一级还需 473 积分
曾经有人吐槽用I7的CPU 4G的内存跑mincraft很卡&&买不起那么好的配置 也不知道真假
主题帖子积分
游戏达人, 积分 2043, 距离下一级还需 1457 积分
游戏达人, 积分 2043, 距离下一级还需 1457 积分
做游戏,而且还是大型游戏,那只能是C++了
主题帖子积分
初级玩家, 积分 33, 距离下一级还需 67 积分
初级玩家, 积分 33, 距离下一级还需 67 积分
java和大游戏是两个互相矛盾的词。就如同你想要一块烫手的冰一样。
主题帖子积分
中级玩家, 积分 175, 距离下一级还需 75 积分
中级玩家, 积分 175, 距离下一级还需 75 积分
用 C# + XNA 呗&&terraria 就是这个做的。
主题帖子积分
新手玩家, 积分 16, 距离下一级还需 14 积分
新手玩家, 积分 16, 距离下一级还需 14 积分
我只是闲逛,偶然看到这个帖子,不得不吐槽下,10年前,我们就已经开始用java做网游了。
对的,你没听错,服务器端java,客户端也是纯java,绝对的无缝跨平台。而且是mmorpg哟
可惜,当时有性能问题,客户端底层显示部分换成了c,其余部分仍然由java来编写,随后java 1.42版
出来后,服务器端性能有了质的飞跃。前端如果没有过多的显示对象,没有任何性能问题
同屏100人左右,不会感到卡。在服务器端,单进程最多做到过1000人同时在线,每敢再多,
因为涉及到游戏内怪物资源与同屏问题。
java发展有两个我认为很重要的阶段:
& &1.1.42版本的发布
& &2.1.6版本的发布
1.6开始,做大型项目,性能无限接近于c,但是,开发效率高的不是一点半点,后期维护成本,各个方面,都完虐c.
虽然我现在是用c++来写代码,因为是涉及到ios和安卓的跨平台问题,不然,我仍然会用java.
一台8核8G内存的linux服务器,java做的引擎,轻松12000人在线,这是我们在生产环境做到的数据
如果是c+lua 与纯java相比,我觉得,性能不一定比java高,当然,我没有实测,只是猜测,另外
像做什么多少次累加之类的测试,是没意义的。不同的测试方式,性能表现是不一样的。
java在函数调用等地方做了一些优化后,在做大型复杂的游戏,性价比绝对比c高
我们曾经有个半死不活的游戏,因为收入不多,就一直没人管,后来突然想起来,过去看的时候,发现游戏
进程已经跑了两年了,没任何问题,超级稳定 。
嗯,就是,因为看到帖子里,很多人在谈论java,但是却对java有误解,所以才吐个槽。
有一句话大家一定要记得,技术是没用的,关键是你用技术来做啥。
同样,c效率是比java高,但是说java是出了名的慢,这就是你是白痴(肯定是听哪个sb说过,就学来了,人云亦云)
关键是你用c来做啥,如果你用c来做web,好吧,瓶颈在哪里?语言的性能么?
如果你用c++和lua来做游戏,那么,假设你得lua脚本没缓存,我可以肯定,你得性能绝对低于java。(我一会就去测试下,结果我不会告诉你)
我最讨厌那种,人云亦云,自己不会实地去验证的人 了,以前看过一些帖子,好多人帮腔,我差点信以为真,结果自己动手一看,不是那么回事
然后我也不说,让那一群人糊涂一辈子,哇卡卡卡卡
主题帖子积分
新手玩家, 积分 16, 距离下一级还需 14 积分
新手玩家, 积分 16, 距离下一级还需 14 积分
flyrack 发表于
曾经有人吐槽用I7的CPU 4G的内存跑mincraft很卡&&买不起那么好的配置 也不知道真假 ...
我的世界,所能用的内存是有限的,你即使有100G内存,它仍然是用那么多
主题帖子积分
游戏狂人, 积分 1266, 距离下一级还需 734 积分
游戏狂人, 积分 1266, 距离下一级还需 734 积分
本帖最后由 nray 于
08:49 编辑
同26楼,用C# + XNA,而且C#也跨平台,在不少方面已逐渐取代c++。
java更适合服务器端, 如果做客户端或单机的话不推荐. C#与C++, C#更合适,开发效率高,C++更适合中低层开发。
主题帖子积分
游戏达人, 积分 2043, 距离下一级还需 1457 积分
游戏达人, 积分 2043, 距离下一级还需 1457 积分
nray 发表于
同26楼,用C# + XNA,而且C#也跨平台,在不少方面已逐渐取代c++。
java更适合服务器端, 如果做客户端或单机 ...
的确,C#现在用武之地越来越多了,网站,客户端程序(winform),华丽客户端程序(WPF),华丽的网页(Silverlight),分布式(WCF),游戏等各个方面都已形成非常成熟的体系。而且C#是入门最快的语言,再加上VS这个最好用的IDE,开发效率绝对没得说,何况现在还有Unity3D这么好的引擎,虽然微软不再更新XNA,但是XNA的跨平台版本,monogame的发展非常迅速,已经可以在Windows,Mac OS,Linux,Android,IOS上完美运行了,例如神庙逃亡,堡垒,七日杀,Terraria,魔能,等等,真正实现了write once,run everywhere,而且从语言特性本身,C#的3D图形性能可以轻松达到C++的70%,所以我个人认为,独立游戏开发首选语言是C#,这是开发效率与性能最佳的平衡点
天王级的玩家
3DM死忠专属勋章
奥运会活动金牌数猜中者之一
Powered by

我要回帖

更多关于 lua开源项目 的文章

 

随机推荐