Programming languages for making games

Discussion in 'Tech Discussion' started by Mr Pancakes, May 28, 2017.

  1. gheist1234

    gheist1234 |Path Finder| 『WuxiaWworld Vet.』|Beardy| |Zen|

    Joined:
    Jan 18, 2016
    Messages:
    583
    Likes Received:
    810
    Reading List:
    Link
    ohh didn't know about that... thanks~~ will try it soon
     
  2. jgfenix

    jgfenix Well-Known Member

    Joined:
    Feb 1, 2016
    Messages:
    379
    Likes Received:
    149
    Reading List:
    Link
    Do you all really think that a newbie should try something like Unity for his first adventure in game programming? The logical is trying something simple (and 2D) like Tetris and Flappy Birds.
     
  3. Mr Pancakes

    Mr Pancakes Well-Known Pancake

    Joined:
    May 9, 2016
    Messages:
    670
    Likes Received:
    326
    Reading List:
    Link
    I do want to make a 2d game. First something simple like you already said thank something more complex like a 2d rpg or something like that
     
  4. Wing0

    Wing0 Well-Known Member

    Joined:
    Oct 23, 2015
    Messages:
    181
    Likes Received:
    52
    Reading List:
    Link
    Depends on which IDE you want to make your game in...
    Java : Android Studio / Eclipse
    C++ : Unreal Engine
     
  5. keklel

    keklel Well-Known Member

    Joined:
    Apr 27, 2016
    Messages:
    434
    Likes Received:
    169
    Reading List:
    Link
    You could always use an emulator.
     
  6. Ai chan

    Ai chan Queen of Yuri, Devourer of Traps, Thrusted Witch

    Joined:
    Nov 7, 2015
    Messages:
    11,278
    Likes Received:
    24,346
    Reading List:
    Link
    If you don't know the first thing about programming and you just want to make a simple Adventure RPG game, don't bother learning programming language. You will get bored from the hassle of having to learn all those stuff just to make a simple game which will probably last you only several hours. Then you're left with an empty feeling of "Now what?"

    Instead, take up one of those game engines that can do what you want to do. Look around, there are plenty of game engines that you can use.

    1) Ren'py - A visual novel game engine. It runs on python scripting language. It's kind of limited, in that it doesn't allow real-time movements. For battles, it's always turn-based. The engine doesn't support real-time battles. If this is fine with you, give it a try. Pretty easy and the community is huge and very helpful. Freeware. It's predecessor were used to make almost all the Japanese visual novels you see on the market, some recent visual novels still use a modified version of its predecessors.

    2) Tyranobuilder - Also a visual novel game engine. Just like Ren'py, it doesn't allow real-time actions, but it runs on javascript (which they called tyranoscript). You can export the stuff into web applications, androids and iOS. Unfortunately, the engine is still juvenile, there are lots of bugs and features not yet implemented. If you want to see an example, go to Hugs & Love translation of A Warrior Begins Life In Another World Chapter 1 Part 1 in NU listing. The reader was programmed in tyranobuilder. Unfortunately, due to a certain bug, many android users complain of it not being usable by them. Desktop browsers and iOS work fine, though. Buyable on Steam.

    3) Construct 2 - This is one of the most popular and easiest to learn 2D game engine that can do pretty much everything you can think of. It runs on HTML 5, so it's perfect for web applications. You don't need to know any programming language, as it's drag and drop, though you can also code it yourself if you want. Knowledge of object-oriented programming helps optimize your game even if you don't know any programming language. It can also be exported to android and iOS. Real time or turn based is easy with this. The community is large and very helpful. Tutorials are also plenty. Has a one-time fee, but after you paid it, you receive free upgrades for life. Construct 3 is being developed and once it's done, Construct 2 may be even cheaper or even become free.

    4) Stencyl - Personally, I've never used this engine, but I've heard of people who use it claim that its performance is better than Construct 2.

    5) Game Salad - An android game development engine. You can do pretty much everything Construct 2 does much easier, but it can't make desktop games. I'm not sure if it can even make a web application. Price is pretty steep and you have to pay it every month or you won't be able to run it as the whole program requires internet to function. There is a one-month trial period though, if you think you can finish developing the game in a month.

    6) Unity - The go-to engine for every noob who wants to make a game but doesn't want to learn programming language in depth. It's chock full with features, can make both 3D and 2D games and can do pretty much everything your mind can imagine. It has a huge library of assets, some of which are free, but most of them are premium. There's also a healthy community that will help you if you have any problem. Unfortunately, since it's an engine that gives noobs the power of God at their fingertips, the games made from Unity engine often suffered from bugs, performance issues, crashes, memory leaks, overheats your laptops and have high systems requirements.

    It's not entirely Unity engine's fault, it's simply because Unity is very attractive to noobs and Unity has no stopgap that prevents noobs from completely messing up their own games. If you often buy Greenlit or Early Access games from Steam and you regret buying it because they're either unfinished, buggy, leaks memory or uses large CPU or GPU capacity, chances are, they were games made in Unity.

    Please be aware, Unity is NOT an engine for beginners, no matter how much they try to advertise that. You need to first understand game making methodologies before you can use Unity. Object-oriented programming, asset management, memory management, CPU and GPU optimization and statistics monitoring and all the stuff game design students learn in their 2-3 years in university are needed before you can use Unity effectively. Noobs only want to make games that look awesome and filled with dizzying array of features. They failed to realize that almost 90% of the people in the world can't play their games even if they want to.

    Now, if a professional with good knowledge of programming use Unity to make their games, however, the games can be very good.

    7) RPGmaker - The go-to engine for people who want to make adventure RPG games. It's easy to learn, responsive and can me modded to suit your needs. It's 2D, though I heard the new RPGmaker MV can also make 3D games, I can't say for sure. The last RPGmaker version I used was VX Ace. The new RPGmaker MV can also be ported to android and iOS. The problem with PRGmaker is in the rights granted to you. Basically, if you use their assets such as the character generator, they can sue you if you sell the game without getting some kind of commercial license with them. The engine is not free, and pretty hefty for the price you have to pay, but at least you only need to pay once.

    8) Gamemaker - From the same people who brought you RPGmaker. It much more versatile that RPGmaker. I don't know how it is now, but when I used it 10 years ago, the games made from this engine was clunky, suffer from performance issues and didn't look very good. I have heard good stuff about it in the past two years, though, so maybe they have fixed the flaws in the previous versions. Not free.

    Also, don't use assembly language to write your games. There was this guy who made a game from scratch in assembly which in theory would've made a game so responsive and optimized that you could only feel wowed. The problem is, it's been over 10 years and we have not even seen a peek of the game yet. You'd probably die of old age if you use assembly language to write your games.
     
    Last edited: Jun 17, 2017
    udonsage, Recouer and Mr Pancakes like this.
  7. Akken

    Akken Well-Known Member

    Joined:
    Dec 22, 2016
    Messages:
    160
    Likes Received:
    97
    Reading List:
    Link

    A few examples of good Unity games: Kerbal Space Program, Hearthstone, Pillars of Eternity and Sunless Sea. Four completely different kinds of games all made in Unity which, cumulatively, shows the potential power of the engine.
     
    Mr Pancakes likes this.
  8. Ai chan

    Ai chan Queen of Yuri, Devourer of Traps, Thrusted Witch

    Joined:
    Nov 7, 2015
    Messages:
    11,278
    Likes Received:
    24,346
    Reading List:
    Link
    Yes, and all of them (except for Sunless Sea) suffer the need to run powerful computers and lags terribly if your computer is even outdated by a few years. When they don't even need to. In the case of Pillars of Eternity, it's made by Obsidian Entertainment, a very experienced game developer, which is not a newbie developer.

    As for Sunless Sea, it's a simple top-down 2D game. Not much wrong can happen with it. In the case of Kerbal Space Program, it can't be helped, it was designed from the very start to be pretty. And that's all fine, they've done very good job of eliminating trash assets from clogging the memory. However, this is not a simple job, and most new developers don't even know this problem exist with Unity, because they can't understand why this is a problem. Only after their game is finished do they realize that a simple game that shouldn't take more than 2GB memory to run ends up eating 6GB of memory before crashing and they don't know why that happen.

    All of these are good games, sure, and I'm not saying Unity is a bad game engine, as I mentioned in the post you quoted. I'm talking about noobs and how they get the power of God at their fingertips and not knowing how to use it, thus creating terrible games. Unity teachers noob game developers bad practices that ultimately made their games unplayable to 90% of those who own a computer.
     
    Mr Pancakes likes this.
  9. Akken

    Akken Well-Known Member

    Joined:
    Dec 22, 2016
    Messages:
    160
    Likes Received:
    97
    Reading List:
    Link
    Oh I agree, I was mainly quoting as reference and mentioning games which are generally considered good that many people may not be aware that they are made in Unity to enforce the point that in good hands Unity can develop a quality product. Honestly, I don't play any of them myself.

    Speaking to the bad habits you say it teaches people to make. That is why I personally believe that people (especially on computer science/programming courses) should begin programming with C. It creates a steeper learning curve but it makes it much more likely to instil good practices from an early point by generally being less forgiving than later languages (especially ones which manage memory for you).
     
    Mr Pancakes and Ai chan like this.
  10. Needhydra

    Needhydra Everything is on Fire

    Joined:
    Jan 19, 2016
    Messages:
    171
    Likes Received:
    81
    Reading List:
    Link
    I am just going to add pick the engine that supports the features that you want and make like 3 half complete crap games before you make the game you want to make. DO this by LOOKING at the types games that do well on the platform.

    A bit about UE4 vs Unity because this shit comes up a lot they are for different crowds as shown in their showcases. As such they support different features and have different monetization schemes. Also 3rd party tends to fill in holes that either engine is lacking. Both through 1st or 3rd party have ways to avoid programming with a drag and drop node system.

    ps im pretty sure unity is not targeting beginners specifically but rather indies which a large portion have no idea what they are doing as they just starting out.
     
    Ai chan and Mr Pancakes like this.
  11. Needhydra

    Needhydra Everything is on Fire

    Joined:
    Jan 19, 2016
    Messages:
    171
    Likes Received:
    81
    Reading List:
    Link
    Make a paper prototype it should have the core game play loop and some supporting systems that you want. grab some friends and play it. since you want to make a rpg make a tabletop rpg just keep the rule set small at first. So i suggest learning how to gm tabletop rpg. A easy way to do this is on roll20.com if you have no friends, you should have some experience playing the game you want to gm first so you know the rules. then after you groked the rules hack them and see what happens so you learn why a game designer made the game that way.

    Another tip is have a design doc(its kinda required) and write down somewhere: what you must have in the game, and what you like to have but is not mandatory. Also learn how to do statistics and probability and dust off that excel(so much work is done in excel), sheets is good if you are colabbing but excel has vba which can help if you or someone else spends sometime writing custom scripts to export or do other things as needed.
     
    Mr Pancakes likes this.
  12. ZhaWarudo

    ZhaWarudo TOKI WO TOMARE!!!

    Joined:
    Dec 30, 2015
    Messages:
    4,060
    Likes Received:
    1,543
    Reading List:
    Link
    Q Basic
    jk, c++ is not used for making games generally, I mean you can but I think no one does it, and I'm sure everyone told you already about unity and other stuff so yeah, good luck. Do note for any original game, not just click and drop, you need to spend dozens of hours watching tutorials and practising, making games I guess can be fun, but getting to the part where you learn how to do it is not fun, well unless you're nerdy and like that shit.
     
    Mr Pancakes likes this.
  13. chucke

    chucke Going towards the glorious future

    Joined:
    Jul 31, 2016
    Messages:
    908
    Likes Received:
    443
    Reading List:
    Link
    Unreal Engine and its Blueprint. No need for all that C++ (because its learning curve is infinite) at all at least for the beginning.
    Within couple of hours you will be able to create something like (literally spend < 6 hours to make this with zero knowledge in UE and no code at all)
    https://drive.google.com/open?id=0B7Tv39Adsad5VU9JR2VINjN2SUE
    (disable sound)

    For the work...I suggest Java with Libgdx for example. Best of both worlds and Java is popular and easy to find a job. (If you really want close to pure OpenGL experince - you can use LWJGL which basically OpenGL for Java)

    Out of all third generation languages (I mean C++, C# i.e that are used nowadays vastly) it has lowest threshold (for certain reasons - it is just like Pascal in that regard). C++ is really hard and you will need rather high level to find a decent job. Also the book for it will be close to 1500 pages soon lol. And that is for core only. (without Boost etc.)
     
    Last edited: Jul 12, 2017
    Mr Pancakes likes this.
  14. NastyOlRoshi

    NastyOlRoshi Well-Known Member

    Joined:
    Jul 25, 2016
    Messages:
    75
    Likes Received:
    108
    Reading List:
    Link
    Sometimes learning how the gaming engine works can be more beneficial than studying programming languages. Especially nowadays where you can find all sorts of tutorials (youtube and blogs), scripts (forums) and full projects (github). Speaking for myself, the most important part is the 3D Art. So I became proficient in Modeling/Motion Designing/Sculpting.

    My advice to you Sir is downloading Unity3d and following couple of tutorial courses.

    I'm sure there are a lot more cool dudes out there doing good work but I just happened to start with those two below.
    https://www.youtube.com/user/JesseEtzler0/videos
    https://www.youtube.com/user/AwfulMedia/videos

    If you ever decide to do something on your own and you need help with making it work properly, look into the unity3d sub-reddit and Unity3d forums/Unity3d Answers. There are tons of people there that will gladly help you as long as your request is reasonable.
     
    Last edited: Jul 14, 2017
    udonsage, MrSplashy and Mr Pancakes like this.