71de95822c
Stage BSP partitioning written. Changes to actors to keep track of their BSP node. Actors traverse the BSP as they move. Miscellanious error code def/usage updates. WIP
Andrew Kesterson2026-06-22 08:18:15 -04:00
652ee4cdf3
Tilemaps can now load their own physics engines from map properties. The gravity for the arcade simulation is acting a little funny when populated from the map properties.
Andrew Kesterson2026-06-02 17:11:16 -04:00
9fed59c4c8
Abstract the global renderer, physics, camera and gamemap objects behind a pointer, so you can swap in and out different ones as needed
Andrew Kesterson2026-06-02 13:15:26 -04:00
941eeb2493
Got the physics system applying gravity and drag correctly. (Mostly? Seems like it? Seems good.)
Andrew Kesterson2026-05-26 11:22:45 -04:00
314ce5e10d
Physics simulation engine implemented, basic cases (null and 2d SideScroller) works
Andrew Kesterson2026-05-26 10:36:31 -04:00
d87c5d2c20
More rendering subsystem breakout, added a physics subsystem, everything now fires from akgl_game_update() for the user
Andrew Kesterson2026-05-25 21:29:18 -04:00
6314ad7f26
Start abstracting the rendering backend away to make it easier to switch to GPU rendering later
Andrew Kesterson2026-05-24 21:59:29 -04:00
8f613397d6
Loading sprites and tiles both work correctly with relative paths, now using akgl_path_relative* helpers
Andrew Kesterson2026-05-24 19:57:43 -04:00
980bbc56fb
Fixed loading of tilesets and images from tilemaps to correctly use relative paths.
Andrew Kesterson2026-05-24 09:51:58 -04:00
e3edd5b855
Add a method that automatically opens gamepads so they will send events
Andrew Kesterson2026-05-21 21:43:51 -04:00
f695a035c8
Add a low FPS callback to aid in debugging, and fix a huge memory leak in akgl_text_rendertextat
Andrew Kesterson2026-05-15 11:07:31 -04:00
73b1a4cab0
Make perspective scale work more explicitly from properties
Andrew Kesterson2026-05-13 23:36:49 -04:00
aad196d84e
akgl_heap_release* should not cascade into dependent objects (releasing actors should not release characters, sprites, and spritesheets)
Andrew Kesterson2026-05-13 22:45:52 -04:00
9443fa8532
Fix bug in akgl_heap_release_actor preventing it from being cleared out of the registry
Andrew Kesterson2026-05-13 19:28:38 -04:00
dc2e88b72f
Fix a scale bug (default should be 1.0), add tilemap release function
Andrew Kesterson2026-05-13 16:56:24 -04:00
53e4f5c14f
Tilemaps can have two objects placed on it, 'p_foreground' and 'p_vanishing' whose placement form a virtual perspective plane, which causes sprites to scale as they move up and down the screen between them, creating the illusion of depth on the screen
Andrew Kesterson2026-05-13 09:57:24 -04:00
b8dee456ca
Add keyboard enumeration function. Make image layers work.
Andrew Kesterson2026-05-13 08:02:59 -04:00
36dfd47a06
Fixed a bug in akgl_heap_next_string, made screen width and height load from properties, not on the game object
Andrew Kesterson2026-05-13 04:55:19 -04:00
23dbc7d985
Make mkcontrollers script work when building as a submodule
Andrew Kesterson2026-05-12 21:38:08 -04:00
6f62e674d5
Make mkcontrollers script work when building as a submodule
Andrew Kesterson2026-05-12 21:38:08 -04:00
4a02f0364f
Start moving away from wrapping libc stuff in akerror, and move towards akstdlib that does this for me
Andrew Kesterson2026-05-10 00:03:45 -04:00
cc0916cd1f
Added a (registry object name -> registry object pointer) map to the save method so that registry reference by name can have their actor, sprite, spritesheet, and character references reset
Andrew Kesterson2026-05-09 14:45:37 -04:00
4c771227f5
Encode library version and game version into savegame files and check them both
Andrew Kesterson2026-05-08 23:48:35 -04:00
ff6b282112
Added basic game save function, doesn't save much yet, but implements version comparison of binary saves for compatibility
Andrew Kesterson2026-05-08 23:15:11 -04:00
0bd1ae1df8
Move music tracks out of akgl_Game to make it more suitable for serialization
Andrew Kesterson2026-05-08 22:16:43 -04:00
5dda86d887
Add properties registry. Start bounding defines with conditionals so users can change library allocation size.
Andrew Kesterson2026-05-08 10:16:33 -04:00
87a5b1da21
Add ability to push controls to a control map without having to manually track controlmap index IDs
Andrew Kesterson2026-05-06 12:02:36 -04:00
c3847160da
Added a font registry, a text rendering helper, and an FPS counter function
Andrew Kesterson2026-05-06 11:12:42 -04:00
284ffd7b4a
Fix missing sdl3game.pc for pkg-config, change sprite speed and character movement values to long int expressed in nanoseconds for better compatibility with SDL_Time and locking against game clock, still expressed as milliseconds in json
Andrew Kesterson2026-05-05 20:39:58 -04:00
93bc3addfe
actor_logic_changeframe was allowing frame counters to increment out of control leading to unpredictable behavior when changing state, animations would be outside their frame range
Andrew Kesterson2025-08-09 08:54:12 -04:00
35621d8b4d
Changed sprite and character loaders to use the explicit paths passed into them, and to use relative paths for assets referenced inside of spritesheets
Andrew Kesterson2025-08-04 22:34:25 -04:00
9ecfc7dc42
Add charviewer utility for viewing character / sprite files
Andrew Kesterson2025-08-04 21:37:36 -04:00
fb3ff6f2b3
Refactor gamepad to controller, introduce control maps and control map handling of actor states
Andrew Kesterson2025-08-03 21:42:12 -04:00
0a386a6a67
Removed box2d physics because of linking problems (and nothing's using it yet). Also tests work now.
Andrew Kesterson2025-08-03 14:06:40 -04:00