Skip to content

Commit

Permalink
Clean up, set up CI and README
Browse files Browse the repository at this point in the history
  • Loading branch information
NoahStolk committed Oct 7, 2023
1 parent f804f28 commit 52ddded
Show file tree
Hide file tree
Showing 12 changed files with 106 additions and 344 deletions.
3 changes: 0 additions & 3 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ insert_final_newline = true
indent_style = space
indent_size = 2

[*.fs]
indent_style = space

[*.cs]
indent_size = 4
trim_trailing_whitespace = true
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: nuget
directory: "/src"
schedule:
interval: daily
23 changes: 23 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Set up dotnet
uses: actions/setup-dotnet@v1
with:
dotnet-version: '7.0.401'
include-prerelease: false
- name: Checkout
uses: actions/checkout@v2
- name: Build
run: dotnet build src/DevilDaggersInfo.Tools.sln -c Release
- name: Test
run: dotnet test src/DevilDaggersInfo.Tools.sln -c Release --no-build
27 changes: 0 additions & 27 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -260,36 +260,9 @@ paket-files/
__pycache__/
*.pyc

# Minified content
*site.min.css
*site.min.js

# App settings
appsettings.json
appsettings.Development.json

# Database backups
database-exports/

# Content
*/**/DevilDaggersInfo.Web.Server/Data/CustomEntryReplays
*/**/DevilDaggersInfo.Web.Server/Data/LeaderboardHistory
*/**/DevilDaggersInfo.Web.Server/Data/LeaderboardStatistics
*/**/DevilDaggersInfo.Web.Server/Data/Mods
*/**/DevilDaggersInfo.Web.Server/Data/ModArchiveCache
*/**/DevilDaggersInfo.Web.Server/Data/ModScreenshots
*/**/DevilDaggersInfo.Web.Server/Data/ResponseTimes
*/**/DevilDaggersInfo.Web.Server/Data/Tools/*.zip

# Tailwind
tailwind.min.css
tailwind.css.map

# Data protection
*/**/DevilDaggersInfo.Web.Server/keys

# OBJ mesh files for unit tests
!*.obj

# Value file
*/**/Blobs/Value.bin
90 changes: 15 additions & 75 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,93 +1,32 @@
# DevilDaggersInfo
# ddinfo-tools

DevilDaggersInfo consists of a website, web server, and various tools created specifically for the game Devil Daggers.

The purpose of the project is to make it easier for players to play and understand the game, and to provide a platform for the community to create and share custom spawnsets (levels), mods, participate in custom leaderboards, and a lot more.
The DevilDaggersInfo project offers cross-platform tools to practice and mod the game, and to connect to custom leaderboards.

While the project provides many ways to practice and modify the game, it does **not** allow you to cheat, or encourage cheating at all. You are also asked to not redistribute the game assets, and only use them for modding purposes.

Most of these features have been discussed with the community and the developer of Devil Daggers (Sorath), some of which have been done in collaboration.

**This repository contains the entire DevilDaggersInfo project, which consists of many features.**

## [devildaggers.info](https://devildaggers.info/) website

![Home page](images/home-page.png)

### Features

- Viewing and searching the official leaderboards
- Viewing leaderboard data for any player
- Browsing leaderboard history, statistics, world record progression, player settings, and more
- Displaying custom spawnsets (levels) made by the community
- Spawns list and accurate end loop timings
- Accurate arena previewer with shrink slider
- Displaying mods made by the community
- Mods can be downloaded directly from the website
- Asset types and information about the mod is displayed
- Viewing custom leaderboards for spawnsets
- Data for custom scores can be viewed, as well as replay statistics in the form of graphs
- Custom replays can be downloaded directly from the website
- Guides on how to use and create custom spawnsets and mods
- Accurate wiki pages
- Enemy types
- List of spawns
- Hand upgrades
- Dagger types
- List of game assets (the actual assets are not included)
- Editing your player settings (if you have an account)
- Browsing the APIs
- An admin portal for moderators to upload spawnsets and mods, manage custom leaderboards and player data, and more

