Progress Thread - Brick Breaker (formerly Brix Battle)

Moderator: Moderators

User avatar
Punch
Posts: 365
Joined: Sat Feb 16, 2013 11:52 am

Progress Thread - Brick Breaker (formerly Brix Battle)

Post by Punch »

Brix Battle brix batle birx bltaeieoijadpoisfvsd

Game updated!
It's the same game with more levels, more balls per continue and unbugged paddle!

ImageImageImage

Can you beat all 10 levels?

Code: Select all

	.dw Match_Level1_Spiral
	.dw Match_Level2_Teeth
	.dw Match_Level3_Cuteface
	.dw Match_Level4_1stMetal
	.dw Match_Level5_Pillbox
	.dw Match_Level6_Pachinko
	.dw Match_Level7_NES
	.dw Match_Level8_Vase
	.dw Match_Level9_Factory
	.dw Match_Level10_Fort

Code: Select all

Name:			Brick Breaker

Submitted By:    Punch

Category:   Category 1

Description:     You are a cute unidentified lifeform that, for some reason, has to break walls of different layouts.

Controls:   D-pad: Movement
         B: Hasten movement
         A: Hold to aim, release to fire a ball.

Rom info:   Mapper 0
         24 KB (16k prog + 8k char)
         1P controller required

Credits:   Punch - Everything else except for...
         CongusBongus - Ingame Music
		 Shiru - FamiTone2 music engine

Other:      This has 10 levels total. When you run out of time, you can continue where you left if you have more than 1 ball.
         When losing all balls, your game will be over, however you can continue from the start of the level if you have
         enough credits.
Attachments
BrickBreaker.zip
(10.61 KiB) Downloaded 726 times
Last edited by Punch on Fri Feb 24, 2017 10:52 pm, edited 5 times in total.
This is a block of text that can be added to posts you make. There is a 255 character limit.
User avatar
darryl.revok
Posts: 520
Joined: Sat Jul 25, 2015 1:22 pm

Re: 'Brix Battle' Returns

Post by darryl.revok »

Good luck on your entry!

I don't know if anybody else will think the same, but I can't help but being reminded of this:

Hans Brix? Ah, no!
User avatar
Punch
Posts: 365
Joined: Sat Feb 16, 2013 11:52 am

Re: 'Brix Battle' Returns

Post by Punch »

:lol:
Thanks!

edit: removed to clean thread of visual pollution
Last edited by Punch on Sun Jan 29, 2017 12:00 pm, edited 1 time in total.
This is a block of text that can be added to posts you make. There is a 255 character limit.
User avatar
mikejmoffitt
Posts: 1353
Joined: Sun May 27, 2012 8:43 pm

Re: 'Brix Battle' Returns

Post by mikejmoffitt »

If it helps, you can look at the structure of my project, for which the development has all happened under Linux so far:

https://github.com/mikejmoffitt/6502jam
User avatar
Punch
Posts: 365
Joined: Sat Feb 16, 2013 11:52 am

Re: Progress Thread - 'Brix Battle' Returns

Post by Punch »

I'm progressing at a snail's pace but that's due to university + laziness. :lol:

I finally crossed the hurdle of writing an Object manager with Animation support... looking back I don't know what I was thinking with writing overly complicated routines which were flawed by design. The end result is so simple that I feel ashamed looking at older code... I guess that's how practical experience works :lol:

Image

I just need to implement Axis Aligned Bounding Box collision and I'm set to actually work on the game. Wish me luck. :beer:
This is a block of text that can be added to posts you make. There is a 255 character limit.
User avatar
Punch
Posts: 365
Joined: Sat Feb 16, 2013 11:52 am

Re: Progress Thread - 'Brix Battle' Returns

Post by Punch »

Well this is looking like a game already!

Image

My title screen is basically done. There's a good amount of code left to be written but I think I did the harder parts already.
This is a block of text that can be added to posts you make. There is a 255 character limit.
User avatar
koitsu
Posts: 4201
Joined: Sun Sep 19, 2004 9:28 pm
Location: A world gone mad

Re: Progress Thread - 'Brix Battle' Returns

Post by koitsu »

That title screen and its animation looks both cool and cute at the same time. For some reason it reminds me of Battle City for the Famicom.
User avatar
Punch
Posts: 365
Joined: Sat Feb 16, 2013 11:52 am

Re: Progress Thread - 'Brix Battle' Returns

Post by Punch »

koitsu wrote:That title screen and its animation looks both cool and cute at the same time. For some reason it reminds me of Battle City for the Famicom.
I'm glad you liked, thanks! Battle City if I recall correctly draws the title with brick tiles too, right? I can see the similarities.

****

