List of game engines that use lua: 2D Agen (Lua; Windows) Blitwizard (Lua; Windows, Linux, Mac) Cocos2d-x (C++/Lua/JS; Windows, Linux, Mac; iOS/Android/BlackBerry) Corona (Lua; Windows, Mac; iOS/Android) EGSL (Pascal/Lua; Windows, Linux, Mac, Haiku) G
很多Nginx Lua程序员入门的过程中会遇到一个问题就是选择编辑器IDE,其实Lua编辑器IDE过去流行的也有几种,但大多数都被人遗忘了,如果只是做纯Lua代码的语法检查,代码补全,很多的IDE都可以做到,VIM安了特定的支持插件也可以。
现在手游的server 端,一般都用哪种语言开发? 业界主要的是c/c++ + Python/lua模式做游戏服务器。c/c++做网络通讯数据传输,python/lua做业务逻辑。这样既保持了网络传输
随着智能手机成为主要的游戏平台,移动游戏引擎变得越来越流行。 下面将介绍7个最优秀的手机游戏引擎。
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。
cppcheck 是一个静态代码检查工具,支持c、c++ 代码。作为编译器的一种补充检查,cppcheck对源代码执行严格的逻辑检查。
它的语法简洁易上手,对新手友好,即使完全不会 lua 也能够快速入门,并且完全无任何依赖,轻量,跨平台。
它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。
自从大四下学期开始,经过短暂的软件开发经历之后,我毅然决定进入我梦寐以求的游戏开发行业,转眼间已经过去5年半了,在这个过程中,有过迷茫,有过放弃、有过疑惑,但是更多的是收获的喜悦,和技术上的进步。
今天讲一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运行在任何平台上,也可以嵌入到大多数语言当中,来扩展其功能。lua脚本是用C语言写的,体积很小,运行速度很快,并且每次的执行都是作为一个原子事务来执行的,我们可以在其中做很多的事情。由于篇幅很多,一次无法概述全部,这个系列可能要通过多篇文章的形式来写,好了,今天我们进入正题吧。
xmake是一个基于Lua的轻量级现代化c/c++的项目构建工具,主要特点是:语法简单易上手,提供更加可读的项目维护,实现跨平台行为一致的构建体验。
更多例子: https://code.google.com/p/playn/wiki/DemoLinks
总结了17个 C/C++业内非常经典的开源项目,能够很好的帮助上手与进阶C/C++项目开发,积累项目经验。
前言 主要有以下原因: 1. Python是解释语言,程序写起来非常方便 写程序方便对做机器学习的人很重要。 因为经常需要对模型进行各种各样的修改,这在编译语言里很可能是牵一发而动全身的事情,Python里通常可以用很少的时间实现。 举例来说,在C等编译语言里写一个矩阵乘法,需要自己分配操作数(矩阵)的内存、分配结果的内存、手动对BLAS接口调用gemm、最后如果没用smart pointer还得手动回收内存空间。Python几乎就是import numpy; numpy.dot两句话的事。 当然现在
Nginx 是可扩展的,可用于处理各种使用场景。本内容中,我们一起学习使用 Lua 扩展 Nginx 的功能。
下比较的基础都是基于一种编程语言+一定的第三方或者自己编写的网络库和底层进行的,Skynet稍微特殊,但总体比较合适放到比较中来 C# 开发效率:Windows下可以通过VisualStudio进行开发,其他平台可以使用MonoDevelop,非常方便 运行效率:JIT的性能优化比较到位,能适应90%性能环境 部署便捷性:可以通过交叉编译生成其他平台的可执行文件,通过mono运行可执行文件 调试便捷性:VisualStudio和MonoDevelop调试均很方便, 还可远程调试 上手度:对C系语言熟悉的几天
以下比较的基础都是基于一种编程语言+一定的第三方或者自己编写的网络库和底层进行的,Skynet稍微特殊,但总体比较合适放到比较中来 C# 开发效率:Windows下可以通过VisualStudio进行开发,其他平台可以使用MonoDevelop,非常方便 运行效率:JIT的性能优化比较到位,能适应90%性能环境 部署便捷性:可以通过交叉编译生成其他平台的可执行文件,通过mono运行可执行文件 调试便捷性:VisualStudio和MonoDevelop调试均很方便, 还可远程调试 上手度:对C系语言熟悉的几
个人对脚本语言认识不深, 尤其是动态语言... 但是问了好多人为什么逻辑用脚本写, 答案都是不用编译 这也只能怪DT的C++当初没设计好 由于WOW的成功, 让lua几乎成了游戏脚本的标准 原来的python/ruby/tcl啥的一下子就没落了, 都怪暴雪啊~ 虽然lua做为一个脚本语言来说, 非常的完美 但是我对它不是很感冒, 可能习惯了C系语言的语法了 对于C/C++/C#/Java/JS/AS类的我才看着比较顺眼 而且, 从学校开始, 好像自己就中了C#的毒一般, 虽然一直没机会大量应用, 但心中一直
XMake是一个基于Lua的轻量级跨平台自动构建工具,支持在各种主流平台上构建项目。
深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI, Artificial Intelligence)。
8LFS这个库可以实现平台无关(Linux和Windows通用)的文件系统访问 安装后只需 require "lfs"即可使用
包装 C 库时出现的一个常见问题是保持可靠性和检查错误。事实是,许多 C 程序因不提供错误检查而臭名昭著。不仅如此,当您将应用程序的内部结构公开为库时,通常可以通过提供错误的输入或以非预期的方式使用它而使其崩溃。
很多同学问我学游戏开发应该看些什么书,我在这里抛砖引玉,给一份推荐表,希望大家共同提高。由于本人英文不太好,推荐的大部书籍都是国人编写的,有些经典的外文图书可能是翻译不好,我自己难以读下去,所以未能推荐。
摘要: 在使用C++做服务器开发中,经常会使用到脚本技术,Lua是最优秀的嵌入式脚本之一。Lua的轻量、小巧、概念之简单,都使他变得越来越受欢迎。本人也使用过python做嵌入式脚本,二者各有特点,关于python之后会写相关的文章,python对于我而言更喜欢用来编写工具,我前边一些相关的算法也是用python来实现的。今天主要讲Lua相关的开发技术。Lua具有如下特点: Lua 拥有虚拟机的概念,而其全部用标准C实现,不依赖任何库即可编译安装,更令人欣喜的是,整个Lua 的实现代码并不算多,可以直接继承
在这个技术驱动的世界里,游戏行业是全球增长最快的行业之一。在每一款华丽精美的电子游戏背后,都有一种编程语言,为用户提供优质的体验。游戏开发者利用顶级的编程语言来构建游戏。不同的游戏项目使用了不同的编程语言,这取决于游戏类型,如主机游戏、电脑游戏或手机游戏,还取决于互动性的程度。
Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。使用Python语言编写的Gunicorn作为Web服务器,也能够运行Python语言编写的Web程序。Python定义了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的沟通。一些Web框架,如Django、Pyramid、TurboGears、Tornado、web2py、Zope、Flask等,可以让程序员轻松地开发和管理复杂的Web程序。
这个版本提供了全新的vs工程生成插件(非常感谢@OpportunityLiu的贡献),跟之前的生成vs的插件处理模式上有很大的不同,原先生成的vs工程是把所有源文件展开后,转交给vs来处理编译。
云风最近写了一篇博客《C语言的前世今生》。作为长期使用C语言开发网络游戏服务器的程序员,云风是有理由写这样一篇文字,不过还是感觉谈的不够深入,C语言在业界使用的现状没有怎么描写,有些意犹未尽。在这里想比较系统的谈谈个人对C语言学习方式方法的理解。分别按照书籍、实验环境搭建、网络资源来分别介绍,希望能写的比较完整全面一些,给想学习C语言的朋友一个有价值的参考。
Eunomia 是一个使用 C/C++ 开发的基于 eBPF的轻量级,高性能云原生监控工具,旨在帮助用户了解容器的各项行为、监控可疑的容器安全事件,力求提供覆盖容器全生命周期的轻量级开源监控解决方案。它使用 Linux eBPF 技术在运行时跟踪您的系统和应用程序,并分析收集的事件以检测可疑的行为模式。目前,它包含性能分析、容器集群网络可视化分析*、容器安全感知告警、一键部署、持久化存储监控等功能,提供了多样化的 ebpf 追踪点。其核心导出器/命令行工具最小仅需要约 4MB 大小的二进制程序,即可在支持的 Linux 内核上启动。
本篇中, 我们将以lura库为例(笔者之前项目使用的Lua的 bridge实现), 介绍如何以C++反射作为基础设施, 以更简洁的方式来实现一版lua的bridge. 本篇会围绕lura库的前世今生来逐步展开.
导语 | 本文我们将以lura库为例,介绍如何以C++反射作为基础设施,以更简洁的方式来实现一版lua的bridge,主要围绕lura库的前世今生来逐步展开。(本文一些知识需要适当了解lua c api和lua的meta table相关知识,了解相关知识阅读效果更佳。) 在上篇《C++反射:深入探究function实现机制!》中我们对反射中的Function实现做了相关的介绍,本篇将深入lura这部分进行阐述。 一、lua bridge核心功能概述 Lua的bridge层实现比较核心的功能是导出C++类到
之前编写Lua语言的脚本完全是在游戏服务器编写怪物、NPC、交易等一系列脚本(这些是建立在C++调用Lua实现游戏的功能)。我就没过在系统级别使用过Lua命令去执行lua脚本。后期我更换了Mac设备,与Windows压根不是一个系统!而且我早期获取Windows的Lua编译器(内置的了Lua库)压根不能适配后期的开发场景。后来接触过OpenResty,发现直接通过Lua操作Redis太方便了。现在准备在游戏服务器引入Redis(增加服务器功能),减少玩家操作对MariaDB数据的压力。于是就有了本篇从Lua入门第一步。
在很多游戏中,脚本语言是不可或缺的一部分,很多游戏都使用到了Lua,js,python一类的脚本,脚本语言可以在很多方面给开发进程带来帮助。脚本语言可以作为初始化文件读入变量和游戏数据的一个快速而方便的方法。它们通常因为具有节省编译时间提高生产效率、提高创造性和拓展性的有点而受到众多游戏开发厂商的青睐。在本篇博客中,马三将和大家一起学习一下Lua这门脚本语言。
Webbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。
Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。
在当今的互联网时代, java, 安卓, ios, 大行其道,而c/c++却显得越来越落寞。 其实这并不是c/c++程序员本身的问题,而是这是一个产品快速响应市场的年代。用过c/c++的人都知道, 使用c/c++直接去开发一款产品是多么的痛苦。而像java这样的高级语言,拥有各种框架 各种库,这是c/c++望尘莫及的地方。那么c/c++存在的意义是什么呢?那就是在其他语言不能做或者不适合做的地方。像那些可用或者可不用c/c++的地方, c/c++基本都退出了。 而在这几个领域c/c++依然是不可替代的,
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。官网:The Programming Language Lua
提到编程语言,人们第一时间想到的无非是:哪个编程语言简单易学,亦或是最挣钱等。但是编程语言功耗问题却被很多人忽视。那么作为程序员的我们如何选择编程语言,使其以低能耗高功效地工作呢?
xmake集成了内置的远程包依赖管理,用户只需要简单地在项目中添加自己所需要的包和版本,即可自动下载和集成对应的包到项目中,并且实现编译和链接。
全局表中存放了name和hello world的对应关系, 可以通过name在全局表中找到对应的hello world
一 框架层面 二 Lua层面 三 工具层面 四 android打包 一 框架层 总体来说,cocos2dX提供的一个简便的框架,包括了渲染,动画,事件分发,网络还有UI,物理引擎等几大模块。对于做一个游戏从功能上来说已经 足够了。我从这几个方面分别探讨下cocos2dX的优缺点以及我们在项目中是怎样用到的 (1)渲染:渲染这块,他的渲染数据跟Sprite进行了绑定,然后对于openGl也是直接进行了调用,而不是採用策略或者插件进行调用。对于后期假设採用DX的话 我认为这块比較冗余些。可是这些并不会影响游戏的渲染速度。它提供了batch来进行批次渲染。所以在游戏里,我们对资源进行了分组,然后分别用textPacker 拼成一张图片,格式呢 没有alpha的採用 RGB565,有alpha的採用RGBA4444,要求高的话就採用RGBA8888,然后统一採用批次渲染。游戏的速度会提升非常多。 对于游戏数据的管理,cocos採用CCTextureCache这个单例类进行管理。释放能够採用所有释放,还有释放没实用过的。而且也提供了异步载入动画资源的方法 (PS:这个对于想做ARPG的同学来说,但是好东西了)。所以对于渲染这块,我们尽量用批次,然后记得释放内存就OK了。 (2)动画:cocos他提供了一套action机制。总体来说,是sprite run action。然后驱动action里面的动画数据,进行播放动画。全部的动画都能够走action 接口。对于使用者来说,也不用去关心其它东西,仅仅须要初始化好你想要的动作,然后把动作数据塞给action。然后让sprite run 就能够了。大概action就是这个 流程。本来我们想自己写自己的动画,可是到后期,由于自己写一套工作量大。所以对于move,scale什么的仍旧採用cocos自己的。仅仅有animation採用了我们的。 可是如今想起来,全然没有必要。cocos提供的已经足够了。我们所须要做的就是把动作编辑器导出的动画数据用cocos的动作翻译(对于动作编辑器我后面会讲)写 这么一个层就好 (3) 事件分发:cocos对于事件分发这块就比較弱了。他是事件管理是通过存储每个object以及他接收事件的优先级。然后进行分发。可是他并没有对场景进行树的管理 。所以我们的改变就是建立起场景树,然后事件分发先从场景顶端往下分发。期间每一个节点能够设置是否响应以及是否继续往下传递的属性(作为OC出身,这块全然模仿苹果那套) 全然丢弃了cocos的那一套事件分发机制。对于场景树的维护,仅仅须要每次step的时候更新下。所以对于查询性能须要好好写一下 (4)网络:cocos提供了对curl的封装。提供了http的一些简单比方get,post的封装。但对于断点续传等并没有封装。对于socket,cocos则全然没有提供。我们採用了 BSDSocket (5)UI:UI这边,cocos提供了几种简单的控件,比方CCButton等。他们都继承于CCSprite,可是太少。并且初始化方法是在是太过于奇葩。所以我们自己写了一套UI。 (事实上无非也就是 button,label,tableView,scrollView,image还有textInput)他们也都继承CCSprite。然后添�一些每一个控件独有的逻辑就能够了。最麻烦 的应该就是textInput了。照着cocos提供的input写一遍,然后改改。(cocos提供了CCEditeBox,可是这货的的解决的方法是在IOS上调用IOS的的控件。可是他是直接加到了egLView上,对于页面移动,页面关闭处理起来比較麻烦。 所以这个临时还不能用) 二 lua 为了让游戏更有灵活性,cocos提供了lua。由C++做引擎,然后lua去写逻辑。这样就能够绕开苹果的审核。我们就讨论下C++与lua碰到的问题。 (1)通讯:cocos採用了tolua++来进行C++与lua的通讯。看Cocos2dXLuaLoad文件中,那些就是lua与C++通讯的一个层。详细通讯原理比方是通过 栈,什么的我就不讲了(事实上我也不太懂)。这些东西tolua++都已经替咱封装好了。我们须要做的就是写好C++文件 然后生成load文件。在CCLuaEngine里调用你生成的那个load方法。lua就能够訪问C++了。须要说明的是,我们这边尽量是lua调用C++的方法,C++不会去调用 Lua的方法。调用也是通过callBack去调用。 (2)问题: 问题1.当C++里面的函数须要传递lua指针时:在C++里,lua的函数指针是一个int的 变量。生成时
导语 你还在使用c++开发UE4吗?会不会感觉太慢了?会不会感觉编译一次就可以去楼下喝杯咖啡了?会不会感觉总是提心吊胆,搞不好什么时候就crash了?现在不用发愁了,slua出unreal版本了,在unity上广泛流行的slua发布了unreal版本,还是那么强大,还是那么好用,你还等什么,赶快上船吧。 1 为何做unreal版本? 目前unreal提供的开发语言包括c++和蓝图,但这2个开发语言都或多或少存在一定的问题,对于c++来说,最大的问题是c++开发人员越来越少,精通c++开发的同学更少,而且c
领取专属 10元无门槛券
手把手带您无忧上云