Author Topic: [UPDATED] Tutorial: Getting Started With Fangame Development  (Read 53475 times)

Katz

  • Cherry Eater
  • Posts: 71
  • OS:
  • Windows 8.1/Server 2013 Windows 8.1/Server 2013
  • Browser:
  • Chrome 44.0.2403.155 Chrome 44.0.2403.155
    • View Profile
  • Playstyle: Keyboard
Re: Tutorial: Getting Started With Fangame Development
« Reply #45 on: August 18, 2015, 11:52:34 AM »
I've been sticking with 8.1 for quite a while, and it looks like there's a lot of technical weird changes in Studio, but Studio has shaders and new functions as well as a lot more extensions on the gamemaker community, so I would suggest Studio to be your engine.

The graphical aspect could might as well be foundational to the game's "wow" effect. IIRC a lot of the effects included in the Hotline Miami franchise were replicated in a similar fashion using Studio. Like this.

Studio's definitely the way to go if the engine's stable.

Derf

  • Guest
Re: Tutorial: Getting Started With Fangame Development
« Reply #46 on: August 18, 2015, 12:36:08 PM »
I'll be honest with you: if you're just starting out it doesn't matter all that much.

I use GM 8.0 and have done since it came out; I get on just fine with it and for the most part I don't find a whole lot is out of my grasp. You'll either need 8.1 to run the Seph/Lemon engines or have to use this nifty program on the .gm81 files to turn them into 8.0 compatible .gmk files.

What lawatson is talking about with "weird technical changes" between Studio and the GM 8.0 range is that many features of the latter have been deprecated as the manufacturers of the program shifted their attention from a application that could produce windows games to an application that could produce a range of games on different operating systems and devices. Many functions in GM 8.0 are only really applicable to producing games for windows, for instance the ability to execute dos shells from within GM, so these are predominantly the ones that have been removed. The main change however is to do with something called "sandboxing", which refers to the fact that Studio is unable to save or load files outside of the games main directory which is forced into the hidden %appdata% folder; long story short, in many ways it limits file manipulation as a games producer and pares down/removes many useful functions. Here's a list of all functions that have been deprecated, though I'm not sure how much this will mean to you. What I will say to round this point about deprecation up is that while some of these functions are cool, the vast majority did need to be deprecated as they are now useless/obsolete and not only that but if you're just beginning it's unlikely you'd be experimenting with much of that stuff anyway, so it's likely to be inconsequential.

Studio however, is imo a much better program than GM 8.0. A lot of new features are nice and useful, the gui is similar but much more user friendly and, as Katz said, there are shaders which are cool graphical effects you can find examples of on gmc everywhere. The only reason I stick to GM 8.0 is because I use some of the old functions and right now it's not feasible for me to move back to Studio even though I have used it to much success for projects in the past, including an interactive HTML5 game which is sadly no longer with us.

The way I see it is like this:

GM 8.0/8.1 & Seph/Lemon engines:

+Robust engines with a lot of community support, proper physics and nifty features.
+GM 8.0/8.1 games tend to run on a wide range of windows computers.
+No deprecated functions.
-No shaders or new functions.
-Rusty but usable GUI.
-Impossible to obtain legally unless you bought previous.

GM:Studio + Studio engine:
+Lots new functions with constant updates to software.
+More user-friendly GUI.
+Standard version is free.
-However it has a splash screen advertising Game Maker that you cannot remove.
-Good engine but not as many features as Seph/Lemon and there are complaints about the physics which can turn some people away.
-Games published this way have a tendency not to run on older windows machines.


For me the distinction comes down to this: GM 8.0/8.1 is better if your main focus is to create IWBTG games as the engines are better and there's more community support for them, but if your main focus is just games in general then GM:Studio is by far the best choice and a nice way to future-proof yourself as it's constantly being updated. I want to end this by reiterating my original statement though: if you're just getting into it then shaders and deprecated functions etc won't mean a lot to you and won't really affect your game designing process at all, so either option is completely viable and fruitful.

