GithubHelp home page GithubHelp logo

mortennobel / kickjs Goto Github PK

View Code? Open in Web Editor NEW
197.0 197.0 36.0 19.47 MB

A WebGL game engine for modern web-browsers.

Home Page: http://www.kickjs.org/

License: Other

Shell 0.03% JavaScript 93.93% HTML 5.50% GLSL 0.54%

kickjs's People

Contributors

groe avatar mortennobel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kickjs's Issues

Scene assets file

Store all scene assets in a single file. This will simplify scene loading.

Endianess problem for binary data

Currently serialized data is assumed to use the same endianess. This may not always be the case.

This should be solved when loading/saving binary data.

Material without shader. it is possible?

Hi.

I want to render many simple objects. I have many vertex and indices for it on server. I load data from server by tiles and then try to create meshes and add to scene:

// create material
var material = new KICK.material.Material(DG.scene);

    for(i in geom) {
        var obj = geom[i];

        var meshData = new KICK.mesh.MeshData({
            'vertex' : geom.vertices,
            'indices' : geom.indices,
        });

        var mesh = new KICK.mesh.Mesh(DG.scene, {'meshData' : meshData});
        var gameObject = DG.scene.activeScene.createGameObject();

        var meshRenderer = new KICK.scene.MeshRenderer();
        meshRenderer.mesh = mesh;
        meshRenderer.material = material;
        gameObject.addComponent(meshRenderer);
    }

But objects doesn't render because material need the shader and for shader need uv1. How I can use material without shader?

MeshData serialization

MeshData should be serialized into binary data (this will allow loading mesh data efficiently)

Default material

Add default material (shared) and let MeshRenderer use it as default if no material specified when activated

Particle engine

Add simple particle engine (Shader based - ping pong textures)

Event system

Add event system (allowing to run code in next frame or in future)

Change material uniform usage

Currently material uniforms have the syntax

{
   mainColor:{
      value:[i/5,0.0,0.9,0.5],
      type:KICK.core.Constants.GL_FLOAT_VEC4
   },
   mainTexture:{
      value:engine.project.load(engine.project.ENGINE_TEXTURE_WHITE),
      type:KICK.core.Constants.GL_SAMPLER_2D
   }
}

That should be simplified to:

{
   mainColor: [i/5,0.0,0.9,0.5],
   mainTexture: engine.project.load(engine.project.ENGINE_TEXTURE_WHITE)
}

since there is really no need for type information.

Performance

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --trace-bailout
Shows that
.Mesh.bind": ForInStatement is not fast case

Simplify shader uniform

Allow only a subset of shader uniform to improve performance.

(But introduce some backward compatibility mode)

Assert and debug values in release build

Currently the assert and debug values are changed during the build (this removes unused code). This part works fine.

However if game code checks the value, it should be false in release builds and true if debug builds.

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.