Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

878738 Posts in 32935 Topics- by 24343 Members - Latest Member: Good Enough Games

May 22, 2013, 01:59:08 PM
TIGSource ForumsDeveloperTechnical (Moderators: Glaiel-Gamer, ThemsAllTook)Feasibility of Unity 2D Development
Pages: 1 [2] 3
Print
Author Topic: Feasibility of Unity 2D Development  (Read 2002 times)
Oskuro
Level 2
**


Coding in Style


View Profile WWW
« Reply #15 on: August 02, 2012, 12:20:58 AM »

Multiple implementations of it mean that unless you're using mono from the get-go you might face portability issues down the line.

Or, in other words, C# is part of the .NET package, and thus a Microsoft product tied to their OS (unless you use third party APIs like mono), so it is best if you intend to stick to MS Operating Systems exclusively.

In the long run, I think you need to be clear about your goals. If you want portability, no matter what language you choose, you code will need to be structured to allow said portability, which is a challenge on its own right.

If you don't need portability, explore the system-specific APIs and their associated languages, and choose whatever suits your needs best.

There is no universal "best" programming language. They are just tools.

Making the leap from GML to C++ would be a pretty big one.

Very big one. Learning Java might be another good introduction. It is rather intuitive, faster to develop, and has a plentiful reference/tutorial library on the net. It is also a simplified version of C++, so it's a decent stepping stone if that is your goal.
Logged

RyanHuggins
Level 1
*


View Profile WWW Email
« Reply #16 on: August 02, 2012, 04:08:51 AM »

In the long run, I think you need to be clear about your goals. If you want portability, no matter what language you choose, you code will need to be structured to allow said portability, which is a challenge on its own right.

Well, ultimately my goal is to work on multi-platform indie games. So, ideally, I would like to be able to create games that can run on a PC initially, but are relatively easily ported to other platforms like Mac, or even a mobile OS (which I would probably recode for usability purposes anyway). I'm not sure if there is an environment that fosters this desire, but honestly, I'm pretty interested in just about all platforms, which might be an issue for me, haha. I would like to however, focus on new platforms during my time in college so I don't exit college with only knowledge in one platform/programming language. Granted, I don't PLAN on being a programmer either, I just hear that it's good knowledge to have as a designer.

