SlideShare a Scribd company logo
1 of 23
Multiplayer Roguelike
for the Commodore 64
Leif Bloomquist Roguelike Celebration 2018
@ GitHub HQ San Francisco USA October 6-7
A bit about me...
• Born in Dauphin, Manitoba, Canada
• Reside in Toronto, Ontario, Canada
• Commodore 64 enthusiast since 1986
• Have been dabbling with technology, gaming, and music my entire life
• “Day job” in software engineering at MDA, Canada’s leading space company
Why the Commodore 64?
• Best-selling computer of all time!
(Guinness Book of World Records)
• ~ 17 million units sold
• (The Raspberry Pi is poised to overtake it)
• Released in 1982: 64KB RAM, 1 MHz CPU, 16 Colors
• Over 25,000 games for the platform
• Fun to program on: Bare-metal, machine language,
very well documented
• Very active community in 2018:
Gaming, collecting, developing,
hardware hacking, modding….
Why the Commodore 64 - My Story
1986
Why the Commodore 64 - My Story
2016
Roguelikes on the Commodore 64
• The Commodore 64 was known for its impressive
game catalogue
• Gamebase64.com lists 25,700 known games!
• More than 200 are “Roguelikes” or variations
(Adventure 2D, RPG 2D, etc)
Networking on the Commodore 64?
• A miracle occurred in 2002!
• Adam Dunkels unveils “The Final Ethernet” – a prototype
10BaseT Ethernet “cartridge” for the Commodore 64 based on the
Crystal Semiconductor CS8900 chip
• Dunkels also releases the Contiki Operating System with numerous
network demo apps, all open-source
• Commercial+homebrew versions appear: RR-Net, FB-Net, 64NIC+,
ETH64…
• Plenty of tools – file transfer, terminals, chat, cross-development, web
browsers, etc.
• Where are the games?
Photo Credits: Adam Dunkels and RETRO Innovations
Evolution of C64 Multiplayer Games
Artillery Duel Network (2007)
• Two players
• Peer-to-Peer
• Turn-based
NetRacer (2008)
• Introduced a server
• Static game world
• Maximum 8 players
• Real-time
Vortex (2014)
• Introduced server-controlled
enemies
• Dynamic game world (in work)
• Massive game world
(10,000 screens)
• Unlimited players
• Real-time
This Game (2018)
• Server-controlled enemies
• Dynamic, interactive game world
• Added third dimension (depth)
• Object persistence
• Unlimited players
• Real-time
• Source code for all of these is available on GitHub – use them as a basis for your own games!
• Space Command by Dan “Ragooman” Ragonti and Jefferey “arkaxow” Brace
• Eight-Player Simultaneous real-time “Artillery Duel”-type game, with C64 server!
Evolution of C64 Multiplayer Games
Next Challenge: A RogueLike
• What if…the other characters in the dungeon
were other players that you could…
• Interact with?
• Go on quests together with?
• Team up with against monsters?
• Work together with to solve puzzles?
• Leave each other tools, clues, share equipment?
• That would be cool!
A `RogueLike` ?
• Real-time (not turn-based)
• One single, shared instance
• Multiplayer
• Object persistence
• Monster persistence (with respawn)
• “Multi-User Dungeon”
Unique? Gameplay Mechanics
• Carry items in Left hand and/or Right hand
• Explicit Attack command
• Double up swords or shields, or one of each
• Other items to be carried: Potions, Keys, Gold, etc
• No “inventory” (to encourage multiplayer)
• Magic items that recharge and return to origin
• Use or inspect items
• Play with Joystick on C64!
• Voice chat though Discord
• ...more secrets to discover!
Multiple Clients!
Partially Implemented:
• Commodore 64
• JavaScript (Browser)
• Telnet
• VT100/DEC Terminals
Future:
• Tandy CoCo?
• Apple II?
• VIC 20?
• Atari?
• More?
Implementation Details
• Server: Java 8
• C64 Client: 6502 assembler (ca65 cross-assembler)
• IP65 network stack – RR-Net, 64NIC+
• UDP with simple ACKs
Networking:
• Screen streamed to clients on change, or @ 1 Hz
Model-View-Controller Architecture
Model
View Controller
- Data structure with all maps,
object, and entity locations
- Logic for what actions are
allowed
Entity Actions
(Players, Monsters )
Representation of
immediate area
Translations
(PETSCII, ASCII, ANSI,
UTF-8, etc.) Players
Server
AI
Socket
Interface
(TCP/UDP)
Monster Behaviours: Finite State Machine
• Tweaking the state transition conditions gives the monsters different behaviours and “personalities”
Attacking
Retreating
Idle
Chasing
Wandering
Game Levels
• Mix of hand-edited and procedurally generated
• Initial target is 10 levels, 1000 x 1000 tiles each (or more)
• Demo server is 4 levels, 100 x 100 tiles each
Demo Server!
• Web: http://rogue.jammingsignal.com/rogue/
• Telnet: rogue.jammingsignal.com port 3006
• C64: Client bootloader as PRG file (download from Web site)
• The game is winnable: What is the magic word?
// TODO
• The game still needs a name!
• Different character types
• Ranged weapons
• A* search for monster movement
• Vision algorithms/raytracing
• Still many gameplay details to be worked out
Want to Help?
• Pixel artists
• Level designers
• Playtesters
• Other clients
• Gameplay
• Balancing
• …the game still needs a name!
Open Source – (MIT License)! On GitHub of course: 
https://github.com/LeifBloomquist/MultiRogueLike
• Puzzle designers
• Monster behaviours
• Coders
• Login system
Thank You!
• C64 Networking code: Per Olofsson, Jonno Downes
• Playtesting: Andreas Bloomquist and Tiffany Antopolski
• Graphics: “q0w/Atlantis”
• Advice and motivation: Robin Harbron
• /r/roguelikedev community on Reddit
• David Youd and The MADE for hardware loans
Toronto, Ontario Canada December 1-2, 2018
www.worldofcommodore.ca
www.jammingsignal.com (blog)
www.facebook.com/LeifBloomquist
@schemafactor
leif@schemafactor.com
Contact Info

