Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411430 Posts in 69363 Topics- by 58416 Members - Latest Member: JamesAGreen

April 19, 2024, 06:34:43 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)What language should I use to make a 2D platformer for Windows, Mac and Linux?
Pages: [1]
Print
Author Topic: What language should I use to make a 2D platformer for Windows, Mac and Linux?  (Read 1853 times)
skittlefuck
Level 0
***



View Profile WWW
« on: October 26, 2014, 12:51:08 AM »

Hello!

I don't have much experience in coding other than knowing a measly amount of python, so if I were to go looking for a programmer to help me with a story based, 2D, platformer that targets Windows, Mac and Linux what would be the best language to go for?

I see so many people using Gamemaker and they manage to make good quality games, but is there something better? Would I even want to find someone to make this game in python, as an example? Or maybe even try to make it a html5 game since it's only a platformer and that would probably make it the easiest way to let people play it (but to be honest, I was hoping to possibly release it on greenlight depending on how well it looks and plays and atm I'm semi-confident on how it looks)? What should I use :S?

The first project I worked on, I had a bit of trouble communicating with the rest of the team when doing things like, testing the game out since they were making the game for windows only and that's not the os that I use, so I'm hoping that depending on what language I settle on to make this I won't have to run into that sort of trouble again.

I'm planning on the scale of the game to be either roughly the size of original Cavestory or a bit lower, if that detail makes deciding on the language a bit easier.

I only have art assets made at the moment, but I thought now would be a good time to start thinking about this even though I would rather just stick to thinking about art : (

Thanks a lot in advance!
« Last Edit: October 26, 2014, 01:19:37 AM by skittlefuck » Logged

Dacke
Level 10
*****



View Profile
« Reply #1 on: October 26, 2014, 01:20:40 AM »

You can make a retro platformer in pretty much any language, there are hundreds of valid ways to go about it. If it isn't important to you, you should let the programmer pick the language and libraries.

What you can do is to ask for any number of features you are looking for in a solution, like:
  • Should be multi platform
  • Should be possible to run as HTML5 (written in JS or probably transcompiled)
  • Should be able to be put on Steam
  • Should be based on open source systems/libraries
etc.

Just try to find a programmer that can fulfill the requirements you deem important.
Logged

programming • free software
animal liberation • veganism
anarcho-communism • intersectionality • feminism
nox
Level 0
***



View Profile WWW
« Reply #2 on: October 26, 2014, 04:15:52 AM »

HTML5 + Node-Webkit will cover all of your desktop platforms, plus mobile and web. Alternatively, I would recommend Haxe + OpenFL for the same result.
Logged

skittlefuck
Level 0
***



View Profile WWW
« Reply #3 on: October 26, 2014, 06:09:18 AM »

@Dacke
Thanks so much for the helpful reply man, that clears up a lot of my questions. I'll make sure to ask a lot of those things when I find someone to code this.

I should have made the title of this 'qualities to look for in a programmer' ;P

Thanks again!

@nox
Ahhh, I'll have read up more on html5 with games, but I'm not 100% sure if I want this to be web based yet.

Logged

Dacke
Level 10
*****



View Profile
« Reply #4 on: October 26, 2014, 12:19:18 PM »

Most important quality to look for:

  • The ability to fix those last bugs, polish the game and release a finished version.

I sure can't do it, don't pick me.
Logged

programming • free software
animal liberation • veganism
anarcho-communism • intersectionality • feminism
nox
Level 0
***



View Profile WWW
« Reply #5 on: October 26, 2014, 12:44:55 PM »

HTML5 doesn't really mean "web-based" anymore like you're thinking. You can package the code with Node-Webkit, or something like Cocoon JS or Phonegap, for seemingly "native" desktop and mobile apps. It's really just an added perk that you'll also be able to play the game in any modern browser--which is useful for things like demos, betas, and overall ease of accessibility.
Logged

oahda
Level 10
*****



View Profile
« Reply #6 on: October 27, 2014, 06:52:08 AM »

If you decide against HTML, Unity and C++ (using something like SDL 2.0 or SFML) are both viable options, I guess, but obviously C++ can be a heavy load if all you know is a little Python. Do give Unity a try. Less programming, quick progress and a bunch of helpful visual tools for the beginner. It's like Game Maker, except modern. :p
Logged

Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #7 on: October 27, 2014, 08:51:38 AM »

Could you clarify if you're looking for a developer and want to establish what tools you want them to use, or if you want to program this yourself? If the first, you might want to leave that to the developer to decide.
Logged
Impmaster
Level 10
*****


Scary, isn't it?


View Profile WWW
« Reply #8 on: October 28, 2014, 06:42:54 PM »

Just sayin, you shouldn't use python to build a complete game, it's not great for that.

Also Cave Story took 5 years to make for an experienced coder, so having something on that scale seems a little difficult ... :p

Finally, if you're on mac, I guess I'd suggest checking out Monkey x? It's pretty easy to pick up, exports to windows, mac, linux, and web, and has an editor on mac. Unfortunately, it's pretty terrible in availability of tutorials, but the forums are really helpful.
Logged

Do I need a signature? Wait, now that I have a Twitter I do: https://twitter.com/theimpmaster
skittlefuck
Level 0
***



View Profile WWW
« Reply #9 on: October 29, 2014, 12:43:53 AM »

Could you clarify if you're looking for a developer and want to establish what tools you want them to use, or if you want to program this yourself? If the first, you might want to leave that to the developer to decide.

Yea, sorry for the bad response time, what I mean is when I go looking for a programmer, what would be the best tool to want a 2d platformer to be made in that they can use (and obviously, I'll ask the programmer beforehand 'can you use so-and-so programming language').

@Impmaster
Well scratch that idea then.

Oh... good point, I didn't think of that : (. Well, the main idea was that I was going to make a sort of snapshot of a bigger idea for a game that I had in mind, with the demo not being too ambitious so I was thinking that if I do manage to finish the little demo then I could think about where I could take it from there -- I was hoping that if I were to make a full game after making the demo, it would be more or less the size of cavestory but now that you mention that I think I'm going to have to re-think a lot of things  Sad

I'm actually using linux, which I really shouldn't be using for the stuff I want to do ;P

« Last Edit: October 29, 2014, 12:54:53 AM by skittlefuck » Logged

skittlefuck
Level 0
***



View Profile WWW
« Reply #10 on: October 29, 2014, 12:56:23 AM »

If you decide against HTML, Unity and C++ (using something like SDL 2.0 or SFML) are both viable options, I guess, but obviously C++ can be a heavy load if all you know is a little Python. Do give Unity a try. Less programming, quick progress and a bunch of helpful visual tools for the beginner. It's like Game Maker, except modern. :p

Oh no, I won't be the one coding, only design and art. I was taking a look at haxe though, it seems you can do a lot of stuff with it (and it compiles into a lot of other platforms http://haxe.org/documentation/introduction/compiler-targets.html), if I were to go looking for a coder I was thinking about asking them if they could use it since it can compile into so many things, and there's an engine called Flambe that I just found that makes it really easy for an artist to swap assets in and out with ease. But yea, no coding for me.
Logged

oahda
Level 10
*****



View Profile
« Reply #11 on: October 29, 2014, 01:05:58 AM »

Oh. Well, then I agree on letting your chosen coder pick the tools, so long as they'll be able to export to your desired targets. So just state your desired target systems, and you'll be able to find more coders, using different tools, that may all still be able to produce the correct end result.
Logged

Dacke
Level 10
*****



View Profile
« Reply #12 on: October 29, 2014, 01:36:28 AM »

I'll try to illustrate why you should ask for results rather than for specific tools to be used. Here is a list of hundreds of game engines in different languages, most of which are cross-platform.
http://en.wikipedia.org/wiki/List_of_game_engines

If you find a programmer that uses any one of those (or their own cross-platform code) you're set. No reason to narrow it down beforehand.

Also, why not Linux? I'm a Linux-only person, works fine for me Smiley
Logged

programming • free software
animal liberation • veganism
anarcho-communism • intersectionality • feminism
Impmaster
Level 10
*****


Scary, isn't it?


View Profile WWW
« Reply #13 on: October 29, 2014, 02:57:05 AM »

If you are only going to design and art, maybe you should just go straight to the collabs section of these forums and see if there's someone who wants to try jamming a bit with you. Also, if you've never made any games, remember that it takes a lot longer to do anything than you'd expect, especially if you make mistakes.
Logged

Do I need a signature? Wait, now that I have a Twitter I do: https://twitter.com/theimpmaster
shellbot
Guest
« Reply #14 on: October 29, 2014, 03:07:20 AM »

I'm once again charging in without reading anything but the first comment Gomez


First let me just get this out of the way:
DO NOT try to make a Cave Story-like for your first game. It took Daisuke Amaya (Pixel) 5 years to make Cave Story, and it was not his first game. Start on a smaller scale, build from there.

Anyways, besides all that, my recommendation is Python+Pygame. I am using it for Over Yonder and I love it. It is easy to start up and get running, cross-platform, and Python is a pleasure to program in. However be warned that Python is a bit slower, even though I love it I know I will have to change my workflow for my next project.

On the other hand I find that making web games is exponentially faster and easier than desktop games. My first game was made using AS3 and the FlashPunk library (great for beginners). That's another option for you.


Oh and one last point. Stay the fuck away from C++ for your first game. I don't think anyone has mentioned it, but it is a trap that a lot of starting devs fall into because it's 'popular'. Yes, it is that widest used language in AAA studios, but we are not AAA and we do not have entire teams devoted to debugging. Steer clear of that shit for now, unless you have a lot of prior experience with it.
Logged
skittlefuck
Level 0
***



View Profile WWW
« Reply #15 on: October 29, 2014, 04:46:48 AM »

I'll try to illustrate why you should ask for results rather than for specific tools to be used. Here is a list of hundreds of game engines in different languages, most of which are cross-platform.
http://en.wikipedia.org/wiki/List_of_game_engines

If you find a programmer that uses any one of those (or their own cross-platform code) you're set. No reason to narrow it down beforehand.

Also, why not Linux? I'm a Linux-only person, works fine for me Smiley

Wow thanks a lot for that link, there's so bloody many :O! That list does help give a clearer picture of everything though.

But for linux, I'm always breaking it by accident or it starts to slowly deteriorate, then again there's a lot of hardware issues which probably make up 90% of the problems Tongue. I did install for the millionth time again though, this time to ubuntu gnome which is easier to use than the last distro (before it was arch linux, which didn't go too well ;P). Right now my current distro is all messed up though, weird things happen randomly :l (but re-installing and picking a new distro is always fun, so I'll probably be doing that soon).

If you are only going to design and art, maybe you should just go straight to the collabs section of these forums and see if there's someone who wants to try jamming a bit with you. Also, if you've never made any games, remember that it takes a lot longer to do anything than you'd expect, especially if you make mistakes.

Yeah, I'll definitely be posting there! I have done two collabs before though so I guess that counts for a little something, the first being with a team of 7 peeps but it fell apart when everyone became a bit inactive. You're right though, I'll have to re-think some things since making a game does seem to be a very long process. Will be posting to the collab sub-forum for sure though!

I'm once again charging in without reading anything but the first comment Gomez


First let me just get this out of the way:
DO NOT try to make a Cave Story-like for your first game. It took Daisuke Amaya (Pixel) 5 years to make Cave Story, and it was not his first game. Start on a smaller scale, build from there.

Anyways, besides all that, my recommendation is Python+Pygame. I am using it for Over Yonder and I love it. It is easy to start up and get running, cross-platform, and Python is a pleasure to program in. However be warned that Python is a bit slower, even though I love it I know I will have to change my workflow for my next project.

On the other hand I find that making web games is exponentially faster and easier than desktop games. My first game was made using AS3 and the FlashPunk library (great for beginners). That's another option for you.


Oh and one last point. Stay the fuck away from C++ for your first game. I don't think anyone has mentioned it, but it is a trap that a lot of starting devs fall into because it's 'popular'. Yes, it is that widest used language in AAA studios, but we are not AAA and we do not have entire teams devoted to debugging. Steer clear of that shit for now, unless you have a lot of prior experience with it.

Yea that's the vibe that I'm getting from a lot of chaps, and I'm definitely not going to make it on the scale of cavestory Tongue (I can still dream though  Cry )

Oh, well that is a useful tip, I didn't know the speed for web game development was faster (still considering whether I want it to be a web game though, it does seem that developing a web game does have a lot of advantages, especially if it's for a platformer).

In regards to using C++, I'm going to heed Dacke's advice and look more what results the soon-to-be-coder can give me rather than focusing on what language they will be using.
Logged

Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #16 on: October 30, 2014, 06:08:16 PM »

Just to again drive the point home. It's an incredibly bad idea to tell a developer what to use when you're not yourself also working on the code. Even if there weren't this many game engines, any developer is going to resent you for telling them what tools they should use when you're not working on the code yourself as well.

On the note of C++ vs something like FlashPunk. It's not that web based games are faster to develop, it's that the tools are much higher level and require way less boilerplate, which is the case for any higher level language.

As an example, here's a function I dug up from some of my old C++ code:

Code:
bool Units::UnitExists(UnitID unitId) {
for (std::unique_ptr<IUnit> &unit : m_Units) {
if (unit->ID == unitId)
return true;
}

// Not found, return false
return false;
}

And here's the same function rewritten in C#:

Code:
public bool UnitExists(int unitId) {
// Hurray for LINQ
return _units.Any(u => u.Id == unitId);
}

Even with C++ Reactive Extensions it still isn't as nice:

Code:
bool Units::UnitExists(UnitID unitId) {
// I don't actually know how RxCpp works but probably something like this
return rx::any(_units, [unitId](IUnit& unit){return unit.Id == unitId});
}
Logged
Trash_Empire
Level 0
***



View Profile
« Reply #17 on: October 31, 2014, 06:34:41 PM »

A good cross compiling framework is Haxepunk and HaxeFlixel. I would definitely recommend this to beginners, because it teaches all the basics of game development in an easy and fun environment. Haxeflixel is more geared towards platformers, and HaxePunk is for more general use, I would recommend HaxePunk more, but they are both good. These come from two frameworks called FlashPunk and Flixel, which are AS3 libraries. If you want to go even lower level than that,but not too far down, then just Haxe and OpenFL. Good Luck. Smiley
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic