History of GameMaker: "GameMaker: Studio"
2012, May: GameMaker: Studio was launched as a completely new series that targeted commercial developers instead of hobbyists, and supported: #Windows, #Mac_OS (in development since 2007), #HTML5 (in development since 2011), #Android, #iOS, and many other platforms and OSs.
It also completely changed the projects structure: each project is a folder with all resources as individual
Since the launch of Studio, the product has been fully developed by YoYo Games. This makes Game Maker 8.x a closed chapter.
2015, February: GameMaker was acquired by Playtech together with YoYo Games. Announcements reassured improvements and plans to appeal to more advanced developers. They also promised GameMaker Studio 2.0. Nothing was changed for developers.
2016, November: GameMaker Studio 2 beta was released.
2017, March: GameMaker Studio 2, with a completely redesigned IDE rewritten in #CSharp, was released.
Present
Currently, a single code base can run natively across multiple platforms including Android, iOS, HTML5, PS4, Xbox One, Windows Desktop, OS X, Ubuntu, Windows UWP.
Future
GameMaker Studio 2 Roadmap
2012, May: GameMaker: Studio was launched as a completely new series that targeted commercial developers instead of hobbyists, and supported: #Windows, #Mac_OS (in development since 2007), #HTML5 (in development since 2011), #Android, #iOS, and many other platforms and OSs.
It also completely changed the projects structure: each project is a folder with all resources as individual
.gmx files in #XML format. This allows version control, and thus collaboration. Another new feature is a built-in Box2D physics engine.Since the launch of Studio, the product has been fully developed by YoYo Games. This makes Game Maker 8.x a closed chapter.
2015, February: GameMaker was acquired by Playtech together with YoYo Games. Announcements reassured improvements and plans to appeal to more advanced developers. They also promised GameMaker Studio 2.0. Nothing was changed for developers.
2016, November: GameMaker Studio 2 beta was released.
2017, March: GameMaker Studio 2, with a completely redesigned IDE rewritten in #CSharp, was released.
Present
Currently, a single code base can run natively across multiple platforms including Android, iOS, HTML5, PS4, Xbox One, Windows Desktop, OS X, Ubuntu, Windows UWP.
Future
GameMaker Studio 2 Roadmap
No idea is too correct for it to not need reinvention; not even the wheel.
“All our knowledge begins with the senses, proceeds then to the understanding, and ends with reason. There is nothing higher than reason.”
— Immanuel Kant
— Immanuel Kant
“I don't believe in the sort of eureka moment idea. I think it's a myth. I'm very suspicious that actually Archimedes had been thinking about that problem for a long time. And it wasn't that suddenly it came to him.”
— Tim Berners-Lee
— Tim Berners-Lee
“I am on the verge of mysteries and the veil is getting thinner and thinner. The nights seem to me too long... I am often scolded by Madame Pasteur, but I tell her I shall lead her to fame.”
— Louis Pasteur
— Louis Pasteur
“Intuition becomes increasingly valuable in the new information society precisely because there is so much data.”
— John Naisbitt
— John Naisbitt
Let the age of approximations be over. Stop formulating the reality with the ironically named "real" numbers. Existence is discrete in every way. Continuity is an impossibility. Even Democritus knew this.
A machine that would be left dormant forever without human intervention is not truly intelligent.
Data must be meaningful for the machine, not [just] meaningful to us.
Said meaning must be communicate-able among several separate subjects, to ensure its evolution and prevent its corruption.
Data must be meaningful for the machine, not [just] meaningful to us.
Said meaning must be communicate-able among several separate subjects, to ensure its evolution and prevent its corruption.
Most features in languages are solutions to problems that could've been avoided entirely.
Programming means writing a program;
meta-programming means writing a program that writes a program, possibly itself.
meta-programming means writing a program that writes a program, possibly itself.
Ideally, mental datatypes such as text comprising natural language, pictures and sounds, will be transferrable among people.
“Classes will dull your mind, destroy the potential for authentic creativity.”
— John Nash, A Beautiful Mind (2001)
— John Nash, A Beautiful Mind (2001)
You cannot control what you cannot see [or feel].
You cannot send meaningful input to what from which you cannot recieve meaningful output.
You cannot send meaningful input to what from which you cannot recieve meaningful output.
instance place vs. place meeting
Having merged and summarized the information found in the documentations of both GMS1.3 and GM8, I've prepared the following comparison. In the end you will find that they are both the same rountine, only they return different things. According to the documentation of GMS1.3,
These functions let you check a position for a collision against some object, using the collision mask of the current instance. These effectively move the instance to the new position, check for a collision, move it back and tell you if a collision was found or not.
These will work for precise collisions, but only if both the instance and the object being checked for have precise collision masks selected otherwise only bounding box collisions are applied.
In both,
Having merged and summarized the information found in the documentations of both GMS1.3 and GM8, I've prepared the following comparison. In the end you will find that they are both the same rountine, only they return different things. According to the documentation of GMS1.3,
place_meeting is slightly faster than instance_place.These functions let you check a position for a collision against some object, using the collision mask of the current instance. These effectively move the instance to the new position, check for a collision, move it back and tell you if a collision was found or not.
These will work for precise collisions, but only if both the instance and the object being checked for have precise collision masks selected otherwise only bounding box collisions are applied.
// place_meeting(x, y, obj) returns whether the instance placed at position (x, y) meets obj
if keyboard_check(vk_left) if not place_meeting(x-5, y, wall) then x -= 5
// instance_place(x, y, obj) returns some obj, or noone, met when the current instance is placed at position (x, y)
with instance_place(x, y, enemy) {
other.hitpoints -= damage
instance_destroy()
}
In both,
obj can be an object, an instance, all, or other; however the documentation on GM8 lacks allowing other for obj in instance_placeWhen a program is being stupid, i.e. acts against common sense, resolve the issue by asking yourself how you know, that which you know. How is the issue ridiculously obvious to you? Implement a copy of the same thinking pattern into your program. That's all high level programming is about.