METAL_MAN135
Oct 18 2009, 02:43 PM
I have not graced these boards for a while, much to my own displeasure. I have started to get heavily into C++ programming, and have noticed a dramatic change in the way people make games using this language; it, most of the time, is significantly lazier than using GM. this "dramatic change" I am refering to, is the game engine. No, not those "RPG Engines" that flood the open source forums with their (generally speaking) lazy, uninformative pieces of junk that people attempt to pass off to the newbies as a quick way to build games. No, I mean full blown engines such as the RAGE Engine, the QUAKE Engine.....and thats about all (since the vast majority of 3D engines are modified QUAKE engines anyway), with their rendering, built in AI and a host more features. With all this at your disposal, (assuming you understand how it works) there is no need for any "difficult" programming (in the sense of building the foundations of the game). The hardest part companies face in the production of these games is the animation, models, characters; the artwork. There is the exception to this however; some engines are written completley on a game-to-game basis, as to ensure no vital elements are omitted, and no time is wasted creating unneseccary code, or dealing with it.
So GMC, how do you create your games? Do you create each and every game from scratch? Or does anybody fire up an elusive multipurpose "engine" they have created to acheive their goal?
As a final note; yes, I am aware that technically Game Maker IS a multi-purpose game "engine"; but hey.
ramses12
Oct 18 2009, 02:57 PM
I've never used an engine made by someone else (except of course Mark's tutorials), and I enjoy creating all sorts of engines and solving apparently impossible maths and coding problems, even if they were already made, and that's because I want to have a totally full control over my scripts. It's just better to know every spot of your work.
commander of games
Oct 18 2009, 03:00 PM
I code mostly from scratch, but I sometimes take code from an example or engine. I do like to code from scratch though, because sometimes the code in an engine can be VERY messy.
ninjutsu63
Oct 18 2009, 03:03 PM
I use Ultimate 3d, a DLL, which has many built in functions like lighting and rendering. However, I wouldn't say that it eliminates all of the difficult coding.
commander of games
Oct 18 2009, 03:07 PM
Wait. Is this is talking about 3D games or all games?
METAL_MAN135
Oct 18 2009, 03:07 PM
QUOTE (ninjutsu63 @ Oct 19 2009, 01:33 AM)

I use Ultimate 3d, a DLL, which has many built in functions like lighting and rendering. However, I wouldn't say that it eliminates all of the difficult coding.
Hmm yes possibly ALL difficult coding was a bit far....but definetially MOST and very close to all are gone if you use an engine AND possess FULL understanding of its mechanics.
EDIT: This was about all games but either is fine with me. I'm just up for a discussion.
johnjoe
Oct 18 2009, 03:51 PM
i've not much experience in both c++ and gamemaker, although i would be sounding like an idiot if in anyway i could fully compare them anyhow.
the approach towards creating a 'game' with gamemaker is easy and the sort of drag and drop style, hence what it is for. by that, there isn't much difficulty towards creating a 'game' based on an idea. it's much more like, playing with building blocks, imo. whilst with c++, you're playing with solders and electronic materials.
i've experienced creating games with game maker, and have not yet experienced any difficulties in most cases.
the down-side is that it is slow in-terms of execution.
drazzke
Oct 18 2009, 04:20 PM
I usually code from scratch, though sometimes I bring scripts over from other games that I created so I don't have to recreate things I've already done.
Otherwise, it's mostly from scratch.
voltain
Oct 18 2009, 04:33 PM
If I am making a small game, I will most likely create it from scratch but if it is a big game, involves some complicated coding or there is a short release deadline I will take it from one of the many engines or scripts I have already created for both game maker and c++.
I hate using other people's engines and scripts directly. I either learn from them or figure out a way myself.
NakedPaulToast
Oct 18 2009, 04:53 PM
Anybody who repeatedly refers to re-using code as lazy, probably isn't in a position to take part in the discussion they're trying to start.
Frederick
Oct 19 2009, 12:45 AM
I start my own engines for one. I think you should never use someones engine unless you absolutely need to. Making your own is better! You can learn more from it.
METAL_MAN135
Oct 19 2009, 11:03 AM
QUOTE (NakedPaulToast @ Oct 19 2009, 03:23 AM)

