littlejsengine 1.17.11 → 1.17.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/AI.md +162 -0
  2. package/README.md +50 -63
  3. package/dist/littlejs.d.ts +150 -68
  4. package/dist/littlejs.esm.js +323 -105
  5. package/dist/littlejs.esm.min.js +1 -1
  6. package/dist/littlejs.js +320 -104
  7. package/dist/littlejs.min.js +1 -1
  8. package/dist/littlejs.release.js +318 -101
  9. package/examples/electron/{build.js → build.mjs} +26 -23
  10. package/examples/electron/game.js +5 -50
  11. package/examples/electron/index.html +2 -2
  12. package/examples/index.html +1 -0
  13. package/examples/module/{build.js → build.mjs} +22 -19
  14. package/examples/shorts/base.html +1 -1
  15. package/examples/shorts/hillGlideGame.js +1 -1
  16. package/examples/shorts/nineSlice.js +3 -3
  17. package/examples/shorts/shapes.js +1 -1
  18. package/examples/shorts/uiSystem.js +17 -16
  19. package/examples/starter/build.bat +1 -1
  20. package/examples/starter/{build.js → build.mjs} +25 -22
  21. package/examples/starter/index.html +2 -2
  22. package/examples/typescript/build.mjs +60 -0
  23. package/examples/typescript/game.js +2 -2
  24. package/examples/typescript/tsconfig.json +11 -2
  25. package/package.json +2 -2
  26. package/plugins/pluginExport.js +1 -0
  27. package/plugins/uiSystem.js +143 -20
  28. package/reference.md +0 -1
  29. package/src/engine.js +16 -14
  30. package/src/engineAudio.js +9 -6
  31. package/src/{engineBuild.js → engineBuild.mjs} +95 -78
  32. package/src/engineDebug.js +8 -5
  33. package/src/engineDraw.js +16 -14
  34. package/src/engineExport.js +2 -1
  35. package/src/engineInput.js +29 -8
  36. package/src/engineMath.js +46 -14
  37. package/src/engineMedals.js +6 -3
  38. package/src/engineObject.js +14 -3
  39. package/src/engineParticles.js +8 -3
  40. package/src/engineRelease.js +6 -2
  41. package/src/engineTileLayer.js +8 -4
  42. package/src/engineUtilities.js +6 -2
  43. package/src/engineWebGL.js +11 -8
  44. package/src/jsconfig.json +2 -1
  45. package/examples/electron/build.bat +0 -7
  46. package/examples/module/build.bat +0 -7
  47. package/examples/typescript/build.bat +0 -5
  48. package/examples/typescript/build.js +0 -31
