Cocos2d

Last updated

Cocos2d-x
Original author(s) Zhe Wang
Developer(s) Chukong Technologies
Initial releaseDecember 1, 2010 (2010-12-01) [1]
Stable release
4.0 [2]   OOjs UI icon edit-ltr-progressive.svg / 29 November 2019;4 years ago (29 November 2019)
Repository github.com/cocos2d/cocos2d-x
Written in C++
Platform Cross-platform
License MIT License
Website cocos2d-x.org
Cocos2D-ObjC
Original author(s) Ricardo Quesada
Developer(s) Andrei Volodin and Lars Birkemose
Initial releaseJune 25, 2008 (2008-06-25)
Stable release
3.5.0 [3] / April 3, 2016;8 years ago (2016-04-03)
Repository github.com/cocos2d/cocos2d-objc
Written in Objective-C
Platform Cross-platform
License MIT License
Website web.archive.org/web/20180811094414/http://cocos2d-objc.org/
Cocos2d
Original author(s) Ricardo Quesada, Lucio Torre
Initial releaseFebruary 29, 2008 (2008-02-29)
Stable release
0.6.10 [4] [5] / July 17, 2023;9 months ago (2023-07-17)
Repository github.com/los-cocos/cocos
Written in Python
Platform Cross-platform
License 3-clause BSD
Website los-cocos.github.io/cocos-site/

Cocos2d is an open-source game development framework for creating 2D games and other graphical software for iOS, Android, Windows, macOS, Linux, HarmonyOS, OpenHarmony and web platforms. It is written in C++ and provides bindings for various programming languages, including C++, C#, Lua, and JavaScript. The framework offers a wide range of features, including physics, particle systems, skeletal animations, tile maps, and others.

Contents

Cocos2d was first released in 2008, and was originally written in Python. It contains many branches with the best known being Cocos2d-ObjC (formerly known as Cocos2d-iPhone), Cocos2d-x, Cocos2d-JS and Cocos2d-XNA. There are also many third-party tools, editors and libraries made by the Cocos2d community, such as particle editors, spritesheet editors, font editors, and level editors, like SpriteBuilder and CocoStudio.

Sprites and scenes

All versions of Cocos2d work using the basic primitive known as a sprite. A sprite can be thought of as a simple 2D image, but can also be a container for other sprites. In Cocos2D, sprites are arranged together to form a scene, like a game level or a menu. Sprites can be manipulated in code based on events or actions or as part of animations. The sprites can be moved, rotated, scaled, have their image changed, etc.

Features

Animation

Cocos2D provides basic animation primitives that can work on sprites using a set of actions and timers. They can be chained and composed together to form more complex animations. Most Cocos2D implementations let you manipulate the size, scale, position, and other effects of the sprite. Some versions of Cocos2D let you also animate particle effects, image filtering effects via shaders (warp, ripple, etc.).

GUI

Cocos2D provides primitives to representing common GUI elements in game scenes. This includes things like text boxes, labels, menus, buttons, and other common elements.

Physics system

Many Cocos2D implementations come with support for common 2D physics engines like Box2D and Chipmunk.

Audio

Various versions of Cocos2D have audio libraries that wrap OpenAL or other libraries to provide full audio capabilities. Features are dependent on the implementation of Cocos2D.

Scripting support

Support binding to JavaScript, Lua, and other engines exist for Cocos2D. For example, Cocos2d JavaScript Binding (JSB) for C/C++/Objective-C is the wrapper code that sits between native code and JavaScript code using Mozilla's SpiderMonkey. With JSB, you can accelerate your development process by writing your game using easy and flexible JavaScript.

Editor support

End of life support

  • SpriteBuilder: Previously known as CocosBuilder, [6] SpriteBuilder is an IDE for Cocos2D-SpriteBuilder apps. SpriteBuilder is free and its development was sponsored by Apportable, who also sponsored the free Cocos2D-SpriteBuilder, Cocos3D, and Chipmunk physics projects. It was available as a free app in the Mac App Store. Its latest official version is 1.4. [7] [8] Its latest unofficial version is 1.5 which is compatible with cocos2d-objC 3.4.9. [9] It supports Objective-C.
  • CocoStudio: a proprietary toolkit based on Cocos2d-x, containing UI Editor, Animation Editor, Scene Editor and Data Editor, together forming a complete system; the former two are tools mainly for artists while the latter are two mainly for designers. This is a proprietary project developed by Chukong Technologies. Its latest version is 3.10 which is compatible with cocos2d-X 3.10. [10] [11] It supports C++. In April 2016 it was deprecated and replaced with Cocos Creator.