Anybody who repeatedly refers to re-using code as lazy, probably isn't in a position to take part in the discussion they're trying to start.
Lazy, in the sense of this discussion, is not being depicted as a
negative thing; merely
easier. There is nothing wrong with re-using code; if you have code that can be re-used in situations previously un-attempted, that is fantastic. In terms of the
amount of work you would have to do to completley write a new engine for each game, or simply use a pre-constructed engine (whether or not it is yours is not the point), will make you
appear lazy against the more
unproductive approach of continualy starting from the ground up, on every single project.
Scyler_27
Oct 19 2009, 11:40 AM
I re-use much of my own code when building games with similar features, but it is my own code and I programed it in the first place. I usually code all my own stuff, I can't remember the last time I used someone else's scripts for my game. The only scripts or codes I borrow from others would be those referring to DLLs. Since DLLs are usually programed in C++ and I don't know how to do it myself, I will go to someone else who can do it for a little help. (For example Ultimate 3D uses many features from DirectX 8 that Game Maker itself can't use. Since I don't know how to program it myself in C++ I use the DLL)
Zee
Oct 19 2009, 12:07 PM
I use open Engines in the same way I use books for the language. It offers different ideas, different styles. So I never use another person's engine, but I have no qualms with seeing how they did it and if it's better than my method or achieves the results I want in a time-pressured environment, I'll use it. But never a whole engine. Just snippets of code here and there.
But I do have a LOT of engines that I have built over the years, some still from the 4th edition era that have been ported forward to 7. I have engines for everything I like to do, from platforming to rpgs, from fps to turn based tactics, from multiplayer engines to three dimension engines. I have probably more than twenty different engines that I like to use, since I've done the work already, why re-do something again except for the merits of a contest or something?
Recycling good code is not laziness, it is simply being efficient. To call it lazy is to ignore a valuable resource - your time.
METAL_MAN135
Oct 19 2009, 01:07 PM
QUOTE (Zee @ Oct 19 2009, 10:37 PM)

I use open Engines in the same way I use books for the language. It offers different ideas, different styles. So I never use another person's engine, but I have no qualms with seeing how they did it and if it's better than my method or achieves the results I want in a time-pressured environment, I'll use it. But never a whole engine. Just snippets of code here and there.
But I do have a LOT of engines that I have built over the years, some still from the 4th edition era that have been ported forward to 7. I have engines for everything I like to do, from platforming to rpgs, from fps to turn based tactics, from multiplayer engines to three dimension engines. I have probably more than twenty different engines that I like to use, since I've done the work already, why re-do something again except for the merits of a contest or something?
Recycling good code is not laziness, it is simply being efficient. To call it lazy is to ignore a valuable resource - your time.
QUOTE (snippet)
In terms of the amount of work you would have to do to completley write a new engine for each game, or simply use a pre-constructed engine (whether or not it is yours is not the point), will make you appear lazy against the more unproductive approach of continualy starting from the ground up, on every single project.
I agree with your point of being more efficient. But please read my previous post to clear a few misconceptions I feel you hold upon my reasoning.
Kapser
Oct 19 2009, 04:52 PM
Most of the time do everything from scratch. But Foxengine is like Unreal engine for me. I use it for majority of my platformers.
Phlum MKII
Oct 19 2009, 05:12 PM
I mostly use others' engines and modify them to suit my game. I take a look at the scripting sometimes, but if it's a game I know I'll only make once, I'll use an engine for definite.
Krisando
Oct 19 2009, 05:17 PM
GM is kind of the object orientated base engine.
And you have to love this function create_game("MMORPG");
In C++ people often structure their code better, "compared to GM". In GM it allows you to get away with sloppy coding styles and bad habits.
You will notice a large majority of people on this forum do not even comment or format their code.. I mean c'mon.
METAL_MAN135
Oct 20 2009, 06:03 AM
QUOTE (Krisando @ Oct 20 2009, 03:47 AM)

And you have to love this function create_game("MMORPG");
I have not seen that before, but it sounds like a disaster.
Skarik
Oct 20 2009, 06:10 AM
QUOTE (METAL_MAN135 @ Oct 19 2009, 11:03 PM)

QUOTE (Krisando @ Oct 20 2009, 03:47 AM)