package/AI.md ADDED
@@ -0,0 +1,162 @@
1
+ # LittleJS Project - AI Agent Instructions
2
+
3
+ These instructions are for making changes in the LittleJS repo safely. Optimize for small diffs, clarity, and ease of use.
4
+
5
+ ## Non-negotiable rules
6
+
7
+ - **Prefer minimal, local changes.** Do not refactor for style unless asked.
8
+ - **No new runtime dependencies.** Keep LittleJS dependency-free at runtime.
9
+ - **Do not hand-edit generated build artifacts.**
10
+ - Treat `dist/` as generated output.
11
+ - Make changes in `src/` (and `plugins/` when appropriate), then run the build.
12
+ - **Match surrounding style.** Follow the conventions in the files you touch.
13
+ - **Avoid breaking public APIs.** If a change could break users, call it out clearly and offer a compatible alternative.
14
+
15
+ If anything in this doc conflicts with the actual repo behavior, follow the repo behavior and update this doc.
16
+
17
+ ## Key resources
18
+
19
+ - `README.md` - Overview and getting started
20
+ - `reference.md` - API quick reference
21
+ - `examples/` - Working examples demonstrating engine features
22
+
23
+ ## Architecture overview
24
+
25
+ LittleJS is a modular HTML5 game engine with:
26
+
27
+ - **Core engine**: `src/engine*.js` (main loop, objects, rendering, physics, input, etc.)
28
+ - **Plugins**: `plugins/*.js` (optional features like Box2D, post-processing, UI, audio helpers, etc.)
29
+ - **Build system**: `src/engineBuild.mjs` (concatenates modules into distributable bundles)
30
+
31
+ ## Repo structure and file types
32
+
33
+ ### Engine source (`src/*.js`)
34
+ - Modular architecture (one subsystem per file)
35
+ - Concatenated at build time (internal source does not use ES modules)
36
+ - Code is vanilla JavaScript with type info expressed via JSDoc comments
37
+
38
+ ### Build output (`dist/`)
39
+ Common outputs include:
40
+ - `littlejs.js` - Full bundle (debug features included)
41
+ - `littlejs.release.js` - Production bundle (debug stripped)
42
+ - `littlejs.esm.js` - ES module build (import/export)
43
+ - `littlejs.esm.min.js` - Minified ES module
44
+ - `littlejs.d.ts` - TypeScript definitions
45
+
46
+ Use via script tag or ES module import:
47
+ - `<script src="dist/littlejs.js"></script>`
48
+ - `import * as LJS from './dist/littlejs.esm.js'`
49
+
50
+ Prefer adding new optional features as plugins when it keeps the core simpler.
51
+
52
+ ### Examples
53
+ - `examples/starter/` - Plain JavaScript global usage via `<script>` (recommended starting point)
54
+ - `examples/module/` - ES module import pattern
55
+ - `examples/typescript/` - TypeScript example usage
56
+ - `examples/shorts/*.js` - Single-file demos loaded by the shorts harness
57
+
58
+ ### Short examples (`examples/shorts/*.js`)
59
+ Short examples are special:
60
+ - Pure JS code file, no HTML
61
+ - No imports, do not use LJS namespace - engine APIs are available globally
62
+ - Override hooks: `gameInit()`, `gameUpdate()`, `gameUpdatePost()`, `gameRender()`, `gameRenderPost()`
63
+
64
+ ## Coding conventions
65
+
66
+ ### Factory functions vs constructors
67
+ Prefer factory functions for core types:
68
+ - `vec2(x, y)` not `new Vector2(x, y)`
69
+ - `rgb(r, g, b, a)` or `hsl(h, s, l, a)` not `new Color(...)`
70
+ - `tile(index, size)` for tile info
71
+
72
+ Use constructors for game objects and complex types:
73
+ - `new EngineObject(pos, size)`
74
+ - `new ParticleEmitter(...)`
75
+ - `new Sound(zzfxParams)`
76
+ - `new Timer(duration)`
77
+
78
+ ### Naming
79
+ - `camelCase` for variables and functions
80
+ - `PascalCase` for classes
81
+ - `UPPER_CASE` for constants that are truly constant (like `PI`)
82
+
83
+ ### Code style
84
+ - Use JSDoc with `@memberof` grouping (namespaces: Engine, Math, Draw, Input, Audio, Debug, Settings, etc.)
85
+ - Prefer single-line comments: `// comment`
86
+ - Use `ASSERT(condition, 'error message')` for validation (stripped in release)
87
+ - Use `LOG(...)` for debug output (stripped in release)
88
+
89
+ ### Type checking
90
+ Use built-in type helpers for validation:
91
+ ```javascript
92
+ isNumber(n) // true if number and not NaN
93
+ isString(s) // true if not null/undefined (has toString)
94
+ isArray(a) // true if array
95
+ isVector2(v) // true if valid Vector2
96
+ isColor(c) // true if valid Color
97
+ ```
98
+
99
+ ### Global variables
100
+ - Engine time: `time`, `timeReal`, `frame`, `timeDelta`
101
+ - Camera: `cameraPos`, `cameraScale`, `cameraAngle`
102
+ - Input: `mousePos`, `mousePosScreen`, `mouseWheel`
103
+ - State: `paused`, `debug`, `debugOverlay`
104
+ - Settings are in `engineSettings.js` with corresponding setter functions
105
+
106
+ ## Common patterns
107
+
108
+ ### Game structure
109
+ ```javascript
110
+ function gameInit() { } // Called once after engine starts
111
+ function gameUpdate() { } // Called every frame for game logic
112
+ function gameUpdatePost() { } // Called after physics, even when paused
113
+ function gameRender() { } // Called before objects render
114
+ function gameRenderPost() { } // Called after objects render
115
+
116
+ engineInit(gameInit, gameUpdate, gameUpdatePost, gameRender, gameRenderPost, ['tiles.png']);
117
+ ```
118
+
119
+ ### Creating objects
120
+ ```javascript
121
+ class Player extends EngineObject {
122
+ constructor(pos) {
123
+ super(pos, vec2(1), tile(0, 16));
124
+ this.setCollision();
125
+ }
126
+ update() {
127
+ super.update();
128
+ // custom logic
129
+ }
130
+ }
131
+ ```
132
+
133
+ ### Common drawing functions
134
+ ```javascript
135
+ drawRect(pos, size, color) // solid rectangle
136
+ drawTile(pos, size, tileInfo, color) // sprite from tile sheet
137
+ drawText(text, pos, size, color) // text rendering
138
+ drawLine(posA, posB, thickness, color) // line between points
139
+ drawEllipse(pos, size, color) // filled ellipse
140
+ ```
141
+
142
+ ## Common pitfalls
143
+
144
+ - **ASSERT and LOG are stripped in release builds** - Don't rely on side effects
145
+ - **Don't modify constant colors** - `WHITE`, `BLACK`, `RED`, etc. are frozen; use `.copy()` first
146
+ - **Time variables are global** - `time`, `frame` update automatically each frame
147
+ - **Fixed 60 FPS timestep** - Physics runs at 60 FPS regardless of display refresh rate
148
+ - **WebGL is enabled by default** - Set `glEnable = false` before `engineInit()` for Canvas2D only
149
+ - **Tile coordinates are bottom-left origin** - Y increases upward in world space
150
+
151
+ ## Developer workflows
152
+
153
+ ### Build
154
+ ```bash
155
+ npm run build
156
+ ```
157
+
158
+ ### Debug features
159
+ - Press `Esc` to toggle debug overlay
160
+ - Number keys toggle visualizations
161
+ - `+`/`-` keys control time scale
162
+ - Debug functions: `debugRect()`, `debugCircle()`, `debugLine()`, `debugText()`
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  <div align='center'>
4
4
 