Current support

  • Cocos Creator, which is a proprietary [12] unified game development tool for Cocos2d-X. As of August 2017, it supports JavaScript and TypeScript only and does not support C++ nor Lua. It was based on the free Fireball-X. [13] A C++ and Lua support for creator is under alpha-stage development since April 2017. [14]
  • SpriteBuilderX, a free scene editor for Cocos2d-X with C++ support and runs on macOS only. [15]
  • X-Studio, a proprietary [16] scene editor for Cocos2d-X with Lua support and runs on Windows only. [17] [18]
  • CCProjectGenerator: a project generator for Cocos2d-ObjC 3.5 that generates Swift or Objective-C projects for Xcode. [19]

Supported platforms and languages

BranchTarget PlatformAPI Language
Cocos2dWindows, OS X, LinuxPython 2.6, 2.7 or 3.3+, Objective-C
Cocos2d-xiOS, Android, Tizen, Windows, Windows Phone 8, Linux, Mac OS XC++, Lua, JavaScript
Cocos2d-ObjCiOS, Mac OS X, tvOS [20] Objective-C, Swift
Cocos2d-html5HTML5-ready browsersJavaScript
Cocos2d-xnaWindows Phone 7 & 8, Windows 7 & 8, Xbox 360C#
Cocos CreatorAndroid, iOS, HarmonyOSC#, C++, TypeScript, JavaScript

History

Cocos2d (Python)

February 2008, in the village of Los Cocos, near Córdoba, Argentina, Ricardo Quesada, a game developer, and Lucio Torre created a 2D game engine for Python with several of their developer friends. They named it "Los Cocos" after its birthplace. A month later, the group released the version 0.1 and changed its name to "Cocos2d". [21]

Cocos2d-iPhone

Attracted by the potential of the new Apple App Store for the iPhone, Quesada rewrote Cocos2d in Objective-C and in June 2008 released "Cocos2d for iPhone" v0.1, the predecessor of the later Cocos2d family. [21]

Cocos2D-ObjC (formerly known as Cocos2D-iPhone and Cocos2D-SpriteBuilder), is maintained by Lars Birkemose.

Also, the English designer Michael Heald designed a new logo for Cocos2d (the Cocos2d logo was previously a running coconut).

Cocos2d-x

November 2010, a developer from China named Zhe Wang branched Cocos2d-x based on Cocos2d. Cocos2d-x is also a free engine under MIT License, and it allows for compiling and running on multiple platforms with one code base.

In 2013, Quesada left cocos2d-iPhone and joined in cocos2d-x team. In March 2017, Quesada was laid off from the Chukong company. [22] [21] In 2015, there are 4 cocos2d branches being actively maintained.

Cocos2d-x & Cocos2d-html5 is maintained and sponsored by developers at Chukong Technologies. Chukong is also developing CocoStudio, which is a WYSIWYG editor for Cocos2d-x and Cocos2D-html5, and a free Cocos3d-x fork of the Cocos3D project.

Other ports, forks, and bindings

Cocos2d has been ported into various programming languages and to all kinds of platforms. Among them there are:

Games developed with cocos2d

See also

Related Research Articles

Irrlicht is an open-source game engine written in C++. It is cross-platform, officially running on Windows, macOS, Linux and Windows CE and due to its open nature ports to other systems are available, including FreeBSD, Xbox, PlayStation Portable, Symbian, iPhone, AmigaOS 4, Sailfish OS via a QT/Qml wrapper, and Google Native Client.

<span class="mw-page-title-main">Unity (game engine)</span> Cross-platform video game and simulation engine

Unity is a cross-platform game engine developed by Unity Technologies, first announced and released in June 2005 at Apple Worldwide Developers Conference as a Mac OS X game engine. The engine has since been gradually extended to support a variety of desktop, mobile, console, augmented reality, and virtual reality platforms. It is particularly popular for iOS and Android mobile game development, is considered easy to use for beginner developers, and is popular for indie game development.

<span class="mw-page-title-main">Box2D</span>

Box2D is a free open source 2-dimensional physics simulator engine written in C++ by Erin Catto and published under the MIT license. It has been used in Crayon Physics Deluxe, Limbo, Rolando, Incredibots, Angry Birds, Tiny Wings, Shovel Knight, Transformice, Happy Wheels, and many online Flash games, as well as iPhone, iPad and Android games using the Cocos2d or Moscrif game engine and Corona framework.

