Author Topic: Breakout clone  (Read 23119 times)

0 Members and 5 Guests are viewing this topic.

Offline lookitsan00b

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 173
  • Rating: +37/-3
    • View Profile
Re: Breakout clone
« Reply #45 on: November 10, 2010, 11:23:51 pm »
Four things I've learned about Axe from this project:

Code: [Select]
0->{A-3}->{A-2}
fails, as does
Code: [Select]
!If X
...
ElseIf X=1
...
ElseIf X=2
...
End
That throws a ERR: BLOCK.

Also, Rect( doesn't work well with negatives.
Spoiler For upcoming content:
Would be useful for a certain type of block...

And finally, I was pleasantly suprised that this works:
Code: [Select]
If X=0
...
ElseIf X=1
...
Else
...
End

The first stumped me for quite a while :P I was optimising and suddenly the game would only display the first frame...
All better now :D
My TI-94+SE is broken.  I used some flawed existential conditioning on it, and it crashed. :(

Activity level:
{====______}

Spoiler For Securite:
{=========_}

A couple security flaws
Need a good backdoor short of reinstalling the OS
Completely immobilized and invalidated by Zstart. And rendered incompatible.
Spoiler For FFTATIA:
{====______}

framework: mostly done
graphics engine: undergoing complete rewrite
still need character and enemy sprites!!! :P

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Breakout clone
« Reply #46 on: November 11, 2010, 01:45:21 am »
Woah! I just saw the new screenshot and it looks even better! It's sure gonna be fun to create levels. ;D

Offline Darl181

  • «Yo buddy, you still alive?»
  • CoT Emeritus
  • LV12 Extreme Poster (Next: 5000)
  • *
  • Posts: 3408
  • Rating: +305/-13
  • VGhlIEdhbWU=
    • View Profile
    • darl181.webuda.com
Re: Breakout clone
« Reply #47 on: November 11, 2010, 02:03:40 am »
I spent about half an hour in endless mode.
A few limits might help to keep the game challenging and interesting.

1) Paddle width--after a while it was wider than the screen, so you could just leave it and/or watch the score increase ;D
2) # of balls limit--there were about 20 by the time I got tired of it
3) some way to keep track of the score if it goes over 65535.  It looped six or seven times :P
Code: [Select]
Disp <Score>,i,"65535 times ",<Var>  With <var> incrementing by 1 each 65535 or something. 
Vy'o'us pleorsdti thl'e gjaemue

Offline lookitsan00b

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 173
  • Rating: +37/-3
    • View Profile
Re: Breakout clone
« Reply #48 on: November 11, 2010, 08:50:35 am »
I spent about half an hour in endless mode.
A few limits might help to keep the game challenging and interesting.

1) Paddle width--after a while it was wider than the screen, so you could just leave it and/or watch the score increase ;D
2) # of balls limit--there were about 20 by the time I got tired of it
3) some way to keep track of the score if it goes over 65535.  It looped six or seven times :P
Code: [Select]
Disp <Score>,i,"65535 times ",<Var>  With <var> incrementing by 1 each 65535 or something. 
...Whoa.  I never really expected it to be possible to make it loop... I'll probably think of something. (like using one variable for the lower 4 digits and another for the upper, max 655,359,990)  I thought the paddle-size power-downs would make up for the lack of a cap... they seem far more common than their happy counterparts to me. :P

Lol I just found a bug that existed since v.50(and before) :D
 Whenever I deleted something, I just copy the last item in the list over the one that got deleted.
 I just realized that the item that gets copied doesn't get hittested, etc. (whatever the loop is for)
 Just 3 more increments in the whole thing, probably amounts to, at most, 9 bytes :)
 (I've been having really big problems with size recently... can't fit both the source and the program in ram at the same time)
