Need advice (economic-time) about librarys and engines

Started by
8 comments, last by jjimenezg93 5 years, 6 months ago

I´ve been searching in the web since last year and couldn´t find an answer. All I find are "recommendation" posts that are based on preferences or trivial and ambiguous matters such as difficulty.

If It takes me 1 year to master SFML and it takes me 2 years mastering Opengl and the other libraries needed; I would choose Opengl; because I would be wasting 1 year in something that has only hobby uses. If I invest a year in learning something I would like to make a profit from It. Also If an Engine would be moer job-wise, I would choose that instead.

I am in second year (finishing) in Software Engineering (in Argentina) and have advanced knowledge in C, C++, C#, Net, Web languages; and a little of Assembly. So I don't need the basics of language.

I found SFML and It comes with a bunch of services (net, audio, graphics) and used it a bit, and found it quite information-less; I heard about DirectX and Opengl, but all I find is "It is verry difficult, use SFML".

 

If you ask me about hobby, I would like somethinc close to code and efitient; for 2d graphics that I could draw myself.

If you ask me about work, I would choose something that could help me get a Job. 

What would be awesome is, if there is something that could be a mixture of that.

Thanks in advance, Santiago.

 

 

Advertisement

Hi,

the question is, are you interested in learning about the graphics pipeline? Do you want to become a graphics/engine programmer? If so, don't even consider SFML, look for one of the numerous, fantastic and free resources available and start learning about DX11/OpenGL4. Start with small things and grow from there. I think even GLFW would be a good starting point, since it's basically a wrapper around OGL which eases things a bit but you'll need to get your hands dirty anyway.

If, on the other hand, your main field of interest is AI, networking or pure gameplay, don't enter the fight of developing the engine itself and simply go for SFML, UE4 or any other framework/engine using C++. Please note that I don't consider Unity since it's too newbie and, if you want a real career in games, you must MASTER C++.

If you decide to take the framework/engine path, you'll always have time to go deeper in graphics later on, when you understand most of the high level stuff.

Regarding getting a job, if you are willing to move and you are good with C++, you'll probably find something (even in a non games-related field), although don't expect to get a job in a big one right away.

Regards

Graphics engineering has always been something that's intrigued me, but ive never took the time to actually try and develop any skills within in it. It took me long enough to learn how to develop games, but it's something worth looking into. Thanks for the tips.

@jjimenezg93 I understand that there are options, needs, and a "what I want" factor. The thing is I don't care for that stuff. I left that behind with my youth. What I focus now Is to use the skills I have acquired (C, C++. C#, and web) for something I like and know I'm good at designing; I've wasted almost 20 years playing video games and learnt how they should be done, so I would like to give It a shot and If I fail at least I would have enjoyed It.

On the other hand, despite the fact I wouldn't mind moving, I live in Argentina and the only It stuff around here are web development enterprises (little ones), so there is nowhere to move. I wouldn't mind moving to another country, but I don't think It is possible because you have to get a job first and then get a visa; we Argentinians can't enter any country like Americans or such.

With that in mind, I would like to ask for an advice on wich technology should I invest time. Because I work and don't live in my parents basement; and time is something I don't want to waste.

Lets put it in clearer words: 

1 - You can make an aplication, with a software for making them; but it would be for personal use and hardly to sell. 

2 - You can make it yourself, and then sell it. This can be achieved in 3 degrees of complexity:

2.a - You can program in Visual Studio and use the drag and drop tools from windows forms.

2.b - You can use C and call the Win32 Api.

3.c - You can build your Api.

The same can be achieved in 4 ways, but some are fast useles and the other hard useless. And all of them requiere that the programmer learns It,

So, I would like to know what to do, because I am lost. I like videogames and want to make them myself; and If that knowledge is usefull for working nowdays would be perfect. For example if people use unreal engine for making profesional games, and I already know C++; why should I waste time with SFML (one an Engine, the other a library; but are made for the same porpose).

 

24 minutes ago, ElMaquinola said:

@jjimenezg93 I understand that there are options, needs, and a "what I want" factor. The thing is I don't care for that stuff. I left that behind with my youth. What I focus now Is to use the skills I have acquired (C, C++. C#, and web) for something I like and know I'm good at designing; I've wasted almost 20 years playing video games and learnt how they should be done, so I would like to give It a shot and If I fail at least I would have enjoyed It.

On the other hand, despite the fact I wouldn't mind moving, I live in Argentina and the only It stuff around here are web development enterprises (little ones), so there is nowhere to move. I wouldn't mind moving to another country, but I don't think It is possible because you have to get a job first and then get a visa; we Argentinians can't enter any country like Americans or such.

With that in mind, I would like to ask for an advice on wich technology should I invest time. Because I work and don't live in my parents basement; and time is something I don't want to waste.

Lets put it in clearer words: 

1 - You can make an aplication, with a software for making them; but it would be for personal use and hardly to sell. 

2 - You can make it yourself, and then sell it. This can be achieved in 3 degrees of complexity:

2.a - You can program in Visual Studio and use the drag and drop tools from windows forms.

2.b - You can use C and call the Win32 Api.

3.c - You can build your Api.

The same can be achieved in 4 ways, but some are fast useles and the other hard useless. And all of them requiere that the programmer learns It,

So, I would like to know what to do, because I am lost. I like videogames and want to make them myself; and If that knowledge is usefull for working nowdays would be perfect. For example if people use unreal engine for making profesional games, and I already know C++; why should I waste time with SFML (one an Engine, the other a library; but are made for the same porpose).

 

You bet I understand your situation, I'm from Spain and here the situation isn't much better on this topic. However, I think you are not analyzing this properly. Let me give you my point.

First of all, US is not the center of the world, there are many other options, including creating your own company at some point (nowadays all you actually need is Internet access). In any case, many US companies reflect on their job openings that they will manage the visa stuff if needed.

Secondly, you shouldn't think of it like a waste of time, as long as you are learning useful stuff about software development. There are two main reasons for that:

1 - You bet any IT employer, no matter the industry, will value skills like CI/CD, testing, good low-level knowledge... The first two of them show you care about process and secure development, for example, which statistically improves the quality of your code (that is, less annoying bugs). The latter shows you know the foundations of IT, and that you like to know about how things are done, why are they done like this, how each decision impacts performance, etc

2 - As you said, most of software devs in your country (this happens more usually than I'd like here, too) are web programmers who learnt JS and PHP and they'll stick to this forever, because they have 0 ambition and just want a decent paycheck first thing in the month. Most of them have no idea of C/C++ and they don't even care, they're told how to write a webapp in Java and that's what they do. If you are curious, have ambition and want to be better, you'll have not only good chances of being a great games programmer, but also being able to work in any other industry if you ever want to switch careers, which is very important in my opinion.

That's why learning a bit about this low-level stuff will never hurt, and you'll definitely not be losing time at all. The day you make it into a technical interview process for a big-A, they won't care what you know about Unreal Engine 4, because they will be using their own engine and they want to know whether you're a good ENGINEER who can adapt and get your hands on new technologies, or you are just a copy&paste&color monkey of UE4. That doesn't mean some projects with a commercial engine can't be useful, if they add value to your portfolio, that's great! Just don't think that this will be enough.

I hope I made my point and helped you think about it a little different.

Regards!

 

9 minutes ago, jjimenezg93 said:
10 minutes ago, jjimenezg93 said:

big-A, they won't care what you know about Unreal Engine 4, because they will be using their own engine

1 - Porque hablamos en ingles si vos sos de España y yo de Basuralandia. 

2 - Los dos pensamos igual. E indirectamente con eso que cite, me contestaste.

Mi duda era en que perder tiempo. Y veía que sfml no producía nada bueno incluso en 2D. Por lo que me pareció (divertido) pero inútil, ya que siendo programador puedo calcular lo que me va a llevar aprender sfml y me parece que no rendiría el asunto y podría haber invertido el tiempo en otra librería de la cual se valoraría el esfuerzo.

Osea que lo que vos me planteas es: ¿Aprender direcftx o opengl (y las librerias que lo acompañan) y arrancar humildemente haciendo porquerias y luego meterlas en un portfolio para poder entrar en una empresa tanto de desarrollo de videojuegos como de otros ámbitos de la programación.?. Si es asi, ¿Que otras librerías acompañan a Opengl (audio, red, etc)? ¿Sirbe para hacer 2d, que seria el equivalente a Opengl para 2D, o ahi si me sirve SFML y listo?

Saludos cordiales, Santiago.

 

 

13 hours ago, ElMaquinola said:

 

Probably there will be other people reading this and they don't have to know Spanish, sorry.

Yes, my advice is, as I said, that you get at least a basic understanding on how everything is done. You can get a job just doing stuff in UE4, but do you want to be a good engineer who can face any challenge they throw at you? Then get a solid understanding on how to write good quality code. You won't be losing time as long as you are learning, because all the knowledge you acquire programming your own games/libraries will help you either at a technical interview or at a job you may get. Programming is a skill, so the only way to become good at it is taking it seriously enough and doing it a lot. I don't know if you get what I mean.

Regarding what technology to learn, that's really up to you. Do you want to code graphics engines? Network libraries? Gameplay (triggers like doors when the player enters an area, enemy kills, shooting mechanics)? HUDs? Animations blendings and similar stuff? AI? If you want to know about all of it, you can create your own basic game engine, and go part by part integrating any given API or library. For sound you have OpenAL, for example.

Quote

If you ask me about hobby, I would like somethinc close to code and efitient; for 2d graphics that I could draw myself.

If you ask me about work, I would choose something that could help me get a Job.


For the first one, go the DX11/OpenGL route I mentioned. For the second one... You can actually got either the same route or any other, just become the best you can on whatever it is.

Regards.

9 hours ago, jjimenezg93 said:

Gameplay (triggers like doors when the player enters an area, enemy kills, shooting mechanics)?

That one is interesting.

On 10/7/2018 at 12:39 AM, ElMaquinola said:

That one is interesting.

If that's what interests you most, then don't bother learning about graphics at the lower level and use an existing game engine like UE4 or framework like Cocos or whatever.

This topic is closed to new replies.

Advertisement