artillery duel network
DESCRIPTION
The first Internet game for the Commodore 64!TRANSCRIPT
Artillery Duel Artillery Duel .net.net
The first Internet game for the Commodore 64The first Internet game for the Commodore 64
Leif BloomquistLeif BloomquistToronto 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
ServicesTCP
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 at Only one packet “in flight” on network at any one timeany one time
Minimal game “world” and playMinimal game “world” and play
Gam
e Lo
gic
Flo
wch
art
Gam
e Lo
gic
Flo
wch
art
Very Simple ProtocolVery Simple Protocol
Where to get the Game Where to get the Game
Grab a copy on disk from me todayGrab a copy on disk from me today
Download latest version from Download latest version from www.petscii.comwww.petscii.com forums forums (Network Game Development section)(Network Game Development section)
Look for opponents on the #c64friends IRC Look 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 for Also thanks to Dustin Chambers, Robin Harbron for ideas and assistanceideas and assistance
Demo Time! Demo Time!