• Stars
    star
    141
  • Rank 259,971 (Top 6 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 10 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

3D View Plugin for the Impact HTML5 Game Engine

TwoPointFive for Impact

TwoPointFive is a plugin for the Impact HTML5 Game Engine that provides a 3D viewport for the game world.

Demo

Super Blob Blaster

A demo game that uses this plugin is included in this repository.

Please note that you need a license for Impact to actually run the demo. The lib/impact/ and lib/weltmeister/ directories from Impact need to be copied into the lib/ directory of this demo.

Usage

The demo game and its sources in lib/game/ should give you a good overview on how to use the plugin.

The most importantant thing for your entities is to subclass them from tpf.Entity rather than from ig.Entity. The tpf.Entity provides some capabilities to position and draw them in 3D space. Each entity has an additional .z property for .pos and .vel that determines its vertical position and speed in the world.

The layers in your level need to be named in a certain way for TwoPointFive to recognize them. The tile layers for the graphics need to be named floor, ceiling and walls. An additional light layer provides an additional tint for each of the tiles in the level. Note that the tilesize for each of these layers must be the same. Again, have a look a the included lib/game/levels/base1.js for an example.

TwoPointFive comes with some additions to Impact's Debug Module. To load it, simply require the plugins.twopointfive.debug module in your main.js.

A note about Tile Seams

Whenever drawing parts of an image in WebGL, such is done here when drawing tiles, WebGL may sample pixels from a region of the image that is outside the one you specified. This happens mostly due to rounding errors and will result in ugly seams between tiles.

TwoPointFive attempts to work around this issue by redrawing your tileset into a slightly larger image and adding a 1 pixel border around each tile. This 1px border is a copy of the neighboring pixels. Whenever WebGL now samples a texture slightly outside the tile boundary, it will sample from this 1px border and thus avoid any seams in your map.

If you do not want this behaviour, you can disable it by setting tpf.Map.fixTileSeams = false; before calling ig.main().

More Repositories

1

qoi

The “Quite OK Image Format” for fast, lossless image compression
C
6,851
star
2

jsmpeg

MPEG1 Video Decoder in JavaScript
JavaScript
6,313
star
3

Ejecta

A Fast, Open Source JavaScript, Canvas & Audio Implementation for iOS
Objective-C
2,802
star
4

wipeout-rewrite

C
2,613
star
5

jsmpeg-vnc

A low latency, high framerate screen sharing server for Windows and client for browsers
C
2,373
star
6

Impact

HTML5 Game Engine
JavaScript
1,955
star
7

q1k3

A tiny FPS for js13k
JavaScript
1,852
star
8

underrun

Twin stick shooter game in 13kb of JavaScript/WebGL
JavaScript
1,086
star
9

pl_mpeg

Single file C library for decoding MPEG1 Video and MP2 Audio
C
737
star
10

qoa

The “Quite OK Audio Format” for fast, lossy audio compression
C
724
star
11

JavaScriptCore-iOS

Apple's JavaScript Engine, with modified project files for iOS
C++
691
star
12

wipeout

WipEout (PSX) Model Viewer in WebGL/Three.js
JavaScript
524
star
13

voidcall

Real time strategy game in 13kb of JavaScript/WebGL
JavaScript
367
star
14

WebGLImageFilter

Fast image filters for Browsers with WebGL support
JavaScript
329
star
15

js-hqx

hqx Pixel Art Scaling Algorithm in JavaScript
JavaScript
190
star
16

Quakespasm-Rift

Quake for Oculus Rift
C
140
star
17

ttt

Tiny Texture Tumbler – A JS library and an editor to create textures
HTML
106
star
18

Asaph

A micro-blogging system, focusing on collecting links and images
PHP
97
star
19

neuralink_brainwire

Attempt at Neuralink's Compression Challenge
C
84
star
20

pagenode

Pagenode – No Bullshit Content Management
PHP
75
star
21

OculusWeb

A fast and lean HTTP/WebSocket Oculus Rift Tracking Server for Windows and Mac
C
58
star
22

impact-box2d

Box2D Plugin for the Impact Game Engine
JavaScript
51
star
23

JS360

A NET framework for JavaScript on the XBox with XNA.
C#
48
star
24

pl_json

Yet another single header json parser
C
41
star
25

json-format

JSON Pretty Printer for JavaScript
JavaScript
38
star
26

picturelicious

Social Imaging Platform
PHP
37
star
27

impact-splash-loader

A loading screen for Impact that shows the Impact logo
JavaScript
34
star
28

rectpack

Super Simple Rectangle Packing for JS
JavaScript
15
star
29

arduboy-games

My Arduboy Mini Games
C
14
star
30

jQuery-JSH

Tiny jQuery Plugin for JavaScript SyntaxHighlighting
11
star
31

pagenode-legacy

Older version of Pagenode with a complete admin interface
PHP
2
star
32

badissue.com

HTML
2
star