Mystery of Isis IIa

You can discuss anything about fan-made Commander Keen games here.
ckGeoff
Vortininja
Posts: 90
Joined: Sat Sep 19, 2009 2:01

Mystery of Isis IIa

Post by ckGeoff »

Hi,

For those who don't know me, I was originally part of the Isis II team. A month or so back I came across all the old Isis II files and was dumb founded by how much was actually done on the game (mainly artwork). It felt a shame to have it just sit idle on one or two backup hard drives around the world, so investigated a way to at least bring it back to life.

Isis-IIa is the next generation Isis-II game engine in development. It is written under Windows XP in PyGame (a set of modules allowing you to use Python scripting as an interface to the cross-platform SDL library). It is inspired by the Worminator/Isis-II engine (originally by David Layne AKA DML1001, with later modifications by Charles Byrd), but has been completely re-written from scratch. In general the code has been greatly improved and optimised.

Demo Video 1: http://www.youtube.com/watch?v=Hk1IGPi8w0k
Demo Video 2: http://www.youtube.com/watch?v=lMwXZwXWmEs

Demo Download: http://www.megaupload.com/?d=03593ZGN

NB: - the demo videos do not accurately reflect how the game looks & plays. For example I normally get 150+ fps. The screen capture software makes it appear jerky, and video compression altered the quality and aspect ratio too, sorry - I don't know how to do it any better.

A lot of the variables have been separated from the game logic, to allow for easy editing (jump heights, gravity, etc), and the engine incorporates frame-rate independent movement (should look the same at any processing speed). As such, all of the physics are specified in computer game S.I. units - i.e., 'PIXELS PER SECOND'. This is much more logical than, for example, 'PIXELS PER FRAME at 60 FPS'. The game logic still and screen refresh rate still run as fast as possible; it is only the animation and movement that is controlled. Other games such as Isis-II limited the frame rate to achieve constant speeds.

The mechanics of the game play have been matched as closely as possible to that of the Galaxy series (e.g., jump heights, pogo amounts).

For those not familiar with Isis-II, the main changes from the original Galaxy series are that Keen has health, multiple weapons, and the ability to swim whilst in a water portion of a level. If this bugs you, so be it. We believed this opens up the door for a lot of new and exciting level design possibilities. For those familiar with it, and who have issues with the changes or artwork not being "Keenish", you're entitled to your opinion but I'm not really interested in the criticism. I started recreating Isis just to make the content that was originally made for the game, available once again.

For example, there was artwork for around 30 odd enemies, 10-15 or so which I would say were "complete", others maybe just had one frame drawn, but I will try to make them available none the less.

Isis-IIa could potentially be very MOD-FRIENDLY as well. With no programming skills, you should theoretically (at a minimum) be able to create new tilesets, edit levels, and modify sprites (both Keen and Enemies). If the game physics (run speed, jump amounts, etc) & other variables were read in from a text file (currently they are hard-coded), they could also be modified. Ultimately, it should be possible to script custom cut scenes too.


Current Engine Features:

Cross Platform (theoretically, not tested)
- uses SDL which is cross-platform
- interested parties could download Python (free) and are invited to try and compile from source to OS-X / Linux binaries

Resolution - can be easily scaled to run in the following modes. Future versions could increase the actual size of the playing area. It could also be possible to use 640x400 for the menus and cut-scenes, and scaled 320x200 for the game.
- 320 x 200 (windowed)
- 640 x 400 (windowed - prefered)
- 1280 x 800 (windowed - untested since my screen is too small)
- 640 x 400 (windowed, scale2x) - this looks crappy for the game but works OK for the menus
- Fullscreen

32-bit Colour
- Although the Isis-II was only 8-bit (256) colour, that is no longer a technological constraint
- Isis-IIa will, however, for the most part still use the same 256-colour pallette
- Having 32-bit colour is useful for intros & cutscenes for example, and particularly for future Modding

Level Editor
- Makes use of the free and simple to use, Windows-based "Tiled" level editor (www.mapeditor.org)
- Numerous layers for logical & hassle-free editing (3 x background, 3 x foreground, info, sprites, etc)
- Multiple BG & FG layers are combined in-game, but make for easier editing (Isis II used "graphical properties" which were annoying)
- Can copy & paste portions of the map
- Ability to export entire map to image file
- Mutliple zoom levels

Keen Movement
- Run (flat, 1:1 slopes, 1:2 slopes)
- Jump
- Pogo
- Look Up/Down
- Idle (Look Up / Shrug)
- Ledge Grab
- Pole Climb
- Doors
- Swim
- Shoot (standing left/right/up, falling left/right/up/down, pole climbing left/right/up/down)

