Jump to content
IGNORED

New Homebrew - Kick Ice


DaveM

Recommended Posts

10 hours ago, DEBRO said:

I think I understand the make up now. I'm assuming the bird will be isolated to its vertical position, the dropping ice blocks will drop at the same speed so there would be no overlap. What I'm not 100% clear on is if the blocks can stack. I assume not as I don't remember a play mechanic for the player to rise on top of a block.

Yes, the bird will fly in from the top of the screen to his position, then just move right and left much like the mad bomber in Kaboom.  When the level's over, he'll fly off the top of the screen.  The bird can't get to the players, and vice-versa.

 

If a block lands on another block, it'll slide off to one side, then drop to the platform.  Players can jump, but if they land on a block, they'll slide off.  If a player lands on another player, I think I'll have them bounce back up a bit.

10 hours ago, DEBRO said:

If I'm understanding correctly then I envision possibly 3 kernels? One for the bird, another for the falling blocks, and the last for the players and blocks.

That's about the solution I think I've come up with as well.  The lowest section with the players and the blocks worries me a bit, as there could be blocks at various heights, not only sitting on the platform, but still falling into place, and also falling off the sides into the water.  So that may get a bit sticky.  

10 hours ago, DEBRO said:

I don't think you should need the extra RAM for this setup. If the bird doesn't come any lower and that is the only object in its vertical zone then you could use direct indexing to draw it. Then transitioning to the block kernel, you would HMOVE to move the fine resolution object (it could be a player, missile, or ball since there is no overlap here). The block would drop on a course position value to fit nicely within the PF bits.

Yes, after thinking things through, that's what I've ended up with as well.  I'll also put something in there so the blocks don't overlap between two PF objects as they fall, just to keep things simple.

10 hours ago, DEBRO said:

Once the block arrives in the player area you could use indirect indexing to draw the descending block. Once the block is in place then an array of 5 bytes could hold the block state.

Not quite sure I understand this point, so I'll have to do a bit of research.  I'm wrapping up work on the menu now, then I'll start from the top of the screen and work down.

 

I'm abandoning the idea of different-shaped blocks for power-ups.  Just seems like that would be complicating things a bit too much.  I think I'll have different colored blocks as they fall for the power-ups, and when they get to the bottom section, they'll transition to white and lose their power-up abilities.  

Link to comment
Share on other sites

Menu Completed.  Once the title logo comes into view, you can press the button to go to the menu.

 

Players can be 1 player, 2 player Co-Op, or 2 player vs.  The scoreboard will adjust based on the game type.  For 1 player, the blue portion will not be visible.  In Co-Op play, the two players share a common score, but have separate life counts and power-ups, so the score will disappear from the blue bar, while the rest of the stuff remains visible.  2 player vs. shows the scoreboard just as you've seen so far.

 

Difficulty can be Easy, Normal, or Hard.  Pretty self-explanatory there.

 

No code yet for pushing the button on "Start!", so you can't go past the menu.

 

At this point, I have to set the game aside for just a little bit while I take care of a few things.  I need to build a website for our wedding and get our invites organized and sent out.  Once I get that taken care of, then I'll get back to the game and start working on the actual "game" part of it.

KickIce_20220125.a KickIce_20220125.bin

  • Like 4
Link to comment
Share on other sites

  • 2 months later...

Not much of an update, other than to say I'm finally back to working on the game after 2.5 months away.  After taking that much time off, it took me numerous attempts to get back into things, and trying to figure out my previous logic was a lot tougher than I anticipated.  So with that in mind, this update is kinda small.  I fixed a few logic bugs, slightly changed the colors on the bird, and you can now push the button on "Start!" to start the game.  This will reset the players, the bird will lower into view, and you'll be able to move the players around.  Regardless of the game type selected, it will assume a two-player game.  The title logo will reappear in place of the menu, but this will change with the next update.  Still no real game yet, but at least I'm back to making progress.

KickIce_20220402.bin KickIce_20220402.a

  • Like 4
