Untitled - Xtreme3D

Transcription

Untitled - Xtreme3D
0. CONTENTS
1
Table Of Contents
This Issue...
We're back! Yes Issue 7 is on your monitor and ready
to read. This issue is once again a large issue that is 40
pages. Last month has been full of ups and downs for
both GMTECH and the GMC but let’s hope for the best
in September.
On the GMC we've had the new GM Awards for 2007
start, a possible new resource "Game Maker TV" being
discussed and we have also seen the much loved
64Digits going up and down causing problems for
resource links on the GMC.
As you can see, we have made some improvements to
the magazine from your feedback from issue 6. You
can read more about this in the What's Going On
pages.
GMT has been quite slow lately as far as submissions
and suggestions from members and guests. However
the staff have been well at work planning ahead for our
anniversary issue. This issue should be available in
December, this gives everyone plenty of time to give
suggestions for articles, resources and pretty much
anything for the anniversary issue. So if you have an
idea (even if it might be crazy) we would be glad to hear
it. Other then that you can join in voting in polls or taking
part in any of our discussions on our forum.
Well that’s enough from me. Enjoy reading and we hope
to hear from you soon.
gmjab
Editor
1. ARTICLES
What's Going On........................................................................................ 2
Exclusive: GMTV......................................................................................... 4
Developing a Game................................................................................... 5
The difficulties of making a MMORPG.............................................. 6
Developing a MMORPG.......................................................................... 7
Furure of our Game Makers............................................................. 10
Unfairness of Novice Q&A..................................................................10
User Opinion: What is you favorite genre? Why?.................... 11
2. GMDEV
Game Maker Tips................................................................................... 12
Resource Counting................................................................................ 13
How They Did it: EXE creation in Program Creator.................16
Tut: MMORPG.......................................................................................... 17
Tut: mplay Chat....................................................................................... 19
Pixel Art Tutorial..................................................................................... 21
Return to Sector 9 effects................................................................. 22
Interview with: Geou - GML techniques & anticipations.........22
3. GAMES & REVIEWS
Exclusive: RhysAndrew's Scrap Works......................................... 23
Preview: Falcon Squad......................................................................... 24
Preview: Meditative Level Creator Beta....................................... 25
Preview: Advance Pet Engine............................................................ 26
Preview: Worms!...................................................................................27
Review: GeRMS....................................................................................... 28
Review: Brix............................................................................................... 29
Review: PhotoWeb 3.1........................................................................ 30
Review: Airbase 101............................................................................ 31
4. EXTRAS
Interview With: TheMagnitude..........................................................32
Interview With: sakisa.......................................................................... 34
Comic........................................................................................................... 35
Adverts....................................................................................................... 36
Free Applications.................................................................................... 38
Closing......................................................................................................... 39
Staff
gamez93........................................................................... GMTECH Owner
gmjab.................................................................................. Magazine Editor
rup13.................................................................................. Assistant Editor
Alex........................................................................................................ Advisor
Cubex DE...............................................................................................Writer
mememe.............................................................................................. Writer
Keysle..................................................................................................... Writer
Medieval..................................................................................... Researcher
GMmarine..................................................................................Researcher
Bob – 11500k....................................................................... Comic Artist
the9thdude..................................................................................... Reviewer
Hiyukantaro....................................................................... Pixel Tut Writer
Online
1
Website......................................................... www.gamemakertech.info
Forum........................................................www.gmtech.invisionplus.net
Email........................................................ [email protected]
1. ARTICLES
2
Whats Going On
GMT: It's what you wanted
GM Awards 2007 is here!
After issue 6 was released a lot of people requested the text
be fixed because it was blurry. Well for this issue we have
given it a go and made the text separate to the page image.
This update also reduces the file size as well. This update to
the magazine will allow you to zoom in and still read the
content, however not all text included in the magazine is on a
separate text layer. This means some text will still go blurry
when viewed with a zoom higher than 100%. But it's better
than before.
It's that time again, GMAwards 2007 has started and you can
now vote for who you want to receive an award. Just go here
and vote for you favorite person.
GMT: Spam...What spam?
If you have been to the forum recently you would have seen
the announcement of changes to the advertisement
submission forum. The advertisement forum was changed so
that only members can post their request for an
advertisement. This step was taken since the spam started to
get out of control with at least 3-4 spam topics full of
drug/porn related links in them. Since implementation of this
new rule we have not received even a single spam topic. We
hope that from now on you will enjoy a cleaner forum to post
in. We would also like to apologize for any inconvenience this
may cause to people submitting the advert banners. We hope
that this rule will not be needed for a long period of time.
GMT: GMTECH on Game Make News!
GMTECH is now on the new updated GMNews site. Through
GMNews you can find out all the latest news on whats
happening at GMTECH. Also on GMNews you can subscribe to
our feed and get news updates all the time. To check out
GMNews goto gamemakernews.com.
GMT: Site Updates
GMT has been going through many changes lately. Not only is
the site getting updated more often but we have put all the
issue on the site. In the 'Download an Issue' page you can see
a preview of the cover and have a choice to either view the
issue online or download a copy of it. The next page we have
added is the links page where we will store useful link to sites
for all game makers to visit. Our previous mail system wasn't
working correctly, so we have updated it with another system.
Next we plan to add the ability to read certain
articles/reviews online so you don't have to download the
issue to read it. This will also help if you wish to link to one of
our articles too.
2
GMSHACK
Looking for a new GM website host? Then GMSHACK is for
you. GMSHACK is solely devoted to hosting GM only related
site and has 2 good plans available(both of which are free).
GMSHACK has friendly staff and you don't need to give away
any of your personal detail to get a site. All you have to do is
simply apply on their forum. GMSHACK has a special offer
available to GMTECH Magazine readers only. This deal will
allow you to have the large plan AD FREE! So check out this
great new service today at www.gmshack.com.
GMK Format Cracked!
We all knew it was comming, it was just a matter of time. Yes
the Game Maker 7 save game format has been cracked by a
person going by the name of Quadduc. This spells good news
for the creators of game porters such a G-Java and LGM as
the format can now be read. As for the rest of us, it shouldn't
be any cause for concern.
GM to be ported...possibly
YoYo Games has been thinking hard about the portability og
Game Maker. In a recent Glog post they have mentioned that
they might change the runner code for the GM executables to
allow portability. If YoYo Games takes action it shouldn't be too
long before we are play our game on things other than
Microsoft Windows.
Goodbye to GameCave
No this isn't the kind of news we want to hear. Yes, GameCave
has officially shutdown. A notice written by RhysAndrews
which now appears before you enter the old site explains the
reason for closure. Even though GC has closed it is still good
to hear that RhysAndrews is not giving up Game Maker
completely and will still be around on the forums sharing in
discussions.
Since RhysAndrews first started using Game Maker he has
produced over 200 works as noted on the site. For this issue
we or proud to present you with a few of his scrap works.
These works aren't full games, but just smaller tests and
works which you can learn from. For more information see
page 23 which includes information on these works.
?
1. ARTICLES
3
Whats Going On (continued)
Sites to visit
Find good Game Maker sites can be hard., so we have done
some searching for your. These site below are perfect if you
looking for GM resources.
GMLScripts.com - [ Link ]
Looking for a script on GM dedicated site? Then GMLScripts
is what your looking for. GML Scripts has many scripts
ranging from string scripts to HEX scripts.
Game Making Resources - [ Link ]
Game Making Resources if full of resources ranging from
sprites to examples. Game Making Resources is a fairly new
site but it still contains many great resources.
What if you are doing Maths and you are a confused. You
need to know just one simple sum, nothing major. But it takes
a while going through menus after menus or folders after
folders to find one calculator.
With useful tools to find out anything from conversions, simple
sums, percentage, anything you can find everything you need
in a small little box right there waiting for you
What about if you haven't got a good memory, you need to
make notes but windows doesn't come with a Todo list. Well,
widget does. It has everything from a Todo list to a notepad
right there waiting for you.
But after all that work and reading you might want to relax
and take a break. Maybe you are in school and Games
Websites are blocked, maybe you don't even have the
Internet, maybe you just don't know any good games websites.
With a choice of many games from Flying Sheep to Sliding
Puzzles, Widjet has something to entertain every age group,
and if games aren't your thing there is a sound player and
soon to be a picture slide show.
What about if your children (or you are a bit childish yourself)
want something to do? Well, Widget comes with a paint
programme which is easier to use than windows paint and
with far more amusing effects.
GMToolbox - [ Link ]
GMToolbox is a very new site. GMToolbox basically is a large
directory for DLL's and Extensions for GM. GMToolbox is a
very simple to navigate site and you will find what you want
easily.
And if you can't find what you are looking for you will probably
find it somewhere on the Internet, but where?
Quick Links is a unique feature to Widget which links to a
variety of different website including YouTube in the
Entertainment Category to MySpace, Facebook and Bebo in
the Social Category to Local BBC News in the News UK and
US category.
And after a busy day, all games played and with nothing to
check you can choose from visual effects of all types, mature
or silly and leave widget there waiting to be used again.
SHOUT OUT by Dan1
“When you are sitting at the computer, doing your work,
perhaps coursework, do you stop and think "How longs this
computer been on for?"
With tools that read your operating system, the system clock,
how long your computer's been on, how much ram you have
and how much is being used and more you can find out
anything you need to know about your PC.
And what makes Widget so full of variety? GMC has been
helping contribute by making widgets of there very own and I
still need your help today. Go to this topic to make a widget of
your very own, if yours is included your name will be shown to
everyone, everyday in the growing collection of Widgets.
When complete, Widget will be available in 3 versions. Home,
for all the family, Office, for the mature business and Plus, for
anyone and everyone.
I'd like to thank everyone for all their support and hope to enjoy
more support in the future.
Thanks a lot - Daniel John :)”
3
?
1. ARTICLES
4
Exclusive: GMTV
by Danny
Gamemaker TV is an Internet web show where users submit
there Game Maker games to our website and then, if
accepted, we will place then on the show. On this show we
review games, programs, examples, both preview works in
progress and completed works.
What’s the difference between a preview and a review you
may ask? A review is where we look at the item being
reviewed and make some comments on it before giving it a
star review based on five stars. A “preview” on the other hand
is where we play the work in progress; give some opinions on
it based on what we like and what we don’t like. We will most
likely mention the release dates (if there are ones) but we
don't give it a rating since they would not be completed
games.
Gamemaker TV is not just about filming the games, at times
you see me, Dan Eggers (the host) on green screen. This
doesn't happen often but only perhaps during mainly the
introduction and closing, but you still do see me at times.
Gamemaker TV is not made by “Revel Games” as all they work
on is the website. It's mainly all me, Dan Eggers, with the help
of my friend Chris who did our major cool logo. But I write,
produce, direct, host and pretty much every thing else you can
think of, that includes water boy (yes I demand myself to get
myself water).
Episode 1 will be coming out mid-September and if you'd like to
get involved in future episodes, all you have to do is visit our
website gmtv.revelgames.com, then click submit a game for
review. After submitting your game, we will e-mail you. Episode
1 will come with five different versions, two streaming and
three downloadable.
The streaming videos will give you a pick of high or low quality,
however low quality will be really low. Then the downloadable
versions will have either high or low quality, but they will come
with all the things from the show like the games, programs,
etc. that were all shown in the show for that episode. The
third downloadable version will be called Dial-Up version, this
will be extremely low quality and won’t come with any extras in
it. This isn't required for dial up users just recommended.
We Are NOT, I repeat NOT using Windows Movie Maker I am
using Video Explosion Deluxe, FX Composite Lab PRO and brief
(and I mean really brief) use of Adobe After Effects. To record
the games I am using Growler GUNCAM registered and paid
for version. My camera is not a low quality, but I don't know
exactly what the specifications are. It’s a Panasonic if that
counts for anything.
Also they want to close my topic on the GMC, so if they do,
move to my forum as we don't have many members. So
please go as well as also visiting my website
gmtv.revelgames.com. That’s all I have to say.
Dan Eggers
4
1. ARTICLES
5
Developing a Game
by Cubex DE
Developing a game is a long and laborious process. In most
cases, the better the game, the longer it took to make it! In
this brief (in comparison) article, I will be taking a look at some
of the processes involved in developing a game.
Develop Plan
A basic priority list should be followed throughout the
development of the game. The concept must first be polished
to the point that it can stand on its own, and needs no support
from such planks as "prototype" and "idea." It should be a
completed, totally stand-along concept.
This is not to say that the concept may not be modified during
development, far from it. Polishing the concept is a
continuously necessary factor but development should not
begin until there are no excuses necessary to rationalize gaps
in the design.
Next, the game's structure should be laid out. What will the
controls be? What happens if the player drives his car off the
road? What if he shoots his partner? What if he falls off the
roof without first retrieving the parachute from the last level?
These are all valid questions that should be posed and
answered before continuing.
The next area of interest is the sequence in which a game
development team should develop their resources. Graphics
are a must as games cannot function without them. But not
too much focus should be spent on graphics while still in early
development. They can always be polished up later on.
Developing
What if you really have no idea how to go about solving a
problem? The first thing to do is to take a look at the manual.
Many beginning Game Makers fail to do this, but instead go
straight to the GMC and begin posting annoying and obvious
questions. So before you make a fool of yourself by asking how
to draw a sprite, read the manual.
If that still doesn't help (which is sadly sometimes the case),
try asking some GM friends, such as a friend on the GMC or
your nerdy friend at school, if they know anything about the
problem. Sometimes the tiny amount of knowledge someone
else has, plus the tiny amount of knowledge you yourself have,
can cover just enough to help you figure out the problem.
Finally, if you can't find it in the manual and you can't get any
help from confidants, it's time to call in the troops. Post your
question on the GMC, but please, please don't post it in the
Advanced Q&A section unless you are an advanced user
yourself and the question requires more understanding than
just ‘take a look at my code and fix it’. It's true; the Novice Q&A
section is quite often perused by bored but helpful advanced
users. Please don't post a question in Advanced unless you
know that it is not a dumb question.
Debugging
Next, how do you go about debugging a problem in your
game? How can you find out what's going wrong? The most
obvious solution is to use the built-in debug mode to check
variables in real-time. Sometimes, however, you need more.
Try using the show_message script to display a number or a
message so you can see how far a script gets before failing to
work properly.
The next thing the development team should focus on is the
creation and tuning of the basic engine, meaning the objects
and their interactions. Finally, developers should strive to
achieve “structural simplicity” by using scripts and parent
objects to add modularity and emergent behaviour to the
engine.
Finally, the game should be polished. All graphical elements
should be redone and stylized to fit each other. There should
be no "sore thumb" graphics that will stand out from
everything else. Scripts should be tuned and formulas should
be slowly adjusted until they are just right.
Getting Help
So what happens when you get stuck? What do you do when
it seems that there is no solution to a problem that can
possibly work? The first rule is this: ‘never try out a drastic
solution without backing up what you have in your project so
far, first’. Failure to do so can lead to a frustrating amount of
time and energy lost.
5
Another good way to handle debugging situations is with cheat
codes. Did you know that this is where cheat codes actually
came from? Developers didn't want to have to play the whole
game just to test out one little part near the end. So they
invented a way to skip levels, get certain weapons,
invulnerability, etc.
Throughout this article, I've gone over the basic steps
required to develop a game. Hopefully I've been able to at least
get you pointed in the right direction so that you too will be on
your way to creating the next great Game Maker game!
1. ARTICLES
6
The difficulties of making
a MMORG by mememe
One of the most popular genres, which usually get the most
attention at GMC, is MMORPGs, which is short for Massive
Multiplayer Online Role Playing Games.
There are many well known MMORPGs at the GMC which
examples such as Slime Online, Stick Online and Nightfall
Online. Although these games can turn out well with the
potential they have, and become a great game, there are
many problems and difficulties faced by the creators of
MMORPGs. Many people do not see these behind the scene,
but the world of making a MMORPG can be hell for many.
Having spoken to JaketheSnake3636 (the creator of Nightfall
Online) and BlaXun (the creator of Slime Online) off of the
GMC about the problems and difficulties faced in making a
MMORPG, I found out they both had similar problems.
Starting with Slime Online, BlaXun had stated that keeping the
players synchronized with each other was difficult, and then
went on to state that another difficult part of Slime Online was
lowering the traffic from the client to the server and vice
versa, by added movement simulation. Lastly, BlaXun stated
that room changing had become difficult, especially with Beta
7, as he had found a bug which had been bugging him. His indepth comments can be found on page [number] of this issue.
On with JaketheSnake3636, just as BlaXun had said, he
stated that keeping everyone, who is playing at the same time,
in-synch without too much lag was difficult. At the start,
movement was easy, but then came all attacks, spells needed
in the game, and it soon became much more complex. The
next thing he faced was the FPS or frame rate of the game.
He needed to keep the frame rate up, or else on someone
else’s screen, it would look very bad as the lag would cause
stuttering and freezing. He programmed something to help
with the movement, but with regards to all of the other stuff, it
did not manage to stop all that as well. The last thing that he
stated was that making online games had a different set of
bugs to making offline games. For example, as he explained, if
he was sending a single byte which can hold a data range of 0
to 255. If the value that he is sending jumped over the limit,
the packet would not send at all, and then cause the game to
appear a buggy piece of mess. Also, if something did not work,
then it could take weeks to figure out the source of the
problem, and to fix it. Here is what he had to say in detail:
6
JaketheSnake3636
“The thinking process behind making an MMO is a very
complicated one indeed. The person doing the programming
for it needs to develop their own techniques on an immense
amount of features that usually tend to deal with networking.
This includes decreasing game lag, lowering bandwidth usage,
optimizing performance, and of course,
1. Lag: Until household modems can bring in pings of 40 or
lower on average, it is important that you (the programmer)
can develop some intelligent ways to manage data being sent
and received effectively. Doing this is not always easy because
a player’s ping tends to fluctuate rather frequently. You can of
course overcome this lag by making it as invisible as possible.
I wrote a tutorial that can be found here that demonstrates
one technique to mask lag. It sends variables between players
to demonstrate smooth online movement and can help make
the visual difference between a player online, and a player
sitting right next to you, much more minimal.
2. Bandwidth Consumption: When programming the
networking for your MMO, you need to be very careful in how
you go about things. If you become careless, your game’s
bandwidth could get eaten up extremely quickly, which in turn
will increase the amount of lag being produced. What you
need to do is lower the amount of data being sent and
received to only what is necessary. Let dead reckoning take
its course by assuming what is going to happen based on
certain variables already known. This will help save a large
amount of bandwidth, which is important when more and
more players join your game.
3. Optimization: When programming my MMO, there were
often times I noticed that other players were getting low
frame rates. Even though all games need optimization, online
games tend to require a bit more horsepower to deal with
larger environments and lots of players. To help fix this
problem, here’s a basic list of things you can do to increase
your game’s frame rate:
-Turn precise collision checking off on all sprites that aren’t
using collisions.
-Disable/deactivate sprites and backgrounds located off the
screen.
-Give players the option to turn down certain effects being
used in-game.
-Program a system to destroy other players, and stop
receiving packets for them if they are not within your view
area.
1. ARTICLES
7
The difficulties of making a MMORG (continued)
-Optimize your code! Don’t get sloppy or it’ll come back to
haunt you.
-The step event is your enemy! As useful as it seems please
remember to only use it for the things that are necessary.
Alarm events are your new best friend.
-Include techniques to keep the game going at the same pace,
even if the FPS dips a bit.
So this concludes the article of 'The difficulties of making a
MMORPG'. With many difficulties facing creators of
MMORPGs, the creators may be in depths of depression
when something fails to work. Although it may be a difficult
and treacherous path to make a MMORPG, if you’re skilled
enough to make one, I suggest you go ahead and give it a try.
If you fail, it doesn’t matter, as long as you tried.
Using a combination of these methods can really help keep
the game smooth and fun to play. As long as you stay
intelligent with your coding, this shouldn’t be too much of a
problem.
4. A Unique Experience: It’s not every day you see an MMO
testing uncharted waters. Many of the online games plaguing
our gaming industry are dead set on following a formula
similar to that of its predecessors. Instead of following the
same old “tried and true” formulas that currently exist, don’t
be afraid to explore outside of the normal. Yes, it can be very
difficult to create a unique gaming experience, but what’s the
point in making an MMO that feels like ones you’ve already
played? Surprise the world! Give us something we’ve never
seen. Maybe more game creators will follow your lead and
advance the MMO genre into something better than it already
is.
- JaketheSnake3636”
We then caught up with bobhoil who gave us his own
comments on the difficulties:
Bobhoil
“Programming online games is hard to a degree. The problem
that you have with developing an online game in Game Maker
is the amount of lag. You have to set it up correctly so that
you don't get lag but everything will still run smoothly. So with
that said personally, I think some people will agree with me
that the hardest part is the communication between the
server and the client. As that is the main part mostly of an
online game, you have to get it right the first time. That is why
we are making a new engine for Demon Online. So the main
difficulty is probably trying to get everything working together
how you want it to.
- bobhoil”
7
...
Want more help in making an online RPG? Then Check out
pages 17 - 20 where there are 2 tutorials provided by
GMTutorials.com. Also check out the guide written by BlaXun
on page 8.
1. ARTICLES
8
Developing a MMORPG
by BlaXun
Hey there everybody. This is a small article written by myself
about different aspects of developing an online game. The
problems of online games (made in GM) will especially be an
important part here. I hope you have as much fun reading as I
had writing it.
1. Planning an online game
So you decided to make your own online game? Great choice,
online games usually have a long life-time compared to other
games. An online game can quickly get players addicted. Of
course it all depends on how you make your game.
First off, you need to do basic brainstorming as you do for
every project:
-Do I have the knowledge on how to make an online game?
-Do I have the requirements to run a server?
-Do I have the time to work on such a project and keep it
entertaining?
-What kind of game do I want to make (Beat ‘em Up, Jump ‘n’
Run, Top-Down Shooter, Racing, etc)
-What features MUST my game have?
Okay, so you’ve got some ideas? Great, let’s go on.
2. The first steps:
So, here we are. We’ve got an idea flying around in our head,
so now what? Easy! The first programming sessions will be
really boring. You'll have to get the movement system done,
however you might have to make a registering function as well
and you also might run into lots of problems. Always
remember to keep the amount of transferred messages
between server and clients as low as possible.
A small example:
In a top-down shooter don’t let the client send his x, y,
sprite_index and image_angle variables all the time, but
instead make the client send this information only once he
starts moving. Just send the current x, y and direction
variables he will move to. The rest (like image_angle) can be
calculated by the client that receives the message via the
server.
In my first online game (Battle Turrets Online) I was sending x
and y all the time. Well, I didn’t experience any problems
because it was limited to 2 players only, but when I started
Slime Online and used the same method again it became
troublesome. I had players that were really lagging; rooms
with 5 players that weren’t synchronized anymore so quite
honestly the game couldn't be enjoyed anymore. Now with
beta 7, I (finally) managed to simulate the movement for all
players (thanks to Jenner from the Game Maker Community).
Yes, the first steps will be pretty frustrating and troublesome,
but it’s not all bad, so read on!
8
3. All the fun around online games:
It's not all bad, actually most parts can actually be pretty fun!
Depending on the kind of online game you create, you will still
have your own little world running on your computer. It's pretty
interesting when you give the players the ability to change the
game world on their own. For example, the next version of
Slime Online will have the feature of planting seeds and
growing trees. The player can buy seeds or mix seeds and
then plant them. Trees made by players will grow all around
the game and make each of the maps different from how they
looked at the beginning.
Another thing is that players can sell their collected items.
This will allow the players to set their own market values for
the game. Some people might sell their items at an expensive
rate while others may sell some cheap. New players will sell
their item at an average price which is neither too cheap nor
too expensive. The system of the game isn’t any longer
decided by the host/server but by the players, and that’s what
makes an online game worth playing.
Many people will also want some kind of PvP system (Player
versus Player) which is always a good idea (depending on the
game’s genre). PvP will allow players to compare their
strength with other players. Weak players will seek for more
power and strong players will try to keep their existing power.
There are many things beside those I have mentioned that
can make a game enjoyable. Of course I think the basics would
be:
-Communication (Chatting, yes I know Slime Online only has
limited chatting, but I have my own ideas about this ).
- A world to explore.
- The ability to compare yourself with others.
- The ability to change the game by yourself and make other
players realise your existence.
- A solid engine so nobody gets frustrated by bad connection
or movement troubles.
4. The troubles of online game development
So, here we go, finally the negative side will be revealed. Some
simple things that should be avoided are the following:
- Don't send too many messages from the server to the client
and vice versa, keep messages small.
- Don't send messages to players that are unnecessary.
(Example: Player 1 is in room A and Player 2 is in room B,
make the server realise that and only send messages from
client to client if they are in the same room).
- Test your Game with a team, as you can not test it alone to
its full potential. An online game can have many small errors
that you will only realise by playing with others.
- Protect your game from hackers!
- Successfully open a port on your router/firewall before you
even try to host a server.
1. ARTICLES
9
Developing a MMORG (continued)
Now I mentioned hackers, they are the big problem for
homebrew online games. Many people will just try to ruin your
game so nobody enjoys it anymore. Why? I seriously have no
idea why people should do that, maybe they just can’t get
anything done by themselves and therefore don’t want you to
accomplish your goal. But what can I do to protect my game
you may ask? Well, first off, save the player’s IP address, and
maybe, MAC address on your computer. Next, make a
command to ban players. Ban them by their IP and MAC
address. Admittedly, both the IP and MAC address can be
changed, and here's where the trouble begins. Hackers won’t
just give up like that; they will change IP and MAC address and
come back. So, what now? You don’t really want to ban them
manually each time they ruin the gameplay for others. The
solution would be a good system to detect hacks as soon as
possible. The most important part here is to let the server
keep track of what’s going on with each player.
An example:
A player logs into the game, you send him the information of
what he has in his item slots 1, 2, 3 and 4. Now the Player is
happy he got his stuff. Great! Wait, that’s not it, let the server
also remember what the player now has in each slot. Now,
this Player wants to sell the item on slot 1. The server knows
that the item he has on slot 1 has the index of 5, but suddenly
we get a message from the client saying he wants to sell his
index 7 item from slot 1. How did that get there? It’s just not
possible without hacking. Congratulations, you just found a
hacker. Ban them by IP address, MAC address and name.
Now he can go look for another game.
It’s really important for your server to check nearly every
incoming message from the clients. Check if the value you get
can be true. Just remember, NEVER trust the client! I don't
say I know all about preventing hacks, even Slime Online can
be hacked easily, but item changing or such simple things are
not possible anymore. I am still learning about preventing
hacking myself, but I share as much as I know with everybody
who reads this.
5. How to keep Players playing my game?
Now this is quite ironic that I write about this because many
people have said that Slime Online is boring. Well, I have to
admit that the game does have its limits, but it is still in beta,
and I can just do my best to add some challenging features.
But this article isn’t about my game, but about YOUR future
project! So onto how to making sure people won’t just play
your game once.
9
The first problem you have, not every player will like the style of
your game and there's nothing you can change about that. If
somebody doesn’t like anime/manga you won’t be able to
make him enjoy a Naruto MMOG. If somebody doesn’t like the
simply comic-style of some American drawings, he wont enjoy
your graphics. But don’t think it’s all about graphics. A MMOG
should offer much more than just graphics. Why else do you
give people the possibility to play with many other players?
Your game will need some kind of "learning curve" Let the
Player start kind of "dumb" but let him get more and more
experienced over time.
For example:
In an RPG you usually start on level 1, but as time goes by you
will quickly find yourself on level 20. You get more armour and
more weapons and all newcomers will look up to you. This will
show others that the game offers more to them and it will
show them that you can become stronger as you continue to
play and progress. If you don’t understand what I am saying
here then you should check out Almora Online (made by Borek
and his great team, I don’t even know if he has a real team ).
Each different game genre will require another strategy from
the creator to keep it enjoyable for the players. Try finding
your own way of keeping the game fun. Don’t copy too much
from other games; try to add fresh ideas to your game.
Well, I don’t know what else I could write about online games, I
just know that they are the most fun to program personally.
It's great to let programs communicate with each other and
have your own "small world" running on your computer. You
should really give it a try!
-BlaXun
1. ARTICLES
10
Future of our Game
Makers by Keysle
Most of us began to use Gamemaker in an attempt to bring
our imaginations to life; in fact, all the individuals I interviewed
wished to do some part of game developing as a career. Truly
Gamemaker is a steady base to start with such dreams.
According to the book ‘Where's Your Head?: Psychology for
Teenagers’ by Dale Carlson and Carol Nicklaus, teenagers
that take the time to take an understanding towards a subject
matter will seek or fall into a career that will make good use of
there natural and trained abilities. Obviously YoYo Games
(YYG) associates focus their attention towards the production
of games. We have taken a front row seat to see fellow GM
users use their natural abilities in creativity of music, art, and
even math. However even more so, we have seen their honed
abilities and skills they have gained from their first game right
up to their most recent one.
One example of this natural creativity comes from one of our
fellow YYG members, Sheepdog88. He has created a game
called Mutu or also known as Mutu 1.5. This game is stunning
with very creative and unique gameplay while preventing
boredom by pitting the player up against 54 mind-wrenching
levels. Another brilliant example is from YYG’s Soup42. He
has impressed us all with fresh appealing graphics and lots of
delicious gameplay.
Unfairness of Novice Q&A
While interviewing another member face to face,
BLUEWINGS4 says: “I know I haven’t made any games yet but
I am intending to learn how to make them.” He then goes onto
say: “Games are my life, it’s all I do.” This is solid evidence of
how the future of our fellow Game Makers is surrounded by
developing games and using these pre-career preparations to
launch them to that point.
What about in our immediate future?
Spectators may find our hobbies and interest a complete
waste of time and suggest it as unhealthy and obsessive. This
is wrong! I have three fellow classmates and we have all used
Game Maker for school projects and other useful simulations
we have managed to make it work for. It has also kicked in
some extra money for some households. This is a tool we can
make heavy use of starting our first jobs; programming a
system to keep up with inventory stock, maintaining budgets
and creating systems for employee work hours.
Game Maker has, for sure, proved to be a useful tool to resort
to in our current lives, and many of us know this from
personal experience.
GM Survey [ Link ]
Psychology of Programming [ Link ]
by mememe
The Game Maker Community, or also known as GMC, is a
great community. It has many amazing people who have
contributed, helped and done much more for their fellow
members.
However, there are also other members who do not have the
courtesy to read the rules. With the release of Game Maker
7, many visitors have joined the community and started using
Game Maker. The vast majority of these members have good
behaviour, while many of these members are great as they
have contributed to GMC, or are in the process of
contributing. On the other hand, there are also many
members who break the rules and think that they own the
place.
"Tramping around", they begin by making a topic in the Novice
Questions and Answers forum. Usually many of these do not
use proper English in their posts; as I failed to do once which I
shamefully admit:
Unknown to the rules of GMC, usually they would become
angry if no one has replied to their topic in small time period.
They begin post again, breaking the rules by bumping it up the
topic listings before the three day time period, when another
member would normally help them, while also informing them
that they are breaking the rules. They would start to flame and
the topic creator might bump some more, although they do
end up with an answer to their question.
On the other hand, those who have also just joined and
understand the rules do not illegally bump their own topics.
Many people seem to not notice these well structured topics
amongst the sea of badly structured topics with bad spelling
and grammar. This is very unfair, and I urge everyone to read
the rules located here.
Read all of them and learn them off by heart and think twice
before posting a topic in any of the forums on the GMC. Soon
you’ll be a good or even great member of GMC enjoying the
pride of being one.
Thank you all for reading this and to those who follow the
rules.
10
1. ARTICLES
11
User Opinion: What is
your favorite genre? Why?
GMC Staff Opinion: Damaged
“Recently I was asked what my favorite game genre was and
why. After some thought I decided that my favorite genre is 2
dimension platform games. Easy enough, 2d platforms. But
why? The answer to this question is a little more in depth. I
hope I can open a few eyes on why this is my favorite and
perhaps make people appreciate this genre more.
When I grew up, Nintendo (NES) was king. It produced some
of the most copied games ever. For instance: Mario, Mega
Man, Zelda and many others. What made these games so
great? Their shear simplicity. You don't have to put aside 2+
hours to play and most did not require a save game. You
legitimately could start up a game and finish it in an hour. No
commitments, just a way to kill a few hours and no
memorization of 800 buttons. There were 4: A,B, Start and
select. Anyone could play them with no knowledge of the
game.
But that is true for just about any 2d, retro game. What
makes platformers special? Riddle me this, how do you feel
after making that nearly impossible jump? You feel great!
Platformers offer that. Most of them come riddled with
difficult tasks to over come and, if made correctly, a little bit of
puzzle to add to it.
Perhaps I am just a Mega Man fan boy and that is why I love
2d platforms, but I don't believe that there is any better style
to play:)
Enjoy,
Damaged”
Staff Opinion: gmjab
“Well my favourite game genre would be RTS(Real Time
Strategy). I have liked RTS games for many years since the
well known Age of Empires came out.
The favourite thing I like about RTS games is the ability to
control a city/nation just the way you want it. The reason I like
them probably is because I can be proud of what I have
achieved(and be the greatest). This is why my second
favourite genre is Tycoon/Management games. Since I first
started using Game Maker I've had the dream of developing
my own RTS game. Thankfully, that dream has come true as
I'm developing my first major RTS now “Tied Forces”.”
11
User Opinions:
Elmernite
“If you mean to play? Then you ask a very hard question. When
properly done, I love many genres. However, if you force me to
pick one. I love platformers. Something about how the simple
gameplay; move, jump, and maybe roll or shoot. Can be
combined to make such a Challenge. It seams like you could
beat everything so easy with so few controls, but it's not.
When you put all of those elements together properly, you can
make them extremely difficult. Throw in a good story, nice
graphics, and challenging gameplay. You have my favorite Gm
genre!”
TheGameGenius
“My favorite game genre for games made in GameMaker is
"2D Top Down Shooter Games". I like these because they just
make me feel GM.Even when I am not playing a GM made one
It makes me think of it. They are also I believe one of the most
popular GM games among many GM users in this time.I my
mind Gm should be used for 2D.Not to say you cannot make
3D games in GM,but i feel like Mark himself made GM for 2D
games. I mean this is I believe true and pretty obvious seeing
that GM has many more 2D functions. ”
Michael
“My favourite game genres are mostly puzzle platformers,
platform shooters, or anything that requires some nice
keyboard interaction. This is because I always like to have
some challenge in a game, but I always think that a puzzle
platformer for example, keeps me interested a lot longer than
a regular puzzle game. I still want to have the feel of real
gaming sticking to it. Having to jump and run by myself in
order to solve the first part of the puzzle. “
That said for puzzle platformers, platform shooters are
games that I love, too. If the physics and shooting are
programmed well, and enough enemies come after me and
shoot at me, I can enjoy such a game for a long time.
This altogether explains that I like a game with some good
physics, and having full control of what my character does.”
Hellfire911
“My favourite Genre is MMORPG which is short for Mass
Multi
Online
Role
Playing
game,
especially
adventure/exploration games such as Slime Online. The
reason I like these type of games is because, for one, there is
interactive with other humans, rather than computers. Also,
with Role playing games, you get to be a character, which
usually in a MMORPG, is able to customize that character. It's
fun to me to be able to customize my characters. Also I like
the Exploration parts because it shows me new worlds. That
might sound weird, but that's why I like them.”
2. GMDEV
12
Game Maker Tips
by rup13
>> Drag & Drop Tip: Making a comment
>> GM Tip: Object Information
When creating big games in D&D people tend to miss out on
a value asset to any programming language. Instead of
scanning through masses of actions, you can insert
comments which can be read by the programmer, but are
ignored by the interpreter when creating the executable. This
is good practice to make projects more organised, and also
easier if you leave a project for a while, only to return to it at a
later date and have forgotten which object does.
This button is over looked very easily and it can be of more
help than you realize. If your new to GM and D&D the object
information will explain the action s in D&D more clearer and
can assist in finding bugs. However if you can't solve a
problem in your object and would like assistance from the
GMC, this will come in handy. The most simplest way to tell
people whats in the object is just a copy and paste away.
Simply paste the information in your topic and this will prove
very helpful to the person trying to solve the problem.
>> Drag & Drop Tip: Quick D&D
Do you prefer things to happen quickly and often can't be
bothered to physically drag and drop the actions. Well by
right-clicking on the action, it saves time and automatically
adds it to the end of the action list no matter how far up the
list you have currently selected.
Object Properties Keyboard shortcuts:
Alt+N - Quickly change name of the current object
Alt+V - Check/Uncheck Visible
Alt+L - Check/Uncheck Solid
Alt+E - Check/Uncheck Persistent
>> Beginning GML Tip: Grouping scripts
Some people may not think of sorting their scripts into folders,
but it is recommended. As an example, if you had all the files
on your computer on the desktop, would you find it easy to
locate certain files? Defiantly not! The same goes for your gml
scripts. If your game is going to consist of more than 10
scripts, you should make a folder structure to keep your game
neat. This is also an advantage if you intend to share the
source to others.
>> GM Trick:Script Alignment
This is just a little trick that is quite useless to actually game
development. In the GML script editor you can actually set the
text alignment (Left, Center) of the code. Sadly Game Maker
doesn't save this information when saving the script. This
means the alignment will be reset. But if you would like to
check it out, here are the keys to set the alignment:
Alignment Keys:
Ctrl+J - Set Left
Ctrl+E - Set Centre
>> Beginning GML Tip: Commenting
People always like to make comments, so why shouldn't it
apply to your code. If you’re sharing your projects you want
people to know what a piece of code does so there are two
different types of comments you can implement.
Type 1 is the single line comment which you start your
comment with '//' and only lasts for the one line.
//This is a comment, hello world!
12
2. GMDEV
13
Game Maker Tips (continued)
Type 2 is the multi-line comment which can spread over
several lines. You start with '/*' and end with '*/', a bit like
using tags in HTML.
/*Hello
World
I'm on different Lines
1234567890
ABC*/
>> Beginning GML Tip: My Constant Value
Have you ever found yourself writing out a variable over and
over again for the same value which doesn't change? Do you
ever find yourself referring to different objects just to retrieve
that variable's value? Well you shouldn't have to because
there is a handy thing called constants, and these are, well,
pretty constant. You can set them in the Global Game
Settings and then when referring to a value in code, you use
the constant. An example of how you can use them effectively
is when creating new colours. In the Global Game Settings we
added a constant called 'black' and then set the value at
make_color_rgb(0,0,0). Now when we use our code we can
refer to the colour black easily:
draw_set_color(black);
>> Q&A: Tank turret facing the mouse - [ Link ]
This user was having trouble getting a tank turret to face the
mouse position and was found in the Novice Question and
Answers forum. His problem was soon corrected as he
realised he had the turret as a separate object from the tank
and all he had to do was modify his code.
lostprophetpunk's solution:
turretobject.image_angle =
point_direction(x,y,mouse_x,mouse_y)
>> Q&A: Create object on mouse click - [ Link ]
This user wanted to know how to create an objects at the
mouse position in the room. After a few comments the
question was solved with this solution:
GLOBAL Left Pressed Event:
instance_create(mouse_x,mouse_y,object);
>> Q&A: Numbers to Subimages - [ Link ]
This user created subimages for numbers in his game. He
wanted to know to use them without have to create a
subimage for every number to a thousand. The issue was
solved with some simple GML provided by molloyboy08.
Molloyboy08's solution:
Of course black is already predefined by Game Maker as
c_black, but the idea is the same if you wish to create colours
which are defined in Game Maker.
>> Advanced GML Tip: Finding the remainder
Instead of using an equation to find out the remainder of the
division between two numbers, there is always the modulo
operation. The equation to find a remainder is normally this:
r=a-n*floor(a/n);
sprite_font=font_add_sprite(spriteName,
ord("0"),0,1)
draw_set_font(sprite_font)
draw_text(x,y,moneyVariable)
...
This then stores the remainder in the variable 'r', as 'n' is
subtracted from 'a' and multiplied by the floor function of 'a'
divided by 'n'. The floor function of a real number x, denoted or
floor(x), is a function that returns the largest integer less than
or equal to x. Modulo operations simply find the remainders
like this:
r=a mod n;
It’s simple if you ever needed to find a remainder of a division.
You can read up more on the ‘modulo operation’ at Wikipedia
here.
13
?
2. GMDEV
14
Resource Counting
by Medieval
In big GM projects that you work on, you are bound to have
many sprites, sounds, scripts, instances etc. in your
GM6/GMK file. It would take ages to count all resources by
yourself, so here’s a tutorial that shows you how you can
easily count these resources much faster using one script for
each resource. You can find the scripts and an example of
how to use it in the ‘Resources’ folder. We recommend you to
keep this example opened while you read this tutorial, or to try
to figure this out by yourself.
Here is the script that counts the lines of all scripts together.
var MAXCHECK,TOTALLINES;
MAXCHECK = 1000
TOTALLINES=0;
var TOTALSPRITES;
SCRIPTFL=file_text_open_write(
"LNCOUNT.txt")
for (i=0;i<MAXCHECK;i+=1)
{
if script_exists(i)
{
sctext=script_get_text(i);
file_text_write_string(SCRIPTFL,
sctext);
file_text_writeln(SCRIPTFL);
}
TOTALSPRITES=0;
}
for (i=0;i<argument0;i+=1)
{
if sprite_exists(i)
{
TOTALSPRITES+=1
}
}
file_text_close(SCRIPTFL);
SCRIPTFL=file_text_open_read(
"LNCOUNT.txt");
return TOTALSPRITES;
}
until file_text_eof(SCRIPTFL)
Let’s have a look at the script that counts the sprites:
// arg0 = max index check
This script is not as complicated as it might seem for some
users. First it defines the variable “TOTALSPRITES”. If i (the
number of sprites) is less than argument0 (the maximum
number of sprites to count), it adds one up if there is one
more sprite.
For all other resources except for the lines in a script, this
script works exactly the same.
The example also holds a script to count the lines in all scripts
in your game. This script is not much different than the other
scripts, except that it saves all scripts in a text file to count the
number of lines. After it’s done counting, the text file is deleted
again.
do
{
TOTALLINES+=1;
file_text_readln(SCRIPTFL);
file_text_close(SCRIPTFL);
file_delete("LNCOUNT.txt");
return TOTALLINES
If you study this script for a short while together with the
other script, you can see that the difference, although it might
look so, is not so big. This script only counts the lines of
actually scripts. With a bit of modification you could also count
the lines of code in all the objects to. You could take this script
one step further and count that characters in the script also.
However, depending on the size of the script this may be a
slow process.
It is recommend that if you do use this script, that you only
use it in the development process. This is because if you
released this script in your game/program it would export all
the scripts in it. Even if you do not actually run the script in
your game/program a user may find a way to execute this
script.
14
?
2. GMDEV
15
Resource Counting (Continued)
Now, let us look at how to connect this script to an instance,
so that the number of a specific resource can be shown in a
message box.
mic=get_integer("Enter Max Index Check:
(this doesn't count for scriptlines)","")
op=show_menu("Sprite|Object|Sound|
Background|Path|Script|Font|Timeline
|Room|Scriptlines","")
switch op
{
case 0:
{show_message(string(sprite_count(mic)))}
break;
case 1:
{show_message(string(object_count(mic)))}
break;
case 2:
{show_message(string(sound_count(mic)))}
break;
case 3:
{show_message(string(background_count(
mic)))}break;
case 4:
{show_message(string(path_count(mic)))}
break;
case 5:
{show_message(string(script_count(mic)))}
break;
case 6:
{show_message(string(font_count(mic)))}
break;
case 7:
{show_message(string(timeline_count(
mic)))}break;
case 8:
{show_message(string(room_count(mic)))}
break;
case 9:
{show_message(string(scriptlines_count())
)}break;
}
15
This piece of code goes in the mouse left pressed event of a
button object that you need to put in the room. The variable op
is the resource that will be counted. It gives you a menu so
that you can decide which resource you wish to count. After
that, in the message it runs the specific script and brings you
the number of resources. The variable mic is the maximum
number of resources to count, so if the number of resources
is higher than the value of the mic variable, the difference
won’t be counted with it.
That’s another tutorial, we hope that we prevented you from
counting everything by yourself, and that you have learned
some things from this tutorial.
...
?
2. GMDEV
16
How They Did It:
Program Creator Exe's by gmjab
If you spend a little time around the Extending Game Maker
forum you will find lots of people asking the question “How do I
get my Game Maker game/program to create exe’s?” A few
years ago there was a program called “Program Creator”
made by Dimitrios Beredimas(fallen^angel). This was one of
the first Game Maker creations to actually make exe’s of its
own. However it does not create true executables, it’s actually
a clever little trick which makes you think that it compiled an
executable. Even though the source was released a while ago
we are going to show you how he did it and how you can do it
too.
How they did it
In Program Creator it may seem that the program is actually
creating an executable, but it is not. When you create an
executable with program creator, you will notice that it
creates an extra file that must be with your program to work.
What it actually does is save the game to a file using the
simple save command:
game_save(file);
This save file generated by Game Maker contains all the
positions and variables of the objects in Program Creator.
When the executable is started, it simply loads the game back
again.
But how did they make the exe? Well it's actually very simple.
What they have done is copy the original Program Creator
exe to a different location and with a different name. This can
be achieved with one line of code:
file_copy(originalfile, newfile);
When in the editor of Program Creator you will notice that if
you click a button that button's action will be executed. This is
because the buttons you create will be the actual buttons in
your program. The buttons will not be changed from the fake
button(In program Creator) to the real button in your program
because everything has been pre-programmed. But this is not
to say that you can't do it a different way.
How you can do it
Now here is the fun part. We will show you how you can
create exe's just like program creator. First we will show you
their code, then we will break that down to a minimum.
16
In Program Creator they use the below script to make the
executable:
dir = working_directory
dir += "\"+string_remove(argument0,
".exe")+"\"
directory_create(dir)
game_save(dir+"data.dat")
file_copy(argument1,dir+argument0)
show_message("Exe file created in
"+dir+argument0)
In total you only have to execute two of those functions to
actually make the exe. Here is the smaller version:
game_save("data.dat")
file_copy(“MyEditor.exe”,”NewProgam.exe)
So as you can see it 1: saves the game 2: copies the main
executable. Now that we have the creation of the executable
done, we need to know how to load it. In Program Creator they
use the below code to load:
if (file_exists("dontdelete.imp"))
{
room_goto_next() }
else
{
if (file_exists("data.dat"))
{
instance_create(0,0,backgroundseter)
game_load("data.dat")
}
else game_end()}
For you to do it, you should only need this:
if (file_exists("data.dat"))
{
game_load("data.dat")
}
else
{
room_goto_next()
}
This code will first check if the save file exists and if it does, it
loads the file. If the file doesn't exist it will proceed to the
editor. Thats all there is to it, we hope you did learn something
out of this guide.
2. GMDEV
17
TUT: MMORPG
by Calle Ekdahl
This tutorial will tell you the very basic of how to do an
MMORPG using mplay, however, a pretty good pre-knowledge
is required.
third 2+1 etc. We also write to the index of global.myid, we
set it to one. We will use this to control whether or not the
player is still in the room.
Let us first think of what an MMORPG is. It is an online game
with capability for lots of people. So basically, it’s any online
game but with such coding that it can allow more people than
usual. This is how we will think about it when we create our
simple MMORPG engine. And if you know how to do onlinegames already, which is assumed since you are trying to do
an MMORPG, the problem you will have to conquer is “how
can we identify and share values for a large unknown number
of players?” and the answer comes below. And some basics
as well.
Now both clients and the first one to start the game, called
server will be redirected to the gaming area. This is where
they will be able to play. We only use one room, where
everyone can meet and chat. The room can be designed in
any way, but do not put out players. We will need two objects
only for all players in the world, one for you and one for
everybody else. You can input yourself into the world if you
wish to, or you can create him. But let’s put him in from the
beginning and we can use him as an executing instance to
initialize the other players. This will be his create event:
First of all, since this is a normal online game although it can
accept more players we will not use a server. The one that
hosts is the server for everyone else. And therefore just add
basic connection / session create code when the host hosts.
global.data = ds_map_create();
for (i=0; i<mplay_data_read(0); i+=1) {
if (mplay_data_read(i)) {
instid = instance_create(0,0,obj_player);
ds_map_add(global.data,i,instid);
}
}
mplay_init_tcpip(ip);
mplay_session_create(“MyMMORPG”,0,
”Server”);
mplay_data_write(0,1);
global.myid = 1;
0 will make the session accept an arbitrary number of players,
which is just what we want. Of course you also need to test
whether your calls were successful, and if not, display an error
message and so on, but I will leave such things up to you and
focus on the mplay part. Next thing is to put in
mplay_data_mode(true); such that when the original
creator leaves the game, another player will host the game in
his place. So the same session will continue to run into infinity
as long as there is at least one player left in it.
Now when that code is executed, hopefully the player will have
moved on into the gaming-area. So let’s see how we can join
his session.
mplay_init_tcpip(ip);
mplay_session_join(0,”Client”);
global.myid = mplay_data_read(0)+1;
mplay_data_write(global.myid,1);
mplay_data_write(0,global.myid);
And then move on to next room… if everything was executed
correctly, but again, you’ll have to add this yourself… if !
(mplay…) /*End*/… We will need the global variable
myid later, all our players will need specific ID’s or we will not
know who does what. Using the mplay_data_write /
mplay_data_read functions will ensure that into infinitive
all players will always have an unique number. First player gets
number 1, second player gets 1+1,
17
Our data structure now holds all instance id:s of all players in
the game, and they are all created. However, other players
that joined before you still can’t see you, so we’ll add you to
their screen as well.
mplay_message_send(0,1,global.myid);
We will send a message and tell them that we need to create
a new instance for a new player and that the unique number
of that player is global.myid. Before we make the receivers
create you we must however first devise a system for how the
message’s ids are interpreted. Because each player will need
to send some values later on, like x and y, and we have an
unknown number of players and therefore an unknown
number of messages and no message may have the same id.
Therefore we need to figure out how we can make safe
numbers.
Every player has an id of their own, say that we have 8 players
and none has left then we the ids are 1, 2, 3, 4, 5, 6, 7 and 8.
And they will send say 3 different values; x, y and sprite_index.
Then we have 24 messages. And then we have some systemmessages like the one above that tells everyone else to create
an instance. I will use ids 0-99 for system-messages and I will
have a pattern for the rest player-defined message ids. First
message of player 1 will be 101, second 201, third 301 and
so on. So for an example the fifth player will send his x-variable
as id 105, his y as 205, and sprite_index as 305. I will use the
same system for mplay data stacks. Now we know that id 1 is
free for sure, and we reserve it for “create
instance”-messages.
2. GMDEV
18
TUT: MMORPG (Continued)
In step event of your player object, the player you are yourself,
you can read the messages and take action like this:
mreceive = mplay_message_recieve(0);
mid = mplay_message_id();
mvalue = mplay_message_value();
if (mreceive && (mid==1)) {
instid = instance_create(0,0,obj_player);
ds_map_add(global.data,mvalue,instid);
}
And you can now see how you can easily add more messages
to interpret. That is what we will do now, as we create the
system which will synchronize all movements. I will not create
a movement system or anything like that in this tutorial. I will
just show you how to do mplay. But anyway, put this when you
walk somewhere:
mplay_message_send(0,100+global.myid,x);
mplay_message_send(0,200+global.myid,y);
And when you change sprite, for an example if you start
fighting or if you walk or anything like that which you can not
figure out from client side (you must always try to figure things
out from your side without any mplay, which we will discuss
soon), you do this:
mplay_message_send(0,300+global.myid,
sprite_index);
And then to your code you’ll add an action for each received
message. You can make it look like this:
mreceive = mplay_message_recieve(0);
mid = mplay_message_id();
mvalue = mplay_message_value();
if (mreceive && (mid==1)) {
instid = instance_create(0,0,obj_player);
ds_map_add(global.data,mvalue,instid);
}
if (mreceive && (mid>100)) {
nid = string_char_at(string(mid),1);
player = string_char_at(string(mid),
string_length);
if (nid==1) {
(ds_map_find_value(global.data,player)).
x = mvalue;
}
18
if (nid==2) {
(ds_map_find_value(global.data,player)).
y = mvalue;
}
if (nid==3) {
(ds_map_find_value(global.data,player)).
sprite_index = mvalue;
}
}
I checked first whether the id was larger than 100, because
this means it was not a system message. Then I intialize the
variables nid and player, by reading the first number of the id
(we know that 101 will send x, 204 will send y etc) and player
by reading the last number of mid (since we know that mid
originally
was
created
by
100+global.myid,
or
200+global.myid etc). Using values from the data structure
that we earlier created we can find the instance
corresponding to the player that sent the message. We can
therefore now walk around and see each other.
Now is the time to do some discussion about what really
needs to be transferred using mplay and what needs not. We
don’t want to send more messages than we actually have to.
All messages slow down a little, so the more we can do on our
own the better. For an example, if you walk on a gold coin on
the ground your player automatically picks it up (and destroys
the coin object itself), then you would not need to send that
info, instead you could put instance_destroy() in collision with
obj_player, which would be the object to represent all the
other players. Try to apply things like this as often as you can.
Another thing you need to think of is when to use data and
when to use messages. Often changing values such as x and y
might be better synchronize with messages, but stats such as
the individuals attack and defence would better be
synchronized with data. Here comes an example of how you
could do to retrieve those stats of the player with id 5. We’re
using the same system as with messages.
First this is how to write info, attack and defence for player
five:
mplay_data_write(105,my_attack);
mplay_data_write(205,my_defence);
And to collect the data:
Player5attack = mplay_data_read(205);
Player5defence = mplay_data_read(205);
2. GMDEV
19
TUT: MMORPG (Continued)
If you walk into a player and you don’t know what player it is,
you can use the instance ID (called coll_id) to find out:
pos = ds_map_find_first(global.data);
for (i=0; i<ds_map_size(global.data);
i+=1) {
if
(ds_map_find_value(global.data,
ds_map_find_next(global.data,pos))==
coll_id) {
player = ds_map_find_next(global.data,
pos);
} else {
pos = ds_map_find_next(global.data,pos);
}
}
PlayerAttack = mplay_data_read(real(“10”+
string(player)));
PlayerDefence = mplay_data_read(real(“20”
+string(player)));
}
So, now you can use both data and messages. And players
are synchronized. You should have a basic understanding of
how to create an MMORPG. Two things I guess remains for
me to tell you, how to synchronize other moving things such
as enemies or bears, and how to log off.
You can synchronize anything just as we have synchronized
the players. But you’ll have to make a system for their
messages as well. For an example, you are unlikely to have
more than 50 players online at the same time, so 150-200,
250-300 etc. can be used for other message. So if you want
to send a bear x, instead of 100+global.myid it would be
150+global.bearid. Also you would only want one to send out
that information, and that would be the one who hosts. He has
the “real bear” and the other just have one object that
represents all bears. The real bear computes movements and
sends it out. You create a bear the same way you create a
player. When you create a session you can create a variable
like global.master = true;, such that you later can check “if
(global.master==true)…do server stuff”.
To log out you just need to send a message to everybody else
that tells them to delete you from their data structure and
deletes your instance. Then you need to do
mplay_data_write(global.myid,0);and that’s it.
If you will try to construct an MMORPG step by step following
this tutorial remember to think about what events and objects
that I use, for I do not always say that. I require quite a lot
knowledge from those who want to do this.
Good luck everyone!
TUT: mplay Chat
by Calle Ekdahl
In any online multiplayer game you probably will want your
players to communicate, and especially in games like
MMORPG’s, where communication is a huge part. I’ll now
show an easy way to do an easy chat which is easy to
implement into your project. Everything will go into one object
and I will explain it event for event.
c_text = "";
ci = 0;
The above variables will be defined in create event. c_text
should be used as an array, storing all of our messages. ci will
be an index keeping track of where we are in the array. If you
get errors because of the array not being initialized you can fix
that by doing something like this: for (i=0; i<100;
i+=1) c_text[i] = “”;
Next step is to receive text, which goes into step event:
if (mplay_message_receive(0)) {
if (mplay_message_id()==1) {
c_text[ci]+=mplay_message_value();
ci+=1;
}
}
19
Basically it says ”if we receive a message and it has an id of
one then that is a chat-message so we’ll add it to the array”.
The index of the array then goes up one such to prepare for
the next received message. Anyway, all received messages will
be added to array so it will contain the entire chat-history, up
to 32 000 inputs before it ends due to the fact that Game
Maker arrays can’t have more than 32 000 entries. Now let’s
look at how to send messages to everyone else:
mplay_message_send(0,1,keyboard_string);
c_text[ci] += keyboard_string;
ci +=1;
keyboard_string = "";
We know that the other player’s clients will only add the
message if it has an id of one, so that is what we use. Using
only one row and the mplay_message_send function you can
now make the info be added to all the other’s arrays.
However, since you do not receive the message you just sent
yourself you will need to add it to yourself manually and that is
what we do on the two lines thereafter, before we finally reset
keyboard_string which we have been using to take input. The
whole code should go into whatever event you like, key-release
for the enter-key for an example.
2. GMDEV
20
TUT: mplay Chat (Continued)
Now that everyone can send messages to each other and
they are being received all we have to do is to draw them. This
mostly a question of layout, I’ll just draw something as an
example but you’ll have to customize it yourself. Notice that
the object I used had a sprite which I used as background
image for the chat. All of the following goes into draw.
draw_sprite(sprite_index,image_single,x,
y);
draw_text(x+10,y+sprite_height20,keyboard_string);
Draws the background of the chat, and then the input you
write in the bottom, with 10 pixels marginal from the left
border.
w = 0;
for (i=0; i i+=1) {
w += string_height_ext(c_text[abs(i)],
-1,400);
}
20
Some messages will be too long and then we’ll have to switch
row, therefore we can’t really know how high our text is. We
find that out in order to know how many messages we can
draw.
if (w>sprite_height-30) {
w=0;
for (i=ci; w<sprite_height-30; i-=1) {
w += string_height_ext(c_text[abs(i)],
-1,400);
}
}
h = ci-i;
for (i=0; i i+=1) {
draw_text_ext(x+10,y+sprite_height
-30,c_text[ci-i],-1,400);
}
What it says is: if the height is larger than what it can be, do
the for-loop. The for-loop says start at the last message and
add one at a time to our string, w, until we cannot add any
more. Then we go on, and draw the messages as a list.
2. GMDEV
21
Pixel Art Tutorial
by HiyuKantaro
Human: Standing position
This issue we are going to make, or should I say you are going
to make, a human in the standing position. We are going to
use all the basic techniques from the tutorial before.
First we make the line art. Not copying someone else’s line art
is a better way to gain experience! Here is my line art:
Now we get to the facial expression section. This is a very new
thing for a beginning pixel artist.
It’s basically shade and shine and that makes the depth. This
is called sfumato in the painting business and was first used
by Leonardo Da Vinci. The Mona Lisa is a great peace of art
and you can see the sfumato very good on the hand and on
her face. Look it up and study the light sources of faces in
general. The most important thing is to take a point were the
light is coming from.
This time it is quite easy because the face isn’t that big. So we
are going to make a simple version of the standard canvas
size portraits:
Then apply basic colours to your human, pick the ones you like.
I chose these colours:
You can see that the light is coming from the left side of his
face because the shade is on the right side. This also applies
with the face. Due to the small canvas I just made a smile and
two eyes out of some pixels. Otherwise it would have gotten a
bit messed up and you wouldn’t have been able to see what
anything was.
Shade the colours and add some shine. This creates so much
more depth. I used some dithering to make it look nice so just
play around with the dithering to increase your skills and make
your human just as nice.
If you look at the nose in the shaded area, I used the nonshaded colour to make the nose clearer and vice versa. In the
middle I used the darker version of the non-shaded side.
I also shaded the arms a bit but don’t worry this is rather
simple. I created some non-shaded areas between the shades
to make it look natural.
This was the tutorial for this issue and I hope you begin to
understand more while applying what you have learnt to more
examples. If you would like me to create a tutorial on
something specific you can post a suggestion on the GM Tech
forums.
21
2. GMDEV
22
Return to Sector 9
effects by PugFugly
Making explosions and effects look good in GM (or any
language I guess) is all about clever design.
Menu highlight
I use one sprite for this. I have an alarm that makes them
appear every 2 steps or whatever. The sprite then slowly
rotates, whilst slowly getting bigger and slowly fading. When
there are lots of them together, it looks like a sort of pulsating
ball of light I guess. Making them move to the left when you
select a different option is simply a case of setting the gravity
direction to 180, strength 0.1 for all of them.
Enemy explosions
The explosion effect was made up in several layers. First layer
was an expanding circle, as you say. On top of that was
another sprite, which itself was made up of several smaller
sprites. Basically, make a small white sprite; make it shrink to
the centre over say 20 frames. Then save it. Then rotate say
45 degrees, and then overlay the previous saved image. Do
that another few times and you'll have a nice little explosion.
Use the outline tool to add some yellow and red, put that over
the top of the expanding circle sprite, use a bit of blending and
there you go. This sounds complex maybe, but it isn't really.
It's just all through experimenting.
Layering different explosion sprites is the way I do it. Also one
tip, when you use the GM blur tool, make sure the background
of the sprite is set to black, and the sprite is NOT transparent.
That way all the edges of the sprite will blend properly. Always
draw the explosions with blend mode add, but this works well
with dark backgrounds.
I used to have an explosion tutorial on my old site; I will one day
re-do it for the new site.
Interview with: Geou - Naruto
GML techniques & anticipations
GMT: So how did start programming your battle system...
What kind of basic set up when we're in gameplay?
GE: “I use a system based off of hit boxes. Basically, when the
player's sprite is past a certain frame, it creates a hit box,
which then does damage and knockback to the opponent. I like
using them as it's easy to modify and only hurts the opponent
where they should be hurt.”
GMT: So do the fighters have a move set defined by object by
variables or arrays?
GE: “Actually, it's roughly halfway through the move when the
hit box is created. At the end of the animation, if the player
hasn't pressed a key to continue the combo yet or the combo
is over, then it ends the attack and gives the player a bit of
delay before they can attack again.
The fighters basically have an attack variable that changes
during the different attacks, resulting in creating hit boxes
with different variables for damage and knockback suited for
the attack.”
GMT: Oh... I see... So what about the Chidori, and Rasengan?
I'm sure you used an instance_create() function for that right?
But just how?
GE: “Yeah. I use instance_create for the hit boxes as well. I
give them an owner variable however, and so it will only hurt
the enemy depending on the owner variable. For example if it's
variable owner is equal to 1 and it's touching player 1, it won't
hurt player 1, but it will hurt player 2 if it touches them.”
22
GMT: What I liked the most was Naruto's Uzamaki Slam
attack... How exactly did you get that all to corralate so well?
GE: “I think that was most likely the most difficult special attack
to program. Basically, the first 3 attacks knock the opponent
back a little, and the last knocks the enemy up so they can be
knocked down. It took a lot of time and testing to get all of the
attacks to connect together well, and for Naruto to jump up at
just the right time. All in all, I think it was worth it in the end.”
GMT: So tell us about the other characters you planned on
making. Who will be the hardest to program?
GE: “Some other characters will be Future Naruto, Future
Sasuke, Rock Lee, Neji, and Gaara, along with characters
other users are creating. I think Future Naruto may be difficult
to program, as he will have a technique to manipulate a clone
of himself and possibly to team attacks with his real self. I
think he'll provide a fun and unique experience apart from the
other characters.”
GMT: What can we expect from the story mode? And will the
online play be the same as the single player play?
GE: “Adventure mode will be unique and similar for each
character. You will adventure around a village named Konoha,
where you can speak with NPCs and play mini-games with
them, and also advance the story by going fighting enemies on
missions. Each character will have at least 5 fights, so the
game will have a lot of play-time in the end.
Online play will be virtually the same as two-player play offline. I
am working with a teammate to see if we can make an
master server where one could set up a game and chat with
other users, and an account system to recognize and possibly
save scores of each user.”
2. GMDEV
23
Exclusive: RhysAndrew's
Scrap Works by RhysAndrews
Terms of use
In downloading the scrap files that are provided here you
agree to the following:
- Resources such as graphics, sounds, music, and game
concepts are copyrighted by the respected owners and
*must not* be re-used for your own purposes.
- Source code in these examples may be used.
Concepts for SolarConquest are copyrighted by Rhys Andrews
and all other concept writers.
File - tile_segmentfinder_v2.gm6
Info - This was a little attempt in improving the performance
in Conflict: Online. We were trying to find ways of making tiles
go faster, despite the fact they were made to be fast anyway.
Though tiles are fast in quantity, if you place lots of them
within the one screen they can slow down the game
tremendously. This file was supposed to find groups of tiles (as
in, lots of tiles placed very close to each other to make a 'big'
version of a tile - particularly with the water in Conflict: Online)
and render them as new tiles, placing 1x that tile in place of
lots of the original tile. If I remember correctly, the red
rectangles were supposed to be the region of all the subtiles
of a group, that (if we implemented a rendering script) would
render all the tiles inside it into one. The yellow rectangles
simply surrounded tiles that will be rendered into a group. So
it doesn't work very well, but hey, it might come in handy.
File - ascii-art.gm6
Info - I was working on this application after seeing a similar
program (not sure what it's called) developed by another
GM'er - you pretty much load an image, choose a quality, and it
converts the image into ASCII Art. The basic formula is that a
character replaces each pixel based on the intensity of the
colour that it's replacing. Somehow, we got the formula a little
screwed and images only work properly when on high quality and even so, the image becomes skewed when you view it as
a text file. To view the text files as an image, open the exported
txt files in notepad, go format > font, and ensure the font is
Lucida Console 1pt. It shrinks the jumble of characters down
to a size so small it all turns into an image.
File - c-pixel.gm6
Info - My original idea for this was to create a paint program
that is designed for bump maps. In the end, it became a
poorly-designed grayscale paint program. So I got Pim to help
me out and he wrote up a set of scripts that converted the
canvas into a 3D preview. While we were still working on the
script (as it's very slow and we weren't sure how we could
save them as small-sized models at the time)
23
I think FredFredrickson released something very similar that
did the job much more efficiently, and so we dumped the
project because it was no longer useful.
File - space_mode_rewrite.gm6
Info - This takes me back. This was GameCave's first "major
project". We took on a whole group of people to help us out
with this one. "SolarConquest" was going to be an
adventure/platform/action/rpg/RTS game (all in one!). We
had built a huge concept. Each planet held an army of smiley
balls (you know, the standard emoticon kinda guys) of a
different 'emotion', and there was a huge war going on
between the "Happy" Civilisation and the "Manic/Angry"
civilisation... all other civilisations were tormented by the angry
army and though they didn't fight, they were considered to be
on "Happy"'s side. The story goes that a female "Happy" was
taken as a prisoner for the Angry army, and fell in love with
the guard. You know, one thing leads to another, and though I
don't know what genitals these balls have, the happy smiley fell
pregnant and both her and the angry guard was banished
from the planet. They rose their child, the first "Neutral"
(balanced emotions) smiley ever to live, on an abandoned
moon. You become that child, who learns the art of fighting
from your father but also the respect and dignity of your
mother.
The RPG element involved building relationships with the
hierarchy of ally planets. The higher relationships you had, the
more soldiers you could employ to your army from that planet
(each emotion had its own special ability and set of weapons),
and the better quality soldiers you got. At the same time, you
grew a larger expectation and needed to defend the planet
from Angry soldiers more often. The RTS element involved the
pre-battle... in which you can command ships to go from
planet to planet to defend, and attack enemy ships flying to the
planet under attack, to avoid having to go into an all-out war
on the planet's surface, which involves losing soldiers (but a
whole lot of fun).
Essentially, your goal was to take over the Angry Army planet.
This GM6 covers the browsing of planets in 'space mode'. You
can't do much. Use the arrow keys to search all the planets,
then press space to land your ship there... not that it does
anything. Just enjoy the menu and the visual effects.
File - revelation.gm6
Info - Something I felt like doing for the sake of it one night. It's
an intro for a game I never even planned to create. Enjoy!
3. GAMES & REVIEWS
24
Previews
Falcon Squad
Developed by: FredFredrickson
Review by: the9thdude
Once again FredFredrickson has given us another beautiful
game in the works called Falcon Squad, a top down shooter in
which Fred wants to try and set a good example for everyone
to follow. Overall the beta is simply stunning, with three
different multiplayer match types, a smooth interface and
beautiful graphics; Fred is simply one of the best game
developers out there.
Particle effects are good with the exclusion of the wall barrier
in which, if you fire a round at it, the sparks appear inside the
wall. Other than that you have good graphics that can
maintain a steady frame rate which is nice to have in a
firefight. However, if things get a little too “boom-boom, bangbang” you will notice a serious frame rate dip, which is bound
to happen when everyone spawns with rocket launchers.
The audio is clear and crisp as each weapon has a unique
sound and the character on screen gives a shuffle of
equipment each time he/she moves.
Which brings me to the gameplay which is also looking up to
be superb with fast paced action and tactics, although there
were two minor issues that stuck out to me. These include the
firing rate and weapon balance. With some weapons (i.e. the
sniper rifle) it takes too long to fire with three seconds
between shots. For some this is fine, but when you’re in the
heat of battle it can be frustrating when your weapon doesn’t
fire when you want it to. Next is weapon balance, where
everyone spawns with an assault rifle, grenade launcher,
grenades, a shotgun and a rocket launcher! This is obviously
something that can be fixed with the upcoming release of the
full version, but the beta is very unbalanced when you have an
assault rifle and your opponent has a rocket launcher.
When I looked past these minor downsides, Falcon Squad
(beta 3) is an enjoyable game and I cannot wait to play the full
version which includes a campaign mode and stat viewer. It
will be amazing.
24
3. GAMES & REVIEWS
25
Previews
Meditative Level Creator Beta
Developed by: WarriorArtiste
Review by: the9thdude
Finally, a level editor! This concept is beautiful to any person
making a 3D game in Game Maker. However, this current
development version of the program doesn't meet the
standard to make it actually easy and useful.
Currently, there is barely any interface of any kind that
appears when you select a joint or series of joints. Rightclicking on the joints shows the properties and can change
what you want to give them. However the properties you can
change doesn't really help in building a level. That makes this
program quite hard to use but in the future this will probably
not be the case.
Why is it hard to use? Because it only currently supports
triangles. These are non-modifiable triangles that cannot be
joined together with other triangles in any way, shape, or form.
Also you can’t rotate the camera and have to guess which
angle is X, Y, or Z it becomes frustrating.
One good point though is that it has the ability to preview the
level in FPS mode. However this has bugs which allow the user
to move outside the world.
The concept behind this is nice, to make a 3D level editor that
is easy to use, but this just doesn’t work well at the moment. I
really hope this undergoes a major revamp before the official
release.
25
3. GAMES & REVIEWS
26
Previews
Advance Pet Engine
Developed by: Torak
Review by: Keysle
Advance Pet Engine (A.P.E) is basically an upgrade of the
Tamagotchi, for the PC. This game is very colourful and wellmade. It includes features such as mini games, shopping and
taking care of your pets. The quality A.P.E is showing now
proves that that will be a high potential of quality in this pet
caring game when it’s finally finished.
The graphics were very crisp and clean but the largest
mistake was that some of the graphics didn’t work seamlessly
or didn’t fit with the other graphics. But overall the graphics
matching those of Nintendo’s GameBoy Advance and look
quite professional.
The first good thing about the sounds is that they all fitted in
well with the game. The second thing is that the sounds were
also appropriately placed throughout and none of them were
uncalled for. As pleasant as the music was at the beginning, it
got repetitive and boring after hearing the loop 30 times.
There also weren’t many sounds, which left the game very dry
and took away the life-like feeling of taking care of your pets.
The game play was very unique and fun at first, but the fun
factor wore off after you had played everything and learned
how everything worked. There weren’t many different mini
games; there were only two called ‘Bugs in the garden’ and
‘Click the mole’. However there will be new mini games and
maybe even some more creatures in the next version of A.P.E,
but for now it just doesn’t keep the fun factor longer than an
average of about 5-10 minutes.
The game has a strong engine behind it, so it is impossible to
estimate what will come out next. Right now it’s not as great
as it looks, but it deserves its current overall score because of
the potential it has. Everything has a pretty good score despite
some of the things mentioned above and for future versions, a
higher outcome is expected.
26
3. GAMES & REVIEWS
27
Previews
Worms!
Developed by: Mordi
Review by: rup13
Surely everyone has heard of the famous Worms series by
Team17. Now Mordi has joined in with the worm-tastic fun by
creating a similar game where you take control of a worm,
equip yourself with weapons and blow up/slaughter enemy
worms. With gameplay quite similar to Team17’s series, we
would like to emphasise that this isn’t a clone of the games in
the series by Team17, but rather a remake taking the realtime action approach to things.
You can completely customize your worm’s appearance by
selecting different colours, clothes and other miscellaneous
items for your worm. The graphics in Worms! are more than
just average and the visual effects complete the overall look of
the game. There has been a great deal of work put into the
menus and transitions between each of the options. The ability
to change the keys assigned to the controls is a great feature
which isn’t always noticed in some Game Maker games. The
sounds and music fit the game well giving the game some
ambience as well as depth. Although the few sounds from
Halo do not exactly increase the game’s originality, but they do
the job at the moment in its current stages. There isn’t any
music while actually playing the main game, but it isn’t exactly
silence, especially when the bombs start exploding.
There are three game modes to choose from which include
Split Screen, Skirmish and Spectate. All of these modes are
quite fun.
Mordi has paid special attention to gameplay allowing the
player to have endless fun, as each time he changes a setting,
the game changes just a little bit to make it different from a
previous game. However there are some things which I hope
Mordi will update before another release. These include
controls on how to go back in the menus, as there is no clear
indication to what this button is. Also in spectator mode, I
hope that there will be a fix to stop the worm falling from the
sky and straight down the edges getting trapped. Finally I
noticed that in the main menus under skirmish, the mode is
named skirmish throughout until you start counting down until
the game starts which is when it becomes sandbox.
Other than that this seems like a great preview which is
recommended. The sheer amount of work is outstanding,
especially on the smaller details. With all this in mind,
download it and give it a go, because once you start blowing
up those worms, you’ll be hooked.
27
3. GAMES & REVIEWS
28
Reviews
GeRMS
Developed by: xenomorph
Review by: Cubex DE
GeRMS is a fun little game that takes away the tedium of
most evolution games and replaces it with fun and interesting
gameplay. There are still a few kinks to be worked out, but the
concept definitely shows promise so far.
The graphics are incredibly well made, highly stylized and just
plain fun to look at. The different objects really look like germs!
The physics engine is also excellent, providing convincingly
simulating movement through liquid. It actually felt like the
different creatures were swimming around. Different
biological stuff would move when you went past it, like your
motion through the liquid was affecting its movement as well.
Very well done and cleverly implemented.
Sounds and music were definitely above average, and were
not ripped. I loved the "munch" sound that played when you
got too close to an enemy! All the sounds fit nicely together.
There wasn't much of a story, but I expect to see one later on
in the project. Then again, this type of game doesn't really
need a story; it stands quite well on its own.
The various evolutionary changes available greatly improve the
open-ended sandbox gameplay, letting you decide how to allow
your "creature" to evolve. Add spikes for defensive purposes,
or get smaller, so you're harder to detect. You can even evolve
glowing capabilities to help you see in those dark spots!
Overall, this game is the best evolution game I have seen so
far, and it never slows down or gets boring. I highly
recommend that you try out GeRMS and give the creator
some constructive feedback.
28
3. GAMES & REVIEWS
29
Reviews
Brix
Created by: TheMagnitude
Review by: Keysle
Brix is a classical arcade game brought up to date. Different
from the classical game “Bricks (I’m not sure if it’s called that
*Not part of Review (NPOR)*)”, there are new features such
as multiple power ups, different obstacles, and even a level
builder.
The graphics weren’t too great. On top of that, they were from
resources packs or just plainly unoriginal. Also the graphics
styles didn’t all match which was a disappointment. What
could be done though is get a basic outline of each sprite and
then fill it with some art style of your own.
The interface was the highest rated because it was quick and
easy to use. There was no confusion about what any of the
options meant. I like the fact that the buttons became larger
when your mouse hovered over them and I also like that there
was some animation within the help system which made
things much clearer and easier to understand.
The gameplay was great at first, but the fun factor wore off
quickly when the player became immune to obstacles. Also
the levels failed to vary in challenge; every level just had a
different block layout and the only new obstacle introduced
was the bomb blocks.
The music was looped and eventually got irritating. The
cartoon-ish repetitive sounds didn’t help my nerves either. The
sounds sort of fit together still but it was mainly resource file
sounds, so anyone could have done that. What was good
though is that everything that needed a sound had a sound.
Overall the game is decent and deserves it’s score.
29
3. GAMES & REVIEWS
30
Reviews
PhotoWeb 3.1
Created by: TheMagnitude
Review by: Medieval
If I look around the Game Maker Community (GMC), hundreds
or even thousands of users have userbars in their signatures,
showcasing either their latest project, finished game,
company name or anything in that sense. Photoweb gives you
the ability to create such things very easily.
As this is not as powerful as most commercial image editing
software, it makes up for it as it is much easier to use. You
can easily select your background colour, whether it is a static
colour or a gradient. You can also add things like: shine,
patterns and borders to your image to make it stand out a lot
more. Most of the eye candy that people usually put in their
images is pre-defined and ready to use for your image.
Speaking about the eye candy, if you choose anything predefined, it pops up in the image and you are able to adjust the
size of it. All features are easily accessible, and everything
mostly fits in very well. The text feature allows you to choose
your own font and colour.
Since so many people on the GMC have these userbars or
something similar in their signature, this program is found
very useful by the GMC crowd. I think it is useful too, as it gives
you all the functions that you need for creating a signature.
The program itself is designed very well and the buttons look
really good to fit the program well. Custom message
backgrounds and buttons make it look even better. You can
see that the creator has put a lot of effort into making all the
images look good.
Overall, it’s a very good program. If you want a simple
signature, I highly recommend you to download this.
30
3. GAMES & REVIEWS
31
Reviews
Airbase 101
Created by: TheMagnitude
Review by: rup13
Airbase 101 is the real time dog fighting top down aircraft
game with custom deathmatches and a twenty-one different
planes to choose from. What more needs to be said? Initially
the game doesn’t look like much, although the text effects are
quite good, but once you click to play you are presented with a
number of options to customize your own game. There are
four different modes for you to choose from which include
Deathmatch, Survival, Time and Free Flight. Each mode comes
with a different style of gameplay and can keep the player
interested.
Once the settings have been decided upon and you initiate the
game, the map is generated and you begin the game. I am not
very interested in games such as these but I found this one to
be quite interesting. The ability to be able to upgrade your
plane as you kill more aircraft was a good addition which
keeps the player heading towards some sort of goal. However
for a complete game, it seems quite a small one as there isn’t
much you can do, especially if you aren’t very good at it. This
means the game tends to get boring more quickly for those
players.
The graphics are simple and fit together well. However the
things that decreased the game in my eyes were the use of
Game Maker’s default text boxes, although a slight upside is
that they were customized slightly. Also that for the
information, the game just displays the game information. The
sounds however are very good and the effect creates a great
deal of atmosphere as you find yourself surrounded by bullets
and you can hear them flying past your aircraft. However the
music was the slight downside as they seemed to just be
random tracks and didn’t add much atmosphere or depth to
the game. They didn’t fit into the game’s style so if there was
ever a sequel, this would surely be one thing I’d like to see
fixed.
Overall it is another good game with quite a lot of custom
battles available; however it just doesn’t interest me enough
for me to keep playing. Many people who are very interested in
top down shooters may find this all they need, but to keep me
interested this game needs more interactivity and more
gameplay. It has earned a very fair 3/5 due to the amount of
work that has gone into the game, the great sound effects
and average gameplay. If you love dog fighting aircraft games
then check this one out and you won’t be disappointed.
31
4. EXTRAS
32
Interview With:
TheMagnitude
GMT: Tell us about yourself? Is there anything behind your
username?
TM: “Before I knew about game maker I always dreamed of
making computer games but I had no idea how to do it. I
always liked creating things; I used to make cardboard guns
and projectile firing devices and sold them to people at school,
which got me into a lot of trouble when people started using
them in the classroom. I made about £10 off then which was
a lot for how old I was (about 12 or 13). Now I spent my time
trying to learn new things (anything about computers haha)
and play on my DS. I really like playing on Metroid Prime
Hunters...I think the best I got was 260th on the Nintendo
leaderboard but the game has been taken over by so many
hackers that it has lost it's excitement for me.
My username first sprouted up when I and my brother were
going to form a kind of company or group making GM games.
He wanted to call the company Symumatic...I think, and I
wanted it to be called Magnitude...but our ideas differed and
we went our separate Game Making ways. I then went by the
name Magnitude but when I first registered on a forum or
website (I can't remember what site it was but it might of
been RuneScape haha) the username "Magnitude" was
already taken so after about 2 seconds of thinking I decided to
go with the username "TheMagnitude" and since then I have
used it for almost everything, differing to "Magnitude"
sometimes.”
GMT: When did you start using GM? and how many projects
have you made since then?
TM: “I first found GM about 3 years ago when my brother
found it I think through Google, and ever since then I have
been on it pretty much any time I could. The first game I
properly finished was Marbles, which was a maze game using
resource pack graphics haha. I was very pleased with the
finished game though and it had quite a lot of levels and
worlds. My favourite game has always been shooting games
so I made my first TDS (never really finishing it) called
Radiation Man, which had the basic stuff (couple of weapons
and monsters, levels). I also made a breakout game which is
available on YoYoGames and the GMC called BriX - I have
never completed it and no-one has ever reported completing it
haha it's really hard. I think my best score was about 8500. I
have also made a Ping Pong type game called...well... Ping
Pong which was quite fun.
I have made quite a few projects, and quite a lot of them have
been finished because I never give up on a project until it's
complete and is to my satisfaction. That’s the secret...to never
ever give up!!!”
32
GMT: How long did it take you to learn GML? any tips for
people?
TM: “GML took me quite a while to complete since I was on my
own most of the way...I hadn't joined the GMC or any other
Game Maker related community until last year so I had to
learn by myself which was pretty hard. I think after about 11.5 years did I start to use GML fully in my creations.
My tips for other people are that if you are constantly running
into errors in your code then that is good, because the more
you run into errors the more you will learn on how to avoid
them in the future and the more you will learn about the GML
programming language.”
GMT: Out of all the GM games what's some of your
favourites? why?
TM: “One of my favourite GM games is "The Sandbox Of God"
because I enjoy playing it and it is really clever how all the
features of the game work together to create something
professional. I like games that have a long replay value, which
is what I try to include in all my games, and I think "The
Sandbox Of God" has a very long replay value.
I also like Jumper 2 because the idea is totally original and I
like the professional level editor and saving feature. This game
has clearly had a lot of work done on it...but I find it quite hard “
GMT: Are you a big fan of anyone on the GMC? Do you have a
person who inspires you?
TM: “Someone who inspires me is FredFrederickson, and this
is because I know he spends a lot of time perfecting his
games which is what I try and do (some people have
described me as a perfectionist). But the most impressive
thing about FredFrederickson is the graphics and menu
layouts in his games. I'm not too good at making game
graphics because it takes me like 3 hours to pixel a single gun,
and I can never decide on a decent menu layout for a long
time.”
GMT: Airbase 101, was this your first popular/liked game?
How long did it take to make?
TM: “Yes I think this was my first popular game. This game
started out being an AI test which consisted of planes flying
out of a hanger and not crashing into each other, and this was
pretty successful. I also at this point couldn't see an air
combat TDS on the GMC so I decided to work on this project,
and when I posted an early version on the GMC everyone
seemed to enjoy playing it and good comments always make
me want to do more work on a creation. I upgraded it and
upgraded it until recently declaring it finished, however when I
4. EXTRAS
33
Interview With: TheMagnitude (continued)
get the time I will incorporate an online mode into it.
This game was my first serious project which took me about 1
year to complete. Lots of people have asked me how I did the
AI for this program so I have decided to make an example
when I get back from my 6 week holiday!”
GMT: I'm sure a lot of people would have heard of your second
project, PhotoWeb. Where did the idea of an all-in-one creator
come from?, Do you have a future goal for this program?
TM: “I used to use a userbar maker to...well make userbars
haha and I realised that there was NO program at the time
that you could resize the image...so I thought to myself...that I
will make that program. The name PhotoWeb instantly came
into my head, mainly because it sounds flash, but also because
it can be used for optimizing Photo's for the Web haha. I got
to work on it straight away (at this point I was working on
Airbase 101 aswell). The first version I released I got really
good feedback from which made me want it to be the best
graphics program on the GMC. I did realise that I had
competition but I felt that I had created a whole new type of
program that had never been seen anywhere else. Version 2
came out soon after but then the GMC had to wait a whole
year for version 3, which is the version currently out at the
moment.
I'm not really sure I have a future goal for this program
because version 3 was meant to be the final one and this is
because I tried to include as many features as I could think of
into it, and eventually...after a year haha I ran out of features.”
GMT: Out of these two projects, which was the hardest to
make? Why?
TM: “PhotoWeb was definitely the hardest and most
frustrating to make. This is because when I started it I was still
kind of new to GML but at the end of it I had learnt so much.
The things that were very hard to make in this program
included the programming language (PWS) and imagemagick
implementation, and all the various features that are in
PhotoWeb have had a lot of work done on them - Especially
the animation side of it.
Airbase 101 had it's frustrating times aswell, like the AI took
along time to develop and so did making all the custom game
modes work, but PhotoWeb was the most hard to make!!!”
33
GMT: What game/program have you always wanted to
make?
TM: “I have always wanted to make an online FPS that a lot of
people would play but that may be a while till I get my head
down working on that because I'll be busy working on Shadow
Zone which I'll get into later. I have already made most of the
3D physics engine for the FPS but it still has a hell of a long
way to go.”
GMT: Do you have any exclusive upcoming games/programs
that you are working on?
TM: “Yes, Shadow Zone. Only a few people have actually played
this online game with me and the few that have enjoyed it. It is
a 3D top down shooter inspired by Counter-Strike. It can
currently have up to 8 people playing online and I hope to get
this game finished this Christmas.”
GMT: Do you have any finial words for any GM users out
there?
TM: “There is one thing all you guys (& gals) must remember
when programming with Game Maker, and this is to:
No matter how hard or frustrating a creation is to make, it
could be the best if just don't give up on it!”
4. EXTRAS
34
Interview With:
sakisa
GMT: To begin, could you tell us more about yourself?
SK: “My real name is Sakis Rogas. I'm from Greece, a city
called Trikala and I am 18 years old. I have finished school this
year. I really like painting, sports, video games and game
developing of course.”
GMT: When you first started Game Maker, what were you
thinking? What was your goal?
SK: “I first started GM 3 years ago, with Game Maker 5.1 and
I really liked how easy I could make a game in a few minutes.
The first game I made was a Batman action/adventure, just
for fun, but I always liked GTA games. My goal is to make a
perfect GTA-like game with its own authenticity that the player
can do whatever he wants in game.”
GMT: What made you become interested in 3-D games?
SK: “The first 3d game I have seen in GM was a Doom-like
adventure. I really can't believe that GM can support 3d
graphics. I was downloading tutorials, scripts and examples
from everywhere to help me with 3-D. So after a lot of
research, study and patience I have decided to work with 3-D
games because 3-D gives another dimension in the game and
makes it more interesting and beautiful.”
GMT: Seeing that you're interested in 3-D games, when did
you start with 3-D programming and what would you say to
others wanting to do the same?
SK: “The first 3-D game I made was about 1-2 years ago
which was a first person racing with very simple graphics, but
it was so beautiful to see that I had made it by myself. So from
that moment I decided to work more with 3-D games. To the
people who want to try 3-D I suggest they try a lot to find
tutorials and examples that will be very useful to them and
that they always try different things.”
GMT: To people who don't know what Crimelife 2 is, please
describe it to them.
SK: “Crimelife 2 is a GTA kind game with beautiful 3-D
graphics and tons of lowpoly models. Stuff you can do so far:
- You can walk around in the new huge city.
- Shoot people and explode vehicles with 5 weapons including
Uzi, Shotguns, Rocket launchers and more.
- Drive a car from 16 available, all different in appearance
and interior.
- Enter a building to explore the rich content and many, many
other things.”
34
GMT: What inspired you to make Crimelife 2?
SK: “I always liked GTA games; Crimelife 2 is a GTA game that
I’ve always wanted to make. It inspired me the freedom of the
GTA title because GTA means freedom for the gamers.”
GMT: Have you encountered any problems while making
Crimelife 2? and if so, could you describe them.
SK: “The only problems were some copyright stuff and
disagreements with some people. All the bugs in the game
are fixable.”
GMT: What features do you think Crimelife 2 will have in the
future?
SK: “Always more and more and more!
- More vehicles, at least 50 including bikes, boats, airplanes
and others.
- More weapons like knifes, flamethrowers and explosives. I
want to add the good old grappling-hook from Crimelife1
sometime.
- Missions (at least 20) and a good storyline.
- More character customization with more clothes and outfits.
- Maybe customizable cars sometime...
- More enterable buildings and buildings for sale.
- More freedom e.g. when you fly with a helicopter, you land on
to a roof of a building.”
GMT: Are you working on any other projects at the moment
beside Crimelife 2?
SK: “No. Crimelife 2 needs a lot of work so I don’t have time
for other stuff.”
GMT: that’s the end of the interview, is there anything else you
would like to add?
SK: “No really, only a big thanks to Mazdaplz for his help with
the models.”
4. EXTRAS
35
Comic
35
4. EXTRAS
36
Take a Look
36
4. EXTRAS
37
Take a Look (continued)
37
4. EXTRAS
38
Free Applications
Photo to Sketch 3.5
At first, you might assume that Photo to Sketch 3.5 (P2S) has
no value to game development, but this assumption is
incorrect. P2S can introduce an ominous feel when applied to
the photos you choose to convert. These outputs can then be
used in cut scenes or in any backgrounds you see it fit. P2S
allows the user to bring in elements such as freehand
sketches into their games so that the game is not littered with
loads of out-of-place photographs.
P2S has multiple drawing instruments with different settings
to define your perfect sketch. The main drawing instruments
that can be used are the Pen, Pencil and Pastel, each with
their own predefined effects. There are also different textures
which can be used to create your output. Overall, it might take
a while to get all the outputs you need, but the end result will
help put your game on the top of the charts.
Ultimate Paint
This program seems very simple and basic with a quick
glance, but when you are in need of quick results, you can rely
on this program to help with a variety of freehand drawing
functions. It has the functions just like any other graphics
package, except it can handle freehand drawing a lot better
than Microsoft Paint.
One unique function Ultimate Paint includes is the ‘Symmetry
Painter’ which allows you to first select an axis point, then
select how many symmetrical sides you would like to create
for your output. The cyclic mode is helpful for creating those
tricky wheel sprites and those tunnel effect backgrounds. The
tile mode is useful for creating tiles/textures that allow for
seamless repetition in Game Maker.
Overall a good little program which is quite powerful in terms
of what it can generate. It is a good little addition to the
desktop of any game developer who is looking to create nice
sprites/textures.
Jazz Midi Sequencer
Many of you have probably already heard of or even seen the
Jazz Midi Sequencer (JMS). With its graph and bar setup it
might look very intimidating at first, but JMS is as easy as
playing a piano. With the quick help instructions and a will to
create music you can do so in just ten minutes. This program
is perfect for ambient music for dark dingy caves to epic
heroic scenes. You have many instruments to choose from to
create your music file; from guitars to pianos to woodwinds,
and even more so, you can access sound variables such as
pitch, velocity and channel. All these allow for an infinite sound
effects and background music files which is just what you
need for that brand new game.
38
4. EXTRAS
39
Closing
Another large issue is done. We hope you enjoy reading issue
7. You may have noticed, but the advertisement page doesn't
look very good, so in issue 8 we will be applying our new
system to the adverts page. We would love to hear from you
about your personal opinion of the magazine and any
suggestions you might have. Thank-you to the people who have
submitted content for the mag, without you the issues would
be a whole lot smaller. On behalf of the GM TECH Mag team
thank-you for reading and for your support.
In the next issue
> Releasing a Game
> Comic
> GM Tutorials
> Particle Effects
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.
39
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
mag, simply go to our forum and submit in the “submit”
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
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.