Git Product home page Git Product logo

libgamemaps's Introduction

Camoto: Classic-game Modding Tools
Copyright 2010-2015 Adam Nielsen <[email protected]>
http://www.shikadi.net/camoto/

Camoto is a collection of utilities for editing (modding) "classic games",
those from the early to mid 1990s.

This is libgamemaps, one component of the Camoto suite.  libgamemaps is a
library that provides a uniform method of accessing the different file formats
used by games to store their levels.

Currently it only supports 2D levels, constructed via a grid of "tiles" (small
images, usually 16x16 pixels each.)  Each game-specific format can be read as
a list of tiles, the list can be modified, and then written back to disk in
the game-specific format.  Multiple layers are supported (to handle games
which have foreground and background tiles) and each layer can have a different
grid size (however the grid size must be consistent within the layer, although
a grid size of 1x1 pixel is possible.)

The library also provides an interface to examine map rules, such as whether a
particular tile is allowed to be placed at a given location.  This can be used
by graphical map editors to provide real-time feedback to a user.

The information provided about each grid element also contains an image
reference, so that a visual representation of the map can be drawn in a user
interface.  The image references are tied in with the libgamegraphics library,
so any application wishing to display a game map as it would look in the game
itself will also need to interact with libgamegraphics to obtain the
appropriate images.  Because of this, the libgamegraphics library is a
dependency of libgamemaps.

Also note that any user of this library will most likely need additional
game-specific information (not supplied by the library) such as which tileset
to use for particular levels and where (in which files) that data is stored.
Some formats (Duke Nukem II) supply filenames of tilesets, while others
(Xargon) do not.  libgamemaps makes this information available if it exists.

Editing maps for the following games are supported:

  * Captain Comic
  * Cosmo's Cosmic Adventures (partial)
  * Crystal Caves
  * Dangerous Dave
  * Dark Ages
  * Duke Nukem I (partial)
  * Duke Nukem II (partial)
  * God of Thunder (partial)
  * Halloween Harry (partial)
  * Hocus Pocus (partial)
  * Jill of the Jungle (partial)
  * Monster Bash (partial)
  * Rockford
  * Scubaventure
  * Secret Agent
  * Vinyl Goddess From Mars (partial)
  * Wacky Wheels
  * Word Rescue
  * Xargon (partial)
  * Zone 66 (partial)

Many more formats are planned.

This distribution includes an example program "gamemap" which serves as both
a command-line interface to the library as well as an example of how to use
the library.  This program is installed as part of the "make install" process.
See "man gamemap" for full details.

libgamecommon, libgamegraphics, libpng and png++ >= 0.2.7 are required
dependencies of this library.  png++ can be obtained from
http://www.nongnu.org/pngpp/

The library is compiled and installed in the usual way:

  ./configure && make
  sudo make install
  sudo ldconfig

If you downloaded the git release, run ./autogen.sh before the commands above.
You can also run "make check" to compile and run the tests.

All supported file formats are fully documented on the ModdingWiki - see:

 * http://www.shikadi.net/moddingwiki/Category:Map_formats

This library is released under the GPLv3 license.

libgamemaps's People

Contributors

drmccoy avatar malvineous avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.