Jump to content
IGNORED

Deep Zone


artrag

Recommended Posts

 

One more thing: I think the collision detection is being affected by splitting the process over a few frames. I had noticed that most of the time my bullets appear to not affect the enemies nor their bullets. This is more noticeable when compared to the max/ultra version, where bullets seem to collide more accurately.

 

If you are keeping the pipeline approach, then I suggest you treat collisions in one of two ways:

  • Apply all position changes and check for collisions afterwards on the same frame
  • Apply position changes over more than one frame and check for collisions on the next frame after all are done
Again, I haven't seen the code, so I do not know exactly what is affecting collisions. I'm just basing my opinion purely on observation while playing.

 

-dZ.

It is practically impossible that you experience differences. Collision is tested in SW (no HW collision) and the two versions differ for one single WAIT.

I cannot see any case where my bullets do not hit the enemies.

Note that your bullets have a shorter range wrt the starting point of the enemies, so you can kill them only when they are halfway. Moreover enemy bullets cannot be destroyed by design.

(actually the main ship is also immune by colliding enemies, but this was my laziness)

Edited by artrag
Link to comment
Share on other sites

There is a good trick for subpixel movement :) I tend to use it in my games.

    CONST speed_enemy = $30    ' Less than 1 pixel speed
 
    speed1 = speed1 + speed_enemy
    IF speed1 >= $40 THEN speed1 = speed1 - $40:GOSUB move_enemy

The fastest element in your game (the spaceship moves very well) is the base speed, everything else can move slower with this snippet.

 

You can tune enemies and enemy bullets this way. (for example, easy enemies at speed $28, fast enemies at speed $38)

 

I generally use back counters as in z80 asm comparing to 0 is faster (it comes for free), in intybasic it would be something like this:

 

signed time_step

const frame_per_sec = 60

 

[...]

time_step = time_step -number_of_pixels_per_second

 

if time_step<0 then time_step=time_step+frame_per_sec: gosub move_enemy_one_pixel

[...]

Edited by artrag
  • Like 1
Link to comment
Share on other sites

 

It is practically impossible that you experience differences. Collision is tested in SW (no HW collision) and the two versions differ for one single WAIT.

I cannot see any case where my bullets do not hit the enemies.

Note that your bullets have a shorter range wrt the starting point of the enemies, so you can kill them only when they are halfway. Moreover enemy bullets cannot be destroyed by design.

(actually the main ship is also immune by colliding enemies, but this was my laziness)

 

Well, I can tell you that in the last versions I was playing, I could die when colliding with enemies, and I could destroy the bullets. I also experienced collision problems in the slow/normal versions. In any case, it is moot if you are updating the engine's speed.

 

I will admit that I hadn't noticed about the range of my bullets, so perhaps that is what gave me the impression of missed collisions. I'll try again.

 

 

initial attempt of speed tuning

 

Much better! It is starting to feel like a real game now. I do have a few observations:

  • Enemy bullets are much too fast, almost impossible to avoid, and with multiplexing sometimes almost completely invisible.
  • Enemy bullets cannot be destroyed in this version, I think this is good.
  • Collision with enemy does not destroy ship, I think this is not good.
  • Collision between my bullet and enemy seem to work properly.
  • Music is still jarring and annoying, I really suggest trying it at a lower octave or two. ;)
  • The warp rays blend into the background better in blue, and do not distract me; however, they still do not read as a "warp effect."

Good job! It's getting to feel more and more like an arcade space shooter. :)

 

-dZ.

Link to comment
Share on other sites

There is a good trick for subpixel movement :) I tend to use it in my games.

    CONST speed_enemy = $30    ' Less than 1 pixel speed
 
    speed1 = speed1 + speed_enemy
    IF speed1 >= $40 THEN speed1 = speed1 - $40:GOSUB move_enemy

The fastest element in your game (the spaceship moves very well) is the base speed, everything else can move slower with this snippet.

 

You can tune enemies and enemy bullets this way. (for example, easy enemies at speed $28, fast enemies at speed $38)

