Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
camgunz committed Feb 15, 2017
1 parent 49d9bed commit a71d774
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 29 deletions.
43 changes: 17 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,33 @@
# D2K

---

D2K is a fork of [PrBoom+](http://prboom-plus.sourceforge.net) with several
lofty goals.

Maintain Compatibility
----------------------

One of the many strengths of PrBoom+ is its compatibility with past versions of
Doom and Boom. D2K will maintain this compatibility, and will use a new
compatibility testing framework to guard against regressions.
D2K maintains the PrBoom+'s commitment to compatibility, using a compatibility
testing framework to guard against regressions.

Enhance Network Play
--------------------

PrBoom+ only supports the original command-based synchronized networking, This
implementation has several limitations: only 4 players may play together,
players cannot join an in-progress game, game modes are hard-coded, and one
player's lag lags the whole group.

D2K will replace this implementation with new netcode based on game saves,
using delta compression to only send changes over the wire -- very similar to
the Quake 3 architecture. In line with current client/server Doom ports, the 4
player limit will be lifted and users will be able to spectate games without
playing in them.
D2K features enhanced client/server network play inspired by the Quake 3
networking model. Compared with the original, games no longer pause when one
player lags and players can join in-progress games. We also plan to lift the 4
player limit, and to add modern multiplayer features like spectators and
scripted game modes.

Add Extensibility via Scripting
-------------------------------

D2K is scriptable with [https://www.lua.org](Lua), a language used by dozens if
not hundreds of other games including World of Warcraft and Garry's Mod.

Doom's behavior and assets are hardcoded, making it difficult to extend the
engine with new capabilities. ACS, DECORATE, EDF and ExtraData attempt to
solve this problem, but all leave much to be desired.

A scripting language would be much more powerful here. D2K will move behavior
and assets into a scripting language, allowing modders full control over the
engine. It is extremely likely that this language will be Lua.
solve this problem, but all leave much to be desired. D2K will move behavior
and assets into Lua, allowing modders full control over the engine.

Web Play
--------
Expand All @@ -49,17 +41,16 @@ web. Current major contending implementations are:
Add Console and Customizable HUD Widgets
-----------

PrBoom+ currently has no console, and its HUD widgets are hardcoded. D2K will
change both of these things via scripting.
D2K features a console and a fully scriptable HUD, and can be scripted via the
console.

Modernize Renderer
------------------

D2K will convert the renderer from the fixed-function pipeline to the
programmable pipeline. In addition, D2K will upgrade the baseline OpenGL
support necessary to run, requiring support for OpenGL 2.0. Deprecated
features, such as paletted textures, will be removed and functionality
dependent on them will be reimplemented.
programmable pipeline and require support for OpenGL 2.0. Deprecated features
such as paletted textures will be removed and functionality dependent on them
will be reimplemented.

Add Modern Features and Compatibility
-------------------------------------
Expand Down
10 changes: 7 additions & 3 deletions TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
1. Fix bugs:
- Sometimes the server doesn't call `G_WorldDone` when `gameaction` is set to
`ga_worlddone`; something sets it back to `ga_nothing` first.
- It looks this might also set `GS_FINALE`
- And also it prevents the server from sending `NM_FULLSTATE` to clients
- Nothing displays in console
- Checked, (probably) not a scripting bug
- Console and messages widget should render during intermission
Expand All @@ -23,7 +25,7 @@
1. Test/Fix resolution switching
- Probably have to override `:reset` in widgets to update a bunch of stuff

:: Proto Done Here ::
:::: Proto Release Here ::::

1. Add spectators
- This is essentially reworking the logic between `playeringame`, `players`,
Expand All @@ -33,7 +35,7 @@

1. Remove 4 player restriction

:: Alpha Done Here ::
:::: Alpha Release Here ::::

---

Expand Down Expand Up @@ -72,6 +74,8 @@
huge file (or a file from a slow server); libcurl ought to make this
pretty easy

:::: Beta Release Here ::::

1. Add 3D physics

1. Add ZDoom physics
Expand All @@ -93,7 +97,7 @@

1. Add announcer

:: Suitable For DEATHMATCH Here ::
:::: Version 1 - DEATHMATCH Capable :::

1. Add slopes

Expand Down

0 comments on commit a71d774

Please sign in to comment.