Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > CSDb Discussions > Advanced C64 Gameprogramming Manifesto
2002-04-24 02:10
cadaver

Registered: Feb 2002
Posts: 1160
Advanced C64 Gameprogramming Manifesto

Advanced C64 Gameprogramming Manifesto

A kind of minirant, not informative enough to be included on the BitOps site but I hope this raises some thoughts, or even flames (considering the mild scene-bashing :) ) Originally posted on Lemon64 scene forum but I thought I'd post here too...

An advanced C64 game could contain:
- Sophisticated AI system (it is good enough when entirely CPU-controlled "battles" between two or more factions can be staged, and it looks good)
- Scripting language for controlling storytelling & action; running on virtual machine(s)
- Dynamic memory allocation, for example dynamic allocation of spritedata
- Loadable code modules; each module can have "methods" that can be called (a bit like object oriented programming)

- Challenge yourself!
- Push all limits!
- Forget oldskool traditions and limits, if they're not useful!
- Remember that during C64's early times, games adhering to these "advanced" principles were written (for example Maniac Mansion ). The "scene" approach usually forgets this pioneering work, focusing on graphical & aural excellence and code optimization while ideas & theory are very limited!
- Gathering experience on other platforms, or of computer science in general, and applying it on C64 can produce devastating results!

( Enhanced Newcomer definitely fits under Advanced Gameprogramming :) )
2002-04-29 12:36
Viktor
Account closed

Registered: Apr 2002
Posts: 78
OK, lets talk about it. :)

bye.
Viktor
2002-04-29 13:02
cadaver

Registered: Feb 2002
Posts: 1160
Maybe there's not much to talk :)

When writing this, I just wanted to call some attention into the great lost arts of past :) Hmm..I guess there are also lots more great examples of advanced gamecoding... Myth at least seems to have a very elaborate animation system, for an action game. And First Samurai has enemies that can do just about anything the player can do too.

I guess making the enemies and player "similar" in a game can actually make the code more memory-efficient, even if some advanced AI is in place (rather than coding lots of specific code for "stupid" enemies)
2002-04-30 12:23
Viktor
Account closed

Registered: Apr 2002
Posts: 78
Do you know any good source?
What programs are the masterpieces of this way?

Viktor
2002-04-30 12:43
cadaver

Registered: Feb 2002
Posts: 1160
No, not really. The only public source codes (assuming you meant that) of larger C64 games that I'm aware, are my own at http://covertbitops.cjb.net, and I don't consider them very advanced yet :)

Myself, I'm definitely going to explore at least that virtual machine idea next..

2002-05-02 15:48
cadaver

Registered: Feb 2002
Posts: 1160
Ah yes, the sourcecode of "Harald the Horrible" exists at www.gamebase64.com (in Turboassembler format on diskimages) Just checked some of it today and it's quite messy - not good for learning I think.
2002-05-03 17:19
Viktor
Account closed

Registered: Apr 2002
Posts: 78
And what do you think about the JVM (Java Virtual Machine)?
You can read about on the Lunix mailing list.
(There are on the net some small JVM (32k large) and some people talks about it to converting)

bye.
Viktor
2002-05-03 18:02
cadaver

Registered: Feb 2002
Posts: 1160
Well, really interesting to see on the C64 :) but I'm afraid it'll be a bit slow. An amazing feat nevertheless. An action-game oriented virtual machine could be very simple, and fast, containing mostly directly game-oriented commands & instructions, like

(example code for an enemy in hypothetical script language)

if (player.distance < VERY_CLOSE)
say("Halt, intruder!");
attack(player);
endif




2002-05-03 18:14
cadaver

Registered: Feb 2002
Posts: 1160
Note that of course it's no use using a virtual machine/script language setup just for the sake of it, if it can't bring some kind of benefit, for example less memory use.

That above operation done directly in ASM
ldy #INDEX_PLAYER
jsr get_distance
cmp #VERY_CLOSE
bcs no_alert
lda #<alert_message
ldy #>alert_message
jsr say
jsr attack
no_alert:

would take 19 bytes.

In a hypothetical bytecode, that the hypothetical virtual machine would interpret, it could be for example:

dc.b SET_FOCUS,INDEX_PLAYER
dc.b GET_DISTANCE
dc.b COMPARE_A,VERY_CLOSE
dc.b BRANCH_GT
dc.w no_alert
dc.b SAY
dc.w alert_message
dc.b ATTACK
no_alert:

that would take 12 bytes (slightly less)
2002-05-12 20:50
Richard

Registered: Dec 2001
Posts: 621
Quote: Note that of course it's no use using a virtual machine/script language setup just for the sake of it, if it can't bring some kind of benefit, for example less memory use.

That above operation done directly in ASM
ldy #INDEX_PLAYER
jsr get_distance
cmp #VERY_CLOSE
bcs no_alert
lda #<alert_message
ldy #>alert_message
jsr say
jsr attack
no_alert:

would take 19 bytes.

In a hypothetical bytecode, that the hypothetical virtual machine would interpret, it could be for example:

dc.b SET_FOCUS,INDEX_PLAYER
dc.b GET_DISTANCE
dc.b COMPARE_A,VERY_CLOSE
dc.b BRANCH_GT
dc.w no_alert
dc.b SAY
dc.w alert_message
dc.b ATTACK
no_alert:

that would take 12 bytes (slightly less)


What sort of asm is this code referring to? It does not look like the sort of assembler I always use.
2002-05-12 21:31
cadaver

Registered: Feb 2002
Posts: 1160
That's the whole idea, it is an imaginary language which a C64 ASM routine will interpret. The point is to create your own language which suits the purposes best! In Metal Warrior 3 for example I used a script language for conversations and initializing the levels, but it can be used also for much more (actual action scenes)
 
... 15 posts hidden. Click here to view all posts....
 
Previous - 1 | 2 | 3 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Twilight/Excess/Arcade
ibux/Artline Designs..
iAN CooG/HVSC
wbochar
TheRyk/MYD!
Flex/Artline Designs
Alakran_64
Chesser/Blazon
Stone/Prosonix/Offence
Blitz/X-Ray | Cosmos
Mythus/Delysid
Guests online: 120
Top Demos
1 Next Level  (9.7)
2 Codeboys & Endians  (9.7)
3 13:37  (9.7)
4 Coma Light 13  (9.6)
5 Mojo  (9.6)
6 Edge of Disgrace  (9.6)
7 Fünfzig 90%  (9.6)
8 Uncensored  (9.6)
9 What Is The Matrix 2  (9.6)
10 Comaland 100%  (9.6)
Top onefile Demos
1 Nine  (9.7)
2 Layers  (9.6)
3 Party Elk 2  (9.6)
4 Charflasher  (9.6)
5 Cubic Dream  (9.6)
6 Copper Booze  (9.6)
7 Libertongo  (9.5)
8 Dawnfall V1.1  (9.5)
9 Ten  (9.5)
10 Rainbow Connection  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Booze Design  (9.3)
3 Performers  (9.3)
4 Censor Design  (9.2)
5 Triad  (9.2)
Top Coders
1 Serato  (10)
2 Gordian  (10)
3 Axis  (9.8)
4 Sailor  (9.8)
5 Graham  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2025
Page generated in: 0.06 sec.