Apache Cordova is a mobile application development framework created by Nitobi. Adobe Systems purchased Nitobi in 2011, rebranded it as PhoneGap, and later released an open-source version of the software called Apache Cordova. Apache Cordova enables software programmers to build hybrid web applications for mobile devices using CSS3, HTML5, and JavaScript, instead of relying on platform-specific APIs like those in Android, iOS, or Windows Phone. It enables the wrapping up of CSS, HTML, and JavaScript code depending on the platform of the device. It extends the features of HTML and JavaScript to work with the device. The resulting applications are hybrid, meaning that they are neither truly native mobile application nor purely Web-based. They are not native because all layout rendering is done via Web views instead of the platform's native UI framework. They are not Web apps because they are packaged as apps for distribution and have access to native device APIs. Mixing native and hybrid code snippets has been possible since version 1.9.

<span class="mw-page-title-main">Away3D</span>

Away3D is an open-source platform for developing interactive 3D graphics for video games and applications, in Adobe Flash or HTML5. The platform consists of a 3D world editor, a 3D graphics engine, a 3D physics engine and a compressed 3D model file format (AWD).

MonoGame is a free and open source C# framework used by game developers to make games for multiple platforms and other systems. It is also used to make Windows and Windows Phone games run on other systems. It supports iOS, Android, macOS, tvOS, Linux, PlayStation 4, PlayStation 5, PlayStation Vita, Xbox One and Nintendo Switch. It implements the Microsoft XNA 4 application programming interface (API). It has been used for several games, including Bastion, Celeste,Fez and Stardew Valley.

<span class="mw-page-title-main">OpenFL</span> Software framework for video games

OpenFL is a free and open-source software framework and platform for the creation of multi-platform applications and video games. OpenFL applications can be written in Haxe, JavaScript, or TypeScript, and may be published as standalone applications for several targets including iOS, Android, HTML5, Windows, macOS, Linux, WebAssembly, Flash, AIR, PlayStation 4, PlayStation 3, PlayStation Vita, Xbox One, Wii U, TiVo, Raspberry Pi, and Node.js.

Crosswalk Project was an open-source web app runtime built with the latest releases of Chromium and Blink from Google. The project was founded by Intel's Open Source Technology Center in September 2013.

Universal Windows Platform (UWP) is a computing platform created by Microsoft and introduced in Windows 10. The purpose of this platform is to help develop universal apps that run on Windows 10, Windows 10 Mobile (discontinued), Windows 11, Xbox One, Xbox Series X/S, and HoloLens without the need to be rewritten for each. It supports Windows app development using C++, C#, VB.NET, and XAML. The API is implemented in C++, and supported in C++, VB.NET, C#, F# and JavaScript. Designed as an extension to the Windows Runtime (WinRT) platform introduced in Windows Server 2012 and Windows 8, UWP allows developers to create apps that will potentially run on multiple types of devices.

Stride is a free and open-source 2D and 3D cross-platform game engine originally developed by Silicon Studio. It can be used to create video games for PC, mobile devices and virtual reality.

<span class="mw-page-title-main">Leadwerks</span> Cross-platform game engine

Leadwerks is a cross-platform game engine developed by Leadwerks Software that focuses on ease of use and learning. The software supports Windows and Linux, with OS X support in development. Leadwerks is currently on its fourth major version and is sold through the Steam digital distribution platform.

FlatBuffers is a free software library implementing a serialization format similar to Protocol Buffers, Thrift, Apache Avro, SBE, and Cap'n Proto, primarily written by Wouter van Oortmerssen and open-sourced by Google. It supports “zero-copy” deserialization, so that accessing the serialized data does not require first copying it into a separate part of memory. This makes accessing data in these formats much faster than data in formats requiring more extensive processing, such as JSON, CSV, and in many cases Protocol Buffers. Compared to other serialization formats however, the handling of FlatBuffers requires usually more code, and some operations are not possible.

<span class="mw-page-title-main">Phaser (game framework)</span> Cross-platform JavaScript video game framework

Phaser is a 2D game framework used for making HTML5 games for desktop and mobile. It is free software developed by Photon Storm.

LÖVE is a free, open-source, cross-platform framework released under the zlib license for developing video games. The framework is written in C++ and uses Lua as its scripting language and is still maintained by its original developers. The framework is cross-platform supporting the platforms Microsoft Windows, macOS, Linux, Android, and iOS.

