a-game

2D platformer written from scratch.
git clone git://git.amin.space/a-game.git
Log | Files | Refs | README | LICENSE

DateCommit messageAuthorFiles+-
2024-03-01 06:36Make clangd work with unity buildamin11+37-18
2024-02-05 07:41Fix wasm buildsamin12+198-165
2023-01-09 02:17Add sunvox music fileamin1+0-0
2022-08-09 04:50Remove now unneeded export in wasm buildamin1+0-3
2020-03-12 01:39Add basic info to readmeamin1+33-0
2020-02-26 08:18Move viewport logic into rendereramin2+37-42
2020-02-26 05:30Remove OpenGL calls from game update funcamin2+11-11
2020-02-26 05:21Remove glViewport call from platform layeramin4+1-16
2020-02-11 04:57Remove unneeded khronos platform headeramin1+0-282
2020-02-11 04:13Load OpenGl functions manually on Windowsamin11+70-6405
2020-02-10 10:25Fix bad win32 platform check macroamin1+1-1
2020-02-10 10:05Confine wasm insanity to the wasm platform layeramin3+67-59
2020-02-10 09:46Fix broken wasm build againamin2+3-1
2020-02-09 02:25Load OpenGL functions manuallyamin9+218-35
2020-02-09 01:12Switch jump height to one meteramin1+1-1
2020-02-03 09:42Fix broken wasm buildamin1+2-1
2019-12-07 01:13Handle all wall jump casesamin1+20-8
2019-11-30 01:30Output debug info on Windowsamin2+2-0
2019-11-30 01:28Add gitattributes file to normalize line endingsamin1+6-0
2019-11-23 20:10Don't zero vertical v when sliding off ledgeamin1+2-2
2019-11-23 17:43Specify jump in terms of maximum heightamin1+38-13
2019-11-20 07:42Add MIT Licenseamin1+21-0
2019-11-20 05:53Add comment about GLFW input bug and its effectsamin1+16-0
2019-11-18 04:54Nudge player only over ledges, not under themamin1+10-11
2019-11-09 07:39Add source code link in comment in wasm htmlamin1+4-0
2019-11-09 07:21Add a rudimentary wall jumpamin2+38-0
2019-11-09 06:54Tune jumping a bitamin1+4-3
2019-11-09 06:42Specify separate speed limits per directionamin1+9-4
2019-11-09 06:34Nudge playeramin1+39-5
2019-11-09 06:03Improve jumping, climbing, sliding, fallingamin1+54-25
2019-11-09 04:51Improve room dimension constant nameamin3+23-23
2019-11-03 04:32Make letterboxes blackamin1+1-1
2019-11-03 02:43Change player spawn locationamin2+42-39
2019-11-03 02:06Fix broken wasm buildamin1+5-0
2019-11-02 23:53Reorganize dataamin3+113-118
2019-11-02 23:46Add a world suitable for testing controlsamin2+119-72
2019-09-24 06:04Try doing actual jumpingamin2+21-15
2019-07-21 02:44Fix wasm to use glTexImage3Damin3+28-0
2019-07-21 02:23Get OpenGL 3.3 contexts once moreamin2+4-4
2019-07-21 02:22Revert "Update GLAD to OpenGL 4.2"amin3+3922-1804
2019-07-21 02:21Don't use glTexStorage3D to allocate spaceamin2+22-1
2019-07-17 04:59Merge branch 'features/tileset'amin23+2026-4027
2019-07-17 03:27Handle JS file loading failureamin1+13-3
2019-07-17 03:18Clean up js file loadingamin1+24-34
2019-07-17 02:35Don't needlessly build a stringamin1+0-1
2019-07-17 02:25Use stack allocator in wasm platform file loadingamin4+38-21
2019-07-17 02:14Use stack allocator for platform file loadingamin4+17-15
2019-07-16 03:57Update wasm platform layeramin4+30-8
2019-07-16 02:43Render different rooms at different color offsetsamin2+5-0
2019-07-16 02:35Actually allocate space for mipmapsamin1+6-5
2019-07-16 02:34Map room tiles to different tileset tilesamin8+38-29
2019-07-16 00:29Load tile textures from a tilesetamin6+64-13
2019-07-16 00:08Update GLAD to OpenGL 4.2amin3+1804-3922
2019-07-13 04:05Fix the allocator bug and load the tilemapamin1+1-1
2019-07-13 04:05Add asserts catching a nasty allocator bugamin3+12-3
2019-07-13 04:04Actually keep track of the number of roomsamin2+4-2
2019-07-13 04:04Add a basic tile set assetamin1+0-0
2019-07-09 00:39Get webgl scissoring to workamin4+12-1
2019-07-09 00:33Scissor non-debug rendering to main viewportamin6+29-1
2019-07-08 20:38Merge branch 'features/textures'amin25+396-46
2019-07-08 20:38Convert BGRA image to RGBAamin3+10-2
2019-07-07 02:43Block browser full screen on wasm F11 keydownamin1+4-0
2019-07-07 01:59Mostly fix wasm platform layeramin6+111-8
2019-07-06 07:18Use a nicer tile textureamin3+3-27
2019-07-06 02:46Use eigengrau for the background coloramin2+13-1
2019-07-06 02:23Use hideous test texture on solid blocksamin1+3-0
2019-07-06 02:12Introduce textures to the rendering systemamin6+23-20
2019-07-06 01:58Set up texture in render initamin3+30-17
2019-07-06 01:25Use a temp allocator for short lived memoryamin6+20-10
2019-07-06 00:35Move image code to separate filesamin4+142-141
2019-07-05 23:07Clean up image loading codeamin1+44-34
2019-07-05 19:50Load a run length encoded tga fileamin1+61-8
2019-07-05 02:22Rename test tga files to not be misleadingamin3+1-1
2019-07-05 01:52Flip the image right side upamin1+15-0
2019-07-05 01:39Load an upside down tga imageamin2+92-40
2019-07-04 21:31Return file length of loaded filesamin5+28-5
2019-07-04 21:14Return u8, not char buffers when loading filesamin6+11-12
2019-07-04 20:37Flip tex y coords and clean up view matrixamin2+7-12
2019-07-04 19:28Render a quad with a test XOR textureamin6+80-10
2019-07-04 01:05Add test tga texturesamin2+0-0
2019-07-03 21:21Don't call glGetUniformLocation every frameamin3+99-71
2019-07-03 06:18Fill whole browser window with webgl canvasamin1+2-1
2019-07-02 00:46Merge branch 'features/wasm-platform-layer'amin19+916-38
2019-07-02 00:17Take actual dt into accountamin2+6-5
2019-07-02 00:13Configure allocator with properly sized bufferamin2+9-5
2019-07-01 23:05Get keyboard input via the browseramin3+73-7
2019-07-01 06:29Get it running in the browseramin4+14-7
2019-07-01 06:26Provide wasm link time dependenciesamin12+108-67
2019-07-01 05:29Adapt wasm platform layer from transparent cubeamin10+762-3
2019-07-01 01:58Fix windows platform layeramin1+38-60
2019-07-01 01:35Move input stuff to separate filesamin5+40-40
2019-07-01 01:09Distinguish between key press events and key stateamin1+9-1
2019-07-01 01:06Add floating movement mode for debug purposesamin4+36-1
2019-07-01 00:46Call it move modeamin2+26-26
2019-07-01 00:43Store more information about button inputsamin3+74-58
2019-06-14 02:08Treat tiles in nonexistent rooms as solidamin2+10-40
2019-06-14 01:45Check the tile below a grounded playeramin1+4-24
2019-06-14 01:34Get tile value from any roomamin2+33-53
2019-06-12 06:50Clean up state transitions a bitamin2+105-80
2019-06-12 05:31Fix the air climbing bugamin2+101-19
2019-06-12 04:14Add a basic wall climbamin2+69-44
2019-06-12 02:42Add a very simple player jumpamin7+80-9
2019-06-10 05:56Compress and reduce game update codeamin2+93-163
2019-06-10 05:06Rename a few thingsamin3+22-22
2019-06-10 04:56Fix two render order bugsamin2+21-4
2019-06-10 03:04Sort render job queue based on layeramin4+88-29
2019-06-10 01:59Split rendering code into moduleamin5+164-137
2019-06-10 01:10Use a simple render queueamin2+66-43
2019-06-10 00:19Stop player at world edgeamin1+27-3
2019-06-09 20:24Comment scopesamin1+6-3
2019-06-09 20:09Don't consider tiles past world edge for collisionamin1+11-3
2019-06-03 01:03Collide with off screen tilesamin3+103-24
2019-06-02 22:44Explicitly floor rather than zero truncateamin2+10-4
2019-06-02 22:37Make wrap actually wrap, not just clampamin1+2-2
2019-06-02 01:27Remove unused paramamin2+5-7
2019-06-02 01:26Use test roomsamin1+28-19
2019-05-21 23:16Define static_assert if we need toamin1+7-0
2019-05-12 00:09Only get initialized roomsamin2+21-6
2019-05-11 20:58Fix chunks spanning [-1, 0] room index boundaryamin5+37-13
2019-05-09 06:54Add some debug printing and notesamin2+18-5
2019-05-09 05:26Note that we aren't retrieving the correct roomsamin2+11-1
2019-05-09 05:16Calculate chunk index mask correctlyamin7+53-6
2019-05-06 01:47Actually interleave bitsamin1+2-1
2019-05-04 05:33Store rooms in chunks in a hash tableamin5+163-26
2019-05-02 00:05Fix up Windows platform layeramin2+12-84
2019-04-30 04:01Split some code out into new filesamin5+227-229
2019-04-30 03:49Add a stack allocator and store rooms on the heapamin6+124-48
2019-04-30 00:53Allocate a big block of game memoryamin4+29-12
2019-04-28 04:53Document Windows setup stepsamin3+62-6
2019-04-27 04:02Rename glmth and its functionsamin5+696-695
2019-04-27 02:21Use AbsolutePos as player positionamin2+48-50
2019-04-26 01:01Move between two roomsamin3+89-6
2019-04-25 22:52Make the debug quads look niceramin2+27-7
2019-04-25 22:10Simplify and clarify rendering dataamin2+34-42
2019-04-25 21:46Add a room structamin2+70-92
2019-04-25 20:45Compress some error prone comparisonsamin2+44-11
2019-04-25 20:07Cull walls on screen edgeamin1+52-30
2019-04-25 04:54Ignore internal walls when collidingamin2+151-61
2019-04-25 03:24Use tile face normals during collisionamin1+30-18
2019-04-25 02:53Add epsilon to player dist from collision boundaryamin1+15-4
2019-04-25 00:36Clean up debugging stuffamin2+7-70
2019-04-24 23:17Apply epsilon in world, and not player delta spaceamin3+43-10
2019-04-24 21:45Capture more info about tunneling bugamin3+48-5
2019-04-24 06:16Fix tunneling bug by expanding search rangeamin1+34-42
2019-04-24 00:00Capture a failing test case for the lingering bugamin2+32-4
2019-04-23 21:37Fix tunneling bugamin1+14-48
2019-04-23 20:33Visualize collision detection along player pathamin1+48-11
2019-04-23 20:00Try positioning player properly after collisionamin2+122-107
2019-04-23 05:10Compress that messamin2+116-82
2019-04-23 04:05Test for wall collisions along player pathamin2+169-45
2019-04-22 21:57Render BBs for per frame player movementamin2+71-4
2019-04-21 23:13Use simple function to render quads for debug vizamin2+100-79
2019-04-21 22:30Add a few small QOL improvementsamin5+96-45
2019-04-21 19:34Do the most basic collision prevention possibleamin2+54-119
2019-04-21 19:34Implement a very buggy cast of the playeramin1+128-34
2019-04-21 00:04Increase accuracy by absurdly increasing stepsamin1+7-3
2019-04-20 23:57Replace previous approach with swept castamin2+70-15
2019-04-20 21:09Do super janky collision resolutionamin2+47-21
2019-04-20 00:02Do proper AABB hit detectionamin1+6-2
2019-04-19 23:17Do hilarious inverted AABB collision detectionamin3+35-28
2019-04-19 23:17Tune new movement codeamin1+10-6
2019-04-19 23:17Do hilariously untuned semi-implicit Euleramin3+42-7
2019-04-19 23:17Highlight current player tileamin1+39-26
2019-04-19 23:17Render everything with the same view matrixamin1+16-33
2019-04-19 23:17Move pixels per meter out of the model matrixamin1+3-4
2019-04-19 23:17Use a view matrixamin2+19-10
2019-04-18 20:16Render everything with the same projection matrixamin1+26-4
2019-04-17 02:37Adjust starting window sizeamin3+5-4
2019-04-17 02:37Port to Windowsamin4+324-1
2019-04-16 22:04Load shader files via the platform apiamin5+73-72
2019-04-16 21:39Move platform game interfaces to new header fileamin7+188-157
2019-04-16 19:53Give most functions internal linkageamin6+38-42
2019-04-16 19:35Inline math functionsamin4+413-490
2019-04-16 17:59Define player speed in terms of meters per secondamin3+26-19
2019-04-14 01:31Put the world-space origin in the lower leftamin1+3-3
2019-04-14 01:11Clean up player rendering codeamin2+14-38
2019-04-13 20:28Constrain player (more or less) to the viewportamin1+14-16
2019-04-13 20:06Clean up viewport position calculationsamin4+50-20
2019-04-13 19:17Determine meter size by comparing aspect ratiosamin3+34-19
2019-04-03 06:31Scale player dimensions based on meter sizeamin1+15-1
2019-04-03 04:58Free memory allocated for shader source codeamin1+47-36
2019-04-03 03:57Don't heap allocate because there is no needamin1+3-11
2019-04-01 07:25Remove allocation from glmthamin3+17-8
2019-04-01 06:56Fix memory leakamin1+3-1
2019-04-01 01:52Make player smalleramin1+4-1
2019-04-01 01:40Use the same room dimensions as Knyttamin2+25-20
2019-04-01 01:13Remove unused codeamin6+15-182
2019-03-31 07:59Make player smalleramin1+1-1
2019-03-31 07:56Move player with keyboard controlsamin3+36-13
2019-03-31 07:30Get keyboard inputamin3+77-0
2019-03-28 07:12Render a FFOOFF squareamin1+18-0
2019-03-20 04:19Clean things up ever so slightlyamin1+31-21
2019-03-20 04:01Get tilemap to center properlyamin1+8-8
2019-03-07 06:19Don't link agains GLEWamin1+1-1
2019-03-05 05:31Use sweet inline compound literals to init vec3samin1+7-7
2019-03-05 05:29Use custom types everywhere in game layeramin7+88-87
2019-03-05 01:48Align the tile map to the upper left corneramin1+14-6
2019-03-04 00:31Render an obnoxious 'tile map'amin3+60-16
2019-03-03 23:02Switch to a unity buildamin10+18-62
2019-03-02 21:19Clean up passing of framebuffer dimensionsamin6+45-15
2019-03-02 20:25Render a tileamin3+76-2
2018-06-08 08:32Render a bunch of stars drifting in the backgroundamin5+205-55
2018-06-08 07:24Fix horrifyingly uncaught mistake in v2 definitionamin1+2-2
2018-06-08 05:22Load opengl symbols after loading game codeamin9+6709-16
2018-06-04 00:02Start gdb with tuiamin1+4-4
2018-06-02 06:37Update projection matrix w/ framebuffer dimensionsamin2+7-2
2018-06-02 06:14Use an orthographic projectionamin2+7-11
2018-06-02 03:50Set up projection and view matricesamin5+38-20
2018-06-01 06:44Scale, rotate, and tranlate a triangleamin5+22-12
2018-06-01 05:12Hotload game codeamin4+167-22
2018-06-01 03:11Use GLEW, not glad to load OpenGL functionsamin7+9-6679
2018-05-28 22:02Pull game setup out of platform layeramin3+58-37
2018-05-28 21:33Split platform and game layeramin9+779-716
2018-05-16 07:35Render a lovely triangleamin3+58-1
2018-05-16 06:46Make window resizeableamin1+44-15
2018-05-16 06:46Add math and shader libsamin2+706-0
2018-05-15 06:18Use glfw and gladamin3+71-17
2018-05-15 06:16Add GL loader code generated with gladamin3+6660-0
2018-05-14 05:28Start making a gameamin3+59-0