CodersCamp 2020 - Project TypeScript
- General info
- Engine Characteristics
- Engine API
- Gameplay
- Technologies
- Project scope
- Team
- Live Preview
The aim of this project was to build a simple and intuitive game engine applicable to developing a variety of 2D canvas-based browser games.
Good Enough Game Engine (GeGe) follows Entity-Component-System design pattern, widely used in game development. This approach enables great level of flexibility in defining game objects.
To showcase our engine we have prepared simple, yet visually stunning game - Bubble Ninja. In Bubble Ninja player earns points by hovering cursor over blue floating bubbles. For each missed bubble player loses points.
Project was created during CodersCamp Course in Jan - Feb 2021 using TypeScript.
- creating and removing game objects and their customisable components during runtime
- pause and resume game
- powerfully simple 2D physics engine
- 2D objects and backgrounds rendering
- textures
- highly customisable
- very easy to grasp and fast to use
Classes / Interfaces / Types | Members | Params | Description |
---|---|---|---|
Engine | entities | ||
gamePaused | |||
cursorPosition | |||
previousCursorPositions | |||
addEntity | Entity | ||
removeEntity | Entity | ||
pauseGame | - | ||
resumeGame | - | ||
changeBackground | CanvasBackground | ||
mainLoop | callback | ||
Entity | id | ||
components | |||
addComponent | Component | ||
removeComponent | typeof Component | ||
hasComponent | typeof Component | ||
Component | entity | Entity | |
CRenderable | color | ||
shape | |||
size | |||
img | |||
CPosition | x, y | ||
CVelocity | x, y | ||
CGravity | x, y | ||
IPointerDevice | cursorPosition | ||
Mouse | cursorPosition | ||
CanvasBackground | color | ||
gradient | |||
imagePath | |||
Vector | x, y | ||
Size | width, height | ||
Shape | square | ||
circle | |||
RenderSettings | width, height |
- Basically Fruit Ninja clone...
- ...but underwater!
- Slash bubbles to earn points.
- Beware of the sinister, however cute, fishes!
- Sea (pun intended) how well you've done by taking a look at your final score.
- TypeScript
- CSS
- HTML
- basic types
- type aliases
- unions and intersection types
- types / classes / interfaces
- implementation / inheritance / composition / interface implementation
- visibility modifiers
- generics
- unit testing and TDD
To see our project, visit:
https://cidebur.github.io/CodersCamp2020-Project3-TypeScript/