If Flash and Haxe can handle the video of the project ( http://youtu.be/BKomG-BBRfo ) I posted (with upgraded, but still 2D graphics) then I will look further into FlashDevelop (which I have downloaded) and make attempts to learn the language. It doesn't seem to be too hard and tutorials for AS3 are pretty abundant if I can't deal with Haxe. I am interested in non-browser-based deployment as well for this project though and I'm not sure if that would work with Flash and Haxe. Presuming it won't, I'll still work in it for a bit just to get the experience and distribute the game that way if necessary.

I am simply looking for a new, non-GM platform to make a 2D platformer in. The more useful the platform/language will be in the future or in the long-run, the better for me.

My options seem to be:

AS3 with Flash/FlashDevelop
Haxe with FlashDevelop <---Currently best option?
Java with Huh??
C++ with any number of engines, the only one I know being DarkGDK (any other suggestions?)
C# with XNA
Unity 3D with extensions for 2D usability

What advantages would I see over Flash in Java if I were to use Java? Would I have portability? Or would Flash be more "portable"?

HaXe is a whole 'nother kettle of fish. It can deploy to flash and native binary though so if that's your aim, it ticks the boxes.

I'm still not sure what deploying to flash and native binary means? Does it allow me to quickly port/compile into another language or something (which is what I gathered from reading about Haxe).
Logged

rivon
Level 10
*****



View Profile
« Reply #17 on: August 02, 2012, 04:18:27 AM »

C++ with SFML2 Wink
Logged
RyanHuggins
Level 1
*


View Profile WWW Email
« Reply #18 on: August 02, 2012, 04:53:56 AM »

Now assuming I did attempt to use C++ with SFML, what would I be expecting in terms of time spend learning?
Logged

rivon
Level 10
*****



View Profile
« Reply #19 on: August 02, 2012, 05:28:20 AM »

Probably more than with the Flash stuff but you get portability for free and if you ever decide to learn OpenGL then it's very easy with SFML as base for the application.
Logged
Oskuro
Level 2
**


Coding in Style


View Profile WWW
« Reply #20 on: August 02, 2012, 05:47:11 AM »

Well, ultimately my goal is to work on multi-platform indie games. So, ideally, I would like to be able to create games that can run on a PC initially, but are relatively easily ported to other platforms like Mac, or even a mobile OS (which I would probably recode for usability purposes anyway).

Yeah, I'm more or less at that point too. That's why I said that even then the code will need to be though out for portability, regardless of language.

In my case, I'm developing in Java to quickly prototype the game infrastructure, and then expect to port it to C++. In any case, to facilitate both the porting and the integration with different APIs, I'm designing the program modules to "plug-in" to the external system API, relegating most of the system/language specifics to an outer interface layer.

This of course means that, once I decide to release, I'll need to mangle my code to optimize it by tearing down all that abstraction and modularity.

It's a trade-off I'm willing to accept, though. Just keep in mind what trade-offs you can work with, and push onwards!  Beer!
Logged

RyanHuggins
Level 1
*


View Profile WWW Email
« Reply #21 on: August 02, 2012, 10:20:12 AM »

Well, I'm trying to learn Haxe with FlashDevelop right now, hopefully the few tutorials they do have plus the documentation will be enough for me. Once I feel well versed in Haxe or AS3, I think I'll move into Java for another prototype or move straight to C++ and SFML. Thoughts?
Logged

dbest
Level 0
***


View Profile
« Reply #22 on: August 02, 2012, 11:18:31 AM »

What will you do learning so much? Wink I often try to learn something new. The end result is that I do not create games. Sad
If you wish to create games, learn one language/tool/engine and stick with it, create a game or two or more.
Logged

EdgeOfProphecy
Level 2
**



View Profile WWW Email
« Reply #23 on: August 02, 2012, 11:39:15 AM »

Ehhhhhh.

C++ is a cool language, but you gotta think about what you need it for.

To be proficient at C++ is difficult, and takes time.  There's a lot to learn in the language, it's pretty complex, and I think it is difficult to teach.  The advantages of C++ are that its power, flexibility and portability are very strong, with the tradeoff of being a complex language that can be hard to leverage.

Learning C++ well can be a very valuable programming exercise, as it forces you to come to grip with a lot of programming concepts that appear in other languages.  Proficiency in C++ is also a good resume stuffer, and something that many companies look for.

However, if you're looking to just make games it is far from necessary.  Other languages are very powerful and can be far easier to pick up than C++.  Unless you're planning on pushing performance envelopes with your games it is highly unlikely that you'll need to use C++.  While it is portable, other languages are portable too.  Personally, I wouldn't recommend diving into C++ for someone who is just starting off programming, especially if they're learning on their own.  It can work, people do start off with C++, but I think it can be overwhelming and can discourage someone to the point where they lose their taste for programming.
Logged
Fallsburg
Level 10
*****


Fear the CircleCat


View Profile WWW
« Reply #24 on: August 02, 2012, 12:12:49 PM »

To answer your earlier questions:

I've only recently gotten into Haxe, having previously made games in AS3.  In my opinion it is a much better language, and the native deployment stuff is just icing on the cake.

If there are Haxe experts out there (I know they exist here at TIGS), they can correct me on the things below if I'm wrong.

To target different platforms you want to create an NME project in FlashDevelop. In the top bar there will be a drop-down box that lets you choose the target platform.  In terms of setting up a project with the Tilelayer (which you should do as it allows you to draw a ton of 2d sprites, particularly on mobile platforms), google Runnermark which will act as a decent source of how to set up a project with the Tilelayer.


Now, AS3 is a good option and a bit easier to dive right into, and you can create standalone executables if that is what you want (you can create a Flash Projector [essentially it binds together the Flash player and your content]).  You can also create an AIR application (essentially AS3 with a few extra tidbits) to create something that can be run on a mobile device, with no change in your code. 

My personal recommendation is to try out Haxe (and there are libraries out there like HaxePunk to make it easier) and AS3 (Flixel, FlashPunk, and Starling), and see what you like the most.  The technology you use to create the game is only so important, and finding something that fits your mental framework is at least as important as using the technically best option.
Logged

RyanHuggins
Level 1
*


View Profile WWW Email
« Reply #25 on: August 02, 2012, 03:58:15 PM »

What will you do learning so much? Wink I often try to learn something new. The end result is that I do not create games. Sad
If you wish to create games, learn one language/tool/engine and stick with it, create a game or two or more.

I will probably use the experience as leverage on my resume when I'm applying for jobs, though in the end I want to go indie, but I need funds to do that! Haha. I have 4 years of college to go through first anyway. I also need to try different languages/engines to see what I like best.

To target different platforms you want to create an NME project in FlashDevelop. In the top bar there will be a drop-down box that lets you choose the target platform.  In terms of setting up a project with the Tilelayer (which you should do as it allows you to draw a ton of 2d sprites, particularly on mobile platforms), google Runnermark which will act as a decent source of how to set up a project with the Tilelayer.


Now, AS3 is a good option and a bit easier to dive right into, and you can create standalone executables if that is what you want (you can create a Flash Projector [essentially it binds together the Flash player and your content]).  You can also create an AIR application (essentially AS3 with a few extra tidbits) to create something that can be run on a mobile device, with no change in your code. 

My personal recommendation is to try out Haxe (and there are libraries out there like HaxePunk to make it easier) and AS3 (Flixel, FlashPunk, and Starling), and see what you like the most.  The technology you use to create the game is only so important, and finding something that fits your mental framework is at least as important as using the technically best option.


Is the NME project the only way to target different platforms? I mean, I'm not terribly concerned, but I was wondering since I started with an AS3 project under the Haxe section. Now other Haxe-related question has to do with "Tilelayer". What is that? I presume it's some sort of library, but while I know where I can find it (sort of) I'm not completely sure how to implement it (newbie). Haha. Any information regarding this would be godsend. Tongue

And well, I did a quick tutorial with Haxe and FlashDevelop and it seems like a pretty decent language. I have to learn about the workflow and about real object-orientated coding though. Now, my other question is, is HaxePunk another code editor? So if I used that would I have to not use FlashDevelop?
Logged

nikki
Level 10
*****


View Profile Email
« Reply #26 on: August 02, 2012, 04:21:56 PM »

Quote
ow, my other question is, is HaxePunk another code editor? So if I used that would I have to not use FlashDevelop?

i believe HaxePunk is a way to write code (that looks like AS3 + flashpunk) but with the extra bonus of compiling(translating) it to different languages..
So it's no code-editor, but a framework.
Logged
J-Snake
Level 10
*****



View Profile WWW Email
« Reply #27 on: August 02, 2012, 05:58:44 PM »

To be proficient at C++ is difficult, and takes time.  There's a lot to learn in the language, it's pretty complex, and I think it is difficult to teach.
It's the easiest high-level language to understand properly.

To be proficient in any high-level language takes time, since the challenge is abstraction-design and not a particular general high-level language.
Logged
Geti
Level 10
*****



View Profile WWW
« Reply #28 on: August 02, 2012, 08:11:27 PM »

It's the easiest high-level language to understand properly.

To be proficient in any high-level language takes time, since the challenge is abstraction-design and not a particular general high-level language.
Sure, but there are higher-level 4th gen languages that handle a lot of the stuff that becomes bookkeeping to a C++ developer by default (eg java abstracts away linking using late binding (I think that's the term) and something 100% interpreted like lua abstracts away compilation entirely).

@OP
Honestly if you study programming at uni (or 'college' depending on your locality) you'll get taught a lot of this stuff whether you like it or not. Java was mandatory for first year stuff for me.

Just because C++ is industry standard for AAA engine development doesn't mean you need to learn it if the aim is to stay indie. Most players just want something they can click on or have load when they go to a web page, which you can do with HaXe, Java, Flash, HTML5, Unity, GameMaker, BASIC, C/++, .NET languages... Lots of things.

Learning something "lower level" improves your skills as a programmer, not as a game designer or necessarily as a game developer.

Your list of SOMELANGUAGE with SOMELIBRARY implies to me that you're not likely to be coding your own engine at this point, and just want to make games. In effect, this means the language should be as easy to work with as possible, and ideally something you already know.
You already know gamemaker. Unless you're running into performance barriers at this point, assuming you're just wanting to make games... Just stick with GameMaker.

If you want to learn to program more formally, then yeah you'll need to make the leap to some other language, but uh, jumping into a "harder" language and then using some other library because you don't know enough about the language to get going without it seems like an unnecessary headache that you're putting yourself through just because you think you "should".

Spelunky is in many of my friends' and acquaintances' "Top Ten Games" list. It's made in gamemaker.
Logged

RyanHuggins
Level 1
*


View Profile WWW Email
« Reply #29 on: August 02, 2012, 09:04:21 PM »

@Geti. That is a really enlightening response, though while my goal is ultimately to make games, a secondary goal is to improve my overall knowledge base within a coding environment. I am picking up a degree in game design with a minor in programming, so I honestly just want to be able to make my own games, but additionally communicate at an intelligent level with programmers I may work with. This sentiment extends to artists and musicians as well, but I wish to take it one step at a time.

The goal of all me asking these questions, despite barely having experience with "real" programming (or none at all for that matter) is that I do want to learn and improve! I figure the best way to start is by choosing a platform/development environment that best suits my needs for now and the future and working from there. I just wanted to move away from game maker to something that would force me to do new things!

Edit: It's also come to my attention that if I used Haxe and wanted to do a commercial release, I'd have to release my source code? I'm not sure of the details and while that's not an issue for the most part, how would that affect the deployment of my game on a flash-based portal or some other, non-computer-based platform?
« Last Edit: August 02, 2012, 09:22:45 PM by Ninjuit » Logged

Pages: 1 [2] 3
Print
Jump to:  

Theme orange-lt created by panic