This is perfect for Kaboom, I mean Mad Bomber. I had the game set up to move the bombs every other frame so the minimum speed of the bombs would be 0.5 pixel a frame. 1 pixel a frame is a bit too fast. Is it ok I can use this for my game?

 

Pretty much going to be,

 

if dropspeed<>0 then bombsp(i)=bombsp(i)+bombspeed
bmsp:
if bombsp(i)>=10 then bomby(i)=bomby(i)+1:bombsp(i)=bombsp(i)-10:goto bmsp

If I uses number over 10, then it'll recursively add the bomb's y coordinate until the number is below 10. Of course, the bombs are going to be dropping very quickly in the hardest round.

  • Like 1
Link to comment
Share on other sites

This is perfect for Kaboom, I mean Mad Bomber. I had the game set up to move the bombs every other frame so the minimum speed of the bombs would be 0.5 pixel a frame. 1 pixel a frame is a bit too fast. Is it ok I can use this for my game?

 

Pretty much going to be,

 

if dropspeed<>0 then bombsp(i)=bombsp(i)+bombspeed
bmsp:
if bombsp(i)>=10 then bomby(i)=bomby(i)+1:bombsp(i)=bombsp(i)-10:goto bmsp

If I uses number over 10, then it'll recursively add the bomb's y coordinate until the number is below 10. Of course, the bombs are going to be dropping very quickly in the hardest round.

 

Yes, of course you can use it :)

 

I would suggest only a small enhancement for your code:

 

 

if dropspeed<>0 then bombsp(i)=bombsp(i)+bombspeed
while bombsp(i)>=10:bomby(i)=bomby(i)+1:bombsp(i)=bombsp(i)-10:wend
  • Like 1
Link to comment
Share on other sites

This is a draft attempt of dot warp, I've also slowed down bullets and reduced the music of two octaves

 

My impressions:

  • Enemy bullets work better now at this speed. The game is playable and indeed a bit fun. :)
  • I still definitely see my bullets going through enemies at times. This is after they are within range, as I see the bullet moving past behind them.
  • The star field "warp" effect looks great!!! Although I would suggest it should go a bit faster to give the impression of speed. GREAT JOB!
  • Music sounds a bit better, it is not as screechy as before, but I just don't like it. I don't think it fits the style of the game, and the pattern repeats much too quickly making it a bit annoying. Sorry. Perhaps you can lower its volume, it seems to over shadow the sound effects.

 

I'll play a bit more and see if I have anything else to add. I do like the new star field. :)

 

-dZ.

Link to comment
Share on other sites

Wow, I'm very impressed! Tremendous improvements over the last time I tried it. I was a HUGE Gyruss freak back in the day.

 

The controls are spot-on. I'd love to try with the disc (someday a multicart will actually appear) but they feel real good. Allowing auto-fire is a must. The rotational speed is much improved - it felt slow and jerky before. This is "just right" for a first level. The background is way better like this - you get a sense of it but it doesn't distract from the action.

 

With this as an engine - slap together a bunch of levels, have some intermission screens as you approach a planet, get the music tuned up (maybe a different tune for every level?) and you have 90% of Gyruss. Not sure if a power-up serves much purpose. Nor if you can really go nuts on the enemy count. I'm impressed with how little I notice the MOB multiplexing - I expected it to at least be a distraction, but I don't even notice it. But this is close to a complete game. Of course if this is meant to be 1/4 of Gorf (as per the name) - then you pretty much have that Gorf stage done as far as I'm concerned.

 

Hell, you could probably modify this to make a passable Tempest as well.

Link to comment
Share on other sites

 

It looks good.

 

Now someone should make in IntyBASIC the music of Bach Tocatta and Fugue in D minor, rock style :)

 

Agreed. I'm not as much of a fan of ports as some - I'd like to see more original games for the system - but when it comes to Gyruss I'll make an exception. Make it as close as possible to the original and I'll be all over it :) The music is a HUGE part of why I loved the game so much.

 