Link to comment
Share on other sites

  • 3 months later...

Back to working on the game after another few months away from it.  There is progress, but I'm not going to share any files, as things are far too gitchy at the moment.  I do, however, have a screenshot:

 

752711953_KickIceScreenshot1stGameplay20220726.thumb.jpg.6b902beac99553cad3212b8d26bbad14.jpg

 

This is the first screenshot of actual gameplay.  That said, you really can't play the game as such, the game just starts up, you can move the players, and that's about it.  I haven't yet figured out a way to display the blocks in the space between where the block is in the screenshot and where the players are.  I have a few ideas, but haven't yet completely worked it out.  I also need to figure out how to display the blocks in the players' area, as well as add jumping ability for the players.  I also want to get rid of that blank space between the bird's claws and the block, but I may leave that until much later.  

 

So, still a long way to go, and not much time to work on it.  I'm giving up on trying to finish the game by October, that just isn't going to happen.  But I'll keep plugging away at it, and get this thing done eventually.

  • Like 4
Link to comment
Share on other sites

  • 1 month later...

I haven't posted on this game since July????  So here's the latest...  I've only had a couple chances to work on this since, and I might not work on this again for a little while, but I'm still determined to get it done.

 

The bird now moves horizontally.  The red player scoreboard displays the bird's horizontal position, and if you have 2-player versus mode on, the blue player's scoreboard will display the location the bird is moving to.  Obviously, I'm doing all that for testing purposes, and it'll be removed for the final game.  Once the bird lowers into position, an ice block is spawned, and he'll move back and forth with it, but that's it so far.  

 

There's still lots of glitches, most notably, a scanline issue anytime a player falls off the platform, but I'll resolve that later.  I've been trying to remove the blank lines between the bird's claws and the ice block, and I've narrowed the gap a bit, but I can't figure out how to get rid of it completely.  If anyone wants to have a look, I'd appreciate it.  I've attached the code.

 

Looking at the game as it stands, I'm starting to think the players will need more vertical room.  I love that scoreboard I have in there, but it takes up a lot of space.  I may end up re-working that area to cut its size in half and give the game play area more room.  I'll proceed as-is for now, try to get the game to a playable state, and see how it works before I go changing that scoreboard.  Many more important things in the game to work on first.

 

This will probably be the last I work on this game for at least a month or so.  I'm getting married on Oct 8, and getting everything set for the wedding is taking up a lot of time.  Hopefully, I'll free up a lot of time post-wedding, and I can start devoting more time to working on this.  I've got ideas for another few games in my head that I'm anxious to get to, but I'll have to finish this one first before I get to those.

 

In the meantime, gotta take care of wedding stuff.  We will be heading to Portland at the tail end of our honeymoon to attend PRGE, so hopefully we can meet some of you there!

KickIce_20220913.bin KickIce_20220913.a

  • Like 5
Link to comment
Share on other sites

18 hours ago, DaveM said:

This will probably be the last I work on this game for at least a month or so.  I'm getting married on Oct 8, and getting everything set for the wedding is taking up a lot of time.  Hopefully, I'll free up a lot of time post-wedding, and I can start devoting more time to working on this.  I've got ideas for another few games in my head that I'm anxious to get to, but I'll have to finish this one first before I get to those.

 

In the meantime, gotta take care of wedding stuff.  We will be heading to Portland at the tail end of our honeymoon to attend PRGE, so hopefully we can meet some of you there!

 

Congrats on the upcoming wedding and what better way to celebrate than by going to PRGE! See you there!

 

- James

 

  • Like 2
Link to comment
Share on other sites

  • 1 month later...

The bird now drops a block when he reaches his desired position.  You'll notice the block disappear shortly after that.  That's because I haven't written that part of the kernel yet.  

 

I haven't quite got a good grasp as to what to do next to draw the blocks falling.  While the block is in the grasp of the bird, I use the missile objects so I can have smooth horizontal scrolling, but I'll be using the playfield below that. I've only got a vague idea on what I should do next, but haven't quite figured out how to execute it.  Any assistance would be appreciated.  By my count, I have 54 bytes of RAM remaining.

 