More Related Content

Similar to Multiplayer Roguelike for the Commodore 64

Amiga Cracktro Programming
Amiga Cracktro ProgrammingAmiga Cracktro Programming
Amiga Cracktro Programmingoptixx
 
Massively Social != Massively Multiplayer
Massively Social != Massively MultiplayerMassively Social != Massively Multiplayer
Massively Social != Massively MultiplayerPaul Furio
 
BGF 2012 (Browsergames Forum)
BGF 2012 (Browsergames Forum)BGF 2012 (Browsergames Forum)
BGF 2012 (Browsergames Forum)Christof Wegmann
 
Harlan Beverly Lag The Barrier to innovation gdc austin 2009
Harlan Beverly Lag The Barrier to innovation gdc austin 2009Harlan Beverly Lag The Barrier to innovation gdc austin 2009
Harlan Beverly Lag The Barrier to innovation gdc austin 2009Harlan Beverly
 
Online games: a real-time problem for the network
Online games: a real-time problem for the networkOnline games: a real-time problem for the network
Online games: a real-time problem for the networkJose Saldana
 
.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogameMarco Parenzan
 
Photon Session / Unite12 Conference
Photon Session / Unite12 ConferencePhoton Session / Unite12 Conference
Photon Session / Unite12 ConferenceChristof Wegmann
 
Confrontation Pipeline and SCons
Confrontation Pipeline and SConsConfrontation Pipeline and SCons
Confrontation Pipeline and SConsslantsixgames
 
Computer Games Inner Workings - I. Loukeris AIT
Computer Games Inner Workings - I. Loukeris AITComputer Games Inner Workings - I. Loukeris AIT
Computer Games Inner Workings - I. Loukeris AITAIT_Communications
 
The next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesThe next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesPooya Eimandar
 
History of game evolution
History of game evolutionHistory of game evolution
History of game evolutionlitoon dev
 
Game On! Exploring Microservices with a Text-Based Adventure Game
Game On! Exploring Microservices with a Text-Based Adventure GameGame On! Exploring Microservices with a Text-Based Adventure Game
Game On! Exploring Microservices with a Text-Based Adventure GameErin Schnabel
 
Building a Windows 10 Game with C#, XAML and Win2D
Building a Windows 10 Game with C#, XAML and Win2DBuilding a Windows 10 Game with C#, XAML and Win2D
Building a Windows 10 Game with C#, XAML and Win2DNick Landry
 
Kickstaring the transition to parallel computing with open hardware
Kickstaring the transition to parallel computing with open hardwareKickstaring the transition to parallel computing with open hardware
Kickstaring the transition to parallel computing with open hardwareAndreas Olofsson
 