## Web server

The web server is responsible for serving the website and providing various APIs used by the website and the tools, but also by other projects, such as DDLIVE, ddstats-rust, Clubber, and Devil Daggers itself.

### Features

- Integration with the official leaderboards
- Keeping track of leaderboard history, statistics, and world record progression for the official leaderboards
- Storing player settings data that can be maintained by the player themselves if they have an account
- Hosting custom spawnsets
- Hosting custom leaderboards
- Supports every game mode in the game (Survival, Time Attack, Race)
- Allows sorting leaderboards by not just time, but various other statistics as well, such as:
- Gems collected/despawned/eaten
- Enemies killed/alive
- Homing stored/eaten
- Criteria system that allows for more interesting ways to play spawnsets, such as leaderboards where the player is not allowed to kill certain enemies
- Hosting replays for every score
- Hosting graph data for every score
- Hosting mods
- Providing APIs used by the website, as well as APIs for:
- The tools app
- The deprecated Windows-only tools
- [DDSE 2](https://github.com/NoahStolk/DevilDaggersSurvivalEditor)
- [DDAE 1](https://github.com/NoahStolk/DevilDaggersAssetEditor)
- [ddstats-rust](https://github.com/lsaa/ddstats-rust)
- [DDLIVE](https://github.com/rotisseriechicken/DDLIVE)
- [Clubber](https://github.com/Spoertm/Clubber)
- Devil Daggers itself

## Tools

### Features

The new tools are currently in development. The new tools app is a complete rewrite of the old Windows-only tools, combined into one app, and will be cross-platform.

#### Custom leaderboards client
(Note: This code was originally part of the [DevilDaggersInfo](https://github.com/NoahStolk/DevilDaggersInfo) repository. It was moved to a separate repository on October 7th, 2023.)

## Features

The new tools are currently in development. The new app is a complete rewrite of the old Windows-only tools, combined into one app. It currently runs on Windows and Linux (some features are still missing on Linux for now).

### Custom leaderboards client

![Custom leaderboards](images/custom-leaderboards.png)

#### Spawnset (level) editor including a 3D editor
### Spawnset (level) editor including a 3D editor

![Spawnset editor](images/spawnset-editor-1.png)
![Spawnset editor](images/spawnset-editor-2.png)

#### Practice mode
### Practice mode

![Practice](images/practice.png)

### Planned features

These features are planned or in development:

- Replay previewer including input visualization
Expand All @@ -104,10 +43,11 @@ These features are planned but may not be possible to implement:
## Other repositories

- [ddinfo-core](https://github.com/NoahStolk/ddinfo-core/) - core libraries for parsing spawnsets, mods, replays, and more
- [ddinfo-web](https://github.com/NoahStolk/ddinfo-web/) - website and web server at [devildaggers.info](https://devildaggers.info/)

### Deprecated tools

The original apps are not included in this repository. Visit these repositories:
The original tools are not included in this repository. Visit these repositories:

- [Survival Editor](https://github.com/NoahStolk/DevilDaggersSurvivalEditor) - old Windows-only spawnset editor
- [Custom Leaderboards](https://github.com/NoahStolk/DevilDaggersCustomLeaderboards) - old Windows-only custom leaderboards client (no longer works)
Expand Down
Binary file added images/custom-leaderboards.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/practice.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/spawnset-editor-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/spawnset-editor-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
62 changes: 62 additions & 0 deletions src/DevilDaggersInfo.Tools.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31606.5
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevilDaggersInfo.App", "app\DevilDaggersInfo.App\DevilDaggersInfo.App.csproj", "{D5903E30-558A-40DF-B7A6-E7E1D014E2A9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DevilDaggersInfo.App.Core.GameMemory", "app\DevilDaggersInfo.App.Core.GameMemory\DevilDaggersInfo.App.Core.GameMemory.csproj", "{F8DCF34B-4EF0-43AB-B578-D18B1417BD93}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DevilDaggersInfo.App.Core.NativeInterface", "app\DevilDaggersInfo.App.Core.NativeInterface\DevilDaggersInfo.App.Core.NativeInterface.csproj", "{6D7EE612-55E1-4609-ADA1-B612193232AD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevilDaggersInfo.App.Engine", "app\DevilDaggersInfo.App.Engine\DevilDaggersInfo.App.Engine.csproj", "{B84DBB9B-1C43-4F6C-8C19-B028F3B7C2D3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevilDaggersInfo.App.Engine.ImGui", "app\DevilDaggersInfo.App.Engine.ImGui\DevilDaggersInfo.App.Engine.ImGui.csproj", "{8127EC4B-2698-4593-AF1F-AB0DDCF3B0D1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DevilDaggersInfo.Cmd.CreateReplay", "cmd\DevilDaggersInfo.Cmd.CreateReplay\DevilDaggersInfo.Cmd.CreateReplay.csproj", "{6BEED33C-F8F8-4884-85A3-FDD48C7C63E8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevilDaggersInfo.DevUtil.DistributeApp", "dev-util\DevilDaggersInfo.DevUtil.DistributeApp\DevilDaggersInfo.DevUtil.DistributeApp.csproj", "{884E21EB-C4F0-4E80-9BDB-E8A28171BAF0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F8DCF34B-4EF0-43AB-B578-D18B1417BD93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F8DCF34B-4EF0-43AB-B578-D18B1417BD93}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F8DCF34B-4EF0-43AB-B578-D18B1417BD93}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F8DCF34B-4EF0-43AB-B578-D18B1417BD93}.Release|Any CPU.Build.0 = Release|Any CPU
{6D7EE612-55E1-4609-ADA1-B612193232AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6D7EE612-55E1-4609-ADA1-B612193232AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6D7EE612-55E1-4609-ADA1-B612193232AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6D7EE612-55E1-4609-ADA1-B612193232AD}.Release|Any CPU.Build.0 = Release|Any CPU
{6BEED33C-F8F8-4884-85A3-FDD48C7C63E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6BEED33C-F8F8-4884-85A3-FDD48C7C63E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6BEED33C-F8F8-4884-85A3-FDD48C7C63E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6BEED33C-F8F8-4884-85A3-FDD48C7C63E8}.Release|Any CPU.Build.0 = Release|Any CPU
{D5903E30-558A-40DF-B7A6-E7E1D014E2A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D5903E30-558A-40DF-B7A6-E7E1D014E2A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D5903E30-558A-40DF-B7A6-E7E1D014E2A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D5903E30-558A-40DF-B7A6-E7E1D014E2A9}.Release|Any CPU.Build.0 = Release|Any CPU
{884E21EB-C4F0-4E80-9BDB-E8A28171BAF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{884E21EB-C4F0-4E80-9BDB-E8A28171BAF0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{884E21EB-C4F0-4E80-9BDB-E8A28171BAF0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{884E21EB-C4F0-4E80-9BDB-E8A28171BAF0}.Release|Any CPU.Build.0 = Release|Any CPU
{B84DBB9B-1C43-4F6C-8C19-B028F3B7C2D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B84DBB9B-1C43-4F6C-8C19-B028F3B7C2D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B84DBB9B-1C43-4F6C-8C19-B028F3B7C2D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B84DBB9B-1C43-4F6C-8C19-B028F3B7C2D3}.Release|Any CPU.Build.0 = Release|Any CPU
{8127EC4B-2698-4593-AF1F-AB0DDCF3B0D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8127EC4B-2698-4593-AF1F-AB0DDCF3B0D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8127EC4B-2698-4593-AF1F-AB0DDCF3B0D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8127EC4B-2698-4593-AF1F-AB0DDCF3B0D1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E27EC676-81BF-4099-BFC9-20E860CE83A5}
EndGlobalSection
EndGlobal
Loading

0 comments on commit 52ddded

Please sign in to comment.