OpenDiablo2

command module
v0.0.0-...-7f92c57 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 21, 2021 License: GPL-3.0 Imports: 2 Imported by: 0

README

NOTE

This project is currently being split into an Engine+Toolset (called Abyss Engine) and the game as a project (still called OpenDiablo 2). The new project repo is located here:

https://github.com/AbyssEngine/

OpenDiablo2

CircleCI Go Report Card GoDoc Discord Twitch Status Subreddit subscribers

Logo

Patreon


OpenDiablo2 is an ARPG game engine in the same vein of the 2000's games, and supports playing Diablo 2.

The engine is written in Go and is cross platform.

The project does not ship with the assets or content required to play Diablo 2. You must have a legally purchased copy of Diablo 2 and its expansion Lord of Destruction installed on your computer in order to run that game on this engine.

If you like to contribute to OpenDiablo2, please be so kind to read our Contribution Policy first.


Documentation

Stay awhile and listen ...

⚡ Project Info
  • 👉 Current Status 👈 - what you should focus on
  • Roadmap - Planning ahead
  • Design - High-level overview of the OpenDiablo2 org and its projects
  • FAQ - Common questions from new people to the project
⭐ For Users
  • Purchase - Buy the official game from Blizzard
  • MPQ - Locate the MPQ files
  • Install - Install OpenDiablo2 to your system (Linux/Windows/MacOS)
  • Run it - How to play the game
🔥 For Developers
  • Building - Instructions for building the project
  • Development - Instructions for developers who want to contribute
  • Profiling - Debug performance issues
  • Debugging - Common errors and pitfalls

Screenshots

Main Menu

Select Hero

Select Hero

Gameplay

Inventory Window

Game Panels

Additional Credits

  • Diablo2 Logo
    • Jose Pardilla (th3-prophetman)
  • DT1 File Specifications
  • Other Specifications and general info

Please note that this game is neither developed by, nor endorsed by Blizzard or its parent company Activision.

Diablo 2 and its content is ©2000 Blizzard Entertainment, Inc. All rights reserved. Diablo and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries.

