Newbie: What program language should i learn?

Started by
12 comments, last by lilywolf 4 years, 7 months ago

Hi,

I want to learn to program games for PC and maybe Android. Sorry in advance if i don't know the correct terms.

 

The game i have in mind will be relative simple (at least that's what i hope). It should be turn based with a map and different locations the player can switch in between. At the different locations there will be simple minigames, sometimes withwith simple animations. There is a storyline, the player sometimes can chose between different outcomes. I would like to include character progression in form of attributes and an inventory and i also would like to include a battle system (turn based).

I've seen that there are some flash games out there who have similiar elements as i have planned for my game. The thing is, i don't know anything about flash and read, that it's not worth it to learn it anymore.

Since i have some basic skills in html and css, i thought it would be better to give html5 and javascript a try (i have to learn javascript though).

But iam not sure if it's really a good choice, since all html5 games i've seen so far are either actionshooters and/or have a really crappy graphics compared to flash games. In addition to that, i have no clue if the game i want to create is possible with either flash or html5/javascript. Another issue is, that flash needs adope flash and that's about 900 $ a year, money i don't have at the moment. It's a while ago, since i have made something with html and css, but i remember that there where a lot of problems with compatibility and the different browsers. I assume the same problems still exist and are true for games too?

I would be really happy if someone could enlighten me, what would be the best possibilities for me to get in the gaming buisiness. What would be the best way, and what do i have to learn?

Advertisement

You should get plenty of good feedback on this. I'll just offer a few thoughts to get you started.

Quote

Since i have some basic skills in html and css, i thought it would be better to give html5 and javascript a try (i have to learn javascript though).

Personally I think pursuing JS/HTML would be a good strategy (others may offer different advice though).

Quote

But iam not sure if it's really a good choice, since all html5 games i've seen so far are either actionshooters and/or have a really crappy graphics compared to flash games.

There's nothing about JS/HTML that pushes you towards action games specifically. I think if you've seen a preponderance of games in that genre, it's probably just incidental. As for graphics, that might be incidental as well. You can use WebGL with JS/HTML, which should certainly be able to deliver what you want and compare more than favorably to e.g. Flash. Even the HTML 2d canvas renderer can be sufficient in many cases.

Quote

In addition to that, i have no clue if the game i want to create is possible with either flash or html5/javascript.

Nothing you've described so far would be a problem with JS/HTML.

Quote

It's a while ago, since i have made something with html and css, but i remember that there where a lot of problems with compatibility and the different browsers. I assume the same problems still exist and are true for games too?

I think that's less true now than in the past. Also, there are engines such as Phaser that have been in development for a long time, are frequently updated, and take care of most of the details related to browser compatibility for you.

One nice thing about developing in a browser is that the development cycle is lightning fast. Make a change, reload the page, and you're good to go. No compiling or linking, no struggling with build systems, etc. It's very convenient, and the barrier to entry is low.

If you eventually want to target PCs and mobile devices, that will introduce some new elements. For a game like the one you describe, you might want to use a scripting system, and one of the options you have available for scripting languages is JS, which means even if you start working in a browser context, your work can still carry over to PC/mobile. There are frameworks that purport to allow for porting HTML-based apps as-is to PC/mobile, although I don't know how effective they are. You can also embed JS (or another language) while using Java/Kotlin/Swift/C++/whatever for framework code. There are also engines, like Cocos2d, that offer JS support out of the box. There's also Unity, which is very popular, but doesn't support JS (at least not out of the box).

Basically, you have many options available to you, but if you're just getting started, I think JS/HTML would be as good a place to start as any. (Just my opinion of course.)

1 hour ago, Gerhart said:

i remember that there where a lot of problems with compatibility and the different browsers. I assume the same problems still exist and are true for games too?

Things have improvement a lot in this regard, albeit at the cost of several new things to learn. The node.js ecosystem has a robust ecosystem of tools to help out with "poly fills" (basically, libraries that implemented unsupported features when running on older browsers).

1 hour ago, Gerhart said:

Another issue is, that flash needs adope flash and that's about 900 $ a year

Adobe Animate (as the Flash authoring environment is now called) is about $240/year. Which isn't cheap, but at $20/month probably won't break the bank either.

While the Flash player no longer has the reach it once did, Animate is often used to export to html5 (and/or standalone mobile apps), so it's not a terrible option.

1 hour ago, Gerhart said:

What would be the best way, and what do i have to learn?

Unity is definitely worth a look. While originally focussed on 3D games, they have recently made significant improvements to their 2D workflow.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

You may want to take a look at Kotlin. Kotlin is basically a "more modern Java". It is compiled to Java bytecode (i.e. Kotlin programs run wherever Java programs do, including Android) and it's fully compatible with the Java ecosystem, i.e. you can use every existing Java library and framework with it. Thus, while Kotlin is admittedly still new and somewhat "niche" as a programming language, it is in no way limited in terms of the things you can do with it. Compared to Java, Kotlin has lots of new features which enable you to write shorter, more elegant code and use a wider variety of programming paradigms. And it might even be a little bit easier to learn than Java, since its syntax is somewhat less bloated/verbose, leaning a bit towards JavaScript.

Hey Gerhart!

I don't want to waste your time, so I'll cut to the chase.

  1. HTML/CSS is not going to help you in game development.
  2. Picking JavaScript just because you're familiar with HTML is a very bad idea. JavaScript doesn't have anything at all to do with HTML and learning it will take the same amount of time as learning any other programming language.
  3. Flash is pretty dead. Last I heard, Adobe is dropping Flash support in 2020. And people just don't want to use it. If you want to specifically do browser games, then your best bet is HTML5/JavaScript.
  4. If instead you want to do PC/Android stuff, then there are A LOT of better options.

So, my suggestion is that you just pick up Unity and C#. It'll save you a lot of time and a lot of headaches. And it's free! Additionally, take a look at this pdf. I think it might help you out. :)

Here's a good tutorial for learning C#. It goes through the syntax, so I don't think you even need to understand everything to do basic scripting in Unity, but it's a good idea to watch it through so you have an overview of what's possible with C#.

 

 

Hi Gerhart and welcome to the wonderful, wacky (and sometimes a right pain in the derrière) world of game dev.

Javascript/HTML5 is certainly an option for creating games.  I created a simple mobile game a few years back using JS/HTML5 and Cordova and am now starting another project using NodeJS and ThreeJS to atempt to create a browser based first person survival game...

The best bit of Javascript is it's flexibility, giving you the ability to prototype things really quickly.  The worst bit..... is it's flexibility, meaning that those ugly, dirty prototypes you hacked together late one night while maxed out on Redbull end up as production code.  But as a beginner to programming I really wouldn't worry about that (and stay clear of the Redbull!).

However, having said all this... if you really want to focus more on the game design and less on the programming I'd advise going for something more like Phaser, Gamemaker (albeit there is a cost with this one) or Unity.

And as a final word of advice, don't underestimate how much is involved in creating a game.  Often, what may sound simple in your mind turns out to be really complex.  Fortunately we have the internet and sites like this to help us on our way these days.

Most of all though... have fun!  :)

 

 

 

 

4 hours ago, Ianuarius said:
  • Flash is pretty dead. Last I heard, Adobe is dropping Flash support in 2020. And people just don't want to use it. If you want to specifically do browser games, then your best bet is HTML5/JavaScript.

It's important to separate Flash-the-browser-plugin from Flash-the-authoring-environment.

The former is pretty dead. The latter (now rebranded as Adobe Animate) is a tool for authoring HTML5/javascript, and if you liked the Flash workflow, it's not a bad tool.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

20 minutes ago, swiftcoder said:

It's important to separate Flash-the-browser-plugin from Flash-the-authoring-environment.

That's a very good point. I didn't consider that. :)

Thank you all for the replies. I wanted to wait a little before i reply, because i wanted to check out some of the stuff you suggested.

I think Phaser or Unity would be a good way to chose for myself, but from what i have seen so far (i watched some tutorials and read in other forums about pros and cons), i slightly tend to Unity. I also stumbled over Godot, which is open source, has a MIT license and is set up especially for creating 2d games. The drawback is, there aren't that many tutorials and premade framesets available as e.g. for Unity and it uses it's own language (which is said, is relatively easy to learn). Maybe someone of you worked with Godot before and has some thoughts on that engine?

 

@ Ianuarius, thank you for the links, i have a better idea now what C# can do now, but it's hard for me to imagine how exactly it is used to solve specific issues in my game. But that i will found out if i should start to learn C#. Sadly i wasn't able to open the pdf, since a facebook account is needed and i quitted social media (and Red Bull^^) years ago.

So, i finally made a decision. I will use Godot and learn GDscript, the programing language of Godot, similiar to python. From what i've seen so far, creating 2d games in Godot has better tools (less time needed for the same outcome) than Unity, the user interface is well arranged, and i like it how the projects can be organized.

A big THANK YOU to all who gave me advice, even though i didn't chose anything that was suggested, it helped me a lot to check out the right game engines and make a decision.

This topic is closed to new replies.

Advertisement