Jump to content
Keneg

Good fantasy role-playing games for Atari 800XL

Recommended Posts

I understand that for all other games you work on, there are some serious RAM / cart limitations (16K-48K), so ASM is simply necessity.

 

But, if you're entertaining turn-based RPG, without the 16K limit, why not just create the gameplay in C ? At that point it won't matter if you need 1 or 2 banks more for the compiled C code. And compiled C is plenty fast for turn-based gameplay.

 

Hell, even if you only do rendering and audio in ASM, the C layer can easily call all the ASM functions, plenty fast. Your productivity would skyrocket. I am currently dealing with complex nested if.then.else blocks that are up to 3-4 levels deep (but, asymetrically), and even though 68000's ASM is much more verbose then 6502, it's still very slow to debug & test compared to one page of C code that you write in 15 minutes....

 

It really doesn't matter for a player if the turn-based logic takes half of frame or 5 frames...

Share this post


Link to post
Share on other sites

I understand that for all other games you work on, there are some serious RAM / cart limitations (16K-48K), so ASM is simply necessity.

 

But, if you're entertaining turn-based RPG, without the 16K limit, why not just create the gameplay in C ? At that point it won't matter if you need 1 or 2 banks more for the compiled C code. And compiled C is plenty fast for turn-based gameplay.

 

Hell, even if you only do rendering and audio in ASM, the C layer can easily call all the ASM functions, plenty fast. Your productivity would skyrocket. I am currently dealing with complex nested if.then.else blocks that are up to 3-4 levels deep (but, asymetrically), and even though 68000's ASM is much more verbose then 6502, it's still very slow to debug & test compared to one page of C code that you write in 15 minutes....

 

It really doesn't matter for a player if the turn-based logic takes half of frame or 5 frames...

 

I was not aware there is a version of C that compiles to 6502 code. I am considering MAD PASCAL to help cut down program development time on other projects. The programming code will be shorter and easier to work with other people. Just have to figure put how to make stuff work with multi-bank cartridges.

 

The reason why I do some games with 16K or 64K ROM cartridges is that Video 61 still has many blank boards and shells in stock. Plus limiting to 16K RAM allows some games to run on 16K machines like 400 or 600XL, and allow to be ported to the 5200. So the smaller games can run on any Atari 8-bit system, unless someone out there finds an 400/800 with 4K, 8K installed.

Share this post


Link to post
Share on other sites

I was not aware there is a version of C that compiles to 6502 code. I am considering MAD PASCAL to help cut down program development time on other projects. The programming code will be shorter and easier to work with other people. Just have to figure put how to make stuff work with multi-bank cartridges.

 

The reason why I do some games with 16K or 64K ROM cartridges is that Video 61 still has many blank boards and shells in stock. Plus limiting to 16K RAM allows some games to run on 16K machines like 400 or 600XL, and allow to be ported to the 5200. So the smaller games can run on any Atari 8-bit system, unless someone out there finds an 400/800 with 4K, 8K installed.

There's a subset of C on the Atari 8bit called Lightspeed C, but it's quite limited compared to C on 16bits and up.

  • Like 1

Share this post


Link to post
Share on other sites

huh?, cartridge removes memory limits yes?

true there are C offerings on the 8 bit :)

Edited by _The Doctor__

Share this post


Link to post
Share on other sites

Yeah, Mad Pascal would be even better. Anything that lets you use structs/records and write the game logic over few dozens lines (instead of few hundreds).

Share this post


Link to post
Share on other sites

A lot of Lynx home brews are written in C.

 

Cc65 is the standard.

Edited by Heaven/TQA
  • Like 2

Share this post


Link to post
Share on other sites

Moria is a fantastic case in point of what is possible :)

I'd love to play that, but I don't have a VBXE. Seems like the 40 col port has stalled.

Share this post


Link to post
Share on other sites

A lot of Lynx home brews are written in C.

 

Cc65 is the standard.

You mean, like, complete codebase - including rendering/audio ? You know some specific examples ? Just curious what kind of smooth and real-time 2D game would be possible in C on Lynx...

Share this post


Link to post
Share on other sites

huh?, cartridge removes memory limits yes?

true there are C offerings on the 8 bit :)

Cartridges are different sizes, up to a 1024K AtariMax, I know someone had 4MB flash cartridges, but they seemed to be a limited run. THE!CART has some image types over 1024K or a game can utilizing over 1024K, but the cartridge itself is expensive, by the time someone gets a couple, flash the game, and wants to mark up to cover labor and shipping, talking well over $100 USD.

 

