AuthorTopic: How do you make your games?  (Read 10704 times)

Offline PsylentKnight

  • 0010
  • *
  • Posts: 270
  • Karma: +0/-0
    • View Profile

How do you make your games?

on: July 12, 2014, 03:06:19 am
So, I've been considering a variety of options for creating my game.

I know that GameMaker is easy to use, but as far as I'm aware, I don't think it has a lot of features needed for a proper game. The foremost of which is the ability to support multiple screen resolutions. I've also heard that it gets to be a pain for larger projects. In my experience it can have you pulling your hair out over very simple issues. However, it is after all optimized for low-res 2D games, and as I stated before its very easy to use.

I've been watching some tutorials for Unity... it seems like a great program, and it could fit well considering its recently added 2D support. It seems like over kill for what I'm doing, but this is what I'm leaning towards.

From what I've heard, Construct 2 is rubbish.

I've found a book on 2D game programming in Java that has a lot of positive reviews. However, I don't see any reason to program a game from scratch when you have so many game engines now-a-days that take care of all the low-level stuff. I've taken a couple of courses in Java, but we've worked exclusively on text-based programs, so I don't think my programming skills are quite up to snuff for something as complex as programming a game from scratch.

Anyway, that was pretty much just me rambling. How do you guys go about making your games? In particular I'd like to hear from those of you with finished games under your belt, like Tim.
Mommy's Boy: Development Blog  Youtube  Contact: MommysBoyGame or Psylent-Knight@hotmail
View all my game assets at 300% zoom (click twice)

Offline Pix3M

  • 0010
  • *
  • Posts: 265
  • Karma: +1/-0
    • View Profile

Re: How do you make your games?

Reply #1 on: July 12, 2014, 04:46:39 am
I first found GameMaker back when its logo was a red ball and a hammer in the center. I used it as an elementary-school-aged kid, I watched it grow over time from a tool for non-programmers and now it's become a heavily marketed tool sold to aspiring game developers.

From working with a MonkeyX programmer, I found that actually, GameMaker comes with a lot of features that makes game-making easier. For example, GameMaker has a room_restart() function which simply removes every instance in a given room (except for instances with a persistent flag set to true), and then reload the room from scratch as normal. GameMaker also provides collission functions for you, and plenty of other functions I am surprised to hear has to be manually coded if working with MonkeyX.

Unity for 2D is weird being 3D with orthographic projection, in the past, there have been issues with setting a strict resolution in pixels. Unity is also annoying if you plan on recycling assets (e.g. recolors, or multiple variations of the same monster that has the exact same monsters), because their animator tool can only make absolute references to animation frames rather than relative references. Compared to GameMaker, it's structured so you can simply change the sprite_index variable and you can very easily have palette swaps more easily than what Unity provides.

Unity's animator also comes with modular animation tools, which may or may not be what you want.

Either way, you're always going to be using to some degree, some middleware so you spend less time making an engine, and more time creating actual content. No sane game developer is going to be making code entirely from scratch.

But as far as ease of working goes.... I've had iffy experiences with Unity programmers. However, every GML programmer I've worked with gets the job fairly quickly. 3 out of my 5 finished games are GameMaker projects (though, two of them were mine and all of them were very small projects), the other two being coded in Actionscript 2.0 or 3.0.

http://pix3m.deviantart.com/art/Robin-Steele-the-Waifu-Thief-V2-0-465750323

