0. CONTENTS
1
Table Of Contents This Issue Hey everyone. With the release of issue 8 here, we are gradually getting closer to the release of issue 10. Issue 10 will be a milestone for GM Tech that we intend to celebrate even if we are not the first magazine to make it to this issue. Issue 8 is a great issue that I’m sure you will enjoy reading just like all the previous issues. Issue 7 was a great issue that received some great replies despite an error in a website link to the Game Maker news site. It was very surprising to see how excited our readers were to read issue 7. We are very happy that people really look forward to each and every issue that follows the previous ones. Unlike many of the previous issues, issue 7 was released only 30 days after issue 6, making it one of the fastest issues that we have written and released. Although submissions have been slow like issue 7, we are powering ahead without slowdown from lack of content. We have another 5 new staff members and starting from issue 8 we will have a few new features to the magazine, these include: - Work In Progress Info: This will just be a paragraph or more about the progress on some projects that people can take a look at. This aims at supporting different works in progress by making them known to other members. - Find the bug: This will be a new activity that will go in with the comic. This activity will open the door to new competitions in the magazine - GMTECH Game Choice: This is a new feature for the reviews section. GMT will award one high rated game with this. - Redesigned advert pages: The advert pages need a new look as it was the ugliest part of the magazine. We hope that with these new improvements you will enjoy another great issue. gmjab Editor
1. ARTICLES Whats Going On......................................................................................... 2 What Makes a Good Game.................................................................. 4 What's Important: Graphics or Gameplay......................................5 Stopping Beginners Starting Out of their Depth..........................6 Hot Debate: GMHV................................................................................... 7 The Story of Stone Guardian................................................................ 8 User Opinion: Does GM's Speed Bother You?...........................10 2. GMDEV Game Maker Tips................................................................................... 12 3D Transformations: A Confusing Outlook..................................13 Theory of Online Gaming..................................................................... 14 Importing Your Own Custom Colours into GM.......................... 15 How to Create Simple A.I.................................................................... 16 Tut: Move Towards................................................................................ 17 Tut: Laser Beam..................................................................................... 17 Pixel Art Tutorial..................................................................................... 18 3. GAMES & REVIEWS Exclusive Preview: Raptor 2 Demo 3.............................................19 Preview: Senseless War..................................................................... 20 Preview: Zomster................................................................................... 21 Preview: Turret Defence..................................................................... 23 Preview: Warzone................................................................................. 24 Review: Mr. Pratt's Haunted Mansion.......................................... 25 4. EXTRAS Look At........................................................................................................ 26 WIP Look At.............................................................................................. 28 Interview With: Cactus......................................................................... 29 Interview With: Radnom...................................................................... 30 Interview With: PugFugly..................................................................... 31 Comic........................................................................................................... 32 Find the Bug.............................................................................................. 32 Word Search........................................................................................... 33 Spot the Difference............................................................................... 33 Free Applications.................................................................................... 34 Adverts....................................................................................................... 35 Closing......................................................................................................... 36
Staff Gamez93.........GMTECH Owner Rup13.................Assistant Editor Cubex DE.............................. Writer Keysle.................................... Writer Aertcz.................................... Writer Christian Sciberras..........Writer Medieval..................... Researcher Bob–11500K........ Comic Artist trose7...............................Reviewer
gmjab........... Magazine Editor Alex..................................Advisor mememe........................Writer TheMagnitude..............Writer GeoS.................................Writer Polystyrene Man.........Writer GMmarine...........Researcher the9thdude.............. Reviewer Hiyukantaro............ Tut writer
Online Website......................................................... www.gamemakertech.info Forum........................................................www.gmtech.invisionplus.net Email........................................................Gmtech.magazine@gmail.com
1
1. ARTICLES
2
Whats Going On GMT: Goals
The Game Maker Race
Even though this wasn't a main goal, we are happy to celebrate 100 members registered on our forums. On top of that we have recently broken the 2000 post mark. This is a good example that shows that many people enjoy reading the GM TECH magazine.
You may have seen a few banners here and there about a competition called 'The Game Maker Race'. If haven't bothered to have a look at what's all about then you are missing out. For building a 2D fire and ice related game in a month you could win a few prizes. For getting in the top 5 you will get a free 1GB flash drive and if you win, you will also get to chose 2 games from a list to get for free. So what are you waiting for? Check out the website for more details at www.thegmrace.com.
GMT: A bit of downtime Sometime late last month, you may have notice that the website went down. Instead of loading the page it asked you to download the start PHP page. This downtime was just due to our host as the hosting website went down also. The good news is we were back online by the next day.
Everyone might remember how the Markup Magazine was on the YoYo Games front page in Beta 1 of the YoYo Games website. Now we are also on the YoYo Games website with Markup Magazine under the 'Make' page in Beta 2 of the YoYo Games website. This link will benefit Game Maker users as well as make the magazine more known amongst the community.
No, this isn't new news but if you are one of those people who want nothing to do with YoYo Games and never visit the website than you should know that they have updated their website with an all new ‘Instant Play’ feature. This allows you to play games on the go. You will also notice the adverts on the side of the website. Whilst the adverts don't pose much of a problem, I would have to say the website looked better without them. Also some of the adverts may be slightly inappropriate to the younger users, such as 'The love calculator' that comes up every now and then.
GMT: New Site
Game Maker: On the Move
GMT: We're on YoYo
Visited the GMTECH site lately? If so, you would have seen our new website design. This design not only looks better but also suites the magazine better. Be sure to check it out as well as all the latest news.
GMT: Farewell Cubex DE It's not something we enjoy seeing, but we would like to celebrate Cubex's time and work while being a part of the GM TECH Magazine. You would have read Cubex's good work in the articles, reviews and Game Maker tips he provided. Some of the major articles he did were the “Planning a Game” article in Issue 6 and the “Developing a Game” article in Issue 7. Cubex DE did very good work and never disappointed us. We hope you get your dream job in the future. Thank you for being a part of GM TECH and good luck.
GMT: Killer Spam Sadly, the spam lives on. After applying the new member only posting permissions to the ‘Advertisement’ forum, the spam died for about a month. Sadly, it has returned, but in the 'Join the Team' forum. However this spam has gone ugly where on some occasions, it actually posted pornography images in their posts. By doing this, the spambot has gone one step too far. Unfortunately this means we are now considering changing the complete 'Submit' section to registered users only. This is something we never wanted to do, but we do not want to endanger any users of our forum when the spambot tries to post their adult content. We are very sorry for this inconvenience and we hope you will understand.
2
YoYo Games BETA II
Where is Game Maker going, you might say? Well it's going to the Mac. Yes, according to YoYo Games, they are making a new Game Maker version which works on a Mac and can make Mac games. Currently there aren’t many Mac users that use Game Maker (why would there be, Game Maker only works on Windows properly). Once it is released, you may just see new flocks of Mac users joining the communities. A problem with this however is that games made by Mac users might only create Mac versions of their games which will stop Windows users from playing their games. But if Game Maker is made to export games to both Windows and Mac then there shouldn't be a problem.
Game Maker: The Runner is Evolving So what's changing? Well its the Game Maker runner. YoYo Games is now making the Game Maker runner in C++. This is a great answer to many of the users that wanted something similar to this. This update may come out around February according to YoYo Games.
1. ARTICLES
3
Whats Going On - (Continued)
Shout Out:Website Maker - samscam Have you ever wanted to create your own website but didn't know how to start with it? Well, then we've got the right solution for you. With our Website Maker, you can create your own professional looking website. Your website can be previewed while editing it and you can add up to 50 links to wherever you like. You can choose your own colours and images, add a background sound or make it funny with some JavaScript. You can also set the title and copyright of your page. If that's not enough, you can switch to an HTML editor in which you can just edit the code for your website to change or add whatever you'd like to add. Download it now and enjoy the experience of website making! Click Here to Visit
to play games, what they’re like and what to expect (and what not to expect). We decided it was time to bring out a new era of gaming on your personal computer, so we're going to do just that. We know how you guys think and we know what you guys want...or do we? Actually, I say we don't. So come tell us what you want and we'll put it into the game as best we can and of course, what else is better than an offline RPG and an online version of it where both versions are totally free and will continue to be free with more brilliant entertainment services in the future? Nothing! So get downloading and get gaming (when we release it of course) at www.seventh-link.com and/or www.seventhlink.com/forums .
Shout Out: Seventh-Link Entertainment – Night Flurry
Game Sneak Peek: Welcome To Seventh-Link Entertainment! We'd like to formally Shadow Zone developed By TheMagnitude introduce you to our wonderful company. Here at SeventhLink Entertainment we aim to bring YOU guys entertainment and the best there is of it! Established over the internet in 2007, Seventh-Link Entertainment is hoping to be a giant in interactive entertainment available to millions worldwide. We grouped ourselves together to first create our offline Role Playing Game, ‘The Eclipse Effect’ which is soon to be online too. We hope to redefine the way games and entertainment services are both released and used worldwide. ‘The Eclipse Effect’ is actually still being made and will continue to be even when the first release of it becomes publicly available. We want to hear your input! You tell us what you'd like in the game and we'll do our best to implement it in someway or another. It's the ultimate game ever! You choose what’s in and what’s out! Until then though, there's plenty to tell us and for us to tell you, so have fun here! We are a small group of game developers and entertainers with great experience in our fields of expertise and with that we want to totally redefine how games are released, played and how entertainment entertains people. We came together on a forum and started to develop our game. Hopefully we'll make more games in the future and expand on our small empire of games software and entertainment we have available. With our innovative group of staff, Seventh-Link Entertainment looks to bring entertainment back to the world again like it used to be, pure entertainment. We are a friendly group and we ourselves are game players who have experienced various MMORPGs and other games and so we know exactly how
3
Shadow Zone is a new TDS in the making which currently features: • 11 Weapons including AK-47, M16, bazooka, grenades, desert eagle. • 3D graphics • TDS • Online (atm up to 8 players) (Maybe Reflect enabled) • Map creator • Really hard AI bots • Pre-rendered shadows Be sure to be on the lookout for this new game.
1. ARTICLES
4
What Makes a Good Game By TheMagnitude This can be a number of things, whether it is good multiplayer support, a gripping storyline, original concept, good replay value, or just plain fun, fun, fun. I'm not going to list every single way a game can be good, I am however, going to give you hints, tips, and techniques on how to make your game stand out. What you must first do is place yourself in the players seat, what will the player of your game think and how will s/he react to the game. For you to understand how to make a good game you must first understand how to be one with the player. You are the player. If you were playing the game what would YOU think? However this may be difficult if you do not like the genre or type of game you are making. Anyway here are some key points to keep in mind when developing your game:.
Does it run fast and smoothly without errors? Nobody wants to play a glitch filled game. If a player cannot get past a certain part without having error message(s) or s/he keeps getting stuck to the environment and all the sprite offsets are wrong s/he will soon get bored and perhaps angry. Freezing can be avoided with clever scripts and sometimes unchecking/checking the solid checkbox on objects can really show a difference. Glitches can be avoided by either coding it correctly the first time (which I can tell you very rarely happens), or the more common option, spending a decent amount of time finding out where a bug is and squashing it. The more bugs you squash the more knowledge you will gain on how to avoid having to confront them again. A room speed of no more than 60FPS is needed since our eyes see at about 60FPS which means any more frames will just be a waste and will only look about 60FPS when we look at it. Another point to add is about FPS and it's how to keep that FPS high and not have it being slowed down by processes in your game that can be avoided. This can include using tiles in place of an object that remains stationary and has no events. Your game does not also need to draw instances outside the view with a given border which I made a little script for: Script Name: instance_in_view(id,view,view_margin) if argument0.x+argument2>view_xview[argument1] and argument0.x-argument2< view_xview[argument1]+view_wview[argument1] and argument0.y+argument2> view_yview[argument1] and argument0.y-argument2< view_yview[argument1]+view_hview[argument1] return 1; else return 0;
A typical example of this would be to draw an airplane (size 64x64, with a sprite offset of 32,32) only if it's in view like so:
4
if instance_in_view(id,0,32) { draw_sprite(spr_airplane,0,x,y); } /*32 is the maximum distance it can be outside the view before it is draw, however you could be more precise with this and input sqrt(sqr(32)+sqr(32)). If you don't understand I'm not explaining Pythagoras here there's Wikipedia for that :)*/
Does it have good replay value? This is key in any game really, if your game can only be played once then it doesn't take an idiot to figure out that it being played several times would be better. A very good and widely used technique for this is random maps. This makes it different for the player each time, unless in the highly irregular occurrence of it being the same. If a player is faced with a new challenge each time there can be no end to the fun. However, a good random map generator is necessary, sometimes placing objects in a random place can do the trick but in most cases it doesn't. Another good thing to consider is a map editor so if a player gets bored of a playing the same map over and over, s/he can make their own map. A very, very important issue in making your game replayable is multiplayer, and by multiplayer I mean online multiplayer. Offline player vs. player hot seat can be fun but if you have no friends who can you play then? However if you make your game online, then you can play anyone in the world (to a certain extent). Yes inputting IPâ&#x20AC;&#x2122;s can be fun but a server list? Now that's just really fun. There are some developers out there offering server lists and stats such as Reflect Games but if you want to have your own then I suggest you learn MySQL or something of the sort.
Is it original and gripping? By original I mean something that hasn't been done before. Yeah of course Mario remakes can be alright to play once in a while, but if your game is original like the Rubix Cube, that guy was a millionaire over night (I know it's not a computer game but the same gaming idea applies). Usually original games are incredibly simple and just require a decent thinking time. Also if your game does not grip the player with things such as a really good story line, or if the player doesnâ&#x20AC;&#x2122;t get rewarded when s/he accomplishes certain things in the game, then they may loose interest in the game and go and play one of the thousands of other games out there. Remember a good game requires careful planning, and a lot of dedication, so giving up is not an option. If you want to get your name around, go ahead and shout it out!
1. ARTICLES
5
What's Important: Graphics Or Gameplay By Medieval I have seen many people on the GMC say that gameplay is, by far, more important than the graphics. This might be true, but in fact there are so many points with which can be proved that both are on the same level of importance. As you read this article you will find out why graphics are important, how it can affect your gameplay, why you should have good graphics in your game, and what other people think about it.
mememe “I believe that good graphics don't make a game addictive, but does something else that gameplay can't” Melee-Master “It should be the perfect mix” Potnop “People used to be totally addicted to space invaders, and I wouldn't say those graphics are that great “ Mgamerz “Tetris is a bunch of falling, 1 colored blocks, and it's highly addictive. So no. I think it's the idea behind the game that makes it great, not how well the graphics are.”
Graphics really can affect the gameplay in your game. In my opinion, good graphical effects can make a good influence on different aspects of the game. It’s essential if you want to give the player a specific mood whilst playing. How would you scare a player if there is nothing to scare him? You could compare it with this; For a school project, you need to do some research on the subject you have chosen. All the information that you gather, is the code; The next school day when you have to present it, the teacher gives you a lower grade since your presentation paper looks all sloppy and not put together well enough, or maybe your speech wasn’t good and looked unprepared. Although many people say that gameplay is by far more important, Not one person I have seen on the GMC would download a game without seeing screenshots first. They post “No screenshot, no download”, ignore the download link and check out the next topic. When the author of the topic notices that he missed a download from someone, he posts a screenshot on his topic (If he knows how to). People now can’t complain about a missing screenshot. However, if the graphics of his game are ugly, the download link still gets ignored after a user has seen the screenshot. This, again, shows how important graphics really are, and how they are essential to attract a user to download your game. This is why you should always put the same amount of effort into both. If you can’t do graphics by yourself, ask someone else to do it for you. I have collected a few quotes around the GMC, in which people say which they think is more important, and if they make a game addictive;
5
SolarGames “Take an awesome game. Now, pretend something is wrong with your graphics card and all it manages to draw are ugly different-colored boxes. BUT, the gameplay has not changed at all. It's still an amazing game, it just looks terrible.
Take a horrible, disgusting game. Now give it beautiful, extremely good graphics. Professional, even. So, you're playing the game, pretty much only noticing the graphics. By this, you don't realize that the game is crud. So, I think graphics can lure people into playing crud, but sooner or later they will probably realize that. After that, they'll probably get mad, and so on and so on...” These statements confirm an earlier statement in this article; you always need to keep graphics and gameplay on the same level in order to keep people playing, or even getting your sequel if you decide to release one. Let’s look back at the example that I showed you earlier. You have put together an amazing presentation about your subjects. Your teacher becomes interested, and asks you to start when everyone in your class is listening. However, no matter how hard you try to get them interested, as soon as your teacher and classmates find out that the actual information collected is utter crap, they will lose their interest for your project. This way you will still get a lower grade. The conclusion of this is that you should always make both aspects of the game amaze the player, so that he/she will stay interested and eventually be addicted to your game, and will keep playing it. I hope that this article has helped you.
1. ARTICLES
6
Stopping Beginners Starting Out Of Their Depth By GeoS There seems to a big, well documented problem with beginners (lets not use the word 'newbies' here) deciding that they'll start their epic adventure into the mysteries of game development with 'omg lik runescape but wid guns lol'. That really isn't the way to go. Your favourite games are made by professional teams of designers, artists and programmers over a period of years. How one inexperienced person with no budget is going to achieve this in less than their lifespan is beyond me, and hopefully as you know, or will realise, beyond you. On that note, I've created a little list of what to avoid when planning the scale and complexity of your first game.
Starting a team The last thing you need when working on your first game is having the difficulty of managing your first team as well. It seems easy, get everyone else to do the bits youâ&#x20AC;&#x2122;re stuck on, but make sure to stick your name on it. You have to remember that when money isn't involved, it's your vision, and not many will fully join it voluntarily unless the truly understand what you are trying to achieve. It'll seem fine for the first week, designing, bringing ideas together, but inexperienced managing will leave you all alone again, perhaps with some half-written code you don't understand or some half-done art you can't copy in terms of style. Good to join for experience after a first game, bad to start unless you truly can handle it.
3D games One more dimension than you can probably handle. 3D brings in new complexities, and anyone would probably tell you to understand 2D fully before trying 3D. 3D modelling is also particularly more difficult than 2D spriting, as is level design and programming. Stick with 2D, and also avoid 3D illusion techniques such as isometric.
Online games As BlaXun wrote in Issue 7, the first question you'll be asking yourself when making an online game is 'Do I have the knowledge on how to make an online game?' If you do, congratulations, your probably one up on me and can continue making a Runescape clone. If you don't however understand the key concepts of online game structure, never mind simple
6
programming, you should really be asking yourself if you can really manage it. So, let's add a question before BlaXun's: 'Can I really develop a game, say, an RPG, on the scale of it's online cousin, a MMORPG, never mind the additional complexity caused by developing for online?'
Planning out of your depth If you plan too much, you'll just want to keep adding and adding and adding until it gets into a ridiculous list of promises with no work for proof. Any look at the 'Game Design' forum in the GMC will show you that. Make sure that every point you state, especially to others, you are actually capable of achieving.
Not planning at all It really does help you if you plan out what youâ&#x20AC;&#x2122;re doing before you do it. Think about how you are going to achieve things, and if you can't achieve something, look it up in the amazing list of resources you have on the wonderful internet. It might help you to sketch out specific sprites and frames before doing them in pixel. Ok so sure, your thinking that's all well and fine, but what about what you should do? Well I believe someone once put it that what you can learn programming Tic-Tac-Toe is a mile ahead of what you'll learn failing to make the next Quake. I'm not saying you should learn to make Tic-Tac-Toe, that's actually quite boring and aiming a little low, but what I'm trying to say is that for your first effort, make sure to keep with what you know, and then add on features your curious about learning. For example, if you were making a top down shooter, I'm sure you'd be interested in learning how to make the character look in the direction of the mouse. So, all in all, plan realistically, set yourself an aim every day during development, and I'm sure you'll be on your way to success.
1. ARTICLES
7
Hot Debate: GMHV By Aertcz The GM Video Fad It all started with the massive hype for GMTV which would be created by Danny. However, it seems a couple of people wanted to join the bandwagon by creating their own Game Maker videos themselves. The main competitor right now is Nateistoraw's GMHV. Many people speculate that GMHV was purposely rushed and released before GMTV, just so Nateistoraw could claim that he was the "original" creator of the Game Maker video series. The controversy not only lies before the members at GMC, but also before the people who govern it.
GMHV's Videos As stated above, the main speculation of GMHV was to compete directly with GMTV. Has this affected the quality of the videos which would be made? What were the main objectives of this video service? GMHV was created by Nateistoraw to help users understand Game Maker better. His videos are currently directed towards complete newbies as he has stated. Nateistoraw tries to help by showing his viewers content (editable examples) which are made by other users in the GMC, and later explaining how everything works. Let’s simply take a closer look in at these Helper Videos:
Episode 1- Fake Destructible Terrain Tutorial Destructible terrain has been a hot discussion in the Expert's section in the GMC. So why not have our trusty Nateistoraw show us how to create some by showing us his first video on it. Be careful when playing the video, you will first be greeted by the high-pitch screech of Nateistoraw by screaming "TUTORIALS", so remember to lower the volume on your computer! The tutorial which he interviews is made by Mega/Mecha Noob. I am not sure which one it is, because of the unclear speech by our video host (Nateistoraw). The video tutorial is started by Nateistoraw showing us all the sprites which were provided in the editable. He will later show you how to use the image editor by colouring a blank circle in with blue. Remember that these videos were aimed at a very beginner audience.
7
speed determines how many steps are in a second. Therefore, if the room speed is 30 and the alarm is set to 60; the alarm is activated every 2 seconds. Not a great job Nateistoraw. The rest of the tutorial wasn't really teaching you anything. All it did was show the user a bunch of D&D icons with Nateistoraw reading off what they are. It could be useful to newbies, but just by reading what each of them is, isn’t going to help the viewer remember what they do.
Episode 2 - Motion Blur Tutorial So after the first GMHV video, another video is released. This time it is based of Specter's motion blur example. He still has the pathetic annoying high-pitched screech upon listening to this video; so once again, please turn down your speakers! I suggest letting the video play for 2 minutes before looking at the video. All the first 2 minutes really do, is show Nateistoraw talk about what he’s going to do and he even has the nerve to make us watch him download the editable! I can't really say much about the video, all Nateistoraw did was show us some code and say "This is very basic". Then further along in the video, Nateistoraw makes us wait an additional 10-20 seconds for the example to load on his computer. His excuse? "He wanted us to view it in real time". It is disappointing how Nateistoraw didn’t seem to explain much once again, I hoped that some massive improvements were going to happen.
Random GML code - Something which Nateistoraw might have made Alas, this was a very depressing video as well. His so called expertise still fascinates me. He starts off his video by teaching us the exact names of his sprites (which is very useful for us to know). Then we get to the exciting part. Nateistoraw teaches the newbie how to move his character by using simple code such as: x+=3 x-=3
As soon as he opens up the first object and tries to explain it, I realize how untrue his statements are. He shows an alarm D&D which is set to 60. This is what he had to say about it: "It has an alarm system an' everything on it. Yeah, so; they come out every 60 seconds or milliseconds."
He later goes on to show us his enemy which has a step event that "Controls all". I guess I was wrong about the step event. I thought the step event was an event that runs all its actions continuously. Despite the fact of how Nateistoraw mixed up his facts yet again, at least he showed a little bit of how the code works and tried to help the newbies.
Wow, what a big mistake! The number he looked at aren’t milliseconds or seconds, but the amount of steps. The room
I was able to have an interview with Nateistoraw via MSN. What you are about to read may shock you.
1. ARTICLES
8
Hot Debate: GMHV (Continued)
Interview with Nateistoraw Aertcz: What is your stance on GMTV? Was your GMHV a direct way to compete with GMTV? Nateistoraw: “Well at first it was because I was constantly denied video creations to help the GMTV, I already had the GMH so I decided to launch GMHV as a way to show the GMHV who was boss, and then I created a thread and they sent their goons out to purposely get the topic closed.” Nateistoraw: “So now we are okay, being separate video sources for Game Makers.” Aertcz: The moderator FredFredrickson had replied in your topic with "Please don't wear your join date as if it's some kind of badge of honour... your contributions to this forum, which have amounted to your very high warn level, ought to be an indication that your helpfulness to the forum is not reflected very well by the date you joined." Aertcz: Has this effected your stance on making GMHV? Nateistoraw: “Not at all, I have forgotten about that conversation, also my warning levels are for multiple accounts, breaking rules such as posting questions in the advanced and tutorials boards that belonged STRICKLY IN NOVICE, also I asked a member for a hacked key, and I was reported. “
Aertcz: What do you have planned for the future of GMHV? Nateistoraw: “Well, this all depends on the GMC. I am all by myself on the GMHV, and I’m looking for assistants and cohost to help give the videos good quality and get them released in a good schedule. I plan on launching more programmes, but school is about to start, and I would be limited to about 3 videos per month if I am alone. “
Aertcz: Is there anything you would like to add in addition to this conversation? Nateistoraw: “The purpose of the GMHV is to help Game Makers by using videos. We will attempt to become extremely interactive with the GMC users, we hope that when we're finished better gm games are made, and many of them are able to go commercial. The GMHV is there to help newbies, advanced users, and even the depressed programmer(s). Our goal is not to get back at others, but help them along the way for a better tomorrow of PC GM games.”
The Story Of Stone Guardian Submitted By Zedman The Story begins. Chapter 1. Jared (otherwise known as SG), had recently recruited me, Zedman. As far as I am aware I was the last member to join the development team for StoneGuardian. Jared had already hired Cameron (also known as Camman) and Chris (also known as CJA) to do both the programming and music. We set off on our journey, on October 20th 2006, a story began, a dream began, and StoneGuardian began. On this date, 4 people set off to create the greatest ever looking Game Maker created 3D game. At this time, the idea was comical; nobody believed that it would turn into anything good. Its developers: Jared, Cameron, Chris and me, Zedman, on the other hand believed in it.
We continued working on the game over the months, we devoted our entire holidays creating what we thought would be amazing and then some. We were all working so rapidly because of our small fan base pushing us and the numerous reward systems created by Jared to motivate us, such as the badge system, where we were given tokens to exchange for monetary rewards at the end of development. This was just one of the many lies (while obvious now) in the begging that was like a poison seed, growing in the development team waiting to explode into its full colours…. We had released demo after demo after demo…. We were well on our way, but on our way to glory or demise?
The beginning of the end and beginning again. It started off using gm’s built in 3d functions, Jared handed Chapter 2. down a base engine that he created to Cameron, Chris steadily improved his music and sound creating skills, and I undertook the biggest 3d modelling project of my life. I had created so many models for the game, that I, and the rest of the team was so enthusiastic about, that I had 2 folders of game related media each 5 gigabytes big.
8
Jared, who had so far done nothing apart from creating the base engine, began taking things a bit too serious. The arguments began, and the spirits of the developers were diminishing. I slowed down my incredible work rates, Cameron started keeping things from Jared, and Chris worked hard to keep things together. Over this time Cameron and I conferred on everything, we grew a friendship; this friendship would lead to bigger things in the long run.
1. ARTICLES
9
The Story Of Stone Guardian (Continued)
Jared, the destroyer. Chapter 3. By this time we had a well structured GMC topic, fans and decent engine (compared to most other Game Maker 3D games). Our fans were oblivious to what was happening in the background. The lack of a mission statement was SG’s downfall; Jared had begun his downward spiral and was taking StoneGuardian with him. Arguments began about migrating to a new, more stable development system or to a more established Game Maker engine. Jared had refused to take all of Cameron’s late nights into consideration, would all his work go down the drain because of Jared’s greediness? A divide in the team began; Jared was forced to defend his stupid actions, while Cameron, Chris and I (Zedman) battled to keep the game’s development growing.
The Split. Chapter 4. There was no forcing Jared off of his high chair, he wanted what he couldn’t get from us, and that was to change development tools. We ended up splitting; our decision was to let Jared create a C/C++ version of the game on his own and let us finish the game as it was intended, using Game Maker. We split up, Jared had gone one way and the remaining musketeers had gone another, we formed Combustion Entertainment.
Enough is Enough. Chapter 5. Jared had taken his deceit into a whole new level. The only bit of work that he had ever done for the project was giving Cameron the base engine/file to work off, but Jared had stolen it, claiming it was his own, when he had just ripped it off a tutorial from the GMC. We couldn’t go any further; we had to start again because of this devastating truth. The game had to be renamed. It was to be called ‘The Warriors Path’. He had now taken it too far; he had dreams that not even ‘n00bs’ had at the time. We had massive arguments that went on for hours, the numerous lies, such as; he was to begin producing ‘Graphics Cards’ for computers in his garage with help from Microsoft and Ageia. He also stated that he was to begin creating ‘game consoles’ for the public.
Actual excerpt: ”zedman1000: Well, for instance, i found it abit hard to believe that a company that doesnt make graphics cards gave you a list of supplies needed/locations for graphics cards zedman1000: see were im going with this zedman1000: my concerns are well founded zombie13333: nope not at all, because they help me because they make physX cards so they would know zedman1000: hmph zombie13333: and nothings impossible zedman1000: well, from this discussion i can tell we arnt going to get very far zombie13333: w/e….” Jared then took it too far, in his anger; he had gotten into my Developers Account and read all my personal messages. He had now read all the countless messages between me and Cameron stating our well founded dislike of him, his actions and his leadership skills. At this time we decided to leave the matter alone and let Jared figure things out for himself. During this time we experimented with other engines and programs. We decided to use RealmCrafter (openly admitting we had failed). This idea was quickly shot down and we returned to Game Maker for the final attempt at making what we thought would be another entry into games that had crashed and burned.
A new beginning. Chapter 6. The new team of 3, now minus Jared, had been created, with a fresh start that made the entire team feel brand new and ready to go. We began with Xtreme 3d but its lack of documentation forced us to go with the Ultimate engine. After months of hard work down the drain from yet another failed attempt using Xtreme 3d, our energy was slowly dissipating, and Chris hadn’t been heard from for month. This was our final try before we gave up. It was up to me and Cameron now. We couldn’t just let the project fail, two months went by of solid work between me and Cameron, and after so many difficulties, so many bumps along the way, we finally done it. We had finally created a demo of something we were proud of, something we could work on without frustration, and something with pure class, ‘The Warriors Path’. It is now September 2, 2007…
9
1. ARTICLES
10
User Opinion: Does GM's Speed Bother You? Staff Opinion: rup13 “Personally if I’m honest, Game Maker’s speed doesn’t really bother me. This is mainly due to the fact I don’t develop huge games that require a lot of instances. Instead I use it for quick prototyping and small examples. However when I play games developed by other people, which use a high amount of instances, I start to see how the speed drops and that destroys the flow of gameplay. I’ve read about people having to limit 3D games due to Game Maker unable to handle too many polygons in models. Of course speed is limited to how good the player’s computer is, but surely it shouldn’t have to limit the developer, especially if he/she has the computer which should run. Overall, I think Game Maker’s speed doesn’t bother me at the moment, but once I get into making games again, I’m sure it’ll come and bother me like countless other developers out there.”
User's Opinions: alphaskullproductions “If you mean by the speed you can make games with game maker, then no, it doesn’t bother me. I enjoy taking some of my time to make a game. It is a great hobby/business. It is an enjoyable thing to do. I hope this answers your question; if not just let me know what you mean please.” nextmastermind “Game Maker's speed? As in loading? Well yeah, that kind of gets long if you have quite a bit in your game but it's not that bad. If you’re talking about in game lag, then yes, I have seen many games on the forum that would like to play but they lag a lot. Also I have made RPGs but some are so big that when you go into houses you wait like 20 seconds just while it loads. It's not that bad, but if you make really big games then it becomes bothersome. I hope I've helped.” Hellblaze123 “In my opinion, the speed does not really bother me. Sure, when I'm trying to do something like an RPG, it gets pretty slow, but that’s to be expected when a program is running a lot of stuff. So I don't see much problem with the speed.” Aragon1029 “The frame rate doesn't normally bother me when i work with 2D games. I can get in some nice particle effect before it drop below 30 frames, on the other hand 3D games the frame rate does bother me. A lot of times I will find myself having to take out quality because of drops in frame rate, although I have found some techniques that help counter frame rate loss such as frame-skip. So the speed of Game Maker does not bother me normally.”
10
zyrolasting “Yes, it bothers me in a manner of speaking. The engine itself is wonderful. However on this computer I use, if the project file exceeds 5-10 MB, it takes quite a while to save. Well the delay in itself isn't horrible, but when you look at the majority of software everywhere, saving is almost always instantaneous. This also applies to loading the data. People are used to this, and can be a bit annoyed at long save times. I am obviously one of these people. If the save time gets too high, it can be an issue if many bugs are in my game. This motivates me to save often, so I'm slowly turning into a skeleton in my chair. If I could make a suggestion on this, it would be this:
Perhaps the resources imported into the project could be changed into reading it from a path. When you import files for use, this increases save time quickly. Now, there are pros and cons to this: Reading files via paths Pros: - Saving time will be instant, or close to instant. - Files could be kept in directories on your computer for the engine to read and "import" without affecting save/load time. - Game testing can be prepared quickly if the objects were created once on screen with the paths as a reference. This way, the "Saving Executable" phase may be a little faster, and that's what we want. The faster the better! Cons and how to combat them: - If the actual file is deleted, Game Maker will also lose track of it. Maybe combat this by making the actual import of the file optional? This will increase the variety of functions in the software, making it more user-friendly as well. Besides, people are smart enough to backup files in other ways. - Published games will have many directories included for game to run successfully. Counteract: Well, it doesn't HAVE to be that way. Maybe when the *.exe is being created, the actual import that is affecting save time will be fully functional here. This may make the *.exe creation long and tedious, but many animators have to suffer through frame rendering at the end right? Besides, think of that creation as the ONE long "save time" you have to endure. Other than this save/load issue, I do not have a big problem with engine functionality! I suggest this path feature as an option. If anyone in the Game Maker development team hears me out and decides to add this feature, hear this: I suggest the path feature be completely optional! If some people need the actual file import, allow them to make that choice! People hate complete change. Look at Sonic the Hedgehog.”
1. ARTICLES
11
User Opinion: Does GM's Speed Bother You? (Continued) kbyoyoa “OK, about Game Maker’s speed: Game Maker is actually much faster then many people think. The only reason that many games in Game Maker lag is because there are a lot of objects. What people don't know is that even if you don't put any code under an object, when Game Maker compiles it, there will be like 100 lines of code just of internal stuff. So, say you have 100 instances in the room, that’s 10,000 lines of code without you putting anything in the object. With Game Maker, if you were to only use one object, but have the same gameplay the game would run a lot faster. Now also people think that Game Maker can't make 3D games cause they would run too slow if you had more then a 500 poly model on the screen. This is not true. If you only had 1 object on the screen that say for example, draws the ground and some low poly scenery you could probably get in like five to ten 10,000 poly models on the screen without it lagging at all on a regular computer. So in short I blame people for using too many objects. If you just used a few more drawing functions and arrays, your games would run faster. That’s my opinion on Game Maker’s speed.” xot “The speed of Game Maker doesn't really bother me. I grew up programming 8-bit computers so I'm perfectly thrilled by what can be accomplished on today's machines. Sure, it would be great if the interpreter was faster, but for most things it is perfectly adequate. When I do run into trouble it is almost always because I'm trying to work around gaps in Game Maker's feature set, such as omissions in the Direct3D library. With that said, artificial intelligence is an area that suffers purely because of the speed of the interpreter. As long as you are realistic about the kinds of games you try to make with Game Maker, and you concentrate on making your program work smarter rather than harder, speed should rarely be a problem.” -Twister“While the speed that the games run at generally doesn't bother me for games with smaller rooms, the speed with large rooms with many objects gets on my nerves sometimes. A deactivation script can help for that, though. My main problem is the time that it takes for games to load on startup. If a game has many different object types and rooms, then it can take quite a while unless you use external resources (which are a pain to me). I also am not one of the developers who use d3d, as I work in 2D, but I can see Game Maker's speed getting on the nerves of those who do use it.” correojon “I think that Game Maker is fast, but a lot of Game Maker
11
users, being this their first contact with programming, handle it the wrong way. First of all, there are a lot of ways to speed up a game (which I’m not going to list as there are already lots of discussions about this in any Game Maker forum). Secondly, people think that using a super powerful machine to develop their games is a good idea. This belief is totally wrong: when developing a game you have to focus on the audience, the final users who will be playing the game. If they can’t match your computer’s specification, your game with incredible particle systems and surface effects will lag terribly for them. So it’s often a good idea to use an older machine to develop or test your games. This also forces you to make an extra effort and develop speeding up methods. Also, most commercial games are full of configuration options; by playing with them you can make the game run faster. However, this is something rarely seen in Game Maker games. For example, giving the player the chance to disable particles can result in a huge increment in speed. In conclusion, by using a super machine the game will lag for other people, thus spreading the belief that Game Maker games are slow. Thirdly, Game Maker 6 and Game Maker 7 games need more requirements to run smoothly than Game Maker 5 games. Game Maker 6/7´s new graphic core is the main responsible for this: it allows you to create astonishing graphic effects but like everything in life, this has a price to pay. So if your game isn’t going to use any of these advanced features you should use Game Maker 5 instead. Some years ago I started creating a 3D game using Game Maker 5 and the GMIrrlicht dll. The results were awesome, really spectacular, however lots of people couldn’t play it (or it lagged a lot for them) because of the high requirements. Coincidentally, the specs required were almost the same as to run Game Maker 6 or Game Maker 6 made games. Now almost no one has problems to do this, but it should be understood this way: the requirements needed for Game Maker 6 are the same as to run a 3D game which used Quake levels (so it wasn’t just a crappy, simple 3D game). So before you start to develop your next game in Game Maker 6/7 think first if you’re really going to need that potential, or if you can create the game with Game Maker 5 so it will reach more people. So, does Game Maker’s speed bother me? Not at all.” JakeX “Game Maker's speed is, well, it's not great. It's fine if your games aren't too complex, but slow down with games is often caused by inefficient coding rather than Game Maker itself. Of course, it does impose some limitations when you're trying to do something rather fancy, just ask anyone trying to create a bullet hell game, or a 3D game for that matter. I think Game Maker has some bigger issues. *cough* terrible security *cough*.”
2. GMDEV
12
Game Maker Tips Commitment Most of the truly excellent games didn't take a week. Most would have been developed for months, perhaps years. If your not dedicated enough to finish a game you’ll get nowhere fast. Most great games start off simple and to a certain extent, poor. It takes a lot of time and commitment to get through to the end where you've finished with a top game. This also goes when coding programs and other things. Errors are every programmer’s nightmare, but it's better than getting it right first time. Errors are good because they identify the faults in your coding skills, rather than you look for them yourself. Every time you correct an error you take another step in the big (very big) staircase of GML. This is because every time you correct an error you learn how to avoid making the same mistake again, which makes you a better coder. No one will get anywhere without dedication. Give a reason for people to remember you, make something great!
Files and Folders A very useful thing to do is to organise everything Game Maker related in appropriate files and folders on your hard disk. This way you can easily and quickly navigate through them when looking for specific material such as old versions, screenshots or whatever. Here’s how I recommend you organise your Game Maker folders: >Game Maker --->Examples ------>My Examples --------->Downloaded Examples --->Sprites --->Sounds --->Backgrounds --->Textures --->Models --->Games ------>My Games --------->Game name ------------>v0.1 --------------->Screenshots ------------------>game files(includes all download files) --->Downloaded Games ------>Programs --------->My Programs ------------>Downloaded Programs --->Useful Apps --->Tutorials --->DLL's Of course you could have no folder for the screenshots or you could divide models into sub-folders it's however you want the above is just an example, but I highly recommend organising your files and folders in a sensible way so you can keep track
12
of everything. It is also helpful to back up your data to a USB flash drive or some other form of backup hardware just in case you loose all your data one day if you have a hard-drive failure.
Q&A: Fading Text ( Topic Link ) This user wanted to know how to fade the text in his game out and in. GMT provided a easy solution to his question. To fade text out follow the code below. [ CREATE EVENT ] TXTALPHA=1; [ STEP EVENT ] if TXTALPHA > 0 { TXTALPHA -= .02; } [ DRAW EVENT ] draw_set_alpha(TXTALPHA); draw_text(5,5,"This is my text"); If you wanted to fade you text in you will need to reverse the step event. The user also wanted to know how to fade the text in and out constantly. To do this we will only need to change the Create and step event. [ CREATE EVENT ] TXTALPHA=1; FADE=0; [ STEP EVENT ] if !FADE && TXTALPHA > 0 { TXTALPHA -= .02; if TXTALPHA<=0 { FADE=1; } } else if (FADE) && TXTALPHA < 1 { TXTALPHA += .02; if TXTALPHA>=1 { FADE=0; } }
2. GMDEV
13
3D Transformations: A Confusing Outlook By Rup13 One thing I’ve encountered which is difficult to get the hang of is 3D transformations. Yes these are things such as rotations, translations and scales. To rotate a simple cube, you have to understand a lot more than just knowing what function to use. You have to set the identity, translate the cube to where you want the object’s origin to be, add your rotation and then draw what you want to rotate, and end it all by setting the identity again. Confused? I certainly was at first.
Now my ellipsoid is stored in my variable appropriately called ball. Now all I do is add my script to the Draw event, calling upon the ball variable as one of the arguments: d3d_add_rotation: d3d_transform_set_identity(); d3d_transform_add_rotation_axis(argument4, argument5,argument6,argument7); d3d_transform_add_translation(argument0, argument1,argument2); execute_string(argument3); d3d_transform_set_identity(); Draw event: d3d_add_rotation(x,y,0,ball,x,'','',i); i+=5;
One thing I couldn’t understand is why Game Maker couldn’t handle transformations different, specifically with few functions. Take a look at my example for rotating a ball forwards: d3d_transform_set_identity(); d3d_transform_add_rotation_x(i); i+=5; d3d_transform_add_translation(x,y,0); d3d_draw_ellipsoid(-4,-4,-4,4,4,4, background_get_texture(tex_cube) ,1,1,64); d3d_transform_set_identity(); The following example rotates the ball by adding i to the angle each step. Even though once you’ve learn how to do this, it can get very confusing when adding in multiple rotations. Game Maker won’t let you have this code anywhere other than around where the function is for drawing the rotated object. This means if your object is planned to have multiple rotations, you must plan a system out for enabling and disabling rotations to make sure that the right one is shown according to your actions in the game. To overcome this, I wrote a script which is fairly simple to try and bypass some of these problems. My system works that you use variables for your objects, so in the Create event my ball variable consisted of this: Create event: ball='d3d_draw_ellipsoid(-4,-4,4,4,4,4,background_get_texture(tex_cube), 1,1,64)';
13
There you go, simple rotations using only one script. The format of the d3d_add_rotation() script is as followed: d3d_add_rotation(xorigin,yorigin,zorigin,objvar,xaxis,yaxis,zaxis, angle); We at GM Tech understand that this is only one way to simplify transformations, so for the next issue we are looking for anyone who can contact us with their examples and suggestions to making Game Maker’s transformations easier in 3D. Especially if they can be so easy, a total beginner would be able to start learning 3D much quicker. When you look at ThatGamesGuy’s tutorial on the rolling ball, you’ll notice that if you move in one direction, then change direction, instead of the ball rotating from the position it was in, it switches back to the original angle and starts again. My script also does the same, especially if you are rotating it forwards and backwards, and then wish to rotate it left and right. So contact us now with your suggestions, and we’ll add them to the next issue so we can conquer 3D transformations in Game Maker together.
...
2. GMDEV
14
Theory Of Online Gaming By TheMagnitude In this article I am going to explore with you the theory of online multiplayer gaming and teach you the concepts so you can start programming your online games with ease. I'm going to try and explain it in the easiest ways possible for I had vast amounts of problems when first programming my online codes. When I mention snippets of code it will be using a dll called 39dll v2 by 39ster which is a very nice extension. So if you want go to his topic, a simple search at the Game Maker Community (gmc.yoyogames.com) should do the trick, and integrate the scripts into your online game then it will work. First I'm going to list some online connectivity jargon which you should familiarise yourself with: Server: This is basically any computer connected to the internet. Internet Protocol Address: Also known as an IP Address or simply an IP, this is the unique identifier for each computer connected to the internet. This is basically the same as a telephone number; you must dial the number to connect. Port: This is a gateway, if you like, into the computer where messages are sent to and from a port where appropriate. HTTP Internet browsers use port 80 and the reason that there are different ports is so that all the data doesn't get mixed up, When you phone someone there might be several people who could pick up the phone, you say which person you want to speak to and then exchange messages with them which leads into the next part. Packet(s): Or sometimes known as messages are pieces of data travelling down internet wires. These are how two computers exchange data with each other. So if a web browser requested a webpage the web browser would send a message to a server requesting a webpage and then the server would send messages back which contain the webpage. Buffer: This is a place where data is temporary written to or read from. If a computer received a message it would be written to a buffer where the computer can then read the information. When a computer wants to send data it must first write it to the buffer then send the information in the buffer to the other computer. Host: This is the name given to the computer which is the main link for all internet data transaction within a star network. This is how most online games are programmed. The host computer will be connected to everyone but itself in the network (network being everyone playing the online game which is usually about 8 or 16 max); and when the host
14
receives information it will send the relevant information to everyone else on the network to synchronise everyone’s game. Client: This is simply any computer connected to the host computer. It gets sent information about all the other players in the game and in return sends its own information about the player on that computer. Socket: This is a connection between two computers that messages are sent down. Okay don't worry if you don't get all that at first because later on in the article I'm going to show you some GML. Another important thing to point out in online games is the use of puppets, if your blowing someone’s brains out playing online on Counter-Strike your actually blowing out the brains of a puppet and here’s how it works: The player (the one who’s brains your blowing out), lets say s/he’s a client, sends a message through a socket to the host, telling the host who’s blowing his/her brains out and that the player is dead, then the host, lets say he’s the only other player so there’s no need to forward this message to any other players, reads the message and applies appropriate action to the puppet (this is the object on the hosts screen mimicking the other player) which would be to destroy the object and draw text in the screen saying that "You killed him/her". That's basically how it works. Here’s a healthy dose of code for 39dll v2. The host opens a port and listens for incoming connections: global.listen=tcplisten(10101, 8, 1); // 10101 is the port to open, 8 is the maximum amount of incoming connections, don't worry about the 1. if global.listen<=0 show_message("Failed to listen for connections on port 10101. Go to www.portforward.com to help solve this problem.") /* Port forward is actually a really good website you should visit if you get this error*/ Then in the hosts step event s/he checks for incoming connections from clients: sock=tcpaccept(global.listen,1); // waits for incoming connections and then accepts them if (sock) then global.client_sock=sock; /* stores the connection id or sock in a variable global.client_sock, if there are more than 2 players I'd suggest you use arrays to store the sock info.*/
2. GMDEV
15
Theory Of Online Gaming (Continued) The clients code to connect to an IP is: global.host_sock = tcpconnect("127.0.0.1", 10101, 1); // "127.0.0.1" is the IP your connecting to i.e. the server IP if (!global.host_sock) then show_message("Unable to connect to server"); The code to send a message to a socket is: clearbuffer(); writebyte(x); // writing the value of x to the buffer writebyte(y); // writing the value of y to the buffer after the x writestring("hello"); /* writing the string "hello" after the y value (you must read these values in the same order on the receiving computer)*/ sendmessage(global.client(or host)_sock); /* please don't literally write global.client(or host)_sock here what I merely mean is you type global.host_sock if your the client, or global.client_sock if your the host*/
The code to receive a message from a socket is: size=recievemessage(global.client(or host)_sock); if size<=0 exit; // if this occurs it means the other player(s) haven’t sent any messages x=readbyte(); // reading the values from the buffer y=readbyte(); string=readstring("hello"); I strongly recommend that you do check out some 39dll tutorials before diving into this stuff because it can get quite complicated. So that concludes my article on the theory of online gaming, I hope this has been useful and that you have come out of it with a more improved knowledge of the subject. Thanks for reading.
Importing Your Own Custom Colors Into GM By Christian Sciberras Game Maker Supports a basic set of colors, but you might want or need to add your own. Doing this is not at all difficult. But people that don’t use any good graphical editors wouldn't know about these tricks. First, it is important to note that all colors in computers are composed of three primary colors; red, green and blue. These three values could be added up (with a special algorithm) to make a single color value. Anyway, a color which Game Maker lacks (and which is a favourite of my own) is orange. Let’s import it into GM as the constant c_orange. We'll start by using Game Maker's internal graphical editor. So create a new sprite (or edit an existing one - don't worry we won't change the sprite). Next edit its first image and select the preferred color (orange) by first double-clicking the color square beneath 'left'. Next you may need to click 'Define Custom Colors >>' if the button isn’t disabled. After selecting the color in the dialog, get a piece of paper (or run Notepad) and write the numeric values in the boxes after 'Red:', 'Green:' and 'Blue'. Make sure you recognize the numbers afterwards. Next, run Game Maker in debug
15
mode (F6) and in the Debug/Watch Window add the following text/code: make_color_rgb(red,green,blue) but don't forget to replace red, green and blue with the corresponding values we found above. Next, write down the resulting value (the text in the 2nd column) as you did before. Lastly, open your GM project that you want to add c_orange to and go to the Global Game Settings. Then, go to the Constants tab and click on the first cell in the first column and write c_orange In the 2nd column cell write the last value we found above. To test this out, create a new project and add c_orange as we did above. Then create a new room and go to the Settings tab and click 'Creation Code', in the code editor, write background_color=c_orange Note that c_orange should be colored just like GM's constants. Running the program will show an empty, orange room.
2. GMDEV
16
How To Create Simple A.I By TheMagnitude This is a topic on which many game makers have queried about in the past. Having AI or bots in games can really spice up the gameplay and make it more fun, and challenging. Games that are too easy can be over quickly, or can just get boring. Games that aren't fun, well I don't have to go into that one. So I guess I should get to the point now, your either reading this article to gain knowledge on how to create some nice AI, or you’re reading for interest; well I'll try to be as interesting as I can throughout and hopefully you’ll learn how to code your own AI anyway.
If this is what you want to happen change the "Alarm 0 Event" code to:
Okay, first things first I'll assume that you have a computer, have Game Maker installed and all the rest of it. I'm also assuming that you are relatively familiar with basic GML. I'm going to teach you how to create simple AI for top down shooters, simply because that's probably the most popular game type around these days that demands clever AI in my general opinion. In your game let’s say you have one object, which the player controls, and one object which is an enemy. Now if the enemy just sits there and does nothing he's toast (unless the player is comically bad at top down shooters). Ok so we have to establish a way for the enemy to move around and shoot.
Okay, so now we have a moving enemy. Now we need to make him shoot or he's pretty useless. What we need to make the enemy do is check whether he can shoot at the player, and whether there are any objects in the way. To do this we should use the collision_line(x1,y1,x2,y2,obj,prec,notme) function. This function returns a negative number if there is no collision. And this is how we are going to use it: Create Event: alarm[0]=30+ceil(random(30)); alarm[1]=30; mode=0; can_shoot=1;
First of all is making the enemy move. There are various ways to do this but the one I'm going to show you is simple random movement. Set the room speed to 60, and put the player object, solid object and the enemy object in the room. All code is for the enemy object unless stated otherwise. Now input this code (I won't comment parts that I consider basic GML which was one of my assumptions that you knew basic GML):
Alarm 1 Event: if collision_line(x,y,obj_player.x, obj_player.y,obj_solid,0,0)<0 then mode=1; else mode=0; alarm[1]=30; // The enemy will check every half a second whether he can shoot the player.
Create Event: alarm[0]=30+ceil(random(30));
Alarm 2 Event: can_shoot=1;
Alarm 0 Event: direction=random(360); speed=1+random(2); alarm[0]=30+ceil(random(30)); /* This creates a loop, which basically means that every so often the enemy will most likely start to move in a different direction, at a different speed every event of Alarm 0.*/
Step Event: var n; // This is initiating variable n. if mode=1 and can_shoot=1 { n=instance_create(x,y,obj_bullet); n.speed=10; n.direction=point_direction(x,y,obj_player .x,obj_player.y); can_shoot=0; alarm[2]=5; }
Now if you run your game you should see that enemy is quite happily moving around pretty randomly, but since this process can make the enemy move quite far away possibly in a totally different spot to the original. To avoid this we can use the objects initial x and y co-ordinates to check how far away the object is from its initial spot.
16
Alarm 0 Event: if point_distance(x,y,xstart,ystart)>100 then direction=point_direction(x,y,xstart, ystart); else direction=random(360); speed=1+random(2); alarm[0]=30+ceil(random(30));
"obj_bullet" refers to a bullet object; "obj_solid" refers to an object blocking bullets; "obj_player" refers to the player object. This AI is only very simple but will still do the trick in most games. You can experiment more by trying to make the enemy pick up objects or hide behind solid objects. That concludes my article on AI thanks for reading.
2. GMDEV
17
TUT: Move Towards By Calle Ekdahl A lot of people at GMC doesn’t seem to know how to make an object move towards a specified point, that’s why I am writing this article. I will show you two ways, both does exactly the same thing but one is shorter than the other, the longer is the better according to me. Well, you will see. I am going to use the mouse position as position however, but you can change this yourself. Most people who asks wants to use the mouse position for their RTS or RPG or whatever it might be. First of all I’ll save the position to the variables xp and yp, like this: xp = mouse_x; yp = mouse_y; Then it’s time to get the object moving. This is the *tricky* part, a lot of people seems to believe, but in fact it’s only one function. And it is easy to find in the manual. move_towards_point(xp,yp,speed);
That’ll work very well. It doesn’t matter if you use the function several times or only one time, because the object will still keep the same speed and direction, but I myself prefer to always only execute functions like this once. I do this because it is unnecessary to do the same calculation a lot of times, when once is enough. It just slow down the game, I will now show what calculation I mean: direction = point_direction(x,y,xp,yp); speed = speed; This is identical to the function move_towards_point; it is the definition itself. You may use it just for the sake of it. Study it and you may all so gain some insight into how Game Maker works, and how to move objects. You simply set the direction and you set the speed. I hope this article helped you at least a little. You may ask anything you like, go ahead.
TUT: Laser Beam By Calle Ekdahl The physical finesse with a laser beam is that it always goes absolutely straight. It can’t cut through everything though, and finally it must come to stop, against other objects. This is how to draw a line that should imitate a laser beam and stop when it hit something. draw_set_color(c_red); //This is for horizontal laser beam reverse for vertical if (collision_line(x,y,room_width,y,all, false,true)>0) { inst = (collision_line(x,y+sprite_height/2 ,room_width,y+sprite_height/2,all,false, true)) draw_line(x,y+sprite_height/2,inst.x, y+sprite_height/2); } else { draw_line(x,y+sprite_height/2,room_width, y+sprite_height/2); } draw_sprite(sprite_index,0,x,y); }
17
There are two situations. Case one is when collision line return a positive number. That means it hit something. The function will then return the ID of what it hit and that ID can be used when addressing different variables. You should actually not draw between your x and y and both of the walls position, since the beam should always be straight. Which direction to stick to depends upon from where the beam is coming. Case two is when no line is hit, and the line should be fully drawn what is fully drawn you decide in the draw line function. Your welcome to ask anything by commenting, as usual. Finally, here is the url for the example: ( Link )
2. GMDEV
18
Pixel Art Tutorial By HiyuKantaro Isometric Building Hi all, and welcome back to another pixel art tutorial. Today I will be teaching you how to pixel isometric objects and you will learn to create your own building. Remember, it’s best to only use the example as a reference, as you will learn more if you do it yourself, and you will be more satisfied with your result. There are some rules in isometric pixel art; learn them by heart so that your isometric pixel art pieces won’t mess up! Isometric for beginners: Isometric pixel art is a way of creating 3-dimensional images using an angled perspective. This perspective is always the same; the lines that are not vertical or horizontal, should ALWAYS go in the same angle; two pixels to the side and one up or down. Failure to follow this rule might cause you to screw up your isometric pixel art piece. The proper way to do it is like this:
3. Make a concrete roof. Make sure the two lines align (See reference picture).
4. Make a shadow below the roof.
5. Draw windows and a door that look similar to the reference picture.
Good:
Wrong:
Ok, this is enough to start making the building. When making the building you will learn a lot more though. 1.Start off with drawing a box-like shape. Remember the rule!
2. Colour it; the lightest colour on the top, the darkest on the right, and the colour in between goes on the left.
18
6. Colour them in, make the windows shine and shade the door.
7. Now for the finishing touch, add some noise to the roof so that it looks more like concrete (You can apply this to the walls too, if you want to.
Well Done! You’ve completed your own isometric building. I hope you enjoyed this lesson, see you next time!
3. GAMES & REVIEWS
19
Exclusive Preview Raptor: Demo 3 (Sixty-five Million & One Bc) Created By: Snailfox Reviewed By: gmjab When I first heard the game ‘Raptor’, I thought it would be a really cheap 2D platformer game with non-animated sprites and horrible gameplay. After seeing the game for the first time I regret making such a statement. Raptor is more then just any platformer, it’s a platform game that everyone should look at, to see what they can accomplish with Game Maker. With Raptor’s amazingly smooth animated graphics and all the attention to detail, I’m sure that this game might become a staff choice. There is one word that describes the game graphics, that is, ‘Amazing’. For a game that uses an organic character that is a dinosaur, you would think that the animation wouldn’t be smooth. However, that is completely wrong. The character animations were very smooth and they looked realistic. The attention to detail is amazing in this game. There are many effects including: fire, smoke, lightning, rain, water, and dust, as well as scrape effects and effects when fighting. In particular I found the water the most noticeable effect. I don’t know if Snailfox is using physics in the game, but the water effect such as the splashing looks amazing! I noticed even when moving your Raptor over a hole blowing steam that the steam almost stopped. There are many small great details to this game like: flies, bugs and other little animals and the clouds even move. One final thing I would like to bring out is its cut scenes. There are hardly any Game Maker games that have them and this game has great, funny, cut scenes in it. I could keep going on and on about the graphics, but I’ll move on. This is the place where many fail, audio. But, not for this game! The sound is almost as good as the graphics. The game has very fitting music and it also has background sound effects of birds and leaves rustling in the wind. The game also has many sound effects for all the different features in the game. The gameplay is excellent. It is very smooth; it doesn’t lag and is almost flawless apart from a bug which caused the first boss to get stuck on a tree. Also the controls may take a little while to get used to. This is because there are quite a few things you can do with your Raptor such as: jump, crawl, drink water, back flip, super stomp, climb, tail hit and bite. The levels are set out great and unlike many other Game Maker platformers, I actually feel like I am playing a proper platform game. Raptor is a game I will remember and if it was a shareware game, I would buy it. If you haven’t played Raptor I suggest you download it before you waste anymore time downloading games that were not worth the download.
19
3. GAMES & REVIEWS
20
Previews Senseless War Created By: Coffee Reviewed By: The9thdude Every now and then, a real time strategy (RTS) game will pop up which is made with Game Maker. However, Senseless War shines in a way that not even a big corporation developer can achieve. There are downfalls to this such as low quality sprites and no music, but it is still in the beta stages of development so that leaves room for improvement. First up are graphics; which are stale in some places, primarily in the buildings and that the moon is very “cut and paste”. Although with that said, there are some nice things about the graphics in Senseless War. One thing that got my attention was the time settings; day would turn into night and night into day, with all of the proper colors. Then there are the particles effects, which make the game, truly stand out without much slowdown; which I have to point out that the fire is simply amazing. Now I’m sure you’ve seen the screenshots and thought “how can I get a decent frame rate with that many units onscreen?” To my surprise, it ran near a consistent twenty to thirty frames per second, with slowdown only occurring when you have about 250-300 units onscreen at once (this is a complete estimate). Next is the audio, which is nice but needs much improvement in the music department and needs volume adjustment. Most of the game is played with people screaming in pain, gunshots, and explosions that are not relentless on the ears. Finally I come to how it plays. The game plays out well from a side view RTS but has a steep learning curve when it comes to use units and how exactly to do so; but with that aside, it plays like a dream. All unit building is done with a click of a button and is automatically made, all of which takes some MONEY, which is acquired by killing enemy units. Another portion of the game includes God Powers, which are nice to use in a pinch but require SOULS, which may be obtained by killing your own units, or enemy units. There are three game modes: Arcade, a “live as long as you can” mode; Capture the Flag, the “get the flag from the enemy base” mode; and Conquest, which the player has to destroy the enemy base to win. Arcade is the best, with the map being the correct size to have a good war in. However, that is where the other two game modes fail. The map is too small for two bases as well as having good gameplay and can be frustrating at times. Senseless War is an excellent game with a few things to be changed. This game has a chance to become one of the best GM games next to Hover Tank 3D and others.
20
3. GAMES & REVIEWS
21
Previews Zomster Created By: Talha Reviewed By: Trose7 Zomster is a 2D top down shooter. The storyline, in brief, is that there is an alien invasion that you, a space traveler, must stop. The aliens have a substance that turns humans into zombies and other creatures of death, and they attempt to stop you from saving both your life and your friend’s life. Oddly enough, you don’t see your friend too often after the beginning as he tends to trail behind you and show up unexpectedly after you have killed the aliens. The storyline was somewhat clichéd, but is made a little more original when the game explains that the reason the aliens are coming is because we stole water from them. Overall, the premises of the game wasn’t great, but was greatly enhanced by a very entertaining game play. Zomster was probably one of the most addicting and entertaining Game Maker games I have ever played. I really don’t understand why, maybe it was the diverse variety of enemies that were introduced slowly into the game, making your gaming taste buds dance for joy. Perhaps it was the different weapons and upgrades that were randomly thrown into the game to spice it up. Or maybe it was the quest to save humanity. Yet another possibility is that I wished to find all 11 hidden crystals. Quite frankly, I believe it was the combination of all these that made it good. The enemies had to be there, but having 4 different types of weapons with different upgrades caught me a bit off guard. Sure, I love when games have them, but many Game Maker games tend to leave out little details like this to save production time. The quest to save the humans made you want to keep playing, to see how the story ended. The hidden crystals were an extra bonus, like when you get an onion ring in your fry basket at a restaurant. It was so unexpected, yet so satisfying to get. The enemies all had many different abilities, which I liked. What’s worse than facing the same enemy level after level after level? One enemy, which was the basic one, moved at a quite normal speed, slower then you, and did moderate damage when it came into contact with you. Another enemy, which moved only slightly slower then you, also did moderate damage. One of my most feared enemies was one I named quite literally, ‘The Bug’. I named it so because it was designed like a bug and moved very quickly and seemed to do the same amount of damage as the other enemies. Actually, now that I think about it, they probably all did the same amount of damage. Anyway, there was also a very hard to kill zombie that moved quite slow but took a long time to destroy. It might seem as easy as run, shoot, run, shoot, and so on, but it’s not when you have 20 on each side of you. To run right through them would be a quick death, and since they took so long to kill you were dead no matter what. You had to carefully strategize where you ran. There was one enemy that I disliked. It was a snake type thing
21
3. GAMES & REVIEWS
22
Preview: Zomster (Continued) that shot back at me. They were on a level in which they surrounded me causing me to have certain death. It wasn’t a bad enemy to have in the game; it was just a more frustrating one, as it also showed the creator didn’t just do a quick job, something like that would take some programming. The next thing was the solid amount of weapons you had available. You could use your generic laser, with an upgrade, to shoot two lasers at once, or three with a second upgrade. The laser wasn’t a good weapon even with both upgrades, but it never ran out of ammo so it was an ideal weapon for picking off single enemies without using up your stocks of ammo. The next was a net to catch the enemies with. I only found this useful on the speedy bugs, and only if they were alone since after catching them you had to switch weapons and kill them before they escaped. The third was a bazooka, good for knocking down walls and taking out large mobs of enemies. The upgrades for this allowed bigger splashes when you hit something making it key for large amounts of enemies. Ammo for this was found in almost every area. The next gun, which was my favorite, was the machine gun. Ammo for this was rare but the gun was quick and powerful. Don’t waste the ammo! Its upgrades allowed for it to be much stronger, resulting in an almost unfair advantage over the enemies. To take out mobs at a time with this gun was one of the reasons I continued playing. Another thing that kept me playing was the storyline. I wanted to know if humanity would survive, or fall to the marauding invaders. The little side quest to get the crystals was a nice little break to help keep you going. The game also did a good job of continuously shaking things up so that whenever it began to feel like the same old thing something new happened. For example, in one level you got a giant machine gun to slaughter about one hundred oncoming zombies. In one there was a motorcycle you had to ride on to escape a bomb. In some levels you were positioned behind a wall with tons of ammo and health packs with zombies up against the wall waiting for you to blow through it. In others you were placed in a normal area with different pathways to take the teleport exit thing. I always loved the one’s that started you with a horde of enemies and tons of ammo to slaughter them. Of course, enemies were continuously introduced too. Overall, I can’t say there was anything that was wrong with the game play besides the fact that the storyline was a bit clichéd. Yes, Zomster was very enjoyable, but did it present itself as well as it performed? The answer quite frankly, is yes. The game had a nice title screen (besides having the title and creator of the game written in hard-to-read blood), but that’s not what my focus was on when I loaded the title screen.
22
What stunned me was the option to play in two different languages, English or Turkish. Sure, it doesn’t matter to me, but it shows he put some effort into making a well rounded game. The in-game graphics were a bit rough but pleasing to the eye. There was nothing shiny or flashy, just nice. The characters had their own top down style but that’s kind of hard to explain. I guess you’ll just have to see for yourself. I was overjoyed that the messages that popped up were not the Game Maker built in default ones, but red ones that fitted the style of the game. But there nothing I loved more than the blood. No I’m not a vampire, I just liked the way it splattered to the ground and stained the ground. I loved the extra spurt when you struck the final blow. The enemies would fall to the ground at death, and sometimes start piling up when I had my machine gun out. Oh, and the blood came in all different colors too! Overall the title screen only had one flaw which was the game name and creator was written in blood making them hard to see which I mentioned above. Other than that, the graphics were very impressive. The game Zomster also had some nice sound tracks that would change to fit each level. I found myself killing to the beat with them. The sound effects were also quite nicely implemented into the game. Overall, Zomster was at least one of the most addicting and enjoyable games I’ve ever played that were made in Game Maker, if not the most enjoyable. Give a round of applause to such a fantastic game. I definitely recommend a download.
3. GAMES & REVIEWS
23
Previews Turret Defense Created By: Blazed Reviewed By: Trose7 To start off, I’m a big fan of tower defense games. Turret Defense was somewhat like a tower defense game, except it added a new twist. The twist was that you built on the road, not on the sides of it. I actually found I enjoy this type of game over building on the sides of the road. The idea of the game, like I said, was taking an overused idea and making it seem new. It worked, but there were some definite issues in the game play. The first one was that when you were out of money and attempted to build a turret an annoying message popped up telling you that. This interrupted game play quite a bit. There were also two glitches I found. The first affected the game completely. Sometimes, it didn’t let you earn money as you hit the enemies making some levels impossible to beat. This was usually solved after the first time you got beat, but in other cases you had to restart the game to remedy the problem. The other one was that when the turret detected an incoming enemy it fired once before it turned to start hitting the enemies. It didn’t matter much in the long run; it just made it seem unprofessional. These issues were all trivial compared to this next one. It was the level design. I found the enemies to be both fun and challenging, along with some bosses, but the difficulty curve was out of whack. I had no complaints on the graphics for Turret Defense. You could tell all the sprites were done in the same style, simple yet effective. They weren’t flashy or bright. The little blue particle explosions were thickly done, with many particles instead of the usual three or four. The animations brought a yummy treat to the table with their fluency. The sprites all fit together to create a one-of-a-kind atmosphere. The title screen did not let down either. It was original, like the game play. The sound in this game might be its best aspect. Not that it was without competition. I loved the little laser type sounds from a light tank, the deep explosion sounds and the clicking noise the game made when you chose to play. I must point out that that there was no music, but there were two plus sides to that. The first is that it would get in the way of the abundant sound affects. The second was that it kept the file size down to a meager 2.07. In summary, all the sounds fit together nicely to draw you in, while the never got annoying. Overall I must say this game performed well. The sounds and graphics helped to blot out some annoyances in the game play, while a new type of tower defense game was brought to the table, maybe inspiring more of these to peak up into the gaming world.
23
3. GAMES & REVIEWS
24
Previews Warzone Created By: Masterjj Reviewed By: Trose7 Shooting games usually appeal to the general public. Kids like to play them as an escape from school, teens like them to be rebellious and take their everyday anger out on them and adults like them for the challenge and skill it takes to win. Now, when I think of a shooter I think of a 3D commercial game like Halo. Not many Game Maker shooters come to mind. Warzone, which definitely needs a lot improvement, just might be the next good Game Maker game. The first and biggest problem was that there was no goal. You just shoot at some enemies who in turn, shoot back at you. Once you killed them all you just do is stand there until you choose a new level. There was no, ‘Yah you win!’ message, no cut scene, nothing. This brings me to the next issue. There was no title screen. The only thing was the game information that popped up at the beginning telling you how to change levels. All you did was press certain buttons on the keyboard. Once you exited the information you immediately began the game. Very annoying and unprofessional. It should’ve started you on a title screen with nice polished buttons with the different levels on them. When you died or won, you should’ve found yourself on the title screen but alas, the creator did not put time into that aspect of the demo. The next flaw of the game was the AI. The AI just ran up to you and shot at you continuously. This made it so that there was no strategy involved. Just evade and shoot. This took all the fun out of the game and took it from the mediocre game it was to the piece of junk at the dump. Now that you’ve had your fill of the review on the game’s gameplay, let me divulge into the graphics of this game. In some areas I was impressed, in others the game dismally failed. The first thing I liked was the characters. They looked… war like. They just seemed to fit well. However most of the other graphics I didn’t like, e.g. take the first level’s background (well not the first since there was no order but the one that it started you on). It was just a blue blob really; it didn’t look like a floor. There used to be a better background and character sprites but for some reason the creator changed it. On other levels there were some nicer backgrounds though, like a cave one and a grassy tree type one. The graphics really didn’t impress with all the downsides to them. Overall, I have to say this was a great idea but lacked enough effort. With a lot of hard work and programming this could be the next Seiklus.
24
3. GAMES & REVIEWS
25
Reviews Mr. Pratt’s Haunted Mansion Created By: Gareth Tilt Reviewed By: The9thdude It’s rare for a platformer of Mr. Pratt’s Haunted Mansion quality to come around in a while. Mr. Pratt is a more of a run and gun platformer but does a good job at doing it. The graphics seem to fit well and can run a steady frame rate no matter how many enemies are on screen. Audio is superb, and the gameplay only has some minor issues. Mr. Pratt’s graphics are good and fitting, with the option to set your frame rate up to 100 fps, at which, it runs smoothly. Overall, it some very high quality graphics with good effects such as high particles and 30 to 100 frames per second. Next is sound, where Mr. Pratt does well in the sound effects area, as well as in the music area. So far, there are about 810 songs in total, a good number for a Game Maker game. Both are well-done and fit the game exceedingly. Finally onto the gameplay, Mr. Pratt does everything a platform shooter does well. A good number of weapons and the controls work well. However, there is no option to aim up or down, but past that and the occasional lack of ammo in stages, the game is superb.
25
4.EXTRAS
26
Look At: Extensions Game Appearance Extension - ( Link )
MREG – ( Link )
Want to spice up your program? Well, this is the perfect extension for you. It is simple, well documented, and easy for beginners! Not only that, but Blijbol did a good job of adding comments and making a decent manual and example.
Well, you’ve got your flashy window and your GUI, now all you need is a registration system to top it off. That is what this extension does for you. "The MReg System program allows you to create registration keys for users in your program or game. Each user can have an unlimited number of registration keys. Each key also has options, like the amount of times it can be used, and IP's to ban from it."
Features: - Activate game window - Flash taskbar button - Roll in/out - Slide in/out - Blend in/out - Minimize/Maximize window - And many more! Documentation/Example: 5/5 Functionality: 4/5 Usability: 4/5 Implementation: 4/5 Overall: 4.5/5 Level: Beginner
Some Features: - Store each users registration key information easily. - Easily copy one users information to another user. - Generate different keys with different levels of security. - Ban specific keys if they are being given out to other people. - Send email internally - Send mass emails to all (or selected) users in a program - Remember login details Documentation/Example: 4/5 Functionality: 5/5 Usability: 4/5 Implementation: 4/5 Overall: 4.5/5 Level: Intermediate
Look At: Scripts Verlet Physics Engine V1.1 - ( Link )
Gwindows – ( Link )
Want to add some physics to your game? Well, if you want them then this is an excellent script which achieves what you want. It has close to realistic physics (good enough for me) and a nice example that demonstrates its few, yet good features.
You have the extension above which makes your window flash, but there is something missing. It is the GUI. No modern program (that I know of) can function with out a GUI, and that is where GWindows comes in. It has a relatively basic appearance, in a sense that it looks very familiar with the Windows 95 style. But, if you look close enough, you can see that it does have support for a Windows XP style.
Although its physics are quite realistic I personally found it quite confusing on how to implement it. It certainly would've helped if the download came with a manual on how to use the scripts. But its relatively difficult way to implement it lowers its overall score a bit. Documentation/Example:3.5/5 Functionality: 3.5/5 Usability: 4/5 Implementation: 2/5 Overall: 3/5 Level: Advanced
26
No extension is perfect, and this is no exception, it came with no documentation i.e. a manual, and the code is pretty lengthy which is not good for beginners. The creator also isn't very serious in some spots, if you try it you'll see why. Some Controls: child windows, right click menus, full menu bar, buttons, radio boxes, checkboxes and textboxes. Documentation/Example: 3/5 Functionality: 3/5 Usability: 4/5 Implementation: 4/5 Overall: 3.5/5 Level: Intermediate
4.EXTRAS
27
Look At: DLL's 7 New Dialog Boxes - ( Link )
3D collision DLL – ( Link )
Oh no, you start to test your game but it sits at a black screen for 30 seconds until it resumes, what to do? Well, with this DLL you can create a nifty little loading bar that you can implement into that 30 second window of nothing. It has 7 dialog boxes, they’re pretty self-explanatory, and here they are:
This DLL's purpose is to, you guessed it; add precise 3D collision to your game. It does a good job of it too!
- Wait box - Terms of Use box - Quick Help box - Calendar box - List Items box - Authorization box - Track Bar box
Features it has: - Load model - Check collision - Simple example - Supports loading of 3 formats: - GM model format - GML (must be formatted correctly). Made to work with export from marzipan. - Separated format. Made to work with export from Marzipan
My comments would be that there is the lack of a detailed readme file. These are all essential for any extension for GM, and that is what this DLL has got. I found the comments quite helpful but the readme file has limited info, however it includes way to contact the creator.
However it doesn't support objects with high-polys. Its collisions are good, but the physics are bad. For example, when your object (the ball) is 3/4 off of another object it stays on, it only falls off once you’re completely off the object.
Documentation/Example: 4/5 Functionality: 4.5/5 Usability: 4/5 Implementation: 4/5 Overall: 4/5 Level: Intermediate
Documentation/Example: 4/5 Functionality: 3.5/5 Usability: 3/5 Implementation: 2/5 Overall: 3/5 Level: Intermediate
Look At: Libraries Basic 3D - ( Link )
Mplay – ( Link )
You've just downloaded your copy of Game Maker, and somehow ended up reading this section of the magazine. You’re eager to make a 3D game, but have no clue where to start. Your brain has been fried from school homework and you are unable to learn 3D programming in mere seconds. What to do? Download this library! Easy, and the icons are pretty! No one likes ugly icons. Aside from that, it is quite powerful as it already has the coding done for you. If you want to save hours on programming, download this!
Alright, so you have you want to create a short multilayer game because you have 5 minutes left until the bus comes. Well look no further, with this library you can have a multilayer tank game going in minutes! It provides 14 powerful yet simple actions for the construction of a multilayer game, and quite simply, that is all you need for a basic multiplayer game. It also comes with a colorful, neatly organize manual!
Features: - Draw Block, Cone, Ellipse, Floor - Collisions - Draw Light - Transformation - Projection Ortho - And much more! Documentation/Example: 4/5 Functionality: 4/5 Usability: 4.5/5 Overall: 4.5/5 Level: Beginner
27
Basic features: - Connect Automatically - Send/Receive a variable from one computer to the other - Execute code on certain machine - And all the other basic functions you need! A great library none the less, but the example needs to be commented in some places. While in others it should use D&D actions. Documentation/Example: 4/5 Functionality: 4/5 Usability: 4.5/5 Overall: 4.5/5 Level: Beginner
4.EXTRAS
28
WIP Look At Hunahpu: The Memory of the Sun by correojon I wanted to create a simple game, so I thought of doing something like YoMamasMama´s StickMan Escape (in case you haven’t tried it, go for it, it’s a great game) or something like a small Metroid game that happens completely in one enormous level. So I started creating the game engine which grew in complexity as I added more and more powers. After more than 1 month, the engine was finally completed. But I thought that after having spent so much time just for the engine, I should create a bigger game. So first I had to think about a good storyline for it, as this will set the whole ambience of the game. Playing Metroid: Zero Mission on GBA, I discovered a great level that looked some old ruins. Also, the storyline suggested that Samus´ suit and power’s origin was more mystical than technological and I loved this idea. So I decided to give the game this same feeling that of an ancient legend mixed with high-tech stuff. I started doing an intense research on Pre-Hispanic legends in South America and finally I decided to focus the game on the ancient Mayan legend of the book of creation and the Mayan Hero Twins: Hunahpu and Ixbalanque. With this in mind, I started creating the storyline and the main graphics. All is strongly based in Mayan culture, even the game backgrounds. For example, the tiles in the temple were inspired by photographs of real Mayan temples and even in the complex (game’s first level) you can read hidden messages in ancient Maya language in the tiles. The storyline is huge, very complicated and full of unexpected turns and it will show the transformation of the main character from a semi-deity who is too full on himself into a warrior that will fight for his people, putting his life into it. There are lots of emotive moments that I hope will make you drop a tear or two :). But that’s not all, the story is told through flashbacks, short episodes where you can see Hunahpu before he lost his memory and they are playable chapters that are told in no particular order but that converge in the end. This is something like what Quentin Tarantino does in some of his movies like Pulp Fiction or Reservoir Dogs. There is even a hidden plot that will show you the real origin of Hunahpu and it will only be accessed by finding the 4 secret powerups. In conclusion, I’ve put a lot of work into something that is usually ignored in GM games and tried to embed it into the gameplay, and by the reactions so far, it seems people love it :). Design: There are plenty of platform games out there, so what makes Hunahpu different? Well, the flashback/powerup system is a really original idea and testers have said they love it. The level design has a lot of work behind it (don’t think that you will just have to go right and press the jump key every once in a while) you’ll have to explore the levels to continue advancing. But even without the exploration feature, the game introduces
a lot of different obstacles, levels where the gravity is inverted and pulls you towards the ceiling, underwater levels where you have to be fast not to drown, electric timed barriers, conveyor belts, water whirlwinds, rotating spikes, springs in the floors, walls, ceilings or on moving platforms, and even puzzles to solve by pushing blocks and changing gravity! The game can be anything but repetitive. I’m trying hard to add as many different obstacles as possible and the gameplay can drastically change from an intense pure-platform level to a more relaxed, brain crushing puzzle in a moment. You’ll never know how the next stage will look like! Special mention for the inverted gravity levels, something that I haven´t seen in any game before, and there will be more original obstacles, like switches to rotate levels or change the water height, night levels, wind that pushes you and much more. Progress Current version is 4.c. It features 65 levels and 6 powers: power jump, run, shrink, high jump, push and wall jump. There is also a map to find and 4 different sceneries (not counting the ones seen in flashbacks): the complex, the temple (with cool fire and light effects), the cave (dark, with shiny rocks) and the lake (with an incredible water effect). The people who have beaten the demo needed almost 3 hours to get through all the levels! The final release date is somewhere in next year or so. The game is still under 50% through the development process and it was started sometime around November 2006. Just so you get an idea, the final release will feature around 20 powers and more than 200 levels, divided in more than 8 sceneries! The sceneries will surely feature an ice tower, a volcano, a city on flames, the clouds in the sky, so you see, in order to escape the complex Hunahpu will have to travel a lot. I want to make it as good as possible, so I’m using a lot of time in adjusting the levels to match people’s suggestions and balance out difficulty. Every time I release a new demo I take a little break from the project and use this time to play other games, as this helps me get perspective and come up with new ideas i.e. by playing Super Mario 64 and Zelda: Ocarina of Time I’ve thought of some cool things that you will see in demo #5. Final words Well, I’d just like to thank gamez93 for offering me the chance to talk about the game on his magazine :) and of course everyone who has tested the game and helped me by reporting bugs or providing feedback, specially Zccc, random(x, y), Carnivac (formerly Wolverine on GMC) and all the guys at the Helix Community (Cookinater, Nick_the_b, Badwolf, Quakster, Ogmozero, Edmunn, Vidimir Rayne, PaperClipGames, Dragon Reborn, Dilbertguy. Yes, lots of people, the topic there is 8 pages long already, a big THANK YOU to all of you guys! Links: GMC Topic | YoYo Games
28
4. EXTRAS
29
Interview With: Cactus GMT: The games that you have released all have retro graphics, music and gameplay. Why do you prefer making your games like that? CTS: “It's mostly a matter of speed. It's one of the reasons that I can make games so fast. I have a track record of over twenty finished games and it's still rising. I also get a lot of praise for the way they look, so there are really no bad aspects of me keeping things simple. Making games that look retro is not just efficiency though, but the simplicity in itself can also be attractive for a lot of people. I personally think that it's good to have games that look like games, as there are way too many people who seem to only focus on trying to mimic reality.” GMT: Which one of your completed games do you consider the best you have ever made? CTS: “That's a hard one. I think ‘Burn the Trash’ is the game that I was most surprised with at how good it became considering how little time I spent on it. Ultimately I'm pretty happy with most of my recent games. Clean Asia has been the game that people have seemed to enjoy the most, and that also means that I've gotten a lot out of it. Much like anyone else, I love being praised for what I do. But I spent enough time with it to grow tired of playing it. I haven't even beaten it myself, really. It's a hard game.” GMT: As I understand, you are currently in the process of making a new SHMUP called "Akuchizoku". Can you tell us a bit about it? CTS: “‘Akuchizoku’ is a bit different from my other shoot 'em ups, being a horizontal scrolling shooter, as opposed to the vertical ones I've previously made. It will also be very plot based, and have cut scenes in between levels. The game starts out in 1964 and the main character of the story is Sergeant Frank Stone, a helicopter pilot locked away in a mental institute. He claims that he knows the future, in which a terrorist organization will emerge from Japan to eradicate mankind. You get to follow him through his story as he tries to save the day. However, things get all the more complicated when time travel comes into play, and Frank soon finds out that there are many things in this world that he never would've believed existed.”
kill a game, and I'm hoping that it won't do so in this case. With each successive game I've completed, I've felt that my discipline and my abilities have grown. The games I produce may not always be outstanding, but I learn from everything I do, and the next time I do something I'll have a greater chance at getting to where I want with it.” GMT: Would you expect it to become better than any game that you have previously made? CTS: “Yes. I mean, I haven't created any really good games yet. I know I have the potential to do so, but it's a matter of motivation. It's easy to finish small and interesting experiments like some of the ones I've made previously, but doing more than that is really hard. I don't think ‘Akuchizoku’ will be anywhere close to what I could do if I really did my best, but I don't think fans of my previous games will be disappointed.” GMT: You have never made a side-scrolling SHMUP before. Why did you decide that this would be one? CTS: “Partially for that reason, because I have never made a side scrolling SHMUP before. There are also some things you can't do in vertical shooters that I wanted to try. The bad aspect of making a horizontal SHMUP is that it's really hard to make it symmetrical and clean because of the profile view. However, in vertical shooters you can't really take advantage of a ceiling or a floor. In ‘Akuchizoku’ explosions and debris are more physically interesting than in my previous efforts. Parts of enemies rain down on the ground when you blow them up, and many of the enemies' projectiles are affected by gravity. It's also interesting to be able to draw faces, wheels and legs on the in-game graphics for once.” GMT: Do you think many people will buy your game? CTS: “Yes. I think that people many people who play the demo will be interested in seeing more of the game. I've already had over forty pre-orders already, just from publishing a few screenshots and an early gameplay video. Besides, the game doesn't cost much and it has had a lot of exposure considering that it hasn't even been released yet. So I'm pretty optimistic about it.”
GMT: How do you think it will turn out? CTS: “I think it will turn out to be one of my better games. It's the first time I've tried to make money from something I've created, so I'm feeling kind of pressured to keep it at a high level of quality. I'm also getting a custom soundtrack for once, made by the very talented John Marwin, who has provided me with songs for many of my earlier games. The game itself started out as a bit of a joke. I wanted to see if people would pay for something that was easy for me to make. But then I came to the stage that I always seem to get to, where I really want to make it special. Ambitions like that can Game Website: www.cactus-soft.co.nr Cactus's Website: www.akuchizoku.co.nr
29
4. EXTRAS
30
Interview With: Radnom GMT: Tell us a bit about you, the creator behind GunLimb? RDM: “I'm Sean Flannigan, more known as 'Radnom' on the internet. Radnom is not a typo by the way, pronounced "rad gnomm". I live in New Zealand, I'm 17 years old, and enjoy making games in my spare time, and during school hours. This is okay though, because I'm going to a game programming school. I started making computer games at the age of 11, and started using Game Maker at 12. I left High School at 17 to get into Media Design School. I made GunLimb for a 'B-Game' contest held on The Independent Gaming Source (tigsource.com). Voting's not over until October 16, so sign up and vote for your favourite (hint hint) B-Game! ( Link ) I entered the contest late, so GunLimb was very rushed. While making it I was also working on a Connect 4 project for school (which was an incredibly important school project) and I only had about two weeks to make it. As you can see, the last half of the game was badly rushed, because it was made late at night before the contest ended. There are a lot of things I'd like to fix in GunLimb, such as the absence of sound. I've started on voice acting for the cut scenes, and hopefully I'll get around to making a Redux version of the game.” GMT: Do you see GM as a limited tool and are thinking about moving to other tools? RDM: “Actually I am doing a large course dedicated to programming games in C++. This will hopefully get me a good job doing what I love! I'll still probably use Game Maker for game prototypes, and smaller projects (like GunLimb). I'm still not sure if I'd rather work for a large company, or working as an independent developer. Being independent means I will always have full creative control over all my projects, and that's definitely a good thing! If I was working for a company, they'd have to be a fun and creative company, like Free Radical Design or Insomniac. Game Maker is definitely limited, but it's still a great tool. Limitations can actually enhance creativity, because there will always be people trying to push them to their extent.” GMT: Do you hate YoYo or love them, and why? RDM: “I don't hate nor love them - they're definitely doing some amazing things for Game Maker, such as hopefully porting it to the Mac platform, but I don't particularly like their GM7 EULA. I do hope they stick with Game Maker though, because it has incredible potential as a game design tool. They had a rough start, but they're overall a good thing for Game Maker.”
30
GMT: We hear about so many clone games, and you have created something original, tells us about your thoughts? RDM: “I think originality is a very important aspect of video games. Clone games are a product of the uninspired. Remakes are okay, but only if they add something new to the original. Originality for the sake of originality is not always a good thing. No-one wants to play a 'watering the grass' simulator, no matter how original it is. If you're going to put originality in your game, make sure it will add to the fun of the game. I'm being a little hypocritical here, though, because GunLimb's control scheme actually made it harder to control than basic platform shooters. I always try to make original games - or at least, put a spin on the games that are already there! GunLimb is a mouse look platform shooter, nothing original about that. Its originality comes from its control method, the way you move, and the storyline.” GMT: As a developer I am sure you are always looking to learn new techniques, while developing Gun Limb, what have you learnt? RDM: “I've learned a lot of really small things, through experimentation. I had a short timeframe to make the game, so fortunately everything worked as planned (or better) first time through!” GMT: Are there any members you look at and see yourself being like them in a few years time? RDM: “Oh, I hope not! I'd much rather be my own person.” GMT: If you could come up with something that WILL be in GM8 what would it be and why? RDM: “I'm not totally sure I understand the question - I don't know what will be in GM8. What would I like to be in GM8? I'm not sure about that, either - I've got everything I need back in GM6! I guess all I'd really like is for Game Maker to process everything faster. Perhaps faster 3D functionality. Oh, and onion skinning in the sprite editor would be lovely, along with an 'add new frame' button in the actual spriting window.” GMT: Your username, is it a typo or just how you want it? RDM: “It's not a typo! I've been using the name since I was 13, but I could spell back then as well. It just happens to be somewhat like 'random' which is kind of the point. It's like a randomly mixed up version of random. It's unique.” GMT: Are you working on any exclusive projects that you may want to share some screenshots about or so? RDM: “Actually I'm right in-between projects, so nope, sorry! I've already had another two ideas just this morning, but no code or sprites.”
4. EXTRAS
31
Interview With: Pug Fugly Return To Sector 9 GMT: So when you started R2S9, what were you planning on programming? (Just start of with some basics and let the game grow gradually or did you have everything planned out from the start?) PFG: “Originally R2S9 was going to be pretty much the same as ambush but with more enemies and power ups. I started the game in Game Maker 5.3 and had a decent enough version going. However, once Game Maker 6 came out, I started again. Pretty much from the start of this project I wanted several game modes. I didn't design anything at the start though - I just began the development and took it from there. I tend to do that with all my games - start development while the game is little more than an idea.” GMT: Do you find that to be a more effective way of game development? PFG: “Works for me. I don't really get enough spare time these days to plan games. It's a hobby, it has to be fun, and for me spending weeks drawing up design documents is not fun. I prefer to let the games develop organically.” GMT: Do you think it could be effective in a business line of game development? PFG: “Nah. With today's commercial games, good planning is essential I imagine.” GMT:I also noticed the different enemies and their different tactics on destroying the player. How did you come up with the ideas for these enemies? PFG: “Well to be honest I don't think there is that much variety. All enemies use the same basic AI - even the enemies in squadrons revert to individual behaviour. There are a few different movement patterns, like the jellyfish sort of swimming, but the core AI is the same. The bosses have variety. For each boss I tried to make them in some way related to the enemies of that stage. So basically the bosses grew from the normal enemies of each stage. It's getting quite plain to see - I basically make everything up as I go with no plan.”
GMT: What was the biggest obstacle in this game that you had to overcome? PFG: “Keeping my enthusiasm up. Since I started the game more than 2 years ago, I've taken part in several contests (with Horace and Pyramid) and taken breaks for other reasons. The hardest thing is going back to a large project I haven't touched for months.” GMT: What are you most proud of in this game? PFG: “I'm just happy with the way the whole thing turned out. It looks good, plays well, and there is plenty to do. People seem to enjoy it.” GMT: What do you think you could have sharpened or worked on? PFG: “Some of the game modes could have done with a little more variety I think, and the enemies in the main gameplay mode could possibly do with a few more movement styles. The main criticisms I get are that the enemies are a bit replicated in the main game mode. Also the controls, but they're as intended. Can't believe people still suggest mouse aiming.” GMT: As a game programmer, who do you think is your main competition? PFG: “Well to be honest I don't see it as competition. I'm good friends with some of the biggest names in the GM world, and want them to do well.” GMT: It was said that you used help from others along way of the development of this game, are these people managers of their services and resources or are they solely working for you, with you or under you? PFG: “I accepted a lot of contributions. As well as the GMG ship contest, which resulted in 3 ships for the game (1 player, 2 enemies), I asked the EO for contributions. This resulted in most of the player ships being designed by various EO members, along with a couple of music tracks and a few ideas. I like to work that way. If people want to make a contribution, I'll take it if it's good enough. If nobody wants to contribute I'll do everything myself.” Thank you for taking the time to talk to us Pug Fugly.
GMT: What was the hardest thing to program? PFG: “To be honest there wasn't much in the game that gave me much trouble to program. I suppose the enemy AI was slightly difficult to get working how I wanted, but even that was reasonably straightforward.”
31
4. EXTRAS
32
Comic
Find The Bug By Medieval Hello readers, in this new section we will showcase the weirdest, sloppiest and buggiest GML code snippets for you to solve in your free time, just like newspaper crosswords. Iron out ANYTHING that might be wrong – no hints given – so that you can feel satisfied when you solve it. if ((hspeed == 0){if(random(3)<1 && plac_free(x-4,y))){hspeed=-4 && vspeed=0;} if -random(3)<1&&place_free(x+4,y)){speed=4;speed=0;}}else{ if +random(3)<1&&place_free(x,y-4))){(vspeed=0;hspeed=-4;)} if(*random(3)<1&&place_free(x,y+4)){hspeed=0;speed=direction;}}}}} It’s up to you to find out if this is easy or not, this code has been disorganized and made as messy as possible – enjoy solving this one. We will have a new ‘Find the Bug’ puzzle in the next issue.
32
4. EXTRAS
33
Word Search Do you have the eye of a warrior, if not it doesnâ&#x20AC;&#x2122;t really matter, because you can still take part in the Word Search. Completing it will earn you nothing, but itâ&#x20AC;&#x2122;s still a nice time passer. Answers will be posted in Issue 9 of GM Tech Magazine. Y T R C O E O S Y I
W J E Y V N L E T S
M D K T E I L M R S
Words to Find Community Game Maker GM Tech Issue Eight KC LC
A Y A I R Z S A A U
R D M N M A H G M E
K N E U A G C O S E
C A M M R A E Y O I
L S A M S M T O W G
C I G O J A M Y Y H
K C W C H L G H O T
Magazine Mark Overmars Sandy Smarty YoYo Games
Spot The Difference Can you spot the differences between these two images? The image is from the well-known game Gunlimb by Radnom, You can find the game here as well as an interview with him on page 30. As always there are five differences to find.
33
4. EXTRAS
34
Free Applications PDFCreator Ever been bothered that Microsoft Word could not save a document as a *.PDF file? I was, but found this after some searching. It allows you to convert any printable page to a PDF file, which means that it works with many other applications as well. This way you can more easily create a good looking documentation for your game, program, tutorial or anything that you might need it for. The ease of use is incredible. When you install the program, there will be a printer added to the list called ‘PDFCreator’ which, if you select it and click ‘Print’, brings you to a menu where you can set your document name, author, and much more. The interface of the application itself is not important. This program also supports other file types. Enjoy!
Anim8or If you want to make 3D graphics for your games, you wouldn’t want to pay a lot of money for a professional program, right? What about Blender then? Too hard to use? Anim8or is what you should use then! It’s very easy to make a 3D graphics with it after completing a few very easy tutorials, which are available on the site. Some features of this program are: • Pre-built primitives for you to place in your sandbox. • Render images of your model. • Scripting Language. • Texture support. • Exporting to *.3DS, *.OBJ and others. • Plus many more... This is to just give you an impression what this program contains. Enjoy creating!
Nvu Nvu is a WYSIWYG (What You See Is What You Get) HTML/CSS website editor, allowing you to do anything that you could do with plain HTML and CSS. Any modification you make is immediately shown in the preview of your site, making it easier for you to check if it fits your preference. Although this program is limited to only (x)HTML and CSS, it does its job good and the websites that are created with it, if only the WYSIWYG editor is used, are fully valid. However, if you edit the HTML source code, you can validate it and even clean it up automatically. This program is great for people who need a website for their game, but don’t want to pay a small fortune to buy Dreamweaver, or any other commercial website editing program. The reason we picked this application above other programs that do support more scripting languages, is because this is easier for the regular user, and still does the job perfectly. Enjoy!
34
4. EXTRAS
35
Take A Look
35
4. EXTRAS
36
Closing Well that's it for issue 8; we hoped you enjoyed another packed issue from us. Don't forget the competition which we are currently co-hosting, The GM Race (www.thegmrace.com). Get your entries in soon for a chance to win some top prizes. Despite the long wait which you had to suffer for issue 8, we are hoping that normal business will resume with issue 9 just around the corner. Keep an eye out for it appearing. Please send all your comments into us or contact us on the forums to get a quicker response, as we have a large staff base, which are all willing to answer your questions.
Next Issue: You can expect the usual articles and reviews from us, plus some great features such as: - The Game Lounge - An exclusive with Sinaz - Shout Outs - DLL Tutorial - And much more... As always, we are always trying to get new ideas off the ground. Starting from the next issue, we will be lining up some mini competitions for you to get involved in, and maybe win some nice prizes.
Feedback Good or bad, we value your feedback. Your feedback lets us know how we should improve to satisfy all the Game Maker users. Your feedback can be about (although not limited to) articles, reviews, gm tips or the magazine in general. You can leave feedback in either our GMC topic or on our forum.
Submit to us Yes, we at GM TECH will take almost any submission for a chance of it being published in the next issue. To submit to the magazine, simply go to our forum and submit in the â&#x20AC;&#x153;submitâ&#x20AC;? section, no registration is required and you will get a fast reply. If you're not sure what to submit have a look at the example list below: - Games - Programs - Screensavers - Exclusive information - Interview requests - Desktop Screenshots - Gifts - Reports/News - Articles - Letters
36
We only ask that you submit content that you have permission to. Do not submit things that are not your own unless you have permission of the owner and do not submit illegal content. At GMTECH we take submissions seriously and we will do what it takes to keep our forum clean and friendly.
Resource Files This issue we have included some great resources for you to use in your own games. First up are some particle effect scripts for you to use to get your games bursting with energy! These were made by our very own gmjab, so credit is due to him if used in your projects. Secondly we have some music which can be used in your projects, made exclusively for GMTECH magazine readers. However if the music is used in your game you MUST provide credit to ghostrider as this is solely his work.
Creative Commons The Game Maker Technology Magazine is licensed under Creative Commons licence. This means you are free to copy, distribute and transmit the work. This work is for NonCommercial use only. You are NOT allowed to alter, modify or build upon the work contained in the magazine
....