Hope this helps!

infern0man1

  • ~(=^・ω・^)ψ
  • Global Moderator
  • Oatmeal Killer
  • Posts: 1.021
  • Dear sir stroke madam, fire exclamation point
  • OS:
  • Windows 8.1/Server 2013 Windows 8.1/Server 2013
  • Browser:
  • Chrome 44.0.2403.155 Chrome 44.0.2403.155
    • View Profile
    • Twitter
  • Playstyle: Keyboard
Re: Tutorial: Getting Started With Fangame Development
« Reply #47 on: August 18, 2015, 03:54:15 PM »
The latest version of Lemon's engine works with 8.0, just an FYI.

Kyir

  • The Kid
  • Posts: 293
  • Normal Guy
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 44.0.2403.155 Chrome 44.0.2403.155
    • View Profile
  • Playstyle: Keyboard
Re: Tutorial: Getting Started With Fangame Development
« Reply #48 on: August 18, 2015, 04:30:57 PM »
There's no reason to not use GMS. Just politely request someone who has the full version to compile it for you if you can't deal with the load screen on the free version.

Wolsk

  • The Kid
  • Posts: 332
  • Wolsky McKitty :3
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 44.0.2403.133 Chrome 44.0.2403.133
    • View Profile
  • Playstyle: Keyboard
Re: Tutorial: Getting Started With Fangame Development
« Reply #49 on: August 18, 2015, 06:15:57 PM »
The reason not to use GMS is that the engine isn't complete, so the physics still have some issues.
I've been wanting to start on a fangame, but I won't until the Studio engine is improved.
meow :3

Why are you complaining about being a meme? this is a positive thing

Kyir

  • The Kid
  • Posts: 293
  • Normal Guy
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 44.0.2403.155 Chrome 44.0.2403.155
    • View Profile
  • Playstyle: Keyboard
Re: Tutorial: Getting Started With Fangame Development
« Reply #50 on: August 18, 2015, 07:18:09 PM »
I haven't seen any complaints on the physics since the last big patch on them. Do you know of a specific problem with it?

patrickgh3

  • Spike Dodger
  • Posts: 169
  • stay optimistic! :D
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 44.0.2403.155 Chrome 44.0.2403.155
    • View Profile
    • Github
  • Playstyle: Keyboard
Re: Tutorial: Getting Started With Fangame Development
« Reply #51 on: August 18, 2015, 08:48:26 PM »
The reason not to use GMS is that the engine isn't complete, so the physics still have some issues.
I've been wanting to start on a fangame, but I won't until the Studio engine is improved.

I haven't seen any complaints on the physics since the last big patch on them. Do you know of a specific problem with it?

I think walljump vines are the biggest thing that's missing. It's nice to have those, and I can understand wanting other miscellaneous stuff like gravity flippers and ladders. However, I recommend using Studio even if the current version of the KS engine is missing some features or has some minor physics inconsistencies, because _you can always add and fix that stuff later_. If a new version of the engine is released, with physics improvements or vines or whatever, you can update your game accordingly very easily.

Another plus I would like to add to Derf's list for Studio is the project structure is a lot more friendly. This breaks down into a bunch of small benefits that add up. Reusing resources from other projects is simpler than how it worked in 8.1 with resource files. Tools like my RMJ room importer are much easier to make for Studio, so you can use that tool and expect other fangame tools to be made. You can also use source control much more easily, though I don't expect most to use it for fangame development, it's a nice option to know about if you're considering making non-fangames in Game Maker.

Overall, Studio adds new features and fixes annoyances in 8.1. It's the future; there will only be more support for Studio and less support for 8.1 from now on, in terms of both general use and specifically for fangames.

Wolsk

  • The Kid
  • Posts: 332
  • Wolsky McKitty :3
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 44.0.2403.133 Chrome 44.0.2403.133
    • View Profile
  • Playstyle: Keyboard