And if you're wondering about the wedding mentioned above and didn't see my post in the Mr. Yo-Yo thread, you'll find the details here: 

 

 

 

KickIce_20221029.bin KickIce_20221029.a

  • Like 4
Link to comment
Share on other sites

  • 4 weeks later...

Still working on it, but nothing new to show so far.  Mainly doing some background logic stuff at the moment.

 

Some good news to share though - My fiancée was able to stand under her own power the other day for the first time since she got sick.  Still a long ways to go, but definitely heading in the right direction!

  • Like 5
Link to comment
Share on other sites

  • 2 months later...

I NEED HELP!

 

I've been working on a new kernel for the middle section of the screen since the start of December, and have been doing debugging over the last few weeks, but I'm at a point where I can't figure out the remaining bugs, so I'm hoping some of you can help. So here's what it looks like now during game play:

image.thumb.jpeg.9a5a9662f2dda03da8dcbd521abafeae.jpeg

As I was creating the new kernel for that middle section, I wasn't able to get the timing I needed to draw the blocks as solids.  I'm using a 2-line kernel, so I'm drawing the blocks as playfield segments on line 1, and blanking out the playfield on line 2 so that I have the cycles I need for everything else.  So I'm basically drawing the blocks on every other line.  I'm willing to live with that compromise if that's the only way to get things done, but if anyone knows how to get the timing down to draw them solidly across both lines, I'd appreciate the help (it would look MUCH better that way).  I should note that while the bird is holding the block, it's made of missile objects.  I had that part of it solid, and I'm starting to go back and blank out every other line of that to match the blocks as they fall, but I'm not done with that yet, so the blocks look a bit weird as the bird is holding them.

 

Aside from that, here's the issues:

1. As you can see above, the block is split.  It shouldn't be like that.  Sometimes, the blocks will drop correctly, other times, they'll split like you see above, or you'll see multiple blocks dropping.  Just start the game up, let the bird do his thing, and you'll quickly see what I mean.  I think my timing is off, but I've looked the kernel over several times, counted the cycles many, many times, and can't find the bug.  I'm using the left PF2 and the right PF0 and PF1 to draw the blocks as they descend.  When they hit the bottom of that section, they will disappear, as I haven't yet coded the bottom section of the play area yet.  

 

2. The Player1 object is not appearing.  Regardless of whether you choose a 1 or 2 player game right now, both players should appear.  Player0 appears in midair as you see above (and I know why that's happening, just haven't fixed it yet), but Player1 should be appearing on the same scanlines.  Again, I've been looking at the code for weeks, and can't figure this one out.

 

The new kernel starts at line 2726.

 

New blocks are created starting on line 3927.  As blocks are created, the code will generate an array of segments, where it will assign values to the playfields, or a value of 0 if there is a space between blocks.  

 

The code in charge of moving the blocks down the screen starts at line 4045.

 

I have a feeling I'm probably missing something obvious, but I just can't figure it out for the life of me right now.  I may have to abandon the game and start on my next idea if I can't get past this.

 

Thanks in advance!!!

KickIce.a-vcs.zip

Link to comment
Share on other sites

13 hours ago, glurk said:

 

I think you mean Temp2 there...  That fixes the other player drawing.

Thanks!  That did fix that problem.  I went through that code looking for that exact issue, and for whatever reason, I just missed it. 

 

OK, so one problem down...

Link to comment
Share on other sites

Don't take it the wrong way, but I believe you need to re-think your whole approach to the dropping blocks thing.  There's some wacky code in there for shifting a "block array" that uses a series of INY and DEY instruction that could be re-written much simpler and clearer as:
 

; Otherwise, create new block and shift old ones down the array
.DontLowerBlocks    
 ldy #0
