去年最受欢迎的语言和往年一样,没有变化,仍然是:Java、C、C、PHP、Basic。前几名的语言要在短短的一两年有变动,是不太可能的。这五个语言哪个不是占据Top5的位置五或十年以上?估计2009年仍然是这样的局面,由这几个语言独占鳌头。
但C#已经在快步进逼BASIC,可能再过两年就可以进入前五名。C#上升,BASIC下降,某种程度上反映出微软的VB程序员正转换到C#语言。C#正在逐渐累积和Java抗衡的能量。
在2009年,最值得重视的编程语言好消息,应该就是C了。C0x的x最终被设定为9,将于2009年推出这个标准。经过十年的经验累积,许多C既有的缺点都将在这个标准中获得改善,值得我们期待。
得益于Google的强力背书下,Python这几年小有斩获,现在已经变成通用型脚本语言的第一选择,Python兴起,导致Perl风华难再,两者消长的态势相当明显。而且在2008年末,大家期待已久的Python30也终于推出了。
现今,我们生活在Web的时代,Web后端或许百家争鸣(Java、PHP、NET、),但Web前端还是JavaScript一枝独秀。尽管JavaScript语言存在许多为人所诟病的地方,但JavaScript的重要性仍会持续上升。
对Delphi来说,我承认我过去看走了眼,认为它会持续触底,但2008年显然是Delphi重新被群众拥抱的一年。Delphi曾经拥有许多高手级的使用者,甚至对VisualBasic造成威胁,但是过去这几年在Java和NET的出现之后,以及Web应用席卷全球后,Delphi明显地被边缘化了。外患加上内忧(Borland公司内部的变动),使得Delphi的形势相当不佳,连原文书都找不到几本。在Borland将开发工具部门切割出CodeGear,接着CodeGear又被Embarcadero买下之后,Delphi好像又渐渐有起色了,但说它拨云见日还太早。
如果说Delphi触底反d,那么遭遇完全相反的就是Ruby了,近期Ruby的招聘大幅降低。对于一个窜升太快的语言,需求稍微有跌落,是正常现象。Ruby长期应该仍会是缓慢上升的格局。
今年是Lua丰收的一年,能见度大增,除了用在游戏软件开发之外,也陆续被一些重要的商业软件商所采用(例如Adobe公司)。我看好Lua,因为在嵌入式语言领域,还没有其他语言可以与之匹敌。
说到Adobe,今年推出AIR之后,好像市场的热度还没起来,所以Adobe的官方语言依然载浮载沉。我希望它能在2009年有更好的表现。
Erlang在2008年的表现不错,持续缓慢上升。Java平台上的两个语言Groovy与Scala也开始受到关注。这些新语言某些程度也相对地呼应了函数式编程(functionalprogramming)与动态语言崛起的现实状况。
根据Net在2009年1月的数据显示,Apple计算机的市场占有率已经达到963%,而且iPhone在过去这一年半的销售数字更是相当抢眼。受其影响,开发MacOS应用软件的官方语言Objective-C也大有斩获,越来越受到重视。要不是Apple的笔记本太贵我买不起,否则我早就开始学Objective-C了。
我注意到过去一年有一个奇怪的语言忽然冒出头,叫做Alice。Alice是一个3D动画的制作环境,适合用来辅助说故事。这个语言之所以叫做Alice,该不会是和“Alice'sAdventuresinWonderland(爱丽斯梦游仙境)”的故事有关?
容我在此有一点私心介绍一下REBOL语言。根据目前的开发进度来看,2009年将会是REBOL30发布的一年。我希望大家多多关注这个语言。你可以到我的REBOLOGY博客(blogspot)上看看它的动态。
分析完重点语言之后,就整体来看,我们会发现动态语言和函数式语言越来越受欢迎。我自己就是从C、C到Java、C#,再到Erlang、REBOL,我使用的语言越来越动态、越来越偏函数式编程。
动态语言受欢迎
由于动态语言越来越受欢迎,NET和Java都注意到这样的现象,试图让动态语言可以更容易地整合到自己的平台上。Java阵营的DaVinciMachine,微软的DLR(DynamicLanguageRunti-me)都是这种趋势下的产物。我们可以预期在不久的未来,动态语言会更加蓬勃发展。
动态语言势力之广,可能远远超出你的想象,下面列出常见的动态语言:D、JavaScript、、Erlang、Groovy、Lisp、Lua、Objective-C、Perl、PHP、Python、Ruby、Scala、Smalltalk、Tcl、VBScript。
究竟动态语言有什么样的魅力?因为动态语言可以用更简单的方式,做到静态语言很难做到的事。我很难用三言两语介绍动态语言的特点,而且动态语言的定义也似乎见仁见智,值得写一篇专文好好地介绍。
函数式语言崭露头角
除了动态语言,函数式语言也是一种趋势,连微软都推出了F#。去年年中我在台湾微软讲过两场F#的讲座,听众不少,显示大家对这类编程技术相当好奇。
函数编程(FP)长期以来没有出现在主流的商业软件世界,真正让FP无法被接受的原因可能是“执行效率”。传统上,函数式编程语言的效率确实比命令式(imperative)编程语言来得差,这在商业系统上是不能忍受的。但是这个原因却有了变化。今天,我们有了新的衡量标准:“简单”、“快速开发”比其他因素都更重要,因为现在软件的复杂度已经到了我们无法忍受的地步,而IT产业的竞争也比以往激烈许多。
想要“简单”、“快速开发”,就要用比较高阶的抽象,因此函数式编程比命令式编程更适合现在的开发环境。这些年来硬件的进步,使得函数式编程的效率不再是大问题;甚至由于编译技术的进步,函数式编程语言的执行速度,现在也已经不再是吴下阿蒙。
近年来硬件的发展,使得局势似乎180度反转成为对FP有利的局面:多CPU、多核心、超线程(HyperThreading)的硬件架构普及,以及分布式运算的流行,这根本就是专为滋养FP繁殖而打造的环境。
但是,大多数的程序员想从OO或者procere式的编程方式,转到FP,难度是不小的。
语言联合国
当一个系统比较大的时候,使用混合语言编程是很常见的,因为:
每个语言都有适合使用的时机,一个大系统可以分成多个次系统或模块,每个次系统都有不同的特质,适合采用不同的语言。
大系统开发时,开发者的人数变多。每个人倾向于使用自己熟悉的语言和工具。
以我自己的例子来说,基于上面的考虑,我规划的系统,同时使用C、C#、REBOL、Lua,未来可能还会加入Erlang。我们用C进行系统编程(处理低阶的,和 *** 作系统相关的部分),使用C#写跨平台的服务器(未来考虑用Erlang取代),使用REBOL写解析器和编译器,使用Lua作内部脚本语言。每个语言各适其所。
使用混合语言的开发方式,另一个好处是程序员擅长什么就用什么。学习一个语言到精通的地步,需要很长的时间。我们无法要求自己团队的程序员都能使用某个我所熟悉的语言,可以退而求其次,让他们用自己最熟悉的语言,只要开发出来的东西符合我们规定即可。
使用混合式语言开发,只要模块切割得当,接口定义清楚,架构设计正确,那么绝对是可行的。这是我的经验之谈。
但是也请注意,混合多语言可能会导致维护难度的提高。当开发某模块的人离职,且当初他所使用的语言没有其它人会,这个时候麻烦就来了。
混合多种语言开发系统,有可能要面对语言之间的阻抗(impedance)问题,就好像不同国家之间会有不同的文化隔阂一样。好的系统设计应该要考虑到这一点,减少模块之间的接触点,设法让语言之间的阻抗降到最低。
我的建议
如果你想培养一个全能的联合国梦幻开发团队,我的建议是要集合下面的语言人才:
C:进行系统开发
C:进行COM与传统的微软技术开发
C#:进行现代的微软技术开发
PHP:进行Web后端开发
JavaScript:进行Web前端开发
Objective-C:进行Mac或iPh-one开发
Java:毕竟许多地方还是会用到Java
Python:进行脚本开发
脚本,是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。下面我们就来谈谈游戏脚本策划究竟是干什么的。想了解更多相关资讯请持续关注我们应届毕业生培训网。
游戏脚本策划主要干什么
脚本策划近几年逐渐被重视。越来越多的引擎,越来越多的游戏,对游戏脚本的定义和开发的支持,让脚本的功能越来越强大,也成为游戏策划开发游戏的利器之一。 在介绍脚本策划之前,我有必要先解释一下什么叫脚本。
通俗点说,脚本就是利用程序实现一个简单的循环。放在游戏中的具体例子就是:大家都知道,网络游戏中的练级场所会定时、定点刷新怪物。但这怪物是怎么刷新出来的当然不是由GM上线刷新,而是利用事先设计好的脚本,系统将自动按时间和地点刷新怪物。 而脚本策划所要做的,就是制作游戏中不同的脚本,比如上面提到的怪物刷新脚本、任务脚本等等。
游戏脚本策划是策划团队中的“程序员”
脚本策划一般需要有一定的编程基础,因为脚本本身其实就是一种程序。
脚本策划的工作内容比较单一,属于偏执行方面的策划,是策划团队中的“程序员”,主要负责游戏中脚本程序的编写。
脚本策划类同于程序员但又不同于程序员,因为会负责游戏概念上的一些设计工作。通常是游戏设计的执行者。因此游戏脚本策划必须要有编程功底,他的工作是任务等的脚本编写,以及管理程序提供的各种需要策划维护的脚本接口。
脚本语言就是游戏世界得以运行的基石
如果说开发语言是游戏程序得以运行的基石,那么脚本语言就是游戏世界得以运行的基石。一切剧本、、音乐、动画等皆是由脚本语言整合在一起并由程序解释执行的。所以可以说脚本是程序与剧本之间的桥梁,所以也是主程序与剧情负责必须共同掌握的部分。
脚本是如何形成的程序设计的本身拓展和设计越来越复杂,而且分划出不同的类型,同时在继承发扬中丢失着,底层的构架被越来越多的人所抛弃,程序的东西,让人望而却步,无法驾驭,而脚本就如程序管理员一样抓住程序设计本身一些最基本的构成思路和运行机理,是一种总结概括,把重点提炼,把相关归类,把过程简化,保留一般的`规则。 脚本简单地说就是一条条的文字命令,这些文字命令是我们可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。
各个游戏公司常用的脚本有:LUA和PYTHON
有些游戏公司的脚本,是由公司程序员自己编写的一种开发工具。
常用游戏脚本中,目前应用比较广泛的有几种,一个是LUA,一个是PYTHON。
LUA脚本,在魔兽世界中发扬光大(后来的征途中好像也采用LUA脚本),好多游戏都开始接受并且学习这种脚本知识,以期能应用到自己游戏中,游戏脚本的好处就是,能够快速的调动一些游戏资源,利用自己手上的关键字段进行指挥,统领,运营部门最适用。
lua脚本与python脚本对比分析
1、两者的定位不同。python的定位在于自身的独立开发,即是说python定位于自己能解决所有的问题。lua定位在与其它的代码,尤其是C++代码进行相互配合的编译,单独的Lua本身没有任何的意义。
2、站在解决问题的角度上看。python依靠自身越来越强大的库,让编程者能实现越来越多,越来越复杂的问题。lua本身则必须与其它的编译语言结合,才能解决问题。以C+++lua来举例。单独的C++,因为C++的复杂性,在其解决问题提供方便的同时,也给程序员带来了很大的麻烦,这些麻烦主要有两个方面:1,C++本身,特别是能用好C++,对程序员就来说就是一个很高的要求。2,在解决复杂问题时,C++程序结构的复杂性和逻辑实现的复杂性,给程序员对程序的改进和维护带来了很大的麻烦。而C++与Lua的结合,让C++可以只负责为lua提供各种基本的功能函数库,而Lua调用这些库来实现各种逻辑功能。这种分工可以让程序员将程序中的基本代码库和逻辑实现代码进行分离,使程序的效率和可维护有了很大的提高。所以,如果真的要站在解决问题的角度来对python和lua进行对比的话。实际上,是C++与python进行对比,而与lua无关。
3、python与C++对比,我觉得python与C++对比的优势就在于其所提供的基本库,大大的降低了程序复杂度与可维护性对程序员本身的要求。比如,同样的功能,如果是C++来做的话,可能其程序员必须具备三年的经验,如果是python来做,而python又有解决问题所需要的库的话,一个具有一年程序经验的程序员可能就能完成了。但是,同样的,如果是C++与Lua结合来解决问题的话,可能就只需要半个高级程序员和一个只有c语言一年经验的程序员就可以了。半个高级程序员负责提供lua的函数库,另一个程序员,只需要用这些代码库实现逻辑就行了。
综上所述,C+++lua的开发模式,和python源代码库开发+python脚本开发模式其实是一样的。但是站在程序员的角度上来说,C+++lua就更为简单一些,因为除去基本的lua解释代码外,C++可以为lua动态提供各种函数库。而python程序员则必须受制于python所提供的各种功能库。所以,如果解决一些具有普遍性和重复性的问题时,python是有优势的,因为有很多的代码可以不用重写,而C+++lua则必须重构。如果是解决一些非普遍的问题,如果python本身没有提供解决这些问题的库的话,python程序员,就必须走回C++的老路。
首先需要确定开发语言,比如c,c++,java,python,php,net等,当开发语言确定后就可以根据语法规则通过代码编辑器开始编写代码了。
软件开发学习是一个非常不错的选择,就目前软件开发而言java专业仍是比较吃香的一个专业,就业也是很不错的。
这专业会学习以下语言:C,JAVA,PHP,PYTHON,MYSQL,JAVASCRIPT另外就是各个语言的框架,提高开发速度的。下面是跟数据相关的知识。
1如果没有语法错误, 则以函数形式返回编译好的代码块; 否则,返回 nil 加上错误消息。
如果结果函数有上值, env 被设为第一个上值。 若不提供此参数,将全局环境替代它。 所有其它上值初始化为 nil。 (当你加载主代码块时候,结果函数一定有且仅有一个上值 _ENV ))。 然而,如果你加载一个用函数(参见 stringdump, 结果函数可以有任意数量的上值) 创建出来的二进制代码块时,所有的上值都是新创建出来的。 也就是说它们不会和别的任何函数共享。
2接下来就是根据以上信息进行下面的 *** 作,chunkname 在错误消息和调试消息中,用于代码块的名字。 如果不提供此参数,它默认为字符串chunk 。 chunk 不是字符串时,则为 "=(load)" 。
字符串 mode 用于控制代码块是文本还是二进制(即预编译代码块)。 它可以是字符串 "b" (只能是二进制代码块), "t" (只能是文本代码块), 或 "bt" (可以是二进制也可以是文本)。 默认值为 "bt"。
3Lua 不会对二进制代码块做健壮性检查。 恶意构造一个二进制块有可能把解释器弄崩溃。
运行程序来遍历表中的所有域。 第一个参数是要遍历的表,第二个参数是表中的某个键。 next 返回该键的下一个键及其关联的值。 如果用 nil 作为第二个参数调用 next 将返回初始键及其关联值。 当以最后一个键去调用,或是以 nil 调用一张空表时, next 返回 nil。 如果不提供第二个参数,将认为它就是 nil。 特别指出,你可以用 next(t) 来判断一张表是否是空的。
索引在遍历过程中的次序无定义, 即使是数字索引也是这样。 (如果想按数字次序遍历表,可以使用数字形式的 for 。)
4当在遍历过程中你给表中并不存在的域赋值, next 的行为是未定义的。 然而你可以去修改那些已存在的域。 特别指出,你可以清除一些已存在的域。
如果 t 有元方法 __pairs, 以 t 为参数调用它,并返回其返回的前三个值。
否则,返回三个值:next 函数, 表 t,以及 nil。
5传入参数,以 保护模式 调用函数 f 。 这意味着 f 中的任何错误不会抛出; 取而代之的是,pcall 会将错误捕获到,并返回一个状态码。 第一个返回值是状态码(一个布尔量), 当没有错误时,其为真。 此时,pcall 同样会在状态码后返回所有调用的结果。 在有错误时,pcall 返回 false 加错误消息。
希望能帮到你,谢谢!
mugen主程序论外杀伤失效的解决办法:
第一步,先了解主程序版本,运行游戏,在菜单界面按F1
第二步,打开data\mugencfg,搜索“[Console Init]”
第三步,打开游戏目录,看看根目录下是否有以下这些文件
fplua
initlua
mauxlua
mugenlua
playerlua
vectorlua
如果缺少的话,可以下载一个11B1的主程序,然后在data里面找到缺少的文件,复制到你游戏的根目录
原因:lua53-32dll文件丢失或者损坏了。
1、首先打开浏览器,百度搜索“lua53-32dll下载”,点击打开一个安全的网站。
2、然后点击一个下载地址进行下载。
3、下载完成后,右键单击压缩包,选择“解压文件”。
4、然后点击右上角的显示。
5、如果Windows 95/98/Me系统,就选择C:\Windows\System目录。Windows NT/2000系统,就选择C:\WINNT\System32目录。Windows XP/WIN7/win10系统(64位系统对应64位dll文件,32位系统对应32位dll文件),就选择C:\Windows\System32目录。系统是64位的,就选择dll文件复制到C:\Windows\SysWOW64目录,回车确定。
6、按“win+R”打开运行,输入regsvr32 lua53-32dll",回车即可解决。
转自某位大侠的回答:
一般游戏引擎都是用C或者C++开发的,3D游戏很少有java或者C#的,尤其是大型游戏,基本都是C/C++与一些HLSL作为基础的。大部分都是使用商业游戏引擎。
对于RPG等情节性很重要的游戏,script会被用来写剧情以及事件关联等,使用的script语言可以是目前有的商业语言,也有的引擎实现了自己的script。
当然,也有很多游戏是自己开发的游戏引擎,一般来讲C/C++用的多。开发工具一般来说不是很重要,因为一般的游戏引擎都会对若干平台若干编译器进行支持的。
一般来说VC肯定有了,而且还是分2001,2003,2005版的,有的还有g++和Dev-C++的支持。
讲得很专业,不知道楼主能否看懂,呵呵!
下面是通俗点的,重点在上面~~~
引擎一般都是c,c++
以仙剑为例:
DOS版的仙剑是用Borland C++ for DOS写的
仙剑98柔情版是用的是VB
剑侠情缘II是用C++ Builfer写的。
其他RPG大多是用VC,
开发游戏(专业级的游戏)需要精通C++
熟练Win32 SDK
掌握DirectX技术
会用一种32位的C++编译器(VC,C++Builder,DevC++,Borland C++)
还要有灵感,创意,等等。。。
以上就是关于现在做程序主要用哪些软件全部的内容,包括:现在做程序主要用哪些软件、浅谈游戏脚本策划的职能、lua学习的基础是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)