Re: Tutorial: Getting Started With Fangame Development
« Reply #52 on: August 19, 2015, 12:42:54 AM »
My biggest issue with the Studio engine right now is that if you jump the frame you land like in a bhop, it uses your double jump instead of starting with a single jump.  It's pretty annoying for players who want to go quickly.
meow :3

Why are you complaining about being a meme? this is a positive thing

klazen108

  • Administrator
  • The Kid
  • Posts: 286
  • your a kid now your a squid now
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 44.0.2403.155 Chrome 44.0.2403.155
    • View Profile
    • Delicious-Fruit
  • Playstyle: Keyboard
Re: Tutorial: Getting Started With Fangame Development
« Reply #53 on: August 20, 2015, 10:19:48 AM »
Yoyo actually edited the player in the KS engine and fixed the physics problems, I've ported his changes over and tested it and everything (including bunnyhopping) seems to work fine now. However, he's working on his own engine, so I'm going to let him release his before I release a patch for KS, I don't want to be that guy who steals all someone's code :P

Going forward, Yoyo's engine will probably be the Yuuutu equivalent, and this one the Seph equivalent. By that I mean you'll pick his engine if you want all the basic gimmicks pre-programmed for you, and you'll pick KS if you want more of a clean slate with only the basic physics provided.

Sorry for the silence recently, I've been pretty busy with work and other projects, not enough time in the day  :BibleThump:

Derf

  • Guest
Re: Tutorial: Getting Started With Fangame Development
« Reply #54 on: August 20, 2015, 10:26:48 AM »
That's really good news Klazen! I can't wait for the next KS update.

Vitellari

  • Wannabe
  • Posts: 10
  • Wandering Around Aimlessly
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 46.0.2490.71 Chrome 46.0.2490.71
    • View Profile
  • Playstyle: Keyboard
Re: Tutorial: Getting Started With Fangame Development
« Reply #55 on: October 16, 2015, 05:42:11 AM »
Thx, you've helped me a lot :atkHappy:
VVVVVV

zaphod77

  • Wannabe
  • Posts: 33
  • OS:
  • Windows 10 Windows 10
  • Browser:
  • Chrome 47.0.2526.111 Chrome 47.0.2526.111
    • View Profile
  • Playstyle: Keyboard
Re: Tutorial: Getting Started With Fangame Development
« Reply #56 on: January 20, 2016, 08:27:11 AM »
some tips.

I Wanna Be the Studio Engine YoYoYo Edition uses objPlayer instead of player as the player object.

Making something (like, say, a mini Hachune Miku) chase the player is easy, simply place this is it's step event.

if (instance_exists(objPlayer))
{
direction=point_direction(x,y,objPlayer.x,objPlayer.y);
}

In the create event just set it's speed to whatever you want.

It's possible to modify all of any given object at once on the screen.  Examples include launching all of them at the player, making them all fall down, making them freeze and change color, expand outwards from Miku's hand, etc.

You can either use an alarm, or a tick counter in the boss itself to do this. the important trick is the with statement

So say you've spat out a bunch of objCherryBounceRandom.  At a certain point in the song, you want them to stop, and launch a second batch and then later make them all fly outwards.

To pause them all, you simply put in you alarm/step event.

with (objCherryBounceRandom)
{
speed=0;
}

Of course if we were to try to make it fly away, it would still bounce. this will not do. so we need to put in a hook in objCherryBounce to allow the bounce to be bypassed.

Open objCherryBounce. Add to the create event

keep_bouncing=true;
originx=x;
originy=y; ///remember where i spawned so we can fly away from there later.

and then change the Step event to.

if (keep_bouncing)
{
move_bounce_solid(0);
}


Now you can turn off the bounce feature of your bouncing cherries when you need to.

we make them fly off away from Miku's hands with

with (objCherryBounceRandom)
{
speed=6; ///or whatever
keep_bouncing=false;
direction=point_direction(originx,originy,x,y);
}

