Flyin' Irons

Got anything to say that's not about the Tube? Say it here!
Post Reply
User avatar
CrunchySaviour
All Zones
Posts: 1236
Joined: 14 Feb 2005, 19:18
Location: Bedfordshire
Contact:

Flyin' Irons

Post by CrunchySaviour »

As you all know, I'm a man of many projects. This is the latest of these projects.

Flyin' Irons is the world's first flying steam iron racing game.

Image

You can download the source code for the game in a handy ZIP package from http://hg.sharesource.org/flyinirons/ (click "zip" near the top of the page). Read the readme (open with notepad or something) for detailed installation instructions - at the moment you'll need a few other things installed too, like Python, Soya and Blender. All the links are included

Follow the game's development at http://flyinirons.wordpress.com where I will post updates and screenshots as it progresses. The installation instructions are also available from the blog, in the "preview release available" post.

The game is written in Python using the Soya 3D engine and the OpenLander game engine - this project and Flyin' Irons are now very closely linked.

Release the steam!
~ Let loose the bands of war! DISINTEGRATOR.co.uk
User avatar
tubeguru
Site Administrator
Posts: 9100
Joined: 30 Jan 2005, 22:08
Location: The Twilight Zone
Contact:

Re: Flyin' Irons

Post by tubeguru »

Steam iron racing?

Seriously, what are you smoking these days? ;)
One thing only do I know, and that is that I know nothing - Socrates.

Champion of bugger all, 2004 to 2022
Member of sweet FA
User avatar
Root
All Zones
Posts: 2401
Joined: 07 Mar 2006, 02:28
Location: Helsinki, Finland
Contact:

Re: Flyin' Irons

Post by Root »

As I run Linux, I thought I would give this a go, but it hasn't proved easy so far. I'm no expert at troubleshooting this sort of thing, so let's hope you are :)

This is what I got when running python setup.py build:

Code: Select all

/usr/lib/python2.5/distutils/dist.py:263: UserWarning: Unknown distribution option: 'console'
  warnings.warn(msg)
running build
Creating directories...
Building conventional models...
* Soya * Converting data/blender/crate.blend to World...
* Soya * Running 'blender data/blender/crate.blend -P /var/lib/python-support/python2.5/soya/blender2soya_batch.py FILENAME=crate TMP_FILE=/tmp/tmp_WoPKC '...
guessing 'blender-bin' == '/usr/bin/blender-bin'
Compiled with Python version 2.5.2.
Checking for installed Python... got it!
filename crate
tmp_file /tmp/tmp_WoPKC

Blender quit
* Soya * Converting data/blender/checkpoint.blend to World...
* Soya * Running 'blender data/blender/checkpoint.blend -P /var/lib/python-support/python2.5/soya/blender2soya_batch.py FILENAME=checkpoint TMP_FILE=/tmp/tmppInE8H '...
guessing 'blender-bin' == '/usr/bin/blender-bin'
Compiled with Python version 2.5.2.
Checking for installed Python... got it!
filename checkpoint
tmp_file /tmp/tmppInE8H

Blender quit
* Soya * Converting data/images/checkpoint_Cylinder.png to Material...
* Soya * Converting data/blender/blank.blend to World...
* Soya * Running 'blender data/blender/blank.blend -P /var/lib/python-support/python2.5/soya/blender2soya_batch.py FILENAME=blank TMP_FILE=/tmp/tmpYZaSQn '...
guessing 'blender-bin' == '/usr/bin/blender-bin'
Compiled with Python version 2.5.2.
Checking for installed Python... got it!
filename blank
tmp_file /tmp/tmpYZaSQn

Blender quit
* Soya * Converting data/blender/ironingboard.blend to World...
* Soya * Running 'blender data/blender/ironingboard.blend -P /var/lib/python-support/python2.5/soya/blender2soya_batch.py FILENAME=ironingboard TMP_FILE=/tmp/tmpa9MYzC '...
guessing 'blender-bin' == '/usr/bin/blender-bin'
Compiled with Python version 2.5.2.
Checking for installed Python... got it!
filename ironingboard
tmp_file /tmp/tmpa9MYzC

Blender quit
* Soya * Converting data/blender/invisibox.blend to World...
* Soya * Running 'blender data/blender/invisibox.blend -P /var/lib/python-support/python2.5/soya/blender2soya_batch.py FILENAME=invisibox TMP_FILE=/tmp/tmpJ1f8AM '...
guessing 'blender-bin' == '/usr/bin/blender-bin'
Compiled with Python version 2.5.2.
Checking for installed Python... got it!
filename invisibox
tmp_file /tmp/tmpJ1f8AM

Blender quit
* Soya * Converting data/images/nulltex.png to Material...
Building cell shaded models...
* Soya * Converting data/blender/iron.blend to World...
* Soya * Running 'blender data/blender/iron.blend -P /var/lib/python-support/python2.5/soya/blender2soya_batch.py FILENAME=iron TMP_FILE=/tmp/tmpEqxk2m '...
guessing 'blender-bin' == '/usr/bin/blender-bin'
Compiled with Python version 2.5.2.
Checking for installed Python... got it!
filename iron
tmp_file /tmp/tmpEqxk2m

Blender quit
* Soya * Converting data/images/iron_Cube.png to Material...
* Soya * Converting data/blender/tefueltrident.blend to World...
* Soya * Running 'blender data/blender/tefueltrident.blend -P /var/lib/python-support/python2.5/soya/blender2soya_batch.py FILENAME=tefueltrident TMP_FILE=/tmp/tmpXkBTys '...
guessing 'blender-bin' == '/usr/bin/blender-bin'
Compiled with Python version 2.5.2.
Checking for installed Python... got it!
filename tefueltrident
tmp_file /tmp/tmpXkBTys

Blender quit
* Soya * Converting data/images/tefueltrident_Cube.png to Material...
* Soya * Converting data/blender/cone.blend to World...
* Soya * Running 'blender data/blender/cone.blend -P /var/lib/python-support/python2.5/soya/blender2soya_batch.py FILENAME=cone TMP_FILE=/tmp/tmpj-YHu8 '...
guessing 'blender-bin' == '/usr/bin/blender-bin'
Compiled with Python version 2.5.2.
Checking for installed Python... got it!
filename cone
tmp_file /tmp/tmpj-YHu8

Blender quit
Building textures...
error: file 'data/images/grass.png' does not exist
Do I need to install something else? Because when I then run ./openlander, I just get:

Code: Select all

bash: ./openlander: No such file or directory
And it's right - there is no openLander file to execute. What to do? I have managed to get the original, unmodified OpenLander to run, so I can only assume you broke something :P.
2012 Formula 1 predictions competition
Rules and discussion - Entry form - Results and standings
User avatar
CrunchySaviour
All Zones
Posts: 1236
Joined: 14 Feb 2005, 19:18
Location: Bedfordshire
Contact:

Re: Flyin' Irons

Post by CrunchySaviour »

Arrrgh. I have broken something. I think it works for me because Windows doesn't discriminate so much on filenames.

The reason is because the filename of the GRASS.png I included is uppercase. Go into data/images and rename it to grass.png. I'll fix this on sharesource ASAP!

If it has inexplicably not been downloaded, here it is: http://hg.sharesource.org/flyinirons/ra ... /GRASS.png

To get it running you need to run ./fi (python fi in windows), not openlander.
~ Let loose the bands of war! DISINTEGRATOR.co.uk
User avatar
Root
All Zones
Posts: 2401
Joined: 07 Mar 2006, 02:28
Location: Helsinki, Finland
Contact:

Re: Flyin' Irons

Post by Root »

CrunchySaviour wrote:To get it running you need to run ./fi (python fi in windows), not openlander.
You should change that in the readme then.

You also need to rename tefueltrident_Cube.png to tefueltrident_cube.png (all lowercase) - or change your code, of course.

By renaming that file, and GRASS.png, I managed to get the game to load, but when I tried clicking "Time Trial", it crashed with the following output:

Code: Select all

* Soya * Using 8 bits stencil buffer

* Soya * version 0.13.2
* Using OpenGL 2.1.2 NVIDIA 169.12
*   - renderer : GeForce 7100 GS/PCI/SSE2
*   - vendor   : NVIDIA Corporation
*   - maximum number of lights        : 8
*   - maximum number of clip planes   : 6
*   - maximum number of texture units : 4
*   - maximum texture size            : 4096 pixels

* Soya Pudding * Version: 0.1-0
starting mission Time Trial
calling terrain.geom property
I'm created
Traceback (most recent call last):
  File "./fi", line 6, in <module>
    lander_app.run(sys.argv)
  File "/home/ollie/Temp/Flying Irons/lander/lander_app.py", line 37, in run
    scene = open_mission(menu.start, hud)
  File "/home/ollie/Temp/Flying Irons/lander/mission.py", line 27, in open_mission
    return i(hud)
  File "/home/ollie/Temp/Flying Irons/lander/mission.py", line 96, in __init__
    self.my_craft = TefuelTrident(self, hud, LocalController, True)          # Load the player's craft
  File "/home/ollie/Temp/Flying Irons/lander/ships.py", line 466, in __init__
    Lander.__init__(self, parent, soya.Model.get('TefuelTrident'), hud, control_klass, master)
  File "/var/lib/python-support/python2.5/soya/__init__.py", line 283, in get
    return klass._alls.get(filename) or klass._alls.setdefault(filename, klass.load(filename))
  File "/var/lib/python-support/python2.5/soya/__init__.py", line 292, in load
    dirname  = klass._get_directory_for_loading_and_check_export(filename)
  File "/var/lib/python-support/python2.5/soya/__init__.py", line 218, in _get_directory_for_loading_and_check_export
    dirname = klass._get_directory_for_loading(filename, ext)
  File "/var/lib/python-support/python2.5/soya/__init__.py", line 195, in _get_directory_for_loading
    raise ValueError("Cannot find a %s named %s!" % (klass, filename))