5
- ![LittleJS Screenshot](examples/logo.png)
5
+ ![LittleJS Logo](examples/logo.png)
6
6
 
7
7
  [![NPM Package][npm]][npm-url]
8
8
  [![Build Size][build-size]][build-size-url]
@@ -12,128 +12,115 @@
12
12
 
13
13
  </div>
14
14
 
15
- ## 🚂 All aboard!
15
+ ## 🚂 All Aboard!
16
16
 
17
17
  LittleJS is a fast, lightweight, and fully open source HTML5 game engine designed for simplicity and performance.
18
- Its small footprint is packed with a comprehensive feature set including hybrid rendering, physics, particles, sound, and input handling.
19
- The code is clean and well documented with some fun examples to get you started right away. Choo-Choo!
20
-
21
- ### 🚀 Join the LittleJS Game Jam
22
-
23
- *The Second Annual LittleJS Game Jam will take place From Oct 3 to Nov 3! Unleash your creativity and develop amazing games using the LittleJS game engine. 🕹️🎮 [Sign up today and get more info about the jam on itch.io!](https://itch.io/jam/littlejs-game-jam-2025)*
18
+ Its small footprint is packed with a comprehensive feature set including rendering, physics, particles, sound, and input handling.
19
+ The code is very clean and well documented with many examples to get you started quickly.
24
20
 
25
21
  <div align='center'>
26
22
 
27
- ## [Demos](https://killedbyapixel.github.io/LittleJS/examples) | [Docs](https://killedbyapixel.github.io/LittleJS/docs) | [Trailer](https://youtu.be/chuBzGjv7Ms) | [Discord](https://discord.gg/zb7hcGkyZe) | [Tutorial](https://github.com/KilledByAPixel/LittleJS/blob/main/examples/breakoutTutorial/README.md) | [FAQ](https://github.com/KilledByAPixel/LittleJS/blob/main/FAQ.md)
23
+ ## [Demos](https://killedbyapixel.github.io/LittleJS/examples) | [Docs](https://killedbyapixel.github.io/LittleJS/docs) | [Trailer](https://youtu.be/chuBzGjv7Ms) | [Discord](https://discord.gg/zb7hcGkyZe) | [FAQ](https://github.com/KilledByAPixel/LittleJS/blob/main/FAQ.md)
28
24
 
29
25
  </div>
30
26
 
31
27
  ![LittleJS Screenshot](examples/screenshot.jpg)
32
28
 
33
- ## About LittleJS Engine
34
-
35
- LittleJS is a small but powerful game engine with many features and no dependencies.
29
+ ## LittleJS Features
36
30
 
37
31
  ### ✨ Graphics
38
32
 
39
- - Super fast WebGL2 + Canvas2D hybrid rendering
40
- - 100,000+ sprites at solid 60fps
33
+ - Super fast WebGL2 + Canvas2D hybrid rendering system
41
34
  - Apply [Shadertoy](https://www.shadertoy.com) style shaders for post-processing effects
42
35
  - Robust particle effect system and [effect design tool](https://killedbyapixel.github.io/LittleJS/examples/particles/)
43
36
 
44
37
  ### 🔊 Audio
45
38
 
46
- - Positional sound effects with distance falloff
39
+ - Sound and music with mp3, ogg, or wave files
47
40
  - Use [ZzFX](https://killedbyapixel.github.io/ZzFX/) sound effect generator to play sounds without asset files
48
- - Music and sound with mp3, ogg, wave, or [ZzFXM](https://keithclark.github.io/ZzFXM/)
49
41
 
50
42
  ### 🎮 Input
51
43
 
52
- - Comprehensive input handling for keyboard, mouse, gamepad, and touch
53
- - Automatic touch mouse emulation
54
- - On screen touch gamepad designed for mobile devices
44
+ - Comprehensive input handling for mouse, keyboard, gamepad, and touch
45
+ - Customizable on screen gamepad designed for mobile devices
55
46
 
56
47
  ### 💥 Physics
57
48
 
58
49
  - Robust arcade physics system with collision handling
59
- - Box2d fully integrated for more realistic physics
60
- - Tilemap collision with raycasting
50
+ - Fast tilemap collision and raycasting
51
+ - Full Box2D integration for realistic physics
61
52
 
62
53
  ### 🚀 Flexibility
63
54
 
64
- - Compatible with all modern web browsers and on mobile devices
65
- - Support for TypeScript and Modules with example projects for both
66
- - Ideal for size coding competitions like [Js13kGames](https://js13kgames.com/)
67
- - Open Source with the [MIT license](https://github.com/KilledByAPixel/LittleJS/blob/main/LICENSE) so it can be used for anything you want forever
55
+ - Compatible with all modern web browsers and mobile devices
56
+ - TypeScript and Module support with example projects for both
57
+ - Great for size coding competitions like [Js13kGames](https://js13kgames.com/)
58
+ - Open Source and [MIT licensed](https://github.com/KilledByAPixel/LittleJS/blob/main/LICENSE)
68
59
 
69
60
  ### 🛠️ Developer Tools
70
61
 
71
62
  - Live example browser with code editor
72
- - Debug primitive rendering system
73
- - Screenshot and video capture tools
74
- - Node.js build system
75
- - Bitmap font rendering and built in engine font
76
- - Optimized for AI-assisted development
63
+ - Debug overlay and primitive rendering system
77
64
  - Medal tracking system with [Newgrounds](https://www.newgrounds.com/) support
65
+ - Node.js build system
78
66
 
79
67
  ## How To Use LittleJS
80
68
 
81
69
  To get started download the latest LittleJS package from GitHub or install via npm: ```npm install littlejsengine```
82
70
 
83
- *You need to run a local web server to run LittleJS games during development!* You may see a console error like 'The image element contains cross-origin data.' Don't panic, it's easy to fix! If you are using [Visual Studio Code](https://code.visualstudio.com/) there is a [Live Preview Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.live-server) that will handle this for you automatically. Another option is to setup a simple local web server like [http-server](https://www.npmjs.com/package/http-server) via npm.
84
-
85
- - [Watch this GitNation talk](https://youtu.be/_dXKU0WgAj8?si=ZDXLYAFDWp54hrGT) to hear more about LittleJS works and get some tips on how to use it.
86
- - Learn how to make a simple game from scratch with [The Breakout Tutorial.](https://github.com/KilledByAPixel/LittleJS/tree/main/examples/breakoutTutorial)
87
- - [Make a ski game with LittleJS](https://eoinmcgrath.com/little-ski/tutorial.html) - Check out this tutorial by eoinmcg that shows how to make a pixel art style game.
88
- - [LittleJS Engine Quick Reference Sheet](https://github.com/KilledByAPixel/LittleJS/blob/main/reference.md) - This cheat sheet can help you get started.
89
- - [Check out The Little JS FAQ for more help getting started](https://github.com/KilledByAPixel/LittleJS/blob/main/FAQ.md).
90
- - Join our vibrant community on [Discord](https://discord.gg/zb7hcGkyZe) to get help, share your projects, and collaborate with others!
91
- - For Js13k there is a [separate branch that builds to a 7KB zip](https://github.com/KilledByAPixel/LittleJS/tree/js13k)
71
+ - [Making Awesome Games With LittleJS](https://youtu.be/_dXKU0WgAj8?si=ZDXLYAFDWp54hrGT) - A short talk about LittleJS with some tips on how to use it.
72
+ - [Tutorial: Breakout](https://github.com/KilledByAPixel/LittleJS/tree/main/examples/breakoutTutorial) - Learn how to make a simple game from scratch
73
+ - [Tutorial: Make a ski game](https://eoinmcgrath.com/little-ski/tutorial.html) - This tutorial by eoinmcg that shows how to make a pixel art style game.
74
+ - [LittleJS Quick Reference Sheet](https://github.com/KilledByAPixel/LittleJS/blob/main/reference.md) - A reference sheet to help you get started.
75
+ - [Little JS FAQ](https://github.com/KilledByAPixel/LittleJS/blob/main/FAQ.md) - Answers to common questions about LittleJS.
76
+ - [JS13k Branch](https://github.com/KilledByAPixel/LittleJS/tree/js13k) - For size coding events like JS13k there is a special branch that builds to a 7KB zip.
92
77
 
93
78
  ## Examples
94
79
 
95
- These demos are for both learning and using as starter projects to create your own games.
80
+ LittleJS comes with a several demos both for learning and using as starter projects to create new games.
96
81
 
97
- - [Starter Project](https://killedbyapixel.github.io/LittleJS/examples/starter/) - Clean example with only a few things to get you started
82
+ - [Example Browser](https://killedbyapixel.github.io/LittleJS/examples/) - Live example browser with all examples
98
83
  - [Breakout](https://killedbyapixel.github.io/LittleJS/examples/breakout/) - Block breaking game with post-processing effects
99
84
  - [Puzzle Game](https://killedbyapixel.github.io/LittleJS/examples/puzzle/) - Match 3 puzzle game with HD rendering and high score tracking
100
- - [Platformer](https://killedbyapixel.github.io/LittleJS/examples/platformer/) - Platformer/shooter with level data from [Tiled Editor](https://github.com/mapeditor/tiled)
85
+ - [Platformer](https://killedbyapixel.github.io/LittleJS/examples/platformer/) - Platformer/shooter that loads level data from [Tiled Editor](https://github.com/mapeditor/tiled)
101
86
  - [Box2D Demo](https://killedbyapixel.github.io/LittleJS/examples/box2d/) - Box2D plugin demonstration and testbed
102
- - [Stress Test](https://killedbyapixel.github.io/LittleJS/examples/stress/) - Max sprite/object test and music system demo
87
+ - [Stress Test](https://killedbyapixel.github.io/LittleJS/examples/stress/) - Sprite rendering benchmark and music system demo
103
88
  - [Particle System Designer](https://killedbyapixel.github.io/LittleJS/examples/particles/) - Particle system editor and visualizer
104
- - [Example Browser](https://killedbyapixel.github.io/LittleJS/examples/) - Live example browser with all examples
105
89
 
106
90
  ## Builds
107
91
 
108
- To easily include LittleJS in your game, you can use one of the pre-built js files.
109
-
110
- - [littlejs.js](https://github.com/KilledByAPixel/LittleJS/blob/main/dist/littlejs.js) - The full game engine with debug mode available
111
- - [littlejs.release.js](https://github.com/KilledByAPixel/LittleJS/blob/main/dist/littlejs.release.js) - The engine optimized for release builds
112
- - [littlejs.min.js](https://github.com/KilledByAPixel/LittleJS/blob/main/dist/littlejs.min.js) - The engine in release mode and minified
113
- - [littlejs.esm.js](https://github.com/KilledByAPixel/LittleJS/blob/main/dist/littlejs.esm.js) - The engine exported as a module with debug mode available
114
- - [littlejs.esm.min.js](https://github.com/KilledByAPixel/LittleJS/blob/main/dist/littlejs.esm.min.js) - The engine exported as a minified module in release mode
115
-
116
- To rebuild the engine you must first run ```npm install``` to setup the necessary npm dependencies. Then call ```npm run build``` to build the engine.
117
-
118
- The starter example project includes a node js file [build.js](https://github.com/KilledByAPixel/LittleJS/blob/main/examples/starter/build.js) that compresses everything into a tiny zip file using Google Closure, UglifyJS, and ECT Zip.
92
+ | File | Mode | Module | Use case |
93
+ |------|------|--------|----------|
94
+ | [littlejs.js](https://github.com/KilledByAPixel/LittleJS/blob/main/dist/littlejs.js) | Debug | No | Debug mode with asserts |
95
+ | [littlejs.release.js](https://github.com/KilledByAPixel/LittleJS/blob/main/dist/littlejs.release.js) | Release | No | Optimized for release |
96
+ | [littlejs.min.js](https://github.com/KilledByAPixel/LittleJS/blob/main/dist/littlejs.min.js) | Release | No | Optimized for release and minified |
97
+ | [littlejs.esm.js](https://github.com/KilledByAPixel/LittleJS/blob/main/dist/littlejs.esm.js) | Debug | ESM | Debug mode with asserts |
98
+ | [littlejs.esm.min.js](https://github.com/KilledByAPixel/LittleJS/blob/main/dist/littlejs.esm.min.js) | Release | ESM | Optimized for release and minified |
119
99
 
120
100
  ## Games Made With LittleJS
121
101
 
122
102
  Here are a few of the many amazing games created with LittleJS...
123
103
 
124
- - [Space Huggers](https://www.newgrounds.com/portal/view/819609) - Rogulike platformer shoot-em-up game with procedural levels. by [KilledByAPixel](https://frankforce.com/)
104
+ - [Space Huggers](https://www.newgrounds.com/portal/view/819609) - Roguelike platformer shoot-em-up game with procedural levels. by [KilledByAPixel](https://frankforce.com/)
105
+ - [Black Cat Squadron](https://js13kgames.com/games/black-cat-squadron) - One button shooter based on a WW2 Navy squadron. JS13k 5th place! by [repsej](https://github.com/repsej)
125
106
  - [L1ttl3 Paws](https://github.com/KilledByAPixel/JS13K2025) - Cat glider with procedural art and levels for JS13K! by [KilledByAPixel](https://frankforce.com/)
126
- - [The Way of the Dodo](https://js13kgames.com/2024/games/the-way-of-the-dodo) - Single button platformer. JS13k 5th place winner! by [repsej](https://github.com/repsej)
107
+ - [KleptoKitty](https://js13kgames.com/games/kleptokitty) - Cat themed heist puzzle. JS13K 22nd place. by [eoinmcg](https://eoinmcg.itch.io/)
108
+ - [The Way of the Dodo](https://js13kgames.com/2024/games/the-way-of-the-dodo) - Single button platformer. JS13k 5th place! by [repsej](https://github.com/repsej)
127
109
  - [Undergrowth](https://undergrowth.squidband.uk/) - An interactive music videogame for the band Squid. by [KilledByAPixel](https://frankforce.com/)
128
- - [204Snake!](https://www.newgrounds.com/portal/view/960100) - A puzzle game that combines 2048 with snake. LittleJS Jam 1st place winner! by [Sodoj](https://sodoj.itch.io/) and [Shai-P](https://shai-p.itch.io/)
129
- - [GATOR](https://www.newgrounds.com/portal/view/960757) - Retro platformer shooter game where you rescue animals. LittleJS Jam 2nd place winner! by [eoinmcg](https://eoinmcg.itch.io/)
130
- - [A Hedgehog's search](https://willsm1111.itch.io/a-hedgehogs-search) - Adventure game staring a hedgehog. LittleJS Jam 3rd place winner! by [willsm1111](https://willsm1111.itch.io/)
110
+ - [204Snake!](https://www.newgrounds.com/portal/view/960100) - A puzzle game that combines 2048 with snake. LittleJS Jam 1st place! by [Sodoj](https://sodoj.itch.io/) and [Shai-P](https://shai-p.itch.io/)
111
+ - [GATOR](https://www.newgrounds.com/portal/view/960757) - Retro platformer shooter game where you rescue animals. LittleJS Jam 2nd place! by [eoinmcg](https://eoinmcg.itch.io/)
112
+ - [A Hedgehog's Search](https://willsm1111.itch.io/a-hedgehogs-search) - Adventure game starring a hedgehog. LittleJS Jam 3rd place! by [willsm1111](https://willsm1111.itch.io/)
131
113
  - [Wendol Village](https://js13kgames.com/2024/games/wendol-village) - Warcraft inspired RTS game. by [sanojian](https://github.com/sanojian)
132
- - [Dead Again](https://js13kgames.com/entries/dead-again) - Top down survial horror. by [sanojian & repsej](https://github.com/sanojian/js13k_2022)
114
+ - [Dead Again](https://js13kgames.com/entries/dead-again) - Top down survival horror. by [sanojian & repsej](https://github.com/sanojian/js13k_2022)
133
115
  - [Isletopia](https://store.steampowered.com/app/1861260/Isletopia) - Relaxing strategy game of greenifying barren islands. by [Gamex Studio](https://x.com/gamesgamex)
134
116
  - [Tetrimals](https://nixn.itch.io/tetrimals) - A puzzle game mixing Tetris with animals. by [nixn](https://nixn.itch.io/)
135
- - [Watch the Pups](https://ma5a.itch.io/watch-the-pups) - The aim of the game is to take care of some puppies. by [masa](https://ma5a.itch.io/)
136
- - [LittleJS Game Jam Results](https://itch.io/jam/littlejs-game-jam/results) - Check out all the games from the first LittleJS Game Jam!
117
+ - [Bug&Bee](https://itch.io/jam/littlejs-game-jam-2025/results) - Low fi shoot em up with co-op gameplay. LittleJS Jam 1st place! by [eoinmcg](https://eoinmcg.itch.io/)
118
+ - [Little Platformer](https://psemo.itch.io/little-platformer) - Platformer with many mechanics. LittleJS Jam 2st place! by [PSEMO](https://psemo.itch.io/), [Solita666](https://itch.io/profile/solita666), [GabrielRG](https://gabrielrg.itch.io/), [Nate](https://natesassoon.itch.io/)
119
+ - [Rogue Pong](https://itch.io/jam/littlejs-game-jam-2025/rate/4004165) - Roguelike crossed with classic pong gameplay. LittleJS Jam 3rd place! by [webdevbrian](https://webdevbrian.itch.io/)
120
+ - [LittleJS Jam 2024 Results](https://itch.io/jam/littlejs-jam-2024/results) - All the games from the first LittleJS Game Jam.
121
+ - [LittleJS Jam 2025 Results](https://itch.io/jam/littlejs-game-jam-2025/results) - All the games from the second LittleJS Game Jam.
122
+
123
+ ![LittleJS Screenshot](examples/games.jpg)
137
124
 
138
125
  ![LittleJS Logo](examples/favicon.png)
139
126