Friday, March 14, 2008

OpenLander, Powerball


OpenLander


OpenLander (Forum Showcase) is a 3D lunar lander style game. Whilst currently more a tech demo than a game, it looks very interesting and strangely reminiscent of an old Mac or Amiga game that I just can't remember, although of course with much better graphics. It's written in Python with Soya3D, and could be the type of game to make me eat previous words about Python not being suitable for non-trivial projects.



Less talking, more youtube:





Anybody remember that old Mac (or Amiga) game that looks similar to this? Update: Thanks to reader Michael Reed who points out the 1988 Amiga classic Virus - that's the one!





Powerball

Powerball (Ogre Showcase) is an, "arcade game where you have the roll a ball into the target. Sounds simple? Yeah, now the cool facts: Items like beamers, Coins, switches, you can control it by holding a Chessboard at the bottom of your Webcam (even in Linux)." That last bit about a chessboard/webcam combo sounds great. The only non-cool bit about the project is that the media content is not under a Free license and hence not hosted on SF. Hopefully that'll change in the future.



FreeTrain is getting somewhere now. The author of SdlDotNet and Tao.SDL has taken up work on the project and is kicking ass. FreeTrain coming to a Linux/Mono platform near you Real Soon (tm)!



Update 1: Too early in the morning... had to publish this 5 times! No title, spelling errors, layout problems. Somebody must've watered down my coffee! -- Charlie



Update 2: Oh my... it's not OpenLancer, it's OpenLander. Maybe I should just go back to bed? -- Charlie

11 comments:

  1. Anonymous10:34 am

    Umm.. It's OpenLander, not Lancer.. ;)

    ReplyDelete
  2. Cheers ears, corrected... *sigh*

    ReplyDelete
  3. Anonymous12:57 pm

    Python only suitable for trivial stuff? Dude, go get another cup of cofee :D

    ReplyDelete
  4. Anonymous4:40 pm

    "strangely reminiscent of an old Mac or Amiga game that I just can't remember"

    Could the game have been Virus?

    http://en.wikipedia.org/wiki/Virus_%28computer_game%29

    That game was actually a port of an Acorn Archimedes game called Zarch, which was itself an advancement of an early technology demonstrator called Lander.

    ReplyDelete
  5. Anonymous5:29 pm

    Hmm, you might want to change the image-description from OpenLancer to OpenLander too :D

    ReplyDelete
  6. Anonymous11:26 pm

    This has the potential to be a big hit.

    Since I assume the author is following these comments.

    Why not make the missions of games to capture some artifact or alien, bundled with lots of manvourering puzzles in an arty alien landscape?

    Each 'mission' would have be a different 'planet' and some background story why the artificat is important.

    You can also think about things like getting Object A, transporting it to place B, to for example make some tunnel or gateway open.

    Lots of beautifull landscapes, lots of puzzles, some flying alien animals both harmless and some that are dangerous and are best avoided. (non-intelligent)

    ReplyDelete
  7. Anonymous1:31 am

    Hi there,

    I'm the author of OpenLander.

    > Why not make the missions of games
    > to capture some artifact or alien,
    > bundled with lots of manvourering
    > puzzles in an arty alien landscape?

    That's basically the sort of thing I have had in mind! The Psygnosis Lander game that got me into this mini-genre had a good combination of shooting, puzzles and crazy physics. Each mission involved retrieving something, or getting in to a facility and shooting something, etc etc. Whilst I'm not doing an outright clone of that game, it has lots of cool ideas I'd like to include!

    > Each 'mission' would have be a
    > different 'planet' and some
    > background story why the artificat
    > is important.

    My development code now has 3 planetscapes (the canyon level in the original snapshot, a "martian volcano" and a "moonscape"). They have different appearance and different gravity (hence different handling of the ship).

    > Lots of beautifull landscapes, lots
    > of puzzles, some flying alien
    > animals both harmless and some that
    > are dangerous and are best avoided.
    > (non-intelligent)

    The landscapes will need a bit more work - I think bits of the scenery, especially on the Canyon level - are quite pretty but there's more work to be done. Also, I'd like to do some models of buildings etc that I can put into the levels both as scenery and as part of the mission.

    The idea of alien creatures is cool - I'll keep that in mind.

    First bits of game-like functionality will quite likely be something involving landing (well, as you'd expect!) and a race-against-the-clock passing through hoops around the level. If I keep the development moving, these would eventually just be "training missions".

    I have some fun ideas for game challenges and control features that might be nice to add. At some point, multiplayer could be cool too :)

    Lots of potential for cool, assuming I keep things moving along. Contributions and feedback (or encouragement!) are always very welcome, though.

    ReplyDelete
  8. Anonymous1:34 am

    > Python only suitable for trivial
    > stuff? Dude, go get another cup of
    > cofee :D

    One of the nice things about using Python and Soya3D is that code that could otherwise have been non-trivial in size got *very* small. The basic game engine using soya's ODE-based physics, particle system for engine exhaust, mouse and keyboard control took up < 350 lines of code.

    Since then I've added some more window dressing (menu system, etc) plus some more graphical features and effects - it's up to about 690 lines of code now (including whitespace and some commenting) but that's still not very much considering what it does. The credit to this goes more to Soya3D and to Python than to me, unfortunately ;-)

    ReplyDelete
  9. Anonymous10:45 am

    @codebase size
    For all these java ppl around it isn't a serious project until it gets its first 1M of lines of code, no matter what it does and how well :P

    well, I believe charlie meant game projects, and bigger, pure python games won't ever be fast enough... but i don't know of any nice dynamic or functional lang that'd be better. ocaml can be compiled, so perhaps?

    ReplyDelete
  10. Anonymous11:43 am

    > For all these java ppl around it
    > isn't a serious project until it
    > gets its first 1M of lines of code,
    > no matter what it does and how
    > well :P

    1M lines of code in any language would make me run away! :)

    > well, I believe charlie meant game
    > projects, and bigger, pure python
    > games won't ever be fast enough...
    > but i don't know of any nice dynamic
    > or functional lang that'd be better.
    > ocaml can be compiled, so perhaps?

    Well, what Soya3D - and therefore OpenLander - exploits is that most of the time doesn't actually need to be spent in the Python code anyhow. Most big game projects already use something like Python for scripting, so you're just adding a bit of overhead (how much depends on what you're doing, though! Much of the "hard" stuff in OpenLander are physics and graphics calculations, which are all handled by external libraries in C via Soya).

    I had assumed Charlie was referring to the hairiness of scaling Python up to large codebases; I've worked with some pretty big Python codebases and it certainly can be a bit daunting. I think with careful engineering, though, Python can still be manageable at scale.

    OCaml is meant to be pretty fast, from what I've heard. There are also compilable Python-related languages such as RPython and Pyrex. If OpenLander needed better performance somewhere I'd probably stick in a combination of Pyrex and (if necessary) C at the performance critical part.

    ReplyDelete
  11. I read that Ruby 2 is going to be much faster. I hope so since the weakest point of ruby is it's speed. If it achieves mono speed I'll be very happy.

    ReplyDelete

Note: only a member of this blog may post a comment.