No Stupid Questions
No such thing. Ask away!
!nostupidquestions is a community dedicated to being helpful and answering each others' questions on various topics.
The rules for posting and commenting, besides the rules defined here for lemmy.world, are as follows:
Rules (interactive)
Rule 1- All posts must be legitimate questions. All post titles must include a question.
All posts must be legitimate questions, and all post titles must include a question. Questions that are joke or trolling questions, memes, song lyrics as title, etc. are not allowed here. See Rule 6 for all exceptions.
Rule 2- Your question subject cannot be illegal or NSFW material.
Your question subject cannot be illegal or NSFW material. You will be warned first, banned second.
Rule 3- Do not seek mental, medical and professional help here.
Do not seek mental, medical and professional help here. Breaking this rule will not get you or your post removed, but it will put you at risk, and possibly in danger.
Rule 4- No self promotion or upvote-farming of any kind.
That's it.
Rule 5- No baiting or sealioning or promoting an agenda.
Questions which, instead of being of an innocuous nature, are specifically intended (based on reports and in the opinion of our crack moderation team) to bait users into ideological wars on charged political topics will be removed and the authors warned - or banned - depending on severity.
Rule 6- Regarding META posts and joke questions.
Provided it is about the community itself, you may post non-question posts using the [META] tag on your post title.
On fridays, you are allowed to post meme and troll questions, on the condition that it's in text format only, and conforms with our other rules. These posts MUST include the [NSQ Friday] tag in their title.
If you post a serious question on friday and are looking only for legitimate answers, then please include the [Serious] tag on your post. Irrelevant replies will then be removed by moderators.
Rule 7- You can't intentionally annoy, mock, or harass other members.
If you intentionally annoy, mock, harass, or discriminate against any individual member, you will be removed.
Likewise, if you are a member, sympathiser or a resemblant of a movement that is known to largely hate, mock, discriminate against, and/or want to take lives of a group of people, and you were provably vocal about your hate, then you will be banned on sight.
Rule 8- All comments should try to stay relevant to their parent content.
Rule 9- Reposts from other platforms are not allowed.
Let everyone have their own content.
Rule 10- Majority of bots aren't allowed to participate here. This includes using AI responses and summaries.
Credits
Our breathtaking icon was bestowed upon us by @Cevilia!
The greatest banner of all time: by @TheOneWithTheHair!
view the rest of the comments
You're absolutely right about the intimidation.
Is there maybe a guide or something that's more a guide book on common things and less "learn this whole foreign language from scratch"?
The language actually only consists of a relatively small number of verbs. Operations that perform various mathematical and logical actions (such as adding, multiplying, dividing, and, or, xor, bit operations, and comparisons), assignments/reads (put the result of this string of operations in this container for future use or read one back to use it now), conditionals (check if this condition is true, if it is do something), and jumps (instead of going to the next instruction, go somewhere else).
Everything else is just variations or combinations of those four basic things. Don't worry if you don't know what anything is in the following paragraph, it's just explaining how everything else is built on those basic pieces.
Loops are all four put together, functions are assignments and jumps, objects are a way to organize functions and data, polymorphism is a modification that allows replacing function code in variations of the objects. Even IO is just assignments and reads to and from specific memory addresses. Programming language primitives and APIs will simplify doing these (you aren't likely to do IO as those memory mapped operations directly unless you're working on drivers or embedded apps). Sometimes the CPU itself implements special cases, like atomic operations or having multiple cores so you can have multiple threads of execution running in parallel.
When I realized this, it made learning new programming languages much easier. And the internet puts all of the more specific information at your fingertips, especially when you consider all of the free university courses available that go into specializations of the above, plus the other important meta aspect of programming: algorithms.
I suggest you pick a language and just try diving in. The early exercises will seem overly simple, but they'll build a foundation that you can then build more on. For easy to pick up languages, try BASIC, python or lua. Scratch might also help, though it's purely gui based, so might be harder to jump to another language from there (which you'll likely want to do to develop an app).
No. There is no way to learn programming without a programming language. That's like trying to learn art without using any form of artistic expression. I'm not an artist or nowhere near it but I believe it's an appropriate analogy.
Just like art, you start by doing something, say drawing with a pencil. It is incredibly hard since you have to learn both how a pencil works and how to do art at the same time.
Once you have practiced, you know how a pencil works, and must've learned something about how to do art.
Now you take colored pencils and try to do art. It is difficult because you never did anything with color, but it's easier than the pencil because you now have knowledge about art that you didn't have before starting.
Programming is the same. Usually you start with either a single programming language and try to acquire the basic knowledge about programming. And then you learn other languages, which takes a fraction of the time it took to learn the first one. Since programming concepts are very similar across most programming languages.
Going back to your original question, assuming you want someone else to do the programming:
It will not be cheap. So follow this route if you're either willing to lose money, or willing to earn money with this app.
Once you have the money, you find programmers like any other company. Post job openings and wait until you have applicants.
You will not only need programmers. You will most likely also need art. Games are not a number-crunching program. They are art forms. If you want people to play your game, it must have artistic value. Without art, a videogame is no much different than an spreadsheet. You might find someone that both programs and does the art, but then probably it's going to be expensive or won't be of high quality.
The game is not fully designed yet. Maybe the gameplay is, but there's a lot of design that needs doing on the software side.
I'm a software engineer. Not a business man nor a project manager. There's probably many other big things I've missed.
If instead you want to program it yourself, I have some advice.
First of all, you should probably aim for a platform. Is it mobile or PC? If mobile, both IOS and android? Or only one of them? If PC, Linux, Windows or Mac? Your path will probably vary wildly depending on that.
Being a good programmer takes years, but I'm going to assume you don't want that. You just want to learn it for this project. Well, it's still probably going to take years, just less of them.
Whatever you choose in those questions. The starting point is the same. You gotta learn the basics. For that, unless you are developing from a Linux computer (and are somewhat experienced doing so), I would recommend you start with a language that is easy to set up and install. For that I would recommend either python, java. Another language I love and is easy to set up is rust, but it's not beginner friendly at all.
Python is a very beginner friendly language. There's thousands of free learning courses online. And installing it is very easy. If on windows, the installer has a checkbox like "add to the PATH", just make sure to check that, even if you don't know what it is. After that, it's as easy as making a file with a name ending in ".py" and you can just run the program with "python mygame.py". Python is also a great tool for everyday life automating things related to computers.
Java is less beginner friendly than python, but it has a very important feature called "static typing". Static typing is very unergonomic and rigid when you are writing, but it prevents many mistakes that are very frustrating to fix. It also has many learning resources since it's a very popular language. However most resources are older than python's since java is way less popular than it used to be. Setting up your first java program is a bit trickier than python, but it's not too hard.
Once you choose the starting language (you can also try both! Or switch mid-learning if you don't like your initial choice), you have to do some simpler projects than the one you want to do. There's plenty of beginner project ideas online.
Usually you start by implementing simple little usefull functions. For example string comparison. That is, having 2 strings of text: "mytext1" and "mytext2" you want to make a function that tells you if those are the same. Usually people reimplement functions from the standard library.
After that, you learn making a data structure. For example a list. So that you start with an empty list "[]" and you add numbers to it: [0], [0, 1].
Then you learn how classes work. How methods work. How global variables work.
Once you have basic knowledge of that, you do one of those beginner projects.
Then you learn how to use (and install) libraries.
Then you probably will want to learn how threads, and mutexes work.
Once you feel somewhat confident, you should try implementing your game on PC, without graphics, just the command line.
After that. You move on to your selected platform (iOS, android, PC). You probably will want to use a game engine. That comes with an entirely new and different learning curve. I haven't used any of those so I can't help you with that.
That game engine probably comes with its own programming language. Repeat the steps above with that new language until you feel confident.
Then you will probably start with your project.
You are still learning though. You will probably learn a lot with that project. So your work quality will probably be much larger at the end than at the start. You will probably be frustrated that the shit code you wrote at the start is hindering your progress. Don't be afraid to start over the project from scratch again. It's not from scratch. While doing it you probably developed a better design in your head, having that design will make writing the code the 2nd time much faster than the first time.