Jump to content

Photo

BASIC Ten-Liners Contest 2015

ABBUC BASIC NOMAM programming

99 replies to this topic

#76 Bunsen OFFLINE  

Bunsen

    Dragonstomper

  • Topic Starter
  • 846 posts
  • Location:Dithmarschen/ Germany

Posted Wed Apr 8, 2015 12:36 AM

IIRC you talked about another game that you programmed last year in your podcast. You missed the deadline, but you can throw it in this year?!

#77 Savetz OFFLINE  

Savetz

    Dragonstomper

  • 823 posts
  • Location:Portland OR

Posted Wed Apr 8, 2015 11:25 AM

@Bunsen — good memory. OK, I dug it out of the mothballs, and did the best I could to finish it in the one hour I had this morning. 

 

Here's Joy Joy Revolution, a party game for up to 4 simultaneous players (requires up to 4 joysticks on an Atari 400/800.)

 

It's Dance Dance Revolution but with joysticks.

 

Things that I like about it: with 1 player, you play the whole chord when you get a direction right. With 2 players, each player gets two notes of the chord, so it sounds best when both people are accurate. With 4 players, each person plays one note of the chord. I like that it keeps track of players' accuracy.

 

Things that I don't like: speed is uneven as levels progress. With four players, level one stats way too fast. It's pretty frantic. Also I think a couple of the notes aren't in tune. I just don't have time to fix it before the deadline.

 

Enjoy.

 

Name: Joy Joy Revolution

Platform: Atari

Author: Kevin Savetz

Language: Turbo BASIC XL

Category: PUR

Attached Thumbnails

  • Screenshot 2015-04-08 10.17.07.png

Attached Files


Edited by Savetz, Wed Apr 8, 2015 11:28 AM.


#78 Bunsen OFFLINE  

Bunsen

    Dragonstomper

  • Topic Starter
  • 846 posts
  • Location:Dithmarschen/ Germany

Posted Wed Apr 8, 2015 12:08 PM

Joy Joy Revolution becomes very funny after Level 6. I'm looking forward to NOMAM, to play it with 4 people.



#79 devwebcl OFFLINE  

devwebcl

    Stargunner

  • 1,132 posts
  • Location:Chile

Posted Wed Apr 8, 2015 12:12 PM

Cool!
I did my game for two playeta first, but I changed it to run against the computer.

It would be nice to see some competencies between two human players.

#80 slx OFFLINE  

slx

    Stargunner

  • 1,150 posts
  • Location:Vienna, Austria

Posted Wed Apr 8, 2015 4:51 PM

Didn't get the bugs out of my code in time, so hoping for another chance next year :?  Should have made that utility a ten-liner..... :-D

 

BTW: is the 255 "character" limit in Extreme meant to mean it must be theoretically possible to type the line with 255 characters (using abbreviations) or does that apply to the tokenized line?

 

Have fun in Lübeck!


Edited by slx, Wed Apr 8, 2015 4:51 PM.


#81 +Adam+ OFFLINE  

+Adam+

    Moonsweeper

  • 386 posts

Posted Sun Apr 12, 2015 5:36 AM

Hi, I hope you've had great fun in Lübeck.
So what are the results of the contest? :)

#82 1NG OFFLINE  

1NG

    Chopper Commander

  • 133 posts
  • Location:Lübeck, Germany

Posted Sun Apr 12, 2015 9:25 AM

Great fun in Lübeck!

Bunsen will announce the results soon.

 

But I know the best TenLiner PUR was .... Carrera 3D

And the best TenLiner EXTREM was .... Broads Revenge

And the winner of the TenLiner LIVE was SKriegel.

 

Congratulations!



#83 Bunsen OFFLINE  

Bunsen

    Dragonstomper

  • Topic Starter
  • 846 posts
  • Location:Dithmarschen/ Germany

Posted Sun Apr 12, 2015 9:56 AM

The results are online now!

 

http://gkanold.wix.c...!10liners/c15hi



#84 Irgendwer OFFLINE  

Irgendwer

    Stargunner

  • 1,207 posts
  • Location:Germany

Posted Sun Apr 12, 2015 10:00 AM

And the best TenLiner EXTREM was .... Broads Revenge

...

Congratulations!

 

Thanks for all votes!



#85 +Adam+ OFFLINE  

+Adam+

    Moonsweeper

  • 386 posts

Posted Sun Apr 12, 2015 11:37 AM

Thanks, Bunsen. What about the game written live - would it be published?



#86 Bunsen OFFLINE  

Bunsen

    Dragonstomper

  • Topic Starter
  • 846 posts
  • Location:Dithmarschen/ Germany

Posted Sun Apr 12, 2015 12:01 PM

