{"@attributes":{"version":"2.0"},"channel":{"title":"Ohsat Games RSS","link":"https:\/\/www.ohsat.com\/","description":"Recent content on Ohsat Games","generator":"Hugo -- gohugo.io","language":"en-us","lastBuildDate":"Sat, 09 Aug 2025 00:00:00 +0000","item":[{"title":"[POST] Go! Go! PogoGirl is out on Mega Drive!","link":"https:\/\/www.ohsat.com\/post\/pogogirl-md-released\/","pubDate":"Sat, 09 Aug 2025 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-md-released\/","description":"Bounce with Blast Processing!"},{"title":"[POST] Shino-kun Finally Hits Consoles!","link":"https:\/\/www.ohsat.com\/post\/shino-out-on-consoles\/","pubDate":"Fri, 14 Feb 2025 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/shino-out-on-consoles\/","description":"He has returned!"},{"title":"[POST] Welcome to 2025!","link":"https:\/\/www.ohsat.com\/post\/welcome-2025\/","pubDate":"Tue, 14 Jan 2025 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/welcome-2025\/","description":"Things just keep going"},{"title":"[POST] Let Me Translate Your Games!","link":"https:\/\/www.ohsat.com\/post\/let-me-translate-your-game\/","pubDate":"Thu, 10 Oct 2024 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/let-me-translate-your-game\/","description":"Let me work! LET ME WORK!"},{"title":"[POST] Update 2024","link":"https:\/\/www.ohsat.com\/post\/update-2024\/","pubDate":"Thu, 01 Aug 2024 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/update-2024\/","description":"Been a while, hasn&rsquo;t it?"},{"title":"[POST] Triple Update","link":"https:\/\/www.ohsat.com\/post\/triple-update\/","pubDate":"Tue, 19 Dec 2023 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/triple-update\/","description":"A new game, an old game, and a Mega Drive game? Excellent!"},{"title":"[POST] Go! Go! Pogogirl Is Coming to Mega Drive!","link":"https:\/\/www.ohsat.com\/post\/go-go-pogogirl-coming-to-md\/","pubDate":"Mon, 13 Nov 2023 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/go-go-pogogirl-coming-to-md\/","description":"It is finally happening: Go! Go! PogoGirl is coming to the Sega Mega Drive!"},{"title":"[POST] Kid Bubblegum Is Out Now!","link":"https:\/\/www.ohsat.com\/post\/kid-bubblegum-out-now\/","pubDate":"Wed, 01 Nov 2023 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/kid-bubblegum-out-now\/","description":"It&rsquo;s time to kick ass and shoot bubblegum!"},{"title":"[POST] Play the Kid Bubblegum Demo at Next Fest Now!","link":"https:\/\/www.ohsat.com\/post\/play-the-kid-bubblegum-demo-at-next-fest-now\/","pubDate":"Mon, 09 Oct 2023 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/play-the-kid-bubblegum-demo-at-next-fest-now\/","description":"Kicking ass at Steam Next Fest!"},{"title":"[POST] Shino-kun is Coming to Consoles, BUT...","link":"https:\/\/www.ohsat.com\/post\/shino-kun-on-consoles-but\/","pubDate":"Tue, 26 Sep 2023 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/shino-kun-on-consoles-but\/","description":"Yes, this is slight clickbait."},{"title":"[POST] Join my Discord!","link":"https:\/\/www.ohsat.com\/post\/join-my-discord\/","pubDate":"Mon, 04 Sep 2023 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/join-my-discord\/","description":"Yes, I have my own server now, because why not! (and now the link even works)"},{"title":"[POST] Kid Bubblegum Sage Demo","link":"https:\/\/www.ohsat.com\/post\/kid-bubblegum-sage-demo\/","pubDate":"Fri, 01 Sep 2023 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/kid-bubblegum-sage-demo\/","description":"Play the demo right now!"},{"title":"[POST] Kid Bubblegum Devlog #2","link":"https:\/\/www.ohsat.com\/post\/kid-bubblegum-devlog\/kid-bubblegum-devlog-2\/","pubDate":"Sat, 27 May 2023 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/kid-bubblegum-devlog\/kid-bubblegum-devlog-2\/","description":"And we&rsquo;re back again with more Kid Bubblegum!\nFirst of all, the game now has a Steam page, so I&rsquo;d be tickled bubblegum pink if you could hop on over there and wishlist the game. It helps a lot!\nNow to the game itself. This week was spent building a few levels, making a new enemy type and polishing the game up to a basic state&hellip;just like I had planned to do."},{"title":"[POST] Wishlist Kid Bubblegum Now!","link":"https:\/\/www.ohsat.com\/post\/wishlist-kid-bubblegum\/","pubDate":"Wed, 24 May 2023 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/wishlist-kid-bubblegum\/","description":"Do it!"},{"title":"[POST] Kid Bubblegum Devlog #1","link":"https:\/\/www.ohsat.com\/post\/kid-bubblegum-devlog\/kid-bubblegum-devlog-1\/","pubDate":"Sat, 20 May 2023 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/kid-bubblegum-devlog\/kid-bubblegum-devlog-1\/","description":"You wanted it, you got it: By popular demand I&rsquo;ll chronicle my Quest for Next Fest! Don&rsquo;t know what that is? Then maybe read this, but the short version is: I&rsquo;m making a new game, and I want to have a demo ready by the end of June, so that I can submit it to the next Steam Next Fest. It&rsquo;s just something I wanna do.\nAnd in case you missed it: That new game is Kid Bubblegum!"},{"title":"[POST] I have a Steam Developer page!","link":"https:\/\/www.ohsat.com\/post\/i-have-a-steam-developer-page\/","pubDate":"Tue, 16 May 2023 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/i-have-a-steam-developer-page\/","description":"Can&rsquo;t have enough sites I need to keep updated, huh?"},{"title":"[POST] The Quest for Next Fest","link":"https:\/\/www.ohsat.com\/post\/quest-for-next-fest\/","pubDate":"Tue, 25 Apr 2023 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/quest-for-next-fest\/","description":"The quest for Fest will test the best."},{"title":"[POST] Chibi Ninja Shino Kun Released","link":"https:\/\/www.ohsat.com\/post\/chibi-ninja-shino-kun-released\/","pubDate":"Mon, 13 Mar 2023 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/chibi-ninja-shino-kun-released\/","description":"The ninja has leapt out of the shadows and onto digital store shelves!"},{"title":"[POST] Go! Go! PogoGirl Now Available on Consoles!","link":"https:\/\/www.ohsat.com\/post\/go-go-pogogirl-now-available-on-consoles\/","pubDate":"Fri, 10 Feb 2023 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/go-go-pogogirl-now-available-on-consoles\/","description":"Go pogo on your platform of choice!"},{"title":"[POST] Pogogirl Hits Consoles Soon!","link":"https:\/\/www.ohsat.com\/post\/pogogirl-hits-consoles-soon\/","pubDate":"Tue, 31 Jan 2023 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-hits-consoles-soon\/","description":"10 days left!"},{"title":"[POST] Chibi Ninja Devlog #3","link":"https:\/\/www.ohsat.com\/post\/chibi-ninja-shino-kun-devlog\/chibi-ninja-devlog-3\/","pubDate":"Mon, 12 Dec 2022 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/chibi-ninja-shino-kun-devlog\/chibi-ninja-devlog-3\/","description":"Let&rsquo;s look at Demon Tower!"},{"title":"[POST] About the SGDK Tutorials","link":"https:\/\/www.ohsat.com\/post\/about-the-sgdk-tutorials\/","pubDate":"Thu, 01 Dec 2022 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/about-the-sgdk-tutorials\/","description":"They&rsquo;re on hiatus."},{"title":"[POST] Steam Autumn Sale 2022","link":"https:\/\/www.ohsat.com\/post\/steam-autumn-sale-2022\/","pubDate":"Tue, 22 Nov 2022 13:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/steam-autumn-sale-2022\/","description":"Time to save money and play games!"},{"title":"[POST] About That Twitter Thing...","link":"https:\/\/www.ohsat.com\/post\/about-that-twitter-thing\/","pubDate":"Tue, 22 Nov 2022 12:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/about-that-twitter-thing\/","description":"Twitter is falling apart, or maybe it isn&rsquo;t. Anyway, here&rsquo;s my plan for the future."},{"title":"[POST] The Gamedev Guide to Getting Started with Mastodon","link":"https:\/\/www.ohsat.com\/post\/quick-move-to-mastodon\/","pubDate":"Sat, 19 Nov 2022 03:30:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/quick-move-to-mastodon\/","description":"It&rsquo;s not as bad as you think!"},{"title":"[POST] Chibi Ninja Shino-kun is on Steam!","link":"https:\/\/www.ohsat.com\/post\/shino-kun\/steam-page\/","pubDate":"Fri, 14 Oct 2022 13:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/shino-kun\/steam-page\/","description":"A legendary ninja returns. And you can help him!"},{"title":"[POST] Chibi Ninja Devlog #2","link":"https:\/\/www.ohsat.com\/post\/chibi-ninja-shino-kun-devlog\/chibi-ninja-devlog-2\/","pubDate":"Tue, 04 Oct 2022 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/chibi-ninja-shino-kun-devlog\/chibi-ninja-devlog-2\/","description":"Let&rsquo;s look at some awesome ninja moves!"},{"title":"[POST] PogoGirl Devlog #31: PogoGirl is Bouncing to Consoles!","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post31\/","pubDate":"Wed, 07 Sep 2022 13:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post31\/","description":"A small bounce for PogoGirl, a giant leap for me!"},{"title":"[POST] Chibi Ninja Devlog #1","link":"https:\/\/www.ohsat.com\/post\/chibi-ninja-shino-kun-devlog\/chibi-ninja-devlog-1\/","pubDate":"Mon, 05 Sep 2022 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/chibi-ninja-shino-kun-devlog\/chibi-ninja-devlog-1\/","description":"What obstacles await you in Demon Tower? Let&rsquo;s find out!"},{"title":"[POST] Chibi Ninja Shino-kun is Coming!","link":"https:\/\/www.ohsat.com\/post\/shino-kun\/announcement\/","pubDate":"Mon, 08 Aug 2022 13:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/shino-kun\/announcement\/","description":"A legendary ninja returns. And you can help him!"},{"title":"[TUTORIAL] Playing Multiple Music Tracks","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/playing-multiple-music-tracks\/","pubDate":"Thu, 14 Jul 2022 11:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/playing-multiple-music-tracks\/","description":"Play the music and get down!"},{"title":"[TUTORIAL] How To Make Your Own Haxe Library","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/making-a-haxe-library\/","pubDate":"Fri, 17 Jun 2022 11:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/making-a-haxe-library\/","description":"Make your own Haxe lib!"},{"title":"[TUTORIAL] Using LDtk with FlxTilemap","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/using-ldtk-with-flxtilemap\/","pubDate":"Fri, 20 May 2022 11:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/using-ldtk-with-flxtilemap\/","description":"Use LDtk with HaxeFlixel!"},{"title":"[TUTORIAL] Using a Texture Atlas","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/using-texture-atlas\/","pubDate":"Fri, 20 May 2022 11:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/using-texture-atlas\/","description":"My setup for loading and using texture atlases."},{"title":"[TUTORIAL] Checking the Region","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/region-check\/","pubDate":"Fri, 06 May 2022 11:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/region-check\/","description":"Check the region of your Mega Drive!"},{"title":"[TUTORIAL] How to Implement Cheats","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/how-to-implement-cheats\/","pubDate":"Mon, 04 Apr 2022 11:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/how-to-implement-cheats\/","description":"Cheat it up!"},{"title":"[TUTORIAL] Quick Snow Effect","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/quick-snow-effect\/","pubDate":"Fri, 11 Mar 2022 11:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/quick-snow-effect\/","description":"Let it snow with HaxeFlixel!"},{"title":"[POST] PogoGirl Devlog #30: The Game Is Released!","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post30\/","pubDate":"Wed, 26 Jan 2022 13:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post30\/","description":"A mad scramble to the finish line."},{"title":"[POST] PogoGirl Devlog #29: Scrap Brain","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post29\/","pubDate":"Wed, 19 Jan 2022 11:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post29\/","description":"A mad scramble to the finish line."},{"title":"[TUTORIAL] Making an Underwater Music Effect in HaxeFlixel","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/underwater-music-effect\/","pubDate":"Mon, 20 Dec 2021 11:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/underwater-music-effect\/","description":"A dumb solution to create cool effects!"},{"title":"[POST] PogoGirl Devlog #28: Release Date!","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post28\/","pubDate":"Fri, 10 Dec 2021 09:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post28\/","description":"The Day of Pogo is imminent!"},{"title":"[POST] PogoGirl Devlog #27: Ice to Pogo You!","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post27\/","pubDate":"Thu, 18 Nov 2021 09:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post27\/","description":"Bounce away the cold!"},{"title":"[POST] PogoGirl Devlog #26: Shwing!","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post26\/","pubDate":"Mon, 08 Nov 2021 12:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post26\/","description":"It&rsquo;s like the swinging 60s in here!"},{"title":"[TUTORIAL] Simple Password System","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/simple-password-system\/","pubDate":"Mon, 18 Oct 2021 11:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/simple-password-system\/","description":"Implement a simple password system on the Mega Drive!"},{"title":"[TUTORIAL] Simple Animated Tiles in SGDK","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/animated-tiles-simple\/","pubDate":"Mon, 04 Oct 2021 11:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/animated-tiles-simple\/","description":"Animate tiles in a dumb way!"},{"title":"[POST] Why I Love Sonic R","link":"https:\/\/www.ohsat.com\/post\/why-i-love-sonic-r\/","pubDate":"Wed, 29 Sep 2021 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/why-i-love-sonic-r\/","description":"Feel the sunshine living in the city!"},{"title":"[POST] PogoGirl Devlog #25: Rotating Platforms","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post25\/","pubDate":"Mon, 20 Sep 2021 12:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post25\/","description":"Spin those platforms right round, baby!"},{"title":"[TUTORIAL] Placing Tiles","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/placing-tiles\/","pubDate":"Mon, 13 Sep 2021 11:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/placing-tiles\/","description":"Learn how to fill the screen with tiles!"},{"title":"[TUTORIAL] Scrolling Maps","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/scrolling-maps\/","pubDate":"Tue, 07 Sep 2021 11:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/scrolling-maps\/","description":"Learn how to draw and scroll big maps in SGDK!"},{"title":"[POST] PogoGirl Devlog #24: SAGE 2021 Happened","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post24\/","pubDate":"Mon, 30 Aug 2021 12:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post24\/","description":"<p>It&rsquo;s been a while since the last devlog, hasn&rsquo;t it? Well, no time like the present to get back into it!<\/p>"},{"title":"[TUTORIAL] Z-Sorting in HaxeFlixel","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/z-sorting-in-hf\/","pubDate":"Mon, 23 Aug 2021 11:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/z-sorting-in-hf\/","description":"Learn how to put things behind other things!"},{"title":"[TUTORIAL] Make a Text Crawl, Streets of Rage Style","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/sor-style-text-crawl\/","pubDate":"Mon, 02 Aug 2021 11:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/sor-style-text-crawl\/","description":"Make a Streets of Rage-style opening text crawl!"},{"title":"[TUTORIAL] One-Way Collisions","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/one-way-collisions\/","pubDate":"Mon, 19 Jul 2021 11:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/one-way-collisions\/","description":"Learn how to do one-way collisions in HaxeFlixel!"},{"title":"[POST] Why Jank Is Not Always Bad","link":"https:\/\/www.ohsat.com\/post\/why-jank-is-not-always-bad\/","pubDate":"Mon, 19 Jul 2021 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/why-jank-is-not-always-bad\/","description":"Parkouring ravens? Dogs stuck in walls? What&rsquo;s not to love!"},{"title":"[POST] PogoGirl Devlog #23: The Steam Page is Live!","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post23\/","pubDate":"Thu, 08 Jul 2021 12:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post23\/","description":"<p>The Steam store page for Go! Go! PogoGirl is now live!<\/p>"},{"title":"[TUTORIAL] Megatiler 7 - Loading Levels","link":"https:\/\/www.ohsat.com\/tutorial\/megatiler\/megatiler-7\/","pubDate":"Mon, 05 Jul 2021 12:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/megatiler\/megatiler-7\/","description":"<p>Welcome back! This time we&rsquo;ll add more levels to our game and learn how to load the next one once the player has reached the exit!<\/p>"},{"title":"[POST] PogoGirl Devlog #22: Graphics Overhaul","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post22\/","pubDate":"Sat, 26 Jun 2021 12:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post22\/","description":"In the previous two devlogs I&rsquo;ve talked about the changes I&rsquo;ve implemented in Go! Go! PogoGirl based on player feedback. And now there&rsquo;s another one&hellip;a big one.\nI&rsquo;ve already mentioned how the positive player reaction to the demo has motivated me to take this game further than I had originally intended. And now I can tell you what I meant by that:\nGo! Go! PogoGirl is coming to Steam!\nYes, shocker, a PC game is coming to Steam."},{"title":"[TUTORIAL] Using Finite State Machines in HaxeFlixel","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/finitestatemachine\/","pubDate":"Mon, 21 Jun 2021 12:00:00 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/finitestatemachine\/","description":"Let&rsquo;s face it: Game code is a mess. There are just so many moving parts, so many things that interact, so much stuff to process that your code eventually starts resembling a plate of spaghetti that&rsquo;s been hit by a tornado. However, there are patterns and techniques one can use to at least alleviate some of these problems. And one of the most powerful tools in the gamedev&rsquo;s arsenal against chaos theory are states."},{"title":"[POST] PogoGirl Devlog #21: Demo Updated!","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post21\/","pubDate":"Mon, 14 Jun 2021 12:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post21\/","description":"A new version of the Go! Go! PogoGirl demo has now been uploaded!\nI originally didn&rsquo;t intend to update the demo, but I have changed a few major mechanics in the game that made the old version a bit too outdated for my liking.\nChangelog  You can now twirl (almost) anytime. You can now stomp (almost) anytime. Stomping at the very peak of your jump will result in a super stomp."},{"title":"[POST] PogoGirl Devlog #20: After Demo: Air Charges and Super Stomps","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post20\/","pubDate":"Sat, 12 Jun 2021 12:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post20\/","description":"<p>The <a href=\"https:\/\/ohsat-andrej.itch.io\/go-go-pogogirl\">Go! Go! PogoGirl demo<\/a> has been out for over a week now, and I want to thank each and every one of you who has given it a shot. I really appreciate it!<\/p>"},{"title":"[TUTORIAL] Megatiler 6 - HUD, Sound and Making an Exit","link":"https:\/\/www.ohsat.com\/tutorial\/megatiler\/megatiler-6\/","pubDate":"Mon, 07 Jun 2021 13:07:13 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/megatiler\/megatiler-6\/","description":"<p>We have coins now, but they don&rsquo;t do anything. Let&rsquo;s make them do things, like unlocking the level exit! And let&rsquo;s also add some sound, because why not.<\/p>"},{"title":"[POST] PogoGirl Devlog #19: Demo Time!","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post19\/","pubDate":"Thu, 27 May 2021 12:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post19\/","description":"<p>The latest Go! Go! PogoGirl demo has arrived! Check it out!<\/p>"},{"title":"[POST] PogoGirl Devlog #18: A New Move + Demo Date","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post18\/","pubDate":"Tue, 25 May 2021 12:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post18\/","description":"<p>We all know that PogoGirl&rsquo;s got the moves, and now she&rsquo;s got a brand new one! And you&rsquo;ll get to try it out very soon&hellip;<\/p>"},{"title":"[TUTORIAL] HF Breakout 6 - Game Over","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/hf-breakout\/hf-breakout-6\/","pubDate":"Mon, 17 May 2021 12:00:00 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/hf-breakout\/hf-breakout-6\/","description":"<p>Welcome to the final part! Fittingly, this time we&rsquo;ll implement a game over so that our game actually ends at some point. Let&rsquo;s do it!<\/p>"},{"title":"[POST] PogoGirl Devlog #17: New Demo Incoming!","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post17\/","pubDate":"Thu, 13 May 2021 12:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post17\/","description":"<p>I&rsquo;ve been working hard on <em>Go! Go! PogoGirl<\/em>, and I think it&rsquo;s time you all get to play it! Well, at least a bit of it. That&rsquo;s why <strong>I&rsquo;m releasing a new demo!<\/strong><\/p>"},{"title":"[TUTORIAL] Megatiler 5 - Coins","link":"https:\/\/www.ohsat.com\/tutorial\/megatiler\/megatiler-5\/","pubDate":"Mon, 03 May 2021 14:07:10 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/megatiler\/megatiler-5\/","description":"<p>Welcome to part 5 of Megatiler! This time we&rsquo;ll add some coins for players to collect, because it wouldn&rsquo;t be an adventure game if you couldn&rsquo;t find valuables scattered about everywhere, right?<\/p>"},{"title":"[POST] PogoGirl Devlog #16: Winds of Fall","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post16\/","pubDate":"Sat, 01 May 2021 12:00:10 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post16\/","description":"Seasons change, even in Go! Go! PogoGirl. I&rsquo;ve already shown you spring and summer, so let&rsquo;s take a look at fall next!\nFall is where things cool down after a hot summer, where the leaves turn that nice brown color and cover the ground. Things become a bit gloomy, but in a good way. I&rsquo;ve tried to recreate this in Go! Go! PogoGirl.\n The red sky adds a sense of twilight, while also signaling that you&rsquo;ve entered the second half of the game, where things are about to get serious."},{"title":"[TUTORIAL] HF Breakout 5 - Score!","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/hf-breakout\/hf-breakout-5\/","pubDate":"Mon, 19 Apr 2021 12:00:10 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/hf-breakout\/hf-breakout-5\/","description":"<p>Numbers make the games go &lsquo;round! Especially old arcade games like Breakout, where the score was <em>the<\/em> reason to play. So, let&rsquo;s add a score counter to the screen!<\/p>"},{"title":"[TUTORIAL] HF Breakout 4 - Paddles","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/hf-breakout\/hf-breakout-4\/","pubDate":"Mon, 19 Apr 2021 12:00:00 +0200","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/hf-breakout\/hf-breakout-4\/","description":"<p>Welcome to part 4! This time we&rsquo;ll let players control the paddle so that they can smash the ball into bricks. Now things are getting really interesting, so let&rsquo;s get into it!<\/p>"},{"title":"[POST] PogoGirl Devlog #15: The Platform Rundown","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post15\/","pubDate":"Sat, 17 Apr 2021 12:00:00 +0200","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post15\/","description":"A platformer game needs some platforms, so let&rsquo;s look at some of the platforms you&rsquo;ll encounter in Go! Go! PogoGirl!\nFirst up, we have the Countdown Platforms. These can be bounced on a total of three times; on the third bounce they drop out of the stage. They change color with each bounce, so you&rsquo;ll know when to get away. Since they&rsquo;re pretty stable, you can both stomp on them and charge up a high jump!"},{"title":"[POST] PogoGirl Devlog #14: How I Build Levels","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post14\/","pubDate":"Fri, 09 Apr 2021 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post14\/","description":"Last time I mentioned that I was doing levels for Go! Go! PogoGirl and that I changed my Tiled setup to make the process easier. Well, I&rsquo;m happy to say that I&rsquo;ve now made all levels in the game! While I do enjoy making levels quite a lot, it&rsquo;s a very tricky thing to get right. Good level design is an art. And while I don&rsquo;t consider myself an artist in that regard (or any other regard, actually), I thought I&rsquo;d share my process of building the levels for Go!"},{"title":"[TUTORIAL] Megatiler 4 - Tile Movement (Part 2)","link":"https:\/\/www.ohsat.com\/tutorial\/megatiler\/megatiler-4\/","pubDate":"Mon, 05 Apr 2021 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megatiler\/megatiler-4\/","description":"<p>We&rsquo;ve implemented a lot of movement code already, but so far it&rsquo;s been not much more than a dry run. Let&rsquo;s get to <em>actually<\/em> moving the player around this time!<\/p>"},{"title":"[TUTORIAL] HF Breakout 3 - Hitting Bricks","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/hf-breakout\/hf-breakout-3\/","pubDate":"Sat, 20 Mar 2021 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/hf-breakout\/hf-breakout-3\/","description":"<p>The point of Breakout is to break stuff, so let&rsquo;s put in some bricks to break! Welcome to part 3 of this series!<\/p>"},{"title":"[POST] PogoGirl Devlog #13: The Tools of Pogo","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post13\/","pubDate":"Wed, 03 Mar 2021 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post13\/","description":"A game has many facets, and developing a game is like climbing a range of different mountains simultaneously. I&rsquo;ve worked on several different things in the past few weeks&mdash;water effects, powerups, HUD elements&mdash;but there is one major aspect of the game that I haven&rsquo;t touched in quite a while.\nLevels.\nYeah, sometimes you get caught up in all the coding and designing and pixel arting that you forget about other major parts of the game."},{"title":"[TUTORIAL] Megatiler 3 - Tile Movement (Part 1)","link":"https:\/\/www.ohsat.com\/tutorial\/megatiler\/megatiler-3\/","pubDate":"Mon, 01 Mar 2021 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megatiler\/megatiler-3\/","description":"<p>We&rsquo;ve got our world and we&rsquo;ve got our player. A world is boring if you can&rsquo;t explore, so let&rsquo;s use tile movement to get our player going!<\/p>"},{"title":"[TUTORIAL] HF Breakout 2 - Balls and Walls","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/hf-breakout\/hf-breakout-2\/","pubDate":"Mon, 01 Mar 2021 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/hf-breakout\/hf-breakout-2\/","description":"<p>Welcome back to part 2 of the HaxeFlixel Breakout tutorial! This time we&rsquo;ll add a ball and some walls to keep it in play, and we&rsquo;ll even make the ball bounce. Let&rsquo;s get into it!<\/p>"},{"title":"[TUTORIAL] HF Breakout 1 - Anatomy of a Project","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/hf-breakout\/hf-breakout-1\/","pubDate":"Mon, 22 Feb 2021 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/hf-breakout\/hf-breakout-1\/","description":"<p>Welcome to another HaxeFlixel tutorial! This time we&rsquo;ll learn how to create a Breakout game from scratch.<\/p>"},{"title":"[POST] PogoGirl Devlog #12: Power Up!","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post12\/","pubDate":"Mon, 08 Feb 2021 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post12\/","description":"Powerups are a staple of video gaming, and platformers had some of the best around. Sonic&rsquo;s elemental shields, Mario&rsquo;s mushroom, Kid Chameleon&rsquo;s transforming helmets&hellip;there&rsquo;s a lot of good stuff in there. It seemed obvious to put powerups into Go! Go! PogoGirl as well, but for a long time, I wasn&rsquo;t quite sure what to put in.\nPowerups need to enhance and support the gameplay; you can&rsquo;t just throw in anything you want."},{"title":"[TUTORIAL] Collision and Overlap","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/collision-and-overlap\/","pubDate":"Tue, 02 Feb 2021 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/collision-and-overlap\/","description":"HaxeFlixel comes with many powerful features, and one of the most useful ones is the built-in collision handling. Collision can be a very complex and difficult topic in gamedev, but HaxeFlixel makes it very easy to get it working. And this is not only extremely useful for quickly prototyping a game idea; the whole system is actually robust and performant enough for real production! So in this post, let&rsquo;s take a look at how to leverage the built-in collision features to smash things together in our games."},{"title":"[TUTORIAL] Megatiler 2 - Spawning the Player","link":"https:\/\/www.ohsat.com\/tutorial\/megatiler\/megatiler-2\/","pubDate":"Mon, 01 Feb 2021 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megatiler\/megatiler-2\/","description":"<p>A nice level is pointless if we can&rsquo;t actually be in it. So this time we&rsquo;ll spawn our player character and learn how to implement special function tiles in the process!<\/p>"},{"title":"[POST] PogoGirl Devlog #11: HUD and Stuff","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post11\/","pubDate":"Wed, 27 Jan 2021 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post11\/","description":"Gamedev includes a lot of fun activities, such as messing with physics, making lasers go pew and making stuff explode. However, there is also a lot of dry stuff that you have to take care of. And I&rsquo;m taking care of that stuff right now, because&hellip;well, because I&rsquo;ll have to eventually!\nFirst of all, I&rsquo;ve modified the menus a bit. So far I&rsquo;ve been using my own solution to create menus, and while it was a bit hacky, it worked pretty well."},{"title":"[POST] PogoGirl Devlog #10: Gems and Goals","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post10\/","pubDate":"Wed, 13 Jan 2021 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post10\/","description":"<p>It&rsquo;s been a while, but I&rsquo;m back in style! After spending a few frantic weeks finishing my Master&rsquo;s thesis, I&rsquo;m back in the pogo-saddle. So, it&rsquo;s time for an update!<\/p>"},{"title":"[TUTORIAL] Megatiler 1 - Tiles","link":"https:\/\/www.ohsat.com\/tutorial\/megatiler\/megatiler-1\/","pubDate":"Mon, 11 Jan 2021 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megatiler\/megatiler-1\/","description":"Welcome back to another Mega Drive project tutorial! This time around we&rsquo;ll create a top-down game, where the goal is to collect enough coins and then reach the exit of the level. We&rsquo;ll learn how to work with simple tilemaps, how to progress from one level to the next and other things!\n If this is your first Mega Drive tutorial on this site, then I highly recommend going back and doing the previous tutorials, starting with Megapong."},{"title":"[POST] PogoGirl Devlog #9: Making Enemies","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post9\/","pubDate":"Mon, 30 Nov 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post9\/","description":"<p>After all the shader shenanigans I needed a break and decided to work on something less technical and more gameplay-related: Enemies!<\/p>"},{"title":"[POST] HaxeFlixel Tutorials!","link":"https:\/\/www.ohsat.com\/post\/haxeflixel-tutorials\/","pubDate":"Mon, 23 Nov 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/haxeflixel-tutorials\/","description":"If you&rsquo;ve popped over to the tutorial section recently you might have noticed that I&rsquo;ve added my very first HaxeFlixel tutorial! It shows how to implement a simple, pixel-perfect 2D water shader which I used for Go! Go! PogoGirl.\nBut a few of you might be wondering what a HaxeFlixel is. Well, it&rsquo;s a 2D game framework that is as powerful as it is underrated! It runs on the (also underrated) Haxe language, is extremely well documented, open source, and has built-in functions for almost anything you&rsquo;d need."},{"title":"[TUTORIAL] Pixel-Perfect 2D Water Shader","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/pixel-perfect-water-shader\/","pubDate":"Mon, 09 Nov 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/pixel-perfect-water-shader\/","description":"Update: Mar 7th 22 - Made the shader code a bit cleaner to prevent issues with some graphics cards that are more strict about implicit type conversions.\n As you may have read in my latest devlog, I recently implemented a pixel-perfect water shader in Go! Go! PogoGirl. Since then I&rsquo;ve been asked to write a tutorial on how I did it, so here it is! I hope you&rsquo;ll find it helpful."},{"title":"[POST] PogoGirl Devlog #8: Shader Journey","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post8\/","pubDate":"Mon, 02 Nov 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post8\/","description":"<p>Last time I put water into the game. Now I made the water better!<\/p>"},{"title":"[POST] Streets of Was","link":"https:\/\/www.ohsat.com\/post\/streets-of-was\/","pubDate":"Mon, 26 Oct 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/streets-of-was\/","description":"As I&rsquo;m sure many of you will remember, the original Streets of Rage for the Mega Drive had multiple endings. The real canonical ending has you beat the crap out of Mr. X, thereby ending his reign of terror forever (yeah, right). However, if you confronted Mr. X with a buddy in tow, a new possible path unlocked.\nA quick refresher is in order. When you confront Mr. X he will ask you to join his organization."},{"title":"[POST] PogoGirl Devlog #7: Pogo Splash & Swim","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post7\/","pubDate":"Mon, 19 Oct 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post7\/","description":"<p>Remember in the <a href=\"..\/post6\">last post<\/a> when I announced that each season would have its own unique stage gimmick? Well&hellip;here&rsquo;s one!<\/p>"},{"title":"[POST] PogoGirl Devlog #6: Springtime Is Here","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post6\/","pubDate":"Tue, 29 Sep 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post6\/","description":"If you&rsquo;ve beaten the SAGE2020 demo of Go! Go! PogoGirl then you will already know a tidbit that I hadn&rsquo;t really made public until then: Go! Go! PogoGirl will feature 4 seasons to play through! In this devlog I&rsquo;d like to talk a little bit about the idea behind that and what you can expect.\n Seasons will basically act as worlds. This means that each season will have a set of completely unique levels, it&rsquo;s not the same levels over and over with a different visual style."},{"title":"[TUTORIAL] Drawing Tiles From Code","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/drawing-from-code\/","pubDate":"Mon, 28 Sep 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/drawing-from-code\/","description":"<p>So far, when we wanted to have tiles in our games, we always created them in a graphics program and imported them (incidentally, I have a list of <a href=\"..\/md-graphics-software\/\">4 programs you can use to create Mega Drive graphics<\/a>). And I mean, that makes sense, right? If you need graphics then you draw graphics. And since SGDK can import and process regular .png files, that really is the best and most logical way to get tile graphics into your game.<\/p>\n<p>But did you know that you can also skip a step and draw tiles directly from code? Yep, that&rsquo;s a possibility! Let&rsquo;s look at how you&rsquo;d go about doing that.<\/p>"},{"title":"[POST] The Little Things in Games","link":"https:\/\/www.ohsat.com\/post\/the-little-things-in-games\/","pubDate":"Mon, 21 Sep 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/the-little-things-in-games\/","description":"Developing games is a huge - and some would rightly say insane - undertaking. Even small games can end up being a surprising amount of work, and the end result tends to not reflect the actual project scope during development. The fact that games get finished at all is something of a miracle, to be honest. There are just so many things to consider, so many elements that have to be worked on, so many thingamabobs that have to be kajiggered in order to get a game working right."},{"title":"[POST] PogoGirl Devlog #5: SAGE: Aftermath","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post5\/","pubDate":"Mon, 14 Sep 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post5\/","description":"SAGE has come and gone, and I&rsquo;m still reeling from how quickly it all happened. I guess the only thing to do is to pick through the rubble and try to make sense of everything!\nFirst off, I knew from the beginning that Go! Go! PogoGirl wouldn&rsquo;t set SAGE on fire. It&rsquo;s the Sonic Amateur Games Expo after all, and people mainly want to play Sonic games. Hell, I used to mainly want to play Sonic games."},{"title":"[POST] PogoGirl Devlog #4: Road to SAGE 2020","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post4\/","pubDate":"Fri, 28 Aug 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post4\/","description":"On September 5th 2020 the virtual doors of the Sonic Amateur Games Expo will open for the 20th time, and Go! Go! PogoGirl will be a part of it! If you haven&rsquo;t heard yet, I will publish a public demo of the game for everyone to try out. Naturally this is very exciting for me (and I hope for you too) but naturally, this also means work. A lot of work."},{"title":"[TUTORIAL] Processing Resets","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/processing-resets\/","pubDate":"Mon, 24 Aug 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/processing-resets\/","description":"Remember when consoles had reset buttons? Those were the days. No menus, no closing applications&hellip; just slam that button and the game resets. Simple and effective. But is it actually that simple? It turns out that when it comes to the Mega Drive, there&rsquo;s a little feature that could turn into a trap if you&rsquo;re not aware of it.,\nI&rsquo;m talking about the fact that there are two types of reset: A soft reset and a hard reset."},{"title":"[POST] Strange Hitboxes Can Make Your Game Better","link":"https:\/\/www.ohsat.com\/post\/hitboxes\/","pubDate":"Fri, 07 Aug 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/hitboxes\/","description":"Let&rsquo;s play a little game. Which of these following statements have you caught yourself saying when dying in an action game?\nA Oh come on! That bullet was nowhere near me! This sucks!\nB Oh come on! My attack phased right through him! This sucks!\nC Oh come on! That bullet should have killed me! This sucks!\nI&rsquo;m willing to bet that you&rsquo;ve never said C. And the reason for that is obvious: We play games to have fun, and losing isn&rsquo;t fun."},{"title":"[TUTORIAL] Converting VGZ to VGM","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/converting-vgz-to-vgm\/","pubDate":"Mon, 20 Jul 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/converting-vgz-to-vgm\/","description":"<p>It&rsquo;s rather simple to import and play music in your game using SGDK, <a href=\"..\/playing-music\/\">as I&rsquo;ve explained previously<\/a>. However, one of the things you have to keep in mind is that SGDK only supports files in the format of VGM, XGM or XGC. No problem, right? Well&hellip;when you look around the web you&rsquo;ll see that many Mega Drive music files are actually in VGZ format. That&rsquo;s a bit of an issue, because SGDK doesn&rsquo;t know how to deal with those. But there&rsquo;s a trick to convert VGZ to VGM files, which SGDK can process happily!<\/p>"},{"title":"[POST] PogoGirl Devlog #3: Shiny Shiny Gems","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post3\/","pubDate":"Mon, 06 Jul 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post3\/","description":"Collectibles are as much a part of platformers as actual platforms. Whether it&rsquo;s Sonic&rsquo;s rings, Mario&rsquo;s coins or Banjo&rsquo;s notes, it seems like platformer worlds don&rsquo;t have littering laws because these things are everywhere. And that&rsquo;s good, because it&rsquo;s really fun to collect them and sometimes they even help you out. Extra life, anyone?\nSo of course Go! Go! PogoGirl will also have collectibles. After some thinking I settled on gems, because&hellip;I dunno, they look pretty and sparkly and coins are pretty overdone."},{"title":"[TUTORIAL] Playing Music in SGDK","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/playing-music\/","pubDate":"Mon, 06 Jul 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/playing-music\/","description":"<p>Playing music in SGDK might actually be a lot easier than you think. So let&rsquo;s quickly look at how it works and create ourselves a little disco, what do you say? Create a new SGDK project and let&rsquo;s go!<\/p>"},{"title":"[POST] PogoGirl Devlog #2: Bouncing Science","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post2\/","pubDate":"Tue, 23 Jun 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post2\/","description":"When you have a player character that should always bounce, a couple of obvious questions present themselves: How should they bounce? How high should they bounce? How quickly should they bounce? Questions like that form the basis of the entire gameplay concept, so it&rsquo;s very important to tackle them as early as possible&hellip;even if you&rsquo;ll often end up tackling them a few more times before the game ships. Here are the answers I&rsquo;ve worked out for now."},{"title":"[TUTORIAL] Changing The Text Color in SGDK","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/changing-text-color-sgdk\/","pubDate":"Mon, 22 Jun 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/changing-text-color-sgdk\/","description":"<p>SGDK makes it easy to put text on screen, using functions such as <code>VDP_drawText()<\/code>. By default this text is always rendered in white, but there is an easy (but also a bit tricky) way to change the text color in your Mega Drive game!<\/p>"},{"title":"[POST] PogoGirl Devlog #1: Introducing PogoGirl!","link":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post1\/","pubDate":"Mon, 15 Jun 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogogirl-devlog\/post1\/","description":"Welcome to the first post of my new Go! Go! PogoGirl devlog! Here I&rsquo;ll post long-form updates on the development of Go! Go! PogoGirl, sharing my experiences, crying about the bugs I encounter, and more. Developing a game is a journey, and it&rsquo;s more fun when you can drag people along with you. Stay away from the radio though; I pick the music.\nOkay, so let&rsquo;s start off by explaining what Go!"},{"title":"[TUTORIAL] Creating a Simple Menu","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/simple-menu\/","pubDate":"Mon, 01 Jun 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/simple-menu\/","description":"<p>What would a game be without menus? Well it would still be a game, just with less options I suppose. But you know what I mean, menu screens are an important feature of pretty much every game, from platformers to RPGs. So I&rsquo;d like to show you a simple way of creating menus for your Mega Drive game! Note that there are many ways to create menus and there is no single &lsquo;correct&rsquo; one. This is simply the approach I thought would be the most simple for beginners. Let&rsquo;s get into it!<\/p>"},{"title":"[TUTORIAL] Simple Game States","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/simple-game-states\/","pubDate":"Mon, 18 May 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/simple-game-states\/","description":"Game states (sometimes also called scenes or screens) are an important building block of games. Well, at least they should be. They not only serve to make code more maintainable and better structured, they can also help with resource management and performance. After all, you don&rsquo;t need to have the boss sprite in RAM while the player is in the options screen, right?\nIn case you&rsquo;re not quite sure what a game state is: Think about pretty much any video game."},{"title":"[TUTORIAL] Editing the Rom Header","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/rom-header\/","pubDate":"Mon, 11 May 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/rom-header\/","description":"Has this happened to you? You spend days crafting and coding an amazing Pong game for the Mega Drive. You create artistic, beautiful graphics, use highly advanced coding techniques and magical algorithms, and have composed a soundtrack that sounds like Streets of Rage as arranged and conducted by John Williams. Then you compile the game, fire it up in your emulator and see this:\n That just ruins the whole thing, doesn&rsquo;t it?"},{"title":"[POST] Streets of Rage 2 Design Docs","link":"https:\/\/www.ohsat.com\/post\/sor2-design-docs\/","pubDate":"Mon, 27 Apr 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/sor2-design-docs\/","description":"<p>A few years ago, Yuzo Koshiro posted a pile of old game design documents for <em>Bare Knuckle 2<\/em> aka <em>Streets of Rage 2<\/em> on the Ancient blog to commemorate the release of <em>Streets of Rage 2 3D<\/em> on the Nintendo 3DS. These documents gave a deep insight into the game&rsquo;s inner workings, technical aspects, designs and even some cut content. They were an awesome resource for one of the most awesome games ever created.<\/p>"},{"title":"[TUTORIAL] Megalaga BONUS - Powerup","link":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-b\/","pubDate":"Mon, 27 Apr 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-b\/","description":"<p>One of the coolest things in shmups are the powerups. It&rsquo;s fun to grab them to see what effects you get, and they can make you feel extremely powerful. So let&rsquo;s put one in!<\/p>"},{"title":"[TUTORIAL] Megalaga 9 - Sound","link":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-9\/","pubDate":"Fri, 24 Apr 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-9\/","description":"<p>In space, no one can hear you scream.  But you can hear lasers, explosions and video game beeps. That&rsquo;s just science.<\/p>\n<p>So far our game has been rather quiet. So let&rsquo;s add some sound to it to spice things up! What would a classic shmup be without beeps and bloops after all?<\/p>"},{"title":"[TUTORIAL] Megalaga 8 - Spam Protection","link":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-8\/","pubDate":"Thu, 16 Apr 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-8\/","description":"<p>Last time I mentioned that there is a potential issue concerning our game which was related to the bullet pool. And now I&rsquo;m going to reveal the secret (and of course fix the issue)!<\/p>"},{"title":"[TUTORIAL] Megalaga 7 - Enemy Bullets","link":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-7\/","pubDate":"Wed, 08 Apr 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-7\/","description":"<p>So far, enemies are nothing more than cannon fodder. They don&rsquo;t shoot or even move towards the player, so there&rsquo;s not really any way to fail the game. Let&rsquo;s change that by having enemies shoot at the player!<\/p>"},{"title":"[POST] Patreon Revamps 2","link":"https:\/\/www.ohsat.com\/post\/patreon-revamps-2\/","pubDate":"Wed, 25 Mar 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/patreon-revamps-2\/","description":"About two months ago I made a few changes to my Patreon tiers, while claiming that &ldquo;more changes are likely to come&rdquo;&hellip;and behold, more changes have come!\nLast time I stated that one of my long-term goals was to consolidate my fanbases. Some people only like to play my indie games while others are only interested in Mega Drive dev tutorials. So far, my Patreon has strongly catered to the latter crowd."},{"title":"[TUTORIAL] Megalaga 6 - Collision and HUD","link":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-6\/","pubDate":"Wed, 25 Mar 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-6\/","description":"We have enemies and bullets flying around on screen, and now it&rsquo;s time to smash them together! Shooting enemies will award the player with points, so we will also implement a HUD that will show the current score, as well as the number of enemies left. Let&rsquo;s get into it!\nCollision All collisions in the game will be handled in one big function. This function will loop through all bullets and all enemies to see if any of them collide."},{"title":"[TUTORIAL] Megalaga 5 - Bullets","link":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-5\/","pubDate":"Wed, 18 Mar 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-5\/","description":"Let&rsquo;s lock and load to shoot some space scum! This time we&rsquo;re going to create a pool of bullet entities, out of which we&rsquo;ll grab a bullet to launch at our enemies. Let&rsquo;s get shootin'!\nBullets First of all we&rsquo;ll of course need a bullet graphic. Download it using the link below, extract the archive, then put the image in res\/sprites.\nDownload bullet sprite\nThen import the bullet image by adding this line to resources."},{"title":"[POST] I'm Making a Pogo Platformer!","link":"https:\/\/www.ohsat.com\/post\/pogo-platformer\/","pubDate":"Sun, 15 Mar 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/pogo-platformer\/","description":"<p>If you&rsquo;ve been following my <a href=\"https:\/\/twitter.com\/ohsat_games\">Twitter<\/a> or <a href=\"https:\/\/www.patreon.com\/ohsat\">Patreon<\/a>, you might have noticed that I&rsquo;m working on a new indie game! And if you haven&rsquo;t followed either, then: Hey, I&rsquo;m working on a new indie game.<\/p>"},{"title":"[TUTORIAL] Megalaga 4 - Enemy Movement and Input","link":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-4\/","pubDate":"Mon, 09 Mar 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-4\/","description":"Now we have enemies, but they&rsquo;re not moving. That&rsquo;s not really intimidating, is it? Also, our player can&rsquo;t move either. Let&rsquo;s change all that so that we can actually interact with our game!\nMoving the Enemies First a quick bit of setup. At the top of main.c add these two defines:\n#define LEFT_EDGE 0 #define RIGHT_EDGE 320 These will define the left and right edges of the screen. It&rsquo;s good to use defines (or variables) for these values, so that we can easily change the bounds of the play area later on."},{"title":"[TUTORIAL] Megalaga 3 - Enemies","link":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-3\/","pubDate":"Mon, 02 Mar 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-3\/","description":"Last time we defined a struct of type Entity and used it to create a player. Now it&rsquo;s time to throw some enemies into the fray! It ain&rsquo;t a shooter without somethin' to shoot at, after all. Luckily our Entity struct will make that rather easy for us, because this way, each entity will keep track of its own position, velocity and other values.\nAnd to be extra lazy clever, we&rsquo;ll put all enemy entities into an array, so we can deal with them more easily in bulk."},{"title":"[POST] Make a Space Shooter for the Mega Drive!","link":"https:\/\/www.ohsat.com\/post\/make-a-spaceshooter\/","pubDate":"Mon, 24 Feb 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/make-a-spaceshooter\/","description":"It&rsquo;s time for another SGDK tutorial series! After doing a single player Pong game and an endless runner, it&rsquo;s time to reach for the stars&hellip; and make a space shooter!\n   Apart from things like scrolling and animating sprites, this new series will show you how to deal with multiple entities and their collisions, how to randomly generate backgrounds and more! This project builds upon the previous tutorials, so if you&rsquo;re new to SGDK programming and have not done those yet, I highly recommend starting with Megapong."},{"title":"[TUTORIAL] Megalaga 2 - Entities","link":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-2\/","pubDate":"Mon, 24 Feb 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-2\/","description":"Alright, last time we created some scrolling space. But we&rsquo;re not making a screen saver here! We&rsquo;ll need entities to populate our game, entities to shoot with and entities to shoot at.\nWe could define all of those manually, which would look a little something like this:\nint player_x; int player_y; int player_velx; int player_vely; int player_health; int enemy1_x; int enemy1_y; int enemy1_velx; int enemy1_vely; int enemy1_health; int enemy2_x; int enemy2_y; int enemy2_velx; int enemy2_vely; int enemy2_health; int enemy3_x; int enemy3_y; int enemy3_velx; int enemy3_vely; int enemy3_health; \/\/And so on and so on."},{"title":"[TUTORIAL] Megalaga 1 - Space","link":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-1\/","pubDate":"Mon, 17 Feb 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megalaga\/megalaga-1\/","description":"Last Updated: Dec 20 2021\n Update: Changed the offset check to offset &lt;= -256 as pointed out by Pyxel Pub (see comments below)\n\nWelcome to another new project tutorial series on Mega Drive development! This time we\u2019ll be creating a space shooter from scratch using SGDK, the Sega Genesis Development Kit. This is what the end result will look like:\n It&rsquo;s a very basic take on the genre."},{"title":"[TUTORIAL] 4 Programs For Creating Mega Drive Graphics","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/md-graphics-software\/","pubDate":"Tue, 04 Feb 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/md-graphics-software\/","description":"<p>Making art is hard, but retro consoles make the job even harder due to technical limitations and restrictions, such as a limited color palette. You have to keep these things in mind from the very beginning, before you even place your first pixel. Only practice makes perfect, but the graphics software you use can make your job easier&hellip;or maybe even harder! So in this post I wanted to give you a list of 4 graphics programs that you can use to create graphics for your Mega Drive game.<\/p>"},{"title":"[POST] Patreon Revamps","link":"https:\/\/www.ohsat.com\/post\/patreon-revamps\/","pubDate":"Tue, 28 Jan 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/patreon-revamps\/","description":"Hey there, what&rsquo;s up? Things are continuing to evolve, as I&rsquo;ve now updated my Patreon to give patrons more perks! Apart from early access to new tutorials and posts, the biggest one is probably the ability to peek behind the scenes&hellip;and there will be a lot to peek at in the coming months!\nThis year I&rsquo;m writing and submitting my MA thesis, meaning that I will have to do more stuff to make ends meet."},{"title":"[TUTORIAL] HaxeFlixel Crash Course: Make a Pong Game in Under 1 Hour","link":"https:\/\/www.ohsat.com\/tutorial\/flixel\/hf-pong\/","pubDate":"Thu, 23 Jan 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/flixel\/hf-pong\/","description":"HaxeFlixel is a very powerful framework and my personal favorite. However, it&rsquo;s still relatively unknown, which is unfortunate. So, in order to show off how kickass HaxeFlixel can be, I decided to create a crash course that&rsquo;ll show you how to create a 2-player Pong game in less than an hour!\n Before we begin, make sure that you&rsquo;ve installed and set up HaxeFlixel as described on the official homepage. It&rsquo;s all fairly straight-forward."},{"title":"[TUTORIAL] Color Swapping","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/colorswaps\/","pubDate":"Tue, 14 Jan 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/colorswaps\/","description":"Having to use palettes is one of those things that seem like a restriction at first, but&hellip; well okay, it is a restriction. But palettes can also be a powerful tool if you know how to use them right. One very simple but effective thing you can do is color swapping.\nHow does it work? The Mega Drive uses a palette of 64 colors that is shared among all visual assets in a game."},{"title":"[TUTORIAL] How to Quickly Generate C Prototype Functions in VSCode","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/c-auto-prototype-extension\/","pubDate":"Sun, 12 Jan 2020 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/c-auto-prototype-extension\/","description":"<p>One of the cool things that VSCode offers is the support for extensions. And there are a ton of them. There&rsquo;s pretty much one for every occasion, and if there isn&rsquo;t, there probably will be soon. And since we use C, an absolute classic of a programming language, there are also some that can help us out with Mega Drive coding!<\/p>"},{"title":"[POST] Games I've Beaten in 2019","link":"https:\/\/www.ohsat.com\/post\/games-ive-beaten-in-2019\/","pubDate":"Tue, 31 Dec 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/games-ive-beaten-in-2019\/","description":"So last year I gave a rundown of all the games I had beaten in 2018. And this year I&rsquo;m doing it again! However, since I&rsquo;ve finished a whopping 32 games and I&rsquo;m doing this at the last minute I&rsquo;ll have to make things a bit snappier than before. So no pretty pictures for each entry and just my general thoughts. Yeah it&rsquo;s more or less just a dry list, but I like writing these things so&hellip;yeah."},{"title":"[TUTORIAL] Megarunner BONUS - Tile Scrolling","link":"https:\/\/www.ohsat.com\/tutorial\/megarunner\/megarunner-b\/","pubDate":"Mon, 16 Dec 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megarunner\/megarunner-b\/","description":"<p>Know what makes any game better? Parallax scrolling! I know that might sound like an overstatement, because it is. But parallax scrolling is really cool, so let&rsquo;s add a small parallax effect to our game!<\/p>"},{"title":"[TUTORIAL] Megarunner 6 - Collision and Score","link":"https:\/\/www.ohsat.com\/tutorial\/megarunner\/megarunner-6\/","pubDate":"Mon, 09 Dec 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megarunner\/megarunner-6\/","description":"We have obstacles and the player can jump over them, but it doesn&rsquo;t really matter&hellip;you don&rsquo;t get rewarded when you do and you don&rsquo;t get punished when you don&rsquo;t. So let&rsquo;s add a scoring system and collision to the obstacles so that there&rsquo;s actual motivation to do things!\nCollision First we&rsquo;ll take care of the collision detection. Go down into your main game loop and add the following if-statement after the code that moves the obstacle across the screen:"},{"title":"[TUTORIAL] Megarunner 5 - Jumping Math","link":"https:\/\/www.ohsat.com\/tutorial\/megarunner\/megarunner-5\/","pubDate":"Mon, 02 Dec 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megarunner\/megarunner-5\/","description":"Now that we have obstacles, we need to enable the player to jump over them. However, in order to do that we need to use math. Don&rsquo;t panic, SGDK makes it quite simple. Let&rsquo;s go!\nFixed Point Math To make the player jump we&rsquo;ll have to change his vertical velocity to move him upwards, then apply gravity to pull him back down so that we get a jumping arc. We could do this using variables of type int, but this would lead to very hectic and jerky movement, because there&rsquo;s just not much precision."},{"title":"[TUTORIAL] Megarunner 4 - Player and Obstacles","link":"https:\/\/www.ohsat.com\/tutorial\/megarunner\/megarunner-4\/","pubDate":"Mon, 25 Nov 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megarunner\/megarunner-4\/","description":"<div class=\"updateline\">\n<p>Update: Fixed a small error when importing the rock graphic. Thanks to Thiago for pointing it out!<\/p>\n<\/div>\n<p>Alright, we got the background moving, now we need a player sprite to complete the illusion. Of course we <em>could<\/em> create very long levels and have the player actually run through them, but it is way more efficient to fake endless running by just scrolling the background past the player.<\/p>"},{"title":"[TUTORIAL] Megarunner 3 - Scrolling","link":"https:\/\/www.ohsat.com\/tutorial\/megarunner\/megarunner-3\/","pubDate":"Mon, 18 Nov 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megarunner\/megarunner-3\/","description":"Welcome back! Last time we drew a background with a floor and even some street lights. This time we&rsquo;ll get things moving by scrolling the background to create the illusion of endless running!\nPreparations As usual, we have to do a bit of preparation work. First off we&rsquo;ll define a new constant at the top of the file that will store the speed at which our background will scroll.\nconst int scrollspeed = 2; Next up we&rsquo;ll set our desired scrolling mode."},{"title":"[TUTORIAL] Megarunner 2 - Tiles","link":"https:\/\/www.ohsat.com\/tutorial\/megarunner\/megarunner-2\/","pubDate":"Mon, 11 Nov 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megarunner\/megarunner-2\/","description":"Welcome back! Now that we have a framework, we can start building the game proper. Let&rsquo;s start by importing some graphics and displaying tiles on the screen, so that our game stops looking like a text adventure.\nWe&rsquo;ll be using some graphics from the Game Creator&rsquo;s Pack by Jonathan. You won&rsquo;t have to download it, I&rsquo;ll provide all the files you&rsquo;ll need here, especially since I&rsquo;ve edited some of them."},{"title":"[POST] New SGDK Tutorial: Megarunner!","link":"https:\/\/www.ohsat.com\/post\/new-tutorial-megarunner\/","pubDate":"Mon, 04 Nov 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/new-tutorial-megarunner\/","description":"By now you&rsquo;ve probably noticed that I&rsquo;ve written a tutorial on how to create a single-player Pong game for the Mega Drive\/Genesis. Well, now I&rsquo;m writing another one! This time I&rsquo;ll guide you through creating an endless runner where you&rsquo;ll gain points by jumping over obstacles:\n This series will introduce new concepts such as scrolling and sprite animation, so if you want to improve your Mega Drive coding skills, head on over to the tutorials section and check it out!"},{"title":"[TUTORIAL] Megarunner 1 - The Framework","link":"https:\/\/www.ohsat.com\/tutorial\/megarunner\/megarunner-1\/","pubDate":"Mon, 04 Nov 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megarunner\/megarunner-1\/","description":"Welcome to a new tutorial series on Mega Drive development! Here we&rsquo;ll be creating a Mega Drive game from scratch using SGDK, the Sega Genesis Development Kit. And this is what we&rsquo;ll be working on:\n I call it Megarunner. It&rsquo;s an endless runner-type game where you jump over obstacles to gain points. The game ends when you hit one of the obstacles. It&rsquo;s a simple concept and thus a good way to learn about some new concepts of Mega Drive programming like scrolling and animation!"},{"title":"[TUTORIAL] Megapong BONUS - Flashing!","link":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-b\/","pubDate":"Mon, 21 Oct 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-b\/","description":"<p>Alright, we have a complete and working game now. We have graphics, gameplay, scores, game overs&hellip;sound is still missing, true, but that&rsquo;s a topic for another tutorial. However, we <em>can<\/em> still add something to make our game a bit better: The almighty <a href=\"https:\/\/www.youtube.com\/watch?v=Fy0aCDmgnxg\">Juice<\/a>.<\/p>\n<p>In order to juice things up as it were, we&rsquo;re going to make the ball flash when it&rsquo;s hit by the paddle. It&rsquo;s a small effect, but an important one when it comes to retrogaming. Hitting Robotnik wouldn&rsquo;t be as satisfying if he didn&rsquo;t flash, after all. So let&rsquo;s do this!<\/p>\n<figure style=\"text-align: center; margin-top: 1em; margin-bottom: 1em;\">\n  <img src=\"images\/flashing.gif\" alt=\"images\/flashing.gif\"\/>\n<\/figure>"},{"title":"[TUTORIAL] Megapong 9 - Game Over","link":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-9\/","pubDate":"Mon, 14 Oct 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-9\/","description":"Time to finish this game of ours! This time we&rsquo;ll add a fail state and some general polish to complete the Megapong experience. Let&rsquo;s jump right into it!\nMaking Things Easier for Us First, let&rsquo;s make things a bit easier for ourselves. We&rsquo;ll have to show some messages on screen soon and we can create the following helper function to help us out:\n\/*Draws text in the center of the screen*\/ void showText(char s[]){ VDP_drawText(s, 20 - strlen(s)\/2 ,15); } Put it near the top of the file, so that all functions can access it."},{"title":"[TUTORIAL] Megapong 8 - Score and HUD","link":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-8\/","pubDate":"Mon, 07 Oct 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-8\/","description":"It&rsquo;s the final stretch! We already have the core gameplay, but right now our game is less a game and more of an activity center. We should add a score to make it a bit more challenging and exciting. Let&rsquo;s do it!\nScore and HUD First we&rsquo;re going to define the variables that we&rsquo;ll need. At the beginning of the file, next to all our other variables, add this:\n\/*Score variables*\/ int score = 0; char label_score[6] = &#34;SCORE\\0&#34;; char str_score[4] = &#34;0&#34;; int score will store our current score value."},{"title":"[TUTORIAL] Megapong 7 - Collisions","link":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-7\/","pubDate":"Mon, 30 Sep 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-7\/","description":"It&rsquo;s physics time! We got two moving parts, now it&rsquo;s time to smash them together. SGDK has built-in collision stuff, but we won&rsquo;t need that for this simple project. The method we&rsquo;re using to handle collisions is called AABB collision detection. It uses axis-aligned bounding boxes, which sounds really fancy, doesn&rsquo;t it? Basically that just means we&rsquo;ll be using rectangles to check for collisions, instead of the actual sprite graphics. It&rsquo;s a very simple and efficient method of handling collisions."},{"title":"[TUTORIAL] Megapong 6 - Input and Paddles","link":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-6\/","pubDate":"Mon, 23 Sep 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-6\/","description":"We have a moving ball now, but a Pong game needs paddles. We&rsquo;ll add one now and learn about handling input in SGDK at the same time. Let&rsquo;s go!\nCreating a Paddle First we&rsquo;ll have to create a paddle for players to control. The process is very similar to the one in the previous post, so I won&rsquo;t go into as much detail this time.\nFirst, download the paddle image here."},{"title":"[TUTORIAL] Megapong 5 - Sprites","link":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-5\/","pubDate":"Mon, 16 Sep 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-5\/","description":"Now that we have a background, it&rsquo;s time to get things moving! Sprites are different from tiles, so we have a few new things to learn. Let&rsquo;s get into it and make a bouncing ball!\nImporting Sprites First of all we&rsquo;ll need a sprite for our ball. You can download it here. Here&rsquo;s what it looks like (scaled up 4x so you can see it better):\n Note that you have to download the file from the link above, right-clicking and saving the above image will not work!"},{"title":"[TUTORIAL] Megapong 4 - Palettes","link":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-4\/","pubDate":"Mon, 09 Sep 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-4\/","description":"Last time we put a tile on screen, which was awesome. But the color was wrong, which wasn&rsquo;t so awesome. Also, one tile doesn&rsquo;t really make a background, does it? So we&rsquo;ll take care of all that this time around. Let&rsquo;s get started!\nAbout Palettes Okay, so why was our tile white instead of the color it should&rsquo;ve been? Simply put: We didn&rsquo;t tell SGDK what colors we actually wanted, so it went with the defaults."},{"title":"[POST] Tutorials and Patreon!","link":"https:\/\/www.ohsat.com\/post\/tutorials-and-patreon\/","pubDate":"Mon, 02 Sep 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/tutorials-and-patreon\/","description":"Want some big news? Here are some big news!\nI have added a brand-new tutorials section to this site&hellip;and to kick it off I&rsquo;ve posted the first three installments of a new Mega Drive SGDK tutorial! In it you&rsquo;ll learn how to create a Pong-like game for the Mega Drive from the ground up using SGDK. A new post will go up every week, so make sure to check back regularly!"},{"title":"[TUTORIAL] Megapong 3 - Importing Resources","link":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-3\/","pubDate":"Mon, 02 Sep 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-3\/","description":"Welcome back! Last time we set up our development environment to make things easier for us. This time things will get a bit more exciting, as we&rsquo;ll import a graphic and use it to draw the background for our game! We have a lot ahead of us, so let&rsquo;s rock. You can either use the project from part 2 or create a new one. This one will become our game, so remember where you put it&hellip;"},{"title":"[TUTORIAL] Megapong 2 - Setting Up The Environment","link":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-2\/","pubDate":"Sun, 01 Sep 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-2\/","description":"Welcome back! Last time we set up SGDK and made sure everything worked. This time we&rsquo;ll set up a proper development environment, which will make things a lot easier and more fun for us. Believe me, it&rsquo;ll be worth it!\nDevelopment Environments Code for SGDK is written in C, so you can use basically any IDE that supports C. Some popular choices are Code::Blocks or Eclipse. However, the one I use and the one I would definitely recommend is Visual Studio Code."},{"title":"[TUTORIAL] Megapong 1 - Hello Mega Drive World!","link":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-1\/","pubDate":"Sat, 31 Aug 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/megapong\/megapong-1\/","description":"<p>Welcome to my new tutorial series on Mega Drive development! In it we will be creating a Mega Drive game from scratch using <a href=\"https:\/\/github.com\/Stephane-D\/SGDK\">SGDK<\/a>, the <strong>S<\/strong>ega <strong>G<\/strong>enesis <strong>D<\/strong>evelopment <strong>K<\/strong>it. This awesome piece of software allows you to program games for the Mega Drive in C instead of ASM, which makes things a whole lot easier.  I will show you how to set up your development environment, how to import graphics, how to put things on the screen, how to control them and have them collide&hellip;<\/p>"},{"title":"[POST] Status Update 2019 #1","link":"https:\/\/www.ohsat.com\/post\/status-update\/","pubDate":"Thu, 23 May 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/status-update\/","description":"Time for another update! I know not a lot has visibly changed since my last update but believe me when I say that behind the scenes things have been happening almost constantly. So let me share some of them with you!\nAttraction Force My upcoming game Attraction Force is progressing very nicely and should be ready for release in a month or so. Once again I&rsquo;ve spent more time on it than I had originally intended, but I wanted to make it the best it could be."},{"title":"[TUTORIAL] Creating Graphics for the Mega Drive","link":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/creating-graphics-for-md\/","pubDate":"Mon, 28 Jan 2019 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/tutorial\/mdmisc\/creating-graphics-for-md\/","description":"When it comes to making graphics for the Mega Drive, there are a number of programs available that you can use. It doesn&rsquo;t really matter if you&rsquo;re using software specifically designed for retro pixel art or more modern graphics suites like Photoshop or GIMP, as long as your program supports the use of palettes. However, even when your software is capable of creating images that SGDK can process, there are still a number of restrictions you have to keep in mind when designing and drawing your sprites and tiles."},{"title":"[POST] Games I've Beaten in 2018","link":"https:\/\/www.ohsat.com\/post\/games-ive-beaten-in-2018\/","pubDate":"Sat, 29 Dec 2018 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/games-ive-beaten-in-2018\/","description":"Back in my New Years Resolutions 2018 I said that I intended to beat 10 games this year, because &ldquo;That backlog needs a dent in it, seriously.&rdquo; Well, I&rsquo;m happy to say that I not only managed to pull it off, I also managed to beat 3 additional games on top of that! &hellip;and yes, there are way more important and impressive goals on that list but just let me have this one, alright?"},{"title":"[POST] Adventures in Mega Drive Coding Part 7: Handling Input","link":"https:\/\/www.ohsat.com\/post\/adventures-in-mega-drive-coding-part-7\/","pubDate":"Wed, 19 Dec 2018 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/adventures-in-mega-drive-coding-part-7\/","description":"WARNING: These are outdated and obsolete! Instad check out the new tutorial section&lt;. There you'll learn everything you could here but better!\nNote: These are not tutorials, I'm just chronicling my progress as I figure stuff out. Some of the things I do might make an experienced Mega Drive coder cry out in anguish. Feel free to use these posts to guide yourself along, but be aware I might be leading you off a cliff!"},{"title":"[POST] Mega Drive Memories","link":"https:\/\/www.ohsat.com\/post\/mega-drive-memories\/","pubDate":"Mon, 29 Oct 2018 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/mega-drive-memories\/","description":"The Mega Drive turns 30 today and I haven&rsquo;t felt this old since the last time someone reminded me when The Matrix hit theaters. But that&rsquo;s perfectly alright, because I love that sleek black box of kickass. It was my first console and will always be my favorite. It launched me head-first into the crazy world of video games and led me on the path that I&rsquo;m on today. I&rsquo;ve already written at some length about the influence platformers had on me but the Mega Drive was and is such a big part of my life that I can&rsquo;t help but blurt out some more words."},{"title":"[POST] From Quackshot to Speer","link":"https:\/\/www.ohsat.com\/post\/quackshot-to-speer\/","pubDate":"Thu, 20 Sep 2018 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/quackshot-to-speer\/","description":"Back when I got my Mega Drive in 1991 I got two games along with it: Sonic the Hedgehog and Castle of Illusion. Not only did these excellent titles provide hours of fun for me and my dad, they also left a huge impression on me. Through their sheer quality, these games became my taste in games. I loved the platforming, the colors, the charm, the easy to grasp mechanics and how they were simply fun."},{"title":"[POST] Sonic Mania Plus' Genius Tutorial","link":"https:\/\/www.ohsat.com\/post\/sonic-mania-plus-genius-tutorial\/","pubDate":"Thu, 02 Aug 2018 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/sonic-mania-plus-genius-tutorial\/","description":"The long-awaited Sonic Mania Plus recently came out and I can easily remember the last time I had as much fun with a game&mdash;it was with the original Sonic Mania. Since I&rsquo;ve beaten that game more than once I jumped straight into Encore mode on this one, anxious to try out the two new characters that were added in the update: Mighty the Armadillo and Ray the Squirrel. The gamer in me relished the entire trip through Angel Island zone, a sort of prologue stage of Encore Mode."},{"title":"[POST] Platformers and Me","link":"https:\/\/www.ohsat.com\/post\/platformers-and-me\/","pubDate":"Thu, 26 Jul 2018 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/platformers-and-me\/","description":"This is where it all began!  The original Sonic the Hedgehog was the first platformer I&rsquo;ve ever played. I do have vague memories of playing Pitfall on my dad&rsquo;s Atari 2600, but since I was 2 or 3 years old at the time I&rsquo;m not sure you can call what I was doing back then &ldquo;playing&rdquo;. But I sure was playing Sonic when I got it along with my Mega Drive on my 4th birthday."},{"title":"[POST] Importing Graphics in SGDK","link":"https:\/\/www.ohsat.com\/post\/importing-graphics-in-sgdk\/","pubDate":"Thu, 19 Jul 2018 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/importing-graphics-in-sgdk\/","description":"In part 3 of Adventures in Mega Drive Coding I talked about importing image files into SGDK so you can use them in your game. Since then I&rsquo;ve received a few questions regarding the matter, as I didn&rsquo;t do a very detailed job of explaining it. So here&rsquo;s a more in-depth explanation on how to import graphics (and other things) using SGDK!\nThe .res file A project in SGDK has 3 folders by default: src, res and out."},{"title":"[POST] Adventures in Mega Drive Coding Part 6: Enter Sprites","link":"https:\/\/www.ohsat.com\/post\/adventures-in-mega-drive-coding-part-6\/","pubDate":"Fri, 06 Jul 2018 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/adventures-in-mega-drive-coding-part-6\/","description":"<p style=\"color:red; font-weight: bold; font-size: larger;\">WARNING: These are outdated and obsolete! Instad check out the new <a href=\"https:\/\/www.ohsat.com\/tutorial\">>tutorial section&lt;.<\/a> There you'll learn everything you could here but better!<\/p>\n<p class=\"introbox\">\n    Note: These are not tutorials, I'm just chronicling my progress as I figure stuff out. Some of the things I do might make an experienced Mega Drive coder cry out in anguish. Feel free to use these posts to guide yourself along, but be aware I might be leading you off a cliff!\n<\/p>\n<p>Welcome back to Adventures in Mega Drive Coding, where I play around with <a href=\"https:\/\/github.com\/Stephane-D\/SGDK\">SGDK<\/a> in an attempt to get a Mega Drive game done this year!<\/p>"},{"title":"[POST] Adventures in Mega Drive Coding Part 5: Palettes and Splitting Tiles","link":"https:\/\/www.ohsat.com\/post\/adventures-in-mega-drive-coding-part-5\/","pubDate":"Sat, 10 Mar 2018 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/adventures-in-mega-drive-coding-part-5\/","description":"WARNING: These are outdated and obsolete! Instad check out the new tutorial section&lt;. There you'll learn everything you could here but better!\nNote: These are not tutorials, I'm just chronicling my progress as I figure stuff out. Some of the things I do might make an experienced Mega Drive coder cry out in anguish. Feel free to use these posts to guide yourself along, but be aware I might be leading you off a cliff!"},{"title":"[POST] Setting Up SGDK in Visual Studio Code (With Auto-Complete)","link":"https:\/\/www.ohsat.com\/post\/sgdk-in-visual-studio-code\/","pubDate":"Thu, 22 Feb 2018 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/sgdk-in-visual-studio-code\/","description":"As I mentioned in part 2 of Adventures in Mega Drive Coding I set up Code::Blocks as my IDE for Mega Drive development. And Code::Blocks is great, but I still had two issues with it. First of all, auto-complete didn&rsquo;t really work. Considering I&rsquo;m pretty much poking around the SGDK API blindly, that wasn&rsquo;t helpful. And secondly&hellip;I use VSCode for pretty much anything else coding-related, so it would be nice to also use it for SGDK stuff."},{"title":"[POST] Adventures in Mega Drive Coding Part 4: More Tiles","link":"https:\/\/www.ohsat.com\/post\/adventures-in-mega-drive-coding-part-4\/","pubDate":"Sat, 10 Feb 2018 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/adventures-in-mega-drive-coding-part-4\/","description":"WARNING: These are outdated and obsolete! Instad check out the new tutorial section&lt;. There you'll learn everything you could here but better!\nNote: These are not tutorials, I'm just chronicling my progress as I figure stuff out. Some of the things I do might make an experienced Mega Drive coder cry out in anguish. Feel free to use these posts to guide yourself along, but be aware I might be leading you off a cliff!"},{"title":"[POST] Adventures in Mega Drive Coding Part 3: Importing Graphics","link":"https:\/\/www.ohsat.com\/post\/adventures-in-mega-drive-coding-part-3\/","pubDate":"Thu, 01 Feb 2018 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/adventures-in-mega-drive-coding-part-3\/","description":"WARNING: These are outdated and obsolete! Instad check out the new tutorial section&lt;. There you'll learn everything you could here but better!\nNote: These are not tutorials, I'm just chronicling my progress as I figure stuff out. Some of the things I do might make an experienced Mega Drive coder cry out in anguish. Feel free to use these posts to guide yourself along, but be aware I might be leading you off a cliff!"},{"title":"[POST] Using Shoebox With MonoGame","link":"https:\/\/www.ohsat.com\/post\/using-shoebox-with-monogame\/","pubDate":"Tue, 23 Jan 2018 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/using-shoebox-with-monogame\/","description":"If you&rsquo;ve worked with spritesheets at any point you might have worked with tools like TexturePacker or Shoebox, which can make creating and managing spritesheets a lot easier. I&rsquo;ve actually not used them until now, but since I&rsquo;m experimenting with a new framework (MonoGame) I thought I might as well give them a try!\nHowever, while TexturePacker has built-in MonoGame support you can only access it in the paid version. Shoebox is completely free, but doesn&rsquo;t offer support for MonoGame out of the box&hellip;but luckily you can modify the output parameters to enable that support!"},{"title":"[POST] Adventures in Mega Drive Coding Part 2: Tiles","link":"https:\/\/www.ohsat.com\/post\/adventures-in-mega-drive-coding-part-2\/","pubDate":"Fri, 19 Jan 2018 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/adventures-in-mega-drive-coding-part-2\/","description":"WARNING: These are outdated and obsolete! Instad check out the new tutorial section&lt;. There you'll learn everything you could here but better!\nNote: These are not tutorials, I'm just chronicling my progress as I figure stuff out. Some of the things I do might make an experienced Mega Drive coder cry out in anguish. Feel free to use these posts to guide yourself along, but be aware I might be leading you off a cliff!"},{"title":"[POST] Adventures in Mega Drive Coding Part 1: The Journey Begins","link":"https:\/\/www.ohsat.com\/post\/adventures-in-mega-drive-coding-part-1\/","pubDate":"Fri, 12 Jan 2018 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/adventures-in-mega-drive-coding-part-1\/","description":"WARNING: These are outdated and obsolete! Instad check out the new tutorial section&lt;. There you'll learn everything you could here but better!\nNote: These are not tutorials, I'm just chronicling my progress as I figure stuff out. Some of the things I do might make an experienced Mega Drive coder cry out in anguish. Feel free to use these posts to guide yourself along, but be aware I might be leading you off a cliff!"},{"title":"[POST] Resolutions 2018","link":"https:\/\/www.ohsat.com\/post\/resolutions-2018\/","pubDate":"Sun, 31 Dec 2017 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/resolutions-2018\/","description":"Another year is almost done kicking us in the collective balls and the next one is already lacing up its boots, so what better time to make some resolutions? I&rsquo;m gonna post mine publicly this time so that I&rsquo;ll have to put more effort into finding excuses definitely not abandon them.\n1. Blog More I&rsquo;ve got a lot of thoughts swirling in my head and instead of keeping them trapped I&rsquo;ll try to unleash them upon the world, in the hopes that it will help (or at least slightly amuse) someone."},{"title":"[POST] [Speer] Released!","link":"https:\/\/www.ohsat.com\/post\/speer-released\/","pubDate":"Wed, 20 Dec 2017 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/speer-released\/","description":"Well, this day had to come sooner or later: [Speer] is now officially released and available for your buying, downloading and playing pleasure!\n  Grab your Speer and use it to fight your way through this hardcore puzzle-platformer! Throw your Speer into walls and use it as a platform, hurl it at switches, hit enemies in the face with it, power it up with unique abilities&hellip;the possibilities are endless!*"},{"title":"[POST] Teaching via Level Design Gone Wrong","link":"https:\/\/www.ohsat.com\/post\/teaching-via-level-design-gone-wrong\/","pubDate":"Fri, 24 Nov 2017 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/teaching-via-level-design-gone-wrong\/","description":"As you might have seen I have recently released a brand-new preview build of [Speer] and so far it seems that people really like it! However, one person had trouble getting through a certain stage and it turns out that was my fault.\nThe level in question was 2-9: TeleDelivery:\n Incidentally I&rsquo;m going to spoil the solution now, so if you want to give it a try yourself first stop reading now and download the build right here!"},{"title":"[POST] Speer Preview Released","link":"https:\/\/www.ohsat.com\/post\/speer-preview-released\/","pubDate":"Wed, 22 Nov 2017 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/speer-preview-released\/","description":"A new preview build of [Speer] is now up for you to play on itch.io!\n  This one is in beta status, meaning it almost reflects the final game design-wise. Note however that this preview only contains 20 stages, while the final game will have 100. Also, the final game will of course have even more puzzles, gimmicks and hazards! This downloadable build is only meant to whet your appetite a bit and to get me feedback so I can make some final adjustments before the game goes on sale."},{"title":"[POST] The Thinking Label","link":"https:\/\/www.ohsat.com\/post\/the-thinking-label\/","pubDate":"Fri, 17 Nov 2017 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/the-thinking-label\/","description":"I&rsquo;m using Trello for my project management (at least when it comes to gamedev) as it strikes just the right balance between complexity and simplicity for my needs. I usually have a List titled Todo filled with lots of cards containing stuff that&hellip;well, needs to be done. In order to structure this pile of work a little better I&rsquo;ve been using labels to separate the tasks into Code, Art and Bug so I can see at a glance what skills a particular task will require."},{"title":"[POST] Just Beat Xeodrifter","link":"https:\/\/www.ohsat.com\/post\/just-beat-xeodrifter\/","pubDate":"Sat, 04 Nov 2017 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/just-beat-xeodrifter\/","description":"I&rsquo;ve just beaten Xeodrifter and what a neat little game that was. A Metroidvania for busy people and therefore right up my alley. The graphics are very colorful and charming, the music is really good, playability is spot-on&hellip;it&rsquo;s an overall great package.\nI&rsquo;ve beaten the game in about 2h and even managed to get almost all the powerups so it really is quite a short experience, but it&rsquo;s more than enjoyable enough to be worth the ride."},{"title":"[POST] HaxeFlixel Tutorial: Single Separation Collisions","link":"https:\/\/www.ohsat.com\/post\/single-separation-collisions\/","pubDate":"Fri, 03 Nov 2017 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/single-separation-collisions\/","description":"Collision detection (and handling) is one of the most fiddly things when it comes to creating games, at least in my experience. There seems to be no shortage of weird bugs and issues that can pop up throughout the entire dev cycle of a game (the weirdest one I&rsquo;ve encountered so far is this one right here). It&rsquo;s a good thing then that HaxeFlixel comes with several functions that can take care of it for you."},{"title":"[POST] Just Beat: The Last Tinker","link":"https:\/\/www.ohsat.com\/post\/just-beat-the-last-tinker\/","pubDate":"Mon, 30 Oct 2017 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/just-beat-the-last-tinker\/","description":"Today I beat The Last Tinker on PC and&hellip;it was alright.\nMotivated by the upcoming release of Super Mario Odyssey I felt like playing a colorful 3D platformer and since I had this game kicking around in my GOG collection for quite a while now I decided to finally boot it up.\nOnly to realize, like anyone else, that this is not a 3D platformer despite absolutely looking like one. Instead it&rsquo;s more of a Parkour-adventure with combat, I suppose&hellip;and for what it is, it&rsquo;s really not bad."},{"title":"[POST] Hanging on Balloons","link":"https:\/\/www.ohsat.com\/post\/hanging-on-balloons\/","pubDate":"Wed, 25 Oct 2017 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/hanging-on-balloons\/","description":"One of the best things you can do for yourself in gamedev is to have good tools and an efficient workflow. I&rsquo;ve already shown how I handle path movement in [Speer] in another post, now I want to show you another small trick I&rsquo;m using to make level creation easier and quicker.\nNote: As always this article will show how I&rsquo;ve implemented it in HaxeFlixel, as that is the framework I&rsquo;m using."},{"title":"[POST] Undying","link":"https:\/\/www.ohsat.com\/post\/undying\/","pubDate":"Fri, 20 Oct 2017 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/undying\/","description":"I&rsquo;ve finally been playing Clive Barker&rsquo;s Undying. If I sound strangely enthusiastic, that&rsquo;s because Undying is one of those games I&rsquo;ve seen as a kid but never got to play for various reasons. The main reason being that I simply didn&rsquo;t have a computer capable of running it back in the day, and since the planned PS2 version was canceled I simply missed out.\nAnd, well&hellip;I kinda forgot about the game once I had a PC powerful enough."},{"title":"[POST] Path Movement in Speer","link":"https:\/\/www.ohsat.com\/post\/path-movement-in-speer\/","pubDate":"Tue, 17 Oct 2017 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/path-movement-in-speer\/","description":"I&rsquo;ve recently been asked about how I did the movement of some Sparkballs in [Speer], more specifically these ones:  While the simple answer would be &ldquo;Path movement, baby!&rdquo; I thought I&rsquo;d use the opportunity to go a bit more in depth and show you how I did it. Since [Speer] is powered by HaxeFlixel this is going to focus on that particular framework, although the general approach could easily be implemented in other engines and languages as well."},{"title":"[POST] Hello Hugo","link":"https:\/\/www.ohsat.com\/post\/hello-hugo\/","pubDate":"Tue, 10 Oct 2017 00:00:00 +0000","guid":"https:\/\/www.ohsat.com\/post\/hello-hugo\/","description":"Welcome to the new Ohsat.com! It&rsquo;s leaner, meaner and also more pink.\nI&rsquo;ve not really touched (let alone updated) my website in quite a while. One reason is that I&rsquo;ve created a hub for my current game [Speer] over on itch.io, so all updates etc. were posted there. But the main reason is that my old site was a bloated mass of Wordpress cobbled together with plugins and hacks that was just a chore to maintain and use."}]}}