And you have to love this function create_game("MMORPG");
I have not seen that before, but it sounds like a disaster.
Priceless.
METAL_MAN135
Oct 20 2009, 11:02 AM
Prehaps I should have left his quote in its entirety. I know that there is not a function called that; it just would be disasterous if there was or if somehow, it was coded into a game.
Schyler
Oct 20 2009, 11:23 AM
forum_thread_dllinit();
focus_topic("on_topic");
Spikehead777
Oct 20 2009, 12:19 PM
The way I work on projects, is I only use other engines when absolutely necessary, such as .dlls. Otherwise, everything else is my own.
I look at other scripts on the Internet and in other code, but that's just to see an idea on how something was done. In other words, I might make my code one way, but then someone else might make the same code in another way that's smaller, more efficient, easier to read, or faster.
First, when I come up with an idea, I either create scripts to help with the processing of that idea, or load scripts that I already created. In cases that need a .dll or other code I can't understand, I load up that .dll or piece of code.
Afterwords, I create new code based off of the existing code as well as conforming to the ideas I had in mind.
Managing what you want to do or create is much easier with an engine, because there's a lot more code re-use and you have functions to simplify things. Instead of having to write 200 lines of code everytime you have a reference to save your level, you can just write it once in a script and then write one line of code to save your level. That's pretty much what an engine is, in my view.
Now if I can actually publish something... >_>
e_barroga
Oct 20 2009, 04:15 PM
When I was more active with Game Maker, I don't recall ever using an engine for the basis of my game unless I fully comprehended the engine.
Otherwise, the engines would only serve as a resource that I can study to construct my own code. The reason for this is not because I am trying to avoid succumbing to laziness, but because that's when you start to run in to problems. This is why the majority of the people that use engines run into problems, because they hardly have a clue how the engine works.
Also, if I did have full comprehension of the way that the engine worked, I wouldn't use it unless it had proper data encapsulation (by this, I mean proper usage of the scripts). Therefore, if I understood an engine, but it only used the objects and didn't use scripts, then I would use the engine as a resource and write my own code.
The reason for this is because a good engine should hide its inner-workings so that the user does not need to know how it works from the inside. For instance:
mplay_init(). We know what it is used for and what the interface looks like, but we do not know how it is programmed. It works the way it works without us needing to examine the inner code. If the user of an engine must modify its inner-code for it to function properly, then it does not have proper data hiding (although there are certain occasions when you wish to modify the implementation to your liking). Modifying a function like:
move_towards_point(...) to perform pixel-perfect collision detection is an example of such an exception.
I think that the only engine that I have ever used throughout my long Game Maker venturing experience is 39DLL and Jenner's Platform Engine.
Altogether, it is very complicated to write an engine as efficiently and flexible as you can with languages like C++ because in Game Maker, you're really only left with the
functional programming paradigm. The objects in Game Maker,
try to mimic object-orientation. Good engines try to keep the user from modifying its inner-workings as much as possible.
Really though an equilibrium between flexibility and simplicity will always exist. You cannot add one without removing the other, and vice verca.
edit: QUOTE
And you have to love this function create_game("MMORPG");
That is an example of what the majority of the engines on GMC appear like. Write an incomplete game and dub it with the title: Engine.
create_game("MMORPG");Nothing wrong with that, you're merely wrapping everything into a single method. However, now it is an inefficient engine because the users of your engine must modify the inner-workins of said method. Plus, you've effectively set the F:S equilibrium to 0:100.
create_game("MMORPG"); isn't necessarily a disaster, just an example of a very inflexible engine (and we all know that it is still possible to make something good with an engine with poor flexibility).
T-Bird
Oct 21 2009, 05:04 AM
I have, for quite a long time, custom built, ground-up every program i worked on. Occasionally I'd copy/paste tedious codes out of other programs (OF MINE). Almost never did I copy/use another's engine or codes.
However I have recently found myself definitely seeing the advantages of reusable code. I am tired of scratch-building since I have (probably quite litterally) done everything once, but it's so jumbled and in so many different files (I have hundreds, dating back to GM5) it's virtually inaccessible.
As of late I've been building lots of script sets, with general parameters that are easy to reuse between projects. For example I have one script set that handles everything I could possibly want to do with a 3d camera. Another handles some basics of 3d collision (not finished, but it's close). Now when I make a 3d game I'm halfway there.
Still no "engines" to work off of though.
soccer99
Oct 21 2009, 05:10 AM
I'm pretty sure big companies using engines isn't any different than us using Gamemaker. C++ isn't set up well to just go out and make games with without using some sort of graphics library or engine. Gamemaker I guess could be put in between a graphics library and a game engine for ease of use and how much is done for you.
daman123125
Oct 21 2009, 05:46 AM
I would usually start from scratch, as I think that when you start using engines, you give up your independence to them.
QUOTE
create_game("MMORPG"); isn't necessarily a disaster, just an example of a very inflexible engine (and we all know that it is still possible to make something good with an engine with poor flexibility).
You'd need a lot more parameters in order for it to be somewhat flexible...
e_barroga
Oct 21 2009, 05:55 AM
QUOTE (T-Bird @ Oct 21 2009, 06:04 AM)

