n00b question

Started by
11 comments, last by ShadowBranch 17 years, 8 months ago
I was wondering how you make a game? I know you use C, C++ or some other type of language for the programming. What I want to know is how do you create the world you want. Is that all done in C? Do you use a separate program to achieve this or is that what a engine is for (though i just thought its main purpose was just for the rendering)? I am very sorry if this is a super n00b question but if you could tell me I would be very grateful.
Advertisement
In its most basic sense- a world is a list of polygons. So when you want to create a world you just use a modelling program/level editor that you have made specifically for the engine or a 3rd party one. What this editor does is allow you to create new polygons, move verticies etc. and normally allows you to do it visually.
When it writes it to a file it, again in the most basic sense, it writes down all the vertex positions, textures coord, and so on, to the file.
What the map loading section of the engine does is load all these positions into the native format for the engine and then the renderer renders all these polygons.

Don't forget, like a car engine, a game engine is made up of loads different bits that do different things- resource manager, renderer, input manager, particle engine. To describe all theses working in tandemm you refer to it as a games engine.

[edit]
on re-reading your question:
Creating the game as a whole requires different modules of the engine all working from a core system. Its why engines are quite an undertaking to develop.
Again, in its most basic sense an engine could have the following loop:


  • Run AI [AI Module]

  • Check for collisions [Entity module working with Map Module]

  • Render Map [Renderer Module working with Map Module]

  • Render Entities [Renderer Module working with Entity Module]

  • Get input from devices [Input Manager]



So what it comes down to is the different sections working together and, yes, this is achieved through the core programming language, be it C++, Java or even C#.

Hope that helps
[edit]

ahh so a modelling program/level editor makes the world and characters, the engine renders the poloygons made by the modelling program/level editor and checks to make sure noting colides or overlaps, and programming in a language creates the control (over characters) and makes the events. right?
Yep yep, You got it (except the engine controls everything, not just the rendering. You can also write a scripting language for the engine so you ca program bits of the engine using its native language- UnrealScript par example- such as AI, scripted events etc. But thats a bit more advanced)
Ok I have three more questions

where can I get a modelling program/level editor?
what is a good engine to use for a RPG game that is in 3D (for next generation systems)?
what language is best when making a RPG?

Sorry for all these n00b question and thank you in advance for your help so far.
besides 3d max (I know about that one)
are we talking free?

where can I get a modelling program/level editor?
Blender3D: Fantastic freeware modelling program... once you get used to the non-standard interface.

what is a good engine to use for a RPG game that is in 3D (for next generation systems)?
It'll be difficult to find a free engine for next gen systems.
You can always get a current engine like Irrlicht and overhaul the graphics systems. Other than that, you could start on your own [smile]

what language is best when making a RPG?
Preference. Its not about the genre but more about power, compatability and what you feel comfortable with.
C++ is the current prefered one (I believe, but it could be shifting soon). Most engines are actually developed in C/C++ such as Source, Unreal3, Doom3.
But like I said, most languages that are tried and tested games development languages are capable of developing any genre of game.
Constraints come in more on the API- i.e. if you want it to be cross platform.

Oh, don't forget the engine uses a specific API like OpenGL or DirectX to interface with the hardware. OpenGL is only for rendering but DirectX is a suite of APIs that allows you to interface easily with almost all bits of hardware on your system.
WOW you have been so much help, but I have one more question for you.

Is C+ visual studio interface setup like VB? (are the products one in the same, but C+ more powerful and complex?)
Yea, the actual interface is standard Microsoft Development Studio, so it will look similar. Only difference will be the compiler under the hood.

The actual languages differ substantially though. I suggest you get intimate with C/C++ (tutorial)(oops- thats assuming you want to do it in C++) before you start on an engine though.
Once you got the language under your belt you then learn an API- DirectX or OpenGL are the two most popular.
BTW- just in case you are not familiar with API, it stands for Application Programming Interface and is basically a library of functions for a specific purpose- Win32 API is for programming in windows, OpenGL is for programming with your video card and general graphics.
If i wanted to use a already created engine all I would have to do is create the world with a modelling program/level editor and then use C++ (that is the language I am going to learn) to control the enviroment and events?

This topic is closed to new replies.

Advertisement