aboutsummaryrefslogtreecommitdiff
path: root/muswd.c
Commit message (Collapse)AuthorAgeFilesLines
* got rid of yield(2) abuse.HEADfrontrodri2023-10-111-3/+2
|
* use a queue for player input to dampen race conditions between the netcode ↵rodri2023-06-051-1/+5
| | | | and the sims.
* put the player routines in their own unit.rodri2023-06-051-4/+6
| | | | fixed an issue with the threadsim routine that would cause re-stepping of all the previous parties after dissolving one of them due to one of the players quitting.
* improvements to show a bullet's explosion upon ttl consumption.rodri2023-05-221-2/+2
| | | | implemented a vfx subsystem to handle localized, async animations.
* cleanup and comment improvements.rodri2023-05-141-2/+2
|
* handle player quits gracefully.rodri2023-05-051-4/+15
| | | | also fixed a bug whereby a player would never be freed if no party was happening, and another one where deleting a player from the player queue would cause a nil pointer deref.
* bullets aren't fired unless the server says otherwise. also don't draw ↵rodri2023-04-251-1/+1
| | | | bullets that weren't fired.
* only send/recv the fired bullets on simstate packets.rodri2023-04-231-3/+12
|
* added a new pulsar animation for the star sprite.rodri2023-04-091-3/+3
| | | | | wrote a little description for the manpage. generalized the drawconnecting() procedure into a drawprogressing() one that takes an arbitrary, nul-terminated string as input.
* implemented client reconnection loop.rodri2023-03-041-9/+17
| | | | currently not working. there seems to be a problem with 9front's udp stack. needs investigation.
* implemented toroidal warping. set a default font.rodri2023-03-031-1/+3
|
* implemented optional ghosting for the clients.rodri2023-02-251-1/+2
|
* made adjustments to the particles's thrust and player input processing.rodri2023-02-231-5/+7
|
* (inefficiently) send bullets state and paint them.rodri2023-02-231-4/+14
|
* take player input into account when stepping the simulations.rodri2023-02-221-13/+41
|
* take the packet seq and ack into account during connection setup. added a ↵rodri2023-02-211-24/+75
| | | | player queue to keep clients around waiting for a party.
* implemented a keep alive mechanism.rodri2023-02-161-3/+32
| | | | | also changed the newframe fn to take a Udphdr* instead of a Frame*. the verifyframe fn now returns 1 if correct 0 otherwise.
* implemented per-packet HMAC to avoid MITM tampering.rodri2023-02-111-14/+21
|
* implemented connection establishment with per client DHX.rodri2023-02-111-27/+128
|
* implemented a packet processing pipeline. got rid of Lobby. began ↵rodri2023-02-091-47/+81
| | | | development of a network protocol.
* use libgeometry from the system. got rid of global `theparty`. wrote a ↵rodri2023-01-311-3/+4
| | | | little man page draft.
* some corrections to frame processing and nomenclatures.rodri2022-06-151-10/+3
|
* implemented a custom PDU/frame structure on top of UDP for game networking.rodri2022-06-111-11/+18
|
* show the ports on the debugging output when receiving.rodri2022-06-081-2/+8
|
* changed the transport from tcp to udp. got rid of some unnecessary ↵rodri2022-06-081-60/+26
| | | | connection management and party setup code—needs further refactoring. fixed some nomenclatures.
* got rid of GameState.rodri2022-06-031-19/+1
|
* implemented keyboard key send/recv procedures.rodri2021-08-041-3/+23
|
* began building a universe for every party.rodri2021-08-011-10/+29
| | | | | | | get rid of the notes file. i already keep them on paper. adapted the client to use an rframe for drawing. implemented some VModel methods for testing. FPS2MS → HZ2MS. it makes more sense and is shorter.
* incorporated libgeometry into the project.rodri2021-07-291-5/+7
| | | | | | transitioned the integrator from scalar to vector-based. added a packing procedure for Point2. created the structure to model bullets.
* made the client window size immutable.rodri2021-07-291-1/+1
| | | | | added some dev notes to a file. renamed Lobby.healthcheck to Lobby.purge, which makes more sense.
* brought the Sprite struct for future animations.rodri2021-07-281-47/+41
| | | | | | | | | | | implemented per-party game state and dynamics. now the state is broadcast after integration, not before. fixed a bug in the broadcast procedure where it would keep referencing an already freed Party and its players. implemented a proper Keymap the user will be able to configure. added mkfile rules to manage installation and dependencies. defined a ton of structs in dat.h for new game objects. started work on a general vector model abstraction to define ship `skins'. removed some debug clauses we no longer need. fixed some other ones.
* first stages of a full-featured client.rodri2021-07-271-2/+4
|
* added a #s command interface for monitoring and control.rodri2021-07-251-0/+64
|
* implemented parties to hold PvP match info.rodri2021-07-251-20/+55
| | | | | | started serializing game state through the wire. made some major changes to the Lobby struct, plus the ability to check the health of every connection. added some more debug statements, did some cleanup and put more checks.
* implemented a lobby for users waiting to join a party.rodri2021-07-231-17/+13
| | | | brought the pack/unpack procedures from ssh(1).
* implement a primitive VLA to keep connection state.rodri2021-07-211-6/+26
|
* implemented very basic server broadcasting.rodri2021-07-211-7/+24
| | | | | got rid of unnecessary (at least for now) code. brought some e-funcs.
* initial commit.rodri2021-07-211-0/+118
implemented basic server loop, with separate threads to handle connections and run the simulations.