cdo
0cbc541bce
Seperate map and asset directories
2025-01-07 14:36:03 +00:00
cdo
a82586f327
Remove command-line argument handling
2025-01-07 14:36:03 +00:00
cdo
de073d7d7a
Use CMake option for asset dir instead of command-line flag
2025-01-07 14:36:03 +00:00
cdo
0b9fd92d63
Change project name in README
2025-01-07 13:15:24 +00:00
cdo
2077ecde63
Implement hot reloading
2025-01-06 15:15:32 +00:00
cdo
1531817dc4
Add tiled map, tilesheet configs etc
...
These are just XML so relatively git-friendly. They're needed for the
game and should be syncronised to the version of the code so they
really ought to be checked in.
2025-01-04 17:03:31 +00:00
cdo
d1fb902e8a
Use offset specified in tiled for y-sorting objects
...
It's now no longer using the bounding box on objects anywhere, but
we're going to want that soon anyway for culling off-screen entities
so I decided to leave it in.
2025-01-04 16:50:44 +00:00
cdo
5eff48b449
Use object bounding box for y sorting
2025-01-04 16:14:38 +00:00
cdo
48ae6b7873
Load object bounding box from objectsprites XML
2025-01-04 16:14:38 +00:00
cdo
3f8ac4f890
Add a bounding box to dynentity_t
2025-01-04 16:14:35 +00:00
cdo
080de0da3c
Use doubles instead of ints for y sorting
2025-01-04 16:13:49 +00:00
cdo
765e2c32c8
Implement drawlist updating for decreasing y
2025-01-04 16:13:47 +00:00
cdo
f3c9d6ac30
Implement drawlist updating for increasing y
2025-01-04 13:03:15 +00:00
cdo
9325563991
Draw entities using drawlist
2025-01-04 10:32:41 +00:00
cdo
56dbf9dbb4
Construct drawlist at end of game_init()
2025-01-04 10:32:13 +00:00
cdo
8763c437b3
Add tag and prev, next pointers to entity structs
2025-01-04 10:32:13 +00:00
cdo
6c248b0707
Track and display maxima in performance monitor
2025-01-04 10:32:13 +00:00
cdo
51cd623af9
Rearrange and rename helper functions
2025-01-04 05:57:25 +00:00
cdo
6bd85d9ebf
Rename entity_t and obj_t to dynentity_t and objentity_t
2025-01-04 04:51:27 +00:00
cdo
77725a5ce4
Round coordinates in collision detection
...
This fixes an issue where the player could get stuck to an edge when
being aligned to the pixel grid due to the rounded coordinate being
outside an invalid tile but the truncated position being inside. Also
we should be doing it anyway.
2025-01-04 02:13:40 +00:00
cdo
6d01f8cc3f
Tweak performance message to include frame interval
2025-01-04 02:12:43 +00:00
cdo
a8e2c8d89a
Rename game_evthandle() to game_evt()
2025-01-02 18:52:15 +00:00
cdo
8dbdea6ac4
Fix some memory leaks
2025-01-02 17:53:40 +00:00
cdo
2c8d01df49
Fix UB in tileat()
2025-01-02 17:16:05 +00:00
cdo
61c0e17fd8
Remove ASAN from sanitizers config
...
SDL2 seems to use some unintialized memory in SDL_Init() so ASAN just
kills the program right away if it's enabled (sad). UBSAN is still
very useful in its own right, though, so makes sense to have an option
to enable only that.
2025-01-02 17:16:01 +00:00
cdo
3952d93bb0
Add CMake option to enable/disable performance monitoring
2025-01-02 17:13:35 +00:00
cdo
c1dd9cd33a
Remove frame blinker
...
Not really needed any more
2025-01-02 16:55:06 +00:00
cdo
65a4b08f34
Use vsync instead of delay-based synchronization
...
Also changed the game_update() interface to take dt in seconds as a
double (rather than milliseconds as an unsigned integer) as we're now
computing the refresh interval as a double anyway (by querying the
display mode). To my eye (and on my machine), all chunkiness is now
gone; the game feels very smooth.
2025-01-02 16:54:01 +00:00
cdo
427cdef867
Add frame blinker back in
2025-01-02 16:37:43 +00:00
cdo
cda484c9ab
Wait for remaining time in interval rather than busy looping
2025-01-02 16:20:00 +00:00
cdo
178d6a23d3
Reduce performance analysis frequency
2025-01-02 15:50:15 +00:00
cdo
e7e1b40dd9
Take ceiling of endx and endy in mapdraw()
...
This fixes an issue where tiles around the right and bottom edges
would not be drawn when vpos was just under a tile boundary. I'm
guessing it wasn't noticable before fixing the frame rate as the buggy
frames were only on-screen for a hilariously short amount of time.
2025-01-02 15:43:31 +00:00
cdo
bbaf58869a
Measure game code performance in engine
2025-01-02 15:35:57 +00:00
cdo
d9981d8d61
Rename app/ directory to game/
2025-01-02 14:21:12 +00:00
cdo
2dd55b5533
Restructure game to use engine
2025-01-02 14:18:37 +00:00
cdo
b14d2f292a
Create basic engine
2025-01-02 14:16:35 +00:00
cdo
c02068f1ba
Move player entity into static
2025-01-02 00:18:25 +00:00
cdo
f196440112
Remove unused tests directory
2025-01-02 00:16:58 +00:00
cdo
dc53a2d8de
Snap view and entity positions to grid when not in motion
...
This fixes some chunky movement badness.
2025-01-01 21:31:47 +00:00
cdo
e8eba7e90c
Add blinking box to indicate frames
2025-01-01 21:06:08 +00:00
cdo
e48e566dd2
Round coordinates when drawing
2025-01-01 17:24:53 +00:00
cdo
cbb4b7884c
Add support for map objects
2025-01-01 16:50:51 +00:00
cdo
12751a49f8
Store asset dir path in static var
2025-01-01 13:38:11 +00:00
cdo
dab37ddeff
Update impassable tiles
2024-12-31 20:28:47 +00:00
cdo
8397666cb2
Write script to extract frames from a spritesheet
2024-12-31 20:07:24 +00:00
cdo
0aab456433
Load and draw additional layers
2024-12-31 13:55:34 +00:00
cdo
8de374bcfb
Extract map logic into functions
2024-12-31 13:15:57 +00:00
cdo
b39189b6d1
Create entity_t struct and define entityupdate() and entitydraw()
2024-12-31 13:01:48 +00:00
cdo
e7a19b7d91
Fix camera when at edge of map
2024-12-29 18:49:04 +00:00
cdo
31f7895bf3
Support new map and tileset
2024-12-28 19:56:07 +00:00