• Is it wrong that I always considered all the Game Makers, Game Creators etc.. kind of a knock off? A
    9 replies, posted
Think it belongs in Programming section, bit of discussion/opinion that's been bugging me for past 4 years. Do you think it's wrong that I consider all them RPG makers, Game Makers and other Software which lets you "assemble" games and sell them kind of wrong? Like I would never consider making game or even looking into making one using: Game Maker, RPG Maker and pretty much whatever ends up with word "Studio" or "Maker" in it. However I would make and put effort into making game using: Unity, Source Engine, Unreal Engine, CryEngine simply because you start with basically blank page and there are no "puzzle pieces" to assemble game into one. Not sure if you understand what I mean but basically: Think it's wrong for me to consider all them game maker studios to be game knock offs which ruin quality of modern games? Btw I would also never consider people who use those studios as "Game Developers". Another thing: Anyone had this problem when you started programming and diving into all languages at first - to reinvent the wheel? For example, I am making website, I want images to be resized as users upload them - instead of downloading some already existing library that lets you do it instantly I would write my own resizing functions. Like in general - I hate reusing code which is already somewhere available. Anyone had this before? How did you deal with it or eventually made yourself utilize online resources? Like I am in college on my final year, making final project - Making online chat application across multiple platforms, instead of setting up server with already installed things like Apache and downloading some Chat Platform or CMS - I went the long way and got blank cloud server, installed and setup: MySQL, FTP, Nginx, Node.js, Socket.io, Express, Jade etc... which took me quite some time even though it was a big learning curve. Or in college - we were told to make android app, 90% of class used PhoneGap and got it done I went with the Native Android (even though I had no idea about it as I started, now I do) So basically did any of you reinvented the wheel when you were novice in programming? The reason it starts to bother me is because people seem to think I am always taking long path around something even though it could be made faster, and whenever I ask for help on Stackoverflow for example - I get suggested some already existing libraries and I assume that's bad answer instantly, so yeah this really bugs me.
Imposter Syndrome - The belief that any gains you have made were gotten through cheating, luck, or anything else not from your own hard work. I used to think the same way, but ultimately it's about the finished package, when it comes to a fun game, since the player can't tell the difference. If you're making a game to dick around, it's about learning, but if you're making a game because you want to make a fun game, do whatever you can to make the game.
This is obviously a subjective matter, but as a consumer, I care about the result. Who cares if it took 200 Ph.Ds to code a game or a 12 year old clicked it together in 10 days when the game is [I]fun[/I]? RPG Maker is a fairly solid JRPG engine and comes with some decent default sprites, allowing good writers to make good RPGs without having to acquire drawing or programming skills or a team that does that for them. Fantastic games have been made with Game Maker (e.g. Stealth Bastard Deluxe) and Adventure Game Studio (e.g. anything by Wadjet Eye). Those are tools that empower creative people. Isn't that a good thing? If you care more about coding than the end result, then you can reinvent whatever you want, right down to the programming language and standard library. And if you're just starting out, you'll have to rewrite code other people have written before. Can't make the Next Big Thing if you don't know how to write Hello World. Pulling in jQuery for literally anything you don't know how to do yourself in JavaScript is a bad idea in the long run, because it doesn't teach you anything about programming and eventually you're going to run into a situation where jQuery doesn't do what you need it to, and further, you don't really understand what jQuery is. But when all you want to do is code a small site with the least effort possible, or you actually need all the advanced stuff that jQuery provides, it's a good strategy. These libraries do exist for a reason.
If you're learning, re-inventing the wheel is sometimes the best way If you're doing something in order to get the end-product, don't feel bad about using available tools to get to where you want to go. When you're actually working for someone in future, I'm sure they'd rather you use some pre-existing wheels rather than paying you to re-invent the wheel. Some companies even offer incentives for code re-use. I used to feel the exact same way, until I began to realize it was just hindering me, and that most side-projects I whipped up in the process of working on a bigger project had already been created (often better than I could do!) and I started to become more productive. So in summary: it depends on how much and what you want to learn. How far back do you go with re-inventing stuff? Why stop and accept MySQL, but not that image resizing library? Are you interested in learning how X library works and want to learn? Re-invent it. Otherwise, just use it and be happy to stand on the shoulders of giants, like everyone in the past has to some degree (except the first guy who discovered fire, he was probably pretty smart).
You're also massively generalizing the software you have spoken about without actually trying it. Gamemaker, for example, is actually very powerful and I would say similarly on par with unity (for 2d). If anything I'd say for a 2d game unity has far more "presets" and so on.
[QUOTE=chaz13;46674849]You're also massively generalizing the software you have spoken about without actually trying it. Gamemaker, for example, is actually very powerful and I would say similarly on par with unity (for 2d). If anything I'd say for a 2d game unity has far more "presets" and so on.[/QUOTE] I think they're probably referring to the drag and drop deal it has for non-programmers to deal with code. But if they are thinking about things like that they're drawing a kinda blurry line. Blueprint in UE4 is a fairly similar system. (Albeit more complex and not quite as easy to use.) GameMaker doesn't require anyone to use that interface just like RPGMaker has a scripting language of its own that can be used to make entire games. So writing off either of those engines just become some people have made bad games for them is inadvisable. One of my favorite platformers is made in GameMaker and it probably never would have been made otherwise. The developer of it put a ton of effort into the game.
One of my favourite games, [URL="http://www.gunpointgame.com/"]Gunpoint[/URL], was made using GameMaker. Really, the question with these tools isn't about whether it's "cheap" or a "knock-off" - who cares? The end game is what truly matters, and only a stuck-up snob is going to think otherwise because it's been implemented using a certain software. What really matters is whether the tool lets you implement the game and how easily. If you look at Unity 3D or any other modern game engine, their goal is fundamentally to be making games easier, for the professionals. Why would a tool to make games easier to make, but for beginners, be a bad thing then? The only think that should be of concern is how powerful the tool is. If it's very easy to use, and very powerful, use it! That's why Unity is used a lot. The end goal is to minimize the time spent to implement any features. The tools used don't make it a "knock-off" - you are still inventing the game mechanics, designing the levels, drawing the graphics, and fundamentally, it's still [I]you[/I] making the game. The tool is just an avenue to make that easier. For a view of why these tools aren't used so much by professionals, I'll leave this here, a post I once made on reddit: [quote]I'd suggest you learn a proper programming language regardless... you look at these tools, thinking "that looks easy", and at programming, thinking it's hard, but in reality these flip. Eventually you begin spending days of work on simple features as you are trying to work around the tool, and it completely offsets the simplicity at the start. Then, stuff gets worse. The default tools aren't versatile enough, so you begin (through a long and complex procedure) replacing the very things that made it easy in the first place. Need a way for the particles in the particle effects in your game to feel a constant acceleration, or move instantly somewhere, and the tool doesn't allow it? Well, looks like you'll be making your own particle engine. Same goes for everything else until the tool is a hindrance every step of the way. You may not believe me, so let me give an example of something I've made: [url]https://dl.dropboxusercontent.com/u/11593881/Space%20Game%20FreeCam/index.html[/url] This is using Construct 2. Now, this "game" isn't really anything like what Construct 2 or Game Maker are designed for. They are designed for platformers, things in "rooms" or predefined levels. I wanted to make a space game set in huge worlds. The engine didn't like this one bit, so from the start I was needing to do workarounds -the fact I hadn't paid for it meant I had to abuse the animation system for multiple background parallax objects without code duplication, and the mentality for levels meant that I had to make the game work by having the ship the centre of the universe with everything moving around it. This meant I had to do parallax weirdly, too. Regardless, I made a lot of progress in the first day, with a full ship flying around the screen with controls and all. However, I made a bit less in the second day... and less in the third. By the middle of the week, I was having a headache trying to comprehend a smooth scrolling infinite background, and by the end of the week, each tiny new feature was a huge pain of hours of struggling to tweak small things, even when the code was done as neatly as the tool would allow! So let's move onto the thing which made me give up: Press the arrow keys in the app while right-clicking somewhere to thrust. The particle effects are completely messed up, and move with the camera. Sure, it's small... But no game releases in that state, but I couldn't fix it without completely taking out the particle engine and making my own, using the visual coding instead of a real language. And that's too much work. So move forwards a while, and I've decided to learn Python. Here's a link to the new re-coded version: [url]https://dl.dropboxusercontent.com/u/11593881/Non-shitty%20Python-based%20Space%20Game/space%20game%20particle%20effects%202.zip[/url] It has almost everything that the other has except for zoom, but it makes up for that by having some debug drawing coolness etc :). So lets look at how this project evolved. I took a day to get the ship starting with a static velocity sliding along the screen. At about day three, I had some basic controls. In the last 2 days of the week, I'd implemented a moveable camera, infinite background, debug drawings, a particle system, parallax... do you see the difference? It's the opposite curve. This started out hard, but got easier and quicker. The opposite of Construct 2. And remember - I didn't need to download any huge proprietary software, and didn't need to worry about the eventual fact I'd need to buy something if I wanted to get serious. On top of that, I'd learnt so much more! I can proudly say I understand vector mathematics, simple physics, game engine design layers, profiling, and debugging. My understanding of Python had gained a lot of depth. If I want to add something to the newer Python version, it's a simple case of... well, adding it! No wrestling with the engine! I could make things under assumptions and rule sets my game needs, rather than trying to work around some set by some game making tool. I will admit, however, that the decision to go with Python + Pygame eventually came back to hit me. I'm a very technical minded person and eventually I couldn't quite deal with the dynamic typing and slow speed of pygame in the situations and resolutions I was hoping for. I think I might prefer engine development more than game design :) But either way, let this rambling, poorly thought out post perhaps give you some knowledge. If you want to make a game based which predefined levels, sure, use a tool! But don't jump into one assuming it's easier for all types of games. They can go far, but know their limitations. And either way, having some programming knowledge under your belt can really help you - the game maker scripting language is leaps and bounds above the visual programming one![/quote]
[QUOTE=KinderBueno;46673339]So basically did any of you reinvented the wheel when you were novice in programming?[/QUOTE] Many times, over and over. And mostly, BADLY. The best programming lesson I learned was that I suck, my ideas are lame, and somebody else smarter than me has already done a better job, and put it online for everyone to benefit from. One day, after absorbing all this collected wisdom and expertise in the form of dll, so, includes, and code snippets, I hope I might share on Github some little library or framework that makes life easier for other coders.
Hotline Miami was a Game Maker game you know.
The biggest reason people use snippets and game engines is because re-inventing the wheel takes time with no guarantee of working efficiently if not at all. Cutting off a little time as many times you can could save you a ton of time. Code re-use saves time. One of the most important lessons of engine makers is to not make their own engines unless you have a really good reason. It takes time (and time is money) to implement features and it is often better to buy ready-made third-party solutions. You'll want something that is modular and easily accessible to artists and designers so they could get to work sooner and let programmers implement needed features the engine doesn't provide. Think of it this way: tools, if used right, are only limited by the worker. Sometimes, the usual restrictions from game engines such as RPG Maker and Game Maker just doesn't apply to the game you are working on. If they do, just work around them. Simple. And if you are apprehensive about the restrictions/lack of features imposed by certain game engines during your research, you are most likely making a mountain out of a mole hill. Some games made with Game Maker: Spelunky, Nidhogg, Hotline Miami, Gunpoint, and Risk of Rain. Some games made with RPG Maker: Barkley, Yumi Nikki, and To The Moon. All of these are good games. If you properly researched it, your selected devving medium shouldn't restrict you all that much. If there were any obstacles preventing implementation of your original visage, consumers wouldn't care if you wing it well enough. For artists, Game Maker and RPG Maker gives them a leg up versus Unity and Unreal Engine as there isn't too much time spent learning how to code or properly utilize the engine. They are not cheapskates; they just allocate their skills in a more productive way. For learners, you need to know what the code snippets and some engines components do by heart. Looking at a piece of code and thinking after a minute "oh, so that what it does" is not learning it. The best way to learn it is to write a version yourself, test and tinker it to a functional state, and refer back to the original to compare.
Sorry, you need to Log In to post a reply to this thread.