A little help. Is this 3D or 2D?

Started by
7 comments, last by KnolanCross 10 years ago

Hello...

As i wanted to write a game; I started to learn C++ 2 years ago. I'm still a newbie to it, but i can handle it so, basically i just want to learn a graphics library that i can use to create my first game. (Not first actually... I created pong, tetris blah blah...)

As i need to choose which dimension I'll use in my game.

The game camera will look like how Dota 2 or League of Legends (air-view)... The problem is, Is it 2D or 3D?

If 3D/2D, which library should i use? OpenGL? Or what ever ?

Thanks!

Advertisement

Both of those games use 3D graphics, with a mostly top-down camera. Most of the gameplay is probably two-dimensional, but the graphics are definitely 3D. You can use OpenGL or DirectX to render 3D graphics, or you can use a higher-level graphics engine like Ogre.

Both of those games use 3D graphics, with a mostly top-down camera. Most of the gameplay is probably two-dimensional, but the graphics are definitely 3D. You can use OpenGL or DirectX to render 3D graphics, or you can use a higher-level graphics engine like Ogre.

Or you could use a full on engine like Unity. Or Unreal. Or CryEngine. Or Source, which I think is what DOTA 2 uses. It mostly depends on how much of the engine you want to write yourself.

You could probably also make an entirely 2D MOBA, which would be very different graphically but could play mostly the same, similar to how Realm of the Mad God used 2D sprites to make an top-down bullethell shooter MMO. But I get the sense that you are looking for something that's along the lines of existing MOBAs.

Dota 2 is one of the most complicated games in existence, based on alot of things. It is fully 3d, with detailed models and realtime animations. The game can be run in slow motion to see this effect. I'm just saying this because I'm genuinely admiring what they have done, with so few people (relative to other game AAA developers.)

1000 fps:

normal fps:

As for the camera:

Modern games are always 3D, in the sense that they are using 3D math. They use projection matrices that give the desired effect. Orthographic projection (on Z) removes depth perception, for example. That will make your game appear 2D, and no one will be able to tell.

Use any engine you want to. Whatever engine feels the best for you is the one you should be using. Just download one and get started. The most common engine these days is most likely Unity: http://unity3d.com

I don't think 3D games like this are a good choice for relatively new programmers. You will need pretty good models, shaders, etc. I assume you don't have experience with graphics programming? If that's the case you could choose a higher-level 3D library or an engine like Unity.

But as you said you were learning C++, I assume you like it. smile.png If that's the case, and you want to create games on your own, I advice a game with 2D graphics. Especially for now, you can always switch to 3D later, but I think it's a better idea to learn how to program an arena game without worrying about graphics too much. I advice SFML because it's pretty complete, C++-style and modern written. There are also a ton of other libraries out there.

Good luck, and welcome to the forums!

I completely agree with ProtectedMode, going for such a leap will most likely turn into frustration, go for a smaller setup and learn how to make cool graphics in small steps.

If you are into C++ and would want to go to 2d first, I would suggest you to also take a look at orx (using it with scroll), I find it much more better than SFML.

Currently working on a scene editor for ORX (http://orx-project.org), using kivy (http://kivy.org).

Since you say you have done 2d already I would suggest learning a 3d engine like Ogre3d or Irrlicht. Don't try to write your own engine using low level api like directx/openGL. That not only would take a very long time for one person to write but require a very high skill level.

If you still want to hang around 2d for a while use sfml 2.

If this post or signature was helpful and/or constructive please give rep.

// C++ Video tutorials

http://www.youtube.com/watch?v=Wo60USYV9Ik

// Easy to learn 2D Game Library c++

SFML2.2 Download http://www.sfml-dev.org/download.php

SFML2.2 Tutorials http://www.sfml-dev.org/tutorials/2.2/

// Excellent 2d physics library Box2D

http://box2d.org/about/

// SFML 2 book

http://www.amazon.com/gp/product/1849696845/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1849696845&linkCode=as2&tag=gamer2creator-20


I would suggest you to also take a look at orx (using it with scroll), I find it much more better than SFML.

Are you sure this is a good choice? I've never heard about it, and for as I can see the community isn't that big. As I see you can use INI-files for initalization and such, I guess orx is a lot bigger and harder to learn than SFML or simular libraries.


I would suggest you to also take a look at orx (using it with scroll), I find it much more better than SFML.

Are you sure this is a good choice? I've never heard about it, and for as I can see the community isn't that big. As I see you can use INI-files for initalization and such, I guess orx is a lot bigger and harder to learn than SFML or simular libraries.

The community is small but very active, I got answers to all my questions in a day or two. The tutorials are pretty good too, I have used both pygame and SMFL and I find orx is away better than both.

If you want an example, last semester I took a course on game development lab as a special student in the college which I am graduated (CS).

We had about 5 months* to do a game, here is my result:

https://drive.google.com/file/d/0B0UdeUM9pB-ndXlEdFM4Zm1hQU0/edit?usp=sharing

Personally I found that learning the ini system take some time by itself (not that much time, just be careful that the keys are case sensitive), but after you get the handle of it, you can create some special effects very, very easily (particle effects, for instance).

If you look at the video, the first arrow effect I created was the fire arrow, took me about 2 hours to learn how to use the particle system properly, all the others took me less than 5 minutes to create. The monster death effect also took me a few minutes.

That prototype have a total of 4039 lines of code and 904 lines of ini files, but I implemented somethings I didn't had to (such as lists and memory pools, which the library offer).

* Keep in mind that besides 4 hours of classes per week, I also work at a full time job (42,5 hours/week), so I didn't have that much time to work on it.

EDIT: Please notice that I am not an artist, so my effects won't be anything amazing, but that is not the engine's fault rolleyes.gif

Currently working on a scene editor for ORX (http://orx-project.org), using kivy (http://kivy.org).

This topic is closed to new replies.

Advertisement