I implemented a reliable state machine, now I can schedule PPU writes and time stuff. This will mainly be used for the non interactive parts of the game, like drawing the title screen, high score board, maybe some "cutscenes" too if I get around to it before february.

Image

Now I just need to do opcodes to transition between game states... and actually program the game itself. I also need to stop being lazy and sync nametable writes with its attributes.
This is a block of text that can be added to posts you make. There is a 255 character limit.
User avatar
mikejmoffitt
Posts: 1353
Joined: Sun May 27, 2012 8:43 pm

Re: Progress Thread - 'Brix Battle' Returns

Post by mikejmoffitt »

If you want to add a cool demo element to it, you could wait a short amount of time (~15 seconds?), then allow a ball sprite to start to knock away bricks from the title.
User avatar
Punch
Posts: 365
Joined: Sat Feb 16, 2013 11:52 am

Re: Progress Thread - 'Brix Battle' Returns

Post by Punch »

mikejmoffitt wrote:If you want to add a cool demo element to it, you could wait a short amount of time (~15 seconds?), then allow a ball sprite to start to knock away bricks from the title.
I was going to fill the screen with tiles in a spiral order after a couple of seconds but your idea is just as good! I just need to know how many seconds it can possibly take because I want to show a high score table afterwards. If it's not much I'll probably do it, if not I'll combine it with the spiral fill after a certain amount of time.
This is a block of text that can be added to posts you make. There is a 255 character limit.
User avatar
Punch
Posts: 365
Joined: Sat Feb 16, 2013 11:52 am

Re: Progress Thread - 'Brix Battle' Returns

Post by Punch »

Sprite/BG collision detection plus a ton of improvements and additions under the hood done!

http://i.imgur.com/JeS8qi2.gif

I'm not sure if I can finish this on time for the competition... but it has been fun and I went very far with this one. Probably going to finish it with or without competition.
brix.png
brix.png (526 Bytes) Viewed 19332 times

Edit: doing proper reflection was easier than I thought and making the metasprite touch the solid tile and invert its velocity worked pretty well.

I thought that the proper way was to actually get how many pixels penetrated on a solid tile and subtract that in the total displacement in the frame (eg. speed = 3px, moving in X axis makes sprite overlap 1px with solid tile, total displacement = 3px - 1px - 1px (eject edge from tile, then move the same amount of pixels in the reverse direction). If you do this any differently or if you know that my method is flawed, please let me know.

http://i.imgur.com/UgpScbd.gif
Last edited by Punch on Sun Jan 29, 2017 12:01 pm, edited 1 time in total.
This is a block of text that can be added to posts you make. There is a 255 character limit.
User avatar
Punch
Posts: 365
Joined: Sat Feb 16, 2013 11:52 am

Re: Progress Thread - 'Brix Battle' Returns

Post by Punch »

Game now has REAL vector movement with subpixel precision, supporting lengths from 1 to 8 and 30, 45 and 60 degree angles and its analogues on the other quadrants of the trig circle. Not to mention that collision with the player's paddle (umbrella) is now heightmapped and sectioned to give better control to the player.

ImageImage

I suppose I can adapt the logic easily to add more angles or actually allow a 90 degree angle (aka UP) but that's not really needed for now. Never saw any paddle-ball game that allowed the player to bounce the ball in a straight line anyway.

Tiles, tiles, TILES !
I also implemented tile durability and I have more types of tiles currently drawn and loaded in the game's logic (but still unused).

Image

At the moment I'm seriously considering to scale down my game and go through the path of least resistance due to the compo's deadline. I might just submit a breakout clone since everything that's needed for that is already in place. If the deadline is extended I can continue working on the original concept (1 vs. 1 battles, different enemies, having a shop in between battles where you can buy tiles with points and lay them on your side of the field, puzzle "coffee breaks" similar to Side Pocket's trick shots) but with 3 days remaining this is unattainable.

------------------------

I loved participating in this competition since before this the only thing I did was program trivial mock games where the most complex thing inside was uploading a screen to the nametable, lacking the drive to push forward when complexity started to increase. I'm proud of what I've accomplished, since this helped me to master many important concepts involved in the creation of a NES game, like PPU update scheduling, collision detection, math, input, indirect jump tables... I also appreciate more how difficult and laborious it is to make a NES (or any other platform) game and polish it. Prior to this compo I'd look at some homebrews released and go "wow what a bad game, why hasn't the dev implemented A B C D E F and made G H I J do X Y Z?", well, now I know why.
So even if I don't make it I think this was far from being a waste of time, and at least in my case I feel like the objective of the competition was a success.
This is a block of text that can be added to posts you make. There is a 255 character limit.
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: Progress Thread - 'Brix Battle' Returns

Post by FrankenGraphics »