In fact, IntyBASIC's drum sounds would work remarkably well for this piece. More arcade-accurate than the C64 version that I loved growing up. If someone can find me some clean sheet music for it, I'd gladly take a stab at transcribing it. I love the music that much.

Link to comment
Share on other sites

Agreed. I'm not as much of a fan of ports as some - I'd like to see more original games for the system - but when it comes to Gyruss I'll make an exception. Make it as close as possible to the original and I'll be all over it :) The music is a HUGE part of why I loved the game so much.

 

In fact, IntyBASIC's drum sounds would work remarkably well for this piece. More arcade-accurate than the C64 version that I loved growing up. If someone can find me some clean sheet music for it, I'd gladly take a stab at transcribing it. I love the music that much.

First Google hit

http://www.mutopiaproject.org/ftp/BachJS/BWV565/ToccataFugue/ToccataFugue-a4.pdf

Link to comment
Share on other sites

Is there a tool that converts mml to intybasic?
The link to the tool here seems broken http://intvprime.com/

 

The tools should be named Inty Music Muxer

but I cannot find it anywhere on google

 

With such a conversion tool one could port quite a lot of songs

Look e.g. here

http://www.archeagemmllibrary.com/j-s-bach-toccata-and-fugue-full/

Edited by artrag
Link to comment
Share on other sites

 

Agreed. I'm not as much of a fan of ports as some - I'd like to see more original games for the system - but when it comes to Gyruss I'll make an exception. Make it as close as possible to the original and I'll be all over it :) The music is a HUGE part of why I loved the game so much.

 

In fact, IntyBASIC's drum sounds would work remarkably well for this piece. More arcade-accurate than the C64 version that I loved growing up. If someone can find me some clean sheet music for it, I'd gladly take a stab at transcribing it. I love the music that much.

 

 

Remember that the Gyruss arrangement was different than the actual classical fugue; only certain parts are played in a particular order... Just have a listen to it on a game-play video and keep it in mind as you transcribe the sheet music. :)

 

Also, apart from auto-fire, I would suggest either a shield, or a power-up that gives you "double-fire" (just like Gyruss, or Galaga).

 

-dZ.

Link to comment
Share on other sites

Not that I'm aware of, but it seems vaguely easy to make. I may dig into this a bit.

 

Absolutely invaluable when trying to clone music: https://www.youtube.com/watch?v=TNc7VdD-ink

 

This guy has broken up the percussion and music tracks.

As a person with no music training, I've have been able to get some MUSIC via these type of videos, if they have the notes turned on.

 

http://youtu.be/ZoTMjUaDNbU

Link to comment
Share on other sites

 

 

Remember that the Gyruss arrangement was different than the actual classical fugue; only certain parts are played in a particular order... Just have a listen to it on a game-play video and keep it in mind as you transcribe the sheet music. :)

 

 

Yup. Already found the arrangement it was based on :) Just not the actual sheet music. That being said...

 

This MML stuff seems to be a nice, simple arrangement - perfect for chiptune style stuff (which was the point). I'm gonna see how much Python I've learned and try to write a converter into IntyBASIC MUSIC statements. No promises but it should be feasible. There are thousands of tunes in MML out there; it would open up a large library of music for people. There's typically a lot of hand-tweaking involved after - in terms of timing and instrument choice, and sometimes things just need hand-tuning - but this would take 90% of the work out of transcribing music.

 

My only issue is that there seems to be a lot of dialect variation in this "language". It may require custom parser plugins or something. I can't even find a full language definition for the example artag posted, but I can make out most of how it works at a glance.

 

 

 

Link to comment
Share on other sites

very basically commands are those at the following page

http://gamerpagex.appspot.com/mml

 

you can cut and past the MML in this

 

http://noike.info/~kenzi/cgi-bin/mml2mp3/index.cgi?convdir=2015/2015-10/2015-10-05--02-11-22--486340&mmltype=mml2mid&premml=2015/2015-10/2015-10-05--02-11-22--486340/form_mml.txt#submissionform

 

and get the wav or midi files

Edited by artrag
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...