Ideas For a Beginner?

Not quite sure if this belongs here, but;

I am quite new to scripting and just started dipping my toes into the water. I know some basic-intermidiate things like Tweens, Currency Systems, Shops, Kill Parts (for obbys), Double Jump, Shift to Sprint, Remote Events and a few more things

There are a few things I would like to know how to do, but don’t currently like Scripting UI, CFrames, Lerps, Tools (weapons, harvesting tools, etc.), First Person Camera, and a few more things.

Currently I want to practise to increase my skill and learn new things so that I could put my skills into practice and make some games, but I don’t quite know where to start. If anybody has any ideas on what I could script it would be great if you could leave them below, I’ll try to make them and update you on how it turned out.

What I've Made from Suggestions

Nothing yet! Why not leave your own suggestion?

7 Likes

This isn’t really something for you to script physically but something I recommend you learn. Anyway what I think would be extremely useful is Object-Oriented Programming through the use of module scripts on Roblox. I remember when I taught myself this programming paradigm a few months ago everyone was saying that this style of programming is really powerful, meaning it makes coding things much easier and faster,in some cases. At first it may be hard for you to wrap your head around certain concepts in the beginning but once you learn how to do it correctly, its truly amazing and will enhance the maintainability and re-usability of your code. So given that your new to scripting I would recommend you take your time when learning this topic. This style of programming may not be for everyone though so before you start learning OOP you can read about the benefits and limitations, if you don’t like it you can always use the standard approach, which is procedural.

A point to note is that OOP is the one of the more popular styles of programming in the gaming industry.

Also before you learn how to do this ensure you have an understanding of how module scripts work.

6 Likes

Just make games. Take your favourite game (inside or outside of Roblox) and try to emulate it (though consider complexity). From a game development perspective, I think the best way to improve your ability is to actually develop, and increase your experience. This will require you to solve new problems with your existing knowledge, and build your experience by trying to solve problems that you don’t have the knowledge yet to solve.

Open source projects and games are extremely useful for this. There is no shame in “stealing” somebody’s solution to a problem. Obviously, you won’t usually learn much from copy pasting code, but when you actively engage with it, the projects of more experienced coders are a rich resource.

Knowledge is one thing; solving problems requires you to think outside of the box. By engaging with complex projects and building your experience, you are expanding the box.

9 Likes

My idea is less specific and more of a general tip for learning quickly. But try separating “buildings” from “building blocks” in your mind, metaphorically.

I’ll explain what I mean. Using the examples you included, Currency Systems, Shops, Kill Parts, Dobule Jump, Shift to Sprint, and First Person Camera are all examples of “buildings”. They’re specific ideas and designs created from smaller building blocks, and somebody who understands those building blocks will automatically know how to connect them to make all this stuff happen, either by memory or by checking the API reference for the relevant objects. For example knowing how to make a Kill Part without being taught could possibly be done by first learning about properties, numbers, the Character, events, Parts (which include collision events), and finally the Humanoid object, which includes methods like TakeDamage and properties like Health.

Tweens, RemoteEvents, Lerps and CFrames are all examples of building blocks. They’re functions and types that can be used as properties and arguments for other functions and types. From them, you can make an essentially infinite amount of of “buildings” (gameplay aspects, systems) by applying them creatively. If you learn the basic fundamentals then you automatically learn how to create any “building” instead of having to memorize specific finished structures.

A great way to learn as you go without having to fall back on tutorials is to use the API reference. I’ll take one of the things you haven’t learned how to do yet as an example (First Person Camera) and explain how I’d learn it for the first time if I were you. First I’d go to the Roblox page for the Camera object:

https://developer.roblox.com/en-us/api-reference/class/Camera

Then I’d check what it says up at the top, which is usually the most important info. Here you can see a paragraph that says:

In an instance of the game, each client has its own Camera object associated with it. Camera objects exist only upon the viewer’s client, residing in that user’s local Workspace, and therefore cannot be edited directly from the server.

Each client’s particular Camera object can be accessed through the Workspace.CurrentCamera property of the Workspace on that client.

The bolded text is new information. Now we know that we can get the player’s camera on their client (i.e. from a LocalScript) by referencing Workspace.CurrentCamera. So now let’s scroll down to Properties and Functions to see if there’s anything relating to the camera perspective, to help with the first person view…

Property: CameraType
Specifies the CameraType to be read by the camera scripts

This is the closest thing that looks like it could be used to change the way the camera’s perspective works. This property has to be changed to a CameraType object, for which there’s a link. However, looking through the list of possible CameraType values, there doesn’t seem to be anything for first person, so that’s a dead end. What other game object could hold a setting for perspective? How about the Player object?

https://developer.roblox.com/en-us/api-reference/class/Player

Indeed, upon looking through the settings, one pops out called CameraMode:

Property: CameraMode
Changes the camera’s mode to either first or third person.

And now you’ve hit the jackpot: The link on that property leads to a full fledged article about how to change the way a player’s camera works, including a code sample for locking it into a first person perspective, and tips on how to use it effectively. So you’ve effectively learned how to do one of the things you wanted, without following any guides or tutorials, just by scraping through the API reference. And you learned a couple extra things by accident in the process.

I guarantee everything you want to do can be done using this method. Some things will require setting more properties and calling more functions, but everything will boil down to this. Honestly this is basic stuff but nobody ever taught it to me, I had to figure it out myself, because people forget what it’s like to be a beginner. I hope it helps. :slight_smile:

18 Likes