ValueError: Cannot find a <class 'soya.Model'> named TefuelTrident!
* Soya3D * Quit...
So I still haven't been able to play it, but I'm more than happy to bug-test it for you :)

Oh, and I had to do chmod a+x fi before I could execute it - another item for the readme?
2012 Formula 1 predictions competition
Rules and discussion - Entry form - Results and standings
User avatar
CrunchySaviour
All Zones
Posts: 1236
Joined: 14 Feb 2005, 19:18
Location: Bedfordshire
Contact:

Re: Flyin' Irons

Post by CrunchySaviour »

OK, Ollie. I'm renaming all references to openlander in the code so they say flyinirons instead.

Also, I've renamed fi to flyinirons. I'm currently having trouble getting a new model to build, with the same problems I initially had with the Tefuel Trident, but I managed to get that working.

All the textures of the blender models (x_Cube, x_Cylinder etc) are automatically assigned the capital letter by Blender. Of course I need to get it working on as many machines as possible, but it's interesting that Mark, the openlander developer, isn't experiencing your uppercase issues. Maybe it varies across Linux flavours.

ANYWAY, I apologise for writing a shoddy and misleading readme. I'll add your suggestion to the readme too.

It probably won't find a model named TefuelTrident if you've renamed it tefueltrident! Why is it so sensitive to cases? You're using Python 2.4, right? I'll have a look in the code for these dodgy misplaced capitalisations...
~ Let loose the bands of war! DISINTEGRATOR.co.uk
User avatar
CrunchySaviour
All Zones
Posts: 1236
Joined: 14 Feb 2005, 19:18
Location: Bedfordshire
Contact:

Re: Flyin' Irons

Post by CrunchySaviour »

Change Line 466-ish in ships.py so tefueltrident is lowercase:

Lander.__init__(self, parent, soya.Model.get('tefueltrident'), hud, control_klass, master)
~ Let loose the bands of war! DISINTEGRATOR.co.uk
User avatar
CrunchySaviour
All Zones
Posts: 1236
Joined: 14 Feb 2005, 19:18
Location: Bedfordshire
Contact:

Re: Flyin' Irons

Post by CrunchySaviour »

I'm just pushing a changeset to sharesource, with a new start gate and stuff. I've included your suggestion in the readme and changed the errors. Thanks!

Try downloading and building the new version. Does it work better from the outset?
~ Let loose the bands of war! DISINTEGRATOR.co.uk
User avatar
Root
All Zones
Posts: 2401
Joined: 07 Mar 2006, 02:28
Location: Helsinki, Finland
Contact:

Re: Flyin' Irons

Post by Root »

Your changes have allowed me to run the program, but now I'm having graphic difficulties. Unfortunately I can't take a screenshot because that key seems to be disabled while I'm flying, so I'll just describe it to you: the terrain is visible, but the images which are meant to be mapped onto it are not, so everything is greyscale. The terminal output doesn't seem to give much away, except for perhaps the following lines:

Code: Select all

ignoring set viewport request 0 0 1024 768
Calculating AABB for terrain (slow)
Exception exceptions.NameError: 'dCCylinderClass' in '_soya._TerrainGetColliderFn' ignored
2012 Formula 1 predictions competition
Rules and discussion - Entry form - Results and standings
User avatar
CrunchySaviour
All Zones
Posts: 1236
Joined: 14 Feb 2005, 19:18
Location: Bedfordshire
Contact:

Re: Flyin' Irons

Post by CrunchySaviour »

Strange that you get no textures. I suspect it may be due to PNG compression. Do you see textures on other stuff?

The readout you're getting on the console is normal - that's all Mark's (OpenLander) doing.

I've added fuel consumption to sharesource now.

I'll try uncompressing the textures tomorrow. Glad you've got it working though!!
~ Let loose the bands of war! DISINTEGRATOR.co.uk
User avatar
CrunchySaviour
All Zones
Posts: 1236
Joined: 14 Feb 2005, 19:18
Location: Bedfordshire
Contact:

Re: Flyin' Irons

Post by CrunchySaviour »

Added refuelling (land on the ironing board to refuel).

Video now on YouTube at http://www.youtube.com/watch?v=D3nrXii99vA - that's how it should look!
~ Let loose the bands of war! DISINTEGRATOR.co.uk
User avatar
CrunchySaviour
All Zones
Posts: 1236
Joined: 14 Feb 2005, 19:18
Location: Bedfordshire
Contact:

Re: Flyin' Irons

Post by CrunchySaviour »

I've added trees to the first section of the track, so now is a better time than any to try playing Flyin' Irons.

Ollie, did you fix the ground texture issue? Have you tried a later version with lowercase file name?
~ Let loose the bands of war! DISINTEGRATOR.co.uk
User avatar
CrunchySaviour
All Zones
Posts: 1236
Joined: 14 Feb 2005, 19:18
Location: Bedfordshire
Contact:

Re: Flyin' Irons

Post by CrunchySaviour »

Look! Trees!
Image
~ Let loose the bands of war! DISINTEGRATOR.co.uk
Post Reply

Who is online

Users browsing this forum: No registered users and 20 guests