ALL OTHER TRADEMARKS ARE THE PROPERTY OF THEIR RESPECTIVE OWNERS.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package d2app contains the OpenDiablo2 application shell
Package d2app contains the OpenDiablo2 application shell
Package d2common provides common stuff for all of the other high-level packages in the codebase
Package d2common provides common stuff for all of the other high-level packages in the codebase
d2cache
Package d2cache provides a generic caching implementation
Package d2cache provides a generic caching implementation
d2calculation
Package d2calculation contains code for calculation nodes.
Package d2calculation contains code for calculation nodes.
d2calculation/d2lexer
Package d2lexer contains the code for tokenizing calculation strings.
Package d2lexer contains the code for tokenizing calculation strings.
d2calculation/d2parser
Package d2parser contains the code for parsing calculation strings.
Package d2parser contains the code for parsing calculation strings.
d2data
Package d2data provides file compression utilities, video decoders, and file loaders for the txt files inside of diablo's mpq files
Package d2data provides file compression utilities, video decoders, and file loaders for the txt files inside of diablo's mpq files
d2data/d2compression
Package d2compression is used for decompressing WAV files.
Package d2compression is used for decompressing WAV files.
d2data/d2video
Package d2video provides a bink video decoder
Package d2video provides a bink video decoder
d2datautils
Package d2datautils is a utility package that provides helper functions/classes for parsing the original diablo2 files.
Package d2datautils is a utility package that provides helper functions/classes for parsing the original diablo2 files.
d2enum
Package d2enum provides enumerations used throughout the OpenDiablo2 codebase.
Package d2enum provides enumerations used throughout the OpenDiablo2 codebase.
d2fileformats/d2animdata
Package d2animdata provides a file parser for AnimData files.
Package d2animdata provides a file parser for AnimData files.
d2fileformats/d2cof
Package d2cof contains the logic for loading and processing COF files.
Package d2cof contains the logic for loading and processing COF files.
d2fileformats/d2dat
Package d2dat contains the logic for loading and processing DAT files.
Package d2dat contains the logic for loading and processing DAT files.
d2fileformats/d2dc6
Package d2dc6 contains the logic for loading and processing DC6 files.
Package d2dc6 contains the logic for loading and processing DC6 files.
d2fileformats/d2dcc
Package d2dcc contains the logic for loading and processing DCC files.
Package d2dcc contains the logic for loading and processing DCC files.
d2fileformats/d2ds1
Package d2ds1 provides functionality for loading/processing DS1 Files
Package d2ds1 provides functionality for loading/processing DS1 Files
d2fileformats/d2dt1
Package d2dt1 provides functionality for loading/processing DT1 files.
Package d2dt1 provides functionality for loading/processing DT1 files.
d2fileformats/d2font
Package d2font contains logic for loading and processing d2 fonts
Package d2font contains logic for loading and processing d2 fonts
d2fileformats/d2font/d2fontglyph
Package d2fontglyph represents a single font glyph
Package d2fontglyph represents a single font glyph
d2fileformats/d2mpq
Package d2mpq contains the functions for handling MPQ files.
Package d2mpq contains the functions for handling MPQ files.
d2fileformats/d2pl2
Package d2pl2 handles processing of PL2 palette files.
Package d2pl2 handles processing of PL2 palette files.
d2fileformats/d2tbl
Package d2tbl provides a file parser for tbl string table files
Package d2tbl provides a file parser for tbl string table files
d2fileformats/d2txt
Package d2txt provides a parser implementation for diablo TSV data files
Package d2txt provides a parser implementation for diablo TSV data files
d2geom
Package d2geom is a utility package for anything related to geometry
Package d2geom is a utility package for anything related to geometry
d2interface
Package d2interface defines interfaces for the OpenDiablo2 engine
Package d2interface defines interfaces for the OpenDiablo2 engine
d2loader
Package d2loader provides a file loader which works in terms of `Source`s and `Asset`s.
Package d2loader provides a file loader which works in terms of `Source`s and `Asset`s.
d2loader/asset
Package asset provides interfaces for Asset and Source
Package asset provides interfaces for Asset and Source
d2loader/asset/types
Package types provides an enumeration of Asset and Source types, as well as some utility functions
Package types provides an enumeration of Asset and Source types, as well as some utility functions
d2loader/filesystem
Package filesystem provides a filesystem Asset and Source implementation for d2loader
Package filesystem provides a filesystem Asset and Source implementation for d2loader
d2loader/mpq
Package mpq provides an MPQ Asset and Source implementation for d2loader
Package mpq provides an MPQ Asset and Source implementation for d2loader
d2math
Package d2math provides mathematical functions not included in Golang's standard math library.
Package d2math provides mathematical functions not included in Golang's standard math library.
d2math/d2vector
Package d2vector provides an implementation of a 2D Euclidean vector using float64 to store the two values.
Package d2vector provides an implementation of a 2D Euclidean vector using float64 to store the two values.
d2path
Package d2path is a utility package for functionality related to map entity pathing
Package d2path is a utility package for functionality related to map entity pathing
d2resource
Package d2resource stores the paths of the resources inside the mpq files.
Package d2resource stores the paths of the resources inside the mpq files.
d2util
Package d2util is a utility package for general-purpose functions used frequently throughout the codebase.
Package d2util is a utility package for general-purpose functions used frequently throughout the codebase.
d2util/assets
Package assets provides files for use by the debug utils
Package assets provides files for use by the debug utils
d2core
d2asset
Package d2asset has behaviors to load and save assets from disk.
Package d2asset has behaviors to load and save assets from disk.
d2audio
Package d2audio provides AudioProvider implementations
Package d2audio provides AudioProvider implementations
d2audio/ebiten
Package ebiten contains ebiten's implementation of the audio interface
Package ebiten contains ebiten's implementation of the audio interface
d2config
Package d2config contains configuration management for OpenDiablo2
Package d2config contains configuration management for OpenDiablo2
d2gui
Package d2gui provides higher-level ui component management
Package d2gui provides higher-level ui component management
d2hero
Package d2hero utilities for managing a hero state.
Package d2hero utilities for managing a hero state.
d2input
Package d2input provides an input manager
Package d2input provides an input manager
d2input/ebiten
Package ebiten provides graphics and input API to develop a 2D game.
Package ebiten provides graphics and input API to develop a 2D game.
d2inventory
Package d2inventory provides representations of player inventory
Package d2inventory provides representations of player inventory
d2item
Package d2item provides a generic interface for what the OpenDiablo2 engine considers to be an item.
Package d2item provides a generic interface for what the OpenDiablo2 engine considers to be an item.
d2item/diablo2item
Package diablo2item provides the Diablo 2 implementation of items for the OpenDiablo2 interfaces
Package diablo2item provides the Diablo 2 implementation of items for the OpenDiablo2 interfaces
d2map/d2mapengine
Package d2mapengine provides a map engine, something that can place diablo tile data onto a plane.
Package d2mapengine provides a map engine, something that can place diablo tile data onto a plane.
d2map/d2mapentity
Package d2mapentity provides representations of map entities Package d2mapentity implements map entities
Package d2mapentity provides representations of map entities Package d2mapentity implements map entities
d2map/d2mapgen
Package d2mapgen provides map generator implementations for use with the map engine.
Package d2mapgen provides map generator implementations for use with the map engine.
d2map/d2mapgen/d2wilderness
Package d2wilderness provides an enumeration of wilderness types
Package d2wilderness provides an enumeration of wilderness types
d2map/d2maprenderer
Package d2maprenderer provides a renderer for the map engine
Package d2maprenderer provides a renderer for the map engine
d2map/d2mapstamp
Package d2mapstamp provides a representation of a preset map which can be used "like a stamp" by the map engine
Package d2mapstamp provides a representation of a preset map which can be used "like a stamp" by the map engine
d2records
Package d2records provides a RecordManager implementation which is used to parse the various txt files from the d2 mpq archives.
Package d2records provides a RecordManager implementation which is used to parse the various txt files from the d2 mpq archives.
d2render/ebiten
Package ebiten provides a renderer implementation using Ebiten
Package ebiten provides a renderer implementation using Ebiten
d2screen
Package d2screen provides a means of defining and transitioning between game screens
Package d2screen provides a means of defining and transitioning between game screens
d2stats
Package d2stats provides item/skill/character stats functionality
Package d2stats provides item/skill/character stats functionality
d2stats/diablo2stats
Package diablo2stats is the Diablo 2 stats implementation
Package diablo2stats is the Diablo 2 stats implementation
d2term
Package d2term provides a in-game terminal that allows executing custom commands for debugging
Package d2term provides a in-game terminal that allows executing custom commands for debugging
d2ui
Package d2ui provides ui elements like buttons, scrollbars, checkboxes, text labels, etc.
Package d2ui provides ui elements like buttons, scrollbars, checkboxes, text labels, etc.
d2game
d2gamescreen
Package d2gamescreen is where the game screens are defined Package d2gamescreen contains the screens
Package d2gamescreen is where the game screens are defined Package d2gamescreen contains the screens
d2player
Package d2player contains the information necessary for managing players
Package d2player contains the information necessary for managing players
Package d2networking provides client and server implementations for OpenDiablo2.
Package d2networking provides client and server implementations for OpenDiablo2.
d2client
Package d2client provides client side connection, map and entity management.
Package d2client provides client side connection, map and entity management.
d2client/d2clientconnectiontype
Package d2clientconnectiontype provides types for client connections
Package d2clientconnectiontype provides types for client connections
d2client/d2localclient
Package d2localclient facilitates communication between a local client and server.
Package d2localclient facilitates communication between a local client and server.
d2client/d2remoteclient
Package d2remoteclient facilitates communication between a remote client and server.
Package d2remoteclient facilitates communication between a remote client and server.
d2netpacket
Package d2netpacket provides all of the different types of packets
Package d2netpacket provides all of the different types of packets
d2netpacket/d2netpackettype
Package d2netpackettype defines types which are encoded to JSON and sent in network packet payloads.
Package d2netpackettype defines types which are encoded to JSON and sent in network packet payloads.
d2server
Package d2server provides connection management and client synchronization.
Package d2server provides connection management and client synchronization.
d2server/d2tcpclientconnection
Package d2tcpclientconnection provides a TCP protocol implementation of a client connection
Package d2tcpclientconnection provides a TCP protocol implementation of a client connection
d2server/d2udpclientconnection
Package d2udpclientconnection provides an implementation of a UDP client connection with a game state.
Package d2udpclientconnection provides an implementation of a UDP client connection with a game state.
Package d2script provides a virtual machine for interpretting scripts
Package d2script provides a virtual machine for interpretting scripts
Package d2thread is a package graciously taken from https://github.com/faiface/mainthread
Package d2thread is a package graciously taken from https://github.com/faiface/mainthread
utils
extract-mpq
This command line utility provides a way to extract mpq files.
This command line utility provides a way to extract mpq files.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL