Jump to content
IGNORED

Batari Basic or old school?


HatefulGravey

Recommended Posts

I have been looking more and more into programming for the VCS. To me that is the most active one can be in the hobby and I think it could be fun. I have read a good bit about Batari Basic and other, older, methods of programming.

 

While my understanding of Batari Basic is better than any other method I have read about I have my concerns about all of it. If you would be so kind as to answer some questions for me as experienced programmers it would do a lot to put me on the right path and I would be thankful.

 

Are there serious limits to Batari Basic I should know about?

 

Will learing one make learning the other harder, easier, or not matter at all?

 

Have there been any big releases done in Batari Basic that really show the ability of that style of programming?

 

I guess I just assume that the harder option is the better option in the end. However I understand that asssuming anything is a bad way to start out. So, before I start to hit this real hard I want to get the opinions of the people that are already doing this so I get started right and don't have to back track to the other option because I was too proud to risk asking a stupid question.

Link to comment
Share on other sites

If you were a kid I'd advise going the assembly route as when BASIC gets stuck in your head as a first language it can handicap you later. As an adult I'd say do BatariBASIC first to get the general concept of what a 2600 game entails and then inspect, then tinker with the generated assembly. Eventually you can just go fully asm. Or, you might consider bB a nice framework to hang your assembly routines on.

Link to comment
Share on other sites

So you can use bB to make the game AND edit the code in asm? I follow this to mean you can code the basics in the newer and simplier way, and go back into the asm to over come any limits you might run into with bB. That makes it sound like learning both is the best way to be. So programming the game in bB and needing to make a change in asm doesn't mean I have to reporgram the entire game in asm?

 

The main thing that bugs me about bB is the black lines that run through the screen. Like everything is built out of poorly molded legos or something. Is that always there?

Link to comment
Share on other sites

So you can use bB to make the game AND edit the code in asm? I follow this to mean you can code the basics in the newer and simplier way, and go back into the asm to over come any limits you might run into with bB.

 

Yep. You can switch back and forth between assembly and bB within your source code.

 

I've written assembly games and utilities from scratch, but I usually choose to use bB with inline assembly and a custom kernel. I find that writing most of the code in a higher level language speeds up development time a lot, and frees up grey cells so I'm more ambitious with my projects.

 

 

The main thing that bugs me about bB is the black lines that run through the screen. Like everything is built out of poorly molded legos or something. Is that always there?

 

Nope, it's optional. When you see the missing lines between playfield blocks in a bB program, it means the programmer is using the standard display kernel, which is one of the pre-written display kernels provided with bB. Even when you use that kernel, you can make some trade-offs to make the lines disappear.

 

Other options might be to use the multisprite kernel or DPC+ kernel, or you can write your own custom display kernel.

 

Check out some screens of existing bB games with no blank lines in sight...

 

post-23476-0-06357800-1348611613_thumb.png post-23476-0-10276900-1348611614_thumb.png post-23476-0-17484700-1348611615_thumb.png post-23476-0-05883700-1348612510_thumb.png

post-23476-0-75019000-1348611615_thumb.png post-23476-0-26867700-1348611618_thumb.png post-23476-0-37159200-1348611622_thumb.png post-23476-0-74932900-1348612510_thumb.png

 

...a bit of everything in that bunch. DPC+ kernels, custom kernels, tweaked existing kernels, standard kernel with options, and an example of the titlescreen kernel.

  • Like 3
Link to comment
Share on other sites

The problem I have with bB is the stuff being passed off as a "game" when it's essentially one blocky playfield and one badly drawn sprite chasing another badly drawn sprite. That's not a fault of the tool, that's someone doing a tutorial and making a cart of it just because they know someone will pay $25 for it. Suffer for your art. Learn ASM.

Link to comment
Share on other sites

The problem I have with bB is the stuff being passed off as a "game" when it's essentially one blocky playfield and one badly drawn sprite chasing another badly drawn sprite. That's not a fault of the tool, that's someone doing a tutorial and making a cart of it just because they know someone will pay $25 for it. Suffer for your art. Learn ASM.

 

No. The objective is game creation. Not suffering.

 

I see the "Tool X makes it easy so I see lame games" argument everywhere. People need to get over their tools and admit it's about learning, growing and creating. Make it easy to start and support them when the time comes when they might choose a more archaic but fine grained language like assembly.

 

Do you berate a 4 year old for a crayon drawing and tell them to suffer - learn to make a fresco? There can be no denying quality productions can come out of bB. There can also be no denying more accessible tools mean more new blood and more crayon drawings to start with.

Edited by theloon
  • Like 4
Link to comment
Share on other sites

The problem I have with bB is the stuff being passed off as a "game" when it's essentially one blocky playfield and one badly drawn sprite chasing another badly drawn sprite. That's not a fault of the tool, that's someone doing a tutorial and making a cart of it just because they know someone will pay $25 for it. Suffer for your art. Learn ASM.

 

I have no desire to release anything to be honest. If I can make something that other people want to play that would be cool, but at the end of the day I am doing this for me. I want to know more about this, and this is a good challenge to learn something new. I would be glad to do that in asm and I think I could do a better job learning if I found the right source material. Would you like to suggest a good book for learning asm for this progrect? I started reading the 2600 Programming for Newbies and found that I would be best served to take a step back there. All the talk about scan lines and such advanced too fast for me and left things unanswered in my mind. I thought I would keep reading and that would be better explained as seems to be a pattern in that text, but it didn't get better. Today I plan to start over with that "book". Any other advice on titles to read would be great.

