-
Add a preliminary master server advertising implementation
-
Fix bugs:
- Sometimes the server doesn't call
G_WorldDone
whengameaction
is set toga_worlddone
; something sets it back toga_nothing
first.- It looks this might also set
GS_FINALE
- And also it prevents the server from sending a
gameaction
update andNM_FULLSTATE
to clients
- It looks this might also set
- Windows crashes pretty early on
- Currently nothing clears or renders when you switch to vidingl from OpenGL
- Also I think OpenGL mode doesn't refresh properly (console sticks)
-
Add a server message sound (just use radio/tink?)
-
Get rid of 'widget'
- Basic UI elements become 'box'
- HUD elements become 'element'
- UI scaling
- Make UI scaling optional
- Wrapping doesn't wrap unbroken lines
- May be nothing I can do about this
:::: Proto Release Here ::::
- Move cheats to scripting
- ...so they work
- Need a lot of binding support
- UI Enhancements
- I think padding should be proportional to the widget's size instead of the parent widget's size
- UI Bugs
- FPS sinks when console scrollback fills up
- Messaging
- Specifically don't bug the console on bad markup; test it first
P_Printf
doesn't work in server mode
-
Test ECI again
-
Lift artificial limit on players
- bitmaps, basically
- Add spectators
- This is essentially reworking the logic between
playeringame
,players
, and walkcamera/spycam - Move all the
SV_*
calls tonetpeer_t
instead ofplayernum
; eventually these will apply to peers that are just spectators - Probably also take this opportunity to remove server-as-player hack
- Use a camera in non-headless mode (add non-headless mode???)
- Remove 4 player restriction
:::: Alpha Release Here ::::
- Move configuration into scripting
- Refactor screens
- From what I can tell:
- screens[0] is the foreground for HUD, status bar, finale, and menu
- screens[1] is kept blank to erase screens[0] ...although it looks like everything in r_draw.c uses it...
- screens[2] and screens[3] are used for the screen wipe (src and dst respectively)
- screens[4] is the STBAR background
V_CopyRect
V_FillFlat
V_FillPatch
V_DrawBackground
V_DrawMemPatch
V_DrawNumPatch
V_DrawLine
- Uses screen[0] always, via PUTDOT ->
V_PlotPixel(0, ...)
- Uses screen[0] always, via PUTDOT ->
V_FillRect
V_PlotPixel
- From what I can tell:
- Add maplist
- Add
map
command
- Add RCON
- Need a way to intercept console I/O
- Build master server
- Create a server description specification in JSON
- Add WAD downloading
- cURL
- the client should do this between frames in case it needs to download a huge file (or a file from a slow server); libcurl ought to make this pretty easy
:::: Beta Release Here ::::
-
Add 3D physics
-
Add ZDoom physics
- Including ZDoom SSG spread
-
Add SNDCURVE lump support
-
Improve PWO
- Probably this is just gonna be a script
- How to not send an arbitrary script to the server though...?
- Does it make sense to have scripting contexts per-client serverside?
- How to configure a script, since it can't be in
d2k_config.lua
? - There should maybe be a
local_config.lua
file that runs after config processing takes place, to modify and augment the loaded config
- C/S Demos
- serverside
- clientside
- Add announcer
:::: Version 1 - DEATHMATCH Capable :::
-
Add slopes
-
Add teams
-
Add Hexen map support
-
Add scripted game modes
:: Suitable For Competition Here ::
-
Add error codes to
n_proto
-
Servers shouldn't
quit
, they shouldshutdown
; also prevents accidentally running/quit
in the console instead of:quit
and closing the server.... -
Add auto-scroll to TextWidget
-
Update/Mirror dependencies somewhere
- It would be really cool to use the pacman/pkgbuild system and mirror source also
- Manually delta compress commands (serverside and clientside)
- bitmap:
index
changed = 1tic
changed = 2server_tic
changed = 4forward
changed = 8side
changed = 16angle
changed = 32buttons
changed = 64
- then deltas:
- All diffs are
char
except forangle
, which is ashort
- Effectively limits lag to 255 commands, which is way more than enough
- All diffs are
Hypothetically: { 4096, 4012, 4008, 50, 50, 180, 1 } // 17 bytes { 4097, 4013, 4008, 50, 50, 180, 1 } // 17 bytes // Total: 34
Becomes: { 4096, 4012, 4008, 50, 50, 180, 1 } // 17 bytes { 3, 1, 1} // 3 bytes // Total: 20, saved: 14
- Implement actor vectors
- Send movement start TIC
- x/y/z represent the start position at time of last velocity change
- More amenable to delta compression
- Easier to nudge projectiles
- Add projectile nudging
- Projectiles are currently predicted, thus they usually appear ahead of where they normally would
- Projectile nudging would spawn the projectile normally (i.e., right in front of the firing player) with a higher-than-normal velocity, and then adjust the velocity downwards based on the client's lag and a preselected function (curve)
- Remove software renderer
- See about implementing Doom lighting and 8-bit color using shaders
- UDMF
- ZIP/PK3 resource files
- Bots
- ACS Scripting
- DECORATE
- EDF
- ExtraData
- MAPINFO
- 3D floors
- 3D MixTex
- Portals
- Polyobjects
- Ambient Sounds
- Support for other ID Tech 1 games (Heretic, Hexen, etc.)