My understanding for developing a video game, can I get some insight?

Started by
33 comments, last by owiley 7 years, 12 months ago

It has taken me a while to understand the full scope of how a video game is general, started and finished, and how the general system of modules of a finished game might work together and how the roles of various programming languages fit into the whole thing.
My understanding is that there is multiple aspects of a game which basically will be; Graphics, UI menu, Gameplay objects physics and logic, File system. Each uses a programming language that makes sense for that component and the video game is the result of all the different components/languages working in unison.

1) I am curious to know if this is a decently accurate understanding of how video games are developed and how programming plays a role in whole thing?

2) I'm also curious about how the finish project of a map / game "world", goes from a graphical design to becoming a interactive 3d world in which a character object can move around through it.

I am completely confused about the concept of a "world" file as a computer programmer I am used to processing files that only have text data which can be interpreted to be code or plain text or something else. What essentially are in these map/world files? (in terms of advanced 3d maps not a tiny 2d map)

3) Lastly , I need recommendations for game development software. Specifically I would like to be able to use a game development software tool that have a large framework for graphics and physics. Mainly I wan to focus on implementing certain logic into gameplay aspects such as AI logic, or time. Is there a game dev software that has well designed physical game play like GTA car driving physics and Skyrim action physics, that has similar graphics mixed together? this would be very ideal for what i want to do.

I've been considering Skyrim creation kit and Unity 5. Im curious if id be able to add logic.

Advertisement

It sounds too big to me.

There are different parts in a game, and these parts occur in many games, but not in all. A sixteen puzzle game has no physics or logic. A text adventure has no graphics.

Programming languages are mostly general purpose, and you use 1 language for the entire game.

A game is a program that generates moving interactive pictures, and the cpu is the main way of computing what to display the next frame. As a result, programming results in the code that makes the game "come alive and interactive". The graphics are the second major part, they are the items being moved and interacted with, players just *love* pretty pixels :)

The game map comes in 2 parts. At the one hand, the program provides the means to load a game world from a file, and display/interact it in the game. On the other hand, there is a level design, that is, the consideration of what the map actually contains, which obstacles the player will get, and the shape of them. Across the entire game, the level design typically creates more complicated or more difficult obstacles as the level increases.

A level file contains a description of a single game level, a "world" from the view of the user, since it describes all reachable places that can be seen / used in the level that the user plays. In tile-based games, it typically contains maps of (x,y) to tile data, but it can also contain eg trigger conditions, configuration data (how many medkits, their position, etc), initial positions of enemies, win conditions, loose conditions, basically everything that you need to present the level to the user, and present it as an interactive world.

In theory, you could add graphics to a level file too, but these are often shared between levels, and thus better stored separately.

In terms of "normal" files, a configuration file is the closest match, I think.

I have never used an engine, but I'd say try Unity. C# is a quite nice language, not too complicated, and Unity is said to have lots of tutorials and an active community.

What Alberth said is completely true. And if you want advice from a beginner like you: I think you will make a mistake if you start using engines at the beginning.

I've been considering Skyrim creation kit and Unity 5. Im curious if id be able to add logic.

No, you won't be able to add any logic, except some very basic stuff (I know because that is how I started with 3d) .

You said you don't understand what 3d world actually is. Get some graphics library from the net, spend a few weeks learning the basics of linear algebra. And make an ugly simple game yourself.

I remember the first time I started Unreal Engine, I just clicked on "create project", then "third person" and I had game that was ready to be played, camera movement was ready, player animation was ready, shooting was ready. Basically, everything is done for you, and you use it like it's magic . How are you gonna build on something that you consider "magic" ? I don't say that you should start with assembly language, but you need to have at least basic understanding on how stuff works on the inside.

Better start by making 4 - 5 2D games using SDL/SFML/whatever before starting with 3d, this way your math skills will gradually improve, as well as your programming skills, and an added bonus: You won't get very frustrated and give up. At least this is how it worked for me.

And if you don't like maths, forget about graphics programming, physics, logic and AI.

My understanding for designing a video game


So as not to confuse anyone, I'm changing the title of your thread. You aren't asking about
"designing." You're asking about developing a game.

-- Tom Sloper -- sloperama.com

I don't mean to be rude , but what is the difference? Im sure there is and im curious. Is development the general project and design is specifically related to an actual project and its "design"

You aren't asking about"designing." You're asking about developing a game.

Yes, I did say I want to understand more about world file. But that doesn't mean I haven't already been introduced to the concept of a virtual "maps", Im sure everyone understands the idea of a 2d graph mapping system. I have studied 3d mathematics, linear algebra, as well as architecture assembly. In fact I took 3 Assembly college classes. I just want to get some official explanations of whats going on and i guess the quality of modern graphics was making me confused.

You said you don't understand what 3d world actually is. Get some graphics library from the net, spend a few weeks learning the basics of linear algebra. And make an ugly simple game yourself.

I don't say that you should start with assembly language, but you need to have at least basic understanding on how stuff on the inside.