The live task was: "Write a menu for the entries for commodore, atari or amstrad". Yes, it will be published soon.



#87 billkendrick OFFLINE  

billkendrick

    Chopper Commander

  • 120 posts
  • Location:Davis, CA

Posted Sun Apr 12, 2015 12:39 PM

Next year I must try harder. ;) Congrats to the winners! Esp. the top winner of PUR, Carrera 3D... I've never been able to figure out driving games, let alone in 10 lines of BASIC:-o



#88 +Adam+ OFFLINE  

+Adam+

    Moonsweeper

  • 386 posts

Posted Sun Apr 12, 2015 1:47 PM

Minor issue: there's no information on the official games list about the last entry, called "Maze" - as I see, Sleepy was the author?

 

What about that Tandy Color Computer entry "Overtake"? I didn't know that this platform was "legal" :)


Edited by +Adam+, Sun Apr 12, 2015 1:50 PM.


#89 Savetz OFFLINE  

Savetz

    Dragonstomper

  • 823 posts
  • Location:Portland OR

Posted Sun Apr 12, 2015 1:54 PM

Is someone making an ATR of all the Atari entries?



#90 Bunsen OFFLINE  

Bunsen

    Dragonstomper

  • Topic Starter
  • 846 posts
  • Location:Dithmarschen/ Germany

Posted Sun Apr 12, 2015 1:55 PM

Sleepy gave me his game 5 minutes before dead line on NOMAM. I was busy on NOMAM with all the tenliners stuff and had no time and no internet connection to update the homepage...

BTW it's a nice small adventure in german. You must try to leave a house with many rooms and doors :-)

 

CoCo: Author had to come to the meeting or send a person who presents his game. So all platforms were possible where BASIC runs on...



#91 +Adam+ OFFLINE  

+Adam+

    Moonsweeper

  • 386 posts

Posted Sun Apr 12, 2015 4:44 PM

I have just published the results, download links and short descriptions of the games on AtariOnline.pl (in Polish).



#92 dmsc OFFLINE  

dmsc

    Moonsweeper

  • 264 posts
  • Location:Viņa del Mar, Chile

Posted Sun Apr 12, 2015 9:07 PM

Hi!

Thanks for all the votes :)

This year I programmed a little utility to minimize the basic listing, so I could understand my own code. After that, I started to add more features and I'm attaching the utility here, compiled for Linux (32 and 64 bits) and Windows. I pretend to post the source after cleaning it a little if there is interest.

This is the "source" code for my entry, you can transform it to standard listing by "basicParser -v carrera32.bas":
 
' ------------- Carrera 3D ---------------
' ----------- by DMSC - 2015 -------------

0

 ' Reserve 112 pages of memory for graphics and set 160x96 mode
 ' dlist = display lists pointer.
 '         150 bytes per display list, total of 11*6 = 66 display lists,
 '         but can't cross 1k boundary => 11KBytes, 44 pages
 ' gbase = graphic data pointer
 '         40 bytes per line, total of 48*4*2 = 384 lines => 15KBytes, 60 pages
 ' pmadr = Player 0 graphics pointer (plus 8 to pack over last graphics data).
 '         There are 256 bytes for each player, total 1k, 4 pages.
  mem = peek(106)-112
  poke 106,mem
  dlist = mem * 256
  gbase = dlist + $2C00
  pmadr = gbase + $4008

  ' Sets graphics mode, 160x96, 4 colors.
  graphics 7

  ' Sets the start of the image to 255, (full color 3),
  ' we then use a "move" to copy to all the line.
  img = dpeek(88)
  poke img,255

  ' Make display-lists and graphics data
  ' Size of display list
  dlsize = 156
  ' Optimize size, n80 = 80
  n80 = 80
  ' Loop over all Y values
  for y=1 to 48
    r = y+14
    zpos = 384/r - 6
1   p = r div 8
    n = (r+p+3) div 2
    z = 2*r+p
    ' Loop over the 4 possible X values
    for x=0 to 3
      ' Clean the screen
      move img, img+1, n80
      ' Draws the road with color 1 borders
      color 1
      plot x,1
      drawto p+x,1
      color 0
      drawto z+x-1,1
      color 1
      drawto z+p+x,1
      move img+n, gbase + x*n80, n80
      ' Draw the road with color 2 borders
      color 2
2     plot x,1
      drawto p+x,1
      plot z+x,1
      drawto z+p+x,1
      move img+n, gbase + 40 + x*n80, n80
    next x
    ' Now, calculate the shifted track position for each curve value and set
    ' the value in each of the display lists.
    d = dlist + 3*y
    for curvature=-5 to 5
      ' Calculate the X position
      x = 3 - y*0.07
      x = int( x*x*curvature + n80 -r-p)
      ' Get the graphics address to print this position
      tmp = gbase + 40 - n + x&3 * n80