This is looking better and better! I like what i see a lot. Congratulations! :beer:

The graphics are distinct, coherent and fun. If i get to nitpick, maybe the "crushed/passable" characters could perhaps be brought a little more in line with the rest, but that's my subjective view.
ever saw any paddle-ball game that allowed the player to bounce the ball in a straight line anyway.
I suppose it's because that gives the player exploitable control over the ball, + 90 degrees can get balls stuck in persistent loops in some circumstances.
User avatar
Punch
Posts: 365
Joined: Sat Feb 16, 2013 11:52 am

Re: Progress Thread - 'Brix Battle' Returns

Post by Punch »

Super fun happy crunch tiem!

The decision of not pushing back the deadline was reasonable, and the right thing to do IMO, specially considering that there's a second category for late submissions. I'm just disappointed that I'm not going to be able to use this video for effect correctly anymore (:P):

http://www.youtube.com/watch?v=qJEmqZcfWJs
"bwahahahah I'm not a game killa hahahahah"

Come to think about it, I'm not sure if I can finish the game as I first drafted it to be even if the deadline was extended so no big deal really. I'll just focus in my ブリックブレーカー game for now and do the "full game" for Category 2 if I feel like I can finish it in time for cart inclusion. Here's some footage of the game's current state right now:

https://youtu.be/KygvdNaBAV8
Image

You probably noticed that it doesn't have any sound. My audio man won't be able to do any arrangements for me (and it's my fault for not asking in advance for them) so it will probably be silent unless I decide to add one of the public domain .ftms I have in my HDD into it.
Also, notice that there's a glass object in there (with wrong palette though), I will try to add levels just like the bonus ones I was planning for how the game was originally designed, puzzle maps where you have to get the ball to a target tile without breaking any glass objects. It's just a "if (breaktile(x,y) == TILE_GLASS_SHATTERED) then game_fail()" so I think it might be doable.
FrankenGraphics wrote:This is looking better and better! I like what i see a lot. Congratulations! :beer:

The graphics are distinct, coherent and fun. If i get to nitpick, maybe the "crushed/passable" characters could perhaps be brought a little more in line with the rest, but that's my subjective view.

I suppose it's because that gives the player exploitable control over the ball, + 90 degrees can get balls stuck in persistent loops in some circumstances.
Thanks, that means a lot :)
I thought that the "damaged/crushed" tiles were ok and not in a different style. That blue shell looking thing was supposed to be jello (???) and not really related to the blue cross tile so please ignore that, esp. considering that I changed it to a more acceptable-looking one (which still might not look like what it's supposed to be):

Image

It probably won't make into the submitted game though.
If you're talking about how the graphics are top-down AND 3/4 perspective, I know that it's kind of jarring but I couldn't get good results when I tried to do the brick wall and iron plate/brick thing in a way that looked isometric. I'll try to improve that later.
This is a block of text that can be added to posts you make. There is a 255 character limit.
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: Progress Thread - 'Brix Battle' Returns

Post by FrankenGraphics »

I really like that jello! Both actually :D The aiming is a great addition. Things being at different angles feels commonly accepted for this sort of style. It might even actually add something to the soup, now when i think about it. A little whacky perspectives can go a long way to catch interest. European medieval, baroque and traditional japanese art styles (which i know terribly little about) does this in varying forms all the time, not to mention cubism. I wouldn't worry about it too much.
I thought that the "damaged/crushed" tiles were ok and not in a different style.
I'm sorry, i could have been a lot more specific. I think most of them are! The one that stands out to me is the one for the bricks, which feels like a representation of crushed brick, but perhaps not a direct derivate of the bricks that were there in prior to crushing.

Here's a quick mockup (though in a somewhat different style)
bricks.bmp
bricks.bmp (30.12 KiB) Viewed 19151 times
To the upper right is simply a metatile of crushed bricks. I made them from hacking away pixels from the original structure and moving them into a disarray. I also attempted to move them so that they'd break the tile grid somewhat, to signal the dissaray of a pile. To the upper left is some metatile variations made from the same four tiles. To the lower left they are put next to each other. Randomizing metatile content could perhaps work well.

I used the same technique when doing the brick walls and power ups blowing up animations for wrecking balls (there were some compromises and decisions, all frames didn't make it into the submission and others got changed. I just lazily took a snapshot that happened to be sitting on my desktop):
animationsequences.bmp
animationsequences.bmp (30.12 KiB) Viewed 19151 times
Deteriorating things that explode/destruct frame by frame feels easier to me, even if, say, only a few or even one selected frame would be used.

In the mockup above in the post, i made an interim frame between 'cracked' and 'destroyed' which would be redundant to the game logic, but helping in the process getting there.
Post Reply