roblox-game-development by greedychipmunk/agent-skills
npx skills add https://github.com/greedychipmunk/agent-skills --skill roblox-game-development专业的 Roblox 游戏开发者,精通 Luau 脚本编写、游戏机制、UI/UX 设计以及盈利策略。提供从简单脚本到复杂多人游戏体验的全方位协助。
此技能包含一套全面的、可用于生产的资源集合:
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
完整实现请参见 DataManager.lua
-- DataStore 最佳实践,包含重试逻辑和缓存
local DataStoreService = game:GetService("DataStoreService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PlayerDataModule = {}
local dataStore = DataStoreService:GetDataStore("PlayerData_v1")
local sessionData = {}
function PlayerDataModule:LoadData(player)
local success, data = pcall(function()
return dataStore:GetAsync(player.UserId)
end)
if success and data then
sessionData[player.UserId] = data
else
-- 默认数据结构
sessionData[player.UserId] = {
level = 1,
coins = 100,
inventory = {},
settings = {}
}
end
return sessionData[player.UserId]
end
完整实现请参见 RemoteManager.lua
-- 安全的远程事件处理
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local remoteEvents = ReplicatedStorage:WaitForChild("RemoteEvents")
local purchaseEvent = remoteEvents:WaitForChild("PurchaseItem")
purchaseEvent.OnServerEvent:Connect(function(player, itemId, quantity)
-- 服务器端验证
if not itemId or not quantity or quantity <= 0 then return end
local playerData = PlayerDataModule:GetData(player)
local itemCost = ShopModule:GetItemCost(itemId) * quantity
if playerData.coins >= itemCost then
playerData.coins -= itemCost
InventoryModule:AddItem(player, itemId, quantity)
-- 更新客户端
UpdateClientData(player)
end
end)
完整优化指南请参见 性能优化
-- 用于抛射物的高效对象池
local ProjectilePool = {}
local activeProjectiles = {}
local poolSize = 50
function ProjectilePool:GetProjectile()
local projectile = table.remove(activeProjectiles)
if not projectile then
projectile = CreateNewProjectile()
end
return projectile
end
function ProjectilePool:ReturnProjectile(projectile)
-- 重置抛射物状态
projectile.Parent = workspace.ProjectilePool
projectile.CFrame = CFrame.new(0, -1000, 0)
table.insert(activeProjectiles, projectile)
end
全面的调试资源请参见 调试指南
基本命令和代码片段请参见 快速参考
此技能支持从概念到发布的全面 Roblox 游戏开发,专注于最佳实践、安全性和玩家参与度。所有资源都可用于生产环境,并可立即集成到您的项目中。
每周安装次数
302
代码仓库
GitHub 星标数
3
首次出现
2026年1月24日
安全审计
已安装于
codex267
opencode265
gemini-cli264
github-copilot252
kimi-cli237
amp236
Expert Roblox game developer specializing in Luau scripting, game mechanics, UI/UX design, and monetization strategies. Assists with everything from simple scripts to complex multiplayer experiences.
This skill includes a comprehensive collection of production-ready resources:
Complete implementation available in DataManager.lua
-- DataStore best practices with retry logic and caching
local DataStoreService = game:GetService("DataStoreService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PlayerDataModule = {}
local dataStore = DataStoreService:GetDataStore("PlayerData_v1")
local sessionData = {}
function PlayerDataModule:LoadData(player)
local success, data = pcall(function()
return dataStore:GetAsync(player.UserId)
end)
if success and data then
sessionData[player.UserId] = data
else
-- Default data structure
sessionData[player.UserId] = {
level = 1,
coins = 100,
inventory = {},
settings = {}
}
end
return sessionData[player.UserId]
end
Complete implementation available in RemoteManager.lua
-- Secure remote event handling
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local remoteEvents = ReplicatedStorage:WaitForChild("RemoteEvents")
local purchaseEvent = remoteEvents:WaitForChild("PurchaseItem")
purchaseEvent.OnServerEvent:Connect(function(player, itemId, quantity)
-- Server-side validation
if not itemId or not quantity or quantity <= 0 then return end
local playerData = PlayerDataModule:GetData(player)
local itemCost = ShopModule:GetItemCost(itemId) * quantity
if playerData.coins >= itemCost then
playerData.coins -= itemCost
InventoryModule:AddItem(player, itemId, quantity)
-- Update client
UpdateClientData(player)
end
end)
Complete optimization guide available in Performance Optimization
-- Efficient object pooling for projectiles
local ProjectilePool = {}
local activeProjectiles = {}
local poolSize = 50
function ProjectilePool:GetProjectile()
local projectile = table.remove(activeProjectiles)
if not projectile then
projectile = CreateNewProjectile()
end
return projectile
end
function ProjectilePool:ReturnProjectile(projectile)
-- Reset projectile state
projectile.Parent = workspace.ProjectilePool
projectile.CFrame = CFrame.new(0, -1000, 0)
table.insert(activeProjectiles, projectile)
end
Comprehensive debugging resources available in Debugging Guide
Essential commands and snippets available in Quick Reference
This skill enables comprehensive Roblox game development from concept to launch, with focus on best practices, security, and player engagement. All resources are production-ready and can be immediately integrated into your projects.
Weekly Installs
302
Repository
GitHub Stars
3
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
codex267
opencode265
gemini-cli264
github-copilot252
kimi-cli237
amp236
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
106,200 周安装