Link to comment
Share on other sites

Everyone and their mother is raving about Super Mario Bros for the Atari 2600:

http://www.atariage.com/forums/topic/202398-super-mario-2600-entire-world-1-demo/

 

Seaweed Assault is a well developed game

http://www.atariage.com/forums/topic/173190-seaweed-assault/

 

Albert just chose Epic Adventure and Evil Magician Returns II as paragons of AtariAge at the Portland Retro Gaming Expo. If Albert doesn't know quality I don't know who does.

http://www.atariage.com/forums/topic/184924-epic-adventure/

http://www.atariage.com/forums/topic/201071-emr-ii-evil-magician-returns-upgraded-to-dpc/

Link to comment
Share on other sites

Dungeon and Cave In are both games I have wanted to play actually and I have played Gingerbread Man. They were done completely in bB? I asked that question because if successful games can be completely programmed in bB I'm starting to wonder why anyone would code a complete game in asm. Seems the best bet is program the game in bB and tweek the stuff that needs it in asm.

 

Thanks a lot for pointing me at those.

Link to comment
Share on other sites

Everyone and their mother is raving about Super Mario Bros for the Atari 2600:

http://www.atariage....e-world-1-demo/

 

Seaweed Assault is a well developed game

http://www.atariage....eaweed-assault/

 

Albert just chose Epic Adventure and Evil Magician Returns II as paragons of AtariAge at the Portland Retro Gaming Expo. If Albert doesn't know quality I don't know who does.

http://www.atariage....epic-adventure/

http://www.atariage....pgraded-to-dpc/

 

We posted at the same time and I hate it when that happens because there is always something I want to comment on when it does and I have to double post of edit and it gets old. Just one of those things that bugs me... maybe I'm odd.

 

I looked at the Mario deal. It looks pretty cool. I watched the videos and all that in the thread, but it had the lines that I don't like. That is what had me concerned that were impossible to get around. If that game still had them, and everyone was loving it I was worried it was something everyone just learned to live with and over looked.

Link to comment
Share on other sites

Dungeon and Cave In are both games I have wanted to play actually and I have played Gingerbread Man. They were done completely in bB? I asked that question because if successful games can be completely programmed in bB I'm starting to wonder why anyone would code a complete game in asm. Seems the best bet is program the game in bB and tweek the stuff that needs it in asm.

 

Thanks a lot for pointing me at those.

 

That's exactly what Dungeon and Cave In did, dawg :) Batari originally intended bB as a gateway to full on assembly. Some of us chose to go the middle ground.

 

Those lines that you don't like can be fixed. You don't need those lines. You DO lose missile0 in the process, though.

Edited by theloon
Link to comment
Share on other sites

I don't competely understand what that means yet, however I will keep that in mind as I move forward. I'll know that when I understand exactly what missle0 is for sure.I have played with bB some in the past and I have moved thing around the screen but not much more than that so far. Stay tuned.

Link to comment
Share on other sites

On the Atari 2600 you have just a few thingies you can play with. You got: 2 sprites. 2 missiles and a ball. Oh, and some blocks you can use for the background called the playfield.

If you want fancy tricks like no gaps between blocks on the playfield you need to do some tradeoffs. In return for losing a missile you can use that resource to fill in the gaps between blocks.

 

So, just to be clear:

 

2 sprites that can be 8 pixels wide and plenty taller.

2 missiles that are just rectangles. They can be a little thicker or taller but are basically meant to be laser shots.

1 ball. Same deal as missiles. Just a rectangle. Meant to be the ball in PONG.

At least 12x32 blocks for a background "playfield". Meant to be the terrain in Combat.

 

The reason bB is advantageous is that it sets these resources up for you to use. Unlike the Sega Genesis VDP the 2600 must do all the screen drawing functions itself. Most of your assembly code would be dedicated to writing your own "video driver" that draws the sprites and missiles and ball and playfield across the screen.

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

Excellent post. One addendum to this...

 

2 sprites that can be 8 pixels wide and plenty taller.

 

...the pixels for those sprites can be stretched to 2x or 4x regular size (like the big plane in some Combat levels) or you can have 2 or 3 copies of the sprites, side by side. (like the groups of planes in some Combat levels)

Link to comment
Share on other sites

Check out this chart:

 

http://www.randomterrain.com/atari-2600-memories-batari-basic-commands.html#kernelopchart

 

You don't have to know what it all means yet, but no_blank_lines is self-explanatory. Look on the right side and see what you have to give up in each case.

Link to comment
Share on other sites

To me bB games look like something from 1977 or stuff that I was making on my C=64 when I was 12. Again, no fault of the tool. It's a great learning tool and as it matures I think it will result in better games. But I won't pay for another bB game after the Stella's Stocking cart. I know it's not a popular opinion but I don't think everyone should make a game just like everyone should not sing or play baseball. Some people are just bad at it.

Link to comment
Share on other sites

Batari Basic gives you quickness and speed, but assembly gives you complete control and mastery of your game. Most BB games all look the same to me, and kinda blocky.

 

The main problem I see with a lot of BB users is they have no idea what the Atari is doing, and can't troubleshoot the root problems. Learn assembly, if for no other reason then to follow your code in Stella's debugger.

 

 

 

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...