My biggest mistake as a scripter and how it held me back for almost 4 years

intro

We can all remember our first moments when we become semi competent on scripting and try to make our dream game just for us to quit like 3 months in

this is a trap many developers including myself have fell down and spend years in

due to this trap i have nothing to show for my work from 2018 - 2021 outside of incomplete passion projects that i’ve abandoned
if you’ve spent sometime scripting then you’d have also found yourself in this trap

this post will help you escape this trap as an intermediate and help you finally improve as a scripter
this post is targeted towards intermediate scripters but if your not, still feel free to read and comment on this post
if you have any other advice feel free to share it in the comments

why you’re in this trap

The main reason as why you end here is because you’re focused on making a game. You lack the experience, knowledge or wisdom to know how to script your game and in result you’re overwhelmed and burnt out

making a game requires a ton of devotion and effort, not only scripting but on other things like UI, building or game design that most of us dont care about

and as a scripter you should not juggle all that, especially as a intermediate

because games aren’t 1 isolated system, but a network of systems working together glued by your client and server scripts

how i escaped

as a intermediate i plateaued in skill, and was stuck making the same mistakes
at the time i was making an FPS game
i saw a tutorial on how to make a FPS framework and clicked on it
(this one Designing an FPS Framework: Beginner’s guide - Resources / Community Tutorials - Developer Forum | Roblox)

this FPS framework introduced me to making systems and frameworks and how using these can structure my game
i would later make my own framework using OOP

while i did quit this game to work on other projects, this planted a seed that lead me to grow in my ability as a scripter significantly

What you must do to escape

stop making games
you still lack experience and technical knowledge, even if you know how the roblox API works. You still lack the technical knowledge a programmer has to construct the tools you use for your game to function

instead follow these 3 steps

  1. go learn to make code thats optimised and easy to edit, this literally takes 5-10 minutes
  2. learn OOP (both inheritance and composition) and ECS (also takes like 10 minutes, go watch a YT tutorial)
  3. implement what you learnt to make systems (this is what helps you)

what i want you to do is start making systems, these systems are self isolated and can work by themselves

start off small (like a state manager) and work your way up to more complex systems (particle systems, frameworks, utility libraries etc.)

Why systems, why cant i just build a small game or smth, this is a waste of time

systems are designed to work by themselves, you wont have to deal with making UIs or a map
nor will you have to work on game design stuff

systems also dont need much effort compared to games so you’re more likely finish them

and once you’re done making your systems and are good enough to build a game, you’re going to have an entire library of systems you can drag and drop into any of your games.
saving hours of work and letting you focus on just gluing those systems together lifting the work off your shoulders so you can focus on the rest of your game

you’ll know your ready to make games when you’re ready
but since you now have something to show, you can do all types of things with what you’ve made
go use it for a portfolio and get clients, or start a YT channel and show off those systems & even teach others how to make their own systems

conclusion

this is only the beginning and theres alot for your you learn, i’ll link some resources in the comments but all the work is up to you

and like how that FPS tutorial planted a seed in my mind, i hope the seed in my mind grows into a giant tree so everybody can climb up it and escape the plateau

the japanese word 木漏れ日 (pronounced: ko-mo-leh-bi) describes the light of the sun dappling through the leaves of a tree
like how sun dapples through the leaves of a tree, hopefully visons of your goals and dream game dapples through the leaves of this tree and reach you once again

tl;dr: you’re not ready yet, stop making games, go make systems

49 Likes

