#author("2024-05-04T00:44:35+00:00","default:J4Y","J4Y")
#author("2024-05-04T17:00:30+00:00","default:J4Y","J4Y")
&ref(https://raw.githubusercontent.com/jay19240/jay19240.github.io/main/others/imgs/banner-brand-mini.png,nolink);

''[Manual Update Information]:''

All information has not been updated to the latest. We will update the information and contents of this page as needed.

- ''[Ver. 1.1.13]'' Cylinder collision added.
- ''[Ver. 1.1.12]'' Fix and optimize jnm.
- ''[Ver. 1.1.10]'' Some stuffs added to fps demo.
#br
* Presentation [#qb249ac2]

''WARME Y2K'' is a fully packed ''2D/3D game engine'' dedicated to ''Y2K games'' on the web !~
''WarmeY2K'' is a fully packed ''2D/3D game engine'' dedicated to ''Y2K games'' on the web !~
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.    
- ''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 on this wiki.~
For a more concret overview on it, you can play examples [[here:https://jay19240.github.io/]] and check the demo source code [[here:https://github.com/jay19240/WARME/tree/main/src/samples]]. 

* Features [#u10cb231]

- 🧱 ''Core''
-- Maths
-- Tweening
-- Events
-- Curves
-- Quaternions
-- Object pooling

- 👾 ''2D''
-- Static sprite (jss)
-- Animated sprite (jas)
-- Isometric tilemap (jtm)
-- Orthographic tilemap (jtm)
-- Orthographic tilemap (jtm, sprite fusion)
-- Particles
-- Rendering filters

- 📐 ''2D Physics''
-- BoundingRect
-- Rapier2D

- 🧊 ''3D''
-- Debug shapes
-- Static mesh (jsm and obj)
-- Animated mesh (jam)
-- Static sprite (jss)
-- Animated sprite (jas)
-- Billboarding
-- Cubemap skybox
-- Particules
-- Flares
-- Fog
-- Vertex colorization
-- Decals
-- Realtime shadowmap
-- 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
-- Texture scrolling
-- Animated UV
-- Specular shininess
-- Emissive intensity
-- Normal intensity

- 🌞 ''3D Light''
-- Directional light
-- Point lights (max : 16)

- 🖼️ ''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

* Some parts taken for this work [#xfcc3915]
- DOM for UI elements
- CanvasRenderingContext2D for 2D stuffs
- Human readable custom format for all graphics stuff
- [Rapier](https://rapier.rs/) 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...)
- Blender is the default for modeling
- SpriteFusion is the default for tilemap
- Blender is the default editor choosen for modeling
- SpriteFusion is the default editor choosen for tilemap

* Licence [#ze608d7e]
 MIT License
 
 Copyright (c) [2022] [Julien Rongiere]
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 in the Software without restriction, including without limitation the rights
 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:
 
 The above copyright notice and this permission notice shall be included in all
 copies or substantial portions of the Software.
 
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.

Front page   Edit Diff History Attach Copy Rename Reload   New Page list Search Recent changes   Help   RSS of recent changes