aboutsummaryrefslogtreecommitdiff
path: root/musw.c
Commit message (Collapse)AuthorAgeFilesLines
* got rid of yield(2) abuse.HEADfrontrodri2023-10-111-3/+2
|
* put the player routines in their own unit.rodri2023-06-051-2/+4
| | | | 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.
* cleaned up the client game loop.rodri2023-05-281-42/+48
|
* integrated cmixer for sound and sfx.rodri2023-05-231-0/+30
| | | | fixed the vfx drawing procedure so that it treats p as the center when rendering the sprite.
* improvements to show a bullet's explosion upon ttl consumption.rodri2023-05-221-6/+43
| | | | implemented a vfx subsystem to handle localized, async animations.
* cleanup and comment improvements.rodri2023-05-141-4/+9
|
* handle player quits gracefully.rodri2023-05-051-0/+35
| | | | 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/+9
| | | | bullets that weren't fired.
* only send/recv the fired bullets on simstate packets.rodri2023-04-231-5/+15
|
* now using PNG files instead of image(6)s. bullet TTL taken into account ↵rodri2023-04-131-3/+4
| | | | during stepping.
* added a new pulsar animation for the star sprite.rodri2023-04-091-7/+6
| | | | | 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 states to represent game scene stages.rodri2023-03-081-11/+73
| | | | added an intro as well.
* implemented client reconnection loop.rodri2023-03-041-12/+13
| | | | 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/+2
|
* implemented optional ghosting for the clients.rodri2023-02-251-14/+63
|
* (inefficiently) send bullets state and paint them.rodri2023-02-231-7/+63
|
* take the packet seq and ack into account during connection setup. added a ↵rodri2023-02-211-6/+24
| | | | player queue to keep clients around waiting for a party.
* implemented a keep alive mechanism.rodri2023-02-161-3/+3
| | | | | 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-10/+19
|
* implemented connection establishment with per client DHX.rodri2023-02-111-16/+92
|
* implemented a packet processing pipeline. got rid of Lobby. began ↵rodri2023-02-091-29/+57
| | | | development of a network protocol.
* vmodeled: plot lines and curves and save them to a file on exit.rodri2023-02-031-1/+1
|
* use libgeometry from the system. got rid of global `theparty`. wrote a ↵rodri2023-01-311-1/+1
| | | | little man page draft.
* some corrections to frame processing and nomenclatures.rodri2022-06-151-10/+14
|
* implemented a custom PDU/frame structure on top of UDP for game networking.rodri2022-06-111-1/+13
|
* changed the transport from tcp to udp. got rid of some unnecessary ↵rodri2022-06-081-1/+3
| | | | connection management and party setup code—needs further refactoring. fixed some nomenclatures.
* got rid of GameState.rodri2022-06-031-11/+3
|
* add a default sky map from fourmilab.ch.rodri2021-08-041-1/+22
|
* implemented keyboard key send/recv procedures.rodri2021-08-041-1/+23
|
* added an sprite for the Earth.rodri2021-08-011-1/+12
|
* randomly position the ships, facing each other.rodri2021-08-011-1/+1
|
* began building a universe for every party.rodri2021-08-011-11/+133
| | | | | | | 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-4/+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/+14
| | | | | 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-20/+23
| | | | | | | | | | | 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-19/+143
|
* implemented parties to hold PvP match info.rodri2021-07-251-4/+14
| | | | | | 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.
* some corrections.rodri2021-07-231-2/+2
|
* implemented very basic server broadcasting.rodri2021-07-211-0/+67
| | | | | got rid of unnecessary (at least for now) code. brought some e-funcs.
* initial commit.rodri2021-07-211-0/+0
implemented basic server loop, with separate threads to handle connections and run the simulations.