Other
- Unlimited 4-frame animated tiles (frame length could in principle be changed)
- Particle system for minor explosions (eg water splash)
- Particle system could be advanced to create blood/fire/smoke effects (but these are not Keenish)
- Parallaxing background
- Translucent BG and FG tiles
- Locked doors

Collectable items:
- Key cards
- Point items
- Health items
- Powerups
- Inventory Items

Weather Effects.
- Night mode
- Rain
- Snow
- Clouds

NB the rain/snow/cloud effects can be set to a certain height, eg you can set the cloud base level, and where the rain begins. This is useful for example if you a climbing a mountain - you can climb through the clouds to the clearing on the top.

HUD
- shows health, lives, keys, points, etc

Enemies
- walking, swimming & flying enemies
- they can jump, shoot, attack, make idle movements


I'm interested to hear any thoughts & comments. The engine is by no means perfect, but it works and has many features. To actually COMPLETE the game (the Engine is all but completed), at a minimum the following would be needed:

- A couple of tilesets
- Cut scene pictures to tell the story as the levels progress
- Levels to be designed


I'm posting this just as an FYI for now. As I said, I really only did this to try and revive the content, and turns out it turned into a bit of a challenge as well just to make a side scrolling game in Windows under Python/Pygame.
Last edited by ckGeoff on Tue May 24, 2011 3:49, edited 3 times in total.
Shadow Master
Lord of the Shikadi
Posts: 264
Joined: Fri Nov 02, 2007 13:30

Post by Shadow Master »

HOLY COW! IT LIVES! IT LIVES! MWAHAHAHAHAHA :mortlol

Isis II became my favorite Keen fangame when I managed to make it run on Windows XP (thanks to VDMSound), and I went so far as to plan to make a game engine inspired by some of its features and content, although it certainly never left the planning stage. It's nice to see one of the people behind it trying to bring it back to life, you just made my day! I can't wait to hear more of this!
ckGeoff
Vortininja
Posts: 90
Joined: Sat Sep 19, 2009 2:01

Post by ckGeoff »

Thanks. I can tell you that I have implemented 30+ enemies. Although some of them are very similar to each other. Also some of them lack death frames, I just made them fade instead. They all require tweaking (eg hit points, walk speeds, etc), but they all work.

Some are simple (just walk, hit a wall, reverse direction), others are more complex, they can jump, shoot when Keen gets within a certain range, etc. There are a few special ones too like a "teleturret" that shoots constantly and disappears when you face it, and can only really be shot from behind. They were all drawn and designed years ago by eK.

For enemies that were only conceptualised by 1 frame, I still put them in, though they likely wouldn't be used in any game.

There are also the breakable rocks that Isis II had.

The one thing that is NOT in there, are movable platforms.
User avatar
tulip
Flower Pot
Posts: 2520
Joined: Thu Aug 21, 2008 12:50
Location: Hamburg, Germany
Contact:

Post by tulip »

I'm sure this'll work on my machine ;)
Got to try this soon, oh man so much keening to do lately....
Image You crack me up little buddy!
User avatar
XkyRauh
Mortimer's RightHand Man
Posts: 418
Joined: Thu Nov 01, 2007 16:32
Location: San Diego, California

Post by XkyRauh »

I remember this stuff! Hi Geoff! Long time no see. :) Thanks for posting this. Hope you've been well.
User avatar
Levellass
S-Triazine
Posts: 5265
Joined: Tue Sep 23, 2008 6:40

Post by Levellass »

It is the second coming of Geoff.
What you really need, not what you think you ought to want.
Blue
The Big Foot
Posts: 44
Joined: Thu Nov 01, 2007 6:36
Location: Canada/Germany

Post by Blue »

I'd be definitely interested in trying to port the game to OS X and Linux. I dual boot both right now.

I'm mainly a C and C++ developer, and have only developed custom animated graphics using Qt, but I'd be glad to try and help out, even if it's just porting the engine over to the two platforms.

Let me know
User avatar
RoboBlue
It's that one guy.
Posts: 941
Joined: Wed Apr 23, 2008 10:26
Contact:

Post by RoboBlue »

Wow, this is awesome news!
Now we just need ilsoap to come back and finish shadowlands.
Image
User avatar
tulip
Flower Pot
Posts: 2520
Joined: Thu Aug 21, 2008 12:50
Location: Hamburg, Germany
Contact:

Post by tulip »

RoboBlue wrote:Wow, this is awesome news!
Now we just need ilsoap to come back and finish Rule of a Yorps Dinner.
fix'd
Image You crack me up little buddy!
ckGeoff
Vortininja
Posts: 90
Joined: Sat Sep 19, 2009 2:01

Post by ckGeoff »

@Blue: Great! I'll get a workable demo together soon, and give you the source. You'll need to download Python 2.6 and pyGame, and need to work out how to compile them to an execitable (eg in Windows we use a utility called "py2exe" but it is still not trivial.
ckGeoff
Vortininja
Posts: 90
Joined: Sat Sep 19, 2009 2:01

Post by ckGeoff »

I put together a quick demo. It can be downloaded at:

http://www.megaupload.com/?d=03593ZGN

This build should run under Windows, and is in windowed 640x400 mode. NB: a number of libraries (.DLL) files are required and it's possible everyone may not have them all. Depending on how many people have issues, I may be able to package them up (although technically that is probably illegal); they are probably available elsewhere on the web.

I'd appreciate any comments & feedback - just on the mechanics of the game play (not the artwork). I do realise it takes a while to load, it has something to do with extracting files from the data file.

A few things to note:

1) Be warned to pogo you need to push the SHIFT key. I was unable to access the ALT key without bringing up the Windows menu bar thing (!!!).

2) Most the menu items don't do anything. The only ones that work are the NEW GAME and the HELP screens (F1).

3) There is no music or sound effects.
User avatar
Keenfan
Vortininja
Posts: 233
Joined: Sat Aug 22, 2009 18:44

Post by Keenfan »

Amazing! Loved playing thorugh the two levels!

Is there a way to select another weapon?
ckGeoff
Vortininja
Posts: 90
Joined: Sat Sep 19, 2009 2:01

Post by ckGeoff »

Yes. Weapons are toggled by numbers 1-6.

Since you can only get two weapons, they correspond to numbers 1 (Blow Gun) and 3 (Pulsar). It should mention this in the help menu (accessed via F1).

You can't access weapons you have not collected.

Glad it worked OK.
User avatar
Keenfan
Vortininja
Posts: 233
Joined: Sat Aug 22, 2009 18:44

Post by Keenfan »

Oh, and this maybe interesting for you as well:

Running under Windows 7 64bit without problems. :-)
No .dll files missing.
Ceilick
The Dude
Posts: 1670
Joined: Mon Sep 22, 2008 20:10
Location: Seattle

Post by Ceilick »

This is cool! It's been forever since I've played the old demos since it didn't work in dosbox, so finally getting to play again is awesome. Will the old demo levels be available in future releases?

I also had no .dll trouble, but level 2 crashed twice for me. The error log reads:

Code: Select all

Traceback (most recent call last):
  File "isis.py", line 181, in <module>
  File "isis_keen.pyo", line 403, in update
  File "isis_keen.pyo", line 779, in gfnKeen_updatePosition
  File "isis_keen.pyo", line 1228, in gfn_Push
IndexError: list index out of range
Traceback (most recent call last):
  File "isis.py", line 196, in <module>
  File "pygame\sprite.pyo", line 399, in update
  File "isis_enemies.pyo", line 1946, in update
  File "isis_enemies.pyo", line 2763, in gfn_PushEnemy
IndexError: list index out of range

As for game mechanics, hopefully this is the kind of feedback you're looking for:

-The camera scrolls too much when keen jumps or pogos.

-Keen can 'fly' up poles if jump and up is held down.

-the ledge grabbing is kind of awkward. Keen grabbing onto the edge seems to happen kind of suddenly, and keen should be able to pull up immediately if the arrow key in the direction of the climb is held down (right now the arrow has to be pressed a second time). This is minor. Also if keen is hanging on a ledge and instead of climbing up the other arrow key is pressed, keen pulls away from the ledge rather awkwardly and something wrong happens with the camera.

-the pogo is pretty darn good, but its a little more maneuverable than the original games. Not enough 'drift'. Although this might be because keen is older and can handle it better :)

-the jump seems a little high, might just be me though.

-I'm not sure if this is the tile properties error or an error with keen's collision box, but he's able to stand way too far off the ledges of platforms and hits his head too early on ceilings.

-if the door's are entered from the right side, keen no longer looks like he's walking through the door, but walking into the background.

-these probably just aren't present yet, but in case you forgot: keen should be able to look up, down, and swim faster by pressing jump.

-if keen jumps to the right or left of the top of the pole when climbing out, he 'glitches' through the floor. This is probably a tile property error.

-keen's shot burst (the pulsar) seems to only half show up whenever it collides with somthing.
Post Reply