resources
on general programming design
the flaws of inheritance [https://www.youtube.com/watch?v=hxGOiiR9ZKg]
why im a never nester[https://www.youtube.com/watch?v=CFRhGnuXG-4]

on systems
make systems not games[https://www.youtube.com/watch?v=QPuIysZxXwM]
You NEED a State Manager in Your Roblox Game (Here’s Why)[https://www.youtube.com/watch?v=WImDkrf3sAo]
Best Code Architectures For Indie Games[https://www.youtube.com/watch?v=8WqYQ1OwxJ4]

also like learn other design patterns other than OOP like ECS, DoD or MVC, it will help you in the long run

13 Likes

I would call myself an intermediate scripter, its nice to find something thats not just “Tips for absolute beginners!!!” or “Advanced scripting” as i cant rly ubderstand self and parralel lua.

1 Like

ngl i have only used parallel lua once for a particle system
i haven’t really done anything with it since

its useful when you need to do something simple a ton of times like rendering or generating terrain

2 Likes

This is a really good point, most people underestimate how many roles you need to build a proper game: programmer, map designer, modeler, SFX-, VFX-, UI-designer, project manager, animator, graphic designer, translator, etc.

I initially wanted to make entire games in my first few years too. I had many ideas but lost a lot of time & motivation in designing the game, which eventually still looked bad and was thrown away.

Commissions and teaming up with other developers helped me a lot to grow in programming itself, and now with my own projects in the pipeline, it’s still the teamwork that makes it work.

tl;dr it’s good advice: you don’t have to make full games by yourself. Go out and take clients for practice, or make scripting showcases on YouTube or whatever, or team up with others to work our your first concepts. It’s the practice that matters, not the end result.

6 Likes

alot of the times when i would quit working on a game were because of UI

even scripting UI was hard enough but UI/UX is a whole other field that requires years of experience and has its own complexities

i dont even hate working with UI but it would often be overbearing when i was still intermediate

2 Likes

i find it a cheap optimization for pure ECS games

I’ve been trying to make way too big complicated games before making any systems (plus too lazy) and that’s the reason why I haven’t made any decent games for 5 years

1 Like

I always feel the need to script games fast fast. That’s many people’s issue if you feel like you have to get it done fast you’re doing it wrong. Fast is NOT the way, and many times people mistakenly fall into the trap of thinking they have to get the game done in less than a month or two.

If you quit a game after 3 months it isn’t because you’re inexperienced or lack talent. The reason is because you’re lazy, and not willing to put in the effort to keep going. It’s not burnout, it’s boredom. You likely made all of the background systems, without even taking the first step to making the game. So once you make all of the border to the game, you have no steps to take but to actually make the game so you end up quitting because of it.

I urge anyone reading this to instead of taking a break and studying (do it if you actually need to im not trying to stop you); actually put in the effort to wake up each day, and think to yourself WHAT IS NEXT. Because that day you wake up, and you don’t know what next is the pitfall to the trap of quitting your games. If you got a gut feeling that the game isn’t going to work out, take a deep breath then smack that gut feeling out of your body and keep going.

8 Likes

I think the best thing you can do is first get the idea working as quickly as possible, then iron out the game.

I have many times spent a month working on a game idea, just for the game idea not to be fun.

Well on the other hand I spent 3 days working on a game concept, then 3 month working on the game after I tested it and found it super fun.

I like to remember: working first, then iron out.

4 Likes

Where would you say the best place to learn ECS is? I’ve tried learning in the past and I can’t seem to understand the concept compared to OOP (both inheritance and composition).

I feel like one of the major caveats is also that developers jump into making their own game without any fully fledged idea what they want it to be. Only a vague idea in terms of - “I want an X genre game”.

Having a properly documented and polished game design is as crucial as the technical execution. Lack of planning and game design experience is a huge wall most developers face. And this wall inevitably leads to as you’ve stated already in your topic - “burn out and/or getting overwhelmed”.

My main advices on this point would be:

  • Get an app for knowledge management, for example Obsidian
  • Spend time on actual brainstorming and getting ideas drafted
  • When you have a solid foundation, start cross-questioning your ideas from both the point of a player and the point of you as a developer
  • Get feedback from different people
  • Remember that you’ll have to come up with compromises at some point, especially if you are in a time constraint, you’ll have to take the best possible ratio of time efficiency / quality
3 Likes

i mostly learnt it from watching YT videos and trying to implement what was in those videos, even if i didn’t know what ECS was

mainly this video but modified slightly

Alright, I see. Thanks for the resource, I’ll be sure to watch it.

1 Like

Consider using an existing ecs library for your games. I use Jecs, which is the fastest ECS library you can use in Luau at this time. The docs are not bad, but jecs is pretty much inspired from a large ECS library called Flecs which contains a large amount of quality docs (although the language it uses are C++). Still, its an excellent resource.

Lastly ECS isn’t that special. Whats special about it though is that it allows for very high composition and so its more useful to learn about some Data Oriented Design techniques. The best resource for this is the book Data Oriented Design.

You also learn by asking others and learning from each other so feel free to ask around whenever you get stuck.

3 Likes

where was this post like 5 years ago lmao

2 Likes

Yea I’ve already looked into these, but I don’t understand the whole concept of it still. However, I did not know that jecs was based off of another with existing documentation. Thank you for this!

great point, absolutely agree with you, making games when you barely know something about programming = repeating everything that you’ve already done (ofc in not a better way in 99%) without gaining any knowledge.

3 Likes

Biggest mistake is giving yourself titles like “professional” or “intermediate.”
(Yeah, ironic coming from my username, I know :skull:)

There’s no real divide past beginner vs. experienced. Everything else is just corporate cope -
“Official Studio Manager Ultra Sigma Programmer” -
reality: bro writes local workspace = game:GetService("Workspace") :sob:

ECS is what you should actually learn - it’s how you unhardcode functionality without dragging in OOP bloatware.
OOP in Luau isn’t organization, it’s bureaucracy with no logic.

Personally, I learned through a one-year lock-in cycle:

  • “What is that?”
  • “Is it cool?” → if yes, integrate it. If no, discard it.
  • “Does it optimize the code and keep it readable?”

You’re right about “don’t rush into making full games.” Beginners usually trap themselves there - no one even told them to.

TL;DR:
Don’t use OOP unless you enjoy corporate paperwork in code form and hate your player’s devices.
Surrender your soul to the optimization gods :skull_and_crossbones:, learn everything, and debug your fate.
Und eat ZE BUGS, JAJA! NO LAG GETS LEFT BEHIND, JA! :gear: :fire: :beetle:

6 Likes

You sure? That’s just some corporate flex.
I can do all that myself - no need to hire greedy commissioners that crank up the price to infinity.

All you need is a PC (optional).

I only recognize “Programmer” and “Artist” from that list.

If your “Programmer” can’t optimize loops, write ECS systems, bake meshes, and debug runtime, are they really a programmer? Nah.
Same with artists - if they only know one corner of Photoshop or Blender, that’s not an artist, that’s a specialist.

It literally takes less than a month in Blender to learn all of what you described. So what’s better: permanent skill for free, or hiring some overpriced, over-glorified “UX Designer”? The second option isn’t even a consideration.

Bro “Translator” for text? :skull:
Is it some 200 B.C. Rome guide?

Just use Google Translate and have a bug report window open, 100% free.

Ok, SFX is kind of fair since you usually don’t have all the fancy equipment or microphones to record, but the rest on the list can all be done solo or with 2 people at most.
In the end, free (or gigantically cheap) libraries exist, so it’s still optional.

All kinds of managers or hierarchy were proven to never work and even backfire since strict hierarchy often evolves into parasitism.

1 Like