Artillery DuelArtillery Duel .net.net
The first Internet game for the Commodore 64The first Internet game for the Commodore 64
Leif BloomquistLeif Bloomquist
Toronto PET Users GroupToronto PET Users Group
World of Commodore 2006World of Commodore 2006
TCP/IP Stacks for the C64 in Machine LanguageTCP/IP Stacks for the C64 in Machine Language
Services
TCP
DNS DHCP Echo
Transport UDP ICMP
Network IP
Addressing ARP
Ethernet driver CS8900A / LAN91C96
Ethernet interface RR-Net / TFE / ETH64
Green: Working Yellow: Partial Red: Unimplemented
Image courtesy Per OlofssonImage courtesy Per Olofsson
IP65 – ca65 cross-assemblerIP65 – ca65 cross-assembler
Netlib64 – DASM cross-assemblerNetlib64 – DASM cross-assembler
Internet ProtocolsInternet Protocols
Transport Control Protocol (TCP)Transport Control Protocol (TCP)
Guaranteed delivery of data + packet orderingGuaranteed delivery of data + packet ordering
Not implemented in ML yet, high overheadNot implemented in ML yet, high overhead
A lot of work for a poor 1Mhz computerA lot of work for a poor 1Mhz computer
User Datagram Protocol (UDP)User Datagram Protocol (UDP)
Much simpler protocol than TCPMuch simpler protocol than TCP
No guarantees – you do all the confirmationNo guarantees – you do all the confirmation
Working implementations in 6502 MLWorking implementations in 6502 ML
Used extensively in PC Internet gamingUsed extensively in PC Internet gaming
Network Apps for the C64Network Apps for the C64
Network apps so far have focused on utilities:Network apps so far have focused on utilities:
Web Browsing / Telnet etc. (Contiki)Web Browsing / Telnet etc. (Contiki)
Disk/Program Transfer (Warpcopy64)Disk/Program Transfer (Warpcopy64)
Terminal Software (GuruTerm)Terminal Software (GuruTerm)
Remote debugging (CodeNet, UDPSlave)Remote debugging (CodeNet, UDPSlave)
Where are the games?Where are the games?
Simplifying Assumptions for First AttemptSimplifying Assumptions for First Attempt
Turn-based game, not timing criticalTurn-based game, not timing critical
No central server – peer-to-peerNo central server – peer-to-peer
Only one packet “in flight” on network atOnly one packet “in flight” on network at
any one timeany one time
Minimal game “world” and playMinimal game “world” and play
GameLogicFlowchartGameLogicFlowchart
Very Simple ProtocolVery Simple Protocol
Where to get the GameWhere to get the Game
Grab a copy on disk from me todayGrab a copy on disk from me today
Download latest version fromDownload latest version from
www.petscii.comwww.petscii.com forumsforums
(Network Game Development section)(Network Game Development section)
Look for opponents on the #c64friends IRCLook for opponents on the #c64friends IRC
channel (channel (www.c64friends.comwww.c64friends.com))
Credits:Credits:
Leif Bloomquist – Game codeLeif Bloomquist – Game code
Oliver VieBrooks – Network library codeOliver VieBrooks – Network library code
Thurstan Johnston – TestingThurstan Johnston – Testing
Raik Picheta – MusicRaik Picheta – Music
Also thanks to Dustin Chambers, Robin Harbron forAlso thanks to Dustin Chambers, Robin Harbron for
ideas and assistanceideas and assistance
Demo Time!Demo Time!

Artillery Duel Network

  • 1.
    Artillery DuelArtillery Duel.net.net The first Internet game for the Commodore 64The first Internet game for the Commodore 64 Leif BloomquistLeif Bloomquist Toronto PET Users GroupToronto PET Users Group World of Commodore 2006World of Commodore 2006
  • 2.
    TCP/IP Stacks forthe C64 in Machine LanguageTCP/IP Stacks for the C64 in Machine Language Services TCP DNS DHCP Echo Transport UDP ICMP Network IP Addressing ARP Ethernet driver CS8900A / LAN91C96 Ethernet interface RR-Net / TFE / ETH64 Green: Working Yellow: Partial Red: Unimplemented Image courtesy Per OlofssonImage courtesy Per Olofsson IP65 – ca65 cross-assemblerIP65 – ca65 cross-assembler Netlib64 – DASM cross-assemblerNetlib64 – DASM cross-assembler
  • 3.
    Internet ProtocolsInternet Protocols TransportControl Protocol (TCP)Transport Control Protocol (TCP) Guaranteed delivery of data + packet orderingGuaranteed delivery of data + packet ordering Not implemented in ML yet, high overheadNot implemented in ML yet, high overhead A lot of work for a poor 1Mhz computerA lot of work for a poor 1Mhz computer User Datagram Protocol (UDP)User Datagram Protocol (UDP) Much simpler protocol than TCPMuch simpler protocol than TCP No guarantees – you do all the confirmationNo guarantees – you do all the confirmation Working implementations in 6502 MLWorking implementations in 6502 ML Used extensively in PC Internet gamingUsed extensively in PC Internet gaming
  • 4.
    Network Apps forthe C64Network Apps for the C64 Network apps so far have focused on utilities:Network apps so far have focused on utilities: Web Browsing / Telnet etc. (Contiki)Web Browsing / Telnet etc. (Contiki) Disk/Program Transfer (Warpcopy64)Disk/Program Transfer (Warpcopy64) Terminal Software (GuruTerm)Terminal Software (GuruTerm) Remote debugging (CodeNet, UDPSlave)Remote debugging (CodeNet, UDPSlave) Where are the games?Where are the games?
  • 5.
    Simplifying Assumptions forFirst AttemptSimplifying Assumptions for First Attempt Turn-based game, not timing criticalTurn-based game, not timing critical No central server – peer-to-peerNo central server – peer-to-peer Only one packet “in flight” on network atOnly one packet “in flight” on network at any one timeany one time Minimal game “world” and playMinimal game “world” and play
  • 6.
  • 7.
    Very Simple ProtocolVerySimple Protocol
  • 8.
    Where to getthe GameWhere to get the Game Grab a copy on disk from me todayGrab a copy on disk from me today Download latest version fromDownload latest version from www.petscii.comwww.petscii.com forumsforums (Network Game Development section)(Network Game Development section) Look for opponents on the #c64friends IRCLook for opponents on the #c64friends IRC channel (channel (www.c64friends.comwww.c64friends.com))
  • 9.
    Credits:Credits: Leif Bloomquist –Game codeLeif Bloomquist – Game code Oliver VieBrooks – Network library codeOliver VieBrooks – Network library code Thurstan Johnston – TestingThurstan Johnston – Testing Raik Picheta – MusicRaik Picheta – Music Also thanks to Dustin Chambers, Robin Harbron forAlso thanks to Dustin Chambers, Robin Harbron for ideas and assistanceideas and assistance
  • 10.