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

DateCommit messageAuthorFiles+-
2023-01-09 02:17Add sunvox music fileAmin Mesbah1+0-0
2022-08-09 04:50Remove now unneeded export in wasm buildAmin Mesbah1+0-3
2020-03-12 01:39Add basic info to readmeAmin Mesbah1+33-0
2020-02-26 08:18Move viewport logic into rendererAmin Mesbah2+37-42
2020-02-26 05:30Remove OpenGL calls from game update funcAmin Mesbah2+11-11
2020-02-26 05:21Remove glViewport call from platform layerAmin Mesbah4+1-16
2020-02-11 04:57Remove unneeded khronos platform headerAmin Mesbah1+0-282
2020-02-11 04:13Load OpenGl functions manually on WindowsAmin Mesbah11+70-6405
2020-02-10 10:25Fix bad win32 platform check macroAmin Mesbah1+1-1
2020-02-10 10:05Confine wasm insanity to the wasm platform layerAmin Mesbah3+67-59
2020-02-10 09:46Fix broken wasm build againAmin Mesbah2+3-1
2020-02-09 02:25Load OpenGL functions manuallyAmin Mesbah9+218-35
2020-02-09 01:12Switch jump height to one meterAmin Mesbah1+1-1
2020-02-03 09:42Fix broken wasm buildAmin Mesbah1+2-1
2019-12-07 01:13Handle all wall jump casesAmin Mesbah1+20-8
2019-11-30 01:30Output debug info on WindowsAmin Mesbah2+2-0
2019-11-30 01:28Add gitattributes file to normalize line endingsAmin Mesbah1+6-0
2019-11-23 20:10Don't zero vertical v when sliding off ledgeAmin Mesbah1+2-2
2019-11-23 17:43Specify jump in terms of maximum heightAmin Mesbah1+38-13
2019-11-20 07:42Add MIT LicenseAmin Mesbah1+21-0
2019-11-20 05:53Add comment about GLFW input bug and its effectsAmin Mesbah1+16-0
2019-11-18 04:54Nudge player only over ledges, not under themAmin Mesbah1+10-11
2019-11-09 07:39Add source code link in comment in wasm htmlAmin Mesbah1+4-0
2019-11-09 07:21Add a rudimentary wall jumpAmin Mesbah2+38-0
2019-11-09 06:54Tune jumping a bitAmin Mesbah1+4-3
2019-11-09 06:42Specify separate speed limits per directionAmin Mesbah1+9-4
2019-11-09 06:34Nudge playerAmin Mesbah1+39-5
2019-11-09 06:03Improve jumping, climbing, sliding, fallingAmin Mesbah1+54-25
2019-11-09 04:51Improve room dimension constant nameAmin Mesbah3+23-23
2019-11-03 04:32Make letterboxes blackAmin Mesbah1+1-1
2019-11-03 02:43Change player spawn locationAmin Mesbah2+42-39
2019-11-03 02:06Fix broken wasm buildAmin Mesbah1+5-0
2019-11-02 23:53Reorganize dataAmin Mesbah3+113-118
2019-11-02 23:46Add a world suitable for testing controlsAmin Mesbah2+119-72
2019-09-24 06:04Try doing actual jumpingAmin Mesbah2+21-15
2019-07-21 02:44Fix wasm to use glTexImage3DAmin Mesbah3+28-0
2019-07-21 02:23Get OpenGL 3.3 contexts once moreAmin Mesbah2+4-4
2019-07-21 02:22Revert "Update GLAD to OpenGL 4.2"Amin Mesbah3+3922-1804
2019-07-21 02:21Don't use glTexStorage3D to allocate spaceAmin Mesbah2+22-1
2019-07-17 04:59Merge branch 'features/tileset'Amin Mesbah23+2026-4027
2019-07-17 03:27Handle JS file loading failureAmin Mesbah1+13-3
2019-07-17 03:18Clean up js file loadingAmin Mesbah1+24-34
2019-07-17 02:35Don't needlessly build a stringAmin Mesbah1+0-1
2019-07-17 02:21Use stack allocator in wasm platform file loadingAmin Mesbah4+38-21
2019-07-17 02:14Use stack allocator for platform file loadingAmin Mesbah4+17-15
2019-07-16 03:57Update wasm platform layerAmin Mesbah4+30-8
2019-07-16 02:43Render different rooms at different color offsetsAmin Mesbah2+5-0
2019-07-16 02:35Actually allocate space for mipmapsAmin Mesbah1+6-5
2019-07-16 02:34Map room tiles to different tileset tilesAmin Mesbah8+38-29
2019-07-16 00:29Load tile textures from a tilesetAmin Mesbah6+64-13
2019-07-16 00:08Update GLAD to OpenGL 4.2Amin Mesbah3+1804-3922
2019-07-13 03:52Fix the allocator bug and load the tilemapAmin Mesbah1+1-1
2019-07-13 03:51Add asserts catching a nasty allocator bugAmin Mesbah3+12-3
2019-07-13 03:50Actually keep track of the number of roomsAmin Mesbah2+4-2
2019-07-13 03:20Add a basic tile set assetAmin Mesbah1+0-0
2019-07-09 00:39Get webgl scissoring to workAmin Mesbah4+12-1
2019-07-09 00:33Scissor non-debug rendering to main viewportAmin Mesbah6+29-1
2019-07-08 20:38Merge branch 'features/textures'Amin Mesbah25+396-46
2019-07-08 20:35Convert BGRA image to RGBAAmin Mesbah3+10-2
2019-07-07 02:43Block browser full screen on wasm F11 keydownAmin Mesbah1+4-0
2019-07-07 01:59Mostly fix wasm platform layerAmin Mesbah6+111-8
2019-07-06 07:18Use a nicer tile textureAmin Mesbah3+3-27
2019-07-06 02:46Use eigengrau for the background colorAmin Mesbah2+13-1
2019-07-06 02:23Use hideous test texture on solid blocksAmin Mesbah1+3-0
2019-07-06 02:12Introduce textures to the rendering systemAmin Mesbah6+23-20
2019-07-06 01:58Set up texture in render initAmin Mesbah3+30-17
2019-07-06 00:35Use a temp allocator for short lived memoryAmin Mesbah6+20-10
2019-07-06 00:34Move image code to separate filesAmin Mesbah4+142-141
2019-07-05 23:07Clean up image loading codeAmin Mesbah1+44-34
2019-07-05 19:50Load a run length encoded tga fileAmin Mesbah1+61-8
2019-07-05 02:22Rename test tga files to not be misleadingAmin Mesbah3+1-1
2019-07-05 01:52Flip the image right side upAmin Mesbah1+15-0
2019-07-05 00:36Load an upside down tga imageAmin Mesbah2+92-40
2019-07-04 21:31Return file length of loaded filesAmin Mesbah5+28-5
2019-07-04 21:14Return u8, not char buffers when loading filesAmin Mesbah6+11-12
2019-07-04 20:35Flip tex y coords and clean up view matrixAmin Mesbah2+7-12
2019-07-04 19:20Render a quad with a test XOR textureAmin Mesbah6+80-10
2019-07-04 01:05Add test tga texturesAmin Mesbah2+0-0
2019-07-03 21:21Don't call glGetUniformLocation every frameAmin Mesbah3+99-71
2019-07-03 06:18Fill whole browser window with webgl canvasAmin Mesbah1+2-1
2019-07-02 00:46Merge branch 'features/wasm-platform-layer'Amin Mesbah19+916-38
2019-07-02 00:17Take actual dt into accountAmin Mesbah2+6-5
2019-07-02 00:13Configure allocator with properly sized bufferAmin Mesbah2+9-5
2019-07-01 23:05Get keyboard input via the browserAmin Mesbah3+73-7
2019-07-01 06:29Get it running in the browserAmin Mesbah4+14-7
2019-07-01 06:01Provide wasm link time dependenciesAmin Mesbah12+108-67
2019-07-01 05:29Adapt wasm platform layer from transparent cubeAmin Mesbah10+762-3
2019-07-01 01:58Fix windows platform layerAmin Mesbah1+38-60
2019-07-01 01:35Move input stuff to separate filesAmin Mesbah5+40-40
2019-07-01 01:07Distinguish between key press events and key stateAmin Mesbah1+9-1
2019-07-01 01:06Add floating movement mode for debug purposesAmin Mesbah4+36-1
2019-07-01 00:46Call it move modeAmin Mesbah2+26-26
2019-07-01 00:43Store more information about button inputsAmin Mesbah3+74-58
2019-06-14 02:08Treat tiles in nonexistent rooms as solidAmin Mesbah2+10-40
2019-06-14 01:40Check the tile below a grounded playerAmin Mesbah1+4-24
2019-06-14 01:29Get tile value from any roomAmin Mesbah2+33-53
2019-06-12 06:50Clean up state transitions a bitAmin Mesbah2+105-80
2019-06-12 05:31Fix the air climbing bugAmin Mesbah2+101-19
2019-06-12 04:09Add a basic wall climbAmin Mesbah2+69-44
2019-06-12 02:16Add a very simple player jumpAmin Mesbah7+80-9
2019-06-10 05:56Compress and reduce game update codeAmin Mesbah2+93-163
2019-06-10 05:06Rename a few thingsAmin Mesbah3+22-22
2019-06-10 04:56Fix two render order bugsAmin Mesbah2+21-4
2019-06-10 03:04Sort render job queue based on layerAmin Mesbah4+88-29
2019-06-10 01:54Split rendering code into moduleAmin Mesbah5+164-137
2019-06-10 01:10Use a simple render queueAmin Mesbah2+66-43
2019-06-10 00:19Stop player at world edgeAmin Mesbah1+27-3
2019-06-09 20:18Comment scopesAmin Mesbah1+6-3
2019-06-09 20:09Don't consider tiles past world edge for collisionAmin Mesbah1+11-3
2019-06-03 01:03Collide with off screen tilesAmin Mesbah3+103-24
2019-06-02 22:42Explicitly floor rather than zero truncateAmin Mesbah2+10-4
2019-06-02 22:37Make wrap actually wrap, not just clampAmin Mesbah1+2-2
2019-06-02 00:40Remove unused paramAmin Mesbah2+5-7
2019-06-02 01:26Use test roomsAmin Mesbah1+28-19
2019-05-21 23:16Define static_assert if we need toAmin Mesbah1+7-0
2019-05-12 00:09Only get initialized roomsAmin Mesbah2+21-6
2019-05-11 20:58Fix chunks spanning [-1, 0] room index boundaryAmin Mesbah5+37-13
2019-05-09 06:54Add some debug printing and notesAmin Mesbah2+18-5
2019-05-09 05:26Note that we aren't retrieving the correct roomsAmin Mesbah2+11-1
2019-05-09 05:16Calculate chunk index mask correctlyAmin Mesbah7+53-6
2019-05-06 01:47Actually interleave bitsAmin Mesbah1+2-1
2019-05-01 03:55Store rooms in chunks in a hash tableAmin Mesbah5+163-26
2019-05-02 00:05Fix up Windows platform layerAmin Mesbah2+12-84
2019-04-30 04:01Split some code out into new filesAmin Mesbah5+227-229
2019-04-30 03:49Add a stack allocator and store rooms on the heapAmin Mesbah6+124-48
2019-04-30 00:53Allocate a big block of game memoryAmin Mesbah4+29-12
2019-04-28 04:53Document Windows setup stepsAmin Mesbah3+62-6
2019-04-27 04:02Rename glmth and its functionsAmin Mesbah5+696-695
2019-04-27 02:21Use AbsolutePos as player positionAmin Mesbah2+48-50
2019-04-26 00:55Move between two roomsAmin Mesbah3+89-6
2019-04-25 22:42Make the debug quads look nicerAmin Mesbah2+27-7
2019-04-25 22:10Simplify and clarify rendering dataAmin Mesbah2+34-42
2019-04-25 21:46Add a room structAmin Mesbah2+70-92
2019-04-25 20:45Compress some error prone comparisonsAmin Mesbah2+44-11
2019-04-25 20:07Cull walls on screen edgeAmin Mesbah1+52-30
2019-04-25 04:54Ignore internal walls when collidingAmin Mesbah2+151-61
2019-04-25 03:24Use tile face normals during collisionAmin Mesbah1+30-18
2019-04-25 02:36Add epsilon to player dist from collision boundaryAmin Mesbah1+15-4
2019-04-25 00:36Clean up debugging stuffAmin Mesbah2+7-70
2019-04-24 23:17Apply epsilon in world, and not player delta spaceAmin Mesbah3+43-10
2019-04-24 21:45Capture more info about tunneling bugAmin Mesbah3+48-5
2019-04-24 06:16Fix tunneling bug by expanding search rangeAmin Mesbah1+34-42
2019-04-23 23:49Capture a failing test case for the lingering bugAmin Mesbah2+32-4
2019-04-23 21:31Fix tunneling bugAmin Mesbah1+14-48
2019-04-23 20:33Visualize collision detection along player pathAmin Mesbah1+48-11
2019-04-23 18:43Try positioning player properly after collisionAmin Mesbah2+122-107
2019-04-23 05:06Compress that messAmin Mesbah2+116-82
2019-04-23 04:05Test for wall collisions along player pathAmin Mesbah2+169-45
2019-04-22 21:57Render BBs for per frame player movementAmin Mesbah2+71-4
2019-04-21 23:13Use simple function to render quads for debug vizAmin Mesbah2+100-79
2019-04-21 22:26Add a few small QOL improvementsAmin Mesbah5+96-45
2019-04-21 19:31Do the most basic collision prevention possibleAmin Mesbah2+54-119
2019-04-21 05:48Implement a very buggy cast of the playerAmin Mesbah1+128-34
2019-04-21 00:04Increase accuracy by absurdly increasing stepsAmin Mesbah1+7-3
2019-04-20 23:57Replace previous approach with swept castAmin Mesbah2+70-15
2019-04-20 21:07Do super janky collision resolutionAmin Mesbah2+47-21
2019-04-20 00:02Do proper AABB hit detectionAmin Mesbah1+6-2
2019-04-19 23:07Do hilarious inverted AABB collision detectionAmin Mesbah3+35-28
2019-04-19 19:28Tune new movement codeAmin Mesbah1+10-6
2019-04-19 19:02Do hilariously untuned semi-implicit EulerAmin Mesbah3+42-7
2019-04-19 04:55Highlight current player tileAmin Mesbah1+39-26
2019-04-19 04:40Render everything with the same view matrixAmin Mesbah1+16-33
2019-04-19 04:20Move pixels per meter out of the model matrixAmin Mesbah1+3-4
2019-04-18 20:44Use a view matrixAmin Mesbah2+19-10
2019-04-18 20:15Render everything with the same projection matrixAmin Mesbah1+26-4
2019-04-17 02:37Adjust starting window sizeAmin Mesbah3+5-4
2019-04-17 02:37Port to WindowsAmin Mesbah4+324-1
2019-04-16 22:04Load shader files via the platform apiAmin Mesbah5+73-72
2019-04-16 21:39Move platform game interfaces to new header fileAmin Mesbah7+188-157
2019-04-16 19:53Give most functions internal linkageAmin Mesbah6+38-42
2019-04-16 18:39Inline math functionsAmin Mesbah4+413-490
2019-04-16 06:07Define player speed in terms of meters per secondAmin Mesbah3+26-19
2019-04-14 01:31Put the world-space origin in the lower leftAmin Mesbah1+3-3
2019-04-14 01:04Clean up player rendering codeAmin Mesbah2+14-38
2019-04-13 20:28Constrain player (more or less) to the viewportAmin Mesbah1+14-16
2019-04-13 20:06Clean up viewport position calculationsAmin Mesbah4+50-20
2019-04-13 19:16Determine meter size by comparing aspect ratiosAmin Mesbah3+34-19
2019-04-03 06:31Scale player dimensions based on meter sizeAmin Mesbah1+15-1
2019-04-03 04:58Free memory allocated for shader source codeAmin Mesbah1+47-36
2019-04-03 03:57Don't heap allocate because there is no needAmin Mesbah1+3-11
2019-04-01 07:25Remove allocation from glmthAmin Mesbah3+17-8
2019-04-01 06:56Fix memory leakAmin Mesbah1+3-1
2019-04-01 01:52Make player smallerAmin Mesbah1+4-1
2019-04-01 01:40Use the same room dimensions as KnyttAmin Mesbah2+25-20
2019-04-01 01:13Remove unused codeAmin Mesbah6+15-182
2019-03-31 07:59Make player smallerAmin Mesbah1+1-1
2019-03-31 07:56Move player with keyboard controlsAmin Mesbah3+36-13
2019-03-31 07:30Get keyboard inputAmin Mesbah3+77-0
2019-03-28 07:12Render a FFOOFF squareAmin Mesbah1+18-0
2019-03-20 04:19Clean things up ever so slightlyAmin Mesbah1+31-21
2019-03-20 04:01Get tilemap to center properlyAmin Mesbah1+8-8
2019-03-07 06:19Don't link agains GLEWAmin Mesbah1+1-1
2019-03-05 05:31Use sweet inline compound literals to init vec3sAmin Mesbah1+7-7
2019-03-05 04:27Use custom types everywhere in game layerAmin Mesbah7+88-87
2019-03-05 01:48Align the tile map to the upper left cornerAmin Mesbah1+14-6
2019-03-04 00:31Render an obnoxious 'tile map'Amin Mesbah3+60-16
2019-03-03 22:44Switch to a unity buildAmin Mesbah10+18-62
2019-03-02 21:19Clean up passing of framebuffer dimensionsAmin Mesbah6+45-15
2019-03-02 20:25Render a tileAmin Mesbah3+76-2
2018-06-08 08:19Render a bunch of stars drifting in the backgroundAmin Mesbah5+205-55
2018-06-08 07:24Fix horrifyingly uncaught mistake in v2 definitionAmin Mesbah1+2-2
2018-06-08 05:18Load opengl symbols after loading game codeAmin Mesbah9+6709-16
2018-06-04 00:02Start gdb with tuiAmin Mesbah1+4-4
2018-06-02 06:37Update projection matrix w/ framebuffer dimensionsAmin Mesbah2+7-2
2018-06-02 06:14Use an orthographic projectionAmin Mesbah2+7-11
2018-06-02 03:50Set up projection and view matricesAmin Mesbah5+38-20
2018-06-01 06:44Scale, rotate, and tranlate a triangleAmin Mesbah5+22-12
2018-06-01 05:12Hotload game codeAmin Mesbah4+167-22
2018-06-01 03:08Use GLEW, not glad to load OpenGL functionsAmin Mesbah7+9-6679
2018-05-28 22:02Pull game setup out of platform layerAmin Mesbah3+58-37
2018-05-28 21:33Split platform and game layerAmin Mesbah9+779-716
2018-05-16 07:35Render a lovely triangleAmin Mesbah3+58-1
2018-05-16 06:46Make window resizeableAmin Mesbah1+44-15
2018-05-16 06:46Add math and shader libsAmin Mesbah2+706-0
2018-05-15 06:18Use glfw and gladAmin Mesbah3+71-17
2018-05-15 06:16Add GL loader code generated with gladAmin Mesbah3+6660-0
2018-05-14 05:28Start making a gameAmin Mesbah3+59-0