by swapping originx with x and y with origin y, it will go towards the spawn point instead.

You probably want them to change colors too. in this case, simply make a new object, say objCherryBounceRandomColorable with objCherryBounceRandom as a parent using the white cherry sprite with no events. and then when you spawn then you can

a.image_blend = make_color_rgb(100,255,100);

assuming you used

a = instance_create(spawnx,spawny,objCherryBounceRandomColorable);

to spawn it.

and when you stop them, you can also change the color with

with (objCherryBounceRandomColorable)
{
speed=0;
image_blend = make_color_rgb(10,10,10); ///dark grey
}

You can even use with to change all objects of one type into another.  Say you have a negi object that goes a random direction of left or right. (what can i say, it's a classic. :) )

with (objCherryBounceRandomColorable)
{
instance_create(x,y,objSidewaysNegi);
instance_destroy();
}

If you need to address different groups of the same object, simple make a child of it with no events.
Coding objSidewaysNegi is left as an exercise to the reader. :)

As we can see, the possibilities are limitless.
« Last Edit: January 20, 2016, 01:54:43 PM by zaphod77 »

klazen108

  • Administrator
  • The Kid
  • Posts: 286
  • your a kid now your a squid now
  • OS:
  • Windows 10 Windows 10
  • Browser:
  • Chrome 50.0.2661.102 Chrome 50.0.2661.102
    • View Profile
    • Delicious-Fruit
  • Playstyle: Keyboard
Re: [UPDATED] Tutorial: Getting Started With Fangame Development
« Reply #57 on: May 31, 2016, 02:01:03 AM »
Over two years since I made the original tutorial... time sure flies! While the tutorial as I've written it is still pretty useful, a bunch has changed since then, like our recent move to GMStudio! In order to stay with the times, I've overhauled everything. Because there's just so much to tell, I felt that using a separate webpage gives me better control over the whole structure, so I've moved it off the forums onto my website.

Even if you're well versed in the fangame creation process, I invite you to take a look at the new and improved tutorial! There's some sections in there based on common questions I get asked from newbies and professionals alike. If you've got a question that isn't covered but think is something everyone should know, please post a reply and let me know! It's not finished yet, but since all the basics are covered, I'm going ahead and releasing it. There may be some glitches and typos (there's over 110,000 characters in the document, my fingers are tired), so let me know if you find any of those too. Stay tuned for updates, maybe more after Fangame Marathon 2016 is over...

Version 2.0 of the Fangame Development Tutorial can be found here!


Denferok

  • Community Manager
  • The Kid
  • Administrator
  • Posts: 355
  • OS:
  • Windows 10 Windows 10
  • Browser:
  • Chrome 50.0.2661.102 Chrome 50.0.2661.102
    • View Profile
    • My stream
  • Playstyle: Keyboard
Re: [UPDATED] Tutorial: Getting Started With Fangame Development
« Reply #58 on: May 31, 2016, 05:18:32 AM »
Minor complaint, having like 30 words per row makes it a bit hard to read, would recommend giving the website a width of like 60% and the margin: auto of course. Other than that, thanks for your great help!

klazen108

  • Administrator
  • The Kid
  • Posts: 286
  • your a kid now your a squid now
  • OS:
  • Windows 10 Windows 10
  • Browser:
  • Chrome 50.0.2661.102 Chrome 50.0.2661.102
    • View Profile
    • Delicious-Fruit
  • Playstyle: Keyboard
Re: [UPDATED] Tutorial: Getting Started With Fangame Development
« Reply #59 on: May 31, 2016, 09:29:59 AM »
Thanks for the suggestion! I'm practicing my web design skills and wanted the page to look nice on mobile, so I was avoiding a set width. I've changed the layout to have a max width of 1024px, so it should still take up all the space on a small screen, while not expanding so much you have to turn your head on a large screen. Hope that helps!