My TI-94+SE is broken.  I used some flawed existential conditioning on it, and it crashed. :(

Activity level:
{====______}

Spoiler For Securite:
{=========_}

A couple security flaws
Need a good backdoor short of reinstalling the OS
Completely immobilized and invalidated by Zstart. And rendered incompatible.
Spoiler For FFTATIA:
{====______}

framework: mostly done
graphics engine: undergoing complete rewrite
still need character and enemy sprites!!! :P

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Breakout clone
« Reply #49 on: November 11, 2010, 05:29:48 pm »
Yeah I think at one point you need to delete the program then compile the source from archive. That said, I can't wait to see what you will come up with in updates.

Offline lookitsan00b

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 173
  • Rating: +37/-3
    • View Profile
Re: Breakout clone
« Reply #50 on: November 11, 2010, 05:42:56 pm »
Yeah I think at one point you need to delete the program then compile the source from archive. That said, I can't wait to see what you will come up with in updates.
Actually it wasn't that big, I just had to archive the source before running. Also, I pulled a battery, and for some odd reason it freed up some more ram ??? Probably should have another look at my saving routine... (should I be using delvar?)

Spoiler For future content:
It's not here yet. Check back later.
Spoiler For what I'm working on:
Well I can tell you for certain that bomb blocks are out. Can't say the same for C-4 blocks ;) (the destroyed blocks use their normal destruction routines: 1-hit blocks are destroyed, 3-hit blocks degrade, powerups drop, and C-4 blocks explode) (having a couple problems with cascading explosion, also, I have exhausted the whole alphabet :()
My TI-94+SE is broken.  I used some flawed existential conditioning on it, and it crashed. :(

Activity level:
{====______}

Spoiler For Securite:
{=========_}

A couple security flaws
Need a good backdoor short of reinstalling the OS
Completely immobilized and invalidated by Zstart. And rendered incompatible.
Spoiler For FFTATIA:
{====______}

framework: mostly done
graphics engine: undergoing complete rewrite
still need character and enemy sprites!!! :P

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Breakout clone
« Reply #51 on: November 11, 2010, 05:53:51 pm »
Weird, I would do a backup somewhere like a computer in case, though.

EDIT: By the way what do you mean by bomb blocks being out? Do you mean you will not implement them?
« Last Edit: November 11, 2010, 05:55:29 pm by DJ Omnimaga »

Offline lookitsan00b

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 173
  • Rating: +37/-3
    • View Profile
Re: Breakout clone
« Reply #52 on: November 11, 2010, 06:14:25 pm »
Weird, I would do a backup somewhere like a computer in case, though.

EDIT: By the way what do you mean by bomb blocks being out? Do you mean you will not implement them?

Exactly what I meant... But now I'm having even more problems: I'm getting 'ERR: INVALID' when I try to run it... (no, I'm not trying to run the source :P, and yes, I am using 'Asm('. Isn't there a max program size or something? It isn't 8k, is it?)
My TI-94+SE is broken.  I used some flawed existential conditioning on it, and it crashed. :(

Activity level:
{====______}

Spoiler For Securite:
{=========_}

A couple security flaws
Need a good backdoor short of reinstalling the OS
Completely immobilized and invalidated by Zstart. And rendered incompatible.
Spoiler For FFTATIA:
{====______}

framework: mostly done
graphics engine: undergoing complete rewrite
still need character and enemy sprites!!! :P

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Breakout clone
« Reply #53 on: November 11, 2010, 06:16:32 pm »
8 KB for the executable code. That excludes the data included in the executable. For Flash APPs it's 16 KB for both the code and data included inside it.

Offline Deep Toaster

  • So much to do, so much time, so little motivation
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 8217
  • Rating: +758/-15
    • View Profile
    • ClrHome
Re: Breakout clone
« Reply #54 on: November 11, 2010, 06:17:02 pm »
Code: [Select]
!If X
...
ElseIf X=1
...
ElseIf X=2
...
End
That throws a ERR: BLOCK.

Also, Rect( doesn't work well with negatives.
Spoiler For upcoming content:
Would be useful for a certain type of block...

And finally, I was pleasantly suprised that this works:
Code: [Select]
If X=0
...
ElseIf X=1
...
Else
...
End

That's a bug that should have been fixed in Axe 0.4.5... What version are you using?

Weird, I would do a backup somewhere like a computer in case, though.

EDIT: By the way what do you mean by bomb blocks being out? Do you mean you will not implement them?

Exactly what I meant... But now I'm having even more problems: I'm getting 'ERR: INVALID' when I try to run it... (no, I'm not trying to run the source :P, and yes, I am using 'Asm('. Isn't there a max program size or something? It isn't 8k, is it?)

If it's more than 8192 bytes, the OS refuses to run it with Asm(.
« Last Edit: November 11, 2010, 06:18:30 pm by Deep Thought »




Offline Darl181

  • «Yo buddy, you still alive?»
  • CoT Emeritus
  • LV12 Extreme Poster (Next: 5000)
  • *
  • Posts: 3408
  • Rating: +305/-13
  • VGhlIEdhbWU=
    • View Profile
    • darl181.webuda.com
Re: Breakout clone
« Reply #55 on: November 11, 2010, 06:19:41 pm »
8811, to be exact, if it's compiled for a shell.
Quote
also, I have exhausted the whole alphabet :(
Are you already using L1?
« Last Edit: November 11, 2010, 06:20:29 pm by Darl181 »
Vy'o'us pleorsdti thl'e gjaemue

Offline Deep Toaster

  • So much to do, so much time, so little motivation
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 8217
  • Rating: +758/-15
    • View Profile
    • ClrHome
Re: Breakout clone
« Reply #56 on: November 11, 2010, 06:20:30 pm »
8811, to be exact.
Quote
also, I have exhausted the whole alphabet :(
Are you already using L1?

No, 8811 is the number of bytes that you can run from a shell. With Asm(, you can only run 8192 bytes. Any more and the OS gives you an ERR:INVALID.




Offline lookitsan00b

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 173
  • Rating: +37/-3
    • View Profile
Re: Breakout clone
« Reply #57 on: November 11, 2010, 06:22:49 pm »
well then who wants to optimize some code ;D I don't have any experience in it, and my minor attempts so far have failed dramatically.

I actually have very little data in here. Most of my graphics are Rect(/RectI( commands.

Just a couple tips for anybody who wants to take this on:
  It's mostly uncommented.  All I have are section headers.
  The Output( statement immediately after the second DispGraphr was for debugging, it's what pushed me over the limit :P

any volunteers?

EDIT:
Code: [Select]
!If X
...
ElseIf X=1
...
ElseIf X=2
...
End
That throws a ERR: BLOCK.

Also, Rect( doesn't work well with negatives.
Spoiler For upcoming content:
Would be useful for a certain type of block...

And finally, I was pleasantly suprised that this works:
Code: [Select]
If X=0
...
ElseIf X=1
...
Else
...
End

That's a bug that should have been fixed in Axe 0.4.5... What version are you using?

Weird, I would do a backup somewhere like a computer in case, though.

EDIT: By the way what do you mean by bomb blocks being out? Do you mean you will not implement them?

Exactly what I meant... But now I'm having even more problems: I'm getting 'ERR: INVALID' when I try to run it... (no, I'm not trying to run the source :P, and yes, I am using 'Asm('. Isn't there a max program size or something? It isn't 8k, is it?)

If it's more than 8192 bytes, the OS refuses to run it with Asm(.
I'm using 0.4.5 :P

8811, to be exact.
Quote
also, I have exhausted the whole alphabet :(
Are you already using L1?

No, 8811 is the number of bytes that you can run from a shell. With Asm(, you can only run 8192 bytes. Any more and the OS gives you an ERR:INVALID.

I am using L1, L2, and L4, not to mention the buffers...
My program is 8216 running with Asm(
« Last Edit: November 11, 2010, 06:26:01 pm by lookitsan00b »
My TI-94+SE is broken.  I used some flawed existential conditioning on it, and it crashed. :(

Activity level:
{====______}

Spoiler For Securite:
{=========_}

A couple security flaws
Need a good backdoor short of reinstalling the OS
Completely immobilized and invalidated by Zstart. And rendered incompatible.
Spoiler For FFTATIA:
{====______}

framework: mostly done
graphics engine: undergoing complete rewrite
still need character and enemy sprites!!! :P

Offline Deep Toaster

  • So much to do, so much time, so little motivation
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 8217
  • Rating: +758/-15
    • View Profile
    • ClrHome
Re: Breakout clone
« Reply #58 on: November 11, 2010, 06:27:08 pm »
well then who wants to optimize some code ;D I don't have any experience in it, and my minor attempts so far have failed dramatically.

I actually have very little data in here. Most of my graphics are Rect(/RectI( commands.

Just a couple tips for anybody who wants to take this on:
  It's mostly uncommented.  All I have are section headers.
  The Output( statement immediately after the second DispGraphr was for debugging, it's what pushed me over the limit :P

any volunteers?

Hmm, let's see.

All If  statements that say something like

Code: (Axe) [Select]
If I=1
can be optimized to

Code: (Axe) [Select]
!If I-1
and it'll save several bytes. (I think there were certain conditions where you couldn't do that, but I don't remember what. They're not important, anyway ;D)




Offline lookitsan00b

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 173
  • Rating: +37/-3
    • View Profile
Re: Breakout clone
« Reply #59 on: November 11, 2010, 06:29:01 pm »
well then who wants to optimize some code ;D I don't have any experience in it, and my minor attempts so far have failed dramatically.

I actually have very little data in here. Most of my graphics are Rect(/RectI( commands.

Just a couple tips for anybody who wants to take this on:
  It's mostly uncommented.  All I have are section headers.
  The Output( statement immediately after the second DispGraphr was for debugging, it's what pushed me over the limit :P

any volunteers?

Hmm, let's see.

All If  statements that say something like

Code: (Axe) [Select]
If I=1
can be optimized to

Code: (Axe) [Select]
!If I-1
and it'll save several bytes. (I think there were certain conditions where you couldn't do that, but I don't remember what. They're not important, anyway ;D)

Actually I was thinking about asking if that would be better.
Condition where you can't do that:
  When you're using ElseIfs (at least with my version of Axe)

EDIT: actually, edit out that Output( statement and it will run perfectly, except for the new type of block I was putting in.
« Last Edit: November 11, 2010, 06:30:41 pm by lookitsan00b »
My TI-94+SE is broken.  I used some flawed existential conditioning on it, and it crashed. :(

Activity level:
{====______}

Spoiler For Securite:
{=========_}

A couple security flaws
Need a good backdoor short of reinstalling the OS
Completely immobilized and invalidated by Zstart. And rendered incompatible.
Spoiler For FFTATIA:
{====______}

framework: mostly done
graphics engine: undergoing complete rewrite
still need character and enemy sprites!!! :P