<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Get Info: #gameplay</title>
    <description>Posts tagged “gameplay” — Blog of independent game and app developer Matt Sephton. Featuring vintage Macintosh, game development, digital artwork, Japanese esoterica, video game reviews, hacks and tips, and much more.</description>
    <link>https://blog.gingerbeardman.com/tag/gameplay/</link>
    <atom:link href="https://blog.gingerbeardman.com/tag/gameplay/index.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Wed, 01 Jul 2026 16:09:47 +0000</pubDate>
    <lastBuildDate>Wed, 01 Jul 2026 16:09:47 +0000</lastBuildDate>
    <generator>Jekyll v4.4.1</generator>

    
      
        <item>
          <title>Daily Driver: Weight Transfer</title>
          <description>&lt;p&gt;I’ve been playing old Japanese PlayStation game &lt;a href=&quot;https://digitaldriftracer.wordpress.com/2019/06/09/touge-max-series-overview/&quot;&gt;Touge Max G&lt;/a&gt; and besides this having a gymkhana mode similar to aspects of Daily Driver, it also has a realistic handling model. One of the things that struck me about that was how the car rocks back and forth when accelerating and braking/reversing. One of the other games in the Touge series also has a school mode that talks you through this concept of weight transfer. It’s realistic and adds some level of dynamics to the car, making it feel less like a solid block sliding around.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/daily-driver-weight-transfer.gif#playdate&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;p&gt;So I’ve added this effect to Daily Driver and will be refining it going forward. I find it breathes extra life into the car just as it does in other games with full 3D physics modelling. It requires 3x the number of car sprites but because I render them from 3D it’s not much extra work and I think it’s well worth the effort.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/daily-driver-weight-transfer.png&quot; alt=&quot;PNG&quot; /&gt;&lt;/p&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Sat, 03 Oct 2020 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2020/10/03/weight-transfer/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2020/10/03/weight-transfer/</guid>
        </item>
      
    
      
        <item>
          <title>Daily Driver: Cannonball Run</title>
          <description>&lt;p&gt;Accidental new game mode discovered?&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;“Cannonball Run”&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;Collect stuff whilst a barrage of heavy things bounce around the screen!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This was a result of my continued work implementing different surface frictions, and I mistakenly set the cones to not be affected by friction and thus never slow down. Hitting them a few times was enough to get them moving at a good speed, and then I drove around the screen.&lt;/p&gt;

&lt;p&gt;What I didn’t appreciate is that my collision model uses elastic collision, which allows the car to knock stuff over in a quite pleasing way where the car takes a little bit of a knock. But if those things are moving fast enough, as the cones are here, then any collision will also affect the car to a larger degree. You can see the car being pushed around by the out of control traffic cones.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/daily-driver-one-cannonball-run.gif#playdate&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Mon, 31 Aug 2020 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2020/08/31/cannonball-run/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2020/08/31/cannonball-run/</guid>
        </item>
      
    
      
        <item>
          <title>Daily Driver: Showreel</title>
          <description>&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/daily-driver-showreel.gif#playdate&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Trying out some different things: a grab bag of scenarios.&lt;/p&gt;

&lt;p&gt;This long GIF shows several scenarios, different physics, and more! Essential viewing.&lt;/p&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Sat, 04 Jul 2020 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2020/07/04/showreel/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2020/07/04/showreel/</guid>
        </item>
      
    
      
        <item>
          <title>Daily Driver: Off Road</title>
          <description>&lt;p&gt;&lt;strong&gt;6 June 2020.&lt;/strong&gt; Finally found and fixed a bug in my collision code - needed to use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;math.abs()&lt;/code&gt; in one place to avoid some double negatives messing up collision rebound direction. D’oh!&lt;/p&gt;

&lt;p&gt;And now it’s time to Play Ball! I added a lap timer and a cool little LCD font.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/daily-driver-off-road.gif#playdate&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9 June 2020.&lt;/strong&gt; The core flow of the game has been decided: there will be daily driving challenges with online leaderboards. So the game has found a name: Daily Driver.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;12 June 2020.&lt;/strong&gt; Video of gameplay footage and sound effects: &lt;a href=&quot;https://www.youtube.com/watch?v=I57JxBp4kBM&quot;&gt;www.youtube.com/watch?v=I57JxBp4kBM&lt;/a&gt;&lt;/p&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Sat, 06 Jun 2020 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2020/06/06/off-road/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2020/06/06/off-road/</guid>
        </item>
      
    
      
        <item>
          <title>Daily Driver: Gameplay</title>
          <description>&lt;p&gt;I have redone the collision/rebound physics, and car visual and steering is now affected when colliding - makes collisions feel really physical. Tyres and Cone obstacles have different collision properties so they feel different when you hit them. It’s a lot of fun to simply drive around and knock into things, which makes me confident I’m onto something good here.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/daily-driver-gameplay.gif#playdate&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1 June 2020.&lt;/strong&gt; I’m now happy enough with the handling, time to get some gameplay in here. At this point the game is running at the Playdate SDK default of 30fps.&lt;/p&gt;