Harlan beverly gaming levels up networking ieee 10 2009
Harlan beverly gaming levels up networking ieee 10 2009Harlan beverly gaming levels up networking ieee 10 2009
Harlan beverly gaming levels up networking ieee 10 2009Harlan Beverly
 
Making A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You ThinkMaking A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You ThinkGorm Lai
 
A brief introduction to making your own (Internet of Things) Thing
A brief introduction to making your own (Internet of Things) ThingA brief introduction to making your own (Internet of Things) Thing
A brief introduction to making your own (Internet of Things) ThingTinamousSteve
 
UGC In Game : A Brief History and How We Bring It To Mobile | Zhuo Yue
UGC In Game : A Brief History and How We Bring It To Mobile | Zhuo YueUGC In Game : A Brief History and How We Bring It To Mobile | Zhuo Yue
UGC In Game : A Brief History and How We Bring It To Mobile | Zhuo YueJessica Tams
 

Similar to Multiplayer Roguelike for the Commodore 64 (20)

Amiga Cracktro Programming
Amiga Cracktro ProgrammingAmiga Cracktro Programming
Amiga Cracktro Programming
 
Massively Social != Massively Multiplayer
Massively Social != Massively MultiplayerMassively Social != Massively Multiplayer
Massively Social != Massively Multiplayer
 
BGF 2012 (Browsergames Forum)
BGF 2012 (Browsergames Forum)BGF 2012 (Browsergames Forum)
BGF 2012 (Browsergames Forum)
 
Harlan Beverly Lag The Barrier to innovation gdc austin 2009
Harlan Beverly Lag The Barrier to innovation gdc austin 2009Harlan Beverly Lag The Barrier to innovation gdc austin 2009
Harlan Beverly Lag The Barrier to innovation gdc austin 2009
 
Online games: a real-time problem for the network
Online games: a real-time problem for the networkOnline games: a real-time problem for the network
Online games: a real-time problem for the network
 
.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame
 
Photon Session / Unite12 Conference
Photon Session / Unite12 ConferencePhoton Session / Unite12 Conference
Photon Session / Unite12 Conference
 
Confrontation Pipeline and SCons
Confrontation Pipeline and SConsConfrontation Pipeline and SCons
Confrontation Pipeline and SCons
 
Computer Games Inner Workings - I. Loukeris AIT
Computer Games Inner Workings - I. Loukeris AITComputer Games Inner Workings - I. Loukeris AIT
Computer Games Inner Workings - I. Loukeris AIT
 
The next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesThe next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game Engines
 
History of game evolution
History of game evolutionHistory of game evolution
History of game evolution
 
Game On! Exploring Microservices with a Text-Based Adventure Game
Game On! Exploring Microservices with a Text-Based Adventure GameGame On! Exploring Microservices with a Text-Based Adventure Game
Game On! Exploring Microservices with a Text-Based Adventure Game
 
Building a Windows 10 Game with C#, XAML and Win2D
Building a Windows 10 Game with C#, XAML and Win2DBuilding a Windows 10 Game with C#, XAML and Win2D
Building a Windows 10 Game with C#, XAML and Win2D
 
Kickstaring the transition to parallel computing with open hardware
Kickstaring the transition to parallel computing with open hardwareKickstaring the transition to parallel computing with open hardware
Kickstaring the transition to parallel computing with open hardware
 
XRobots
XRobotsXRobots
XRobots
 
Harlan beverly gaming levels up networking ieee 10 2009
Harlan beverly gaming levels up networking ieee 10 2009Harlan beverly gaming levels up networking ieee 10 2009
Harlan beverly gaming levels up networking ieee 10 2009
 
Making A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You ThinkMaking A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You Think
 
A brief introduction to making your own (Internet of Things) Thing
A brief introduction to making your own (Internet of Things) ThingA brief introduction to making your own (Internet of Things) Thing
A brief introduction to making your own (Internet of Things) Thing
 
CreateYourOwnWorld 20110307
CreateYourOwnWorld 20110307CreateYourOwnWorld 20110307
CreateYourOwnWorld 20110307
 
UGC In Game : A Brief History and How We Bring It To Mobile | Zhuo Yue
UGC In Game : A Brief History and How We Bring It To Mobile | Zhuo YueUGC In Game : A Brief History and How We Bring It To Mobile | Zhuo Yue
UGC In Game : A Brief History and How We Bring It To Mobile | Zhuo Yue
 

More from Leif Bloomquist

Tracking the International Space Station with Commodore Computers
Tracking the International Space Station with Commodore ComputersTracking the International Space Station with Commodore Computers
Tracking the International Space Station with Commodore ComputersLeif Bloomquist
 