<span class="mw-page-title-main">GDevelop</span> Open-source, cross-platform game engine

GDevelop is a 2D and 3D cross-platform, free and open-source game engine, which mainly focuses on creating PC and mobile games, as well as HTML5 games playable in the browser. Created by Florian Rival, a software engineer at Google, GDevelop is mainly aimed at non-programmers and game developers of all skillsets, employing event based visual programming similar to engines like Construct, Stencyl, and Tynker.

<span class="mw-page-title-main">Aseprite</span> Pixel art image and animation editor

Aseprite is a proprietary, source-available image editor designed primarily for pixel art drawing and animation. It runs on Windows, macOS, and Linux, and features different tools for image and animation editing such as layers, frames, tilemap support, command-line interface, Lua scripting, among others. It is developed by Igara Studio S.A. and led by the developers David, Gaspar, and Martín Capello. Aseprite can be downloaded as freeware, or purchased on Steam or Itch.io. Aseprite source code and binaries are distributed under EULA, educational, and Steam proprietary licenses.

<span class="mw-page-title-main">Defold</span> Free game engine

Defold is a cross-platform, free, and source-available game engine developed by King, and later the Defold Foundation. It is used to create mostly two-dimensional (2D) games, but is fully capable of three-dimensional (3D) as well.

References

  1. "Happy 7th Birthday Cocos2d-x!". December 2017. Retrieved December 17, 2017.
  2. "Release 4.0". November 29, 2019. Retrieved November 30, 2019.
  3. "Releases". cocos2d/cocos2d-objc. GitHub .
  4. "Release history".
  5. "cocos2d". Archived from the original on January 15, 2024. Retrieved May 10, 2024.
  6. "CocosBuilder". GitHub . November 9, 2021.
  7. "SpriteBuilder". GitHub . November 8, 2021.
  8. "Sprite Builder". spritebuilder.com. December 1, 2018. Retrieved April 10, 2024.
  9. "[Update] SpriteBuilder 1.5.0 vs Cocos2D v3.4.9 - Cocos2D-SpriteBuilder Forum". Archived from the original on December 22, 2016. Retrieved December 22, 2016.
  10. "Cocos Studio | Cocos2d-x". Archived from the original on July 17, 2017. Retrieved December 21, 2016.
  11. "Where i can download Сocos studio?". July 19, 2016.
  12. "Is EDITOR of cocos creator open source?". February 7, 2017.
  13. "Fireball-x/Fireball on GitHub". January 28, 2015.
  14. "C++ and Lua support for creator alpha0 released". April 11, 2017.
  15. "SpriteBuilderX - editor for Cocos2d-X with C++ support". February 6, 2017.
  16. "#x-studio, a game development tool based on Cocos2d-x". March 19, 2017.
  17. "X-studio IDE、代码编辑器、Lua调试器、UI编辑器".
  18. X-Studio website
  19. "CCProjectGenerator". GitHub . November 9, 2020.
  20. Cocos2D-ObjC, cocos2d, January 9, 2023, retrieved January 12, 2023
  21. 1 2 3 Quesada, Ricardo (April 16, 2017). "The history of Cocos2d in a glimpse". RETRO.MOE. Retrieved 2019-07-03.
  22. "Survey: The reasons why I won't use Cocos Creator". August 9, 2017.
  23. Baker, Liana B. (May 9, 2011). "Zynga buys iPhone game engine development team". Reuters . Archived from the original on May 13, 2011. Retrieved April 14, 2021. Zynga said it would not be acquiring cocos2d, which is a free game engine that developers use to make games for Apple devices such as the iPhone, the iPad and iPod touch. Zynga's Chief Technology Officer, Cadir Lee, said in an interview that Zynga already uses the game engine in its FarmVille game on the iPhone. Having the developers, who were key in developing the free platform, will help Zynga master the technology, Lee said.
  24. Takaki, Hiroshige (July 13, 2016). "Cocos2d-xチューニング、マルチデバイス対応…任天堂エンジニアに聞いた「Miitomo」開発の裏側". CodeIQ MAGAZINE (in Japanese). Goo. Archived from the original on April 15, 2021. Retrieved April 14, 2021.
  25. Vuorinen, Johannes (April 27, 2013). "BADLAND – a cocos2d-iphone game". Cocos2D. Archived from the original on February 10, 2014. Retrieved June 8, 2021.
  26. "The Biggest Korean Games Using The Cocos Engine". April 22, 2020.

Further reading