opengl - Common lisp: portability -
question
if make 2d game in common lisp (uses: lispbuilder-sdl, quicklisp, cffi) using clozure cl on windows, able easily port other platforms (linux/iphone(maybe)/android) later? lisp "suitable" installable programs?
information
- the game use opengl graphics. it'll use sdl input/opengl initialization, , either sdl or openal audio. might end using own library instead of sdl later.
- writing few c++ libraries cffi (to wrap functionality in "portable" way) not problem.
reasoning
i'm really, tired of c++. want try (that not python) simpler syntax + more power. have game project in mind, want know whether choosing lisp game means serious trouble if decide distribute/port game later.
--edit--
additional info
what mean "suitable" , "installable programs"?
i'm not sure how cffi/quicklisp play if try turn finished program can run onto machine installable package (windows installer on windows, example). quicklisp, example, sets paths/repositories within user's home dir (which might not acceptable behavior) , tries download packages automatically external sources, not thing when try distribute program , make sure works intended. cffi @ points "binds" foreign libraries lisp functions, , unclear me how work, say, if dump program image, embed exe , run said exe on machine. according common sense, should work fine is, in worst-case scenario result in me having write complicate installer specific lisp distribution.
** note: sorry if state obvious in post, i'm not sure of familiarity common lisp**
carrying on sds:
there seem bit of life on getting clozure running on android performance available remains seen. unlikely see lisp games in iphone store unless compile other language compiler not available @ runtime (see nu or proprietary option see mocl both have ways of addressing issue)
portability - across implementations
in libraries worth while them working portably across many implementations possible, games i'd pick 1 implementation , hone code on there. distributing game package each platform opposed through quicklisp right?
portability - across platforms
do make sure check out progress of preferred implementation on each platform, there can subtle gotchas. me use sbcl , under windows 32bit supported, whilst 64 still under development.
packaging
this has timing information on packaging clozure apps apple mac store posted on openmcl-devel today . haven't had read yet thread may provide more info.
zach beane has made buildapp sbcl
the lispbuilder folks seem have info on making standalone executables.
tools
cl-opengl wrapper opengl. supports both old , modern opengl styles , find areas try provide higher level abstractions bit limiting (i steer clear of cl-opengl's gl-arrays). have read of source though great stuff there, when start writing more cffi code. {cl-opengl still being developed , available through quicklisp - have used under linux , windows happily}
lispbuilder-sdl cool again may find urge take control of areas. example sdl:with-events macro great, takes control of main loop , time-step handling. may work if not don't afraid dig around , write better replace parts!
also lispbuilder provides range of libraries before using them check if there more recent equivalent in quicklisp. example lispbuilder has lispbuilder-opengl. don’t use this, stick cl-opengl. again lispbuilder has lispbuilder-regex while better use cl-ppcre.
i wouldn't recommend use stands spent little time while stripping out of lispbuilder-sdl didn’t pertain modern opengl games (so no sdl software surfaces etc). don’t think people should use yet may give ideas! {lispbuilder isn't under heavy development available through quicklisp - have used under linux , windows happily}
also whilst pimping code written great people , torn apart me, see this video on how recompile parts of game whilst running. not technique work well.
the above require using slime or slimv means using either vim or emacs. slime worth time have look!
all in all, luck, common lisp great fun develop on , while may find takes while opengl work-flow enjoy, if have time have no doubt have great time.
look forward seeing game!
Comments
Post a Comment