VIC MIDI (World of Commodore 2015)
VIC MIDI (World of Commodore 2015)VIC MIDI (World of Commodore 2015)
VIC MIDI (World of Commodore 2015)Leif Bloomquist
 
Wi-Fi Modem For the Commodore 64
Wi-Fi Modem For the Commodore 64Wi-Fi Modem For the Commodore 64
Wi-Fi Modem For the Commodore 64Leif Bloomquist
 
More Mad Science for the Commodore 64 (ECCC 2015)
More Mad Science for the Commodore 64 (ECCC 2015)More Mad Science for the Commodore 64 (ECCC 2015)
More Mad Science for the Commodore 64 (ECCC 2015)Leif Bloomquist
 
Marc Garneau Collegiate Institute
Marc Garneau Collegiate InstituteMarc Garneau Collegiate Institute
Marc Garneau Collegiate InstituteLeif Bloomquist
 
MIDI Mad Science and Mayhem (Soundhackers #5 "Controller Crazy")
MIDI Mad Science and Mayhem (Soundhackers #5 "Controller Crazy")MIDI Mad Science and Mayhem (Soundhackers #5 "Controller Crazy")
MIDI Mad Science and Mayhem (Soundhackers #5 "Controller Crazy")Leif Bloomquist
 
Motion-Sensing Gaming Glove for the Commodore 64
Motion-Sensing Gaming Glove for the Commodore 64Motion-Sensing Gaming Glove for the Commodore 64
Motion-Sensing Gaming Glove for the Commodore 64Leif Bloomquist
 
Wifi For the Commodore 64 (ECCC 2013)
Wifi For the Commodore 64 (ECCC 2013)Wifi For the Commodore 64 (ECCC 2013)
Wifi For the Commodore 64 (ECCC 2013)Leif Bloomquist
 
Software Requirements and Design Process in the Aerospace Industry
Software Requirements and Design Process in the Aerospace IndustrySoftware Requirements and Design Process in the Aerospace Industry
Software Requirements and Design Process in the Aerospace IndustryLeif Bloomquist
 
Real-Time Clock for Commodore PETs
Real-Time Clock for Commodore PETsReal-Time Clock for Commodore PETs
Real-Time Clock for Commodore PETsLeif Bloomquist
 
Internet Technology for the Commodore 64
Internet Technology for the Commodore 64Internet Technology for the Commodore 64
Internet Technology for the Commodore 64Leif Bloomquist
 
Commodore 64 Telnet BBS Server
Commodore 64 Telnet BBS ServerCommodore 64 Telnet BBS Server
Commodore 64 Telnet BBS ServerLeif Bloomquist
 
World of Commodore 2009 Posters
World of Commodore 2009 PostersWorld of Commodore 2009 Posters
World of Commodore 2009 PostersLeif Bloomquist
 
Retrocomputers as Hacking Platforms
Retrocomputers as Hacking PlatformsRetrocomputers as Hacking Platforms
Retrocomputers as Hacking PlatformsLeif Bloomquist
 
NetRacer for the Commodore 64
NetRacer for the Commodore 64NetRacer for the Commodore 64
NetRacer for the Commodore 64Leif Bloomquist
 
The Dancer From The Dance: Mapping Motion With Sound Via Radio Transmission
The Dancer From The Dance:  Mapping Motion With Sound Via Radio TransmissionThe Dancer From The Dance:  Mapping Motion With Sound Via Radio Transmission
The Dancer From The Dance: Mapping Motion With Sound Via Radio TransmissionLeif Bloomquist
 

More from Leif Bloomquist (20)

Tracking the International Space Station with Commodore Computers
Tracking the International Space Station with Commodore ComputersTracking the International Space Station with Commodore Computers
Tracking the International Space Station with Commodore Computers
 
Audible Objects
Audible ObjectsAudible Objects
Audible Objects
 
VIC MIDI (World of Commodore 2015)
VIC MIDI (World of Commodore 2015)VIC MIDI (World of Commodore 2015)
VIC MIDI (World of Commodore 2015)
 
Wi-Fi Modem For the Commodore 64
Wi-Fi Modem For the Commodore 64Wi-Fi Modem For the Commodore 64
Wi-Fi Modem For the Commodore 64
 
More Mad Science for the Commodore 64 (ECCC 2015)
More Mad Science for the Commodore 64 (ECCC 2015)More Mad Science for the Commodore 64 (ECCC 2015)
More Mad Science for the Commodore 64 (ECCC 2015)
 
Marc Garneau Collegiate Institute
Marc Garneau Collegiate InstituteMarc Garneau Collegiate Institute
Marc Garneau Collegiate Institute
 
MIDI Mad Science and Mayhem (Soundhackers #5 "Controller Crazy")
MIDI Mad Science and Mayhem (Soundhackers #5 "Controller Crazy")MIDI Mad Science and Mayhem (Soundhackers #5 "Controller Crazy")
MIDI Mad Science and Mayhem (Soundhackers #5 "Controller Crazy")
 
Motion-Sensing Gaming Glove for the Commodore 64
Motion-Sensing Gaming Glove for the Commodore 64Motion-Sensing Gaming Glove for the Commodore 64
Motion-Sensing Gaming Glove for the Commodore 64
 
Wifi For the Commodore 64 (ECCC 2013)
Wifi For the Commodore 64 (ECCC 2013)Wifi For the Commodore 64 (ECCC 2013)
Wifi For the Commodore 64 (ECCC 2013)
 
Software Requirements and Design Process in the Aerospace Industry
Software Requirements and Design Process in the Aerospace IndustrySoftware Requirements and Design Process in the Aerospace Industry
Software Requirements and Design Process in the Aerospace Industry
 
CANADA IN SPACE
CANADA IN SPACECANADA IN SPACE
CANADA IN SPACE
 
TCP/IP For Engineers
TCP/IP For EngineersTCP/IP For Engineers
TCP/IP For Engineers
 
Real-Time Clock for Commodore PETs
Real-Time Clock for Commodore PETsReal-Time Clock for Commodore PETs
Real-Time Clock for Commodore PETs
 
Internet Technology for the Commodore 64
Internet Technology for the Commodore 64Internet Technology for the Commodore 64
Internet Technology for the Commodore 64
 
Commodore 64 Telnet BBS Server
Commodore 64 Telnet BBS ServerCommodore 64 Telnet BBS Server
Commodore 64 Telnet BBS Server
 
Artillery Duel Network
Artillery Duel NetworkArtillery Duel Network
Artillery Duel Network
 
World of Commodore 2009 Posters
World of Commodore 2009 PostersWorld of Commodore 2009 Posters
World of Commodore 2009 Posters
 
Retrocomputers as Hacking Platforms
Retrocomputers as Hacking PlatformsRetrocomputers as Hacking Platforms
Retrocomputers as Hacking Platforms
 
NetRacer for the Commodore 64
NetRacer for the Commodore 64NetRacer for the Commodore 64
NetRacer for the Commodore 64
 
The Dancer From The Dance: Mapping Motion With Sound Via Radio Transmission
The Dancer From The Dance:  Mapping Motion With Sound Via Radio TransmissionThe Dancer From The Dance:  Mapping Motion With Sound Via Radio Transmission
The Dancer From The Dance: Mapping Motion With Sound Via Radio Transmission
 

Recently uploaded

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Recently uploaded (20)

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

Multiplayer Roguelike for the Commodore 64

  • 1. Multiplayer Roguelike for the Commodore 64 Leif Bloomquist Roguelike Celebration 2018 @ GitHub HQ San Francisco USA October 6-7
  • 2. A bit about me... • Born in Dauphin, Manitoba, Canada • Reside in Toronto, Ontario, Canada • Commodore 64 enthusiast since 1986 • Have been dabbling with technology, gaming, and music my entire life • “Day job” in software engineering at MDA, Canada’s leading space company
  • 3. Why the Commodore 64? • Best-selling computer of all time! (Guinness Book of World Records) • ~ 17 million units sold • (The Raspberry Pi is poised to overtake it) • Released in 1982: 64KB RAM, 1 MHz CPU, 16 Colors • Over 25,000 games for the platform • Fun to program on: Bare-metal, machine language, very well documented • Very active community in 2018: Gaming, collecting, developing, hardware hacking, modding….
  • 4. Why the Commodore 64 - My Story 1986
  • 5. Why the Commodore 64 - My Story 2016
  • 6. Roguelikes on the Commodore 64 • The Commodore 64 was known for its impressive game catalogue • Gamebase64.com lists 25,700 known games! • More than 200 are “Roguelikes” or variations (Adventure 2D, RPG 2D, etc)
  • 7. Networking on the Commodore 64? • A miracle occurred in 2002! • Adam Dunkels unveils “The Final Ethernet” – a prototype 10BaseT Ethernet “cartridge” for the Commodore 64 based on the Crystal Semiconductor CS8900 chip • Dunkels also releases the Contiki Operating System with numerous network demo apps, all open-source • Commercial+homebrew versions appear: RR-Net, FB-Net, 64NIC+, ETH64… • Plenty of tools – file transfer, terminals, chat, cross-development, web browsers, etc. • Where are the games? Photo Credits: Adam Dunkels and RETRO Innovations
  • 8. Evolution of C64 Multiplayer Games Artillery Duel Network (2007) • Two players • Peer-to-Peer • Turn-based NetRacer (2008) • Introduced a server • Static game world • Maximum 8 players • Real-time Vortex (2014) • Introduced server-controlled enemies • Dynamic game world (in work) • Massive game world (10,000 screens) • Unlimited players • Real-time This Game (2018) • Server-controlled enemies • Dynamic, interactive game world • Added third dimension (depth) • Object persistence • Unlimited players • Real-time • Source code for all of these is available on GitHub – use them as a basis for your own games!
  • 9. • Space Command by Dan “Ragooman” Ragonti and Jefferey “arkaxow” Brace • Eight-Player Simultaneous real-time “Artillery Duel”-type game, with C64 server! Evolution of C64 Multiplayer Games
  • 10. Next Challenge: A RogueLike • What if…the other characters in the dungeon were other players that you could… • Interact with? • Go on quests together with? • Team up with against monsters? • Work together with to solve puzzles? • Leave each other tools, clues, share equipment? • That would be cool!
  • 11. A `RogueLike` ? • Real-time (not turn-based) • One single, shared instance • Multiplayer • Object persistence • Monster persistence (with respawn) • “Multi-User Dungeon”
  • 12. Unique? Gameplay Mechanics • Carry items in Left hand and/or Right hand • Explicit Attack command • Double up swords or shields, or one of each • Other items to be carried: Potions, Keys, Gold, etc • No “inventory” (to encourage multiplayer) • Magic items that recharge and return to origin • Use or inspect items • Play with Joystick on C64! • Voice chat though Discord • ...more secrets to discover!
  • 13. Multiple Clients! Partially Implemented: • Commodore 64 • JavaScript (Browser) • Telnet • VT100/DEC Terminals Future: • Tandy CoCo? • Apple II? • VIC 20? • Atari? • More?
  • 14. Implementation Details • Server: Java 8 • C64 Client: 6502 assembler (ca65 cross-assembler) • IP65 network stack – RR-Net, 64NIC+ • UDP with simple ACKs Networking: • Screen streamed to clients on change, or @ 1 Hz
  • 15. Model-View-Controller Architecture Model View Controller - Data structure with all maps, object, and entity locations - Logic for what actions are allowed Entity Actions (Players, Monsters ) Representation of immediate area Translations (PETSCII, ASCII, ANSI, UTF-8, etc.) Players Server AI Socket Interface (TCP/UDP)
  • 16. Monster Behaviours: Finite State Machine • Tweaking the state transition conditions gives the monsters different behaviours and “personalities” Attacking Retreating Idle Chasing Wandering
  • 17. Game Levels • Mix of hand-edited and procedurally generated • Initial target is 10 levels, 1000 x 1000 tiles each (or more) • Demo server is 4 levels, 100 x 100 tiles each
  • 18. Demo Server! • Web: http://rogue.jammingsignal.com/rogue/ • Telnet: rogue.jammingsignal.com port 3006 • C64: Client bootloader as PRG file (download from Web site) • The game is winnable: What is the magic word?
  • 19. // TODO • The game still needs a name! • Different character types • Ranged weapons • A* search for monster movement • Vision algorithms/raytracing • Still many gameplay details to be worked out
  • 20. Want to Help? • Pixel artists • Level designers • Playtesters • Other clients • Gameplay • Balancing • …the game still needs a name! Open Source – (MIT License)! On GitHub of course:  https://github.com/LeifBloomquist/MultiRogueLike • Puzzle designers • Monster behaviours • Coders • Login system
  • 21. Thank You! • C64 Networking code: Per Olofsson, Jonno Downes • Playtesting: Andreas Bloomquist and Tiffany Antopolski • Graphics: “q0w/Atlantis” • Advice and motivation: Robin Harbron • /r/roguelikedev community on Reddit • David Youd and The MADE for hardware loans
  • 22. Toronto, Ontario Canada December 1-2, 2018 www.worldofcommodore.ca