Non-Volatile Memory Library

This is examples/libpmemobj/pminvaders/README.

This directory contains two variants of an example application implemented
using libpmemobj, it's a simple game in which all the objects are stored
on persistent memory.  This means that the game process can be safely killed
and then resumed.

The first implementation of the game demonstrates the usage of the very
basics of the pmemobj library, that includes the pool management
(open/create/close), type-safety macros, atomic (non-transactional) allocations
and internal collections.

The second version is fully based on the transactional API and does not
use internal pmemobj collections.

To launch the game:
	./pminvaders [game session file]
or:
	./pminvaders2 [game session file]

The file with the game session will either be created if it doesn't exist
or opened if it contains a valid pool.

Controls:
	move (left/right) - 'o' / 'p' or arrow keys
	shoot - spacebar
	quit - 'q'

If you want to run this demo on non-pmem storage, set the PMEM_IS_PMEM_FORCE
environment variable, so that the library does not issue msync calls.

** DEPENDENCIES: **
In order to build both variants of the game you need to install ncurses
development package.

rpm-based systems : ncurses-devel
dpkg-based systems: libncursesX-dev (where X is the API/ABI version)
