Giter VIP home page Giter VIP logo

restful-doom's Introduction

RESTful-DOOM

An HTTP + JSON API hosted inside the 1993 DOOM engine!

RESTful-DOOM is a version of Doom which hosts a RESTful API! The API allows you to query and manipulate various game objects with standard HTTP requests as the game runs.

There were a few challenges:

  • Build an HTTP+JSON RESTful API server in C.
  • Run the server code inside the Doom engine, without breaking the game loop.
  • Figure out what kinds of things we can manipulate in the game world, and how to interact with them in memory to achieve the desired effect!

RESTFul-DOOM is built on top of the awesome Chocolate Doom project. I like this project because it aims to stick as close to the original experience as possible, while making it easy to compile and run on modern systems. This was only possible by building on top of their hard work!

More details in blog post:

http://1amstudios.com/2017/08/01/restful-doom/

API Spec

API spec in RAML 1.0 format

Build

Building dependencies (needs to be run only once)

Takes care of building and configuring dependencies like SDL. Uses chocpkg.

./configure-and-build.sh

Compiling

Run make from the src (or root) directory. src/restful-doom will be created if the compile succeeds.

Run

The DOOM engine is open source, but assets (art, maps etc) are not. You'll need to download an appropriate WAD file separately.

To run restful-doom on port 6666:

src/restful-doom -iwad <path/to/doom1.wad> -apiport 6666 ...

Thanks!

chocolate-doom team
cJSON - JSON parsing / generation
yuarel - URL parsing

restful-doom's People

Contributors

jeff-1amstudios avatar

Stargazers

Zeck avatar

Watchers

James Cloos 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.