词条 | Monkey X |
释义 |
| name = Monkey X | title = Monkey X | logo = MonkeyLanguageLogo.png | operating system = Windows, OS X, Linux | platform = Cross-platform (see the targets section for a full list of supported platforms) | paradigm = multi-paradigm: structured, imperative, object-oriented, modular, reflective, generic, concurrent | year = {{Start date and age|2011|03|01}} | designer = Mark Sibly | developer = {{URL|www.blitzbasic.com|Blitz Research Ltd.}}[1] | latest release version = 0.86(E)[2][3] | latest release date = {{Start date and age|2016|2|2}} | typing = Static, weak, strong (optional), safe, nominative, partly inferred | license = zlib, proprietary (commercial). (See: Mojo (framework) for details).[4] | implementations = | dialects = | influenced by = Blitz BASIC, BlitzMax, C, C++, C#, JavaScript, Java }} Monkey X is a high-level programming language designed for video game development for many different platforms, including desktop and laptop computers, mobile phones, tablets, and video game consoles. The language itself is an object-oriented dialect of BASIC, which the compiler translates into native source code for several target platforms. The resulting code is then compiled normally.[5] Currently the official target platforms include: Windows (Including the Windows 8 store), OS X, Linux, Xbox 360, Android, iOS, among others. Community-driven, user-made targets have also been created, some notable user-targets include: [https://code.google.com/p/monkey-max/wiki/MonkeyMax MonkeyMax] (BlitzMax),[6] [https://code.google.com/p/monkey-python/ Monkey-Python] (Python),[7] and a Nintendo DS target.[8] Monkey X's main implementation (compiler), and a number of official modules are open source. Monkey X's main application/game framework, Mojo, is partially commercial. The compiler and most of the official modules can be found on [https://github.com/blitz-research/monkey GitHub]. Monkey is also distributed in several compiled binary forms from its official website (registration required, to build the compiler). For details, see: Mojo (framework), and Game targets (technical). HistoryMonkey{{Expand section|date=April 2018}}Monkey was released on March 1, 2011[9] by Mark Sibly of Blitz Research Ltd.[10] Monkey XIn December 2013, Monkey was re-branded as Monkey X. The free versions of Monkey X included unrestricted use of the HTML5 and GLFW (desktop) targets; see Mojo (framework).[11] The open source distribution of Monkey's compiler is written in Monkey, and therefore requires a valid binary distribution to be compiled. Before December 2013, Monkey X's compiler (Transcc) could not be compiled and used by those who had not bought full licenses of Monkey X. In late 2014, Blitz Research partnered with Playniax to make a bundle containing the Ignition X framework, as well as a standard "Monkey X Pro" license.[12] In January 2015, "Monkey X Studio" was added to the official website's "Store" section. This acts as a bundle of third-party software, as well as the existing software from the official commercial distribution. This bundle includes: Jungle IDE and Font Machine (A third-party IDE, and font generation tool, both respectively by LemonBytes).[13] The Ignition X framework. And finally, a full "Monkey X Pro" distribution.[14] Monkey 2{{Expand section|date=February 2018}}Monkey 2 v1.0.0 was released on 30 June 2016.[15] It expands the capabilities of Monkey X by adding support for generic classes, 'first class' and lamda functions, structs, built-in multi-threading capabilities, and operator overloading.[16] Cerberus XIn June 2017, official support for the original Monkey X was discontinued and the full version and source were made available for free.[17] It has subsequently been forked by the community and re-branded as Cerberus X.[18] Mojo (framework)Mojo is the official/commercial application framework for the Monkey X programming language. Mojo has been written for all of Monkey X's official game-based targets, this is done using the native programming languages of each target. Mojo is then wrapped using Monkey X's "external-language" system. Mojo was designed primarily for writing simple 2D games in Monkey X, but like many other APIs, it can also be used for other types of programs. Like Monkey X itself, one of Mojo's goals are to make everything it provides as consistent as possible on all of its supported platforms. Mojo itself is open source, however, not all implementations are provided openly. Currently the GLFW and HTML5 implementations (Native code) of Mojo are open source. Mojo may be implemented using any language by anyone. The official implementations for the other targets are commercial products, sold by Blitz Research on Monkey X's website.[19] Along with the application portion of the framework, Mojo provides graphics, sound, and device input functionality on several targets. Mojo's device-input functionality is built to be "virtualizable" through its native implementations. An example of this being the framework's "touch" input functionality, which some targets "virtualize" using traditional mouse input. The same goes for various targets when handling mouse input. Similar examples of this can be found on mobile platforms for keyboard input. Mojo's input functionality also provides several forms of keyboard functionality, accelerometer support, and game controller support. Because of this framework's design philosophies, games made using Mojo tend to look identical when deployed to other platforms, despite sometimes being based on drastically different technologies. Mojo supports several image and audio formats. Due to the nature of Mojo, some frameworks are only supported on specific platforms. The way resources are used may also change what formats are supported. For example, Mojo provides a specific music framework, separate from its other audio functionality. This framework may support different formats, depending on the target. A brief rundown of supported formats can be found in Monkey X's official documentation.[20] Mojo has been implemented officially and unofficially[21] for several platforms. Underlying technologies vary between targets, however, several of the targets support OpenGL. Because of this, OpenGL modules are available for these platforms. This functionality is currently dependent on the Mojo framework.[22] Mojo does not currently use the WebGL framework for its HTML5 and JavaScript versions, however, a member of Monkey X's community known as Devolonter has done it himself. WebGL is in fact delegated as a generic OpenGL implementation when using the HTML5 target. The Mojo framework has also seen several "extensions" (Official platform-specific functionality) in the past. A good example of this being display-management.[23] Some of these platform-specific "extensions" were first provided as a part of target-specific modules (External to Mojo).[24] Future support for target-specific modules' implementations has yet to be commented upon, and may become deprecated. Functionality provided by Mojo can be assumed as the preferred option. Mojo has become known to Monkey X's community as an effective cross-platform utility; however, some small features can be inconsistent on specific platforms. Such inconsistencies tend to be documented as such, and sometimes "ignored" on compile-time.[25] Several third party frameworks take advantage of Mojo, examples of this can be found in several of Monkey X's "user modules". Additionally, it is perfectly possible to write an alternative framework built on the same implementation-level as Mojo. Such a framework would be able to share common functionality with Mojo, by using several of the same modules. For details, please see: Game targets (technical). Development roadmapOn May 14, 2015, Mark Sibly, the creator of Monkey, announced the development of Mojo2, a new graphics API intended to supersede the first Mojo module's graphical functionality. The first release of the Mojo2 module came to owners of Pro versions of Monkey X on June 14, 2015.[26] It was released alongside version 84a.[27] Official targets
Unofficial targets{{Expand section|date=April 2018}}Most Monkey X unofficial and community-driven targets are at the official community's User Targets section.[32] Notable games made with it
Game targets (technical)All information provided is based on the official source code released by Blitz Research on GitHub, as well as any other contributed source code in the public repository. For a full list of official targets, please see: Official targets.Game targets are defined as targets which have implementations of the 'BBGame' class. The 'BBGame' class is an externally/natively implemented class described by the official [https://github.com/blitz-research/monkey/blob/develop/modules/brl/gametarget.monkey 'brl.gametarget'] module (GitHub). This class is used by frameworks such as Mojo as a platform for target-specific application-functionality. Functionality provided by the 'BBGame' class is privately imported, then wrapped in a controlled form by Mojo.[34] The official targets' native 'BBGame' implementations are provided as open source.[35] This does not directly apply to frameworks like Mojo. Therefore, it is possible to re-implement open source, or even proprietary backends for the Mojo framework, this would still require several components to be implemented, however. This is generally discouraged on official targets, due to the commercial nature of Mojo. Monkey X does not need game-targets to work, targets such as the standard C++ tool (STDCPP) target do not explicitly require a BBGame implementation. Also, most of the official targets do not require implementation of BBGame, either. They do require implementations for frameworks such as Mojo, however. This also means that Monkey X's official compiler (external dependencies disregarded) could technically be built with most (If not all) of the official targets.[36] Sample codeMain functionMain classPlayer classSee also
References1. ^we 2. ^The official Monkey X forums, where all of the product updates are documented and discussed. 3. ^[https://github.com/blitz-research/monkey/releases The GitHub releases page for Monkey.] 4. ^[https://github.com/blitz-research/monkey/blob/develop/README.TXT Monkey's license for the open-source portion. (official GitHub page)] 5. ^A page from the official Monkey X website describing the compiler's "translation" abilities. 6. ^[https://code.google.com/p/monkey-max/wiki/MonkeyMax MonkeyMax Source Code Repository] from Google Code 7. ^[https://code.google.com/p/monkey-python/ User Made Python Target Source Code Repository] from Google Code 8. ^User-made Nintendo DS Target for Monkey 9. ^ Monkey Announcement 10. ^http://www.blitzbasic.com/faq/faq_entry.php?id=29 Blitz Research Ltd 11. ^A forum post describing Monkey X's Re-branding. (Official website) 12. ^The official announcement thread for the "Monkey X Pro + Ignition X" bundle 13. ^The official website for Jungle IDE. 14. ^An official post made by Mark Sibly, announcing the "Monkey X Studio" bundle. 15. ^Mark Sibly: Monkey 2 V1.0.0 now available!, Monkey 2 Blog 16. ^{{Cite web|url=http://monkeycoder.co.nz/|title=About Monkey 2|website=Monkey 2|language=en-US|access-date=2018-05-23}} 17. ^{{Cite web|url=https://blitzresearch.itch.io/monkeyx|title=Monkey X by Blitz Research|website=itch.io|language=en|access-date=2018-05-23}} 18. ^{{Cite web|url=https://www.syntaxbomb.com/index.php?topic=92.0|title=Cerberus X - the continuation of Monkey X|website=www.syntaxbomb.com|access-date=2018-05-23}} 19. ^[https://github.com/blitz-research/monkey Monkey's official GitHub page (Open source portion)] 20. ^Monkey's official documentation's "Supported file formats" page. 21. ^Monkey's forum's "User Targets" section, which has several ports and implementations of Mojo. 22. ^The official documentation for Monkey's 'opengl' module. 23. ^[https://github.com/blitz-research/monkey/blob/8764b60710e138da1623de6a9da3285bf41d7321/modules/mojo/app.monkey#L270 A portion of Monkey's official "display management" functionality. Commit snapshot taken from "Updated mojo." (Jan 13, 2014; GitHub).] 24. ^[https://github.com/blitz-research/monkey/blob/e95d0c9be01c02363fea371b8c638276a1cdfe41/targets/glfw/modules/monkeytarget.monkey#L15 Monkey's GLFW2 target's external display-mode code. Commit snapshot taken from "Updated targets." (Oct 21, 2014; GitHub).] 25. ^The official documentation's page on Mojo's audio functionality (Specifically "channel" state detection) 26. ^A forum thread started by Mark Sibly, detailing the now released Mojo2 module. 27. ^[https://github.com/blitz-research/monkey/blob/c8045ee6fc0a03d915f19f83ffc13502a677b560/VERSIONS.TXT#L2 GitHub's representation of the "VERSIONS.TXT" file at the time of V84A's commit/release] 28. ^After the release of V71, the 'standard' C++ target was given a fully functional garbage collector. - Source: A forum post made by Mark Sibly (Monkey's creator) from www.monkey-x.com 29. ^[https://github.com/blitz-research/monkey/blob/46a29af52428fb05417d06e91666153887eecd94/VERSIONS.TXT#L6 GitHub's representation of the "VERSIONS.TXT" file when V81A was released] 30. ^The somewhat informal release page for Mojo2 and V84A; ANGLE support 31. ^A forum thread started by Jochen himself. from www.monkey-x.com 32. ^Official community User Targets section 33. ^Official BAFTA Sports/Fitness 2013 Category Page from bafta.org 34. ^[https://github.com/blitz-research/monkey/blob/28a83858138f7d7618a7c4c788a5226a7d6a213a/modules/mojo/app.monkey#L212 Mojo wrapping a call to an instance of the 'BBGame' class. Commit snapshot taken from "Updating SetDisplayMode..." (January 6, 2015; GitHub)] 35. ^[https://github.com/blitz-research/monkey/tree/develop/modules/brl Monkey's official 'brl' module. (GitHub)] 36. ^[https://github.com/blitz-research/monkey/tree/develop/modules/trans Monkey's official compiler (Module). (GitHub)] External links
8 : Object-oriented programming languages|Video game development software|Articles with example BASIC code|Cross-platform software|Source-to-source compilers|BASIC compilers|BASIC interpreters|Articles with example code |
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。