编程不只是这么简单,它的思维是理性的编程思维,操纵机器干事本来就不是一件简单的事,要干什么,该怎么做,怎么做得才好。

脚本的概念在程序中十分重要,在游戏开发领域,它更是决定性的。脚本语言让程序员可以区分游戏开发的“硬核部分”和“软核部分”。“硬核部分”一般对计算机性能要求很高,在开发过程中变更较少,重要性很高。图形引擎和人工智能模块是其中的代表。这些模块最适合使用C或者C++这样的语言开发,可以提供更好的性能。“软体部分”控制“硬核部分”来创建最后的图形和大量的物体。这个部分更适合使用Lua这样的脚本语言开发,可以为程序员在尝试,测试和改变游戏代码上提供更多的灵活性。

从游戏开发者角度看,脚本语言可以帮助用户很容易返回游戏开发过程。也许需要几个小时来构建一个“干净”得游戏项目,但脚本语言可以帮助用户快速做出修改并且立刻看到游戏效果。游戏设计师可以独立于程序员尝试新想法,游戏美术设计师可以创建图形界面把游戏和功能组合到一起。

脚本语言存在于由软件工程师编写并编译后得代码之上,通常实在运行时编译,是一种方便设计师或程序员处理和控制数据得简单语言。

从游戏设计师角度来说,使用脚本语言开发游戏可以很清楚地界定底层代码和游戏玩法代码。通常,在引入了脚本语言的项目中,底层模块交给C++这样的核心语言,诸如界面交互,数据管理,人工智能和事件处理等,一般使用脚本语言实现。这种职责的划分可以让用户的游戏更加稳定,并且使得并行开发成为可能。

注:

开发并行性的三种途径:

  1、时间重叠;

  引入时间因素,是让多个处理过程在时间上相互错开,轮流使用同一套硬件设备的各个部分,以加快硬件周转使用来赢得速度。

  2、资源重复;

  通过重复设置硬件资源来提高性能。

  3、资源共享 ;

  是用软件方法让多个用户按一定时间顺序轮流使用同一套资源,来提高其利用率,相应也就提高了系统的性能。

  并发的实质是一个物理CPU(也可以多个物理CPU)在若干道程序之间多路复用,并发性是对有限物理资源强制行驶多用户共享以提高效率。

  并行性是指计算机系统具有可以同时进行运算或操作的特性,在同一时间完成两种或两种以上工作。它包括同时性与并发性两种含义。同时性指两个或两个以上事件在同一时刻发生。并发性指两个或两个以上事件在同一时间间隔发生。

  实现并发技术的关键之一是如何对系统内的多个活动(进程)进行切换。

计算机语言用于解决一些特定的问题,从系统控制级别的C和C++到人工智能处理语言(如LISP)。脚本语言通常拥有一些共同点,他们一般用于在快速开发中(低成本,高效率),并采用接近自然语言的语法,对于非程序员背景的人更已于书写和阅读。

Lua 的简介

Lua和传统的脚本语言不同,它是一种易整合语言(glue language)。一般的脚本语言用于控制执行重复的任务,而易整合语言可以让使用者把其他语言的功能整合在一起。这样就让脚本程序员有了更大的发挥空间,而不仅仅局限于执行命令。

lua可扩展性强,易集成。

lua的可移植性让它可以在各大平台跑起来,效率理想。

lua的小巧可以在更新程序时依然使程序变的不那么庞大,因为目标机器空间是有限的。

lua对于程序开发也是可以达到需求和用法的,运行效率高。

游戏项目中的Lua

1.游戏界面

2.管理游戏数据

3.事件处理

4.保存和读取游戏状态

5.人工智能   

6.快速构建原型

Lua语言自学之01.基础概念的理解的更多相关文章

  1. 一步步Cobol 400 上手自学入门教程01 - 基础概念

    先学习基础概念 1.COBOL字符:包含: User-defined words 用户定义字符 ŸSystem-names ŸReserved words 关键字 2.用户定义字符User-defin ...

  2. JavaWeb零基础入门-01 基础概念说明

    一.序言 从学校出来到实习,发现学校学的东西太过基础,难于直接运用于工作中.而且工作中,现在都以web开发为主,学校开了web开发相关课程.自己学的不够深入,所以本人自学JavaWeb开发,介于学习巩 ...

  3. Elasticserach学习笔记-01基础概念

    本文系本人根据官方文档的翻译,能力有限.水平一般,如果对想学习Elasticsearch的朋友有帮助,将是本人的莫大荣幸. 原文出处:https://www.elastic.co/guide/en/e ...

  4. lua语言自学知识点----Lua与.Net相互调用

    知识点: LuaInterface作用是用来完成Lua与C#的相互调用. LuaInterface核心库:1.luainterface.dll 用于C#读取lua(放在bin目录同级) 2.luane ...

  5. lua语言自学知识点----简单了解

    零碎知识点: lua:用lua写UI,更新UI,因为lua可直接跨平台解析,不需要编译,方便更新------>热更新. c#反射也可以达到更新,但非常麻烦,切不支持iOS. 在lua中一个人汉字 ...

  6. MVVM基础概念和理解

    在MVVM模式中,View封装UI和UI逻辑,viewmodel封装presentation逻辑,model封装业务逻辑和数据. View类 View的责任是定义屏幕上的结构和外观,在完美的情况下,v ...

  7. 【quick-cocos2d-x】Lua 语言基础

    版权声明:本文为博主原创文章,转载请注明出处. 使用quick-x开发游戏有两年时间了,quick-x是cocos2d-Lua的一个豪华升级版的框架,使用Lua编程.相比于C++,lua的开发确实快速 ...

  8. Cocos2d-x-Lua (2.x)脚本开发之 Lua语言基础

    从今天開始,往后将陆续更新Lua教程,主要是搭载Cocos2dx ,有不论什么疑惑或者不正确的地方.尽情指正.交流.探讨. 那么首先肯定是Lua语言基础的知识点.以下直接附上代码,凝视已经非常清楚.无 ...

  9. .NET基础 (01).NET基础概念

    .NET基础概念 1 什么是CTS.CLS和CLR2 开发和运行.NET程序需要的最基本环节是什么3 .NET是否支持多编程语言开发4 CLR技术和COM技术的比较5 什么是程序集和应用程序域 1 什 ...

随机推荐

  1. JS判断类型

    JS中的typeof方法可以查看数据的类型,如下: console.log(typeof 2); // number console.log(typeof "2"); // str ...

  2. JQuery显示,隐藏和淡入淡出效果

    为了把JQuery搞熟悉,看着菜鸟教程,一个一个例子打,边看边记,算是一晚上的一个小总结吧.加油,我很本但是我很勤奋啊.系统的了解它,就要花时间咯. <!DOCTYPE html> < ...

  3. nginx sub模块替换文本

    nginx的ngx_http_sub_module模块,可以用于修改网站响应内容中的字符串,如过滤敏感词.第三方模块ngx_http_substitutions_filter_module,弥补了ng ...

  4. python爬虫实战:利用scrapy,短短50行代码下载整站短视频

    近日,有朋友向我求助一件小事儿,他在一个短视频app上看到一个好玩儿的段子,想下载下来,可死活找不到下载的方法.这忙我得帮,少不得就抓包分析了一下这个app,找到了视频的下载链接,帮他解决了这个小问题 ...

  5. NFS 安装与配置

    NFS通常用于网络中的多台计算机实现共享存储. 由于测试环境没有购买阿里云的NFS,所以自己搭建一个NFS文件系统,实现一些比如上传图片,静态资源等同享功能. 下面的测试是在CentOS releas ...

  6. git submodule 删除及更新URL 转载的

    删除一个submodule 1.删除 .gitsubmodule中对应submodule的条目 2.删除 .git/config 中对应submodule的条目 3.执行 git rm --cache ...

  7. 对于windows操作系统磁盘访问权限修改的手残教训

    最近公司新配置的win10电脑,由于测试关于windows系统上项目的安装程序时默认使用了c盘安装,发现安装后的项目不是崩溃就是运行没结果的,偶然间发现同一个安装程序在d盘或其他非系统盘安装则正常.很 ...

  8. 我认知的javascript之作用域和闭包

    说到javascript,就不得不说javascript的作用域和闭包:当然,还是那句老话,javascript在网上都说得很透彻了,我也就不过多的强调了: 作用域:javascript并没有像其他的 ...

  9. Docker的使用初探(二):Docker与.NET Core的结合

    目录 Docker的使用初探(二):Docker与.NET Core的结合 添加Dockefile 1. 在创建项目时添加 2. 手动添加 3. 容器业务流程协调控制程序支持 Dockefile语法 ...

  10. yuan 老师 之 Django

    前端: 1.前端基础之JavaScript https://www.cnblogs.com/yuanchenqi/articles/6893904.html 2.前端基础之jQuery https:/ ...