ShiftBlockArrayLoop
 lda BlockBottom+1,y
 sta BlockBottom,y
 lda DropBlock_PF0+1,y
 sta DropBlock_PF0,y
 lda DropBlock_PF1+1,y
 sta DropBlock_PF1,y
 lda DropBlock_PF2+1,y
 sta DropBlock_PF2,y
 iny    ;+1
 cpy #Max_Drop_Blocks+1
 bmi ShiftBlockArrayLoop
 dey    ; Y = #Max_Drop_Blocks

 

But I think the whole "block array" thing is completely unnecessary.  Each scanline of the PF block is either going to contain a block or not.  So you don't need to shift an entire array, you need to either draw a "block scanline" or a "no block scanline" based on the Y position and the height of the block.

 

And I don't think drawing the blocks filled in will be any problem at all, but you need to revisit your entire approach.  :)  Sorry if that's a bit harsh, it just seems like it could be done much simpler, and your current approach is over-complicating it.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

8 hours ago, glurk said:

Sorry if that's a bit harsh, it just seems like it could be done much simpler, and your current approach is over-complicating it.

Not harsh at all.  It's all good info.  This is still just my 2nd game, so I'm still learning, and with not really having the time I want to devote to this, some of my solutions to my problems will be a bit off, or at the very least, not particularly optimal.  

 

I'll look into your suggestion over the course of the week, and I'll probably come back with a question or two in a few days.  Thanks!

Link to comment
Share on other sites

On 1/29/2023 at 3:00 PM, glurk said:

But I think the whole "block array" thing is completely unnecessary.  Each scanline of the PF block is either going to contain a block or not.  So you don't need to shift an entire array, you need to either draw a "block scanline" or a "no block scanline" based on the Y position and the height of the block.

So in thinking about this idea, I think I had considered this approach, but the reason I went with the array like I did is that at some point in the game, there will be multiple blocks dropping at the same time.  So I'd need a way of keeping track of multiple blocks and multiple spaces.  There's also the issue of blocks crossing over between two different PF objects, but that can be taken out if necessary.

 

Unfortunately, I'm still seeing the issue of the blocks being split as they drop, so that's not solved.  What I think I'll do is give myself another few days on this, and if I can't figure it out, I'll set this game aside and start on a different game.  I have an idea for an action/puzzle game that I think would be much simpler to implement than what I'm trying to do here.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

I've made the tough decision to suspend development on Kick Ice.  I just can't figure out the latest issue, and looking ahead at what I need to do with the game, there's just too many areas where I just don't know what I'm going to do to accomplish what I need to do.  And in the end, I'm not even sure it'll make a decent game.  So I'm going to set it aside for now, and start fresh on another idea I had.  This one is an action-puzzle game, based on a game I did in VBA years ago.  That game worked as a point-and-click game, so hopefully this will work as a game where you move a character around the screen instead of pointing and clicking.  This will be a much simpler game to put together than Kick Ice, and I already know how I'm going to do everything I need to, so hopefully there won't be many issues.  Just did the playfield today, and here's screenshot of what that will look like:

image.thumb.jpeg.41a5e08451592f65d390982cef6ce4c8.jpeg

Not much to look at yet, a little blockier than I was hoping for, but hopefully when I get the various characters in there and get some of the gameplay started, it'll start looking better.  The black area between the grids is where the scoreboard is going to go. Hopefully that'll give it a bit of a unique look.  Anyway, I'll start piecing stuff together on this one, and start a new thread when I have something worth posting.

  • Like 4
Link to comment
Share on other sites

  • 2 months later...

FRAZZLED is coming soon!  I've completed the kernel, so unlike Kick Ice, I got the tough stuff out of the way first, so I know I'll be able to complete this one.  I should have something playable fairly soon, and will start a new thread and post a binary when I do.  I'll save the gameplay description until then, but for now, here's a proof-of-concept screenshot...

image.thumb.jpeg.aee7ba508c14e38bacaf99257fd0d0a2.jpeg

  • Like 6
  • Thanks 1
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...