The definition of software development is the process of conceiving, designing, programming, documenting, testing, and fixing bugs involved in creating and maintaining applications, frameworks, or other software components. In other words, software development is the process of creating a new app, website, video game or program, to put it in one word… software.
Software is the collection of data and instructions for a computer to play (and by computer we mean all types of computers: a laptop, a console, a smartphone, or even a watch). Data is information stored somewhere on your computer or in the cloud, while instructions are algorithms implemented in source code form or compiled into executable files. Now let's focus a little on what an algorithm is. The definition of an algorithm is "a detailed procedure for solving a problem". That's all! Nothing strange; it's just a list of steps that must be taken to solve someone's problem. So, as you can guess from the definition, the algorithms don't need to be in a specific programming language. I'll give you an example: suppose you are hungry and you have bananas in the kitchen. A simple algorithm for solving your hunger could be the following:
If you are hungry, eat a banana, otherwise wait 30 minutes. In any case, repeat from the beginning.
See, this is a detailed list of instructions and it can solve your hunger problem. Of course, real algorithms are much more complex than this, but one of the best practices in software development suggests breaking down each problem into smaller sub-problems, until they become so small that they are easily solved with elementary algorithms.
Ok, now let's say you want to make your own video game. To do this, you need to start with the conception and design of the game: start thinking and taking notes on the main characteristics of your game, for example the genre (action, strategy, sport) or the main rules, then move on to the smaller details. (Is he single or multiplayer? What actions can the main character do? Does he have photorealistic graphics or is he more stylized?). Continue until you have a fairly complete idea of what your game should be like. It may seem strange to you, but the more details you decide before starting a program, the easier it will be to make them happen! Once you're ready, it's time to program the game. Of course, thinking about writing a game (or app) from scratch would be a nightmare! This is where frameworks come into play.
Back to the example ...
So, you wanted to make a video game, it's there in your mind with all the details (and hopefully you wrote it down somewhere, you don't want to forget something, right?). Now it's time to create it, which framework can you use? Well, when you implement a game, you may want to use a game engine (you can see it as an improved framework). The most common game engines are Unity and Unreal Engine, but there are many other choices like Godot and GameSalad, which are a little easier to get started.