
Hello friends!
Welcome to this week’s Sloth Bytes.
Just wanted to surprise you with this early issue 😀

Try the internet’s easiest File API
Tired of spending hours setting up file management systems? Pinata’s File API makes it effortless. With simple integration, you can add file uploads and retrieval to your app in minutes, allowing you to focus on building features instead of wasting time on unnecessary configurations. Our API provides fast, secure, and scalable file management without the hassle of maintaining infrastructure.

The word Sloth also means “laziness” (not a surprise)
The word “sloth” comes from the Middle English word slouthe or slewthe, meaning “laziness”, which comes from the Old English word slǣwþ meaning sloth, indolence, laziness, inertness, or torpor.

Game Development

Ever dreamed of creating your own game? Seeing your ideas come to life on the screen?
It's easier than you might think.
And I'm here to guide you through the basics.
Why Game Development?
Because it's fun, it's creative, you can build worlds and tell stories, and you can make dumb things like Minecraft 2 or Fortnite 2.
And who wouldn't want to do that?
But Where Do You Start?
Good question.
Game development can seem overwhelming.
Graphics, coding, design—it's a lot.
But let's break it down.
Step 1: Choose a Game Engine
A game engine is your toolkit.
A game engine gives you systems for rendering, input, audio, scenes/entities, asset pipelines, and often physics/networking/editor tooling. It handles a lot of plumbing, but you still have to understand the game state and rules you’re building on top of it.
Popular options include:
Unity
Beginner-friendly with tons of tutorials.
Unreal Engine
Powerful, with stunning graphics capabilities.
Godot
Open-source and great for 2D and 3D games.
Pick one that matches your target platform, language/preferences, licensing needs, and the type of game you want to build. Then stick with it long enough to learn the underlying concepts instead of restarting every week because a YouTuber found a shinier engine.
Step 2: Learn the Basics
Don't jump into a massive project.
Start small.
Learn how to:
Move a character.
Create simple interactions.
Build basic environments.
Tutorials are your best friend here.
Step 3: Get Comfortable with Coding
Yes, coding is part of it.
But don't worry.
Many game engines use languages that are easy to learn:
C# for Unity
C++ for Unreal Engine
GDScript, C#, and even C++ for Godot
Start with simple scripts.
Modify examples.
See what happens.
Step 4: Design a Simple Game
Have an idea?
Awesome.
But keep it simple.
Think:
A basic platformer.
A simple puzzle game.
A small adventure.
Sketch it out.
Plan the mechanics.
Step 5: Use Free Assets
Not an artist?
No problem.
We can steal legally use licensed resources.
There are plenty of free/paid resources for graphics, sound effects, music, fonts, and UI—but “free to download” does not automatically mean “free for every commercial use.” Check the asset’s license, attribution requirements, redistribution rules, and whether you’re allowed to modify it.
Graphics
Sound effects
Music
Sites like OpenGameArt can help. Keep a simple credits/licenses file in your project so Future You does not have to reverse-engineer where every sword sound came from.
Step 6: Build Your Game
Put it all together.
Code the mechanics.
Import the assets.
Test frequently.
Step 7: Test and Iterate
Play your game, find bugs,Fix them, and ask friends to try it.
Feedback is gold.
Step 8: Keep Learning
There’s a lot of things to learn for game development.
You can explore concepts like:
Game loops, frame timing, and fixed-step physics
Collision/physics systems
Animation and state machines
Input systems and accessibility
AI/pathfinding for enemies
Save systems and serialization
Profiling CPU/GPU/frame-time bottlenecks
Networking and authoritative state if you go multiplayer
Each new skill enhances your games, so keep learning!
The Core Loop Behind Most Games
Different engines hide different amounts of this, but the mental model is usually:
Read input/events. Keyboard, controller, touch, network messages, etc.
Update game state. Movement, AI, cooldowns, collisions, health, timers.
Render. Draw the current state to the screen.
Repeat while the game is running.
while running:
dt = time_since_last_frame()
handle_input()
update_game(dt)
render()Frame rate should not change game speed
If you move a character “5 pixels every frame,” a 144 FPS monitor can make the game run much faster than a 30 FPS machine. For frame-based updates, movement is usually expressed in units per second and multiplied by elapsed time:
position += velocity_per_second * delta_time_secondsThat said, physics simulations often prefer a fixed simulation timestep for stability/determinism while rendering happens as fast as the display allows. Engines usually provide separate update hooks or physics settings for this.
Game state is the real game
Your sprites/models are presentation. The important thing is the state underneath: player position, inventory, quest progress, enemy state, score, world changes, etc. Keeping that state understandable makes pausing, saving/loading, networking, replay, and debugging dramatically easier.
When you add save files, serialize the durable state you actually need—not engine objects, open file handles, random temporary caches, or half the runtime by accident.
Resources to Help You
Why Start Now?
Because there's no better time.
Tools are accessible.
Communities are supportive.
And your ideas are waiting. It's challenging but rewarding.
Start small.
Stay persistent.
And most importantly, have fun.
If you want to keep learning
How video game save systems work — learn how games serialize player state, store files, and sync progress.
How to start a programming project — scope your first game so it actually gets finished instead of becoming the next GTA 6.
Stop overengineering side projects — a useful reminder before your tiny platformer somehow gets Kubernetes.




Thank you to everyone who submitted 😃
ravener, OTJL12, RelyingEarth87, Yoshlix, JamesHarryT, MustySix66, ddat828, kamilfarzan, Harutoedv504, J-Me-2307, 7IronSnow7, tobiaoy, Zeldog9, and taypham88
Ping Pong!
A game of table tennis almost always sounds like Ping! followed by Pong!
You know that Player 2 won if you hear Pong! as the last sound (since Player 1 didn't return the ball back).
Given an array of Ping!, create a function that inserts Pong! in between each element. Also:
If
winequalstrue, end the list with Pong!If
winequalsfalse, end the list with Ping!
Examples
#Example 1
pingPong(["Ping!"], True)
output = ["Ping!", "Pong!"]
#Example 2
pingPong(["Ping!", "Ping!"], False)
output = ["Ping!", "Pong!", "Ping!"]
#Example 3
pingPong(["Ping!", "Ping!", "Ping!"], True)
output = ["Ping!", "Pong!", "Ping!", "Pong!", "Ping!", "Pong!"]Notes
Player 1 serves the ball and makes Ping!.
Return an array of strings.
How To Submit Answers
Reply with
A link to your solution (github, twitter, personal blog, portfolio, replit, etc)
or if you’re on the web version leave a comment!

So uh video got a bit delayed…
The reason is because of this game right here.

No regrets… I’ll try to finish this video soon though 😆
That’s all from me!
Have a great week, be safe, make good choices, and have fun coding.
See you all next week.