I have, for quite a long time, custom built, ground-up every program i worked on. Occasionally I'd copy/paste tedious codes out of other programs (OF MINE). Almost never did I copy/use another's engine or codes.
However I have recently found myself definitely seeing the advantages of reusable code. I am tired of scratch-building since I have (probably quite litterally) done everything once, but it's so jumbled and in so many different files (I have hundreds, dating back to GM5) it's virtually inaccessible.
As of late I've been building lots of script sets, with general parameters that are easy to reuse between projects. For example I have one script set that handles everything I could possibly want to do with a 3d camera. Another handles some basics of 3d collision (not finished, but it's close). Now when I make a 3d game I'm halfway there.
Still no "engines" to work off of though.
I find it amazing how one would have a plethora of Game Maker code. Because of Game Maker's incredible simplicity I hardly find any tediousness succumbing me to create a library of reusable GM code.
QUOTE (daman123125)
You'd need a lot more parameters in order for it to be somewhat flexible...
It has no flexibility, as I've said its flexibility-simplicity equilibrium is 0:100. No matter what, you will always lose flexibility for added simplicity.
Desert Dog
Oct 21 2009, 07:28 AM
I generally start coding from scratch. I'm not against 're-using' code, it's just that I'm still learning as a programmer, and gamemaker, and every project I work on, I'm a little more mature, know a little more. Oh, and I'm always hoping that I'll get my projects a little more organized.
I re-use useful codes, when I need them, but generally they aren't big codes, there just little snippets, which I've found useful in the past.
Andy
Oct 21 2009, 07:58 AM
I make most everything myself, sometimes getting help from others.
Do to the fact C++ is a universal programming language, not specifically for game development, it would take a single developer forever to make everything from scratch. (That is including graphics, sounds and story.) That is why teams and engines are almost a necessity.
http://www.youtube.com/watch?v=zAgpsks29W4http://www.youtube.com/watch?v=OaxckMNq0eUIf you don’t watch both of the above videos you may find them unrelated to the topic. I also apologize for his "harshness."
T-Bird
Oct 22 2009, 11:48 PM
QUOTE (e_barroga @ Oct 20 2009, 10:55 PM)

I find it amazing how one would have a plethora of Game Maker code. Because of Game Maker's incredible simplicity I hardly find any tediousness succumbing me to create a library of reusable GM code.
By tedious I don't necessarily mean hard, so GM's simpleness doesn't have much play on this.
I've found that every time I make a 3d project I am remaking the camera controls and 90% of the time they are identical. So I made a set of scripts for that. Every time I make a platformer I need movement, and that generally is the same except for parameters like gravity and speed, a set of scripts there.
It's not about complexity, it's about being able to save time and energy that would be wasted scratch-building a set of scripts, and unavoidably debugging them - I can typo in some of the most simple of scripts. That way I can concentrate on the gameplay and the ideas, rather than on the structure and mechanics.
Also when I build scripts this way, they aren't game-dependent. That means I can test, expand, and debug them in a sandbox environment. Whereas debugging a game-specific script means I may be editing a script that works perfectly well, but errors in other codes in the game make it appear incorrect
AaronsGames
Oct 24 2009, 04:16 AM
If you are just coming back into the GM Community you should check out the 'Tutorials and Examples' or beginners sections to get started and maybe get a few basic examples to help you understand GML again more.
METAL_MAN135
Oct 24 2009, 10:00 AM
QUOTE (AaronsGames @ Oct 24 2009, 02:46 PM)

