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

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

    九个Console命令,让js调试更简单 By.cllgeek 一.显示信息的命令 1: <!DOCTYPE html> 2: <html> 3: <head> 4 ...

  2. location.origin兼容IE

    if (window["context"] == undefined) { if (!window.location.origin) { window.location.origi ...

  3. Vue利用canvas实现移动端手写板

    <template> <div class="hello"> <!--touchstart,touchmove,touchend,touchcance ...

  4. 记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

    记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb 前段时间我个人Google服务器意外不能用,并且我犯了一件很低级的错误,直接在gcp讲服 ...

  5. Android音乐播放器的设计与实现

    目录 应用开发技术及开发平台介绍 应用需求分析 应用功能设计及其描述 应用UI展示 一.应用开发技术及平台介绍 ①开发技术: 本系统是采用面向对象的软件开发方法,基于Android studio开发平 ...

  6. php开发微信APP支付接口

    之前在开发APP中用到了微信支付,因为是第一次用,所以中途也遇到了好多问题,通过查看文档和搜集资料,终于完成了该功能的实现.在这里简单分享一下后台php接口的开发实例. 原文地址:代码汇个人博客 ht ...

  7. LeetCode算法题-Merge Two Binary Trees(Java实现)

    这是悦乐书的第274次更新,第290篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第142题(顺位题号是617).提供两个二叉树,将其合并为新的二叉树,也可以在其中一个二 ...

  8. phoenix API服务发布

    概述 Elixir 的 Phoenix 框架对于开发 Web 应用非常方便,不仅有 RoR 的便利,还有 Erlang 的性能和高并发优势. 但是应用的发布涉及到 Erlang 和 Elixir 环境 ...

  9. jquery/js记录点击事件,单击次数加一,双击清零

    目的:点击按钮,点击后在网页上显示点击次数,双击清零 实现:js或者jquery 代码如下: <%@ page language="java" contentType=&qu ...

  10. @getMapping与@postMapping

    首先要了解一下@RequestMapping注解. @RequestMapping用于映射url到控制器类的一个特定处理程序方法.可用于方法或者类上面.也就是可以通过url找到对应的方法. @Requ ...