^ This game was originally made in GameMaker in 48 hours and added more content before handing the project over to said MonkeyX coder to translate the source files so it can be ported to flash and android for free. If you want an idea of what I managed to code in GameMaker in 48 hours....

  • Procedurally-generated levels
  • Collision engine between a global array and instances (GameMaker only provides collisions functions between objects)
  • State machine that allows for stunning, knocking back, and special boss attacks that procs if you land either too many hits, or are aligned on the x or y axis. This easily took the biggest chunk of my time, making sure player and enemy behaviors work
  • A tile rendering system (GameMaker's tile system is not based on an array but uses a more flexible but less efficient system using objects
  • A three-attack combo system for all four cardinal directions

That, and despite the magnitude of this 48-hour-project, I was able to create all the graphics needed for this. I stayed up till 4 AM in the morning though  :crazy:

IMO, it's not a matter that GameMaker doesn't have enough features to make a complete game, it's just a matter of knowing how to approach a goal with code. There are other engines that provide even more features (e.g. RPGmaker2000), but they also put constraints on game mechanics you can add to the game, but others that provide less training wheels may require you to code more stuff from scratch. That, and there will be engines freely available so you can have all the GML ncessary to make a solid platformer game on GameMaker. Find a balance.
« Last Edit: July 12, 2014, 04:49:02 am by Pix3M »

Offline Ellian

  • 0010
  • *
  • Posts: 245
  • Karma: +1/-0
    • View Profile
    • This is Ellian

Re: How do you make your games?

Reply #2 on: July 12, 2014, 10:29:02 am
It totally depends on what kind of game you aim to make.

Game maker : Free, 2D
It CAN do 3D, but it's probably not the best idea. I suppose it's okayish if you aim for something simple, though.
It's more powerful than you can imagine at first, yet it does have limitations. Very useful to make game jams, prototypes and such, but can also do impressive games as well, it just needs more time.
The paid version add HTML5/iOS/Android/etc support, which isn't that expensive if you plan to make money out of your game. Good point is, Game maker fully support all versions within a single project; you don't have to code differently each version and you can export any kind at any time.

Unity3D : Free, 3D (duh)
While it can do 2D, and I think there's a decent support from the community, as its name implies it's best used for 3D.
I used this in school for my final project, I was amazed at how easy it was to use. I mean, back then they had a 3D plateformer tutorial, and in an afternoon you'd have a working 3D action game from the Playstation/N64 era.
The free version has limitations (I remember we had to make the school buy it so we could use the render to texture ahah), and I thiiiiiiiiiink I remember they also support non-PC plateforms but I don't know how/for what price (if any)/etc.


All in all, as I make mostly 2D pixel art games as a hobby, my choice go to Game Maker. I mean, sure, I don't make ultra fancy technical stuff, but in the last 4 months, with 4+ projects (mostly game jams) there isn't a single thing I wasn't able to do. And code clearly isn't my strength here ahah
Also, while I can't say I tried, I'm highly doubting that Game maker doesn't support multiple screen resolution. I know you can change resolution on the fly (that's actually how I make my games zoomed x2), and considering they're making everything possible for you to develop on Android/iOS, I can't begin to imagine why they would have fixed resolution since every phone around has a different one.
Maybe you found old information or something? (or maybe it's true, eh, I'm not pretending to know)

Quote
IMO, it's not a matter that GameMaker doesn't have enough features to make a complete game, it's just a matter of knowing how to approach a goal with code.
That is very true.  :)

Game Maker and Unity3D have been around for a long time, which means they have tons of community support. Forum posts, videos, tutorials, there are plenty of stuff to learn.
So if you struggle with something, chances are someone already found a solution, and if not you'll find people willing to help.


A piece of advice (both from personal and professional experience): Avoid coding it from scratch. Unless you have a very specific and technical feature that can't be done overwise, work with an existing engine.
Some people might make comments such as "pfff, if you didn't made it from scratch, it's not a -real- game" or "you're not a -real- game developer". Never listen to those people. 99.9% of the time they never finish their projects. Just make your game, and finish it, that's pretty much all that matters.
Using an existing engine, with a strong community and support, will help you keep your motivation stay high, and will allow you to concentrate on the "cool" stuff your game needs, not the super boring stuff that you don't want to make and that will make you hate your project. I have a coworker who's been working on his engine for more than 7 years. He still didn't make a single working game with it. :)
Also, keep in mind that games such as Super Crate Box, Spelunky (original), Hotline Miami or Nuclear Throne are all made using Game maker.