&lt;p&gt;First playable demo released to Playdate Developer Preview group!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Fastest Time Challenge”&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;hit all 8 cones as quickly as possible&lt;/li&gt;
  &lt;li&gt;obstacles getting stuck under your car will slow you down!&lt;/li&gt;
&lt;/ul&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Sun, 31 May 2020 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2020/05/31/gameplay/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2020/05/31/gameplay/</guid>
        </item>
      
    
      
        <item>
          <title>Daily Driver: Obstacles</title>
          <description>&lt;p&gt;At this point I have three rows of rotated cars in the sprite sheet: each has wheels pointing in different directions.&lt;/p&gt;

&lt;p&gt;I’m currently doing the skid marks as sprites (which is why they disappear over time) partly because it was easy to get going, and partly to try to figure out some performance limits (~350 sprites in the GIF below, 25 of which are collidable and have my custom physics applied). Will be drawing skids marks straight to screen at some point in the future.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/daily-driver-obstacles.gif#playdate&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Short term goal is to have some lap races/time-trials, plus a “driving test” or “stunt driving” mode which is what you’re seeing here.&lt;/p&gt;

&lt;p&gt;Codename is currently: Crank Turismo&lt;/p&gt;

&lt;p&gt;At this point you can’t hear my great synth-powered car engine and skidding sfx!&lt;/p&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Sat, 30 May 2020 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2020/05/30/obstacles/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2020/05/30/obstacles/</guid>
        </item>
      
    
      
        <item>
          <title>Daily Driver: from 3D to 2D</title>
          <description>&lt;p&gt;At this point, the only thing that remained of the prototype was the car sprite so I wondered about creating a new one myself. It uses 32 different images of the car with different rotations, making for smooth animation and movement on screen.&lt;/p&gt;

&lt;p&gt;Whilst I could draw all those frames by hand, I decided to go down a path that could produce assets on demand. That way if I change my mind I can reprocess the assets whenever I feel like it. The initial process was easy to setup, but I’ve been taking and simplifying the automation process ever since.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/daily-driver-from-3d-to-2d-a.png&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I’d previously used OpenSCAD to create 3D models, so it was a natural and easy choice. Also, it’s the only 3D app I’ve ever used—not even Blender! Models are created using a definition language (think of it as a bit like CSS) where you can define shapes and how they interact. I also use the animation function to set the viewpoint and rotate the car whilst automatically saving the images.&lt;/p&gt;

&lt;p&gt;In OpenSCAD I lock the view angle and zoom. I tie rotation to the animation value &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$t&lt;/code&gt;. Then I run the animation and click a box to have the app spit out all the rotated images for me.&lt;/p&gt;

&lt;p&gt;The output images need a little post-processing, so I use a single Retrobatch workflow to: crop, add transparency, invert, a few other things, and finally stitch the 32 images into one long sprite sheet. (On Windows you can use &lt;a href=&quot;http://photobat.clientside.jp&quot;&gt;Photobat&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/daily-driver-from-3d-to-2d-b.png#playdate&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, I run the sprite sheet through a bespoke dithering tool that allows for “live” manual tweaking to convert the greyscale images to 1-bit.&lt;/p&gt;

&lt;p&gt;That’s good enough for my current requirements. Later on I would want extra detail in the renders, either through texturing or by hand.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/daily-driver-from-3d-to-2d-c.png&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;p&gt;29 May 2020. Soon after I would start rendering the wheels turning and after that the body so it rocks from side to side.&lt;/p&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Wed, 27 May 2020 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2020/05/27/from-3d-to-2d/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2020/05/27/from-3d-to-2d/</guid>
        </item>
      
    
      
        <item>
          <title>Daily Driver: Physics</title>
          <description>&lt;p&gt;Now that I was convinced that a driving game could be fun, I was unhappy with the controls and very rudimentary “physics” that the car had. It just didn’t feel very real or compelling; there wasn’t enough depth to the control scheme.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/daily-driver-physics.gif#playdate&quot; alt=&quot;GIF&quot; /&gt;&lt;/p&gt;

&lt;p&gt;So I used &lt;a href=&quot;https://asawicki.info/Mirror/Car%20Physics%20for%20Games/Car%20Physics%20for%20Games.html&quot;&gt;Marco Monster’s Car Physics article&lt;/a&gt; (and looked at &lt;a href=&quot;https://github.com/search?q=2d+car+physics&amp;amp;type=repositories&quot;&gt;source code&lt;/a&gt; for various implementations of his technique) to implement more realistic car physics including drifting and skid marks. This was a bit of a watershed moment: this was the game I wanted to spend all my time on.&lt;/p&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Sun, 24 May 2020 00:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2020/05/24/physics/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2020/05/24/physics/</guid>
        </item>
      
    

  </channel>
</rss>
