Skip to content

An API for using JugiMap maps in game development engines.

License

Notifications You must be signed in to change notification settings

Graphics-Physics-Libraries/JugiMapAPI

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

JugiMap API

About

Main library

The main library is an engine independent part of JugiMap API. It provides support for:

  • Map elements from the editor: map, layers, sprites, vector shapes, ...
  • Other map elements: text, drawing layers for geometric primitives, ...
  • Supporting elements: cameras, colliders, tweens ...
  • Supporting tools: map loader, functions for seeking and collecting map elements, ...
  • Common objects: 2d vector, rectangle, transformation matrix, ...

The main library is currently available for the following languages:

  • C++

Engine extensions

Engine extensions provide integration of the main library with game development engines (frameworks). An engine extension is a collection of classes which extend classes from the main library and wrap the engine objects.

Engine extensions are currently available for the following engines:

  • Cocos2d-x
  • SFML
  • AGK Tier 2
  • nCine

Extensions are possible for engines with the following features:

  • Programming language is c++.
  • Game can be fully programmed by hand (as opposed to engines which require visual editors).
  • Sufficient 2D functionality for supporting jugimap features.

Using the API

A game which uses scenes made from one or more JugiMap maps should be set up in the following way:

application initialization

  • ...
  • Set required global jugimap parameters: screen size, engine specific parameters, path prefixes.
  • Load shaders which are needed for some sprite properties.
  • Make object factory for creating objects of the engine extended classes.
  • Make scene manager (optional)
  • ...

scene initialization

  • ...
  • Load maps.
  • Initialize maps as world, parallax or screen maps.
  • Initialize engine objects of the maps.
  • Make cameras and assign them to the maps.
  • ...

application update

  • ...
  • Update scene (called directly or via scene manager)
  • ...

scene update

  • Set required global jugimap time parameters: logic time and passed time.
  • ...
  • (Game logic)
  • ...
  • Update engine objects of the maps.

These are standard operations. Some engines may require more things. In general JugiMap API provides a consistent way to set up and use scenes based on JugiMap maps.

Manipulation of map elements

The API library provides an engine independent interface for managing map elements. It is possible to manipulate engine objects directly but you should not mix direct manipulation and manipulation via interface as that would lead to synchronization issues between jugimap and engine objects. It is recommended to use direct manipulation only for things not supported by the library, e.g. for sprites in physics simulation.

Programming Examples

The best way to get acquainted with practical usage of JugiMap API is by examining programming examples which use it. They can be found at: https://github.com/Jugilus/jugimapAPI

About

An API for using JugiMap maps in game development engines.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 92.8%
  • GLSL 5.2%
  • PostScript 2.0%