My Game Development Tips & Tricks: Lessons I've Learned Along the Way!
Welcome to my little corner of Game Dev wisdom! Over the years, I've picked up a bunch of tips, tricks, and hard-earned lessons that have helped me through the ups and downs of making games. I'm sharing some of them here in the hopes that they'll help you on your journey, too.
Games to Learn Programming
• Human Resource Machine - Logic & automation.
• Shenzhen I/O - Circuit design & coding.
• TIS-100 - Assembly-like programming puzzles.
• CodeCombat - Learn Python/JavaScript in RPG style.
• Hacknet - Simulated hacking.
• 7 Billion Humans - Parallel programming.
• Colobot - Coding for robotics.
• Exapunks - Creative problem-solving in code.

Richard Bartle's classification of players
Richard Bartle's classification of players identifies different player motivations in online games:
• Achievers: aim for goals
• Killers: seek competition
• Socializers: enjoy interaction
• Explorers: love discovering game worlds

Unity C# - CompareTag
Why should we use 'CompareTag' instead of '==Tag' ?
• Performance: string comparisons are slower, less internally optimized and less precise.
• Error Handling: CompareTag has a built-in check to ensure the tag exists, and if not Unity will throw an error.

The Deck of Lenses
Did you know 'The Deck of Lenses' by Jesse Schell? It's a handy tool if you're into Game Design!
It provides useful perspectives and questions that can help your game grow
You can find it here: https://deck.artofgamedesign.com


VScode extensions
• vscode-pets - Small animals walking around your editor. You can choose from different pets like cats, dogs, and more.
• Rainbow-Brackets & Indent-Rainbow - Colorizes matching brackets, making it easier to spot them and keep your code neat and well-structured.
• vscode-icons - Provides a set of icons to replace the default file icons in VS Code. Is a great visual aid tool.
• Power Mode - Adds visual effects to your coding, such as explosions and screen shakes when you type.

Roblox Art Plugins
• Mesh Optimization Tools - optimize TriangleMeshParts by toggling decomposition geometry, visualizing collision boxes, and patching MeshPart properties based on MeshId.
• ParticleEmitter:Emit(n) V2 - easy ParticleEmitter bursts and emit count control.
• RigEdit Lite - creating, editing, and resetting rig joints.
• Team Create with Hats - Wear accessories in team create (not ART perse, but fun to use :D) .

Game Flow
Gameflow in videogame development is crucial. It ensures a smooth and enjoyable experience, preventing frustration and boredom, which helps maintain player interest and satisfaction.
Player must feel that it's a challenge but that they can overcome it.

Data Protocols for Multiplayer
Data Protocols used in multiplayer games:
• TCP: ensures reliable transmission. Can be used for chat & lobby setups.
• UDP: is faster, ideal for real-time gameplay, handling occasional data loss for quick updates in fast-paced games.

Story Flow
What's a story? Here's a 3 act structure one:
1- Start point
2- Breaks the order/balance
3- Player chooses to face what happened (if not there's no story)
4- Maximum dramatic interest
5- How the world/character has turned out after the solution
The 12 Principles of Animation
The 12 principles of animation bring characters to life, making movements more realistic and expressive. Master these for adding depth and dynamism to your characters and scenes!

Core Game Loop
The "action-reward-expansion" core loop in Game Design: players take actions, earn rewards, and use them to unlock new opportunities, creating an engaging cycle.
Roblox Luau Game Chat
Ever wondered how to make your Game Chat look fancier? You can use the TextChatService and add some fun colors and shapes to both the normal chat and the speech bubbles!

Audio Tools for Videogame Sound Engineers
Free sounds:
• http://freesound.org
• http://soundminer.com
Sound with Video Editor:
• Nuendo
Sound Mixer:
• Audition
Sound Design & Synthesis:
• FMOD
• Wwise
• Reaper
Multiplayer Protocol P2P
• There is no central server. All clients are connected to each other.
• Each client shares data directly with the others.
• Advantages: Less expensive, no central server.
• Disadvantages: Less secure and there may be synchronization issues.
• Examples: Terraria, Payday2, Dark Souls
Host dependency: If the host player leaves, the game closes.
Host lag: If the host has a bad connection, it affects all players.
Host migration: In some games (such as Call of Duty), if the host leaves, the game pauses and attempts to assign a new host.

Multiplayer Protocol Client-Server
• There is a central server that manages all the information.
• Clients (players or users) connect to the server, but not to each other.
• Advantages: More secure and easier to control.
• Disadvantages: If the server fails, everything stops working.
• Examples: Roblox, Fortnite, LoL, WoW, Overwatch
No Host dependency: Game continues even if the host disconnects.
No lag: Statistics and progress are well synchronized.
