Giter Club home page Giter Club logo

cepl's Introduction

CEPL (Code Evaluate Play Loop) - [ALPHA]

"Lisp isn't a language, it's a building material." - Alan Kay

The goal of CEPL is to provide building materials for realtime graphics demos and games.

CEPL will not be an engine for a certain class of game but will provide primitives to aid in building graphical tools or engines.

CEPL aims to provide or extend wrappers around core technologies (opengl, sdl, etc) and make them lispy and REPL friendly. The latter of those two points is worth noting. Too often an attempt to abstract complex ideas can produce tools which are great for handling the complex situation but they can end up ballooning simple examples and intimidating beginners.

CEPL is in alpha. The API is closing in the what it needs to be but there are still many bugs.

See the ./examples folder for experiments with opengl which is the current focus of the devlopment.

Videos: http://www.youtube.com/playlist?list=PL2VAYZE_4wRKKr5pJzfYD1w4tKCXARs5y


Requirements

All of the following will be download automatically by quicklisp

  • cl-autowrap
  • cl-plus-c
  • cl-fad
  • cl-opengl
  • cl-devil
  • swank
  • cl-utilities
  • cl-ppcre
  • symbol-munger
  • named-readtables

These two will hopefully be in quicklisp soon, until then download them at the links provided.


If this is your first time running cepl, use the 'Getting Started' instructions below. Whilst not neccesary it really does help debugging if one of the steps goes wrong.

Running on Linux or Windows

  • Start slime
  • (ql:quickload :cepl-default)
  • (cepl:repl)

Running on OSX

If using sbcl

  • run platform-specific/osx-sbcl-launch.sh from the terminal
  • slime-connect
  • (ql:quickload :cepl-default)
  • (cepl:repl)

else

  • Start your lisp's repl in the terminal
  • (ql:quickload :cepl-osx)
  • (cepl-osx:start)
  • slime-connect
  • (ql:quickload :cepl-default)
  • (cepl:repl)

Getting Started

  • cd to your quicklisp/local-projects folder
  • clone this repo, varjo and temporal-functions

Now most days you will use (ql:quickload :cepl-default) to load all of cepl and it's supporting libs. However this first time please do the following. The reason for following these longer steps is to make it easy to see where the issues are.

Step 1

(ql:quickload :cepl) Cepl is a standalone package so there should be no issues here. It is, however, useless without a backend to create the opengl context and provide input events.

Step 2

(ql:quickload :cepl-backend-sdl) This is currently the only supported backend. Common lisp will need to be able to find the sdl2 c library. On linux PLEASE use your package manager. On osx use whichever package manager you prefer. On windows download from here: https://www.libsdl.org/download-2.0.php

At this point you should be able to run the following examples. See further down for advice on running the examples.

triangle.lisp
basic-3d-objects.lisp
texture-example.lisp
ubo-test.lisp
moving-triangles.lisp
raymarcher.lisp

Step 3

(ql:quickload :cepl-image-helper) This uses the equally excellent cl-devil wrapper around the devil c library. You can guess the steps by now... Linux or osx -> Package Manager, Windows -> http://openil.sourceforge.net/download.php

At this point you should be able to run the following examples

bloom.lisp
cubemap.lisp

Step 4

(ql:quickload :cepl-model-helper) This relies on the wonderful classimp library which is a wrapper around the assimp c library. Again for linux and osx use your package manager. On windows download it here http://assimp.sourceforge.net/main_downloads.html

You should now be able to run the following examples

instancing.lisp
normal-mapping.lisp
refraction.lisp

DONE

Let's run an example :)

Windows C Library Hack

If you are having issues getting the c libraries to load and just need to rule out whether lisp can find them, try putting them in the same folder as the lisp exe. For example C:\Program Files\sbcl\.


Running an example

To do this we launch the cepl repl and compile the example.

Step 1

In your repl evaluate (cepl:repl) You should see a 320x240 pixel window appear. It will almost certainly look like it is not responding, this is normal as we aren't handling events yet. Don't worry!

Step 2

Evaluate (in-package :cepl)

Step 3

Open the moving-triangles.lisp file in the examples directory and C-c C-k to compile the whole file

Step 4

Evaluate (run-loop) in the repl

Step 5

Enjoy! This is very alpha software but is still fun when you don't crash into bugs! Report the ones you find and please consider making a fix or two yourself.

Thankyou so much for taking an interest.

Baggers


Driving Ideas

(making (making a game) a game)

cepl's People

Contributors

cbaggers avatar jkordani avatar

Watchers

Michael avatar 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.