GithubHelp home page GithubHelp logo

tempbottle / lycheejs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sirg2003/lycheejs

0.0 2.0 0.0 27.08 MB

Free HTML5 + native OpenGL Game Engine for Embedded, Console, Mobile, Server and Desktop

Home Page: http://lycheejs.org

License: MIT License

JavaScript 93.62% HTML 3.35% CSS 2.10% PHP 0.25% Shell 0.68%

lycheejs's Introduction

lycheeJS (v0.8.4)

NPM Version NPM Downloads Gratipay

lycheeJS is a JavaScript Game library that offers a complete solution for prototyping and deployment of HTML5 Canvas, WebGL or native OpenGL(ES) or libSDL2 based games inside the Web Browser or native runtimes.

The development process is optimized for Blink-based browsers (Chromium, Google Chrome, Opera) and their developer tools.

Installation

The client-side lycheeJS Engine Stack is supporting all Operating Systems that can execute JavaScript.

The server-side CDN, CI-, Web-, and Websocket Stack though is only supporting Linux and Mac OSX due to sandboxing and cross-compilation reasons. Windows also can't support SPDY and WebSocket extensions without Ephermal Port issues.

Always remember, there's no client-side and server-side application code whatsoever, because all the network components can be used on either side and peer-to-peer. That means you can run a native build on Windows using the client-side and server-side stack.

1. Download lycheeJS

  • Download and install the newest stable release of NodeJS from nodejs.org.

  • Download lycheeJS via zip-file and extract its contents to ~/lycheeJS.

wget https://github.com/LazerUnicorns/lycheeJS/archive/master.zip;
unzip lycheeJS-master.zip;
mv lycheeJS-master ~/lycheeJS;
  • Make sure the lycheeJS-master folder contained in the zip-file is renamed to lycheeJS to follow up with the tutorials.

2. Start lycheeJS

  • After building the core, you are ready to go. Start Sorbet, the lycheeJS webserver:
user@box:~$          cd ~/lycheeJS;
user@box:~/lycheeJS$ nodejs ./tool/configure.js;
user@box:~/lycheeJS$ npm start;
  • Open your Web Browser and navigate to http://localhost:8080 to open the lycheeJS welcome page. The shipped example projects show you best practices on how to develop cross-platform games.

3. Install Fertilizers (optional)

By default, lycheeJS ships with the HTML and NodeJS Fertilizers.

If you want more cross-compilation build targets, you need to run this command to install those from the lycheeJS-fertilizers repository:

user@box:~$          cd ~/lycheeJS;
user@box:~/lycheeJS$ nodejs ./tool/install-fertilizers.js

4. Deployment on a Server (optional)

lycheeJS and Sorbet can also be integrated with your root server.

It is recommended to use the daemon setup on production environments and to use the npm setup on development environments.

The daemon setup integrates better with Debian / Ubuntu systems and features daily automatic updates with your git repository.

4.a) Daemon Setup

The profile parameter is equivalent to the available profiles in ~/lycheeJS/sorbet/profile/[profile.json]:

user@box:~$          cd ~/lycheeJS;
user@box:~/lycheeJS$ sudo ./tool/ubuntu/install.js --profile=localhost.json;
user@box:~$          sudo /etc/init.d/sorbet restart;

4.b) NPM Setup

You can modify the ~/lycheeJS/package.json/scripts section to use your own sorbet profile. Take a look at the examples localhost or lycheejs.org:

# This is identical to npm start, but will run forever
user@box:~$          cd ~/lycheeJS;
user@box:~/lycheeJS$ npm run-script localhost;

Tutorials

There are plenty of tutorials available at http://lycheejs.org/tutorials.

Documentation

The documentation is available online at http://lycheejs.org/documentation/index.html.

Roadmap

You want to see what kind of fancy features will arrive next? Take a look at the ROADMAP.md file.

Contribution

You want to contribute to the project? Take a look at the CONTRIBUTING.md file.

Other (unsupported) JavaScript Runtimes

The lycheeJS architecture is independent of the environment which means it will run on any theoretical JavaScript environment.

The only requirement for such a platform is a fully implemented bootstrap API.

For fully supporting a client-side environment, you will also have to implement a lychee.Input, a lychee.Renderer, a lychee.Storage, and a lychee.Viewport.

These implementations are fully optional and only necessary if you are using them inside your Game or Application.

License

The lycheeJS framework is licensed under the MIT License. The projects and demos are licensed under the CC0 (public domain) License.

lycheejs's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.