Final thoughts:
Honestly, I suppose you have a specific project in mind, something you put alot of love and work in, right?
Then pick an engine or whatever, and make -something else-. Do a very small game (in a genre close to your game), learn a few tricks and make yourself comfortable so that whenever you start your game, you don't have to change engine/software afterward. It's a motivation killer.
So yeah! Pick Unity3D, Game Maker, Construct or whatever, and make something small! Maybe join a game jam (added motivation always help!) or something, and no pressure, your only goal would be to learn and make yourself at home. Maybe you'll decide that the engine you choose isn't the one you'll use in the end, but eh, it's still experience.
« Last Edit: July 12, 2014, 10:31:34 am by Ellian »

Offline LarkoftheRiver

  • 0010
  • *
  • Posts: 101
  • Karma: +0/-0
  • Hobbist Animator + Apprentice Falconer
    • ordinaryredtail
    • ordinaryredtail
    • ordinaryredtail
    • sarah.fonvile.9
    • View Profile

Re: How do you make your games?

Reply #3 on: July 12, 2014, 11:25:58 am
I'm also interested in making a game (or at least to play around with this sort of thing) and I was wondering... how complex is Gamemaker's programming? I've never worked with game programming.. ever... and want something really easy to start with. Also, can it export to a flash file so that I can upload it to deviantart after I'm done?

Offline ErekT

  • 0010
  • *
  • Posts: 330
  • Karma: +0/-0
  • fistful of pixels
    • View Profile

Re: How do you make your games?

Reply #4 on: July 12, 2014, 11:42:58 am
Quote
From what I've heard, Construct 2 is rubbish.
I've been using it for a while and like it a lot. It has a couple of shortcomings which are due in part to html5, like no screen resolution control; you need to scale everything to fit the desktop resolution, and sub-optimal performance (in my opinion). Also code is hard to transfer since it's all embedded into the C2 event system. The event system itself is like scripting, just more clicky.

All these packages can get the job done if you know your way around them. But being small-time the big thing as I see it is how fast you can get stuff up and running with them. How much tedium, like setting up a save system or importing assets for instance, does the package take care of for you? Does it have a lot of counter-productive quirks etc. C2 is very good at all this imo.

Offline Ellian

  • 0010
  • *
  • Posts: 245
  • Karma: +1/-0
    • View Profile
    • This is Ellian

Re: How do you make your games?

Reply #5 on: July 12, 2014, 11:54:44 am
@Lark
The thing with Game maker is that you can use it (in theory) without any programming skill. I wouldn't recommend it for really serious projects (it lacks polish), but it's great for learning.
GML (game maker programming language) isn't hard, it's rather basic stuff.
It might be a lot to learn if you have absolutely no programming skill, but I'm sure there are tons of tutorial out there, and you can always find sources from other projects to study.

