gnu: Use xxd instead of vim.
[jackhill/guix/guix.git] / gnu / packages / game-development.scm
CommitLineData
6cb89466
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2014 Tomáš Čech <sleep_walker@suse.cz>
f586c877 3;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
c24fff61 4;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
0f6139b1 5;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
68c6110c 6;;; Copyright © 2015, 2016, 2017 David Thompson <davet@gnu.org>
82654d95 7;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
3c8ba11a 8;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
19d311b4 9;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
a812aff9 10;;; Copyright © 2016, 2017 Julian Graham <joolean@gmail.com>
167f0e82 11;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
42d0d13d 12;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
194b4e7d 13;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
6cb89466
14;;;
15;;; This file is part of GNU Guix.
16;;;
17;;; GNU Guix is free software; you can redistribute it and/or modify it
18;;; under the terms of the GNU General Public License as published by
19;;; the Free Software Foundation; either version 3 of the License, or (at
20;;; your option) any later version.
21;;;
22;;; GNU Guix is distributed in the hope that it will be useful, but
23;;; WITHOUT ANY WARRANTY; without even the implied warranty of
24;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25;;; GNU General Public License for more details.
26;;;
27;;; You should have received a copy of the GNU General Public License
28;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
29
30(define-module (gnu packages game-development)
b0910aad 31 #:use-module ((guix licenses) #:prefix license:)
6cb89466
32 #:use-module (guix packages)
33 #:use-module (guix download)
2a068aec 34 #:use-module (guix git-download)
be4d26f5 35 #:use-module (guix utils)
6cb89466 36 #:use-module (guix build-system cmake)
b0910aad 37 #:use-module (guix build-system gnu)
4bc37bf0 38 #:use-module (guix build-system python)
b0910aad 39 #:use-module (gnu packages)
c608fe8c 40 #:use-module (gnu packages autotools)
94a66dd9 41 #:use-module (gnu packages boost)
2a068aec 42 #:use-module (gnu packages curl)
c24fff61 43 #:use-module (gnu packages databases)
99828fa7 44 #:use-module (gnu packages documentation)
42d0d13d 45 #:use-module (gnu packages fonts)
d2cc38b7 46 #:use-module (gnu packages fontutils)
324b0040 47 #:use-module (gnu packages freedesktop)
d2cc38b7 48 #:use-module (gnu packages fribidi)
c24fff61
JG
49 #:use-module (gnu packages glib)
50 #:use-module (gnu packages gnunet)
42d0d13d
MR
51 #:use-module (gnu packages graphics)
52 #:use-module (gnu packages graphviz)
c24fff61 53 #:use-module (gnu packages guile)
c608fe8c 54 #:use-module (gnu packages m4)
c24fff61 55 #:use-module (gnu packages multiprecision)
4bc37bf0 56 #:use-module (gnu packages music)
c24fff61 57 #:use-module (gnu packages ncurses)
4bc37bf0 58 #:use-module (gnu packages python)
b0910aad 59 #:use-module (gnu packages qt)
4bc37bf0 60 #:use-module (gnu packages video)
5809ffcc 61 #:use-module (gnu packages compression)
5809ffcc
DT
62 #:use-module (gnu packages gl)
63 #:use-module (gnu packages linux)
64 #:use-module (gnu packages xorg)
2a068aec 65 #:use-module (gnu packages xdisorg)
5809ffcc
DT
66 #:use-module (gnu packages fontutils)
67 #:use-module (gnu packages image)
68 #:use-module (gnu packages audio)
d620ea88
DT
69 #:use-module (gnu packages pulseaudio)
70 #:use-module (gnu packages gnome)
71 #:use-module (gnu packages gtk)
72 #:use-module (gnu packages sdl)
240f2785 73 #:use-module (gnu packages pkg-config)
83a4a70b
DT
74 #:use-module (gnu packages xiph)
75 #:use-module (gnu packages lua)
2a068aec 76 #:use-module (gnu packages mp3)
194b4e7d
PM
77 #:use-module (gnu packages xml)
78 #:use-module (gnu packages tls))
6cb89466
79
80(define-public bullet
81 (package
82 (name "bullet")
fd22791e 83 (version "2.86.1")
6cb89466
84 (source (origin
85 (method url-fetch)
937bc2d1
EF
86 (uri (string-append "https://github.com/bulletphysics/bullet3/"
87 "archive/" version ".tar.gz"))
88 (file-name (string-append name "-" version ".tar.gz"))
6cb89466
89 (sha256
90 (base32
fd22791e 91 "0nghzcl84p8di215p7xj0gy1hyy072hw2xk9cnmav9hv6bjb4n60"))))
6cb89466 92 (build-system cmake-build-system)
937bc2d1
EF
93 (arguments
94 '(#:configure-flags (list (string-append
95 "-DBUILD_SHARED_LIBS=ON "
96 "-DCMAKE_CXX_FLAGS=-fPIC "
97 (or (getenv "CXXFLAGS") "")))))
98 (inputs
99 `(("glu" ,glu)
100 ("libx11" ,libx11)
101 ("mesa" ,mesa)))
6cb89466
102 (home-page "http://bulletphysics.org/")
103 (synopsis "3D physics engine library")
104 (description
105 "Bullet is a physics engine library usable for collision detection. It
106is used in some video games and movies.")
b0910aad
DT
107 (license license:zlib)))
108
1a0c4437
KK
109(define-public deutex
110 (package
111 (name "deutex")
f7b60fdc 112 (version "5.0.0")
1a0c4437
KK
113 (source (origin
114 (method url-fetch)
115 (uri (string-append "https://github.com/Doom-Utils/" name
f7b60fdc
KK
116 "/releases/download/v" version "/"
117 name "-" version ".tar.xz"))
1a0c4437
KK
118 (sha256
119 (base32
f7b60fdc 120 "1jvffcpq64hk3jysz4q6zi9hqkksy151ci9553h8q7wrrkbw0i9z"))))
1a0c4437 121 (build-system gnu-build-system)
f7b60fdc 122 (native-inputs `(("asciidoc" ,asciidoc)))
1a0c4437
KK
123 (home-page "https://github.com/Doom-Utils/deutex")
124 (synopsis "WAD file composer for Doom and related games")
125 (description
126 "DeuTex is a wad composer for Doom, Heretic, Hexen and Strife. It can be
127used to extract the lumps of a wad and save them as individual files.
128Conversely, it can also build a wad from separate files. When extracting a
129lump to a file, it does not just copy the raw data, it converts it to an
130appropriate format (such as PPM for graphics, Sun audio for samples, etc.).
131Conversely, when it reads files for inclusion in pwads, it does the necessary
132conversions (for example, from PPM to Doom picture format). In addition,
133DeuTex has functions such as merging wads, etc.")
134 (license license:gpl2+)))
135
94a66dd9
KK
136(define-public grfcodec
137 (package
138 (name "grfcodec")
139 (version "6.0.6")
140 (source (origin
141 (method url-fetch)
142 (uri (string-append "http://binaries.openttd.org/extra/"
143 name "/" version "/" name "-" version
144 "-source.tar.xz"))
145 (sha256
146 (base32
147 "08admgnpqcsifpicbm56apgv360fxapqpbbsp10qyk8i22w1ivsk"))))
148 (build-system gnu-build-system)
149 (arguments
150 '(#:tests? #f ; no check target
151 #:phases
152 (modify-phases %standard-phases
153 (delete 'configure) ; no configure script
154 (replace 'install ; no install target
155 (lambda* (#:key outputs #:allow-other-keys)
156 (let* ((out (assoc-ref outputs "out"))
157 (bin (string-append out "/bin"))
158 (doc (string-append out "/share/doc"))
159 (man (string-append out "/share/man/man1")))
160 (for-each (lambda (file)
161 (install-file file bin))
162 '("grfcodec" "grfid" "grfstrip" "nforenum"))
163 (install-file "COPYING" doc)
164 (with-directory-excursion "docs"
165 (for-each (lambda (file)
166 (install-file (string-append file ".txt") doc))
167 '("auto_correct" "commands" "grf" "grfcodec" "grftut"
168 "readme" "readme.rpn"))
169 (for-each (lambda (file)
170 (install-file file man))
171 (find-files "." "\\.1"))))
172 #t)))))
173 (inputs
174 `(("boost" ,boost)
175 ("libpng" ,libpng)
176 ("zlib" ,zlib)))
177 (synopsis "GRF development tools")
178 (description
3d77785a 179 "The @dfn{Graphics Resource File} (GRF) development tools are a set of
94a66dd9
KK
180tools for developing (New)GRFs. It includes a number of smaller programs, each
181with a specific task:
182@enumerate
183@item @code{grfcodec} decodes and encodes GRF files for OpenTTD.
184@item @code{grfid} extracts the so-called \"GRF ID\" from a GRF.
185@item @code{grfstrip} strips all sprites from a GRF.
186@item @code{nforenum} checks NFO code for errors, making corrections when
187necessary.
188@end enumerate")
189 (home-page "http://dev.openttdcoop.org/projects/grfcodec")
190 ;; GRFCodec, GRFID, and GRFStrip are exclusively under the GPL2.
191 ;; NFORenum is under the GPL2+.
192 ;; The MD5 implementation contained in GRFID is under the zlib license.
193 (license (list license:gpl2 license:gpl2+ license:zlib))))
194
c24fff61
JG
195(define-public gzochi
196 (package
197 (name "gzochi")
a812aff9 198 (version "0.11.1")
c24fff61
JG
199 (source (origin
200 (method url-fetch)
201 (uri (string-append "mirror://savannah/gzochi/gzochi-"
202 version ".tar.gz"))
203 (sha256
204 (base32
a812aff9 205 "13j1m92zhxwkaaja3lg5x0h0b28mrrawdzk9d3hd19031akfxwb3"))))
c24fff61 206 (build-system gnu-build-system)
c24fff61
JG
207 (native-inputs `(("pkgconfig" ,pkg-config)))
208 (inputs `(("bdb" ,bdb)
209 ("glib" ,glib)
c24fff61
JG
210 ("guile" ,guile-2.0)
211 ("libmicrohttpd" ,libmicrohttpd)
212 ("ncurses" ,ncurses)
213 ("sdl" ,sdl)
214 ("zlib" ,zlib)))
215 (home-page "http://www.nongnu.org/gzochi/")
216 (synopsis "Scalable middleware for multiplayer games")
217 (description
218 "gzochi is a framework for developing massively multiplayer online games.
219A server container provides services to deployed games, which are written in
220Guile Scheme, that abstract and simplify some of the most challenging and
221error-prone aspects of online game development: Concurrency, data persistence,
222and network communications. A very thin client library can be embedded to
223provide connectivity for client applications written in any language.")
224 (license license:gpl3+)))
225
7357fcf2
KK
226(define-public nml
227 (package
228 (name "nml")
229 (version "0.4.4")
230 (source
231 (origin
232 (method url-fetch)
233 (uri (string-append "http://bundles.openttdcoop.org/nml/releases/"
234 version "/nml-" version ".tar.gz"))
235 (sha256
236 (base32
237 "0wk9ls5qyjwkra54rkj1gg94xbwzi7b84a5fh1ma1q7pbimi8rmg"))))
238 (build-system python-build-system)
239 (propagated-inputs
240 `(("python-pillow" ,python-pillow)
241 ("python-ply" ,python-ply)))
242 (home-page "http://dev.openttdcoop.org/projects/nml")
243 (synopsis "NML compiler")
244 (description
a7cbe727 245 "@dfn{NewGRF Meta Language} (NML) is a python-based compiler, capable of
7357fcf2
KK
246compiling NML files (along with their associated language, sound and graphic
247files) into @file{.grf} and/or @file{.nfo} files.")
248 (license license:gpl2+)))
249
45f8e7f7
KK
250(define-public python-sge-pygame
251 (package
252 (name "python-sge-pygame")
b1d1a10c 253 (version "1.5.1")
45f8e7f7
KK
254 (source
255 (origin
256 (method url-fetch)
257 (uri (pypi-uri "sge-pygame" version))
258 (sha256
259 (base32
b1d1a10c 260 "1rl3xjzh78sl0sq3xl8rl7cgp9v9v3h7s2pfwn7nj1vrmffzkcpd"))))
45f8e7f7
KK
261 (build-system python-build-system)
262 (propagated-inputs
263 `(("python-pygame" ,python-pygame)
81353514
KK
264 ("python-six" ,python-six)
265 ("python-uniseg" ,python-uniseg)))
45f8e7f7
KK
266 (home-page "http://stellarengine.nongnu.org")
267 (synopsis "2D game engine for Python")
268 (description
269 "The SGE Game Engine (\"SGE\", pronounced like \"Sage\") is a
270general-purpose 2D game engine. It takes care of several details fro you so
271you can focus on the game itself. This makes more rapid game development
272possible, and it also makes the SGE easy to learn.")
273 (license license:lgpl3+)))
274
275(define-public python2-sge-pygame
276 (package-with-python2 python-sge-pygame))
277
1b775fd1
KK
278(define-public python-tmx
279 (package
280 (name "python-tmx")
95c1324a 281 (version "1.10")
1b775fd1
KK
282 (source
283 (origin
284 (method url-fetch)
be4d26f5
KK
285 (uri (string-append "mirror://savannah/python-tmx/"
286 (version-major+minor version) "/tmx-"
1b775fd1
KK
287 version ".tar.gz"))
288 (sha256
289 (base32
95c1324a 290 "073q0prg1nzlkga2b45vhscz374206qh4x68ccg00mxxwagn64z0"))))
1b775fd1
KK
291 (build-system python-build-system)
292 (propagated-inputs
293 `(("python-six" ,python-six)))
294 (home-page "http://python-tmx.nongnu.org")
295 (synopsis "Python library for the @code{Tiled} TMX format")
296 (description
297 "Python TMX reads and writes the @code{Tiled} TMX format in a simple way.
298This is useful for map editors or generic level editors, and it's also useful
299for using a map editor or generic level editor like Tiled to edit your game's
300levels.")
301 (license (list license:asl2.0
302 ;; Documentation (only available in the source tarball) is
303 ;; under the CC0 license.
304 license:cc0))))
305
306(define-public python2-tmx
307 (let ((python2-tmx (package-with-python2 python-tmx)))
308 (package
309 (inherit python2-tmx)
310 (propagated-inputs
311 `(("python2-pathlib" ,python2-pathlib)
312 ,@(package-propagated-inputs python2-tmx))))))
313
e99039b5
KK
314(define-public python-xsge
315 (package
316 (name "python-xsge")
cde208da 317 (version "2017.06.09")
e99039b5
KK
318 (source (origin
319 (method url-fetch)
795f3a00 320 (uri (string-append "mirror://savannah/xsge/xsge/xsge-"
e99039b5
KK
321 version ".tar.gz"))
322 (sha256
323 (base32
cde208da 324 "1vy7c2y7ihvmggs93zgfv2h3049s384wid8a5snzrrba8bhbb89p"))))
e99039b5
KK
325 (build-system python-build-system)
326 (arguments
327 '(#:phases
328 (modify-phases %standard-phases
329 ;; xSGE's setup.py script does not support one of the Python build
330 ;; system's default flags, "--single-version-externally-managed".
331 (replace 'install
332 (lambda* (#:key outputs #:allow-other-keys)
333 (zero?
334 (system* "python" "setup.py" "install"
335 (string-append "--prefix=" (assoc-ref outputs "out"))
336 "--root=/")))))
337 #:tests? #f)) ; no check target
338 (propagated-inputs
339 `(("python-sge-pygame" ,python-sge-pygame)
340 ("python-pygame" ,python-pygame)
341 ("python-six" ,python-six)
342 ("python-tmx" ,python-tmx)))
343 (home-page "http://xsge.nongnu.org")
344 (synopsis "Extensions for the SGE Game Engine")
345 (description
346 "xSGE is a collection of modules that make doing certain tasks with the SGE
347Game Engine easier. In addition to SGE's conveniences, the user has access to a
348GUI toolkit, lighting and physics frameworks and @code{Tiled} TMX format
349support.")
350 (license license:gpl3+)))
351
352(define-public python2-xsge
353 (package-with-python2 python-xsge))
354
b0910aad
DT
355(define-public tiled
356 (package
357 (name "tiled")
d3f0e098 358 (version "1.0.3")
b0910aad
DT
359 (source (origin
360 (method url-fetch)
361 (uri (string-append "https://github.com/bjorn/tiled/archive/v"
362 version ".tar.gz"))
f586c877 363 (file-name (string-append name "-" version ".tar.gz"))
b0910aad
DT
364 (sha256
365 (base32
d3f0e098 366 "1qj7l34y5zv2iazmwbix8wdpp88zv7fswbc4arqpp1wak2yna1ix"))))
b0910aad 367 (build-system gnu-build-system)
864cc7ef
RW
368 (inputs
369 `(("qtbase" ,qtbase)
370 ("qtsvg" ,qtsvg)
371 ("zlib" ,zlib)))
372 (native-inputs
373 `(("qttools" ,qttools)))
b0910aad
DT
374 (arguments
375 '(#:phases
d06fc008
EF
376 (modify-phases %standard-phases
377 (replace 'configure
864cc7ef
RW
378 (lambda* (#:key inputs outputs #:allow-other-keys)
379 (substitute* "translations/translations.pro"
380 (("LRELEASE =.*")
381 (string-append "LRELEASE = "
382 (assoc-ref inputs "qttools")
383 "/bin/lrelease\n")))
d06fc008
EF
384 (let ((out (assoc-ref outputs "out")))
385 (system* "qmake"
386 (string-append "PREFIX=" out))))))))
b0910aad
DT
387 (home-page "http://www.mapeditor.org/")
388 (synopsis "Tile map editor")
389 (description
390 "Tiled is a general purpose tile map editor. It is meant to be used for
391editing maps of any tile-based game, be it an RPG, a platformer or a Breakout
392clone.")
393
394 ;; As noted in 'COPYING', part of it is under GPLv2+, while the rest is
395 ;; under BSD-2.
396 (license license:gpl2+)))
5809ffcc
DT
397
398(define-public sfml
399 (package
400 (name "sfml")
7d1b5022 401 (version "2.3.2")
5809ffcc
DT
402 (source (origin
403 (method url-fetch)
7d1b5022
RW
404 ;; Do not fetch the archives from
405 ;; http://mirror0.sfml-dev.org/files/ because files there seem
406 ;; to be changed in place.
407 (uri (string-append "https://github.com/SFML/SFML/archive/"
408 version ".tar.gz"))
409 (file-name (string-append name "-" version ".tar.gz"))
5809ffcc
DT
410 (sha256
411 (base32
7d1b5022 412 "0k2fl5xk3ni2q8bsxl0551inx26ww3w6cp6hssvww0wfjdjcirsm"))))
5809ffcc
DT
413 (build-system cmake-build-system)
414 (arguments
a6e25a50
RW
415 '(#:configure-flags
416 (list "-DSFML_INSTALL_PKGCONFIG_FILES=TRUE")
417 #:tests? #f)) ; no tests
5809ffcc
DT
418 (inputs
419 `(("mesa" ,mesa)
420 ("glew" ,glew)
240f2785
RW
421 ("flac" ,flac)
422 ("libvorbis" ,libvorbis)
5809ffcc 423 ("libx11" ,libx11)
240f2785 424 ("xcb-util-image" ,xcb-util-image)
5809ffcc
DT
425 ("libxrandr" ,libxrandr)
426 ("eudev" ,eudev)
427 ("freetype" ,freetype)
428 ("libjpeg" ,libjpeg)
429 ("libsndfile" ,libsndfile)
430 ("openal" ,openal)))
167f0e82 431 (home-page "https://www.sfml-dev.org")
5809ffcc
DT
432 (synopsis "Simple and Fast Multimedia Library")
433 (description
434 "SFML provides a simple interface to the various computer components,
435to ease the development of games and multimedia applications. It is composed
436of five modules: system, window, graphics, audio and network.")
437 (license license:zlib)))
d620ea88
DT
438
439(define-public sfxr
440 (package
441 (name "sfxr")
442 (version "1.2.1")
443 (source (origin
444 (method url-fetch)
445 (uri (string-append "http://www.drpetter.se/files/sfxr-sdl-1.2.1.tar.gz"))
446 (sha256
447 (base32
448 "0dfqgid6wzzyyhc0ha94prxax59wx79hqr25r6if6by9cj4vx4ya"))))
449 (build-system gnu-build-system)
450 (arguments
451 `(#:phases (modify-phases %standard-phases
452 (delete 'configure) ; no configure script
453 (add-before 'build 'patch-makefile
454 (lambda* (#:key outputs #:allow-other-keys)
455 (let ((out (assoc-ref outputs "out")))
456 (substitute* "Makefile"
457 (("\\$\\(DESTDIR\\)/usr") out))
458 (substitute* "main.cpp"
459 (("/usr/share")
460 (string-append out "/share")))
461 #t))))
462 #:tests? #f)) ; no tests
463 (native-inputs
464 `(("pkg-config" ,pkg-config)
465 ("desktop-file-utils" ,desktop-file-utils)))
466 (inputs
467 `(("sdl" ,sdl)
468 ("gtk+" ,gtk+)))
469 (synopsis "Simple sound effect generator")
470 (description "Sfxr is a tool for quickly generating simple sound effects.
471Originally created for use in video game prototypes, it can generate random
472sounds from presets such as \"explosion\" or \"powerup\".")
473 (home-page "http://www.drpetter.se/project_sfxr.html")
474 (license license:expat)))
0f6139b1
AK
475
476(define-public physfs
477 (package
478 (name "physfs")
479 (version "2.0.3")
480 (source (origin
481 (method url-fetch)
482 (uri (string-append
167f0e82 483 "https://icculus.org/physfs/downloads/physfs-"
0f6139b1
AK
484 version ".tar.bz2"))
485 (file-name (string-append name "-" version ".tar.gz"))
486 (sha256
487 (base32
488 "0sbbyqzqhyf0g68fcvvv20n3928j0x6ik1njmhn1yigvq2bj11na"))))
489 (build-system cmake-build-system)
490 (arguments
491 '(#:tests? #f)) ; no check target
492 (inputs
493 `(("zlib" ,zlib)))
494 (native-inputs
495 `(("doxygen" ,doxygen)))
167f0e82 496 (home-page "https://icculus.org/physfs")
0f6139b1
AK
497 (synopsis "File system abstraction library")
498 (description
499 "PhysicsFS is a library to provide abstract access to various archives.
500It is intended for use in video games. For security, no file writing done
501through the PhysicsFS API can leave a defined @emph{write directory}. For
502file reading, a @emph{search path} with archives and directories is defined,
503and it becomes a single, transparent hierarchical file system. So archive
504files can be accessed in the same way as you access files directly on a disk,
505and it makes it easy to ship a new archive that will override a previous
506archive on a per-file basis.")
507 (license license:zlib)))
83a4a70b
DT
508
509(define-public love
510 (package
511 (name "love")
2c1d46b2 512 (version "0.10.2")
83a4a70b
DT
513 (source (origin
514 (method url-fetch)
515 (uri (string-append "https://bitbucket.org/rude/love/downloads/"
516 "love-" version "-linux-src.tar.gz"))
517 (sha256
518 (base32
2c1d46b2 519 "11x346pw0gqad8nmkmywzx4xpcbfc3dslbrdw5x94n1i25mk0sxj"))))
83a4a70b
DT
520 (build-system gnu-build-system)
521 (native-inputs
522 `(("pkg-config" ,pkg-config)))
523 (inputs
524 `(("devil" ,devil)
525 ("freetype" ,freetype)
526 ("libmodplug" ,libmodplug)
05d48c52 527 ("libtheora" ,libtheora)
83a4a70b
DT
528 ("libvorbis" ,libvorbis)
529 ("luajit" ,luajit)
530 ("mesa" ,mesa)
531 ("mpg123" ,mpg123)
532 ("openal" ,openal)
533 ("physfs" ,physfs)
534 ("sdl2" ,sdl2)
535 ("zlib" ,zlib)))
536 (synopsis "2D game framework for Lua")
537 (description "LÖVE is a framework for making 2D games in the Lua
538programming language.")
539 (home-page "https://love2d.org/")
540 (license license:zlib)))
154f6156
DT
541
542(define-public allegro-4
543 (package
544 (name "allegro")
545 (version "4.4.2")
546 (source (origin
547 (method url-fetch)
3a12e21c
EF
548 (uri (string-append "https://github.com/liballeg/allegro5/"
549 "releases/download/" version "/allegro-"
550 version ".tar.gz"))
154f6156
DT
551 (sha256
552 (base32
553 "1p0ghkmpc4kwij1z9rzxfv7adnpy4ayi0ifahlns1bdzgmbyf88v"))))
554 (build-system cmake-build-system)
555 (arguments
556 '(#:phases
557 (modify-phases %standard-phases
558 (add-after 'unpack 'patch-build-system
559 (lambda _
560 ;; Build addons as shared libraries. Trying to set ADDON_LINKAGE
561 ;; via a command line option doesn't work because it is
562 ;; unconditionally clobbered in the build script.
563 (substitute* '("CMakeLists.txt")
564 (("ADDON_LINKAGE STATIC")
565 "ADDON_LINKAGE SHARED"))
566 #t)))))
567 (inputs
568 `(("glu" ,glu)
569 ("libpng" ,libpng)
570 ("libvorbis" ,libvorbis)
571 ("mesa" ,mesa)
572 ("zlib" ,zlib)))
573 (synopsis "Game programming library")
574 (description "Allegro is a library mainly aimed at video game and
575multimedia programming. It handles common, low-level tasks such as creating
576windows, accepting user input, loading data, drawing images, playing sounds,
577etc.")
578 (home-page "http://liballeg.org")
579 (license license:giftware)))
2a068aec 580
19d311b4
RW
581(define-public allegro
582 (package
583 (name "allegro")
8d2832e3 584 (version "5.2.2.0")
19d311b4
RW
585 (source (origin
586 (method url-fetch)
3a12e21c
EF
587 (uri (string-append "https://github.com/liballeg/allegro5/releases"
588 "/download/" version "/allegro-"
589 (if (equal? "0" (string-take-right version 1))
590 (string-drop-right version 2)
591 version)
592 ".tar.gz"))
19d311b4
RW
593 (sha256
594 (base32
8d2832e3 595 "1z4lrrlmn471wb7vzbd9iw7g379vj0k964vy1s64hcvv5bhvk1g2"))))
19d311b4
RW
596 (build-system cmake-build-system)
597 (arguments `(#:tests? #f)) ; there are no tests
598 (inputs
599 ;; FIXME: Add the following optional inputs: xinput2, opensl, dumb
600 `(("flac" ,flac)
601 ("freetype" ,freetype)
602 ("glu" ,glu)
603 ("gtk" ,gtk+-2)
604 ("libjpeg" ,libjpeg)
605 ("libpng" ,libpng)
606 ("libtheora" ,libtheora)
607 ("libvorbis" ,libvorbis)
608 ("libxcursor" ,libxcursor)
609 ("libxinerama" ,libxinerama)
610 ("libxrandr" ,libxrandr)
611 ("mesa" ,mesa)
612 ("openal" ,openal)
613 ("physfs" ,physfs)
614 ("zlib" ,zlib)))
615 (native-inputs
616 `(("pkg-config" ,pkg-config)))
617 (synopsis "Game programming library")
618 (description "Allegro is a library mainly aimed at video game and
619multimedia programming. It handles common, low-level tasks such as creating
620windows, accepting user input, loading data, drawing images, playing sounds,
621etc.")
622 (home-page "http://liballeg.org")
623 (license license:bsd-3)))
624
cdf8f391
RW
625(define-public allegro-5.0
626 (package (inherit allegro)
627 (name "allegro")
628 (version "5.0.11")
629 (source (origin
630 (method url-fetch)
3a12e21c
EF
631 (uri (string-append "https://github.com/liballeg/allegro5/releases"
632 "/download/" version "/allegro-"
633 (if (equal? "0" (string-take-right version 1))
634 (string-drop-right version 2)
635 version)
636 ".tar.gz"))
cdf8f391
RW
637 (sha256
638 (base32
639 "0cd51qrh97jrr0xdmnivqgwljpmizg8pixsgvc4blqqlaz4i9zj9"))))))
640
2a068aec
DT
641(define-public aseprite
642 (package
643 (name "aseprite")
82654d95 644 (version "1.1.7") ; After 1.1.7 the source is no longer distributed under the GPL.
ff4dc16e 645 ;; TODO: Unbundle third party software.
2a068aec 646 (source (origin
ff4dc16e
MB
647 (method url-fetch/zipbomb)
648 (uri (string-append "https://github.com/aseprite/aseprite"
649 "/releases/download/v" version
650 "/Aseprite-v" version "-Source.zip"))
2a068aec
DT
651 (sha256
652 (base32
82654d95 653 "1plss4i1lfxcznv9p0pip1bkhj7ipw7jlhsh5avd6dzw079l4nvv"))))
2a068aec
DT
654 (build-system cmake-build-system)
655 (arguments
656 '(#:configure-flags
657 ;; Use shared libraries instead of building bundled source.
658 (list "-DWITH_WEBP_SUPPORT=1"
659 "-DUSE_SHARED_CURL=1"
660 "-DUSE_SHARED_GIFLIB=1"
661 "-DUSE_SHARED_JPEGLIB=1"
662 "-DUSE_SHARED_ZLIB=1"
663 "-DUSE_SHARED_LIBPNG=1"
664 "-DUSE_SHARED_LIBLOADPNG=1"
665 "-DUSE_SHARED_LIBWEBP=1"
666 "-DUSE_SHARED_TINYXML=1"
667 "-DUSE_SHARED_PIXMAN=1"
668 "-DUSE_SHARED_FREETYPE=1"
669 "-DUSE_SHARED_ALLEGRO4=1"
670 "-DENABLE_UPDATER=0" ; no auto-updates
671 (string-append "-DFREETYPE_INCLUDE_DIR="
672 (assoc-ref %build-inputs "freetype")
de1d68a2 673 "/include/freetype2"))))
2a068aec
DT
674 (native-inputs
675 `(("pkg-config" ,pkg-config)))
676 ;; TODO: Use a patched Allegro 4 that supports window resizing. This
677 ;; patched version is bundled with Aseprite, but the patches should be
678 ;; extracted and applied on top of a standalone Allegro 4 package.
679 (inputs
680 `(("allegro" ,allegro-4)
681 ("curl" ,curl)
682 ("freetype" ,freetype)
683 ("giflib" ,giflib)
684 ("libjpeg" ,libjpeg)
685 ("libpng" ,libpng)
686 ("libwebp" ,libwebp)
687 ("libx11" ,libx11)
688 ("libxext" ,libxext)
689 ("libxxf86vm" ,libxxf86vm)
690 ("pixman" ,pixman)
691 ("tinyxml" ,tinyxml)
692 ("zlib" ,zlib)))
693 (synopsis "Animated sprite editor and pixel art tool")
694 (description "Aseprite is a tool for creating 2D pixel art for video
695games. In addition to basic pixel editing features, Aseprite can assist in
696the creation of animations, tiled graphics, texture atlases, and more.")
167f0e82 697 (home-page "https://www.aseprite.org/")
2a068aec 698 (license license:gpl2+)))
966dff3b
KY
699
700(define-public qqwing
701 (package
702 (name "qqwing")
703 (version "1.3.4")
704 (source (origin
705 (method url-fetch)
706 (uri (string-append
707 "https://qqwing.com/"
708 name "-" version ".tar.gz"))
709 (sha256
710 (base32
711 "0bw0papyqjg22z6irf36gs54y8236wa37b6gyn2h1spy65n76lqp"))))
712 (build-system gnu-build-system)
713 (native-inputs
714 `(("pkg-config" ,pkg-config)))
715 (home-page "https://qqwing.com/")
716 (synopsis "Sudoku puzzle solver and generator")
717 (description
718 "QQWing is a Sudoku puzzle generator and solver.
719It offers the following features:
720@enumerate
721@item Can solve 1000 puzzles in 1 second and generate 1000 puzzles in 25 seconds.
722@item Uses logic. Uses as many solve techniques as possible when solving
723 puzzles rather than guessing.
724@item Rates puzzles. Most generators don't give an indication of the difficulty
725 of a Sudoku puzzle. QQwing does.
726@item Can print solve instructions for any puzzle.
727@item Customizable output style, including a CSV style that is easy to
728 import into a database.
729@end enumerate")
730 (license license:gpl2+)))
d2cc38b7
KK
731
732(define-public quesoglc
733 (package
734 (name "quesoglc")
735 (version "0.7.2")
736 (source (origin
737 (method url-fetch)
738 (uri (string-append "mirror://sourceforge/" name "/" version "/"
739 name "-" version "-free.tar.bz2"))
740 (sha256
741 (base32
742 "08ddhywdy2qg17m592ng3yr0p1ih96irg8wg729g75hsxxq9ipks"))))
743 (build-system gnu-build-system)
744 (native-inputs `(("pkg-config" ,pkg-config)))
745 (inputs `(("fontconfig" ,fontconfig)
746 ("freeglute" ,freeglut)
747 ("fribidi" ,fribidi)
748 ("glew" ,glew)))
749 (home-page "http://quesoglc.sourceforge.net")
750 (synopsis "Implementation of the OpenGL Character Renderer (GLC)")
751 (description
752 "The OpenGL Character Renderer (GLC) is a state machine that provides
753OpenGL programs with character rendering services via an application programming
754interface (API).")
755 (license (list license:expat license:lgpl2.1+))))
4bc37bf0
KK
756
757(define-public python-pygame
758 (package
759 (name "python-pygame")
052f75da 760 (version "1.9.3")
4bc37bf0
KK
761 (source (origin
762 (method url-fetch)
052f75da 763 (uri (pypi-uri "pygame" version))
4bc37bf0
KK
764 (sha256
765 (base32
052f75da 766 "1hlydiyygl444bq5m5g8n3jsxsgrdyxlm42ipmfbw36wkf0j243m"))))
4bc37bf0
KK
767 (build-system python-build-system)
768 (arguments
052f75da 769 `(#:tests? #f ; Tests require pygame to be installed first.
4bc37bf0
KK
770 #:phases
771 (modify-phases %standard-phases
772 ;; Set the paths to the dependencies manually because
773 ;; the configure script does not allow passing them as
774 ;; parameters. This also means we can skip the configure
775 ;; phase.
776 (add-before 'build 'set-library-paths
777 (lambda* (#:key inputs outputs #:allow-other-keys)
778 (let ((sdl-ref (assoc-ref inputs "sdl"))
779 (font-ref (assoc-ref inputs "sdl-ttf"))
780 (image-ref (assoc-ref inputs "sdl-image"))
781 (mixer-ref (assoc-ref inputs "sdl-mixer"))
782 (smpeg-ref (assoc-ref inputs "libsmpeg"))
783 (png-ref (assoc-ref inputs "libpng"))
784 (jpeg-ref (assoc-ref inputs "libjpeg"))
052f75da 785 (freetype-ref (assoc-ref inputs "freetype"))
4bc37bf0
KK
786 (v4l-ref (assoc-ref inputs "v4l-utils"))
787 (out-ref (assoc-ref outputs "out")))
788 (substitute* "Setup.in"
789 (("SDL = -I/usr/include/SDL")
790 (string-append "SDL = -I" sdl-ref "/include/SDL -I.")))
791 (substitute* "Setup.in"
792 (("FONT = -lSDL_ttf")
793 (string-append "FONT = -I" font-ref "/include/SDL -L"
794 font-ref "/lib -lSDL_ttf")))
795 (substitute* "Setup.in"
796 (("IMAGE = -lSDL_image")
797 (string-append "IMAGE = -I" image-ref "/include/SDL -L"
798 image-ref "/lib -lSDL_image")))
799 (substitute* "Setup.in"
800 (("MIXER = -lSDL_mixer")
801 (string-append "MIXER = -I" mixer-ref "/include/SDL -L"
802 mixer-ref "/lib -lSDL_mixer")))
803 (substitute* "Setup.in"
804 (("SMPEG = -lsmpeg")
805 (string-append "SMPEG = -I" smpeg-ref "/include/smpeg -L"
806 smpeg-ref "/lib -lsmpeg")))
807 (substitute* "Setup.in"
808 (("PNG = -lpng")
809 (string-append "PNG = -I" png-ref "/include -L"
810 png-ref "/lib -lpng")))
811 (substitute* "Setup.in"
812 (("JPEG = -ljpeg")
813 (string-append "JPEG = -I" jpeg-ref "/include -L"
814 jpeg-ref "/lib -ljpeg")))
052f75da
DM
815
816 (substitute* "Setup.in"
817 (("FREETYPE = -lfreetype")
818 (string-append "FREETYPE = -I" freetype-ref "/include/freetype2 -L"
819 freetype-ref "/lib -lfreetype")))
820
4bc37bf0
KK
821 (substitute* "Setup.in"
822 (("^pypm") "#pypm"))
4bc37bf0
KK
823 ;; Create a path to a header file provided by v4l-utils.
824 (system* "mkdir" "linux")
825 (system* "ln" "--symbolic"
826 (string-append v4l-ref "/include/libv4l1-videodev.h")
827 "linux/videodev.h")
828 (system* "ln" "--symbolic" "Setup.in" "Setup")))))))
4bc37bf0 829 (inputs
052f75da
DM
830 `(("freetype" ,freetype)
831 ("sdl" ,sdl)
4bc37bf0
KK
832 ("sdl-image" ,sdl-image)
833 ("sdl-mixer" ,sdl-mixer)
834 ("sdl-ttf" ,sdl-ttf)
835 ("sdl-gfx" ,sdl-gfx)
836 ("libjpeg" ,libjpeg)
837 ("libpng" ,libpng)
838 ("libX11" ,libx11)
839 ("libsmpeg" ,libsmpeg)
840 ("portmidi" ,portmidi)
841 ("v4l-utils" ,v4l-utils)))
167f0e82 842 (home-page "https://www.pygame.org")
4bc37bf0
KK
843 (synopsis "SDL wrapper for Python")
844 (description "Pygame is a set of Python modules designed for writing games.
845Pygame adds functionality on top of the excellent SDL library. This allows you
846to create fully featured games and multimedia programs in the python language.")
847 (license (list license:bsd-2
848 ;; python numeric license as listed by Debian looks like
849 ;; an Expat-style license with a warranty disclaimer for
850 ;; the U.S. government and the University of California.
851 license:expat
852 license:lgpl2.0+
853 license:lgpl2.1+
854 license:gpl3+
855 license:psfl
856 license:public-domain
857 license:lgpl2.1+))))
052f75da
DM
858
859(define-public python2-pygame
860 (package-with-python2 python-pygame))
68c6110c
DT
861
862(define-public grafx2
863 (package
864 (name "grafx2")
865 (version "2.4")
866 (source (origin
867 (method url-fetch)
868 ;; XXX: There is no URL that contains the version. :(
869 (uri "http://pulkomandy.tk/projects/GrafX2/downloads/21")
870 (sha256
871 (base32
872 "0svsy6rqmdj11b400c242i2ixihyz0hds0dgicqz6g6dcgmcl62q"))))
873 (build-system gnu-build-system)
874 (arguments
875 '(#:phases
876 (modify-phases %standard-phases
877 (delete 'configure) ; no configure script
878 (add-before 'build 'change-to-src-directory
879 (lambda _
880 (chdir "src")
881 #t)))
882 #:make-flags
883 ;; SDL header files are referenced without the preceeding "SDL/".
884 (list (string-append "CFLAGS=-I"
885 (assoc-ref %build-inputs "sdl-union")
886 "/include/SDL")
887 (string-append "prefix="
888 (assoc-ref %outputs "out")))
889 #:tests? #f)) ; no check target
890 (native-inputs
891 `(("pkg-config" ,pkg-config)))
892 (inputs
893 `(("libpng" ,libpng)
894 ("lua" ,lua-5.1)
895 ("sdl-union" ,(sdl-union (list sdl sdl-image sdl-ttf)))))
896 (synopsis "Bitmap paint program")
897 (description "GrafX2 is a bitmap paint program inspired by the Amiga
7432d3ae 898programs Deluxe Paint and Brilliance. Specializing in 256-color drawing, it
68c6110c
DT
899includes a very large number of tools and effects that make it particularly
900suitable for pixel art, game graphics, and generally any detailed graphics
901painted with a mouse.")
902 (home-page "http://pulkomandy.tk/projects/GrafX2")
903 (license license:gpl2))) ; GPLv2 only
c608fe8c
MR
904
905(define-public ois
906 (package
907 (name "ois")
908 (version "1.3")
909 (source
910 (origin
911 ;; Development has moved to github and there are no recent tarball
912 ;; releases.
913 (method git-fetch)
914 (uri (git-reference
915 (url "https://github.com/wgois/OIS.git")
916 (commit "bb75ccc1aabc1c547195579963601ff6080ca2f2")))
917 (file-name (string-append name "-" version))
918 (sha256
919 (base32
920 "0w0pamjc3vj0jr718hysrw8x076fq6n9rd6wcb36sn2jd0lqvi98"))))
921 (build-system gnu-build-system)
922 (arguments
923 `(#:phases
924 (modify-phases %standard-phases
925 (add-after 'unpack 'bootstrap
926 (lambda _ (zero? (system* "sh" "bootstrap")))))))
927 (native-inputs
928 `(("autoconf" ,autoconf)
929 ("automake" ,automake)
930 ("libtool" ,libtool)
931 ("m4" ,m4)
932 ("pkg-config" ,pkg-config)))
933 (inputs
934 `(("libxaw" ,libxaw)))
935 (synopsis "Object Oriented Input System")
936 (description
937 "Cross Platform Object Oriented Input Lib System is a cross platform,
938simple solution for using all kinds of Input Devices (Keyboards, Mice,
939Joysticks, etc) and feedback devices (e.g. force feedback). Meant to be very
940robust and compatible with many systems and operating systems.")
941 (home-page "https://github.com/wgois/OIS")
942 (license license:zlib)))
42d0d13d
MR
943
944(define-public mygui
945 (package
946 (name "mygui")
947 (version "3.2.2")
948 (source
949 (origin
950 (method url-fetch)
951 (uri
952 (string-append "https://github.com/MyGUI/" name
953 "/archive/MyGUI" version ".tar.gz"))
954 (sha256
955 (base32
956 "13x7cydmj7gjmsg702sqjbfi53z265iv6j7binv3r6a7ibndfa0a"))))
957 (build-system cmake-build-system)
958 (arguments
959 '(#:tests? #f ; No test target
960 #:configure-flags
961 (list "-DMYGUI_INSTALL_DOCS=TRUE"
962 (string-append "-DOGRE_INCLUDE_DIR="
963 (assoc-ref %build-inputs "ogre")
964 "/include/OGRE"))))
965 (native-inputs
966 `(("boost" ,boost)
967 ("doxygen" ,doxygen)
968 ("pkg-config" ,pkg-config)))
969 (inputs
970 `(("font-dejavu" ,font-dejavu)
971 ("freetype" ,freetype)
972 ("graphviz" ,graphviz)
973 ("libx11" ,libx11)
974 ("ogre" ,ogre)
975 ("ois" ,ois)))
976 (synopsis "Fast, flexible and simple GUI")
977 (description
978 "MyGUI is a library for creating Graphical User Interfaces (GUIs) for games
979and 3D applications. The main goals of mygui are: speed, flexibility and ease
980of use.")
981 (home-page "http://mygui.info/")
982 (license license:expat)))
e9a599cd
MR
983
984(define-public openmw
985 (package
986 (name "openmw")
987 (version "0.42.0")
988 (source
989 (origin
990 (method url-fetch)
991 (uri
992 (string-append "https://github.com/OpenMW/openmw/archive/"
993 name "-" version ".tar.gz"))
994 (sha256
995 (base32
996 "1pla8016lpbg8cgm9kia318a860f26dmiayc72p3zl35mqrc7g7w"))))
997 (build-system cmake-build-system)
998 (arguments
999 `(#:tests? #f ; No test target
1000 #:configure-flags
1001 (list "-DDESIRED_QT_VERSION=5")))
1002 (native-inputs
1003 `(("boost" ,boost)
1004 ("doxygen" ,doxygen)
1005 ("pkg-config" ,pkg-config)))
1006 (inputs
1007 `(("bullet" ,bullet)
1008 ("ffmpeg" ,ffmpeg)
1009 ("libxt" ,libxt)
1010 ("mygui" ,mygui)
1011 ("openal" ,openal)
1012 ("openscenegraph" ,openscenegraph)
1013 ("qtbase" ,qtbase)
1014 ("sdl" ,sdl2)
1015 ("unshield" ,unshield)))
1016 (synopsis "Free software re-implementation of the RPG Morrowind engine")
1017 (description
1018 "OpenMW is a free, open source and modern engine which reimplements and
1019extends the one that runs the 2002 open-world RPG Morrowind. The engine comes
1020with its own editor, called OpenMW-CS which allows the user to edit or create
1021their own original games.")
1022 (home-page "https://openmw.org")
1023 (license license:gpl3)))
194b4e7d
PM
1024
1025(define-public godot
1026 (package
1027 (name "godot")
1028 (version "2.1.4")
1029 (source (origin
1030 (method url-fetch)
1031 (uri
1032 (string-append "https://github.com/godotengine/godot/archive/"
1033 version "-stable.tar.gz"))
1034 (file-name (string-append name "-" version))
1035 (sha256
1036 (base32 "1mz89nafc1m7srbqvy7iagxrxmqvf5hbqi7i0lwaapkx6q0kpkq7"))))
1037 (build-system gnu-build-system)
1038 (arguments
1039 `(#:tests? #f ; There are no tests
1040 #:phases
1041 (modify-phases %standard-phases
1042 (delete 'configure)
1043 (add-after 'unpack 'scons-use-env
1044 (lambda _
1045 ;; Scons does not use the environment variables by default,
1046 ;; but this substitution makes it do so.
1047 (substitute* "SConstruct"
1048 (("env_base = Environment\\(tools=custom_tools\\)")
1049 (string-append
1050 "env_base = Environment(tools=custom_tools)\n"
1051 "env_base = Environment(ENV=os.environ)")))
1052 #t))
1053 (replace 'build
1054 (lambda _
1055 (zero? (system*
1056 "scons"
1057 "platform=x11"
1058 ;; Avoid using many of the bundled libs.
1059 ;; Note: These options can be found in the SConstruct file.
1060 "builtin_freetype=no"
1061 "builtin_glew=no"
1062 "builtin_libmpdec=no"
1063 "builtin_libogg=no"
1064 "builtin_libpng=no"
1065 "builtin_libtheora=no"
1066 "builtin_libvorbis=no"
1067 "builtin_libwebp=no"
1068 "builtin_openssl=no"
1069 "builtin_opus=no"
1070 "builtin_zlib=no"))))
1071 (replace 'install
1072 (lambda* (#:key outputs #:allow-other-keys)
1073 (let* ((out (assoc-ref outputs "out"))
1074 (bin (string-append out "/bin")))
1075 (with-directory-excursion "bin"
1076 (if (file-exists? "godot.x11.tools.64")
1077 (rename-file "godot.x11.tools.64" "godot")
1078 (rename-file "godot.x11.tools.32" "godot"))
1079 (install-file "godot" bin)))))
1080 (add-after 'install 'install-godot-desktop
1081 (lambda* (#:key outputs #:allow-other-keys)
1082 (let* ((out (assoc-ref outputs "out"))
1083 (desktop (string-append out "/share/applications"))
1084 (icon-dir (string-append out "/share/pixmaps")))
1085 (mkdir-p desktop)
1086 (mkdir-p icon-dir)
1087 (rename-file "icon.png" "godot.png")
1088 (install-file "godot.png" icon-dir)
1089 (with-output-to-file
1090 (string-append desktop "/godot.desktop")
1091 (lambda _
1092 (format #t
1093 "[Desktop Entry]~@
1094 Name=godot~@
1095 Comment=The godot game engine~@
1096 Exec=~a/bin/godot~@
1097 TryExec=~@*~a/bin/godot~@
1098 Icon=godot~@
1099 Type=Application~%"
1100 out)))
1101 #t))))))
1102 (native-inputs `(("pkg-config" ,pkg-config)
1103 ("scons" ,scons)))
1104 (inputs `(("alsa-lib" ,alsa-lib)
1105 ("freetype" ,freetype)
1106 ("glew" ,glew)
1107 ("glu" ,glu)
1108 ("libtheora" ,libtheora)
1109 ("libvorbis" ,libvorbis)
1110 ("libwebp" ,libwebp)
1111 ("libx11" ,libx11)
1112 ("libxcursor" ,libxcursor)
1113 ("libxinerama" ,libxinerama)
1114 ("libxrandr" ,libxrandr)
1115 ("mesa" ,mesa)
1116 ("openssl" ,openssl)
1117 ("opusfile" ,opusfile)
1118 ("pulseaudio" ,pulseaudio)
1119 ("python2" ,python-2)))
1120 (home-page "https://godotengine.org/")
1121 (synopsis "Advanced 2D and 3D game engine")
1122 (description
1123 "Godot is an advanced multi-platform game engine written in C++. If
1124features design tools such as a visual editor, can import 3D models and
1125provide high-quality 3D rendering, it contains an animation editor, and can be
1126scripted in a Python-like language.")
1127 (license license:expat)))