Appropriate scope for first game?

Hello all!

I am currently messing around with small projects and tutorials for various aspects of game development on Roblox. (And I’m already a pretty good builder.) When it comes time to produce a fully fledged game though, what sort of scale should I be looking at? Obviously I can’t produce some sort of intricate RPG or anything that would involve very complex systems, but how about this:

Without spoiling to much, the game would be a PvP type game similar to Murder Mystery 2 or Epic Minigames. The game would include a lobby and different game modes and maps to play with. I won’t go into the main mechanics, but that’s not the part I’m worried about. I’m worried about the complaicated topics of:

• Server and Client
• Lag reduction
• Optimization
• Hacking
• Databases, for skins and currency

I will be using tutorials and gudies to craft alot of the systems, and use open source scripts. Will this end up as a jumbled mess of code that will break, or is this a viable way to get a game put together? I do really what to learn more about coding, but mainly to fit preexisting systems together. (I know for a fact I would be hopeless if I was required to write 20k lines of code to make a game, even with all the programing education in the world.)

This might be a rambling mess of a question, but I would love to hear some of your thoughts. :slight_smile:

1 Like

These are the basic components of a game excluding the Data Store because some games don’t use the service. These are usually the things that a developer would come across and will find challenges when going through each and every one of the things you’ve mentioned. Based from experience, your propsed game is quite average(not too big, not too small) and it’s a good start considering that you’ve been doing a lot of smaller projects.

Being a little more specific, Server and Client communication and Hacking are very much related. Your security architecture for server authentication is the backbone of these two points, so if you have constructed your server authentication properly without relying on client input as much as possible, you’re pretty much good to go on these two.

Reducing lag is something done near the end of your game’s release, or what I like to call “Polishing”. As you develop your game, just keep on going, optimisations can be done later on. What’s important is you have a working product that you can further expand later on. Also this is the same with optimisation.

Data stores are pretty complicated at first and you may be worrying right now that you will hit its limits, but all it takes is just experimenting. If you create a single table with all its necessary data, that is perfectly fine, what’s wrong is you upload individual sectors of data which are synonymous and are better off grouped together in a table.

Example:

ClothesData = {
    ["Shirt"] = 1,
    ["Pants"] = 5,
    ["Hair"] = 25
}

I’d reccomend using number IDs for object references as they don’t occupy a lot of your data store capacity.

Edit:
A fully fledged game is kinda general. In terms of resources, you will eventually have to spend some amount of money for things like a personal server, advertisments, sponsorship etc. In terms of development, it would depend on how far you want to go and what your game design is. If you are creating something as big as GTA V with social handlers, avatar customisation, racing, guns etc. it would take like 3-4 years-ish (don’t take my word for it) in the end, big games usually pay off… a lot and it’s worth the experience too.

This is honestly a good topic, I barely read posts like this one. Good job for bringing this up :slight_smile:

3 Likes

Thank-you very much for the quick reply! Yes, I guess data storage is the most complex out of the ones I brought up. But required if you plan on selling anything like skins or currency. I will have to find resources to learn how to make that work…

Again, thanks for your in-depth response.

Edit: As far as server architecture goes, should something like “a player destroys a brick” be handled first by the server before relaying this information to clients? Is that how it should be for pretty much everything in the game? I guess this is a really basic question. If it was handled by the client first, im guessing it would be possible for someone to go against the original design of the game and insert some of their own code. I’m assuming that most tutorials and “open source” code out there would be designed properly, but ultimately it’s up to me to make sure. (It’s my game after all! :slight_smile: )