🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

I need some advice planning my first game

Started by
18 comments, last by GeneralJist 2 years, 3 months ago

Hello everyone,

I am a web developer, thinking to develop a game as a hobby, I'm not planning to sell it and I will have all the time it requires. Besides web programming, I can write software using Python, C/C++/C#.

This will be my first-ever game and I would like to have some advice to do not start taking wrong decisions.

My idea was to develop a city builder-like game using a 2D isometric view which will possibly have a change of the point of view system to simulate a rotation, I'd say 4, 1 for each corner. I've read a bit around and that graphic concept seems to be considered dead or so by many people, but for a total beginner and his hobby, it is probably fine and easier than a 3D game. I would also have an eye to the performance, in the late game there could be many entities (people) going around doing stuff.

If in the future I decide to change from 2D to 3D, would that be a problem involving deep and hard changes? Will the complexity be influenced a lot by the technology which I will use to develop the game?

Talking about the technology to use, my main concern is: a game engine or a framework?

I tried to follow (not just watch) some tutorials both with Unity and SFML, I must say that I did prefer the SFML way. About Unity, I didn't like the interface system, too many places to remember where things are and it also confused me a bit with ECS and DOTS. By the way, I'm not discarding Unity, if it worth it, I could use it. Do you think I should choose or try anything different? SDL2, which I only heard about, in example o other?

Do you have any other suggestions about important things I should consider before I start?

Advertisement

Alhazred said:
I've read a bit around and that graphic concept seems to be considered dead or so by many people, but for a total beginner and his hobby, it is probably fine and easier than a 3D game.

On problem: To support rotating view, you need to draw (or render) your buildings 4 times. That's some extra work.
3D only is harder if you program the engine yourself. But in many cases, 3D models is less work than pixel art.
True 3D can also be easier than creating a 3D illusion with 2D art.

If in the future I decide to change from 2D to 3D, would that be a problem involving deep and hard changes?

It's always more work than we thought, no matter what's the question, no? ; )
You really want to make the right decision from the start and stick at it.
I think it's mostly about content creation and less about programming.

Alhazred said:
I must say that I did prefer the SFML way.

I looked at this once and it's pretty nice. Having started on home computers it feels like the ideal entry to me.
Can't comment on U engines because i never used them seriously.
SDL is mostly a lightweight system abstraction to ease up cross platform. SFML has much more game related features, which you can use to save time, but you don't have to. So i'd recommend SFML over SDL to any beginner.
A newer and really nice framework library is RayLib. Probably a bit more involved and lower level than SFML. So having some experience, i'd pick that. And you're experienced with programming, so worth a look.
Godot is a nice engine. Small and less bloated then U.

Hmm… SFML looks interesting.

My latest game used SDL, but there is a bug that causes my brand new GEFORCE GTX to generate a blinking green mess. This problem does not exist with GLUT, and / or on different hardware. It's too bad.

What I would recommend is figuring out OpenGL or Vulkan, and make your own engine. It will take you a lot longer, but it will give you a deeper insight into graphics programming when using easier APIs like SFML or Godot, or U. I'm not saying that you need to rewrite U from scratch, but get used to things like draw 3D objects, draw 2D objects (think like energy bars floating above a 3D game object), mouse click / triangle collision, things like that; the basics.

The following screenshot shows Phong shading and a shadow map. I learned this in OpenGL from Wolff's book OpenGL 4 Shading Language Cookbook. You are allowed to “cheat" and use GLM for a helper API. ?

P.S. Here is a screenshot of my latest game, on a working computer:

taby said:
What I would recommend is figuring out OpenGL or Vulkan, and make your own engine.

Advising newbies to get started with what - Vulkan? :O
…so that's how you get rid of potential future competitors quickly :D

That's just frustration, time spend on learning nothing general, working on close to metal details, just to run your little indie game at 1000 fps.
And probably you'll never get at working on your game at all. OP is about game development, not cutting edge realtime rendering. From that perspective OpenGL is pain enough, and using engines is fine as well.

Just saying. Ofc. we need guys working on tech as well, but doing both at the same time reasonably well becomes less and less practical.

Well, no matter which way you go, you will become familiar with the almighty triangle! Lol

Lol, and for the record, JoeJ is the one who taught me 90% of what I know.

JoeJ said:
You really want to make the right decision from the start and stick at it.

Correct, that is the reason why I decided to open this discussion.
I will take a look at RayLib.

Alhazred said:
About Unity, I didn't like the interface system, too many places to remember where things are and it also confused me a bit with ECS and DOTS.

You say that you don't like the "interface system"--would you then prefer a programming-centric approach?

If so, and given that you say that you know Python, have you looked at Panda3D?

(It's the engine that I use, and for my own part I've found it rather capable.

However, it is very much code-centric: aside from some community-driven projects and a few tools, there is no real “editor”. Pretty much all is done via code (either Python or C++).)

If it helps, I made a “beginner's tutorial” for Panda3D, which you should find here: https://arsthaumaturgis.github.io/Panda3DTutorial.io/

That tutorial might give you an idea of how the engine might be used (or at least my approach), and thus perhaps aid you in determining whether you might like it! And, well, if you do decide to use the engine, it may aid you in getting started!

As to making your own engine, if you have an interest in engine- or graphics- development, then this might be a good idea. However, if your primary interest lies in making a game, then I'd suggest that you instead make use of an extant engine.

MWAHAHAHAHAHAHA!!!

My Twitter Account: @EbornIan

Thaumaturge said:
If it helps, I made a “beginner's tutorial” for Panda3D, which you should find here: https://arsthaumaturgis.github.io/Panda3DTutorial.io/​

Thank you, I will look at it as soon as I can.

This topic is closed to new replies.

Advertisement