Better start by making 4 - 5 2D games using SDL/SFML/whatever before starting with 3d, this way your math skills will gradually improve, as well as your programming skills, and an added bonus: You won't get very frustrated and give up. At least this is how it worked for me.

And if you don't like maths, forget about graphics programming, physics, logic and AI.

I get most of this already. I guess I was thinking of the modern games as something more.
Is it good to think of it as a souped up command line interface that processes 3d interactive commands. An interface for the user to interact with a 3d map and 3d graphical images?

main files / components involved
1st files map related are the 3d mapping full of objects (AI and Buildings/props) and the logic for when you interact with those objects.
2nd files player related is player command logic and player saved file stuff?

A game is a program that generates moving interactive pictures, and the cpu is the main way of computing what to display the next frame. As a result, programming results in the code that makes the game "come alive and interactive". The graphics are the second major part, they are the items being moved and interacted with, players just *love* pretty pixels :)


A level file contains a description of a single game level, a "world" from the view of the user, since it describes all reachable places that can be seen / used in the level that the user plays. In tile-based games, it typically contains maps of (x,y) to tile data, but it can also contain eg trigger conditions, configuration data (how many medkits, their position, etc), initial positions of enemies, win conditions, loose conditions, basically everything that you need to present the level to the user, and present it as an interactive world.

In theory, you could add graphics to a level file too, but these are often shared between levels, and thus better stored separately.

I don't mean to be rude , but what is the difference? Im sure there is and im curious. Is development the general project and design is specifically related to an actual project and its "design"

The names imply the differences. Game design is where you sit down and decide what will be in the game, how the game will be played, what levels will look like, what characters will look like, etc. Development is the process of turning the design stage into the actual game.

If all you care about is logic, then I think that something like Unity or Unreal or whatever engine in that vein will work for you. I've never worked with any of those (because that's not my jam) but if you look at the games that are made using those engines, you can see very clearly a broad spectrum of genre, complexity, and quality.

As to your other questions: often times multiple languages are used on a project, but not necessarily all for the code that winds up being shipped. I know that C#, for example, is sometimes used to make tools for the developers that aren't released with the game.

A game map is, roughly, a series of vertices and the triangles that they form. How those triangles become a world that your character moves around in is entirely up to you, but generally involves collision detection and response, input handling and response, and whatever else you might need. This isn't even considering that the world is visible, which requires texturing and rendering all (or at least some) of those triangles.

Inspiration from my tea:

"Never wish life were easier. Wish that you were better" -Jim Rohn

soundcloud.com/herwrathmustbedragons

but what is the difference?

A design is the plans, the descriptions of the mechanics, and descriptions of the gameplay.

Game development is the process from initial ideas through to getting the product out to final customers.

Game design generates documents and spreadsheets with some sketches and maybe some concept art.

Game development generates a finished entertainment product.

Game design is one of many parts of game development, just like a wheels are important parts of vehicle. Wheels are a part of a vehicle, an important one, but wheels alone are not the entire vehicle.

Design is one part of game development, an important one, but designs alone are not the finished entertainment product.

Edit:

As this is now in For Beginners where the rules are that you must address the actual questions:

1) I am curious to know if this is a decently accurate understanding of how video games are developed and how programming plays a role in whole thing?

It is closer than many descriptions, but still not quite right. The Breaking In Forum FAQ section 1, has links covering the jobs that are typical in the industry and what they do.


2) I'm also curious about how the finish project of a map / game "world", goes from a graphical design to becoming a interactive 3d world in which a character object can move around through it. I am completely confused about the concept of a "world" file as a computer programmer I am used to processing files that only have text data which can be interpreted to be code or plain text or something else. What essentially are in these map/world files? (in terms of advanced 3d maps not a tiny 2d map)

Typically it is a large collection of files, not a single file. In 3D worlds there are meshes (basically wire-frames), textures (skins that go on the models) shaders (mini-programs that describe lighting and certain effects), rigs and bones (instructions for how the meshes get bent and slide around), animations (instructions for moving those rigs and bones), scripts (programmed code describing how the parts work together), audio files (sound clips of assorted types), and level files (instructions detailing how all the meshes, textures, rigs, animations, and scripts all fit together in a file).

Although neither Unity or Unreal have similar posters, here is one showing how the systems work together in a modern game engine. While the details vary from system to system, the general pattern is similar in most professional-grade game engines:

architecture.png

Hobby games are much smaller. Full-blown game engines typically have several hundred developer work-years before they are ready for general use.

3) Lastly , I need recommendations for game development software. Specifically I would like to be able to use a game development software tool that have a large framework for graphics and physics. Mainly I wan to focus on implementing certain logic into gameplay aspects such as AI logic, or time. Is there a game dev software that has well designed physical game play like GTA car driving physics and Skyrim action physics, that has similar graphics mixed together? this would be very ideal for what i want to do.

Unity and Unreal currently the industry leaders for free or low-cost hobby development tools. Both have options that are free for hobby development and minimally expensive if your hobby project becomes a successful commercial project.

Companies that are investing tens of millions or hundreds of millions into bigger games often decide to use different or additional tools, but they have the budget to do so.

This topic is closed to new replies.

Advertisement