Coder Social home page Coder Social logo

jay19240 / warmey2k Goto Github PK

View Code? Open in Web Editor NEW
40.0 2.0 2.0 150.56 MB

A complete, fast and fun web game engine

Home Page: https://warme-engine.com/

License: MIT License

JavaScript 79.36% HTML 0.04% CSS 1.11% TypeScript 19.13% Python 0.36%
game-engine-2d game-engine-3d webgpu

warmey2k's Introduction

Documentation - Demos - Screenshots - Join our discord !

Tip

High luminosity is recommanded with scanlines filter (set enabled as default).

Langage License Compatibility

WarmeY2K is a fully packed 2D/3D game engine dedicated to indie games !
The first part of the name (W.A.R.M.E) is an acronym for Web Against Regular Major Engines, you can understand it like a tentative to make a complete game engine for the web. The second part (Y.2.K) is the common acronym used to define the era covers 1998-2004 and define the technics limitation intentionally taken. These limitations are guarants of a human scaled tool and help a lot of to reduce the learning curve.

Some words about our philosophy:

  • Robustness: We used only simple and efficient methods coming from the industrie for nearly two decades.
  • Flexibility: Create your own renderers. Handle render and update loops in a state-less way.
  • Modularity: We used modular architecture to keep things simple and separate.
  • Performance: We used WebGPU API for a blazing fast rendering.
  • Lightweight: The lib minzipped size is just 73 kB (1Mb with Rapier2D & Rapier3D).

You can check the documentation here.
For a more concret overview on it, you can play examples here and check the demo source code here.

Table of content

Features

  • ๐Ÿงฑ Core

    • Maths
    • Tweening
    • Events
    • Curves
    • Quaternions
    • Object pooling
  • ๐Ÿ‘พ 2D

    • Static sprite (jss)
    • Animated sprite (jas)
    • Isometric tilemap (jtm)
    • Orthographic tilemap (jtm)
    • Particles
    • Rendering filters
    • Motion lines (jlm)
  • ๐Ÿ“ 2D Physics

    • BoundingRect
    • Rapier2D
  • ๐ŸงŠ 3D

    • Binary format (bsm, bam, bwm, bnm, blm)
    • Debug shapes
    • Static mesh (jsm and obj)
    • Animated mesh (jam)
    • Static sprite (jss)
    • Animated sprite (jas)
    • Motion lines (jlm)
    • Billboarding
    • Cubemap skybox
    • Particules
    • Flares
    • Fog
    • Vertex colorization
    • Decals
    • Shadow mapping
    • Shadow volume
    • Multi-viewport
    • Camera orbit
    • Camera WASD
    • Auto mipmap
    • Post-process rendering (gbuffers: depth/normal/ids)
    • Rendering filters
  • ๐Ÿ“ 3D Physics

    • BoundingBox
    • BoundingCylinder
    • Walkmesh (jwm)
    • Navigation mesh (jnm)
    • Ray-testing
    • Rapier3D
  • ๐Ÿ’ฅ 3D Material

    • Phong reflection model
    • Displacement texture map
    • Displacement texture scrolling
    • Diffuse map
    • Specular map
    • Emissive map
    • Normal map
    • Env map
    • Toon map
    • Texture scrolling
    • Animated UV
    • Specular shininess
    • Emissive intensity
    • Normal intensity
  • ๐ŸŒž 3D Light

    • Directional light
    • Point lights (max : 64)
  • ๐Ÿ–ผ๏ธ 3D Post-processing

    • Outline
    • Hardware dithering
    • Pixelation
    • Color depth limiting
  • ๐ŸŽฎ Input

    • Action mapping
    • Gamepad, keyboard and mouse support
  • ๐Ÿง  AI

    • A* for 2D/3D with graph and grid
    • Min-max with alpha-beta pruning
  • ๐Ÿ“บ Screen

    • Navigate between different view of your game
    • Resources pre-loading
  • ๐Ÿ“œ Scripts

    • Load script from json file
    • Register async command function and call-it from json file
    • Manual jump to part of the script
    • Command primitives like: WAITPAD, GOTO, GOTO_IF, EXEC_IF, VAR_SET, VAR_ADD, VAR_SUB, DELAY
  • ๐Ÿ”Š Sound

    • Handle sounds by groups
    • Play multiple sounds at same time
  • ๐ŸŒณ Tree

    • 2D binary space partition
    • 3D binary space partition
  • ๐ŸŽจ UI

    • Focus/unfocus widgets
    • Fade in/out
    • Widget architecture
  • ๐Ÿ–๏ธ UI Widgets

    • Dialog + choices
    • Dialog only
    • Print long text
    • Description list
    • Virtual keyboard
    • Slider
    • Menu base
    • Menu list view
    • Menu text
    • Prompt
    • Sprite
    • Text
  • ๐ŸŒ† DNA

    • ECS architecture implementation

Contributions

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b new_feature)
  3. Commit your Changes (git commit -m 'Add new feature')
  4. Push to the Branch (git push origin new_feature)
  5. Open a Pull Request

Contributors

  1. Crisxzu - Contribute to the Wiki, typedoc converter and Triple Triad demo.
  2. zuda - Contribute to Triple Triad demo.
  3. luciedefraiteur - Contribute to the fog.
  4. thetinyspark - Contribute to the binary space partition.
  5. Impre-visible - Contribute to 2D tutorial.
  6. Alina Morinokanata - Create the logo.

Some parts taken for this work

  • DOM for UI elements
  • CanvasRenderingContext2D for 2D stuffs
  • Rapier for both 2D and 3D physics engine
  • No glTF support, we don't want to support the rendering techniques used by this format (BSDF, Skinning, etc...)
  • Compatible Blender for 3D with our addon
  • Compatible SpriteFusion for 2D

Changelog

- [Ver. 1.2.0]  Binary format for 3D files added.
- [Ver. 1.1.14] Tilemap SpriteFusion format added.
- [Ver. 1.1.13] Cylinder collision class added.
- [Ver. 1.1.12] Fix and optimize jnm.
- [Ver. 1.1.10] Some added to fps demo.
- [Ver. 1.1.7]  Mipmap added.
- [Ver. 1.1.5]  Export as npm module added.
- [Ver. 1.1.1]  Outline post-process effect added.
- [Ver. 1.1.1]  Normals, id and depth rendering buffer added.
- [Ver. 1.1.1]  Object pooling added.
- [Ver. 1.1.0]  Move physics to dedicated folder and redesign JNM.
- [Ver. 1.1.0]  Rapier has been added.
- [Ver. 1.0.3]  Playstation one post-process effect has been added.
- [Ver. 1.0.3]  Post-processing effects has been added.
- [Ver. 1.0.3]  Camera WASD has been added.
- [Ver. 1.0.3]  Camera orbit has been added.

Roadmap

[INFO]
1. This roadmap can changed.
2. Ordered by priority
3. Task done one by one

[CORE TASKS]
1. Add spot-light

License

WARME Y2K is released under the MIT license.

warmey2k's People

Contributors

jay19240 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

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.