What does get in the way is the need to bank switch, and you needs to plan around it. I keep the game VBI + DLIs in memory locations that are mapped at all times. Stuff to Initialize, Title Screens, decompress to RAM can come from other banks. Scheme varies from game to game and between cartridge banks. AtariMax + Williams only occupy 8K at a time, so I copy/decompress some banks to RAM so the game runs fast and smooth.

 

Yeah, Mad Pascal would be even better. Anything that lets you use structs/records and write the game logic over few dozens lines (instead of few hundreds).

I considered MAD PASCAL starting with one of my smaller game so that I can learn and figure out the language. Then do some bigger stuff.

 

A lot of Lynx home brews are written in C.

 

Cc65 is the standard.

Believe it or not, I never learned C, that is why I am starting with PASCAL.

 

huh?, cartridge removes memory limits yes?

true there are C offerings on the 8 bit :)

Edited by peteym5

Share this post


Link to post
Share on other sites

Pete... here too.... C is like assembler. At school

I learned famous Turbo Pascal on a 286 and XT. I only had C at Uni in a semester. And loved emacs editor on a mainframe.... so c++, c and c# etc are all strange to me... thats why I stick to 6502 and basic ;)

Edited by Heaven/TQA

Share this post


Link to post
Share on other sites

Assembly may be longer and more tedious to program, but you have control and ability to optimize it for speed. Someone submitted a bunch of games in that thread from a few months back. Think a few were incomplete. But I am looking at the ideal of the 3D Dungeon view, then go to another screen for the turned based combat.

 

I am working on something for another adventure game that allows the player to save and restore their game progress to disk. Game could be adapted to flash cartridge and save in one of the banks.

Edited by peteym5

Share this post


Link to post
Share on other sites

Assembly may be longer and more tedious to program, but you have control and ability to optimize it for speed.

But, that's exactly my point - speed is precisely something that you absolutely do not need in turn-based combat. The delay between executing various commands during the combat phase will just become a part of the feeling/experience of the game.

 

- How many cycles do we have without any DLIs per frame ? Around 20,200 at 160x192, right ?

- ASM code handling all the stats/uprading/etc. would take, say, 50% of it - so - 10,000

- C code, and let's exaggarate here, would take 10x more, e.g. 100,000 but that's still just 5 frames out of 50

 

You can write a complex RPG logic in C during one weekend. How much of that will you really write in 6502 ASM that will be 100% stable under all conditions ? The C logic, you can see all of it, in few pages of code. The ASM version will be easily 50+ pages of code.

 

Note, that when I'm talking about complex RPG logic, I mean at the very least the following (that I already implemented in past, in C++ for one of my old PC games, so I'm very much familiar with the debugging&testing effort of it all):

- 4 basic stats (speed, strength, accuracy, luck)

- combat stats equation (health, armor, level, damage)

- non-linear experience table

- leveling

- game difficulty adjusting all damage equations

- static item stats modifiers (e.g. speed+2, accuracy - 1)

- time-based modifiers (e.g. spells: strength-4 for 30 seconds)

- randomizers that adjust the range of damage, so it isn't 100% of the time constant, but varies, ever so slightly

