• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

NobleRobot/NobleEngine: A li'l game engine for Playdate.

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

NobleRobot/NobleEngine

开源软件地址:

https://github.com/NobleRobot/NobleEngine

开源编程语言:

Lua 100.0%

开源软件介绍:

Noble Engine

A li'l game engine for Playdate.

The Playdate SDK is probably the most user-friendly console SDK ever made, but if you're familiar with state/scene-based game engine frameworks like Unity, Flixel, Citrus, or others, you may be looking for a library that can get your game "on its feet,” extend existing APIs, offer new features, or provide more intuative ways to leverage the SDK in your game.

If so, you're looking for Noble Engine!

Features

  • Complete scene lifecycle management. Handle update loops, sprites, input, and initialization steps on a per scene basis.
  • Scene transition API and animation library with over a dozen transition types (cross dissolve, dip-to-black, and more).
  • Settings/SaveGame API, supporting up to 1000 save slots and automatic updating of on disk files when you inevitably muck around with your data structure in development.
  • Boilerplate menu object, with simple way to add/remove items and manage “click” handlers.
  • Additional input methods, and per-scene `inputHandler` logic.
  • Full state manager for sprite animations.
  • New fonts! Including full Japanese katakana character set.
  • Fully documented code, explaining methods and architecture, and LDoc-generated documentation pages.
  • Full project template, with example scenes and launcher assets, to help beginners get started with Playdate development.
  • Random goodies, like a unified text drawing method for normal/aligned/localized text, one-line methods for showing/hiding the crank indicator and the FPS counter, and more.

Setup

Via Template

The recommended setup procedure is to clone the Noble Engine Project Template repository instead of this one. That project is available as a GitHub Template, which you can use to start your own project if you're hosting it on GitHub, or you can clone or download it manually.

The template repository includes this one as a git submodule. This way, you can mange your use of Noble Engine independently from your own code.

The project template also includes some usage examples to help you get up to speed on how Noble Engine works.

Manual setup

If, instead, you want to download or clone this repository directly in to a new or existing project, simply place it into libraries/noble/ relative to your main.lua file.

Once you’ve done that, using Noble Engine can be quickly wired up in your main.lua file:

import libraries/noble/Noble
import scenes/MyStartingScene -- Or whatever your game's first scene is.

Noble.new(MyStartingScene)

Note: If you are adding Noble Engine to an existing project, it is still recommended to either start with the project template and bring your existing code in, or reorganize your project to mimic the structure of the template. The project template defines a folder layout and has some additional flotsam that reflects the “opinion” of Noble Engine, which is useful if you want to have the best experience using it.

Documentation

Noble Engine is fully documented in code, and has a full set of html pages generated with LDoc and styled for legibility, ease-of-use, and playful charm if I do say so myself.

These pages are included in the repository at docs/index.html and on GitHub Pages.

Notes on Style

Noble Engine was originally developed for Widget Satchel II: Return of Sprocket, by Mark LaCroix, who never wrote a line of Lua in his life before starting this project.

In general, Lua best-practices are followed, but in some cases code style and naming conventions are more likely to follow those found in “C-like” languages such as Haxe, C#, Java, ActionScript, etc.

  • Methods and variables are camelCase.
  • “Class” names are TitleCase, and Lua “modules” are treated as nested classes, thus Noble.Text instead of noble.text.
  • Constants, such as Noble.TransitionType.DIP_TO_BLACK, are ALL_CAPS_SNAKE_CASE
  • Argument names are prefixed with a double-underscore, as in __displayName. This mostly impacts documentation legibility. I’m very sorry but it couldn’t be helped.

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Sponsor @NobleRobot on GitHub Sponsors · GitHub发布时间:2022-06-07
下一篇:
edbentley/replay: A cross-platform JS game engine inspired by React发布时间:2022-06-07
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap