This website requires JavaScript.
1fdea3e454
Move client message processing into client agent
default
Tangent Wantwight
2021-02-13 22:23:24 -0500
b6c3c69777
Create struct for client agent
Tangent Wantwight
2021-02-13 21:46:35 -0500
3f6b55dcc4
Start breaking the handle-client task into its own module
Tangent Wantwight
2021-02-13 15:00:11 -0500
2c4753e1b9
Bump tokio/warp versions
Tangent Wantwight
2021-02-13 14:32:49 -0500
178309fb7d
Bump env_logger version
Tangent Wantwight
2021-02-13 12:19:01 -0500
76cde242bf
Try to keep XY locations integral
Tangent Wantwight
2020-12-31 14:55:36 -0500
1ef5565be1
Update dependencies
Tangent Wantwight
2020-11-06 12:52:28 -0500
f624148464
Switch to processing connections via unified message select-loop
Tangent Wantwight
2020-07-09 22:02:30 -0400
9b6c54900c
update plan
Tangent Wantwight
2020-07-05 17:20:32 -0400
82f1f81760
Adapt the socket in main without having to split it
Tangent Wantwight
2020-06-19 00:52:54 -0400
7a793cf2c6
Adapt to whatever host serves the client
Tangent Wantwight
2020-06-10 00:41:11 -0400
a499cb2064
Serve client files from server via RustEmbed, so they can be embedded for deployment.
Tangent Wantwight
2020-06-10 00:36:43 -0400
4391ad521d
Create space for multiple routes
Tangent Wantwight
2020-06-09 23:48:53 -0400
ea2770105a
Update input & state in response to client messages!
Tangent Wantwight
2020-06-08 22:58:42 -0400
334ecc6eaf
update player_id in sent-out SetState messages
Tangent Wantwight
2020-06-08 22:08:36 -0400
9fcbc42a41
Send input state out to clients every tick
Tangent Wantwight
2020-06-08 20:09:31 -0400
a16bd95c6a
Store input state for each player
Tangent Wantwight
2020-06-08 20:06:02 -0400
0c9e2e2a0e
Accurately inform each connected player of their player id
Tangent Wantwight
2020-06-08 19:56:48 -0400
a7dc49996f
Give the message structs friendlier field names on the Rust side, because Serde lets us do that
Tangent Wantwight
2020-06-08 19:50:56 -0400
c199e14435
Make the heartbeat task call the server's tick() method regularly. The plumbing to get the tick task a reference to a server handle is a bit ugly; some of the server methods should probably move to the handle impl instead.
Tangent Wantwight
2020-06-08 00:02:15 -0400
3f07748abd
Sync TICK_LENGTH constant between client & server
Tangent Wantwight
2020-06-07 01:56:06 -0400
d2fe79b55c
Spawn a heartbeat task while players are connected to the server, aborting it once they're off.
Tangent Wantwight
2020-06-05 16:46:51 -0400
9239c19cbe
Abort the "send to client" task when the websocket is closed
Tangent Wantwight
2020-06-03 00:50:12 -0400
dacb031443
Remove some generics & make some typedefs.
Tangent Wantwight
2020-05-30 20:08:02 -0400
eee34eb3ff
tidy up
Tangent Wantwight
2020-05-30 19:16:50 -0400
43babbbfab
Maintain state records for connected players
Tangent Wantwight
2020-05-30 16:10:55 -0400
750cfe1630
Create a PlayerId typedef, don't overload -1 for unassigned.
Tangent Wantwight
2020-05-26 23:32:28 -0400
764e4d85cf
Build out skeleton of server message processing flow
Tangent Wantwight
2020-05-25 23:38:18 -0400
48ab9547ed
Bizarre hack that seems to fix the type_length_limit error, but I'm not sure why
Tangent Wantwight
2020-05-25 23:24:55 -0400
319f082d53
move client logic into one async fn
Tangent Wantwight
2020-05-25 22:17:44 -0400
f83aab0c9e
Split "parsing" and "processing" phases of input stream
Tangent Wantwight
2020-05-25 20:06:50 -0400
2f64708e4e
tidy up main.rs
Tangent Wantwight
2020-05-25 18:35:01 -0400
eb7ea021b0
hide some generics that don't need to be generic
Tangent Wantwight
2020-05-24 23:14:25 -0400
03e4512839
Move greeting into its own function, tidy up error path.
Tangent Wantwight
2020-05-24 20:53:30 -0400
cf513ace26
Move HELO to actually come from the server
Tangent Wantwight
2020-05-23 14:24:49 -0400
3ac90e59b0
Move websocket handler into dedicated function
Tangent Wantwight
2020-05-22 22:50:28 -0400
f04822fcf0
only one client per page
Tangent Wantwight
2020-05-18 22:12:27 -0400
0fab0e8c56
Create Serde structs for messages
Tangent Wantwight
2020-05-18 20:53:28 -0400
e5c68b0c37
Fix prediction from null state to permit local prediction before server starts sending input.
Tangent Wantwight
2020-05-18 19:32:56 -0400
e9c73ae998
Implement connection to websocket server
Tangent Wantwight
2020-05-17 23:47:50 -0400
6491588223
Add proper "helo" message to protocol so client can be sure server is ready to receive input.
Tangent Wantwight
2020-05-17 23:39:28 -0400
9df57e4aa9
Tidy typings for client server-connection dependency injection
Tangent Wantwight
2020-05-17 23:17:39 -0400
9798687693
debug-log received websocket messages
Tangent Wantwight
2020-05-16 22:36:39 -0400
ca5bf65e9d
Change message type enum to serde-friendly strings; remove unused Ping message
Tangent Wantwight
2020-05-12 23:00:06 -0400
a22ca95d3d
Clarify error when unable to parse listen address
Tangent Wantwight
2020-05-11 08:59:23 -0400
d031061c41
Create stub server in Rust using Warp to handle websockets.
Tangent Wantwight
2020-05-10 20:06:20 -0400
5c9552fe49
lowercase folders for Rust convention compatibility
Tangent Wantwight
2020-05-10 18:47:03 -0400
c620e4c982
Reset state on client connection instead of as a special manipulation of the local server.
Tangent Wantwight
2020-05-09 22:08:22 -0400
7c06ab473d
Break up client & server message handling logic into their own functions for better readability.
Tangent Wantwight
2020-05-09 19:33:19 -0400
6427361d7b
Fix typing for server in index.ts
Tangent Wantwight
2020-05-09 19:25:50 -0400
44872c3d0e
avoid accidental js spamming the project
Tangent Wantwight
2020-05-09 19:25:39 -0400
c9f3a96662
tidy+update packages
Tangent Wantwight
2020-05-09 11:43:02 -0400
a8b5dea37a
Share one server instance between two client instances!
Tangent Wantwight
2020-05-02 21:20:54 -0400
c8589828c7
Replace the stub loopback server with a local, but multi-client server.
Tangent Wantwight
2020-05-02 21:14:15 -0400
633611056e
create "catchTalkback" callbag operator
Tangent Wantwight
2020-05-02 21:09:38 -0400
70946d450a
vendor some callbag utilities for better typings
Tangent Wantwight
2020-05-02 13:53:43 -0400
0726ed15f7
Add more callbag dependencies
Tangent Wantwight
2020-05-01 23:22:38 -0400
258c179887
split generics for local/full input types for now LoopbackServer still makes the assumption that GlobalInput = LocalInput[]
Tangent Wantwight
2020-05-01 22:51:21 -0400
743905cad4
Add notion of multiple connected players to lockstep protocol
Tangent Wantwight
2020-05-01 21:45:31 -0400
39018635cd
fill out more planned message types
Tangent Wantwight
2020-04-04 22:17:50 -0400
04f947e7a4
HMR stub
Tangent Wantwight
2020-04-04 21:48:50 -0400
264db31ac7
Refactor typings to enforce cloning hygiene, at expense of intrusive Component type
Tangent Wantwight
2020-04-04 18:52:25 -0400
33eb28e338
use callbag-pipe
Tangent Wantwight
2020-04-03 18:35:23 -0400
48940e1073
Plan update
Tangent Wantwight
2020-03-26 00:30:00 -0400
07071e6ca6
Hacky fix to state cloning
Tangent Wantwight
2020-03-26 00:29:51 -0400
281514e7b7
draw backdrop
Tangent Wantwight
2020-03-26 00:29:32 -0400
3a2bc5654e
Hacky key control
Tangent Wantwight
2020-03-26 00:29:24 -0400
e3ddadadda
Add babel
Tangent Wantwight
2020-03-24 23:48:38 -0400
4212952abc
Remove decorators in favor of declarative initialization
Tangent Wantwight
2020-03-24 23:47:04 -0400
a1900a4daa
update package.json
Tangent Wantwight
2020-03-11 22:00:31 -0400
1ed760781b
update plan
Tangent Wantwight
2020-02-20 23:55:23 -0500
4667c4b567
Update list of message types from thinking
Tangent Wantwight
2020-02-20 23:55:16 -0500
01349724a9
stub "loopback" server
Tangent Wantwight
2020-02-16 00:42:58 -0500
2bff1f6cdf
nix dead code
Tangent Wantwight
2020-02-16 00:13:28 -0500
bf26e85b49
Render stub static scene
Tangent Wantwight
2020-02-16 00:01:30 -0500
d321098555
Create stub concrete lockstep engine
Tangent Wantwight
2020-02-16 00:00:26 -0500
57c2364796
rejigger drawing layer storage
Tangent Wantwight
2020-02-15 23:38:54 -0500
390e6744b9
copy constructors for states
Tangent Wantwight
2020-02-15 23:17:13 -0500
5ca9397621
try new Input style
Tangent Wantwight
2020-02-15 23:15:59 -0500
c77499a577
Add renderFrames callbag
Tangent Wantwight
2020-02-15 21:10:19 -0500
5e29841717
Sketch out first pass of lockstep client code
Tangent Wantwight
2020-02-15 19:52:00 -0500
33ddb75b14
add Callbag typings
Tangent Wantwight
2020-02-15 17:56:38 -0500
200d0fdd70
Add Typescript Import Sorter config
Tangent Wantwight
2020-02-15 17:56:19 -0500
14ccebc703
Add stub demo-playback code
Tangent Wantwight
2020-02-15 14:12:53 -0500
21886c00a8
Remove TickType idea
Tangent Wantwight
2020-02-15 13:55:33 -0500
4c337f3579
Factor strategies into helper object instead of requiring methods on types
Tangent Wantwight
2020-02-15 13:54:59 -0500
2e0b0c4ff4
update plan
Tangent Wantwight
2020-01-28 22:52:40 -0500
b5869b4a1c
First Draft of Lockstep logic (untested)
Tangent Wantwight
2020-01-28 22:51:15 -0500
02239bb4d2
Fix TransformCx hack that put collision detection rotation and render rotation out of sync. (originally introduced to workaround AI getting the Y axis flipped)
Tangent Wantwight
2020-01-19 02:08:25 -0500
5fed6ea82f
Get old demo running
Tangent Wantwight
2020-01-19 01:24:29 -0500
105ab7af03
Update plan
Tangent Wantwight
2020-01-19 01:24:04 -0500
50b4313100
Make Join work with any # of arguments, and make "id" a pseudo component instead of always returned
Tangent Wantwight
2020-01-16 01:54:43 -0500
8d83917286
Remove catchall lookup type on root Data
Tangent Wantwight
2020-01-16 01:08:15 -0500
a080dabc67
Better typings for Lookup
Tangent Wantwight
2020-01-16 00:03:24 -0500
8434e7046c
Change typings to distinguish dense and sparse stores, and have the container add the "generation" field instead of the container
Tangent Wantwight
2020-01-15 22:49:52 -0500
e8415da145
Import code from Ludum Dare/Jam 2018 "Sacrifices" that looks reusable.
Tangent Wantwight
2019-12-14 18:11:00 -0500
9914c2e7bd
Initial empty commit
Tangent Wantwight
2019-12-14 18:10:18 -0500