Game Ideas(recommendations)

Hello Devs!For some time, I want to create a game on Roblox Studio. I am a programmer and Ui Designer.

But I want to make some nicer games, but they should be interesting and not difficult to program.

I’m tired of so many unserious people, I’ve looked for so many developers to help me. Some respond to my messages, others don’t, or others promise and that promise falls apart.

Could you give me motivation recommendations? And game ideas that I can create?

2 Likes

Maybe a joke idea what about reverse tower defense instead of being the one placing the tower we’re the one on track and we shoot down the tower(or opponent hiding) up to 4 players+ I experience this in an fps game before but I forgot about it(it was a campaign mission of some sort) No one seems to have done reverse tower defense yet, also reminds me of cod truck mission where you shoots the enemy behind you while being in a chase scene I likes the thrill from it.

Edit: I notices that the idea I was rooting for was arcade shooter.

2 Likes

Yeah, thanks! Actually, for several months I tried to create a Tower Defense Game. But the lobby Reserve Teleport system is very hard to code…And I want to make the placement system of those Towers more animated you know? But this is over my skills…

2 Likes

Not sure if this helps but I recoded SafeTeleport for multiple amount of people teleporting to the same lobby while making a story game, in case you needs to sample my code for reserve teleport.
Module:

local TeleportService = game:GetService("TeleportService")

local ATTEMPT_LIMIT = 5
local RETRY_DELAY = 1
local FLOOD_DELAY = 15

local function SafeTeleport(placeId : number, players : {Player}, options : TeleportOptions)
	if not game:GetService("RunService"):IsStudio() then
		local attemptIndex = 0
		local success, result -- define pcall results outside of loop so results can be reported later on

		repeat
			success, result = pcall(function()
				return TeleportService:TeleportAsync(placeId, players, options) -- teleport the player in a protected call to prevent erroring
			end)
			attemptIndex += 1
			if not success then
				task.wait(RETRY_DELAY)
			elseif success then
				--What to do on success.
				--[[for _, player in pairs(players) do
					for _, tplayer in pairs(game.Players:GetPlayers()) do
						if player:IsFriendsWith(tplayer.UserId) then
							game.ReplicatedStorage.PrintEvent:FireClient(tplayer, nil, ("Your friend %s(@%s) is being teleported to %s."):format(player.DisplayName,player.Name,game:GetService("MarketplaceService"):GetProductInfo(placeId).Name))
						end
					end
				end]]
			end
		until success or attemptIndex == ATTEMPT_LIMIT -- stop trying to teleport if call was successful, or if retry limit has been reached

		if not success then
			warn(result) -- print the failure reason to output
		end
		return success, result
	end
	warn("Is currently in studio cannot teleport.")
	return false, "Is currently in studio cannot teleport."
end

local function handleFailedTeleport(player, teleportResult, errorMessage, targetPlaceId, teleportOptions)
	if teleportResult == Enum.TeleportResult.Flooded or teleportResult == Enum.TeleportResult.Failure then
		-- pause and retry if it's a one-time hiccup
		task.wait(teleportResult == Enum.TeleportResult.Flooded and FLOOD_DELAY or teleportResult == Enum.TeleportResult.Failure and RETRY_DELAY or 2)
		-- teleportOptions automatically have the reservedServerCode filled up
		TeleportService:TeleportAsync(targetPlaceId, {player}, teleportOptions)
	else
		-- throw an error if something else is wrong
		error(("Invalid teleport [%s]: %s"):format(teleportResult.Name, errorMessage))
	end
end

TeleportService.TeleportInitFailed:Connect(handleFailedTeleport)

return SafeTeleport

Script:

local TeleportOption
local ReservedServerId = game:GetService("TeleportService"):ReserveServer(GameIds["Multiplayer"])
					TeleportOption = Instance.new("TeleportOptions")
					TeleportOption.ReservedServerAccessCode = ReservedServerId
					TeleportOption:SetTeleportData({
						VipReservedId = ReservedServerId,
						VipOwner = player.UserId
					})
SafeTeleport(GameIds["Multiplayer"], {player}, TeleportOption)

Edit: SafeTeleport(GameIds["Multiplayer"], {player}, TeleportOption)
How I manage TeleportData in a different startup script(Might not needs this):

local Player = Players:GetPlayers()[1] or Players.PlayerAdded:Wait()
	local TeleportData = Player:GetJoinData().TeleportData or {}
	if TeleportData["VipReservedId"] then
		game:GetService("ServerStorage").VipServerData.ReservedId.Value = TeleportData["VipReservedId"]
		game:GetService("ServerStorage").VipServerData.Owner.Value = TeleportData["VipOwner"]
		if EnableFlags.AchievementConfig.AchievementDisableOnVipServer then
			game.ServerScriptService.Services.EnableFlagBind.Change:Invoke("Achievement", false)
		end
	end
2 Likes

Oh! I see! Thanks for your interest!

1 Like

Sorry for the late reply and apologizes for the terrible written code, don’t use TeleportData for information communication as it is unreliable and if the data SHOULD only be seen for the server the client could also sees it. MemoryStoreService is a better way for getting server information (which the description also point out matchmaking queues) and can implement fail-safe or reconnect player to the server if they leave accidentally also can track server’s information depend on implementation.

Edit: If you’re interested in another game idea have you tried making bloon pop?