CrossBrowdy

by Joan Alba Maldonado (joanalbamaldonadoNO_SPAM_PLEASE AT gmail DOT com, without NO_SPAM_PLEASE)

Your cross-browser brodie!

CrossBrowdy is a Multimedia JavaScript framework that can be used to create real cross-platform and hybrid game engines, games, emulators, multimedia libraries and apps.

It is compatible with web browsers, desktop and laptop computers, mobile devices (phones, tablets), desktop and handheld video game consoles, TV sets, smart watches, embedded devices and many others.

It is open source and free.

Main web site: https://crossbrowdy.com/

About & FAQ

Visit the About & FAQ section to know more about CrossBrowdy.

Download

To include it in your project and start using it, the most common way to download CrossBrowdy for production is through the Download section from the official web site.

You can also download CrossBrowdy from the GitHub repository directly. Just download the whole content of the dist/ folder.

Alternatively, from the command line (shell), you can also use one of the following commands to download CrossBrowdy while you are in your project folder:

Using Yarn:

yarn add crossbrowdy 

Using npm:

npm i crossbrowdy 

Using pnpm:

pnpm i crossbrowdy 

Using Bower:

bower install jalbam/crossbrowdy --save 

Note: Yarn, npm, pnpm and Bower will also download the API documentation.

Hotlinking

Instead of downloading CrossBrowdy, you can hotlink it by directly pointing to a version available online. For instance this way you will be pointing to the last version:

<script src="https://crossbrowdy.com/CrossBrowdy/CrossBrowdy.js" type="text/javascript" language="javascript"></script><!-- "type" and "language" parameters for legacy clients. -->

You can find a list of some CDN providers in the Download section of the official web site. Thanks to them, you will be able to always use the last up-to-date version or even to point to a specific version you may prefer.

Have in mind that including the CrossBrowdy main file from a CDN provider should never be done for production. This hotlinking method can be useful just for testing purposes. Some features might not work properly using this way and availability cannot be always guaranteed.

Getting started

Just include the main JavaScript file, which is called CrossBrowdy.js, in your HTML file. The recommended place to include this main JavaScript file is inside the head section (inside the <head> tag) of the document.

Here you have a simple example:

<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<title>My first CrossBrowdy project!</title>
		<script src="CrossBrowdy/CrossBrowdy.js" type="text/javascript" language="javascript"></script><!-- "type" and "language" parameters for legacy clients. -->
		<script type="text/javascript" language="javascript">
		<!--
			CB_init(main); //It will call the "main" function when ready.

			//This function will be called when CrossBrowdy is ready:
			function main()
			{
				//Now, you can start using CrossBrowdy here...
				CB_console("CrossBrowdy started!");
			}
		// -->
		</script>
	</head>
	<body>
		<!-- The "CB_console" element will be used automatically in the case that the client does not support console: -->
		<div id="CB_console" style="display:none; visibility:hidden; overflow:scroll;">
			<span style="font-weight:bold;">Console:</span><br />
		</div>
	</body>
</html>

Visit the Getting started topic from the Basic tutorial to learn more.

Usage

Visit the Guides & Tutorials section to get all the information you may need.

Learn

Check the Basic tutorial to learn how to use it.

Examples

Check the Examples section to see some live examples and learn through their code.

API documentation

For more technical documentation, visit the API documentation section.

There is also a structure diagram that can be useful to get an abstract idea about the logic structure used by CrossBrowdy.

News

Visit the News section to keep up to date.

Help

Check "I still have a problem, doubt or suggestion. What can I do?".

Community & Get Involved

Visit the Community & Get Involved section to access the CrossBrowdy community through different ways and also to get involved and contribute with its development.

Please, before contributing, do not forget to read first the code of conduct and contributing documents.

Credits

CrossBrowdy project was created by Joan Alba Maldonado (aka Juan Alba Maldonado).
It also uses some external libraries and "third-party" code. The name of these libraries and the name of the authors of these libraries and that other code can be found in the source code as well as in the splash screen (if it was no disabled) and in the console when CrossBrowdy is loading. As this information may vary with each version, it is not included here.

License

The content from the API documentation, the content from the official web site, including tutorials, examples, etc. created by Joan Alba Maldonado (aka Juan Alba Maldonado) is licensed under a Creative Commons Attribution 4.0 International license (SPDX short identifier: "CC BY 4.0").

The code written by Joan Alba Maldonado (aka Juan Alba Maldonado), which genuinely belongs to the CrossBrowdy project, is licensed under the 2-Clause BSD License (aka "Simplified BSD License" or "FreeBSD License", SPDX short identifier: "BSD-2-Clause").

Apart from that, it is important to have into account that CrossBrowdy uses some external libraries and some code which may have their own license each. It is important to respect each license properly as the responsibility will always lie with you.

See more at "What is the CrossBrowdy's copyright and license?".

CrossBase/CrossBase.js

CrossBase/audiovisual/audio/CB_AudioDetector.js

CrossBase/audiovisual/audio/CB_AudioFile.js

CrossBase/audiovisual/audio/CB_AudioFileCache.js

CrossBase/audiovisual/audio/CB_AudioFileSprites.js

CrossBase/audiovisual/audio/CB_AudioFileSpritesPool.js

CrossBase/audiovisual/audio/CB_AudioFile_API_AAPI.js

CrossBase/audiovisual/audio/CB_AudioFile_API_ACMP.js

CrossBase/audiovisual/audio/CB_AudioFile_API_SM2.js

CrossBase/audiovisual/audio/CB_AudioFile_API_WAAPI.js

CrossBase/audiovisual/audio/CB_Speaker.js

CrossBase/audiovisual/image/CB_GraphicSprites.js

CrossBase/audiovisual/image/CB_GraphicSpritesScene.js

CrossBase/audiovisual/image/CB_Screen.js

CrossBase/audiovisual/image/canvas/CB_Canvas.js

CrossBase/device/CB_Device.js

CrossBase/general/CB_Arrays.js

CrossBase/general/CB_Client.js

CrossBase/general/CB_Collisions.js

CrossBase/general/CB_Elements.js

CrossBase/general/CB_Events.js

CrossBase/general/CB_data.js

CrossBase/general/CB_others.js

CrossBase/input/CB_Keyboard.js

CrossBase/input/CB_Mouse.js

CrossBase/input/CB_Pointer.js

CrossBase/input/CB_Touch.js

CrossBase/input/controllers/CB_Controllers.js

CrossBase/input/controllers/CB_Controllers_Proprietary_WII.js

CrossBase/input/controllers/CB_Controllers_Proprietary_WII_U.js

CrossBase/net/CB_Net.js

CrossBase/net/REST/CB_Net_REST.js

CrossBase/net/XHR/CB_Net_XHR.js

CrossBase/net/fetch/CB_Net_Fetch.js

CrossBase/net/sockets/CB_Net_Sockets.js

CrossBrowdy.js