Jump to content
  • Advertisement
Sign in to follow this  

Noob. Need help with choice of OS & language

This topic is 2260 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello there!

I am looking to start programming simple 2d games, but face the daunting number of languages to choose from. Also, I would like to program under linux rather than Windows. I figure that for 2d games I shouldn't need access to DX11 or anythng like that. If I did want to mess about with 3D games then I guess OpenGL under linux would be fine.

Anyway, I have not done any programming in about 6 years, but when I did it was all unix based. At university I used both C and Java.

I did think that perhaps I would try C#, as the company I work for use this language, but since this is intrinsically associated with the Windows platform I'm not so sure.

What better way to approach this dilema than to come to Gamedev.net and ask around?

I am seriously excited about making a shoot em up or some kind of platform game. I grew up with computers, and must have racked up a ludicrous amount of time playing games on my old C16, then Spectrum, then Atari ST, then Amiga - but I am most fascinated by the 8-bit games, hence the 2d games programming idea.

I did study 2d graphics programming at uni, and loved it. We made a little game in C.

Mid-life crisis? Me?

Anywayz.... thanks in advance! 8D

Share this post


Link to post
Share on other sites
Advertisement
In regards to most of your technical questions re languages and libraries read this. It is however a bit Windows-centric ( as is the world in general ), but it doesn't actually make things all that different. You wont be able to use Visual Studio or XNA, although you can use Mono+MonoGame and accomplish pretty much the same thing. Almost every other language and library recommendation in that guide would apply to Linux as well.


I personally would recommend C# + XNA as probably the perfect setup for getting back up to speed with programming while making a 2D game. That said, mono/monogame are going to make that process slightly more complicated. All the recommendations for C++, Java and Python should work exactly the same on Linux however.

Share this post


Link to post
Share on other sites
I guess the stock recommendations for linux would be C & SDL, C++ & SFML, or use either of those combinations with OpenGL (even for 2d stuff...), they both also work on windows so porting is relatively straight forward. Java should be fine for a shoot em up too. I often use it to do little prototypes since I can show it to friends etc. without worrying about compiling for other platforms.

Share this post


Link to post
Share on other sites
Thanks for the quick responses guys. After doing some more research I've started thinking about Java more and more. I guess I like the idea of being able to use OpenGL, plus maybe in the future being ready for a jump to Android.

I think at this point for me C++ is probably a non-starter. It's either C, C#, or Java - with OpenGL. I'm not aux-fait with which development kits to use, but do like the sound of using OpenGL for 2D games and having the 3D route open.

C and Java I've coded in before, so less time spent figuring out the fundamentals.

MonoGame - I'll have to look into this.

Serapth - thanks for the link. Just had a scan and it looks fascinating. I'll check this out ASAP.

Thanks again guys!

Share this post


Link to post
Share on other sites
If you're productive in Linux, use Linux. Python is likely your best beginner friendly option there.
If you're comfortable in windows, use windows. Most of your potential users will be there, and it's the common development environment.

Share this post


Link to post
Share on other sites
Whatever you choose, I would highly recommend looking into using a 2d physics library (chipmunk-physics, Box2d, etc.). These libraries handle all the physical interactions your objects might have. That includes movement, collision detection (get notified when 2 objects have collided), collision handling (ie, bouncing ball, pushing objects, etc.). Basically, you can give an object a velocity, or a force, a collision mask (what you want the object to collide with), a collision callback, and tell the physics engine to "go" and it handles everything else.

I used to program everything myself, but, when I learn how to use the libraries, it was like a light went off. Now, any 2d game, I would use a physics library.

Take a look at my old blog (linked in my sig below), it details a 2d game I made using a 2d physics engine. Specifically, http://2dgamemaking.blogspot.com/2011/10/adding-2d-physics-engine.html
introduces the physics engine, and
http://2dgamemaking.blogspot.com/2011/10/bullets-added.html
which show adding bullets (where we give the bullets a velocity and angle, and add it to the s2d space), and http://2dgamemaking.blogspot.com/2011/10/added-bulletwall-collision.html

which shows a simple collision detection callback

Good Luck

Share this post


Link to post
Share on other sites
Thanks guys. I'm still a bit torn by this whole thing.

So I know that the mono project is quite mature, and that games programming in C# under linux should not be a problem.

On the other hand I'm more familiar with Java, and I am more aligned with open source mobile gaming.

Share this post


Link to post
Share on other sites

Thanks guys. I'm still a bit torn by this whole thing.

So I know that the mono project is quite mature, and that games programming in C# under linux should not be a problem.

On the other hand I'm more familiar with Java, and I am more aligned with open source mobile gaming.



Well, your last paragraph is going to be a right pain in your ass. Without using a cross compilation library like PlayN, you simply aren't going to get far in mobile gaming in Java, which is kinda ironic, as a few years ago J2ME was *the* mobile language.


Simply put, you aren't going to be able to target iOS or Windows Phone using Java. ( Although you can target Android and Blackberry ).

This is one of those very very very rare occasions where I actually recommend C++, if you want to create open source, multiplatform mobile games, C++ ticks the most boxes for the least cost. Well, that or HTML5. If you go the C++ route, you can target everything but WinPhone 7, often with the same code base. Although thanks to Unity, C# is also quite far reaching.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!