Exolon (my another ZX Spectrum retro game remake using melonJS)

367 views
Skip to first unread message

newagebegins

unread,
Aug 3, 2012, 9:20:35 AM8/3/12
to mel...@googlegroups.com

Hello again, melonJS community! Some time ago I wrote about Action Reflex - my first melonJS game. And now I'm proud to present my another remake of a ZX Spectrum game made with melonJS. This time it's Exolon published in 1987. Original game was one the best (and one of my favorite) games on the platform and is in the Top 100 Games list on worldofspectrum.org (http://www.worldofspectrum.org/bestgames.html). Genre: shoot-em-up. Quite a hard game, very difficult to beat in one run. There were no "saves" in the original, so I didn't bother to add them too. The original has more levels than this remake, I included only 75 screens (3 levels).

Browse GitHub repository: https://github.com/newagebegins/exolon

Play: http://newagebegins.github.com/exolon/exolon.html

Problems I faced during game creation:
1. For some reason when tmx files (levels) are being loaded loading screen is not displayed. It is displayed only after the last level is loaded. So I was forced to add "Loading. Please wait" html text to show that something is happening behind the scene.
2. This game has 75 screens (levels). All of them are listed as game resources and are loaded before the game is started. And it takes too much time. Is melonJS capable of loading levels on demand during the actual level change?
3. me.audio.playTrack() always plays the track in a loop. But for title screen I needed all playTrack() functionality (like track pause when focus is lost) except looping. This is the only place that I modified in melonJS for this game. Maybe this possibility to play the track only once should be added to the engine?

Thanks for your attention.

P.S. Some screenshots to see what I has written about.


melonJS

unread,
Aug 5, 2012, 2:52:08 AM8/5/12
to mel...@googlegroups.com

that's quite an amazing work you put together here, and wow 75 levels... I bet you must have spent a lot of time on this one :)
it is also as hard as I remember on the spectrum, and I did not compare with the real one, but it really feels like the original one !


1.) that's strange... Is the custom loading screen the way you use to fix this, or is the issue happening with your loading screen as well ? note that I fixed some kind of random initialization issue with melonJS (like to the document ready status), so it might fix it. Or there is too much asset to load and screw up the default loading screen ?

2.) did you notice this function :
it might not allow to call the preloader multiple times, but it can be used to load resources on demand (so that you can load all the common asset using the preloader, and then define your own "between-level" loader for what you need for the next one).
I will however look at the preloader for the next version, but at this point I would like to stop adding stuff in the 0.9.4 as we already have a big changelog and I would like this version to be out in the wild :)


3.) actually me.audio.playTrack(id) is equivalent to me.audio.play(id, true), this to say that you can use the regular play function to play a track without repeating it (If i understood correctly what you meant).

4.) I add one point as a enhancement on both side :  enable screen-resize/fullscreen, as these kind of games would deserve to get a fullscreen mode :)


Love Spectrum, hope to see more of them, even though you're making me feel old ! :)
I still had somewhere in my mind the objective one day to to a remake of knight lore, maybe one day if I can spend more time on game making rather than working on the engine (maybe in a few versions !)

newagebegins

unread,
Aug 5, 2012, 3:38:49 AM8/5/12
to mel...@googlegroups.com
Great that you like it. Not a lot of work actually, because engine and editor were already done for me, and game logic is not that complex.
If you'd like to play the original Exolon in your browser (java applet), here's the link:
http://www.worldofspectrum.org/infoseekplay.cgi?title=Exolon&pub=Hewson+Consultants+Ltd&year=1987&id=0001686&joy=kemp&game=/games/e/Exolon.tap.zip&emu=3&aspect=3

1) This issue happens with the default loading screen as well. Loading screen isn't displayed before all tmx files are loaded. If I comment out tmx files loading screen works as it should work. Actually, my previous game Action Reflex also has this issue.
2) No, I didn't notice this function. Thanks for pointing out. It will be useful.
3) I think, using me.audio.play(id, true) is not an equivalent of me.audio.playTrack(id) because it doesn't set current_track variable, and when window loses focus the sound being played with me.audio.play() is not paused. And I wanted sound to be paused when focus is lost, like when you use me.audio.playTrack().
4) I agree, that's a good feature. I'll add it when I have time and desire.
Reply all
Reply to author
Forward
0 new messages