All Projects → allenu → YokosukaJS

allenu / YokosukaJS

Licence: MIT License
A functional programming-style beat-em-up game engine written in javascript

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to YokosukaJS

Vulkan Renderer
A new 3D game engine using modern C++ and Vulkan API
Stars: ✭ 205 (+1038.89%)
Mutual labels:  gamedev, game-engine
Awesome Haxe Gamedev
Resources for game development on haxe
Stars: ✭ 213 (+1083.33%)
Mutual labels:  gamedev, game-engine
Flaxengine
Flax Engine – multi-platform 3D game engine
Stars: ✭ 3,127 (+17272.22%)
Mutual labels:  gamedev, game-engine
Engine
Cocos Creator is a complete package of game development tools and workflow, including a game engine, resource management, scene editing, game preview, debug and publish one project to multiple platforms.
Stars: ✭ 2,574 (+14200%)
Mutual labels:  gamedev, game-engine
zetaframe
lightweight zig game framework.
Stars: ✭ 14 (-22.22%)
Mutual labels:  gamedev, game-engine
Untoldengine
An easy to use, Open-Source, 3D game engine for iOS/macOS game development.
Stars: ✭ 193 (+972.22%)
Mutual labels:  gamedev, game-engine
magnum-integration
Integration libraries for the Magnum C++11/C++14 graphics engine
Stars: ✭ 75 (+316.67%)
Mutual labels:  gamedev, game-engine
Magnum Examples
Examples for the Magnum C++11/C++14 graphics engine
Stars: ✭ 180 (+900%)
Mutual labels:  gamedev, game-engine
Panda3d
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU
Stars: ✭ 3,035 (+16761.11%)
Mutual labels:  gamedev, game-engine
Luascript
Lua language support for Godot Engine
Stars: ✭ 240 (+1233.33%)
Mutual labels:  gamedev, game-engine
Deadsimple Pixel Perfect Camera
An exceedingly easy-to-use pixel perfect orthographic camera script for 2D scenes in Unity. Punch in a few specs and you've got a working pixel perfect camera. It's that easy.
Stars: ✭ 186 (+933.33%)
Mutual labels:  gamedev, game-engine
UnityHFSM
A simple yet powerful class based hierarchical finite state machine for Unity3D
Stars: ✭ 243 (+1250%)
Mutual labels:  gamedev, state-machine
Trial
Yet another Common Lisp game engine
Stars: ✭ 181 (+905.56%)
Mutual labels:  gamedev, game-engine
Indigo
An FP game engine for Scala.
Stars: ✭ 196 (+988.89%)
Mutual labels:  gamedev, game-engine
Vxr
General purpose engine written in C++ with emphasis on materials rendering (PBR, clear coat, anisotropy, iridescence)
Stars: ✭ 181 (+905.56%)
Mutual labels:  gamedev, game-engine
Esenthelengine
Full Source of Esenthel Engine and its Tools
Stars: ✭ 204 (+1033.33%)
Mutual labels:  gamedev, game-engine
Alimer
Cross-platform game engine.
Stars: ✭ 172 (+855.56%)
Mutual labels:  gamedev, game-engine
Uecs
Ubpa Entity-Component-System (U ECS) in Unity3D-style
Stars: ✭ 174 (+866.67%)
Mutual labels:  gamedev, game-engine
Entitas Cpp
Entitas++ is a fast Entity Component System (ECS) C++11 port of Entitas C#
Stars: ✭ 229 (+1172.22%)
Mutual labels:  gamedev, game-engine
Gdevelop
🎮 GDevelop is an open-source, cross-platform game engine designed to be used by everyone.
Stars: ✭ 3,221 (+17794.44%)
Mutual labels:  gamedev, game-engine

YokosukaJS

YokosukaJS is a simple functional programming-style beat-em-up game engine written in JavaScript.

See it in action in your browser here:

https://www.ussherpress.com/yokosukajs/

How to try it

Clone the project, then just open index.html in your browser. That's it. It runs completely in the browser.

How it works

  • A game world is made up of "actors"
  • Each actor takes direction from a "director"
  • A direction is a simple list of commands (ex: "punch", "walk forward", "kick")
  • Each actor has a "model" (see resources/model.yaml) that defines the animations for each state (ex: standing, punching, walking forward), and the allowed transitions between states, given a direction
  • An image (i.e. the "spritesheet", see images/ folder) defines the actual animation images used for a given actor
  • A spritesheet definition (resources/spritesheet.json) describes the rectangles to cut out the sprites from the spritesheet, as well as the anchor point origin to use when rendering the sprite in the game world

The game executes Tick() to cycle a state update to the game world. Since the engine is written in a functional manner, this takes as input the previous state as well as user inputs to create the next world state.

The renderer takes the latest world state and renders all the actors and billboards (i.e. static images that make up the background) on screen using an HTML Canvas.

Screenshot

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].