This being Python (specifically Python 2) and SDL (through pygame),
ideally the code should run as-is for anyone who has the Python
interpreter and pygame installed; just run enginerl.py. For the
benefit of Windows users who find this awkward, I'll be putting
up something like a Py2Exe executable as well, but I might not get
around to that before tomorrow(access to Windows is somewhat
awkward for me).
I'll also have more time tomorrow to make a better posting
explaining the game; there is a possibility that the learning
curve might be a bit steep.
The very basics: there is only one melee weapon in the game,
and it's a wrench. It's a surprisingly effective weapon for a
wrench, but you're still going to want to use other weapons.
These, you're going to have to build yourself, which is more or
less the point of the game.
Before you can build anything, you need to discover components;
this is done by destroying robots and looking through their
innards ("technology cores"). Once you think you have enough
components to design something interesting or useful, you can
bring up the design dialog with "D". (This is a large menu
system; "View plans" should be useful in documenting roughly
what the components are for.) Once you've finished one or
more designs, you can start building stuff by pressing "T",
as long as you have enough resources and materials. (If you
don't, you'll have to destroy and recycle more robots.)
There is basically no documentation yet; I will be writing a more
comprehensive post when I have a bit of time (which probably means
tomorrow). Both vi keys and numpad work for movement; space
generally means cancel. For those of you who can read Python,
erlmaininput.py should give you a fairly good overview of the entire
control set.
-kaw
(PS: I actually discovered a serious bug _while_ writing this
newsgroup post, so any purists who insist on downloading the
7DRL release should be aware that there is a potential infinite
loop in that version, which is fixed in 1.01.)
Link?
> As some of you may recall, I started early on my 7DRL project
> this year, and so so my 168 hours just run out. I managed to upload
> a tarball of the (Python) source in time, so I'm going to count
> this as a win.
Where to? Where? Give me the link! Puh-leeeeeseeeee!
/me cries.
--
Radomir Dopieralski, http://sheep.art.pl
http://code.google.com/p/enginerl/downloads/list
You need to improve your reading skills or work on your memory ;]
T.
I looked through this post and his other post on this project for this
link. I don't think it was nearly as obvious as you seem to think.
Thanks though.
but...
Since I have to install and upgrade a bunch of python crap to get this
pygame lib to work I don't know how soon that will be, and there is a
high probability I will get frustrated and lose interest. Of course,
if you were able to get some people to compile this python into an
executable it would be far more likely. OSX plox?
Congratulations!
I have XP and pretty new pygame and python, and the game faults with:
Font is not being ideally rendered.
Traceback (most recent call last):
File "C:\Documents and Settings\Filip\Programs
\eengine-7drl-101\enginerl.py",
line 217, in <module>
screen.waitForInput()
File "C:\Documents and Settings\Filip\Programs
\eengine-7drl-101\rlinterface.py
", line 223, in waitForInput
event = self.getInput()
File "C:\Documents and Settings\Filip\Programs
\eengine-7drl-101\rlsdl.py", lin
e 405, in getInput
self.update()
AttributeError: SdlInterface instance has no attribute 'update'
any chances for a fix in 1.0.2?
Filip Dreger
I was going to submit a patch tonight for the original author. But
since it seems to affect somebody else:
Line 405 in rlsdl.py should be
self.sdl.update()
Then it runs fine. I'll post more of a review/guide tonight when I can
play it.
-D
So... unless you get a compiled OSX version, I am going to have to
miss out on a game I am quite excited about :(
My opinion on these sorts of libraries was never that high... if you
can't include them in the source package, they are usually far to much
effort and are too unreliable to install. If you want people to play
your game, I think sticking with C, C++, Java (with standard
libraries), or compiled binaries is the way to go.
I'm about to make a post including a bit of documentation, but since
that's going to be an awfully long post, I'll address this
specifically:
you need a trigger. (Hook it up to the projector.)
You also need other components -- a beam projector needs
something to project, the something that produces _that_ something
needs power, and an engine that produce power needs fuel.
(You really ought to start with some of these components known;
the fact that you don't means that the game is a bit needlessly hard
in the beginning.)
-kaw
Python 2.3? That's old but not really a problem. Now, the mismatch
between versions of the Python you "installed" and the path the game is
looking for some of the standard modules : "python2.4/os.py" for
example, is bad news. The assert _sre.MAGIC == MAGIC is IMHO just the
proof you are using a mismatched python interpreter and standard modules.
> Python 2.3? That's old but not really a problem. Now, the mismatch
> between versions of the Python you "installed" and the path the game is
> looking for some of the standard modules : "python2.4/os.py" for
> example, is bad news. The assert _sre.MAGIC == MAGIC is IMHO just the
> proof you are using a mismatched python interpreter and standard modules.
Doh! Duh.
Oh, wait. I was wrong about versions. I'm running 2.4... I think I was
confused cause I upgraded from 2.3. I'm going to dig around a bit. I
little quick googling suggest I might have to be attentive to the fact
that I'm using PPC.
> Oh, wait. I was wrong about versions. I'm running 2.4... I think I was
> confused cause I upgraded from 2.3. I'm going to dig around a bit. I
> little quick googling suggest I might have to be attentive to the fact
> that I'm using PPC.
Oh, I meant to add... a magic number, in this context, I think refers
to an integer that is tucked into the beginning of a binary that
indicates the OS/arch/protocol that the binary was built for. In this
case, I think its telling me that its trying to use a binary build for
another OS (intel?).
Are you still having these problems?
Python and pygame(which contains the standard Python bindings for
SDL) really not obscure languages/libraries at all, IMHO no more than
the Java runtimes. Both are packaged for OS X, so if you're editing
source files to get this working, there's almost certainly an easier
way
to do what you're trying to do. (On both Windows and Linux this is a
two-click / one-line process.)
I don't use OS X, but from the #pygame channel on freenode I got the
following two packages recommended:
http://python.org/ftp/python/2.5.4/python-2.5.4-macosx.dmg
http://www.pygame.org/ftp/pygame-1.8.1release-py2.5-macosx10.5.zip
If you're using OS X 10.3, 10.4, or 10.5 pygame.org also seems to
recommend this one:
http://www.pygame.org/ftp/pyobjc-1.4-py2.5-macosx10.4.mpkg.zip
It's probably a good idea to uninstall any previous installations of
Python 2
that you've done before installing these; _especially_ if your comment
about "hacking it" should be interpreted to mean that you've edited
source files that are part of the standard library.
I hope you get it working; I'll be happy to try to assist, but my
knowledge of OS X is limited.
-kaw
As far as I know OSX comes with python installed.
Will C width SDL compiled to a linux binary work better on your OSX?
> As far as I know OSX comes with python installed.
It turned out this was the root of my previous problem. I opted to
install using fink because I am comfortable with the apt-like
interface. But even though 'which' lists /sw/bin/python as the
executable, the system python is what is actually run. I ended up dead-
ending because fink only installs 2.4, but emperor seems to depend on
a lot of 2.5 stuff.
I'll try to install python and all the libraries from their OSX mpkgs
if I get some energy again. I'll let you know when I make another pass
at it.
trigger -> signal delay -> bomb
(w)eild it, then (f)ire it, then either (d)rop or (t)hrow it.
Bah, bother, I meant Emperor Engine of course.
Ah! I figured out how to do it myself, by changing "flags = 0" to
"flags = pygame.FULLSCREEN" in rlsdl.py