From fc201450459aeb4f2fc5bb80ae3c35a4c5f98824 Mon Sep 17 00:00:00 2001 From: andrewens Date: Fri, 19 Jan 2024 10:49:22 -0600 Subject: [PATCH] Change format of google drive asset links to remove http 403 error --- _drafts/2022-12-29-delaunay-triangulation.md | 2 +- _posts/2021-6-21-frontlines-match-flow.md | 88 +++++++++---------- .../2021-8-6-frontlines-gun-customization.md | 78 ++++++++-------- _posts/2022-11-30-hard-sphere-collisions.md | 22 ++--- _posts/2022-11-7-ship-relativity-render.md | 8 +- _posts/2022-12-22-planetary-controller.md | 28 +++--- _posts/2022-12-8-n-body-simulation.md | 54 ++++++------ _posts/2022-4-1-ssrp-battle-zone.md | 44 +++++----- _posts/2022-8-1-tiny-spaceship.md | 16 ++-- _posts/2023-1-14-in-game-lua-editor.md | 6 +- _posts/2023-1-19-tycoon-template.md | 4 +- _posts/2023-1-2-tunnel-wars-v1.md | 24 ++--- _posts/2023-1-27-assimilation-tag.md | 32 +++---- _posts/2023-2-3-tunnel-wars-v2.md | 24 ++--- _posts/2023-4-5-2d-cartesian-collisions.md | 12 +-- _posts/2023-4-7-2d-polar-collisions.md | 22 ++--- _posts/2023-5-7-2d-physics-engine.md | 24 ++--- _posts/2023-6-29-ship-crew-rpg.md | 36 ++++---- 18 files changed, 262 insertions(+), 262 deletions(-) diff --git a/_drafts/2022-12-29-delaunay-triangulation.md b/_drafts/2022-12-29-delaunay-triangulation.md index f7d5f10..13e898c 100644 --- a/_drafts/2022-12-29-delaunay-triangulation.md +++ b/_drafts/2022-12-29-delaunay-triangulation.md @@ -8,4 +8,4 @@ tags: ["technical"] ## Gifs -![PointsInTrangle.gif](https://drive.google.com/uc?id=1P_i0MtFj2r8uLFCbimL7NJ0ZFcjwaVpx&export=download) +![PointsInTrangle.gif](https://lh3.google.com/u/0/d/1P_i0MtFj2r8uLFCbimL7NJ0ZFcjwaVpx) diff --git a/_posts/2021-6-21-frontlines-match-flow.md b/_posts/2021-6-21-frontlines-match-flow.md index 1486bd3..12aa3c9 100644 --- a/_posts/2021-6-21-frontlines-match-flow.md +++ b/_posts/2021-6-21-frontlines-match-flow.md @@ -2,7 +2,7 @@ layout: post title: "FPS User Interface" tags: ["frontlines"] -thumbnail: https://drive.google.com/uc?id=16XIKUV3Q2RP8KpqB1wG2_c0P3gXARr6v&export=download +thumbnail: https://lh3.google.com/u/0/d/16XIKUV3Q2RP8KpqB1wG2_c0P3gXARr6v --- # About @@ -19,53 +19,53 @@ I used Rodux (Roblox equivalent of Redux.js) for managing the state, and I also # Gifs -![DeployScreenPanning.gif](https://drive.google.com/uc?id=16XIKUV3Q2RP8KpqB1wG2_c0P3gXARr6v&export=download) -![TestingFLWithNick.gif](https://drive.google.com/uc?id=1d13oyN09LV7tEQDLpblZAJBc8NecotM1&export=download) +![DeployScreenPanning.gif](https://lh3.google.com/u/0/d/16XIKUV3Q2RP8KpqB1wG2_c0P3gXARr6v) +![TestingFLWithNick.gif](https://lh3.google.com/u/0/d/1d13oyN09LV7tEQDLpblZAJBc8NecotM1) *Glock animation bug. I was testing my killfeed and gameplay UI* -![InGameLeaderboard.gif](https://drive.google.com/uc?id=1jYmc-6ClQ-x858plMCxGiTNcW5pJqQOg&export=download) -![BrowsingReduxStateAtRunTime.gif](https://drive.google.com/uc?id=1yqhkwAxFb3kFjqrxu_SH0OatPDCkA___&export=download) -![BuggyMapVoting.gif](https://drive.google.com/uc?id=1yJGQDMT3BSScYVg1C0iTERCdZG_J6maF&export=download) -![InGameLeaderboardOverlay.gif](https://drive.google.com/uc?id=1Z4etG_LDlixeGuwMQgCTCsXnK81HfCL3&export=download) -![MapVotingOnly.gif](https://drive.google.com/uc?id=1odwBbRzgGbvVlUN89aW2T6xuIKv2JNU5&export=download) -![MapVotingAndLeaderboard.gif](https://drive.google.com/uc?id=1Ker3f_p_gp7BA-g8yKHxnM9d6d0q2Ntk&export=download) -![TestingMatchFlow.gif](https://drive.google.com/uc?id=1h0KfMVjrh5P3c6OFHRiJY8CHn3I1MU-_&export=download) -![TestingBackEndAtRunTime.gif](https://drive.google.com/uc?id=1P4txo8PzjlXrEVYSczdpVRcXmD1OZyzI&export=download) +![InGameLeaderboard.gif](https://lh3.google.com/u/0/d/1jYmc-6ClQ-x858plMCxGiTNcW5pJqQOg) +![BrowsingReduxStateAtRunTime.gif](https://lh3.google.com/u/0/d/1yqhkwAxFb3kFjqrxu_SH0OatPDCkA___) +![BuggyMapVoting.gif](https://lh3.google.com/u/0/d/1yJGQDMT3BSScYVg1C0iTERCdZG_J6maF) +![InGameLeaderboardOverlay.gif](https://lh3.google.com/u/0/d/1Z4etG_LDlixeGuwMQgCTCsXnK81HfCL3) +![MapVotingOnly.gif](https://lh3.google.com/u/0/d/1odwBbRzgGbvVlUN89aW2T6xuIKv2JNU5) +![MapVotingAndLeaderboard.gif](https://lh3.google.com/u/0/d/1Ker3f_p_gp7BA-g8yKHxnM9d6d0q2Ntk) +![TestingMatchFlow.gif](https://lh3.google.com/u/0/d/1h0KfMVjrh5P3c6OFHRiJY8CHn3I1MU-_) +![TestingBackEndAtRunTime.gif](https://lh3.google.com/u/0/d/1P4txo8PzjlXrEVYSczdpVRcXmD1OZyzI) # Even more Gifs -![GalleryTest6.gif](https://drive.google.com/uc?id=1cJvMbnunrbaMAHXVGbXuR3mZEHxS8w1h&export=download) -![GalleryTest5.gif](https://drive.google.com/uc?id=1Iri8XQRO-7KjCSwjaS7A9_69-lcQBVLh&export=download) -![GalleryTest4.gif](https://drive.google.com/uc?id=1XWam7n6NhV2oGpQ65vUKCv7JYTHF5vhv&export=download) -![GalleryTest3.gif](https://drive.google.com/uc?id=1AIgQ8gOxxHMLj169Le6QASXZelaA0tky&export=download) -![GalleryTest2.gif](https://drive.google.com/uc?id=1uW9LypljuleVSC1fQ2yP_qf1HnobcDaQ&export=download) -![GalleryTest1.gif](https://drive.google.com/uc?id=1EusciAeDg2NHBJBb9PVpN4p66VRFg6l1&export=download) -![ProgressBarTest3.gif](https://drive.google.com/uc?id=1rdU0FoCl6Yqyc1GucjbVLg0XUJN6UPXP&export=download) -![ProgressBarTest2.gif](https://drive.google.com/uc?id=1gCvgODQ9wppMBVSZ5A9-c_O3p89xvTIh&export=download) -![ProgressBarTest1.gif](https://drive.google.com/uc?id=18vQzd9nYLGm7qFvhv9qYILite32yDt_6&export=download) -![WaitingForPlayers.gif](https://drive.google.com/uc?id=1NEIyjzaLybzBKd9NZiH_TFcfpoT-NLbq&export=download) -![ButtonClickAnimation.gif](https://drive.google.com/uc?id=1CxPRA0p8bbWqR3-cZ73usTcccycJjWv-&export=download) -![ButtonHoverAnimation.gif](https://drive.google.com/uc?id=11I_A5Ommt5qZKLk56KkyhTqdb1CWDIly&export=download) -![BuggyDeployButtonAnimation.gif](https://drive.google.com/uc?id=15cwhmFiZV8BrAOlwcSa42J65wOXdt2W0&export=download) -![MapLoadingScreen.gif](https://drive.google.com/uc?id=1KxndhaeDBGJpM2GgDJEujh9f4mB5J6-b&export=download) +![GalleryTest6.gif](https://lh3.google.com/u/0/d/1cJvMbnunrbaMAHXVGbXuR3mZEHxS8w1h) +![GalleryTest5.gif](https://lh3.google.com/u/0/d/1Iri8XQRO-7KjCSwjaS7A9_69-lcQBVLh) +![GalleryTest4.gif](https://lh3.google.com/u/0/d/1XWam7n6NhV2oGpQ65vUKCv7JYTHF5vhv) +![GalleryTest3.gif](https://lh3.google.com/u/0/d/1AIgQ8gOxxHMLj169Le6QASXZelaA0tky) +![GalleryTest2.gif](https://lh3.google.com/u/0/d/1uW9LypljuleVSC1fQ2yP_qf1HnobcDaQ) +![GalleryTest1.gif](https://lh3.google.com/u/0/d/1EusciAeDg2NHBJBb9PVpN4p66VRFg6l1) +![ProgressBarTest3.gif](https://lh3.google.com/u/0/d/1rdU0FoCl6Yqyc1GucjbVLg0XUJN6UPXP) +![ProgressBarTest2.gif](https://lh3.google.com/u/0/d/1gCvgODQ9wppMBVSZ5A9-c_O3p89xvTIh) +![ProgressBarTest1.gif](https://lh3.google.com/u/0/d/18vQzd9nYLGm7qFvhv9qYILite32yDt_6) +![WaitingForPlayers.gif](https://lh3.google.com/u/0/d/1NEIyjzaLybzBKd9NZiH_TFcfpoT-NLbq) +![ButtonClickAnimation.gif](https://lh3.google.com/u/0/d/1CxPRA0p8bbWqR3-cZ73usTcccycJjWv-) +![ButtonHoverAnimation.gif](https://lh3.google.com/u/0/d/11I_A5Ommt5qZKLk56KkyhTqdb1CWDIly) +![BuggyDeployButtonAnimation.gif](https://lh3.google.com/u/0/d/15cwhmFiZV8BrAOlwcSa42J65wOXdt2W0) +![MapLoadingScreen.gif](https://lh3.google.com/u/0/d/1KxndhaeDBGJpM2GgDJEujh9f4mB5J6-b) # And even more gifs -![DebuggingInGame2.gif](https://drive.google.com/uc?id=1Uwi49aM_IrGPhlWMSSHBhgtfBqDG2hrY&export=download) +![DebuggingInGame2.gif](https://lh3.google.com/u/0/d/1Uwi49aM_IrGPhlWMSSHBhgtfBqDG2hrY) *SO MANY ERRORS... from Nick's code ;^)* -![DebuggingInGame.gif](https://drive.google.com/uc?id=1WqbgJHBP4EbA6oejqd1jY28qig17LzQL&export=download) +![DebuggingInGame.gif](https://lh3.google.com/u/0/d/1WqbgJHBP4EbA6oejqd1jY28qig17LzQL) *I think we were looking for a memory leak?* -![FrontlinesMapFlyThrough2.gif](https://drive.google.com/uc?id=1NFNc2QexucchI95rtsBc1z0EB5UwVXFj&export=download) +![FrontlinesMapFlyThrough2.gif](https://lh3.google.com/u/0/d/1NFNc2QexucchI95rtsBc1z0EB5UwVXFj) *The modelers were so talented* -![FrontlinesMapFlyThrough1.gif](https://drive.google.com/uc?id=12jgy3CQp8wM2IVsBEV3tDZ9uIga28Pkb&export=download) +![FrontlinesMapFlyThrough1.gif](https://lh3.google.com/u/0/d/12jgy3CQp8wM2IVsBEV3tDZ9uIga28Pkb)

@@ -81,18 +81,18 @@ Later I had to normalize the capturing power of a teammate such that if every pl If I remember correctly, the circular progress indicator used a ROBLOX UI feature called Gradients for the transparency, but that required creating two halves for the circle. If you look closely, when the capture point progress is completed, there's still a small gap left before it resets, which I believe was due to there actually being two halves of the circle + clipping. # Gifs -![CapturePoint14.gif](https://drive.google.com/uc?id=1zihoZ43fODMPFHD5Az0YCQNNjV2C3SwR&export=download) -![CapturePoint13.gif](https://drive.google.com/uc?id=1CF2vkpgBCt-ogJGal-CXz1FB-iGNPuDe&export=download) -![SmallCapturePoint.gif](https://drive.google.com/uc?id=1TuAhelFw3aYOrQU0GFnRSqbGJVshN_I8&export=download) -![CapturePoint12.gif](https://drive.google.com/uc?id=1VOfno2scpmM2gHfIYoyS2sP3y4uIaW0r&export=download) -![CapturePoint11.gif](https://drive.google.com/uc?id=16L9t1bXkBvbOI2pWVx6zCCDEyi4wY9ig&export=download) -![CapturePoint10.gif](https://drive.google.com/uc?id=16F8Tb7qifSM-3LtnsgjRInpXtl_BQYYa&export=download) -![CapturePoint9.gif](https://drive.google.com/uc?id=1cbYGMWd_QcIlgAgFsT25Op8GS5SruB41&export=download) -![CapturePoint8.gif](https://drive.google.com/uc?id=1-4zC_tY4lMyQ99PS2IwQ0NHPb-Eozw4N&export=download) -![CapturePoint7.gif](https://drive.google.com/uc?id=1xhkZ08UZKe5fMPO0ZhKFkzsg-MGu6gNM&export=download) -![CapturePoint6.gif](https://drive.google.com/uc?id=1yjybXDG_KutbT1PbUanhGk1ArJUuiT4_&export=download) -![CapturePoint5.gif](https://drive.google.com/uc?id=17vADy6GvQAyBp0alZon4b44nE6zoa8KS&export=download) -![CapturePoint4.gif](https://drive.google.com/uc?id=16doLrKALkwoou72MFY4TkQkgn5j9KIjs&export=download) -![CapturePoint3.gif](https://drive.google.com/uc?id=1FP17-L9FiP4Agjc55zw1l2FjuIPHpIgR&export=download) -![CapturePoint2.gif](https://drive.google.com/uc?id=11Onknu3ZcKB0tnAFg_8WXS9SoEEGP1Wr&export=download) -![CapturePoint1.gif](https://drive.google.com/uc?id=1wWOQ0RUzT5P3FPD0f1GDUGkaLkvE55r4&export=download) \ No newline at end of file +![CapturePoint14.gif](https://lh3.google.com/u/0/d/1zihoZ43fODMPFHD5Az0YCQNNjV2C3SwR) +![CapturePoint13.gif](https://lh3.google.com/u/0/d/1CF2vkpgBCt-ogJGal-CXz1FB-iGNPuDe) +![SmallCapturePoint.gif](https://lh3.google.com/u/0/d/1TuAhelFw3aYOrQU0GFnRSqbGJVshN_I8) +![CapturePoint12.gif](https://lh3.google.com/u/0/d/1VOfno2scpmM2gHfIYoyS2sP3y4uIaW0r) +![CapturePoint11.gif](https://lh3.google.com/u/0/d/16L9t1bXkBvbOI2pWVx6zCCDEyi4wY9ig) +![CapturePoint10.gif](https://lh3.google.com/u/0/d/16F8Tb7qifSM-3LtnsgjRInpXtl_BQYYa) +![CapturePoint9.gif](https://lh3.google.com/u/0/d/1cbYGMWd_QcIlgAgFsT25Op8GS5SruB41) +![CapturePoint8.gif](https://lh3.google.com/u/0/d/1-4zC_tY4lMyQ99PS2IwQ0NHPb-Eozw4N) +![CapturePoint7.gif](https://lh3.google.com/u/0/d/1xhkZ08UZKe5fMPO0ZhKFkzsg-MGu6gNM) +![CapturePoint6.gif](https://lh3.google.com/u/0/d/1yjybXDG_KutbT1PbUanhGk1ArJUuiT4_) +![CapturePoint5.gif](https://lh3.google.com/u/0/d/17vADy6GvQAyBp0alZon4b44nE6zoa8KS) +![CapturePoint4.gif](https://lh3.google.com/u/0/d/16doLrKALkwoou72MFY4TkQkgn5j9KIjs) +![CapturePoint3.gif](https://lh3.google.com/u/0/d/1FP17-L9FiP4Agjc55zw1l2FjuIPHpIgR) +![CapturePoint2.gif](https://lh3.google.com/u/0/d/11Onknu3ZcKB0tnAFg_8WXS9SoEEGP1Wr) +![CapturePoint1.gif](https://lh3.google.com/u/0/d/1wWOQ0RUzT5P3FPD0f1GDUGkaLkvE55r4) \ No newline at end of file diff --git a/_posts/2021-8-6-frontlines-gun-customization.md b/_posts/2021-8-6-frontlines-gun-customization.md index c6346db..9be302d 100644 --- a/_posts/2021-8-6-frontlines-gun-customization.md +++ b/_posts/2021-8-6-frontlines-gun-customization.md @@ -2,7 +2,7 @@ layout: post title: "Modular gun customization for Frontlines" tags: ["frontlines"] -thumbnail: https://drive.google.com/uc?id=1yFpAxmmUnesMmyVXmByl5ZbEMNkuJx6-&export=download +thumbnail: https://lh3.google.com/u/0/d/1yFpAxmmUnesMmyVXmByl5ZbEMNkuJx6- --- # About @@ -22,42 +22,42 @@ Roact/Rodux were extremely helpful for making this happen. # Gifs -![SwappingReceivers2.gif](https://drive.google.com/uc?id=17EpbA2o2o05WmKJyXwudoHUSW8AkYLBZ&export=download) -![SwappingReceivers.gif](https://drive.google.com/uc?id=1eVHA1xLTl-MBDapMk3Y9F-H9qVMG6QCP&export=download) -![PickingLoadout.gif](https://drive.google.com/uc?id=1SjbYeNm39laBgXUwB-Xd0foUVvIypKVx&export=download) -![RandomizeLoadout2.gif](https://drive.google.com/uc?id=1JV0lvX2YyM5hLQYBJeTjSyxTsK92t7U_&export=download) -![SelectingDifferentGuns.gif](https://drive.google.com/uc?id=196efZPJZRIXQR6ZBrCXljrDHxIExcap0&export=download) -![RandomizeLoadout.gif](https://drive.google.com/uc?id=1z_9HaJWEKqx5mM_H2hDyPZ7akGCBvqR6&export=download) -![CustomizingMultipleModules2.gif](https://drive.google.com/uc?id=1zZxafxk3k0lBsXjadnMP9Lxleb6DncKo&export=download) -![CustomizingMultipleModules.gif](https://drive.google.com/uc?id=1yFpAxmmUnesMmyVXmByl5ZbEMNkuJx6-&export=download) -![RotatingGun.gif](https://drive.google.com/uc?id=1L6ABB6OOR43nOoYORsp61HrAacyTqIUk&export=download) -![EditingHelicopter.gif](https://drive.google.com/uc?id=1Z_likIQMNrH3gFvbb-JTfda_2TM89N35&export=download) +![SwappingReceivers2.gif](https://lh3.google.com/u/0/d/17EpbA2o2o05WmKJyXwudoHUSW8AkYLBZ) +![SwappingReceivers.gif](https://lh3.google.com/u/0/d/1eVHA1xLTl-MBDapMk3Y9F-H9qVMG6QCP) +![PickingLoadout.gif](https://lh3.google.com/u/0/d/1SjbYeNm39laBgXUwB-Xd0foUVvIypKVx) +![RandomizeLoadout2.gif](https://lh3.google.com/u/0/d/1JV0lvX2YyM5hLQYBJeTjSyxTsK92t7U_) +![SelectingDifferentGuns.gif](https://lh3.google.com/u/0/d/196efZPJZRIXQR6ZBrCXljrDHxIExcap0) +![RandomizeLoadout.gif](https://lh3.google.com/u/0/d/1z_9HaJWEKqx5mM_H2hDyPZ7akGCBvqR6) +![CustomizingMultipleModules2.gif](https://lh3.google.com/u/0/d/1zZxafxk3k0lBsXjadnMP9Lxleb6DncKo) +![CustomizingMultipleModules.gif](https://lh3.google.com/u/0/d/1yFpAxmmUnesMmyVXmByl5ZbEMNkuJx6-) +![RotatingGun.gif](https://lh3.google.com/u/0/d/1L6ABB6OOR43nOoYORsp61HrAacyTqIUk) +![EditingHelicopter.gif](https://lh3.google.com/u/0/d/1Z_likIQMNrH3gFvbb-JTfda_2TM89N35) The following gifs are previous iterations of the system shown above. # Gifs (prototyping with Roact, after accelerator) -![GraphTraversal.gif](https://drive.google.com/uc?id=138XiGw0rScDvEJp35h5Sf9Oa3ZytlNJV&export=download) -![ILoveRoact.gif](https://drive.google.com/uc?id=1kNzDQhheGrCrY1dU2FEaHn4ZacFxmDZ0&export=download) -![NonClippedPrototypeUI.gif](https://drive.google.com/uc?id=1QwHkQdVJc-I7z8_B6ZH4jBWeDNCv38sK&export=download) -![PrototypeUI2.gif](https://drive.google.com/uc?id=142-xrUtnD0la6_v0H7wBUmRw73e-zVvE&export=download) -![PrototypeUI.gif](https://drive.google.com/uc?id=11wirQuGlCtlMjY3b1_MqyHxgFVdbN93B&export=download) -![WeaponStatsGraph.gif](https://drive.google.com/uc?id=19IhOH0wxkRAh_gxwu9a8sNjhu3E19vXj&export=download) -![PrototypeCustomizationEquipping.gif](https://drive.google.com/uc?id=1lIWowxYTGwKru1DBaGOwF87Xr9XHZwWH&export=download) -![PrototypeCustomization4.gif](https://drive.google.com/uc?id=1WEAZQ6GcLOLR-ZiiL-h1NuRhAhM5Opck&export=download) -![PrototypeCustomization3.gif](https://drive.google.com/uc?id=1hCyPm9_ZCqEgAi73R6zRgyxZQTGuKLMC&export=download) -![PrototypeCustomization2.gif](https://drive.google.com/uc?id=1WvvJwOPhTO9nUhNjNDxY4L2QYVIMTjgI&export=download) -![PrototypeCustomization.gif](https://drive.google.com/uc?id=1_lIEFq_ARV61myf4FQMhVap5XB9YjnRR&export=download) +![GraphTraversal.gif](https://lh3.google.com/u/0/d/138XiGw0rScDvEJp35h5Sf9Oa3ZytlNJV) +![ILoveRoact.gif](https://lh3.google.com/u/0/d/1kNzDQhheGrCrY1dU2FEaHn4ZacFxmDZ0) +![NonClippedPrototypeUI.gif](https://lh3.google.com/u/0/d/1QwHkQdVJc-I7z8_B6ZH4jBWeDNCv38sK) +![PrototypeUI2.gif](https://lh3.google.com/u/0/d/142-xrUtnD0la6_v0H7wBUmRw73e-zVvE) +![PrototypeUI.gif](https://lh3.google.com/u/0/d/11wirQuGlCtlMjY3b1_MqyHxgFVdbN93B) +![WeaponStatsGraph.gif](https://lh3.google.com/u/0/d/19IhOH0wxkRAh_gxwu9a8sNjhu3E19vXj) +![PrototypeCustomizationEquipping.gif](https://lh3.google.com/u/0/d/1lIWowxYTGwKru1DBaGOwF87Xr9XHZwWH) +![PrototypeCustomization4.gif](https://lh3.google.com/u/0/d/1WEAZQ6GcLOLR-ZiiL-h1NuRhAhM5Opck) +![PrototypeCustomization3.gif](https://lh3.google.com/u/0/d/1hCyPm9_ZCqEgAi73R6zRgyxZQTGuKLMC) +![PrototypeCustomization2.gif](https://lh3.google.com/u/0/d/1WvvJwOPhTO9nUhNjNDxY4L2QYVIMTjgI) +![PrototypeCustomization.gif](https://lh3.google.com/u/0/d/1_lIEFq_ARV61myf4FQMhVap5XB9YjnRR) # Gifs (from during accelerator) -![SelectMeleeWeapon.gif](https://drive.google.com/uc?id=1bYC_AkeWIK2Lm3R0SZNT63w9YtdspT5A&export=download) -![PrototypeLoadouts.gif](https://drive.google.com/uc?id=1wK0ZsU6WM2SuzvYKs0InHZ-X1Qscz9dI&export=download) -![PrototypeCustomization4.gif](https://drive.google.com/uc?id=1ys6DXArzroELLeVG8NdSVVO4hlF5tErW&export=download) -![PrototypeCustomization3.gif](https://drive.google.com/uc?id=16DxJ6H-w-LZgamQzFZSaPGO1KIGD1tcH&export=download) -![PrototypeCustomization2.gif](https://drive.google.com/uc?id=1m6UQTOIhAnOIEIuU5jlo6TA75cQj8BVZ&export=download) -![PrototypeCustomization.gif](https://drive.google.com/uc?id=1eS95h8UlXuuL6Vg1jCm2emO0lIxrb-_b&export=download) -![PrototypeModularCustomization.gif](https://drive.google.com/uc?id=19-iyzwbUpFyRyCYbZwLDKp7oleOtYqX3&export=download) +![SelectMeleeWeapon.gif](https://lh3.google.com/u/0/d/1bYC_AkeWIK2Lm3R0SZNT63w9YtdspT5A) +![PrototypeLoadouts.gif](https://lh3.google.com/u/0/d/1wK0ZsU6WM2SuzvYKs0InHZ-X1Qscz9dI) +![PrototypeCustomization4.gif](https://lh3.google.com/u/0/d/1ys6DXArzroELLeVG8NdSVVO4hlF5tErW) +![PrototypeCustomization3.gif](https://lh3.google.com/u/0/d/16DxJ6H-w-LZgamQzFZSaPGO1KIGD1tcH) +![PrototypeCustomization2.gif](https://lh3.google.com/u/0/d/1m6UQTOIhAnOIEIuU5jlo6TA75cQj8BVZ) +![PrototypeCustomization.gif](https://lh3.google.com/u/0/d/1eS95h8UlXuuL6Vg1jCm2emO0lIxrb-_b) +![PrototypeModularCustomization.gif](https://lh3.google.com/u/0/d/19-iyzwbUpFyRyCYbZwLDKp7oleOtYqX3) @@ -78,18 +78,18 @@ I was really proud of the plugin UI, though. The toggle buttons are SO SATISFYIN # Gifs -![SpammingNickWithDesignChoices.gif](https://drive.google.com/uc?id=1eF4AGKPkKbBBVDQsVhesd72ChuqUw6yF&export=download) +![SpammingNickWithDesignChoices.gif](https://lh3.google.com/u/0/d/1eF4AGKPkKbBBVDQsVhesd72ChuqUw6yF) I care a lot about getting software right, which is evident from this gif of me writing essays about design decisions to Nick, the main developer for Frontlines. In retrospect, having to write that much about design decisions was a red flag that we didn't have a good development process set up. If we had been able to decide on a unified style & process for writing, testing, and evaluating code, then we wouldn't need to think that hard about design decisions and maybe work in smaller increments. -![GeneratingBoilerPlate.gif](https://drive.google.com/uc?id=12o41i6uojujevUD54-F93-W0exhlTEho&export=download) -![ConvertingFoldersToModels.gif](https://drive.google.com/uc?id=12O4oxDgxtEEegnLGqTj4QOaGu8R0Qr6F&export=download) -![UploadCycleMessages.gif](https://drive.google.com/uc?id=101yzwumNVOi0iVvwoFt21t_INkvCNy-H&export=download) -![UploadCycleBadDependencies.gif](https://drive.google.com/uc?id=1Z783d0xiKkj3QEhZ4CwjLIESQ0M31zzS&export=download) -![UploadCycleFormattedIncorrectly.gif](https://drive.google.com/uc?id=1ZYecv_dE99SoWa3JzryUZvnZGapeuehP&export=download) -![UploadCycleWithEnums3.gif](https://drive.google.com/uc?id=1ZA9ZsnlE492joYHWJBwU193V4BQPjCWy&export=download) -![UploadCycleWithEnums2.gif](https://drive.google.com/uc?id=1TAvX23Ri0FLRbdkXvJ95Q6bZRb9xKiRA&export=download) -![UploadCycleWithEnums.gif](https://drive.google.com/uc?id=1M126qnBkstOe1m2M6GSJGy60LSLQ4b_a&export=download) -![UploadCycle.gif](https://drive.google.com/uc?id=1R8knfGJ2gAoARzo7GgMKrEWGbcAqAVr3&export=download) +![GeneratingBoilerPlate.gif](https://lh3.google.com/u/0/d/12o41i6uojujevUD54-F93-W0exhlTEho) +![ConvertingFoldersToModels.gif](https://lh3.google.com/u/0/d/12O4oxDgxtEEegnLGqTj4QOaGu8R0Qr6F) +![UploadCycleMessages.gif](https://lh3.google.com/u/0/d/101yzwumNVOi0iVvwoFt21t_INkvCNy-H) +![UploadCycleBadDependencies.gif](https://lh3.google.com/u/0/d/1Z783d0xiKkj3QEhZ4CwjLIESQ0M31zzS) +![UploadCycleFormattedIncorrectly.gif](https://lh3.google.com/u/0/d/1ZYecv_dE99SoWa3JzryUZvnZGapeuehP) +![UploadCycleWithEnums3.gif](https://lh3.google.com/u/0/d/1ZA9ZsnlE492joYHWJBwU193V4BQPjCWy) +![UploadCycleWithEnums2.gif](https://lh3.google.com/u/0/d/1TAvX23Ri0FLRbdkXvJ95Q6bZRb9xKiRA) +![UploadCycleWithEnums.gif](https://lh3.google.com/u/0/d/1M126qnBkstOe1m2M6GSJGy60LSLQ4b_a) +![UploadCycle.gif](https://lh3.google.com/u/0/d/1R8knfGJ2gAoARzo7GgMKrEWGbcAqAVr3) diff --git a/_posts/2022-11-30-hard-sphere-collisions.md b/_posts/2022-11-30-hard-sphere-collisions.md index d9de12f..4e23256 100644 --- a/_posts/2022-11-30-hard-sphere-collisions.md +++ b/_posts/2022-11-30-hard-sphere-collisions.md @@ -2,7 +2,7 @@ layout: post title: "(Bad) Hard Particle Collisions" tags: ["ship crew rpg", "technical"] -thumbnail: https://drive.google.com/uc?id=1Z6DsWk8sIqpu1cTBVuqLhk0qrtYIn9rF&export=download +thumbnail: https://lh3.google.com/u/0/d/1Z6DsWk8sIqpu1cTBVuqLhk0qrtYIn9rF --- ## About @@ -12,16 +12,16 @@ While researching physics for my [Ship Crew RPG]({% post_url 2023-6-29-ship-crew ## Gifs This model is dated 11/30... -![sphere-collisions-3.gif](https://drive.google.com/uc?id=1yAQmYNCaUNJr8X738jCMMXYyF2ElGKwL&export=download) -![how-to-fix-a-bug.gif](https://drive.google.com/uc?id=1hgJCZxGzqbfxE3wYpXTP9gpAOSnb1y3Q&export=download) -![sphere-collisions-2.gif](https://drive.google.com/uc?id=1RaqL74H1PZxtlNpMczLzZXRQYfdvRooZ&export=download) -![sphere-collisions-1.gif](https://drive.google.com/uc?id=1E8bYsJIQE7YXonDl5YSQrHT7LjgD9hLU&export=download) +![sphere-collisions-3.gif](https://lh3.google.com/u/0/d/1yAQmYNCaUNJr8X738jCMMXYyF2ElGKwL) +![how-to-fix-a-bug.gif](https://lh3.google.com/u/0/d/1hgJCZxGzqbfxE3wYpXTP9gpAOSnb1y3Q) +![sphere-collisions-2.gif](https://lh3.google.com/u/0/d/1RaqL74H1PZxtlNpMczLzZXRQYfdvRooZ) +![sphere-collisions-1.gif](https://lh3.google.com/u/0/d/1E8bYsJIQE7YXonDl5YSQrHT7LjgD9hLU) But this demo is dated 10/28. I don't think this demo uses the collision model up above. They're related though so I'm keeping them in the same post. -![Deterioration.gif](https://drive.google.com/uc?id=1TPfGdLy55uD_avAqoyS4GsFO6F4_FJi8&export=download) -![BuggyCollision.gif](https://drive.google.com/uc?id=1m-Sr6d7NpO4RnKUzffYq0k65lIRZc5OE&export=download) -![WhenParticlesAreInsideEachOther.gif](https://drive.google.com/uc?id=1M1X3J6PLC4a9ABcCJG-w1WRhn9FHvUxu&export=download) -![BilliardsBreak.gif](https://drive.google.com/uc?id=1Z6DsWk8sIqpu1cTBVuqLhk0qrtYIn9rF&export=download) -![FewParticles.gif](https://drive.google.com/uc?id=1fjDquq_oKJLYTRXBMaPSpS2nB7LYtxW5&export=download) -![LotsOfParticles.gif](https://drive.google.com/uc?id=1pldUGYKGIxHfWkf3Sbfv8jI64XIGIhOJ&export=download) +![Deterioration.gif](https://lh3.google.com/u/0/d/1TPfGdLy55uD_avAqoyS4GsFO6F4_FJi8) +![BuggyCollision.gif](https://lh3.google.com/u/0/d/1m-Sr6d7NpO4RnKUzffYq0k65lIRZc5OE) +![WhenParticlesAreInsideEachOther.gif](https://lh3.google.com/u/0/d/1M1X3J6PLC4a9ABcCJG-w1WRhn9FHvUxu) +![BilliardsBreak.gif](https://lh3.google.com/u/0/d/1Z6DsWk8sIqpu1cTBVuqLhk0qrtYIn9rF) +![FewParticles.gif](https://lh3.google.com/u/0/d/1fjDquq_oKJLYTRXBMaPSpS2nB7LYtxW5) +![LotsOfParticles.gif](https://lh3.google.com/u/0/d/1pldUGYKGIxHfWkf3Sbfv8jI64XIGIhOJ) diff --git a/_posts/2022-11-7-ship-relativity-render.md b/_posts/2022-11-7-ship-relativity-render.md index 547b2cf..691e4b3 100644 --- a/_posts/2022-11-7-ship-relativity-render.md +++ b/_posts/2022-11-7-ship-relativity-render.md @@ -2,7 +2,7 @@ layout: post title: "Ship relativity render" tags: ["ship crew rpg", "technical"] -thumbnail: https://drive.google.com/uc?id=1oPqU6dxBJ3upJc6eBAqJGrlsp8FfnVTt&export=download +thumbnail: https://lh3.google.com/u/0/d/1oPqU6dxBJ3upJc6eBAqJGrlsp8FfnVTt --- ## About @@ -13,14 +13,14 @@ Whenever my character is inside the spaceship, the spaceship is not actually mov ## Gifs -![FlyingFromInterior.gif](https://drive.google.com/uc?id=1RZu0PiC0SnjK_vAz_4cmvJ9_xDQ88SGA&export=download) +![FlyingFromInterior.gif](https://lh3.google.com/u/0/d/1RZu0PiC0SnjK_vAz_4cmvJ9_xDQ88SGA) _The ship isn't moving -- the environment is._ -![WalkingAroundInterior.gif](https://drive.google.com/uc?id=1oPqU6dxBJ3upJc6eBAqJGrlsp8FfnVTt&export=download) +![WalkingAroundInterior.gif](https://lh3.google.com/u/0/d/1oPqU6dxBJ3upJc6eBAqJGrlsp8FfnVTt) _You can walk around the inside without any centripetal acceleration or bugginess, even though you're "moving"._ -![SwitchingViews.gif](https://drive.google.com/uc?id=1cJCekYPYA00m_FMAAxHGp1zNJsWie10b&export=download) +![SwitchingViews.gif](https://lh3.google.com/u/0/d/1cJCekYPYA00m_FMAAxHGp1zNJsWie10b) _Seamlessly swapping between interior & exterior (minimodel) environments. The minimodel is actually 10x smaller than the full-scale ship interior, and is also at a different position/orientation. Camera magic._ diff --git a/_posts/2022-12-22-planetary-controller.md b/_posts/2022-12-22-planetary-controller.md index 267ccb8..45933c1 100644 --- a/_posts/2022-12-22-planetary-controller.md +++ b/_posts/2022-12-22-planetary-controller.md @@ -2,7 +2,7 @@ layout: post title: "walk on a round 3D planet with gravity" tags: ["ship crew rpg", "technical"] -thumbnail: https://drive.google.com/uc?id=1akeX-oG1AH83jLLMTeteLgSYASfd3qSw&export=download +thumbnail: https://lh3.google.com/u/0/d/1akeX-oG1AH83jLLMTeteLgSYASfd3qSw --- ## About @@ -19,22 +19,22 @@ Then, the character's movement and orientation are defined in terms of that tang ## Gifs -![FreeCharacterRotation.gif](https://drive.google.com/uc?id=1akeX-oG1AH83jLLMTeteLgSYASfd3qSw&export=download) +![FreeCharacterRotation.gif](https://lh3.google.com/u/0/d/1akeX-oG1AH83jLLMTeteLgSYASfd3qSw) _Final iteration._ -![MouseLock.gif](https://drive.google.com/uc?id=1-Wr2Mp6EcNM8XJOpZJIikkzmdUKpPEFi&export=download) +![MouseLock.gif](https://lh3.google.com/u/0/d/1-Wr2Mp6EcNM8XJOpZJIikkzmdUKpPEFi) _A mouselock variant_ -![NoCharacterTurning.gif](https://drive.google.com/uc?id=1fZReXyNJWfFbwKg4Hn2qfR_UVRPzTo3M&export=download) +![NoCharacterTurning.gif](https://lh3.google.com/u/0/d/1fZReXyNJWfFbwKg4Hn2qfR_UVRPzTo3M) _I had to manually make the character face in the direction of the camera. This is what it looked like before I did that._ -![FailedAttemptNo2.gif](https://drive.google.com/uc?id=1eCVGx5luA16dqj2OQyK4IYQPavVy1M4w&export=download) +![FailedAttemptNo2.gif](https://lh3.google.com/u/0/d/1eCVGx5luA16dqj2OQyK4IYQPavVy1M4w) _My first few attempts were completely nonsensical lol_ -![FailedAttemptNo1.gif](https://drive.google.com/uc?id=1SyYxegAbwPDq8uIu273ni1WpMzT3RpRH&export=download) +![FailedAttemptNo1.gif](https://lh3.google.com/u/0/d/1SyYxegAbwPDq8uIu273ni1WpMzT3RpRH) _This is what my first attempt looked like_ @@ -49,11 +49,11 @@ I've done more work since this demo [here.]({% post_url 2023-5-7-2d-physics-engi ## Gifs -![FastAndUnstable.gif](https://drive.google.com/uc?id=1qo3hpMMxLUeSAf2H0c4kXeIGSEdYj9Er&export=download) -![MirrorCollision.gif](https://drive.google.com/uc?id=1EDct366aKZvuwLHATpe_bZ7v1NYSROF8&export=download) -![SecondPersonCrash.gif](https://drive.google.com/uc?id=1FpD9jhyDlRcLabEcQ7yT1O80MaWQefmG&export=download) -![SatisfyingCompleteCircle.gif](https://drive.google.com/uc?id=1tYHLSL8dFjVDwXxZQ_g1Nri9_Fkg5i07&export=download) -![UmWhat.gif](https://drive.google.com/uc?id=1K9GUD7em6yE27Smy_6eQr_K0VdbNLfec&export=download) -![OrbitalSpaghetti.gif](https://drive.google.com/uc?id=1bGDn5qfPbJjYBCS6Gk0xbfDXmlbAjIGj&export=download) -![SlowAndControlled.gif](https://drive.google.com/uc?id=185Q34gyfJ_cwflDTzPRYBU9vUDNBsTH7&export=download) -![ThirdPersonCrash.gif](https://drive.google.com/uc?id=1U1XwaMTIcBjZBs4bLHMBquxSR5KXUgoe&export=download) \ No newline at end of file +![FastAndUnstable.gif](https://lh3.google.com/u/0/d/1qo3hpMMxLUeSAf2H0c4kXeIGSEdYj9Er) +![MirrorCollision.gif](https://lh3.google.com/u/0/d/1EDct366aKZvuwLHATpe_bZ7v1NYSROF8) +![SecondPersonCrash.gif](https://lh3.google.com/u/0/d/1FpD9jhyDlRcLabEcQ7yT1O80MaWQefmG) +![SatisfyingCompleteCircle.gif](https://lh3.google.com/u/0/d/1tYHLSL8dFjVDwXxZQ_g1Nri9_Fkg5i07) +![UmWhat.gif](https://lh3.google.com/u/0/d/1K9GUD7em6yE27Smy_6eQr_K0VdbNLfec) +![OrbitalSpaghetti.gif](https://lh3.google.com/u/0/d/1bGDn5qfPbJjYBCS6Gk0xbfDXmlbAjIGj) +![SlowAndControlled.gif](https://lh3.google.com/u/0/d/185Q34gyfJ_cwflDTzPRYBU9vUDNBsTH7) +![ThirdPersonCrash.gif](https://lh3.google.com/u/0/d/1U1XwaMTIcBjZBs4bLHMBquxSR5KXUgoe) \ No newline at end of file diff --git a/_posts/2022-12-8-n-body-simulation.md b/_posts/2022-12-8-n-body-simulation.md index fa364a5..fa84578 100644 --- a/_posts/2022-12-8-n-body-simulation.md +++ b/_posts/2022-12-8-n-body-simulation.md @@ -2,7 +2,7 @@ layout: post title: "n-body gravity simulation" tags: ["ship crew rpg", "technical"] -thumbnail: https://drive.google.com/uc?id=1WRy6BjQrOEoVzm9Z-AZ5e3T8lS9qKMea&export=download +thumbnail: https://lh3.google.com/u/0/d/1WRy6BjQrOEoVzm9Z-AZ5e3T8lS9qKMea --- ## About @@ -15,15 +15,15 @@ This allowed me to simulate several thousands of stars in ROBLOX. That won't sou I <3 gravity -![n-body-sim-2.gif](https://drive.google.com/uc?id=1l3WazT1wBeXtzqT7U7fz5zdolPq2Nxvd&export=download) -![n-body-sim-3.gif](https://drive.google.com/uc?id=1WRy6BjQrOEoVzm9Z-AZ5e3T8lS9qKMea&export=download) -![n-body-sim-1.gif](https://drive.google.com/uc?id=1neThe98FvFmVj2onkheD-EwuD8Rbf9i9&export=download) -![n-body-sim-4.gif](https://drive.google.com/uc?id=12CZeH9ab3sqa8Th82On4q5qYajUuQh6J&export=download) +![n-body-sim-2.gif](https://lh3.google.com/u/0/d/1l3WazT1wBeXtzqT7U7fz5zdolPq2Nxvd) +![n-body-sim-3.gif](https://lh3.google.com/u/0/d/1WRy6BjQrOEoVzm9Z-AZ5e3T8lS9qKMea) +![n-body-sim-1.gif](https://lh3.google.com/u/0/d/1neThe98FvFmVj2onkheD-EwuD8Rbf9i9) +![n-body-sim-4.gif](https://lh3.google.com/u/0/d/12CZeH9ab3sqa8Th82On4q5qYajUuQh6J) These are actually naive n-body simulations (every star has gravitaitonal mass) but they're really cool so I wanted to include them -![three-concentric-rings.gif](https://drive.google.com/uc?id=1BgmXlxUttBqOrPrMu-f-53EYw7Sd1wQs&export=download) -![sick-n-body-rings.gif](https://drive.google.com/uc?id=12_sbIqHWFPhQHFmc4o2gwMYCavk76Cjr&export=download) +![three-concentric-rings.gif](https://lh3.google.com/u/0/d/1BgmXlxUttBqOrPrMu-f-53EYw7Sd1wQs) +![sick-n-body-rings.gif](https://lh3.google.com/u/0/d/12_sbIqHWFPhQHFmc4o2gwMYCavk76Cjr)

@@ -66,51 +66,51 @@ The gist of the algorithm is that clusters of bodies can be approximated as a si > You can play/edit this demo on ROBLOX [here.](https://www.roblox.com/games/11391815266/Barnes-Hut-Gravity-Simulation) -![moving-solar-system.gif](https://drive.google.com/uc?id=1Zm8hZwfWqMbZEaDSjfoGB-FbkJ1Lb9vX&export=download) +![moving-solar-system.gif](https://lh3.google.com/u/0/d/1Zm8hZwfWqMbZEaDSjfoGB-FbkJ1Lb9vX) _The green boxes are the cells of the octree, the spatial partioning structure that makes this work_ Of course, if you're too close to the cluster of objects like in this gif, then you would just calculate gravity between every pair of objects normally. -![flinging-stars.gif](https://drive.google.com/uc?id=1AT6pdArDxMrSjl0W_Y5tNQC7DbsVakaZ&export=download) +![flinging-stars.gif](https://lh3.google.com/u/0/d/1AT6pdArDxMrSjl0W_Y5tNQC7DbsVakaZ) _(there are no collision implemented in this demo)_ -![feeding-a-star.gif](https://drive.google.com/uc?id=13tWDzzfiA5VIKT21NNPMzKq6uuFXY4OM&export=download) +![feeding-a-star.gif](https://lh3.google.com/u/0/d/13tWDzzfiA5VIKT21NNPMzKq6uuFXY4OM) _Octrees are finite in size -- the grey parts outline the edge of the octree._ I don't have a gif showing it, but the stair-stepped, colored blocks change the distance at which the algorithm switches from high-precision calculations to approximating large swathes of points. The shorter the distance you start approximating at, the more efficient the algorithm is-- but the less precise it becomes. -![building-asteroid-belt-1.gif](https://drive.google.com/uc?id=1xHjHjQGtKs6LgDasx6LqAYZV_tfCTJTa&export=download) +![building-asteroid-belt-1.gif](https://lh3.google.com/u/0/d/1xHjHjQGtKs6LgDasx6LqAYZV_tfCTJTa) _The purple block sets approximation at the highest distance threshold, which is least efficient but most precise._ Barnes-Hut works well because, when simulating gravity between galaxies, it is very common for spread-out clusters of stars to exist, which is the condition Barnes-Hut exploits. -![building-asteroid-belt-2.gif](https://drive.google.com/uc?id=1XA3GxcTgnJT2thrMOUvubFZPN-2AwSXg&export=download) +![building-asteroid-belt-2.gif](https://lh3.google.com/u/0/d/1XA3GxcTgnJT2thrMOUvubFZPN-2AwSXg) _There's a "sweet spot" distance from a gravitational center where bodies can orbit in a circular path_ -![building-asteroid-belt-3.gif](https://drive.google.com/uc?id=18kujD9jzTBfkTDS2cWb2H_m7CNb7hX1V&export=download) +![building-asteroid-belt-3.gif](https://lh3.google.com/u/0/d/18kujD9jzTBfkTDS2cWb2H_m7CNb7hX1V) *Great success* ## More gifs I'm not gonna lie, it was really fun to play around with this tech demo. -![planets-and-asteroids-orbiting-black-hole.gif](https://drive.google.com/uc?id=1AWdKbQbDHJpQ55XLCB7znbqd2_KDuYG7&export=download) +![planets-and-asteroids-orbiting-black-hole.gif](https://lh3.google.com/u/0/d/1AWdKbQbDHJpQ55XLCB7znbqd2_KDuYG7) *I think I hit the rendering limit lol* -![spamming-stars.gif](https://drive.google.com/uc?id=1lUBZbuzpYYLth3p48ysoV2sKA_rex-6D&export=download) +![spamming-stars.gif](https://lh3.google.com/u/0/d/1lUBZbuzpYYLth3p48ysoV2sKA_rex-6D) *If you throw stars at a black hole you can fling it into outer space* -![sucking-asteroids-into-gravity-well.gif](https://drive.google.com/uc?id=1N644WXq994yK0ocZiwNpslvXaVfPVPT6&export=download) +![sucking-asteroids-into-gravity-well.gif](https://lh3.google.com/u/0/d/1N644WXq994yK0ocZiwNpslvXaVfPVPT6) *I made an asteroid machine gun and then sucked them all into a star* -![shooting-asteroids-into-gravity-well.gif](https://drive.google.com/uc?id=1ubKJpTMJL-tfUVVE_ydUYQua_0yULKIY&export=download) +![shooting-asteroids-into-gravity-well.gif](https://lh3.google.com/u/0/d/1ubKJpTMJL-tfUVVE_ydUYQua_0yULKIY) *And then if you shoot the asteroids at the star, they get flung really far* @@ -133,15 +133,15 @@ In the context of the Barnes-Hut algorithm, a quadtree or octree allows us to ea > You can play/edit this demo on ROBLOX [here.](https://www.roblox.com/games/11326654961/Quadtree) -![polished-quad-tree-1.gif](https://drive.google.com/uc?id=1oS3hc3Sscgsc0WTOp4wx6sWxU-liUHvI&export=download) +![polished-quad-tree-1.gif](https://lh3.google.com/u/0/d/1oS3hc3Sscgsc0WTOp4wx6sWxU-liUHvI) _Each ball gets its own cell, generally speaking. Smaller cells are children of bigger cells._ -![polished-quad-tree-2.gif](https://drive.google.com/uc?id=1m7lxf_LtdKK7QlzxMbB5XZ96AHEDZY1P&export=download) +![polished-quad-tree-2.gif](https://lh3.google.com/u/0/d/1m7lxf_LtdKK7QlzxMbB5XZ96AHEDZY1P) _The purple crystal erases the board_ -![polished-quad-tree-coincident-points.gif](https://drive.google.com/uc?id=1qzQyMY4pz4aDPHfNEj2N9_QLle42QN5z&export=download) +![polished-quad-tree-coincident-points.gif](https://lh3.google.com/u/0/d/1qzQyMY4pz4aDPHfNEj2N9_QLle42QN5z) _Cell size has a minimum limit to avoid infinite recursion (and stack overflow) when coincident points are introduced._ @@ -151,20 +151,20 @@ This is an earlier version of the quadtree: (The points are randomly added) -![slow-random-quad-tree-1.gif](https://drive.google.com/uc?id=1SBft1Ua-q9rJ31YMSNszjd0YgaKKgq0O&export=download) -![slow-random-quad-tree.gif](https://drive.google.com/uc?id=1g2rDD6OpXD2Tc_fukNrqqbMIT2bZ5uWy&export=download) +![slow-random-quad-tree-1.gif](https://lh3.google.com/u/0/d/1SBft1Ua-q9rJ31YMSNszjd0YgaKKgq0O) +![slow-random-quad-tree.gif](https://lh3.google.com/u/0/d/1g2rDD6OpXD2Tc_fukNrqqbMIT2bZ5uWy) I experimented with implementing the quadtree as an array (similar to how one can implement a binary tree as an array). This gif visualizes where nodes are stored in the array: -![quad-tree-as-an-array.gif](https://drive.google.com/uc?id=16VGHTndYTQJ5uOYaIvPzrcHeyTrbBBLr&export=download) +![quad-tree-as-an-array.gif](https://lh3.google.com/u/0/d/16VGHTndYTQJ5uOYaIvPzrcHeyTrbBBLr) And these are 3D Octrees, so-called because they have eight octants instead of four quadrants. -![random-oct-tree-1.gif](https://drive.google.com/uc?id=1IvPgBdtABHF2Rqet3Fsil7D6pnFcsPLN&export=download) +![random-oct-tree-1.gif](https://lh3.google.com/u/0/d/1IvPgBdtABHF2Rqet3Fsil7D6pnFcsPLN) _Slow_ -![random-oct-tree-2.gif](https://drive.google.com/uc?id=1FBlE47uFKVKpIg7mN3GvJVLhY-lkh_UW&export=download) +![random-oct-tree-2.gif](https://lh3.google.com/u/0/d/1FBlE47uFKVKpIg7mN3GvJVLhY-lkh_UW) _Speedy_ @@ -178,5 +178,5 @@ While playing with n-body gravity simulations, I found it difficult to construct ## Gifs -![Bad.gif](https://drive.google.com/uc?id=1o3EE13ulGgg9FzSRhTJuSzBR7RIHP9V1&export=download) -![Good.gif](https://drive.google.com/uc?id=1KwLXQFg0E7CUUQbeTkjS9qxRP8wvs8kC&export=download) \ No newline at end of file +![Bad.gif](https://lh3.google.com/u/0/d/1o3EE13ulGgg9FzSRhTJuSzBR7RIHP9V1) +![Good.gif](https://lh3.google.com/u/0/d/1KwLXQFg0E7CUUQbeTkjS9qxRP8wvs8kC) \ No newline at end of file diff --git a/_posts/2022-4-1-ssrp-battle-zone.md b/_posts/2022-4-1-ssrp-battle-zone.md index 2f9a313..508ad75 100644 --- a/_posts/2022-4-1-ssrp-battle-zone.md +++ b/_posts/2022-4-1-ssrp-battle-zone.md @@ -2,32 +2,32 @@ layout: post title: "Spaceship Combat Test" tags: ["ship crew rpg", "playtested"] -thumbnail: https://drive.google.com/uc?id=1RyWrzM8O_Hs7TxN6I5ezDA5nW7--2UvL&export=download +thumbnail: https://lh3.google.com/u/0/d/1RyWrzM8O_Hs7TxN6I5ezDA5nW7--2UvL --- # Gifs -![ShootingButton.gif](https://drive.google.com/uc?id=1RyWrzM8O_Hs7TxN6I5ezDA5nW7--2UvL&export=download) -![Kill.gif](https://drive.google.com/uc?id=1Ldi8swJh3LZvXTzRpsKyYQV3iH4myAlS&export=download) -![DropSuitOnDeath.gif](https://drive.google.com/uc?id=1ltYMZc_HEAcQQfDFCo1XcXMwbpFUYqz3&export=download) -![DropItemsWhenPlayerLeaves.gif](https://drive.google.com/uc?id=1kwKoTACPqdTqU7aNzg-3crSVTI6X9VVt&export=download) -![ShootingButtonInStudio.gif](https://drive.google.com/uc?id=1CqsjHM9PP4saZUssg7aOOOu1-JfL85_3&export=download) -![ShootingDoor.gif](https://drive.google.com/uc?id=1ylEHbVPnxJ6azJi7vLA09ZH9JwcIzzYz&export=download) -![RepairingDoor.gif](https://drive.google.com/uc?id=15g5jNDExh0t-OhB1pkGpDWxoLKcVvBdk&export=download) -![RepairingButton2.gif](https://drive.google.com/uc?id=1xipBHxZJM07nPeOf9YGg2lzWlQJO2VGe&export=download) -![RepairingButton.gif](https://drive.google.com/uc?id=1-HKZxc9YrDO1eD0kOrSTKSs1_ZoGfHMG&export=download) -![DestroyingDoor.gif](https://drive.google.com/uc?id=1ezpmg-aVQdKxGUageT_-j5VkwpBsdvZn&export=download) +![ShootingButton.gif](https://lh3.google.com/u/0/d/1RyWrzM8O_Hs7TxN6I5ezDA5nW7--2UvL) +![Kill.gif](https://lh3.google.com/u/0/d/1Ldi8swJh3LZvXTzRpsKyYQV3iH4myAlS) +![DropSuitOnDeath.gif](https://lh3.google.com/u/0/d/1ltYMZc_HEAcQQfDFCo1XcXMwbpFUYqz3) +![DropItemsWhenPlayerLeaves.gif](https://lh3.google.com/u/0/d/1kwKoTACPqdTqU7aNzg-3crSVTI6X9VVt) +![ShootingButtonInStudio.gif](https://lh3.google.com/u/0/d/1CqsjHM9PP4saZUssg7aOOOu1-JfL85_3) +![ShootingDoor.gif](https://lh3.google.com/u/0/d/1ylEHbVPnxJ6azJi7vLA09ZH9JwcIzzYz) +![RepairingDoor.gif](https://lh3.google.com/u/0/d/15g5jNDExh0t-OhB1pkGpDWxoLKcVvBdk) +![RepairingButton2.gif](https://lh3.google.com/u/0/d/1xipBHxZJM07nPeOf9YGg2lzWlQJO2VGe) +![RepairingButton.gif](https://lh3.google.com/u/0/d/1-HKZxc9YrDO1eD0kOrSTKSs1_ZoGfHMG) +![DestroyingDoor.gif](https://lh3.google.com/u/0/d/1ezpmg-aVQdKxGUageT_-j5VkwpBsdvZn) # More gifs -![InfiniteItemSpawning.gif](https://drive.google.com/uc?id=1ftcP6eJgiON8IqpwbO4yHpRATg0651lr&export=download) -![PickingUpItemsFirstPerson.gif](https://drive.google.com/uc?id=1bc7POQxJh_ldnvR6E9dXryvFjxJPOeDm&export=download) -![DroppingItem.gif](https://drive.google.com/uc?id=1hRq0eCpkPvCQb7G40kUFMWUc8EtlZOl6&export=download) -![DroppingItemsOnDeath.gif](https://drive.google.com/uc?id=1w1qHtRtEGQCmC7z17o-uwOpvVgI39LPv&export=download) -![GrabbingItemsFromLocker.gif](https://drive.google.com/uc?id=18FN-55buNXxusA8CQiD9-IJvOEgmrbgP&export=download) -![TeamPicking.gif](https://drive.google.com/uc?id=1gxdo2zoA4kXfPUJilLNEZThXy8edIGir&export=download) -![Locker.gif](https://drive.google.com/uc?id=1EZfb4yzKh2GMUKyyXWHOoto3LaSU0ncm&export=download) -![StationFlyThrough4.gif](https://drive.google.com/uc?id=11RqvV9ks1if5lGVd-HuDG3YHLQvH63kZ&export=download) -![StationFlyThrough3.gif](https://drive.google.com/uc?id=1xuux0tOQSouya8iA8sLERHOv9ECi_5Rk&export=download) -![StationFlyThrough2.gif](https://drive.google.com/uc?id=136zql9HdNVKO4V0n8PfZR6GGIGmT4wJN&export=download) -![StationFlyThrough1.gif](https://drive.google.com/uc?id=1jTWTfQrp3HEEEe5WfyFZrzJE5mTkGqQA&export=download) +![InfiniteItemSpawning.gif](https://lh3.google.com/u/0/d/1ftcP6eJgiON8IqpwbO4yHpRATg0651lr) +![PickingUpItemsFirstPerson.gif](https://lh3.google.com/u/0/d/1bc7POQxJh_ldnvR6E9dXryvFjxJPOeDm) +![DroppingItem.gif](https://lh3.google.com/u/0/d/1hRq0eCpkPvCQb7G40kUFMWUc8EtlZOl6) +![DroppingItemsOnDeath.gif](https://lh3.google.com/u/0/d/1w1qHtRtEGQCmC7z17o-uwOpvVgI39LPv) +![GrabbingItemsFromLocker.gif](https://lh3.google.com/u/0/d/18FN-55buNXxusA8CQiD9-IJvOEgmrbgP) +![TeamPicking.gif](https://lh3.google.com/u/0/d/1gxdo2zoA4kXfPUJilLNEZThXy8edIGir) +![Locker.gif](https://lh3.google.com/u/0/d/1EZfb4yzKh2GMUKyyXWHOoto3LaSU0ncm) +![StationFlyThrough4.gif](https://lh3.google.com/u/0/d/11RqvV9ks1if5lGVd-HuDG3YHLQvH63kZ) +![StationFlyThrough3.gif](https://lh3.google.com/u/0/d/1xuux0tOQSouya8iA8sLERHOv9ECi_5Rk) +![StationFlyThrough2.gif](https://lh3.google.com/u/0/d/136zql9HdNVKO4V0n8PfZR6GGIGmT4wJN) +![StationFlyThrough1.gif](https://lh3.google.com/u/0/d/1jTWTfQrp3HEEEe5WfyFZrzJE5mTkGqQA) diff --git a/_posts/2022-8-1-tiny-spaceship.md b/_posts/2022-8-1-tiny-spaceship.md index 534e0b2..100c0ba 100644 --- a/_posts/2022-8-1-tiny-spaceship.md +++ b/_posts/2022-8-1-tiny-spaceship.md @@ -2,15 +2,15 @@ layout: post title: "Tiny Spaceship" tags: ["ship crew rpg"] -thumbnail: https://drive.google.com/uc?id=17BW7bwoaR_SeOmeNKlUkIgT6-v-wISIL&export=download +thumbnail: https://lh3.google.com/u/0/d/17BW7bwoaR_SeOmeNKlUkIgT6-v-wISIL --- # Gifs -![EscapingOrbitalPlane.gif](https://drive.google.com/uc?id=17BW7bwoaR_SeOmeNKlUkIgT6-v-wISIL&export=download) -![OrbitingZorgon.gif](https://drive.google.com/uc?id=19KegD-bSem4LvaozgB-FIzpbQE5CJrdi&export=download) -![EnteringMars.gif](https://drive.google.com/uc?id=1Og4B1bKKZ-lSlQbtmJQSlXn_sAXYl_6v&export=download) -![WatchingSunSet.gif](https://drive.google.com/uc?id=1ncEa9NbWTtoRYwO2uLhmTDO0pjFEP7cl&export=download) -![ExitingShipOnMars.gif](https://drive.google.com/uc?id=1rAUpTlZHgd2k4z_zsSQiDKyybx0eGnZq&export=download) -![EnteringFarlaxAtmosphere.gif](https://drive.google.com/uc?id=1GxuprlerawxsBQaDOqLurKzAP7UtNQnh&export=download) -![ExitingShipInSpace.gif](https://drive.google.com/uc?id=1cnx9GU5_GPNrmgYgL_U38FmCtsJdHrcL&export=download) +![EscapingOrbitalPlane.gif](https://lh3.google.com/u/0/d/17BW7bwoaR_SeOmeNKlUkIgT6-v-wISIL) +![OrbitingZorgon.gif](https://lh3.google.com/u/0/d/19KegD-bSem4LvaozgB-FIzpbQE5CJrdi) +![EnteringMars.gif](https://lh3.google.com/u/0/d/1Og4B1bKKZ-lSlQbtmJQSlXn_sAXYl_6v) +![WatchingSunSet.gif](https://lh3.google.com/u/0/d/1ncEa9NbWTtoRYwO2uLhmTDO0pjFEP7cl) +![ExitingShipOnMars.gif](https://lh3.google.com/u/0/d/1rAUpTlZHgd2k4z_zsSQiDKyybx0eGnZq) +![EnteringFarlaxAtmosphere.gif](https://lh3.google.com/u/0/d/1GxuprlerawxsBQaDOqLurKzAP7UtNQnh) +![ExitingShipInSpace.gif](https://lh3.google.com/u/0/d/1cnx9GU5_GPNrmgYgL_U38FmCtsJdHrcL) diff --git a/_posts/2023-1-14-in-game-lua-editor.md b/_posts/2023-1-14-in-game-lua-editor.md index 8fdc112..7816f8b 100644 --- a/_posts/2023-1-14-in-game-lua-editor.md +++ b/_posts/2023-1-14-in-game-lua-editor.md @@ -2,7 +2,7 @@ layout: post title: "In-game ROBLOX Lua editor" tags: ["education"] -thumbnail: https://drive.google.com/uc?id=1aFy3q7u07UMPiNMXGIUtmVgcmRGYoY1B&export=download +thumbnail: https://lh3.google.com/u/0/d/1aFy3q7u07UMPiNMXGIUtmVgcmRGYoY1B --- ## About @@ -11,5 +11,5 @@ I made this in-game lua editor as part of a project to make game development mor ## Gifs -![InstantCompletion.gif](https://drive.google.com/uc?id=1aFy3q7u07UMPiNMXGIUtmVgcmRGYoY1B&export=download) -![InstantOutput.gif](https://drive.google.com/uc?id=1pM0-UdCf_2hqeR1Pc_G8Lj-dj3FgXqG9&export=download) +![InstantCompletion.gif](https://lh3.google.com/u/0/d/1aFy3q7u07UMPiNMXGIUtmVgcmRGYoY1B) +![InstantOutput.gif](https://lh3.google.com/u/0/d/1pM0-UdCf_2hqeR1Pc_G8Lj-dj3FgXqG9) diff --git a/_posts/2023-1-19-tycoon-template.md b/_posts/2023-1-19-tycoon-template.md index d84b2c8..fc79a08 100644 --- a/_posts/2023-1-19-tycoon-template.md +++ b/_posts/2023-1-19-tycoon-template.md @@ -11,5 +11,5 @@ We had an extra day before the [2023 ROBLOX Game Jam]({% post_url 2023-1-27-assi ## Gifs -![Buttons can have dependencies](https://drive.google.com/uc?export=view&id=1Uc1NmVwgJCAMLFVPwuv3_FvHHEaBYNXn) -![Buttons can have positive or negative income](https://drive.google.com/uc?export=view&id=1ao1e_8AZIMKh-sSljkzR7rfj8fKmb9bQ) +![Buttons can have dependencies](https://lh3.google.com/u/0/d/1Uc1NmVwgJCAMLFVPwuv3_FvHHEaBYNXn) +![Buttons can have positive or negative income](https://lh3.google.com/u/0/d/1ao1e_8AZIMKh-sSljkzR7rfj8fKmb9bQ) diff --git a/_posts/2023-1-2-tunnel-wars-v1.md b/_posts/2023-1-2-tunnel-wars-v1.md index d8c80e0..0de4d2b 100644 --- a/_posts/2023-1-2-tunnel-wars-v1.md +++ b/_posts/2023-1-2-tunnel-wars-v1.md @@ -2,7 +2,7 @@ layout: post title: "Tunnel Wars V1" tags: ["ship crew rpg", "playtested"] -thumbnail: https://drive.google.com/uc?id=14-UtiIY--jsWVgWp7lSnqy70M6vAHsb8&export=download +thumbnail: https://lh3.google.com/u/0/d/14-UtiIY--jsWVgWp7lSnqy70M6vAHsb8 --- ## About @@ -20,17 +20,17 @@ I did playtest this with players -- but I unfortunately forgot to record gamepla IDK why there are no gifs of it, but the player also has a shotgun. -![CapturingFlag.gif](https://drive.google.com/uc?id=1DWgo1UlZ-zQbUG0wpS7E_tY8JQGpM9pT&export=download) -![Digging.gif](https://drive.google.com/uc?id=184Jolp5d3GPiyjZzZPSCjwlFcRBDRhtq&export=download) -![DiggingToCenterOfEarth.gif](https://drive.google.com/uc?id=1CpaPo2QWnUAuO7XAXrYq7K3lIT9mhCtf&export=download) +![CapturingFlag.gif](https://lh3.google.com/u/0/d/1DWgo1UlZ-zQbUG0wpS7E_tY8JQGpM9pT) +![Digging.gif](https://lh3.google.com/u/0/d/184Jolp5d3GPiyjZzZPSCjwlFcRBDRhtq) +![DiggingToCenterOfEarth.gif](https://lh3.google.com/u/0/d/1CpaPo2QWnUAuO7XAXrYq7K3lIT9mhCtf) -![InTheBeginningThereWasCube.gif](https://drive.google.com/uc?id=1NhELYwSjds0n8hdfKhtt-WQTAzpZLcr9&export=download) -![ShortcomingsOfRectangularTiles.gif](https://drive.google.com/uc?id=1z72FG1ddNUtMuGgj7sNFLJGmqcdvST1m&export=download) -![Wait...ItsActuallyABall.gif](https://drive.google.com/uc?id=1zx0jBVFvWjwjSbKPfeV9_BCG0gbz-3uM&export=download) -![Ummmm....gif](https://drive.google.com/uc?id=1CFsWwXNoySRn3FQYIa4cKlGQvvRYXpXP&export=download) -![ShopLayout.gif](https://drive.google.com/uc?id=1_FwuHxbc-GsMWCn_tC5PeiBd5gncvyhX&export=download) -![DiggingFromBase.gif](https://drive.google.com/uc?id=14-UtiIY--jsWVgWp7lSnqy70M6vAHsb8&export=download) +![InTheBeginningThereWasCube.gif](https://lh3.google.com/u/0/d/1NhELYwSjds0n8hdfKhtt-WQTAzpZLcr9) +![ShortcomingsOfRectangularTiles.gif](https://lh3.google.com/u/0/d/1z72FG1ddNUtMuGgj7sNFLJGmqcdvST1m) +![Wait...ItsActuallyABall.gif](https://lh3.google.com/u/0/d/1zx0jBVFvWjwjSbKPfeV9_BCG0gbz-3uM) +![Ummmm....gif](https://lh3.google.com/u/0/d/1CFsWwXNoySRn3FQYIa4cKlGQvvRYXpXP) +![ShopLayout.gif](https://lh3.google.com/u/0/d/1_FwuHxbc-GsMWCn_tC5PeiBd5gncvyhX) +![DiggingFromBase.gif](https://lh3.google.com/u/0/d/14-UtiIY--jsWVgWp7lSnqy70M6vAHsb8) -![VolcanoEruption.gif](https://drive.google.com/uc?id=1mo7oohyk0r_EoLctvotxh5eT78MplaCM&export=download) -![VolcanoLava.gif](https://drive.google.com/uc?id=1Bwrne_SHZOdkXZENkrisPGSoO4f0ZJfA&export=download) +![VolcanoEruption.gif](https://lh3.google.com/u/0/d/1mo7oohyk0r_EoLctvotxh5eT78MplaCM) +![VolcanoLava.gif](https://lh3.google.com/u/0/d/1Bwrne_SHZOdkXZENkrisPGSoO4f0ZJfA) diff --git a/_posts/2023-1-27-assimilation-tag.md b/_posts/2023-1-27-assimilation-tag.md index 7be704f..92de042 100644 --- a/_posts/2023-1-27-assimilation-tag.md +++ b/_posts/2023-1-27-assimilation-tag.md @@ -2,7 +2,7 @@ layout: post title: "Assimilation Tag (2023 ROBLOX Internal Game Jam)" tags: ["roblox game jam 2023", "playtested"] -thumbnail: https://drive.google.com/uc?id=147DsUpDU9fhoKFIzddEjt4c_HjSjpk4y&export=download +thumbnail: https://lh3.google.com/u/0/d/147DsUpDU9fhoKFIzddEjt4c_HjSjpk4y --- ## About @@ -23,22 +23,22 @@ Thanks ROBLOX! ## Gifs -![TestingWinCondition.gif](https://drive.google.com/uc?id=1lYiL9KEqRd80MipD2d7fgBRK_e8RvJiX&export=download) -![PrototypeCharSelector.gif](https://drive.google.com/uc?id=1yn_8YTc7mBCk6DjDogfJ1EB-3J28B-ZH&export=download) -![Processing80Characters.gif](https://drive.google.com/uc?id=1WywHpm2tnY_nYi9JhjhVMCfXqGvP5Jpm&export=download) -![IDontFeelSoGoodDonkey.gif](https://drive.google.com/uc?id=1bJY2ba2qGI_W4dkgrAPpCb_mAKXZAGxL&export=download) -![GatlingGun.gif](https://drive.google.com/uc?id=1tnKGf8hOZdXXiGlaMALZeCpfC22zDk15&export=download) -![GameplayCharSelector.gif](https://drive.google.com/uc?id=147DsUpDU9fhoKFIzddEjt4c_HjSjpk4y&export=download) -![GameOverManGameOver.gif](https://drive.google.com/uc?id=1zQ9_rUFRVZFITa5Z2p9EB-6imfB9uYAB&export=download) -![DuelingIsSoDifficult.gif](https://drive.google.com/uc?id=1Jb5RcJbVcm6nl6-OkieW89etrGbuxbeW&export=download) -![CharMorphWithCmdLine.gif](https://drive.google.com/uc?id=1theqR1z45B2ppCnteOMd-Mn95KTZMxuc&export=download) -![CharMorphs.gif](https://drive.google.com/uc?id=1AWEfY-ZJzqmCgrvqDvJ0AKOgMAxmDiFm&export=download) - -![RobloxPaidMeInRobux.png](https://drive.google.com/uc?id=1uRpilOCaulFmX5IqjTVi5avLPR1eYGgM&export=download) +![TestingWinCondition.gif](https://lh3.google.com/u/0/d/1lYiL9KEqRd80MipD2d7fgBRK_e8RvJiX) +![PrototypeCharSelector.gif](https://lh3.google.com/u/0/d/1yn_8YTc7mBCk6DjDogfJ1EB-3J28B-ZH) +![Processing80Characters.gif](https://lh3.google.com/u/0/d/1WywHpm2tnY_nYi9JhjhVMCfXqGvP5Jpm) +![IDontFeelSoGoodDonkey.gif](https://lh3.google.com/u/0/d/1bJY2ba2qGI_W4dkgrAPpCb_mAKXZAGxL) +![GatlingGun.gif](https://lh3.google.com/u/0/d/1tnKGf8hOZdXXiGlaMALZeCpfC22zDk15) +![GameplayCharSelector.gif](https://lh3.google.com/u/0/d/147DsUpDU9fhoKFIzddEjt4c_HjSjpk4y) +![GameOverManGameOver.gif](https://lh3.google.com/u/0/d/1zQ9_rUFRVZFITa5Z2p9EB-6imfB9uYAB) +![DuelingIsSoDifficult.gif](https://lh3.google.com/u/0/d/1Jb5RcJbVcm6nl6-OkieW89etrGbuxbeW) +![CharMorphWithCmdLine.gif](https://lh3.google.com/u/0/d/1theqR1z45B2ppCnteOMd-Mn95KTZMxuc) +![CharMorphs.gif](https://lh3.google.com/u/0/d/1AWEfY-ZJzqmCgrvqDvJ0AKOgMAxmDiFm) + +![RobloxPaidMeInRobux.png](https://lh3.google.com/u/0/d/1uRpilOCaulFmX5IqjTVi5avLPR1eYGgM) _It's so surreal to be paid for contractual labor in robux_ # Not gifs (will they render??) -![AssimilationTagThumbnail.webp](https://drive.google.com/uc?id=112GIeiyUyIycff56KjP0G5YMx6gKN3fI&export=download) -![AssimilationTagCharSelection2.webp](https://drive.google.com/uc?id=1-ff4dQ8Oa-3bdxcwTSEDlcA53mRGT9hy&export=download) -![AssimilationTagCharacterSelection.webp](https://drive.google.com/uc?id=18z4xJlvhwQXOSN0xs5XeL8yMKNtyEMs-&export=download) +![AssimilationTagThumbnail.webp](https://lh3.google.com/u/0/d/112GIeiyUyIycff56KjP0G5YMx6gKN3fI) +![AssimilationTagCharSelection2.webp](https://lh3.google.com/u/0/d/1-ff4dQ8Oa-3bdxcwTSEDlcA53mRGT9hy) +![AssimilationTagCharacterSelection.webp](https://lh3.google.com/u/0/d/18z4xJlvhwQXOSN0xs5XeL8yMKNtyEMs-) diff --git a/_posts/2023-2-3-tunnel-wars-v2.md b/_posts/2023-2-3-tunnel-wars-v2.md index 1e6d3ec..c590da5 100644 --- a/_posts/2023-2-3-tunnel-wars-v2.md +++ b/_posts/2023-2-3-tunnel-wars-v2.md @@ -2,7 +2,7 @@ layout: post title: "Tunnel Wars V2" tags: ["ship crew rpg"] -thumbnail: https://drive.google.com/uc?id=1pIRXXMYC1p_txWT5RTkUzoeo6c16ddYW&export=download +thumbnail: https://lh3.google.com/u/0/d/1pIRXXMYC1p_txWT5RTkUzoeo6c16ddYW --- ## About @@ -19,14 +19,14 @@ And as you can see, the map got simplified a lot as well. I also added some cust ## Gifs -![TheFloorIsALie.gif](https://drive.google.com/uc?id=1mCH8LSfsqNm-47QUCJpQ-tdP59_vti0j&export=download) -![StrafeBackwardsNoFlag.gif](https://drive.google.com/uc?id=1KpZaSCUXc12GEiEwIM8jXCTwZDIvLh-n&export=download) -![StrafeBackwards.gif](https://drive.google.com/uc?id=1VwgCc5-z1mYO0Xea6d2W1B-SeKgt6Xpc&export=download) -![ShovelHitAnimation.gif](https://drive.google.com/uc?id=1o2TdA7OfdajBss7JwiWWDxDbLGcwXrpN&export=download) -![ShotgunPointShovelDoesnt.gif](https://drive.google.com/uc?id=1zqTDuJaqzPY4RNmVTiEYK3e6cfoNIvbZ&export=download) -![LadderWithoutAnimationsOrLooking.gif](https://drive.google.com/uc?id=1CYLLf7Vs1X62QnwUYFDg9QCpEBJ-C_DI&export=download) -![LadderToggle.gif](https://drive.google.com/uc?id=1Fyx_d7qUk8rMrIh-mNFvxtRHrNhIUjUJ&export=download) -![Ladder.gif](https://drive.google.com/uc?id=1pIRXXMYC1p_txWT5RTkUzoeo6c16ddYW&export=download) -![JumpFromTopOfLadder.gif](https://drive.google.com/uc?id=1ptPsbY0bHEzKtvdaec_EDPu9TBAIJldA&export=download) -![JumpFromSideOfLadder.gif](https://drive.google.com/uc?id=1vtNYqnQYwTpQ8PgpQtEMNwf8aZuzN8qJ&export=download) -![CharacterLooksAtMouse.gif](https://drive.google.com/uc?id=1ioAoE1iT3CjJ6vE3TmUcnJSYx_rmy870&export=download) +![TheFloorIsALie.gif](https://lh3.google.com/u/0/d/1mCH8LSfsqNm-47QUCJpQ-tdP59_vti0j) +![StrafeBackwardsNoFlag.gif](https://lh3.google.com/u/0/d/1KpZaSCUXc12GEiEwIM8jXCTwZDIvLh-n) +![StrafeBackwards.gif](https://lh3.google.com/u/0/d/1VwgCc5-z1mYO0Xea6d2W1B-SeKgt6Xpc) +![ShovelHitAnimation.gif](https://lh3.google.com/u/0/d/1o2TdA7OfdajBss7JwiWWDxDbLGcwXrpN) +![ShotgunPointShovelDoesnt.gif](https://lh3.google.com/u/0/d/1zqTDuJaqzPY4RNmVTiEYK3e6cfoNIvbZ) +![LadderWithoutAnimationsOrLooking.gif](https://lh3.google.com/u/0/d/1CYLLf7Vs1X62QnwUYFDg9QCpEBJ-C_DI) +![LadderToggle.gif](https://lh3.google.com/u/0/d/1Fyx_d7qUk8rMrIh-mNFvxtRHrNhIUjUJ) +![Ladder.gif](https://lh3.google.com/u/0/d/1pIRXXMYC1p_txWT5RTkUzoeo6c16ddYW) +![JumpFromTopOfLadder.gif](https://lh3.google.com/u/0/d/1ptPsbY0bHEzKtvdaec_EDPu9TBAIJldA) +![JumpFromSideOfLadder.gif](https://lh3.google.com/u/0/d/1vtNYqnQYwTpQ8PgpQtEMNwf8aZuzN8qJ) +![CharacterLooksAtMouse.gif](https://lh3.google.com/u/0/d/1ioAoE1iT3CjJ6vE3TmUcnJSYx_rmy870) diff --git a/_posts/2023-4-5-2d-cartesian-collisions.md b/_posts/2023-4-5-2d-cartesian-collisions.md index 45ad13b..821c4c6 100644 --- a/_posts/2023-4-5-2d-cartesian-collisions.md +++ b/_posts/2023-4-5-2d-cartesian-collisions.md @@ -2,7 +2,7 @@ layout: post title: "2D Cartesian collisions" tags: ["ship crew rpg", "technical"] -thumbnail: https://drive.google.com/uc?id=1-HDtz1XowQcgN2_TEnba8T53CJjfcY2Y&export=download +thumbnail: https://lh3.google.com/u/0/d/1-HDtz1XowQcgN2_TEnba8T53CJjfcY2Y --- ## About @@ -11,8 +11,8 @@ While building [character collisions in 2D polar coordinates]({% post_url 2023-4 ## Gifs -![WraparoundWorkingCartesianCollisions.gif](https://drive.google.com/uc?id=1-HDtz1XowQcgN2_TEnba8T53CJjfcY2Y&export=download) -![WorkingCartesianCollisions.gif](https://drive.google.com/uc?id=1pxuuY1LiAfSwT1eP385bTBM44pB0WkzU&export=download) -![OverlapTest.gif](https://drive.google.com/uc?id=16-ZjVwsL_LLJHm60u6dbS8UgivcOA8y4&export=download) -![CartesianCollisionModel2.gif](https://drive.google.com/uc?id=1M6eU7KT3vkJFDnJVI92TZ2oTqwYVCWSf&export=download) -![CartesianCollisionModel1.gif](https://drive.google.com/uc?id=1IRT4OLrLRkg3F-SAvGyXfPtrZdW-X7vH&export=download) +![WraparoundWorkingCartesianCollisions.gif](https://lh3.google.com/u/0/d/1-HDtz1XowQcgN2_TEnba8T53CJjfcY2Y) +![WorkingCartesianCollisions.gif](https://lh3.google.com/u/0/d/1pxuuY1LiAfSwT1eP385bTBM44pB0WkzU) +![OverlapTest.gif](https://lh3.google.com/u/0/d/16-ZjVwsL_LLJHm60u6dbS8UgivcOA8y4) +![CartesianCollisionModel2.gif](https://lh3.google.com/u/0/d/1M6eU7KT3vkJFDnJVI92TZ2oTqwYVCWSf) +![CartesianCollisionModel1.gif](https://lh3.google.com/u/0/d/1IRT4OLrLRkg3F-SAvGyXfPtrZdW-X7vH) diff --git a/_posts/2023-4-7-2d-polar-collisions.md b/_posts/2023-4-7-2d-polar-collisions.md index 7e49227..4f2072b 100644 --- a/_posts/2023-4-7-2d-polar-collisions.md +++ b/_posts/2023-4-7-2d-polar-collisions.md @@ -2,7 +2,7 @@ layout: post title: "2D Polar Collisions" tags: ["ship crew rpg", "technical", "favorite posts"] -thumbnail: https://drive.google.com/uc?id=1KWuQvXnlADQMzpY5N5jDh_wlZFwmY-el&export=download +thumbnail: https://lh3.google.com/u/0/d/1KWuQvXnlADQMzpY5N5jDh_wlZFwmY-el --- ### Motivation @@ -15,11 +15,11 @@ Implementing 2D collisions for AABBs (Axis-aligned bounding boxes) is [relativel > You can play/edit this demo on ROBLOX [here.](https://www.roblox.com/games/13032104915/Multiplayer-2D-Polar-Controller-w-Collisions) -![TerribleFirstAttempt.gif](https://drive.google.com/uc?id=1sUD78eWco69OTDQBZRoEpW1dWRsQmodR&export=download) +![TerribleFirstAttempt.gif](https://lh3.google.com/u/0/d/1sUD78eWco69OTDQBZRoEpW1dWRsQmodR) _One of my early attempts. Notice how the character slips into the blocks_ -![WorkingPolarCollisions.gif](https://drive.google.com/uc?id=1KWuQvXnlADQMzpY5N5jDh_wlZFwmY-el&export=download) +![WorkingPolarCollisions.gif](https://lh3.google.com/u/0/d/1KWuQvXnlADQMzpY5N5jDh_wlZFwmY-el) _I was so relieved when I finally got it work_ @@ -33,7 +33,7 @@ That's not the only way to measure space. Polar coordinates are like measuring p I picked polar coordinates because they allowed me to define a grid of blocks for a round planet mathematically equivalent to a normal grid of blocks, like in Terraria or Starbound. At least, it was _almost_ mathematically equivalent. -![PolarCollisionModel.gif](https://drive.google.com/uc?id=14nUkaMlB6YajdDCiyf2_huzXNWcCLpsF&export=download) +![PolarCollisionModel.gif](https://lh3.google.com/u/0/d/14nUkaMlB6YajdDCiyf2_huzXNWcCLpsF) _A collision math model I developed using desmos.com. Notice the concentric rings (measuring R) and angular values measuring θ: π/6 (30 degrees), π/3 (60 degrees), π/2 (90 degrees), etc_ @@ -51,7 +51,7 @@ Gravity is defined such that your character falls along the R dimension toward t The solution is simple -- just don't let characters' R values go below a threshold: -![AxisAnglePolarCollisions.gif](https://drive.google.com/uc?id=1nsyAJwFqEZ1XmyjHEXwHEwvDvaJJ9BYu&export=download) +![AxisAnglePolarCollisions.gif](https://lh3.google.com/u/0/d/1nsyAJwFqEZ1XmyjHEXwHEwvDvaJJ9BYu) _Notice how there's an "invisible" ground around the center. This is a "threshold" of R that characters aren't allowed to go past._ @@ -65,7 +65,7 @@ However, if I'm at 12, and I keep going clockwise / to the right -- I get back t What that means for collisions is that, by default, the character won't register collisions on the other side of that boundary. It's mathematically equivalent to this scenario: -![WorkingCartesianCollisions.gif](https://drive.google.com/uc?id=1pxuuY1LiAfSwT1eP385bTBM44pB0WkzU&export=download) +![WorkingCartesianCollisions.gif](https://lh3.google.com/u/0/d/1pxuuY1LiAfSwT1eP385bTBM44pB0WkzU) _I just fall off the side of the world!_ @@ -76,13 +76,13 @@ We have to do two things to solve this: Like this: -![WraparoundWorkingCartesianCollisions.gif](https://drive.google.com/uc?id=1-HDtz1XowQcgN2_TEnba8T53CJjfcY2Y&export=download) +![WraparoundWorkingCartesianCollisions.gif](https://lh3.google.com/u/0/d/1-HDtz1XowQcgN2_TEnba8T53CJjfcY2Y) _Notice the temporary, yellow duplicate of the character -- this allows us to be on both sides of the boundary at once._ In polar coordinates, it looks like this: -![WrapAroundBug.gif](https://drive.google.com/uc?id=1Nhx0Sn3dXE05FKalXEIMsXnbDExDUpkr&export=download) +![WrapAroundBug.gif](https://lh3.google.com/u/0/d/1Nhx0Sn3dXE05FKalXEIMsXnbDExDUpkr) _Wait, what's wrong??_ @@ -102,19 +102,19 @@ When collisions happen, normally my algorithm looks at the velocity of the chara That works for most cases... except the case of falling while you get wider (in θ coordinates). While you're falling, your velocity is in the R direction going down, but you're actually colliding laterally in the θ direction. So the algorithm as defined so far will think that you need to be offset _up_ instead of to the side. Let me show you what I mean: -![SlipUnderFloorBug.gif](https://drive.google.com/uc?id=1OoKR2kZMcRZmwd8hrxVFC-XjAjckooAx&export=download) +![SlipUnderFloorBug.gif](https://lh3.google.com/u/0/d/1OoKR2kZMcRZmwd8hrxVFC-XjAjckooAx) _The character slips into the floor here because the algorithm is resolving the collision in the wrong direction._ _(You can also see how there's a jittery feedback loop when I try to slide down the side of another block.)_ -![JitteryEarlyVersion.gif](https://drive.google.com/uc?id=15QITbX78CaTRHNuIdromab1VmVR29kV3&export=download) +![JitteryEarlyVersion.gif](https://lh3.google.com/u/0/d/15QITbX78CaTRHNuIdromab1VmVR29kV3) _Here you can see the character bounces off of block corners really weird. This is the same effect._ So ironically I was able to solve this edge case by using a worse collision resolution formula that I developed earlier on. It resolves the collision by looking at which dimension (R or θ) that the character is overlapping the block in more. -![WorkingPolarCollisions.gif](https://drive.google.com/uc?id=1KWuQvXnlADQMzpY5N5jDh_wlZFwmY-el&export=download) +![WorkingPolarCollisions.gif](https://lh3.google.com/u/0/d/1KWuQvXnlADQMzpY5N5jDh_wlZFwmY-el) _Ahh...._ diff --git a/_posts/2023-5-7-2d-physics-engine.md b/_posts/2023-5-7-2d-physics-engine.md index 7b55ccc..0edad71 100644 --- a/_posts/2023-5-7-2d-physics-engine.md +++ b/_posts/2023-5-7-2d-physics-engine.md @@ -2,7 +2,7 @@ layout: post title: "ECS-style 2D Physics / Rendering Engine in ROBLOX" tags: ["ship crew rpg", "technical"] -thumbnail: https://drive.google.com/uc?id=13xvpHDxZ-yRQPHQMF1DmwA6b-gIclKpj&export=download +thumbnail: https://lh3.google.com/u/0/d/13xvpHDxZ-yRQPHQMF1DmwA6b-gIclKpj --- ## About @@ -13,31 +13,31 @@ I thought it might be more elegant if I developed my own physics engine for [Shi Using Separating Axis Theorem to detect overlap between 2D rectangles -![SATOverlapDetection.gif](https://drive.google.com/uc?id=13Qm86_EdjqT5HnuUXP4iKBflJRewZZS8&export=download) +![SATOverlapDetection.gif](https://lh3.google.com/u/0/d/13Qm86_EdjqT5HnuUXP4iKBflJRewZZS8) I never found a good source on how to resolve these collisions, so I developed it myself. As it stands, there is a common edge case where the colliding body gets pushed too far. I stopped working on the engine before I could resolve that bug. -![BetterSATCollisionResolution.gif](https://drive.google.com/uc?id=1vGuZ4VRhFGYcKtnEcmW2AoNmieqcIsD5&export=download) -![BuggySATCollisionResolution.gif](https://drive.google.com/uc?id=1H6KUj0dww7kqlRIrjx7YEuLWfDyVV8mQ&export=download) +![BetterSATCollisionResolution.gif](https://lh3.google.com/u/0/d/1vGuZ4VRhFGYcKtnEcmW2AoNmieqcIsD5) +![BuggySATCollisionResolution.gif](https://lh3.google.com/u/0/d/1H6KUj0dww7kqlRIrjx7YEuLWfDyVV8mQ) This is what bad collision mechanics look like :) -![CollisionsAndGravity.gif](https://drive.google.com/uc?id=1odEvqUhK58ksvWFtdRcK4mER5_TJX0aV&export=download) -![BuggyCollisionsAndGravity.gif](https://drive.google.com/uc?id=1AYMZiF9DuihqKxWh3XcEHzYfX_1Ap2NF&export=download) +![CollisionsAndGravity.gif](https://lh3.google.com/u/0/d/1odEvqUhK58ksvWFtdRcK4mER5_TJX0aV) +![BuggyCollisionsAndGravity.gif](https://lh3.google.com/u/0/d/1AYMZiF9DuihqKxWh3XcEHzYfX_1Ap2NF) The ships in these gifs are applying forces to stay at the same gravitational potential. It's analogous to using rockets to never fall to the ground, but more generalized. -![RedOrbit.gif](https://drive.google.com/uc?id=13xvpHDxZ-yRQPHQMF1DmwA6b-gIclKpj&export=download) -![OrbitalSurfing.gif](https://drive.google.com/uc?id=1nyOEOW1k8hX8_G_4VPsNzIjZNqP4_ntd&export=download) -![FlyingShipAroundPlanets.gif](https://drive.google.com/uc?id=1sUO7xc8nNUKbo_P9Y8rSJi4ES_PsWSnN&export=download) -![FlyBetweenCollidingPlanets.gif](https://drive.google.com/uc?id=17XZtU35i1i5aVw1hssILzBGb7nVi4iWM&export=download) +![RedOrbit.gif](https://lh3.google.com/u/0/d/13xvpHDxZ-yRQPHQMF1DmwA6b-gIclKpj) +![OrbitalSurfing.gif](https://lh3.google.com/u/0/d/1nyOEOW1k8hX8_G_4VPsNzIjZNqP4_ntd) +![FlyingShipAroundPlanets.gif](https://lh3.google.com/u/0/d/1sUO7xc8nNUKbo_P9Y8rSJi4ES_PsWSnN) +![FlyBetweenCollidingPlanets.gif](https://lh3.google.com/u/0/d/17XZtU35i1i5aVw1hssILzBGb7nVi4iWM) I don't have a good gif of the transition, but the inside of a planet is a separate environment than the solar system, and objects can enter/exit the planet. The white background meant you were "inside" the planet. -![GravityInsidePlanet.gif](https://drive.google.com/uc?id=1FDJcdC9JBt7mC_Fqv0ZkDd58MdTZBseF&export=download) +![GravityInsidePlanet.gif](https://lh3.google.com/u/0/d/1FDJcdC9JBt7mC_Fqv0ZkDd58MdTZBseF) Camera controls can be decoupled from your spaceship -![CameraControls.gif](https://drive.google.com/uc?id=1fR9KH6bteAqNdxJQnYle42JvshLjYo2I&export=download) +![CameraControls.gif](https://lh3.google.com/u/0/d/1fR9KH6bteAqNdxJQnYle42JvshLjYo2I) diff --git a/_posts/2023-6-29-ship-crew-rpg.md b/_posts/2023-6-29-ship-crew-rpg.md index 8ba101f..c00b953 100644 --- a/_posts/2023-6-29-ship-crew-rpg.md +++ b/_posts/2023-6-29-ship-crew-rpg.md @@ -2,7 +2,7 @@ layout: post title: "Ship Crew RPG Proof of Concept" tags: ["ship crew rpg", "playtested"] -thumbnail: https://drive.google.com/uc?id=1IbLL8la5pjgEC9Sgdezl5QbcImHzaKXM&export=download +thumbnail: https://lh3.google.com/u/0/d/1IbLL8la5pjgEC9Sgdezl5QbcImHzaKXM --- ## About @@ -27,19 +27,19 @@ Unforuntately, the only gameplay footage I recorded was the bugs :( (sometimes, in the proof of concept, you jump too high) -![TooMuchBounce.gif](https://drive.google.com/uc?id=1IbLL8la5pjgEC9Sgdezl5QbcImHzaKXM&export=download) +![TooMuchBounce.gif](https://lh3.google.com/u/0/d/1IbLL8la5pjgEC9Sgdezl5QbcImHzaKXM) (and the rendering breaks if someone dies inside of the ship) -![RenderingBroke.gif](https://drive.google.com/uc?id=1uVbZjmb3HbYXAuIA0U1aHMijroer6ARu&export=download) +![RenderingBroke.gif](https://lh3.google.com/u/0/d/1uVbZjmb3HbYXAuIA0U1aHMijroer6ARu) All of the remaining gifs are from development, in ROBLOX Studio. -![TakeOffSequence.gif](https://drive.google.com/uc?id=13dykaHwTCutYxm6UwUF2gzV922qmX6Y-&export=download) -![ShootingZombie.gif](https://drive.google.com/uc?id=1zqblABGNLuS7mrRQIHGhm8ayHmSLaKFW&export=download) -![MissionVoting.gif](https://drive.google.com/uc?id=1phM4VviEaXGcgNEzRZIu4DjEPll4XsZb&export=download) -![FlyingToMars.gif](https://drive.google.com/uc?id=10oB8yPBMlizhSfKjGms4M4a5CPm7L3mD&export=download) -![DroppingCrateInZone.gif](https://drive.google.com/uc?id=1G15LgwjswMP6C_AlQmJrDJihy0zFh3Rz&export=download) +![TakeOffSequence.gif](https://lh3.google.com/u/0/d/13dykaHwTCutYxm6UwUF2gzV922qmX6Y-) +![ShootingZombie.gif](https://lh3.google.com/u/0/d/1zqblABGNLuS7mrRQIHGhm8ayHmSLaKFW) +![MissionVoting.gif](https://lh3.google.com/u/0/d/1phM4VviEaXGcgNEzRZIu4DjEPll4XsZb) +![FlyingToMars.gif](https://lh3.google.com/u/0/d/10oB8yPBMlizhSfKjGms4M4a5CPm7L3mD) +![DroppingCrateInZone.gif](https://lh3.google.com/u/0/d/1G15LgwjswMP6C_AlQmJrDJihy0zFh3Rz) @@ -70,13 +70,13 @@ You can also see some early attempts at a character controller with very rudimen ## Gifs -![WorldSerialization.gif](https://drive.google.com/uc?id=1XFUlkxPZ69JTIuDE6WVZMuYjNl5l-okh&export=download) -![WhoopsTooFastLol.gif](https://drive.google.com/uc?id=1E5t3ib6xavmeWuJgvOb9oz3KsOcFK256&export=download) -![PixelPerfectFramesGif.gif](https://drive.google.com/uc?id=17Pej9uQh5ykwWsnPq6dbdIHpICIwOx8P&export=download) -![OverlapTestsAreEasy.gif](https://drive.google.com/uc?id=1cew6lW27gMrPR1A7gPT0CF59iMYx7bD-&export=download) -![LookMom1DCollisions!.gif](https://drive.google.com/uc?id=1WXlfN26wby-wWQIc6Z93lJyWsQPi79G1&export=download) -![GiantBouncyBeachBall.gif](https://drive.google.com/uc?id=1g4qO9rNlHAhcC1JACJ008YCDSov7073t&export=download) -![DynamicScreenSize.gif](https://drive.google.com/uc?id=1POaG-GYYWpq7ykUIF_psX8fst6ut6btw&export=download) -![CollisionsAreSoHard.gif](https://drive.google.com/uc?id=1590_KJOER-5ENJoZ31egH5W6ZJKd2OEV&export=download) -![BouncyPlanet.gif](https://drive.google.com/uc?id=1t-gUjJDkhYTdkOzhFZtg9t7efapWnaB2&export=download) -![BouncyBeachBall.gif](https://drive.google.com/uc?id=11hVcrMu1A8rOI8gCM-EaS49W4wrFidCT&export=download) +![WorldSerialization.gif](https://lh3.google.com/u/0/d/1XFUlkxPZ69JTIuDE6WVZMuYjNl5l-okh) +![WhoopsTooFastLol.gif](https://lh3.google.com/u/0/d/1E5t3ib6xavmeWuJgvOb9oz3KsOcFK256) +![PixelPerfectFramesGif.gif](https://lh3.google.com/u/0/d/17Pej9uQh5ykwWsnPq6dbdIHpICIwOx8P) +![OverlapTestsAreEasy.gif](https://lh3.google.com/u/0/d/1cew6lW27gMrPR1A7gPT0CF59iMYx7bD-) +![LookMom1DCollisions!.gif](https://lh3.google.com/u/0/d/1WXlfN26wby-wWQIc6Z93lJyWsQPi79G1) +![GiantBouncyBeachBall.gif](https://lh3.google.com/u/0/d/1g4qO9rNlHAhcC1JACJ008YCDSov7073t) +![DynamicScreenSize.gif](https://lh3.google.com/u/0/d/1POaG-GYYWpq7ykUIF_psX8fst6ut6btw) +![CollisionsAreSoHard.gif](https://lh3.google.com/u/0/d/1590_KJOER-5ENJoZ31egH5W6ZJKd2OEV) +![BouncyPlanet.gif](https://lh3.google.com/u/0/d/1t-gUjJDkhYTdkOzhFZtg9t7efapWnaB2) +![BouncyBeachBall.gif](https://lh3.google.com/u/0/d/11hVcrMu1A8rOI8gCM-EaS49W4wrFidCT)