[lisp-game-dev] [PROGRESS] Engine Troubles over Tentacle Planet, part 1

Erik Winkels aerique at xs4all.nl
Tue Jul 13 10:46:12 UTC 2010


This is an ASCII version of this blog: http://aerique.blogspot.com/2010/07/ilge-2010-engine-troubles-over-tentacle.html

1 Introduction 
~~~~~~~~~~~~~~

I've finally managed to scramble together a good couple of hours to work
on my [ILGE 2010] entry.  At this rate it will be doubtful whether I'll
have a minimal game by the end of this month :-(

[A video] of the first item that can be checked off the to-do list:
rolling terrain.  The video is low quality and stutters but this is due
to me using sub-optimal software to capture my desktop.  The program
actually runs very smoothly on both systems I've ran it on (a Samsung
NC10 netbook and an Intel P4 2.8Ghz desktop).

The video shows the planet on which this game is played.  It is a
standard heightfield created using [Perlin Noise] (with the CL [Black
Tie] library) which keeps scrolling down endlessly until the player
dies.

[ILGE 2010]: http://dto.github.com/notebook/2010expo.html
[A video]: http://www.youtube.com/watch?v=4QljLf9OSi8
[Perlin Noise]: http://en.wikipedia.org/wiki/Perlin_noise
[Black Tie]: http://github.com/aerique/black-tie

2 Goal 
~~~~~~

Explore the usability of [Ogre] and C++ from [Embeddable Common Lisp]
(ECL) using functionality specific to ECL as opposed to using the CFFI
approach used by [Okra].  (Since Okra's CFFI approach needs to compile a
small C wrapper library to access Ogre's C++ functions anyway.)

I will be ignoring any licensing issues that might come with releasing a
binary that's statically linked to ECL and Ogre for now.

[Ogre]: http://www.ogre3d.org/
[Embeddable Common Lisp]: http://ecls.sourceforge.net/
[Okra]: http://github.com/aerique/okra

3 Development Environment 
~~~~~~~~~~~~~~~~~~~~~~~~~

My development environment is Debian Linux.  Testing will also be done
on Windows (Vista unfortunately) in the future but that hasn't happened
yet.


3.1 Dependencies 
~~~~~~~~~~~~~~~~

- ECL 10.4.1
- Ogre 1.6.4
- OIS 1.2.0 (not used yet)

ECL has been compiled by myself but Ogre and OIS have been installed
using Debian's package manager (you need libogre-dev and libois-dev).

I have not used Ogre 1.7.x yet but since Ogre's API has been pretty
stable in the past it might just work without any changes.


4 TO-DO 
~~~~~~~

In chronological order:

- [X] rolling terrain
- [ ] controllable spaceship
- [ ] basic tentacles
- [ ] bullets
- [ ] shootable tentacles
- [ ] tentacles that shoot small spores
- [ ] roaming (bigger) spores that attack the player
- [ ] collision detection: spaceship vs terrain
- [ ] collision detection: spaceship vs all other entities

Don't know when:

- [ ] some minor GUI elements showing the score, highscore and FPS.


5 Source 
~~~~~~~~

The code is not pretty but available here:
[http://www.aerique.net/software/etotp/etotp-20100713.tar.gz]

I'm slowly moving from using global variables to stuffing everything
into a scene-class instance so that will account for any duplication you
might see.





More information about the Lisp-game-dev mailing list