Hey guys, this question is kind of broad and (hopefully) I think this is an alright thing to ask here.
A big problem I have with programming is the fact that when I come up with an idea, I don’t know where to start, or really how to structure anything to fit together. It kinda feels overwhelming.
For example, I’ve been wanting to make this farm game for a few days now. Every time I start, I don’t really know why but I get this feeling that I’m overwhelmed. No matter which corner I choose to paint the game from, I can’t help but think “Oh should this be connected to a GUI event”, “Should I make the shop first”, “Should this be based off of this or that” etc.
I was wondering if any experienced developers had any tips or tricks to get started on a project, and if they knew how to avoid this feeling.
I know the syntax well, and it may be just because I’m inexperienced in any real projects, but what would you guys do or recommend doing?
I’m gonna leave this open for everyone to communicate some tips and maybe even some personal stories on how they got started and what they did to overcome that same challenge themselves. I’m sure everyone has been here before.
I’ve received lot’s of great feedback already. Thanks to everyone sharing their advice. I’m gonna keep this thread open for future posters, instead of addressing advice to me, address it to future developers who may be sharing the same problem. Again, many thanks. Feel free to leave any other advice that you may feel is beneficial.
This is probably bad advice, but it’s what works for me, so it could potentially work for others; I usually start by making the barebones GUI, no detail, or anything, just the necessary stuff.
Then I make the different folders for ModuleScripts, RemoteEvents, Functions, etc.
Then I move onto scripting, and just write what’s necessary in each script as a minimum, like variables and functions for that script only, then connect each script as needed through bindable events/functions.
What I personally do is plan the game out fully on paper, write down all the core features the game will include and a general idea of how I will execute them.
After that I think about what needs to come first but starting with a random feature and working backworks for what needs to be in place before I can inplament said feature.
From there I open Studio and start on a rough copy of the backbone and work on visuals last.
After that I generally know how I want things to work and start from scratch with the rough copy as a reference,
Read up on what core game loops are. This is a great system of game development because you quickly prototype your game play ideas and see what works, without worrying about any system that won’t directly affect how the game plays at its core. With that in mind, you should also write down all of your ideas for the game and prioritize the ones that will get the game to a playable state the quickest.
Write a detailed description of your game and its functions
Create a flowchart(s) to help you with your flow (no pun intended) and speed. They’ve helped me a lot in previous projects.
You can even start off by writing in pseudo-code, then applying with Lua.
Manage your time as best as you can and solve problems logically. If you get too worked up on something, walk away and come back later - it’s better to tackle a problem with a fresh mind instead of a worked up mind.
Try making a very simplified version of your game. If you’re happy with it, continue developing it. If not, you’ve saved a lot of time by making the decision to skip the project instead of wasting many hours.
I’ve used flowcharts as a way of coding. They are so, so, extremely helpful because you can sort of visualise what’s happening. All you need to do next is to implement the code, whilst following the flow of your flowchart.
I’ve seen some developers using Trello to complete assignments. You can check that out.
Pretty good advice, I’ve always had the problem of starting like a small section of the game and perfecting it with visuals and such, and then realizing that I can’t figure out how to actually implement it with everything else. Definitely going to take your advice into consideration, as well, one more question. When you structure out the game on paper, do you make a roadmap, jot down ideas, etc? I’ve done that before but I’ve never really known what was best for most people.
I generally start with jotting down ideas for the game and as I start running out of them I then form a general roadmap of the game. From there I then compile the core features and work to figure out what needs what done before I can work on it.
To truly answer this I would need to know what your workflow is like but for me using something like Trello or just planning in advance helps so much. I can get things done so much faster when I know how my code is going to be setup before I start creating it. The last few projects I have worked on I wrote everything out in advance and it helped so much, here is an example from a game I was working on a while back just to give you an idea of what I mean.
Start with the idea of the intended game and work backwards on my planning sheet to figure out how it should generally work from a client-server standpoint.
Start working from the ground up with security as my top priority, and a modular design in mind. I start with the simplest base classes and work my way up to the more advanced ones, at this point you realize how much easier it is when all you have to do is require a class and let it handle everything.
Try to keep myself from getting distracted by smaller elements of the game—things like building or aesthetics because I tend to get easily distracted by this. If I get any ideas I write them down so I can complete them after I get the important things done.
Once I feel confident that the game structure is beefy enough I begin to work on some of the less important details of the game.
There’s been some great advice in this thread, but I’d like to address this point in particular:
If you’re feeling overwhelmed at every step, odds are your project is a little over-ambitious. This isn’t a reflection on your intelligence or abilities, simply your experience and more importantly your human limits (annoying as they are)!
I would personally recommend putting this project on the back burner for a while - you’re not going to make progress with the amount of stress it is evidently causing you, and it could even kill your motivation to develop games, which would be a tragedy because there’s clearly a lot of passion here.
Big thanks my guy. I think you’re exactly right. I’m going to be messing around this summer with a lot of smaller projects and gradually build myself up to be able to think in wider scope. And yes, it comes from a lack of experience. Huge thanks for the advice and (hopefully) I’ll begin implementing everyones suggestions into my own work flow. Thanks again.