- proper full equations for handling armor (and no, I don't mean just coefficient here) taking damage

- special skills that build up (have a separate experience bar) and give you special attack

- Weapon/Item name generator using randomized adjectives, nouns (e.g. "Bastardized Hammer Of Tranquility")

- Enemy name generator using scheme above

- Enemy's weapon/armor/skills random generator

- Randomized (but guaranteed range) Enchantments of items

- Item equipment requirement conditions and kicking off equipped items at run-time once the time-based modifiers elapse

- scrolling inventory handling sorting of all items taking up 1x1, 2x2, 2x3, 3x3, 3x4 space on the grid

- unlocking more inventory space, once sufficiently leveled up

- Crate Item generator that fills the crate with items based on your current level (and that includes items outside of range, but just very few and/or none)

 

 

Could you implement the logic above in ASM in, say, two months ? Sure you could. I just don't understand the point of wasting your time on something that needs no performance in a turn-based game.

 

But I am looking at the ideal of the 3D Dungeon view, then go to another screen for the turned based combat.

I've switched to jag coding from 6502 few months back, but in my next 6502 coding spree (I should be receiving my EclaireXl board soon - though at the moment very busy with jag and other stuff), I will integrate the ultrafast 8-bit transformations with the clipping. Now, I had the clipping before, but it was 16-bit and that's much slower.

 

Technically, if the game was screen-based, e.g. no clipping required, we could use even current 6502 engine. Especially for static screen-based game, we could have some really complex 3D flatshaded scenes (not just a raycasting dungeon - I'm talking generic 3D meshes here, imported from 3dsmax).

 

While I definitely will sell carts of my game on jag, I'm not sure I feel the same way for A800. I presume your motivation is commercial or no ?

  • Like 1

Share this post


Link to post
Share on other sites

Hm... I never played through any of them , as they were all "limited" , not so say crap. But on the PC, several great Games appeared.

There is only one sort of games that could be named well: His Dark Majesty. I never played through aswell, but the presentation is outstanding great and unique on the Atari.

But, assuming what the Atari could do, a real great game of this genre could appear in the future.

Share this post


Link to post
Share on other sites

ASM can do certain tasks like DLIs, VBIs, Player/Missile graphics (multiplexing if we need more than 4 sprites), decompressing, moving blocks, or compact tasks that take up more memory if written in higher languages. Really depends on how you want layout the screens, and point of view you want to present. Do we want RMT music playing in the background? Certainly will be using assembly then.

Share this post


Link to post
Share on other sites

there are no rules to say you can't co-ordinate all the low level stuff from the higher level language of 'C' or Pascal... haven't people been doing that with Basic for decades with USR calls

Share this post


Link to post
Share on other sites

Believe it or not, I never learned C, that is why I am starting with PASCAL.

I learned Pascal in school, but I really wish they taught C first, it is much more useful, powerful and portable. I eventually learned it on my own.

Share this post


Link to post
Share on other sites

I am considering taking part in putting together some core programming for an engine to play a AD&D or other type of role playing games. Look for sources made on other platforms. Anybody be free to append whatever programming and data they will need for their game. They we be free to do whatever they want with their game, give it away or sale it on whatever media. Put it on cartridge, floppy, or digital download.

Edited by peteym5

Share this post


Link to post
Share on other sites

Why has this thread turned into a RPG programming thread? It's supposed to be a thread on games that already exist! Start another thread and quit hijacking this one!!!!

Edited by Gunstar

Share this post


Link to post
Share on other sites

I learned Pascal in school, but I really wish they taught C first, it is much more useful, powerful and portable. I eventually learned it on my own.

Exact same for me - I just don't believe it would be a good idea to introduce the intricacies of a C compiler with its incredibly stupid and cryptic compiler messages in high school. I did the switch from Pascal to C++ around 1999, and without internet, it would be basically almost impossible to decipher the compiler&linker error messages. It didn't help, I didn't have a proper C++ book either (till much later).

 

And let's not go into compilation time - the same code in Turbo Pascal compiled under a second, but around a minute for C++ - just absurd in terms of productivity. You literally forgot half of the code till the time you got there after compiling.

 

Turbo Pascal 6.0 gave you:

- amazing IDE (to this day, let alone quarter century ago, when doing the switch from Atari)

- debugging through both pascal and inlined ASM

- easy integration of ASM

- quite advanced language features

 

 

It's been a long time, but it was already possible at that time to just include external assembler libraries, which for our Atari game would mean all the code for interrupts, DLIs, rendering, leaving all gameplay written in Pascal.

 

I'm reasonably sure (from quick glance) Mad Pascal allows the same type of integration, no?

Share this post


Link to post
Share on other sites

STOP it!!! This isn't even the right forum! Go to the 8-bit programming forum!!! Quit hijacking this thread talking about programming!!!

Edited by Gunstar
  • Like 1

Share this post


Link to post
Share on other sites

I am enjoying the way this thread has developed. I got the answers I was looking for and now am avidly following the programming discussion. I want to try creating my own game once I retire and have time. I used to program in Pascal, so that would be my choice also. I did some 6502 assembly on my VIC 20 and C128 also. 6502 ASM seemed a lot easier than 8086.

  • Like 1

Share this post


Link to post
Share on other sites

So we have a separate thread for creating a new engine for these things

http://atariage.com/forums/topic/280196-creating-a-new-advance-dungeons-and-dragons-type-role-playing-game/

 

Since Secretum Labyrinth Dark Castles development is well into progress and has more RPG + AD&D like features. What other features would help make it a Good fantasy role-playing game?

Share this post


Link to post
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.

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