Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411500 Posts in 69373 Topics- by 58428 Members - Latest Member: shelton786

April 25, 2024, 12:34:14 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Professional Languages and Libraries
Pages: [1] 2
Print
Author Topic: Professional Languages and Libraries  (Read 2161 times)
Tribune
Level 0
**


Burn, heretics!


View Profile
« on: October 07, 2014, 02:44:57 AM »

Hi all,
Becoming an independent game developer is my dream job, and it's my understanding that it can be impossibly difficult. Therefore, I'd like to get a headstart on my peers. As 'professionals'/semi-professionals, what kind of languages and libraries do you use? I've done stuff in Game Maker, Python (PyGame) and dabbled in very basic C++ games. Now I just want to take this 'to the next level' (see what I did there?  Giggle ), and it would help to know what kind of things the big boys use.
Logged
nikki
Level 10
*****


View Profile
« Reply #1 on: October 07, 2014, 02:51:54 AM »

I believe big boys use Unity, men on the other hand use a non garbage collected language
Logged
Milkybar
Level 0
**



View Profile
« Reply #2 on: October 07, 2014, 03:48:28 AM »

If you don't want to go the Unity route then GLM and SDL should save you a lot of time when writing C++ games
Logged
Fenrir
Level 3
***



View Profile WWW
« Reply #3 on: October 07, 2014, 04:11:11 AM »

Well my advice would be to push forward a lot in C++, when you'll be confident with it, then go to garbage collected languages like C# or Java, and finally scripts like Python or Lua. Then you'll be able to work with any framework or engine.
Logged

Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #4 on: October 07, 2014, 07:38:45 AM »

I would disagree with the advice to start with C++, but only because it might turn people off game development because of the subtle annoyances it has here and there. (I love me some RAII but C++ libraries are a pain, boost I'm looking at you)

While C# is my personal favorite, it doesn't have that many rendering frameworks and engines. The ones it has are pretty good though. The biggest advantage I personally think you get with C# is the amazing way it handles dependencies.

One notable example is MonoGame, which picks up where the late XNA left off. It's used by a lot of people and works very well, but isn't entirely up to the feature set XNA had yet. As an added bonus you get to use Microsoft's amazing MSDN documentation for XNA, since the API is exactly the same.

If you want to get more lower level, my favorite library on that end is OpenTK, which is a full toolset for working with OpenGL. It also comes with helper classes for working with Matrices and Vectors, and classes for working with sound and input.

There's also Unity, which a lot of people like, but I personally don't. It's a great and flexible engine with a lot of features. As well there's tons of great guides and libraries created by its community. The problem I personally have with it is that its C# API doesn't follow the Microsoft .NET library design rules.

On the Java end of things, I don't know that much since I don't use Java. Libraries I've heard of are LWJGL and Slick2D.
Logged
nikki
Level 10
*****


View Profile
« Reply #5 on: October 07, 2014, 08:02:29 AM »

Yeah contrary to the post I placed this morning, the way you'll get some real headstart is by actually finishing a few cool games, c++ will not help you in that regard, at all. c# or any other modern approach will, gamemaker definitely will.

The question you prolly should ask yourself is : "Do I want to try to make gameengines or games?"

This rabbit hole goes very deep...
Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #6 on: October 07, 2014, 08:05:43 AM »

Yeah contrary to the post I placed this morning, the way you'll get some real headstart is by actually finishing a few cool games, c++ will not help you in that regard, at all. c# or any other modern approach will, gamemaker definitely will.

As an addition to this and my post, OpenTK will not help you with this either. If you really just want to go ahead and make a game, Unity and MonoGame are great for that.
Logged
Tribune
Level 0
**


Burn, heretics!


View Profile
« Reply #7 on: October 07, 2014, 02:36:44 PM »

If I go with Unity, does it have to be in 3D? If not, what's the comparison between Unity and SDL?
Logged
Milkybar
Level 0
**



View Profile
« Reply #8 on: October 07, 2014, 02:51:03 PM »

Unity supports 2D development, and in the latest version has greatly increased support for 2D development. Unity is more of a fully fledged engine with a built in suite of authoring and development tools (although most parts of the engine are customisable or replaceable).

SDL is a library that wraps common functionality like creating an OpenGL context, reading files, playing audio, etc in a cross platform way. So in theory at least you should be able to compile your games over multiple formats (this is often a lot more work). SDL only provides the basic functionality you need to create a game engine. Features like collisions detection and physics systems are up to you to implement, so if you are not well versed in linear algebra and calculus this can be quite hard, not to mention its quite a lot of work.


Although I love working with C++ it is not for the faint of heart, you really need to love programming to do it. Unity is much more designer friendly. Don't get me wrong, you will still find you are writing lots of code in Unity but its at a much higher level.

So basically if you just want to make a game and churn it out go for Unity. If you are more interested in learning how games work at the system level building in C++ will teach you lots, but it will be a much steeper learning curve.
Logged
nikki
Level 10
*****


View Profile
« Reply #9 on: October 07, 2014, 02:53:09 PM »

I believe there is a standard Unity 2d workflow nowadays.

Unity is a whole environment, think gamemaker on steroids
SDL is a library that helps
screw that, their own sites tell it better:

Unity is a game development ecosystem: a powerful rendering engine fully integrated with a complete set of intuitive tools and rapid workflows to create interactive 3D and 2D content; easy multiplatform publishing; thousands of quality, ready-made assets in the Asset Store and a knowledge-sharing community.

Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve's award winning catalog and many Humble Bundle games.
Logged
Tribune
Level 0
**


Burn, heretics!


View Profile
« Reply #10 on: October 07, 2014, 03:16:08 PM »

At the moment I'm leaning more towards SDL (for 2D), but I also have experience with SFML, which some people say is easier to use. Does anyone here have experience with both libraries?
Logged
Boreal
Level 6
*


Reinventing the wheel


View Profile
« Reply #11 on: October 07, 2014, 04:09:49 PM »

At the moment I'm leaning more towards SDL (for 2D), but I also have experience with SFML, which some people say is easier to use. Does anyone here have experience with both libraries?

I prefer SDL because I like coding in a C style.  It's really up to whether you want to use an OOP library or not.
Logged

"In software, the only numbers of significance are 0, 1, and N." - Josh Barczak

magma - Reconstructed Mantle API
ThemsAllTook
Administrator
Level 10
******



View Profile WWW
« Reply #12 on: October 07, 2014, 04:43:48 PM »

As 'professionals'/semi-professionals, what kind of languages and libraries do you use?

If you want to be professional, breadth of knowledge will help you more than depth. Learn lots of different technologies and be comfortable switching between them. However, the great thing about being indie is that you don't have to be "professional" in this sense at all - you can carve out your own niche using whatever tools you desire.
Logged

nikki
Level 10
*****


View Profile
« Reply #13 on: October 07, 2014, 04:53:27 PM »

SFML and SDL are very similar, like pasta and pizza, which is best to you is a matter or taste.

try both and you'll know  Hand Fork LeftWell, hello there!Hand Knife Right
Logged
Photon
Level 4
****


View Profile
« Reply #14 on: October 07, 2014, 07:07:48 PM »

As 'professionals'/semi-professionals, what kind of languages and libraries do you use?

If you want to be professional, breadth of knowledge will help you more than depth. Learn lots of different technologies and be comfortable switching between them. However, the great thing about being indie is that you don't have to be "professional" in this sense at all - you can carve out your own niche using whatever tools you desire.
Yes. Basically, choose what's right for your particular game. Are you making a blazing, 10000-things-going-at-once 3D game or a "slower," turn-based strategy? You obviously want to choose something robust, but you don't necessarily have to use a sledgehammer on a common household nail, right? Premature optimization can be the death of a project before it really gets its feet off the ground. On the other side, don't necessarily take the path of least resistance either if there are obvious, negative ramifications. Again, it depends.
Logged
Milkybar
Level 0
**



View Profile
« Reply #15 on: October 08, 2014, 06:53:11 AM »

At the moment I'm leaning more towards SDL (for 2D), but I also have experience with SFML, which some people say is easier to use. Does anyone here have experience with both libraries?

Not much difference. Although SFML supports text rendering out of the box where you will probably use the external SDL_TTF library to get this in SDL. Not worth losing much sleep over though.
Logged
hammeron-art
Level 0
**



View Profile WWW
« Reply #16 on: October 08, 2014, 11:52:34 AM »

People always rely on languages and libraries when the most important skill a game programmer need to have is solid fundamentals in math, methodology, troubleshooting, algorithms and optimization.

Programming languages ​​and technologies are just tools like a pencil is for an artist.
You can learn it fast enough but can't really do cool things without fundamentals which are always universal.
I see this a lot when someone try to code shaders thinking that learning GLSL/HLSL/Cg is enough to make those fancy effects when in fact you need to learn linear algebra and the graphics pipeline.

Furthermore profissionais are people how earn money with their job making the final product works, not who uses specific tools.  Well, hello there!
Logged

Tribune
Level 0
**


Burn, heretics!


View Profile
« Reply #17 on: October 08, 2014, 09:27:14 PM »

People always rely on languages and libraries when the most important skill a game programmer need to have is solid fundamentals in math, methodology, troubleshooting, algorithms and optimization.
So how would I be able to learn that? Do I really have to go to Uni and take a Mathematics course? I suppose there's always the internet, but something tells me that it's not going to be sufficient.
Logged
nikki
Level 10
*****


View Profile
« Reply #18 on: October 08, 2014, 11:54:14 PM »

I wouldn't worry about that in advance too much, approach it like a craft: compare it to handyman/builder/carpenter for example, you get some wood, get some simple tools and start hammering/sawing away, build some handy things for around the house, build a table, plaster a wall, lay some flooring, fail many times and lookup how the professionals do it, learn from that as you go, become better. spend years. then buy a plot of land and build the best house ever.

as a gameprogrammer that route would look like: build a few simple games, get stuck in their architecture, look up how it's done, get stuck at math/graphics problems, look them up, dig deeper, dig deeper, fail at making fun games, succeed a few times, spend years, then build your own 3d engine and mmo.

The nice thing about programming as a craft is that it's probably the best documented craft on the internet: A big headstart is to be gained when you learn quickly how to clearly describe the problem you're facing, then you can look it up easily or ask around (here for example)
« Last Edit: October 09, 2014, 12:02:23 AM by nikki » Logged
Netsu
Level 10
*****


proficient at just chillin'


View Profile WWW
« Reply #19 on: October 09, 2014, 04:55:14 AM »

C++ is great for programming in C++.
It's awful for making games.

I did make my first few games in C++, using my own engine. I learned a lot in the process and now I am a professional C++ programmer. But my games would be better and there would be a lot more of them if I started with Game Maker or Unity (which is what I use now).

Use whatever works best for you, the quality of the game doesn't really depend on the tools you use but on how well you can use them.
Logged

Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic