So excited yet so uneducated..

Started by
6 comments, last by Spool 8 years, 8 months ago

Hello everyone who decides to read this,

I'm just going to get into it. I want to make games. I'm not stupid, I know how much learning and hardwork making even a simple game will take. I have very very basic knowledge of c++ and html. But I'm very willing to learn. Have considered getting into programming for the last five years, but I knew how much there is to learn and how much work I would be getting myself into so I mostly just looked around and read stuff on people getting into game development. Not too much acctual programming. But now I am ready to dive in. All the way, 100%. I'm in a position where I have alot of free time and I am ready to fill it up. I guess the best place to start is to say what type of games I would really like to make. I am a huge fan of any type of strategy games. Red Alert and Red Alert 2 completly changed my life and have been playing games ever since I tried those. I also like survival games, was/am very into minecraft and the whole survival hype of current times. So those are the genres of games I will be making. To start off I want to go very very simple. 2d tile based maps no fancy graphics. I want to put most of my efforts into gameplay rather than graphics. I am naturally artistic and feel creating graphics for games will come more easily to me as I go than acctuall development. A great example of the types of games I would like to make is UnReal World. It's a very simple looking game with great mechanics behind the scenes. So I really need a place to start. I know nothing of which languages and engines will be best suited for my desired games in mind. I know that UnReal World is made with SDL and I think the developer uses C or C#. Not really sure. But I have heard negative things about SDL. So in a nutshell im asking which language and engine to go with that language would you guys suggest for the intended games I have in mind? Preferably one with a decent amount of tutorials to help with the learning curve. Anyway, I thank you for taking the time to read this and if you do respond thank you in advance for you're advice!

-Spool

Advertisement

You can make that game with any language/engine. That's the glory of programming.

However, to start your endeavor into game development. Make simple stuff. Start off with number guessing games. Then work your way up to stuff like Pong, or Breakout (Arkanoid). And build your way up. It may take a while, but that's just what you have to do. There isn't much you can do to get around this, unless if you are somehow gifted.

Welcome to GameDev.net and to programming in general!

If you already know C++ and if you want to stick with it, SDL is a great API. I also like SFML alot.

As for what language "for the intended games" you have in mind - pretty much any major C-derived language can handle that (C, C++, C#, Python, Java, Javascript). Game genres usually don't much affect the choice of language.

Whichever you choose, I strongly suggest you commit to sticking with that language for at least a year - don't bunny hop between languages, but pick one and go deep. Eventually you'll learn many languages, but it's important you go deep enough in a language to get beyond the surface syntax - and that can take awhile.

As for "what engine", my opinion is you shouldn't use an engine for basic 2D games. Other people's opinions may vary. wink.png

Thank you both for you're replies. @TheCanadianVendingMachine: Yes I totally agree and understand. I know that I will not realisticly be able to start off making the games I truley want to make. I was just trying to give some insight into the desired types of games I intend to make after learning what I need to learn. And again thank you for you're reply.

@Servant of the Lord: Thank you for the warm welcome! I understand. So SDL is okay then? Would you say it is beginner friendly? Also out of those languages you listed which would you say is the most beginner friendly and "easiest" to learn? I have read that alot of colleges use Python as an introductionary language when teaching students to progam. Which would you recommend?

After reading you're post in the link provided I understand more what you mean. I guess in my original post I should of said for the games I "eventually" intend to make (strategy and survival games" what engine should I use. As for awhile I will be making simple things that dont really require an "engine". Again thank you very much for you're response.

I would also like to add that I dont plan on making games for money for a very long time. I have plans to go college to get a degree in multiple feilds of developing software but for me at this time that is pretty far down the road. For multiple reasons. At this time I am purely doing this because it is something I have always wanted to do and from the little bit of code I have learned and done I enjoy it very very much.

SDL is simple enough, imho. I would recommend that you write a simple game as TheCanadianVendingMachine suggested in C++.

Python has very different ideas about values and programming styles (which are all very interesting, so by all means dabble a bit in Python too), but you make things more difficult for yourself if you too many new things at the same time.

Have fun, learn loads, and enjoy the journey :)

So SDL is okay then? Would you say it is beginner friendly?

Yes. Both SDL and SFML are as "beginner friendly" as a C or C++ library can be.
Either one is a good choice if you are using C++.

Also out of those languages you listed which would you say is the most beginner friendly and "easiest" to learn?
I have read that alot of colleges use Python as an introductionary language when teaching students to progam. Which would you recommend?

C++ is the "hardest" mostly because it has fewer standardized functions available to use right out of the box (you have to supplement it with third party libraries - which is a strength when you are experienced, but a difficulty when you are starting out), and it's harder because C++ has thousands of corner cases that even after 10 years of programming with C++, you still frequently go "I never knew that!".

Python is easier to learn than C++, and maybe people recommend it for beginners, but some people disagree that it's the best choice for beginners.

For myself, I started with C++ as my first language, and I've stuck with it for 10 years. It's been a bumpy journey, but I intentionally chose to take the harder route because it fit best with my long-term goals.

I've dabbled a bit with Python and Javascript, and since I already know one C-derived language deeply, it's very easy to just jump into another, but mostly I stay with C++ for the projects I work on.

Out of the six I mentioned: C, C++, C#, Python, Java, Javascript
C-language - I wouldn't recommend C as your first language. Not because it's harder, but because all the other languages offer more. This language is basic and stripped down. The other languages I mentioned started with C, and said, "How can we make this better?" and went in different directions to do it. Historically it's important, and educationally it teaches you some important paradigms - but you can learn those same paradigms in some of the other languages also, so it really isn't ever necessary to learn.

C++ - The hardest, because of all the corner cases, but the de-facto standard of game development and console development. It'll take you longer to get to the same destination as the others, but you'll be more knowledgeable when you get there. C++ is the workhorse of the gaming industry.

C# - I have no personal experience with C#, but from what I read it's a decent language to start with. Mostly it's recommended for tool development (game editors and desktop applications), but it can be used directly for games.

Python - Easier to learn, can be used effectively; often paired with an engine written in C++ when doing 3D games, but works fine for 2D games. Eve Online uses Python, paired with a C++ engine.

Java - I dislike it, and I dislike when games or software are written in it (even when I like the games themselves - like Minecraft or Runescape). It's very easy to write slow code in any language, but in Java it's very easy to write mind-numbingly slow code. However, it runs in browsers (if the plugin is enabled), on desktops, and on Android smartphones. It's the official language of choice for Android. Chances are, your microwave, refrigerator, coffeemaker, and car are all running Java if they were made in the past 10 years.

Javascript - Often used for webpages or games running in the browser, client-side. If using it for games, you'll need to pair it up with HTML5, which shouldn't be a problem. While Javascript has been around for awhile, HTML5 is still at the early stages of support - things will work, but may not be super fast yet.

So which should you use?
For your first language, it doesn't particularly matter if it's not "the right language" for your eventual goals, it's far more important that you learn a language rather than worrying about which language.

Personal computing amongst consumers is increasingly moving to smartphones. If smartphones are your target, you probably want to start with Java.

However, software in general is increasingly moving to the cloud as SaaS (Software as a Service). Javascript likely will continue to be relevant as a client-side language, and C++ will increasingly be used as the server-side language (alongside Python and some Javascript and many others).

Python is probably the easiest to learn, but it's not just a baby language you'll discard later - it's very good for scripting stuff to automate on your computer and is a useful tool to know in-general. I wish I had the time to devote a month or two to learn it deeply enough so I can leverage it more readily when I need to automate something.

Learning Python will probably be the quickest route to making simple 2D games.

C++ will always have use for the foreseeable future, but it is the most complex - by a significant leap. If you choose to learn C++, you need to know that you'll hit tougher walls, and more frequently, than the others. And even when things seem to be working, you'll be told by me and many others that you're doing it wrong anyway. C++ has many ways to do things, and 90% of them are "the wrong way". If you choose C++, you'll find the right ways primarily by trial and error. C++ is like trying to find your way through a maze, with people who've been through the maze sitting on the walls occasionally telling you to "turn left here" - but you'll have to ignore the twenty people still in the maze with you, telling you to turn right, because they haven't yet discovered that 'right' is the wrong route and it 'seems' to be working for them.

But again, even if you make the "wrong choice" of what will be important ten years from now, it doesn't really matter - as long as you learn any language, it is much easier to learn a second one, and even more easy to learn a third. The important thing is to choose one, and go deep in it for two years or more.

Note: If this comes of as slanted in C++'s favor, that's because I'm biased as a C++ developer. wink.png

Thank you all very much for you're feedback. I have joined the chat here on GameDev.net and have gotten alot of useful help and guidance as to where I should start. It's a long road ahead of me before I can do what I ultimately want to do. But with the help of alot of people on GameDev I am most importantly ON that road. Which I think is probably one of the most important steps in making games. So thank you guys for your help. It is much appreciated.

This topic is closed to new replies.

Advertisement