If you are just coming back into the GM Community you should check out the 'Tutorials and Examples' or beginners sections to get started and maybe get a few basic examples to help you understand GML again more.
You have missed the point of this thread entirely. Please read the comments other people have posted to gain a grasp of what is going on here. I know how to make games with GM. That is not the point of this topic.
TheSnidr
Oct 24 2009, 02:39 PM
I rarely make games, but when I do, it's mostly because I have to demonstrate how to use the engines I make.
I am not working with gamemaker for making good games. I am working with it for my own amusement. I mostly make 3d without d3d, which I for some reason find really amusing.
thundybear
Oct 24 2009, 04:44 PM
As I am making my pokemon game, I take very simple tutorials, then completely redo them to fit my game.
razourik
Oct 24 2009, 08:40 PM
I always work off of an engine, for example to a tds engine I would add more enemies, exploding barrels, etc. So I often use engines so that the hardest work (ai, etc) is out of the way, and so that I know how to add things that the engine has code for (for example, how to make a shotgun effect)

Sounds nooby, I know, but I like it because then I have more gm knowledge to use later and in other projects.
METAL_MAN135
Oct 28 2009, 10:05 AM
QUOTE (TheSnidr @ Oct 25 2009, 01:09 AM)

I rarely make games, but when I do, it's mostly because I have to demonstrate how to use the engines I make.
I am not working with gamemaker for making good games. I am working with it for my own amusement. I mostly make 3d without d3d, which I for some reason find really amusing.
So you create the empty shell of an engine to keep for later use or simply for the amusment of creating the engine? Do you enjoy this more than creating full games?
WesIvey
Oct 29 2009, 02:03 AM
I find that C++ is much better for making applications and software but it takes ages to make a game. makign a game is like making software, then software inside that software. idk. I'd rather use GM for games.
Guess
Oct 29 2009, 03:33 PM
I use DLLs, Ultimate3d for 3d and a sound DLL. GM's sound as I said before doesnt suit my needs. GM's 3d doesn't suit my needs either. I don't use any generic "make a game by clicking one button" DLLs, but I would if could, if ya know what I mean.
hanson
Oct 29 2009, 04:15 PM
If I have a game that has a lot in common with what I want to make, I take that and modify it. Otherwise I start from scratch, occasionally borrowing snippets from my other projects.
Pretty much I try and take the shortest route - if it will be harder to modify a engine than start from scratch I will start fresh.
I use dlls when Game Maker is not capable of handling a needed function at an allowable speed.
-hanson
TheSnidr
Oct 29 2009, 08:27 PM
QUOTE (METAL_MAN135 @ Oct 28 2009, 12:05 PM)

QUOTE (TheSnidr @ Oct 25 2009, 01:09 AM)

I rarely make games, but when I do, it's mostly because I have to demonstrate how to use the engines I make.
I am not working with gamemaker for making good games. I am working with it for my own amusement. I mostly make 3d without d3d, which I for some reason find really amusing.
So you create the empty shell of an engine to keep for later use or simply for the amusment of creating the engine? Do you enjoy this more than creating full games?
If you check my signature, you can see the engines I make.
And yes, I do enjoy this more, as I don't have the patience to make a full game.
Obj_Control
Oct 30 2009, 02:20 AM
In my game all the code is 100% made by me. I never copy. If I get help, I read it and rewrite it my way.
PL productions
Oct 30 2009, 07:36 PM
Typically speaking, I code everything from scratch, and thoroughly troubleshoot and test every piece of code for compliance. I format everything I write correctly, and use the most simplistic forms of code I can imagine. I am getting better about commenting on my code now that I have a project that requires many lines of code. However, I have used other people's "engines" in the past. There is one in particular I am using right now for an isometric game. It converts the overhead view to an isometric view. The engine took quite a while to clean up and integrate. Almost as much time as it would have taken to simply make my own version. I think engines can be used, but unless heavily commented and thoroughly formatted and cleaned, they should be avoided. For the most part, my own code integrates much more nicely than another person's work. The comparison to me is seen as a transfusion or transplant. The body of the person receiving the transplant must accept the transplant or organ. If the body does not accept it, the transplant becomes a huge disaster.
head_removalist
Nov 1 2009, 07:16 AM
QUOTE (Andy @ Oct 21 2009, 07:58 AM)

Those videos are interesting. Cheers for posting.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please
click here.