graphics library or game engine?

Started by
11 comments, last by ShrewdSpirit 8 years, 10 months ago

Hello. This is my first post in GameDev forums, so I'm so sorry if I'm asking this in wrong place. I need some help to start coding my game!

I'm going to create a 2D isometric game that is multiplayer and supports making own deidcated servers. The plans for the game are done and it's coding time for me!

The problem I have is I really don't know what library or engine should I use for making the game. I want to use C++ and Lua (Don't think I'm one of those who know C++ but have no idea what classes are!) so I decided to pick SFML. Many say I cannot make both the engine and the game alone. It will take a long time, but I love to learn something and also make a good game that others can play. Thats why I like to make the engine myself. But sometimes I think it's a better idea and a faster solution to use an existing open source game library or a small game engine that's written in C++. For that I like to use Godot Engine which is the best thing I could find.

Any ways, I talked so much! I want to know which one do you experienced guys prefer for making such a game (Except the networking stuff which is a separate project, I don't care if networking is supported by the engine/library)? Using a multimedia library like SFML, a library like Irrlicht or a 2D game engine that is written in C++ and is free and open source? Also keep in mind that I want to learn something and make the game in a short time, less than a year!

Writing a game engine from scratch is a hard and long process and I don't think it can be done alone, using an existing game library helps a lot but they require many more dependencies to install and I couldn't find a free and open source one. And the game engine is the simplest thing to use, only the stuff that aren't supported by engine can be done separatedly in C++. For the game engine, Godot is the best choise and I won't change my mind about it!

So yeah, that's all! My English is a bit weak so I'm so sorry if my words was a bit confusing or incomprehensible.

I appreciate your help and ideas about this

Advertisement

If you just want to develop a game . Use an existing game engine.
If you want to develop a game engine or use a graphics library to make a game then learn at least intermediate level C++ .
By the way I am not quite experienced with game development and I normally run away whenever I see networking or multiplayer .


@MRQ I do want to develop a game *and* learn how stuff work behind the scenes which engines don't let you know except the open source ones!

Also I know C++ ;P

@MRQ I do want to develop a game *and* learn how stuff work behind the scenes which engines don't let you know except the open source ones!

Also I know C++ ;P

If you can understand open source software then I think you are a quite good programmer . But you yourself said you don't know much about classes so I was just referring to that. I think you will be good using a graphics library like sfml or sdl .

But you yourself said you don't know much about classes so I was just referring to that.

I didn't say I don't know classes! I said "Don't think I'm one of those who know C++ but have no idea what classes are!" which I mean I'm not like those who say, okay I know C++ but I don't know what a class or OOP is! There are many of these people that want to start a big thing with their small knowledge!

I prefer using SFML over SDL. I have full access to it's source and it's OOP (I have bad memories about using C and SDL stuff!)

The thing bothers me is what others say. I have no experience in game development. They say it's not worth it to write the game engine and the game both. It will take a lot of time to finish and etc. They are kinda right, but I'm still not sure to do it myself or use a game engine.

And as I said, the networking stuff isn't a problem as I've always used Poco for networking stuff, it's just wonderful!

But you yourself said you don't know much about classes so I was just referring to that.

I didn't say I don't know classes! I said "Don't think I'm one of those who know C++ but have no idea what classes are!" which I mean I'm not like those who say, okay I know C++ but I don't know what a class or OOP is! There are many of these people that want to start a big thing with their small knowledge!

I prefer using SFML over SDL. I have full access to it's source and it's OOP (I have bad memories about using C and SDL stuff!)

The thing bothers me is what others say. I have no experience in game development. They say it's not worth it to write the game engine and the game both. It will take a lot of time to finish and etc. They are kinda right, but I'm still not sure to do it myself or use a game engine.

And as I said, the networking stuff isn't a problem as I've always used Poco for networking stuff, it's just wonderful!

You can use sfml to make your game . You don't need to develop a game engine which is a time consuming process. Using sfml to develop a 2d game should not take a lot of time .

@MRQ Hmm, you are right, but an engine should exist to create levels in, manage the resources and assets, render stuff and other things ph34r.png

@MRQ Hmm, you are right, but an engine should exist to create levels in, manage the resources and assets, render stuff and other things ph34r.png

I think the library can handle those things for you , you might have read the advice write games not engines . Someone wrote this

You program the game, and the 'engine' for the game is part of the game.
You don't program an engine, and then build a game using that engine, or you'll find that most of the work you put into the engine won't be useful for the game you are now making, and you'll have to recode alot of it.

Developing a game is not necessarily a time consuming process. But if you want to develop a game engine instead of a game then that is a time consuming process and you have to learn a lot of third party APIs for that.

don't care if networking is supported by the engine/library
the networking stuff isn't a problem

hm... from own experience that is rather unlikely. depends on the kind of game you are making, mainly on it's need for realtime-ness.
if you have something turnbased or something without direct controls you might get away with that statement. if you plan on having precise time-critical events dependent on direct player input i'd say you're putting yourself in a world of headache using an engine that is not meant to support multiplayer.
shoehorning entity interpolation, specialized serialization and the like on an engine is frustrating at least and likely futile.
also, learning lots of new stuff and getting stuff done doesn't go along well, sadly.

that being said, i'd still say go for it by all means - but as boring as it sounds, reducing scope (start with singleplayer maybe) may be much more rewarding.

share some more infos on the kind of game you're planning, like how players in multiplayer interact, turnbased/realtime, what do players control and how, and ppl might be able to give better, more constructive advice.

If you haven't made any games yet, then jumping into a multiplayer isometric game is probably a mistake. You'll quickly get overwhelmed and lose your motivation as you hack things together into an unmaintainable jumble of spaghetti code.

Have a look at this article. It tells you which games you should make first and why:

http://www.gamedev.net/page/resources/_/technical/game-programming/your-first-step-to-game-development-starts-here-r2976

Oh, and I really liked what little time I spent with the Irrlicht Lidgren networking library. I don't have a ton of networking experience but I got some basic multiplayer logic going without too much headache.

- Eck

EckTech Games - Games and Unity Assets I'm working on
Still Flying - My GameDev journal
The Shilwulf Dynasty - Campaign notes for my Rogue Trader RPG

This topic is closed to new replies.

Advertisement