Jump to content

Photo

Good fantasy role-playing games for Atari 800XL

800XL FRPG

58 replies to this topic

#26 VladR OFFLINE  

VladR

    Stargunner

  • 1,572 posts
  • Location:Montana

Posted Tue Jun 26, 2018 3:26 AM

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



#27 Wrathchild ONLINE  

Wrathchild

    River Patroller

  • 2,136 posts
  • Location:Reading, UK.

Posted Tue Jun 26, 2018 9:44 AM

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



#28 peteym5 OFFLINE  

peteym5

    River Patroller

  • 2,378 posts
  • Location:Buffalo NY USA

Posted Tue Jun 26, 2018 12:05 PM

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.



#29 AMenard OFFLINE  

AMenard

    Dragonstomper

  • 760 posts
  • Location:Beauharnois, Qc, Canada

Posted Tue Jun 26, 2018 12:10 PM

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.

#30 _The Doctor__ ONLINE  

_The Doctor__

    Flux Capacitor Master Craftsman

  • 6,288 posts
  • Location:10-0-11-00:02

Posted Tue Jun 26, 2018 12:18 PM

huh?, cartridge removes memory limits yes?

true there are C offerings on the 8 bit :)


Edited by _The Doctor__, Tue Jun 26, 2018 12:18 PM.


#31 VladR OFFLINE  

VladR

    Stargunner

  • 1,572 posts
  • Location:Montana

Posted Tue Jun 26, 2018 1:15 PM

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



#32 Heaven/TQA OFFLINE  

Heaven/TQA

    Quadrunner

  • 11,166 posts
  • Location:Baden-WŁrttemberg, Germany

Posted Tue Jun 26, 2018 1:43 PM

A lot of Lynx home brews are written in C.

Cc65 is the standard.

Edited by Heaven/TQA, Tue Jun 26, 2018 1:44 PM.


#33 Lord Thag OFFLINE  

Lord Thag

    River Patroller

  • 3,540 posts
  • We put our faith in Blast Hardcheese
  • Location:The Land that Time Forgot

Posted Tue Jun 26, 2018 2:33 PM

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. 



#34 VladR OFFLINE  

VladR

    Stargunner

  • 1,572 posts
  • Location:Montana

Posted Tue Jun 26, 2018 4:45 PM

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



#35 peteym5 OFFLINE  

peteym5

    River Patroller

  • 2,378 posts
  • Location:Buffalo NY USA

Posted Tue Jun 26, 2018 9:38 PM

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, Tue Jun 26, 2018 9:46 PM.


#36 Heaven/TQA OFFLINE  

Heaven/TQA

    Quadrunner

  • 11,166 posts
  • Location:Baden-WŁrttemberg, Germany

Posted Tue Jun 26, 2018 10:46 PM

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, Tue Jun 26, 2018 10:48 PM.


#37 peteym5 OFFLINE  

peteym5

    River Patroller

  • 2,378 posts
  • Location:Buffalo NY USA

Posted Wed Jun 27, 2018 11:42 AM

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, Wed Jun 27, 2018 11:46 AM.


#38 VladR OFFLINE  

VladR

    Stargunner

  • 1,572 posts
  • Location:Montana

Posted Wed Jun 27, 2018 3:01 PM

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 ?


  • jhd likes this

#39 emkay OFFLINE  

emkay

    Quadrunner

  • 9,674 posts
  • What's up?
  • Location:Holy Grail ;)

Posted Wed Jun 27, 2018 3:16 PM

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.

#40 peteym5 OFFLINE  

peteym5

    River Patroller

  • 2,378 posts
  • Location:Buffalo NY USA

Posted Thu Jun 28, 2018 6:31 AM

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.



#41 Wrathchild ONLINE  

Wrathchild

    River Patroller

  • 2,136 posts
  • Location:Reading, UK.

Posted Thu Jun 28, 2018 6:39 AM

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



#42 zzip OFFLINE  

zzip

    River Patroller

  • 2,550 posts

Posted Thu Jun 28, 2018 8:34 AM

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.

#43 peteym5 OFFLINE  

peteym5

    River Patroller

  • 2,378 posts
  • Location:Buffalo NY USA

Posted Thu Jun 28, 2018 10:02 AM

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, Thu Jun 28, 2018 10:14 AM.


#44 Gunstar OFFLINE  

Gunstar

    Gunstar

  • 10,055 posts
  • Location:Kellyville, Oklahoma

Posted Thu Jun 28, 2018 11:10 AM

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, Thu Jun 28, 2018 11:10 AM.


#45 VladR OFFLINE  

VladR

    Stargunner

  • 1,572 posts
  • Location:Montana

Posted Thu Jun 28, 2018 11:11 AM

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?



#46 Gunstar OFFLINE  

Gunstar

    Gunstar

  • 10,055 posts
  • Location:Kellyville, Oklahoma

Posted Thu Jun 28, 2018 11:12 AM

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, Thu Jun 28, 2018 11:14 AM.


#47 Sheddy OFFLINE  

Sheddy

    Dragonstomper

  • 769 posts
  • Location:UK

Posted Thu Jun 28, 2018 11:34 AM

His Dark Majesty. One of the best and most complex. (Done in "C" 😉)

#48 SoundGammon OFFLINE  

SoundGammon

    Stargunner

  • 1,373 posts

Posted Thu Jun 28, 2018 11:44 AM

How about those text adventures?



#49 Keneg OFFLINE  

Keneg

    Chopper Commander

  • Topic Starter
  • 117 posts

Posted Thu Jun 28, 2018 7:28 PM

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.

#50 peteym5 OFFLINE  

peteym5

    River Patroller

  • 2,378 posts
  • Location:Buffalo NY USA

Posted Thu Jun 28, 2018 9:42 PM

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

http://atariage.com/...e-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?







Also tagged with one or more of these keywords: 800XL, FRPG

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users