Game maker doesn't support flash, as far as I'm aware. And anyway Flash is deemed to die within a few years, it's getting... old.
The free version only allows windows (possibly mac/linux, I'm not sure) exe export, and the html5 module can get a bit pricey (I think it should be around 200€ unless they have a sale (I got pro + html5 for 80ish bucks a few months ago during a sale)). You can't upload html5 on deviantart as far as I'm aware, but websites such as itch.io are made for game developers to host their games.

Offline RAV

  • 0010
  • *
  • Posts: 293
  • Karma: +0/-0
    • View Profile
    • Blackbox Voxel Tool

Re: How do you make your games?

Reply #6 on: July 12, 2014, 04:06:05 pm
Pixel editors are easy to use, yet that doesn't mean good pixel art is easy to make. And that a pixel art is difficult to make doesn't mean the editor is at fault. It's all about the content, yet that doesn't mean there's something wrong with pixels if you don't have good ideas for and of it. The state of the art is defined by the best examples.

Unity is a less restrictive engine than Construct, yet few games in Unity match the craftmanship of Iconoclast in Construct. If you're good at something, your game will be good at something; pick the rest to cover up what you're not good at; design your game to work with, not against, the substance and skill you have. There is a lot of fun games you can excel with, and things you should learn about, just with text i/o.

It is good to know more than one language/engine/platform and pick each as fits best to a project, or suits your progression. With each one learned you learn the next faster, since you recognize universal patterns of game making and just get used to some new details. It's like with art: you see a huge difference in the first pixel art between someone who has been drawing and painting for a couple years before, and someone for whom it is the very first piece of art at all.

For an engineer coding the engine is the most interesting part, and the details of a game the least interesting, even entirely optional in the end -- making a game is just an excuse for making an engine; the systems are your pride, functionality sets you apart. That is what demos are about, and making mockups is an artist's equivalent to that. It is natural that an art community will frown upon the uninspiring art, and a coder community frown upon uninspiring tech. However the ideas people have about games are usually based on rather standard elements of one kind or another, surrounding a premise interesting enough to make up for it: a game designer is not interested in mockups or demos but making fun games, and for that he needs neither artist nor coder these days, as he can rely on standard solutions from both. The purpose of custom craft is to elevate the joy, but the basics must be sound to begin with in prototypes.

A game maker's funnest point of entry has always been modding, since he gets to play with a lot of ready content he likes, and learns by adaption; it's the biggest bang for the buck.

« Last Edit: July 12, 2014, 06:11:34 pm by RAV »

Offline Pix3M

  • 0010
  • *
  • Posts: 265
  • Karma: +1/-0
    • View Profile

Re: How do you make your games?

Reply #7 on: July 12, 2014, 04:44:51 pm
My coding experience is mostly limited to GML but with a wee bit of AS3 and Javascript (which I am currently learning to make web games)

GameMaker has plenty of documentation to help you learn how to use it, and it simplifies some things to make thing easier. For example, you do not need to declare a variable type as an integer, floating point, boolean.

No matter what you do, you will have to spend time to learn how an engine works so you can use it. The more time you spend, the more quickly you can produce results and the less time you spend looking things up to figure out how it works. I could say things about how much easier GML is from AS3 or Javascript but anything I can say cannot be really fair because I only have so much experience.

Offline Ambivorous

  • 0010
  • *
  • Posts: 365
  • Karma: +2/-0
  • If you can't do; inspire.
    • ambivorous
    • ambivorous
    • http://pixeljoint.com/p/47949.htm
    • ambivorous
    • View Profile

Re: How do you make your games?

Reply #8 on: July 12, 2014, 05:50:46 pm
I am a programmer by profession and programming is also my hobby. I definitely consider it an art form. Thus, I back the idea that RAV is trying to bring across.

My coding experience is mostly limited to GML but with a wee bit of AS3 and Javascript (which I am currently learning to make web games)

GameMaker has plenty of documentation to help you learn how to use it, and it simplifies some things to make thing easier. For example, you do not need to declare a variable type as an integer, floating point, boolean.

No matter what you do, you will have to spend time to learn how an engine works so you can use it. The more time you spend, the more quickly you can produce results and the less time you spend looking things up to figure out how it works. I could say things about how much easier GML is from AS3 or Javascript but anything I can say cannot be really fair because I only have so much experience.

I must interject on this point.

One of the biggest causes of bugs early on in a programmer's career stems from type casting, and just generally not understanding (or handling) type in general. Hard-typed languages are probably the best suited for beginners. One thing I purposefully do in C++, Java and such is prefix my variables with two letters to denote its type so that I never do implicit type casting (all type casting I do explicitly as good practice), ie. a float named flThisIsMyFloat and an integer named inThisIsAnInteger.
While I'm on the topic, the largest amount of syntax errors of beginners occur from forgetting the terminating character at the end of a line of code (';' in C++) and similar omissions, so I used to leave a space before my end of (code) line characters and anything else I'd often forget, ie.

Code: [Select]
cout << "this is an example" ;
Just as casual random advice on how to go about learning to program.
* may contain misinformation

Offline Crow

  • 0011
  • **
  • Posts: 647
  • Karma: +0/-0
  • Technicanimal
    • View Profile

Re: How do you make your games?

Reply #9 on: July 12, 2014, 05:53:45 pm
While I'm on the topic, the largest amount of syntax errors of beginners occur from forgetting the terminating character at the end of a line of code (';' in C++) and similar omissions, so I used to leave a space before my end of (code) line characters and anything else I'd often forget, ie.

Code: [Select]
cout << "this is an example" ;
Just as casual random advice on how to go about learning to program.

Please don't, that looks terrible :/
Discord: Ennea#9999