Introducing PraxisMapper
PraxisMapper is an open source, location based game server. It lets developers host the core server for a game built around real-world geography quickly, so they can get to the more interesting part of building a game around it.
PraxisMapper is designed to be self-contained, without depending on live external services. Map tiles are drawn by the server rather than loaded from a separate service, and the drawing style can be fully customized. Gameplay locations are tagged by the server, and rules for identifying them can be changed dynamically without reprocessing the database. Data is quick to save and load to the server, and rules for protecting user privacy are baked into the data storage endpoints.
For many possible games, the stock PraxisMapper server will work without any extra server-side changes, and the client can simply make requests to the instance in question. A game with more complex server-side processing might want to make its own endpoints directly in the source code, or possibly import the PraxisCore library into it's own custom project to save time by not having to re-implement basic features.
Getting an instance of PraxisMapper started requires processing an OpenStreetMap extract. The geography data is saved to a database, and then map tiles can be drawn ahead of time or on demand. This processing can take 10 minute for a county, and another 15 to draw tiles ahead of time.
There's also a companion mobile app, Hypothesis, which is open source and built to work directly against a stock PraxisMapper instance. It's meant to be a tutorial and an example of what types of experiences you could create with PraxisMapper. All you need to do with that to start is to change the URL to point at your instance and it's ready to go.
This will be the developer blog for ideas and musing on location based games and the specific concerns on their development. Location based games have a rough history as a genre, and it's worth looking back at. The biggest change to that history would be the scaling-down of these games from global to a smaller, easier to maintain scope.