Lua语言自学之01.基础概念的理解

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

脚本的概念在程序中十分重要,在游戏开发领域,它更是决定性的。脚本语言让程序员可以区分游戏开发的“硬核部分”和“软核部分”。“硬核部分”一般对计算机性能要求很高,在开发过程中变更较少,重要性很高。图形引擎和人工智能模块是其中的代表。这些模块最适合使用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.快速构建原型

原文地址:https://www.cnblogs.com/fenqinearl/p/9245087.html

时间: 2024-08-27 22:15:36

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

一步步AS400-Cobol 上手自学入门教程01 - 基础概念(原创)

先学习基础概念 1.COBOL字符:包含: User-defined words 用户定义字符 ?System-names ?Reserved words 关键字 2.用户定义字符User-defined words:合法的定义: ? A - Z ? a - z ? 0 - 9 ? - (连字符). 3.系统名 System-names Computer-names ?Language-names ?Implementor-names: Environment-name Assignment-n

Elasticserach学习笔记-01基础概念

本文系本人根据官方文档的翻译,能力有限.水平一般,如果对想学习Elasticsearch的朋友有帮助,将是本人的莫大荣幸. 原文出处:https://www.elastic.co/guide/en/elasticsearch/reference/current/_basic_concepts.html ElasticSearch有几个核心概念,了解它们将有助于我们的整个学习过程. 近乎实时(NRT)Elasticsearch是一个近乎实时的搜索平台.这意味着从你为一个文档建立索引到该文档可被检索

Spring -- IOC/DI 基础概念的理解

Spring -- IOC/DI 基础概念 思维导图: ------------------------------------------------------- IoC/DI 的基本概念 IoC是什么 ? IoC -- Inversion of control, 控制反转   在Java开发中,IoC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制.IoC是一种让服务消费者不直接依赖于服务提供者的组件设计方式,是一种减少类与类之间依赖的设计原则. 理解IoC的关键是明

C语言(四)指针概念的理解

转载请标明出处: http://blog.csdn.net/u011974987/article/details/52270018: 前言 最近真的是忙的不可开交,公司一直给安排任务,连学习和写笔记的时间都没有了,落下好几次课的笔记都没有写,所以我抽空把目前的进度给追上来,不然会越落越多.加油吧~(感觉身体都要被掏空了) 指针 我们通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的.所以,学习指针是很有必要的. 正如您所知道的,每一个变量都有一个内存位

自学Android 01 基础

(所有学习资料来自mars和<第一行代码>) *系统构架: 我们在application framework上进行开发,具体要学习的是如何使用里面的类,如何实例化 *基于组件的应用程序开发: 活动:我们看得到的东西都是放在活动中.它是界面,用户进行交互. 服务:后台的,默默的运行,用户看不见. 广播接收器:接受来自各处的广播信息(监听手机发生的所有事情,监听系统一切行为),比如电话,短信,手机快没电了:当然我们也可以发出信息. 内容提供器:为应用程序之间的共享数据提供可能,比如我们想读取通讯录

Lua语言基础汇总(10) -- Lua中的环境概念

前言 Lua将其所有的全局变量保存在一个常规的table中,这个table称为“环境”.这种组织结构的优点在于,其一,不需要再为全局变量创造一种新的数据结构,因此简化了Lua的内部实现:另一个优点是,可以像其他table一样操作这个table.为了便于实施这种操作,Lua将环境table自身保存在一个全局变量_G中.例如,我们可以使用以下代码打印当前环境中所有全局变量的名称. 1 for n in pairs(_G) do print(n) end 在你的电脑上运行一下以上代码,看看结果. 全局

Lua语言基础汇总(9)-- Lua中__index和__newindex实践

前言 本文将通过几个简单的实例演示,巩固对__index和__newindex的理解,同时加深对Lua中元表和元方法的理解,如果对Lua的元表和元方法还不是很熟悉的话,请参考这篇文章:<Lua中的元表与元方法>. 具有默认值的table 我们都知道,table中的任何字段的默认值都是nil,但是通过元表,我们可以很容易的修改这一规定,代码如下: 1 2 3 4 5 6 7 8 9 function setDefault(tb, defaultValue)      local mt = {__

Lua语言基础汇总(12)-- Lua中的面向对象编程

简单说说Lua中的面向对象 Lua中的table就是一种对象,看以下一段简单的代码: 1 2 3 4 5 6 7 8 9 10 11 12 local tb1 = {a = 1, b = 2} local tb2 = {a = 1, b = 2} local tb3 = tb1   if tb1 == tb2 then      print("tb1 == tb2") else      print("tb1 ~= tb2") end   tb3.a = 3 pri

Lua语言基础汇总(5) -- 闭包

前言 在很多语言中都有闭包的概念,而在这里,我将主要对Lua语言的闭包概念进行分析与总结.希望对大家学习Lua有帮助. 什么是闭包? 闭包在Lua中是一个非常重要的概念,闭包是由函数和与其相关的引用环境组合而成的实体.我们再来看一段代码: 1 2 3 4 5 6 7 8 9 10 11 function newCounter()      local i = 0      return function () -- 匿名函数           i = i + 1           retur