3     tmp = tmp - x div 4
      ' Calculate each of the 6 frames (with shifted Z value)
      for z=zpos to zpos+2 step 0.34
        dpoke d,77
        dpoke d+1, tmp + z&1 * 40
        d = d + dlsize
      next z
      d = d+88
    next curvature
    ' Advance the pointer to the graphics data
    gbase=gbase+320
    ' Fixes crossing over 4KB - this depends on the initial address!!
    if gbase&960 = 960
      gbase = gbase+256
    endif
   next y
  ' Moved here to optimize space, corresponds to the clearing of PM data
  dpoke pmadr,0
4
  ' Adds display list first and last bytes to all DLs
  d = dlist
  for curvature=0 to 10
    for z=0 to 5
      dpoke d, $7070
      dpoke d+1, $70
      d = d + dlsize
      dpoke d-9, $4270
      dpoke d-7, dpeek(660)
      dpoke d-5, $41
      dpoke d-4, d - dlsize
    next z
    d = d + 88
  next curvature
5
  ' Sets PM data (continued from above)
  move pmadr, pmadr+1, 999
  move adr("\18\18\18\3C\3C\24\24\3C\00\18\18\3C\7E\7E\00\FF\00\7E\7E"), pmadr+345, 19
  move adr("\24\24\24\3C\3C\00\7E\18\DB\C3\C3\C3\FF\FF\FF\C3\C3\C3\C3"), pmadr+91, 19

  ' P/M over playfield and P0+P1 / P2+P3 blends
  dpoke 623,33

  ' Set color registers
  dpoke 712, 8
  dpoke 704, $4482
6
  dpoke 710, $D2
  dpoke 708, $EE52
  dpoke 706, $8640

  ' Set P/M data address
  poke $D407, mem+104

  ' "e" is the GTIA address, space optimization
  gtia = $d000

  ' Enable P/M
  dpoke gtia + $1d, 2
  ' P0 quad width, P1 double width
  dpoke gtia + $08, 259

  ' P2 shows distance traveled, set a basic shape
  dpoke pmadr+631, 511

  ' Enable ANTIC P/M DMA
  dpoke 559, 58

  ' Stored for optimized space later
  _657 = 657

  ' Start of game loop
  do

    '# Current "drag"
    drag = 0
7
    '# Position in track
    trackPos = 0
    '# Current speed
    speed = 0
    '# Location of "curve" DL ( 1024 * (c+5) )
    curvature = 5
    '# End of current track segment
    segend = 99
    '# Position of car
    x = $78

    ' Main game loop, starts from "pmadr", on first run has a value bigger
    ' than the end, so the race goes straight to the end screen.
    ' This is a tricky optimization!!
    for z=pmadr to 3000
      ' Waits for VBLANK, read collision register
      pause 0
      tmp = peek(gtia + $04)

      ' Clear collision register and sets player position
      poke gtia + $1e, 0
      ' Set PM0 and PM1 x coordinates
      dpoke gtia, int(x) * 257 - 8

      ' Sets DL (for next frame)
      dpoke 560, dlist + curvature*1024 + dlsize * int(trackPos mod 6)

      ' Advance track position
      trackPos = trackPos + speed
8
      ' "motor" sound. Note the values of frequency=k*31-1 produce pure tones,
      ' but we don't have enough space to filter out.
      sound 0, 255-speed * 112, 6, 8
      ' Process collisions with the outside of the track
      if tmp
        ' Decreases the speed by 5%
        speed = speed * 0.95
      else
        ' Increases the speed, max speed is 2 if button is not pressed, 1 if pressed.
        speed = 0.01 + 0.01*STRIG(0) + speed * 0.99
      endif
      ' Read joystick
      tmp = STICK(0)
      ' Updates X position, adds joystick and "drag" times "speed"
      x = x + 0.25*(tmp&4) -0.125*(tmp&8) - drag*speed
      ' Test if current track segment is over
      if trackPos > segend
        ' Yes, generate a new segment
        ' (first, set text position to 0)
        dpoke _657, 0
9
        ' New random direction
        curvature = rand(11)
        ' Drag is from -0.9 to 0.9
        drag = curvature * 0.18 - 0.9
        ' New random length, from 10 to 110.
        segend=segend+rand(99)+10
        ' Shows the current time and position (!0 is shorthand for "INT")
        print "T:"; z, "D:"; trackPos!0,
      endif

      ' Sets the Player 2 position to current track position
      dpoke gtia + $02, 48 + trackPos div 32
    next z

    ' End of game, shows score, turns of sound and waits for keystroke
    print "LAST:"; trackPos!0;
    sound
    get tmp

    ' Next race starts at time 0 (a full race)
    pmadr=0
  loop

Attached Files



#93 cliffh OFFLINE  

cliffh

    Space Invader

  • 42 posts
  • Location:UK

Posted Mon Apr 13, 2015 2:42 AM

Congratulations to the winners, and thanks to Gunnar and everyone at NOMAM for another great competition!  :)



#94 Bunsen OFFLINE  

Bunsen

    Dragonstomper

  • Topic Starter
  • 846 posts
  • Location:Dithmarschen/ Germany

Posted Tue Apr 14, 2015 2:38 AM

I talked with skr, the organizer of the ABBUC software contest. Upgraded Tenliners are very welcome to take part at the ABBUC Contest. Especially the winners and second in both categories are suitable for the contest. Give them a title screen, some music, a highscore list, some (more) levels and they are fine for taking part.



#95 Bunsen OFFLINE  

Bunsen

    Dragonstomper

  • Topic Starter
  • 846 posts
  • Location:Dithmarschen/ Germany

Posted Mon Apr 20, 2015 1:01 PM

Is someone making an ATR of all the Atari entries?

 Here it is. Thanks to skr who wrote the menu and won the first prize of live coding at NOMAM :)

 

skr satisfied all my expectations for the menu (not so easy with Atari BASIC and Turbo BASIC mixed in the competition and the ATARI BASIC games should run with original speed)

Attached Files



#96 Bunsen OFFLINE  

Bunsen

    Dragonstomper

  • Topic Starter
  • 846 posts
  • Location:Dithmarschen/ Germany

Posted Mon Apr 20, 2015 1:16 PM

I collected some prizes for the first three of the categories PUR and EXTREM. A big THANKS to the sponsors TheMontezuma, Yellow_Man, Zaxxon_HH, ABBUC, Kay Hallies and 8BitJunkie.

 

PUR

1st - 1 SIO2BT spent by TheMontezuma

2nd - 1 Pro© Magazine spent by Zaxxon_HH and 1 Dimo's Quest prototype disc (2/11) spent by 8BitJunkie

3rd - 1 ABBUC Mag spent by ABBUC, 1 german computer mag "CK" spent by Kay Hallies and 1 tape game spent by Yellow_Man

 

EXTREM

1st - 1 T-Shirt spent by ABBUC and 1 Tenliners book 2014

2nd - 1 Dimo's Quest prototype disc (1/11) spent by 8BitJunkie and 1 tape game spent by Yellow_Man

3rd - 1 ABBUC Mag spent by ABBUC, 1 german computer mag "CK" spent by Kay Hallies and 1 tape game spent by Yellow_Man

 

These are only some small prizes, but I hope the winners will have some joy with it.



#97 Savetz OFFLINE  

Savetz

    Dragonstomper

  • 823 posts
  • Location:Portland OR

Posted Mon Apr 20, 2015 2:29 PM

 Here it is. Thanks to skr who wrote the menu and won the first prize of live coding at NOMAM :)

 

skr satisfied all my expectations for the menu (not so easy with Atari BASIC and Turbo BASIC mixed in the competition and the ATARI BASIC games should run with original speed)

 

Thank you both @bunsen and @skr.



#98 therealbountybob OFFLINE  

therealbountybob

    Quadrunner

  • 7,402 posts
  • High Score Club - Post a score already
  • Location:Approaching "Space Fortress Omega"

Posted Mon Apr 20, 2015 3:03 PM

Great work everyone :thumbsup:  :thumbsup:  :thumbsup:

 

If anyone wants to post scores for these or other games from 2015 there's a thread in the High Score Club: Play-every-game-from-2015/  :)



#99 dmsc OFFLINE  

dmsc

    Moonsweeper

  • 264 posts
  • Location:Viņa del Mar, Chile

Posted Wed Jul 8, 2015 7:08 PM

Hi!,

 

I collected some prizes for the first three of the categories PUR and EXTREM. A big THANKS to the sponsors TheMontezuma, Yellow_Man, Zaxxon_HH, ABBUC, Kay Hallies and 8BitJunkie.

 

PUR

1st - 1 SIO2BT spent by TheMontezuma

 

I finally received my prize :) :) :) , seems the post was slower than usual...

 

sio2bt.jpg

 

So, now the fun begins!

 

Thanks to TheMontezuma and Bunsen

 



#100 Bunsen OFFLINE  

Bunsen

    Dragonstomper

  • Topic Starter
  • 846 posts
  • Location:Dithmarschen/ Germany

Posted Thu Jul 9, 2015 11:43 AM

Ouch, that was long. I am happy that finally found the prize its way to you.




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users