Hello Guest, please login or register.
Did you miss your activation email?
Login with username, password and session length.

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Zaeranos

Pages: 1 [2] 3 4
Entertainment / The Avengers
« on: April 26, 2012, 11:18:25 pm »
Okay guys, I just got back from seeing The Avengers. It just premiered today in the Netherlands. The movie is in one word "Totally Awesome!!!!!!!" .... Okay two words. But still very true. The action (of that what I could see) was exciting. The interaction between the characters was very well played. The story was engaging. And the humor was better than many comedy movies.

There were some flaws though. First Scarlett Johanson could not convince me of being Russian. Her accent is just too American. However she was hot and gorgeous and played the rest of her role as the Black Widow very well. And I want to see more of her. DO YOU HEAR ME!! I WANT MORE!! Second the movie suffers much from the 3D effect. Yes! The Avengers is in crappy 3D. In the first half of the movie there are many scenes at night and when there is no artificial lights, such as street light or houses, in the vicinity you can just see what is happening without the 3D glasses. With the 3D glasses it is too dark to recognize anything. You see some shades moving about on screen and some bright flashes due to special effects. But most of what is going on you need to piece together from the sounds and dialog, which is really well done by the way.

I had three trailers before the movie:
Men in Black 3: It started out with me squealing of joy, however by the end of the trailer I declared the movie Dead before Arival.
Prometheus: I thought first we are going to get another transformers movie. By the end I was just confused. What is this movie about.
The Amazing Spider-man: Not much to say. Tried to use the 3D effect, however the trailer wasn't really exciting.

I'm not going deeper into the movie yet because due to possible spoilers. And I want to go to bed. But to anyone who has seen the movie, please post your thoughts on it.

Entertainment / How many discs would this be?
« on: April 03, 2012, 05:22:17 pm »
<a href="http://www.youtube.com/watch?v=Y_UmWdcTrrc" target="_blank">http://www.youtube.com/watch?v=Y_UmWdcTrrc</a>

I wonder if this was serious, how many disks would this be. I think that your entire street will be filled if you got entire youtube on disk and vinyl. If not more.

Feedback / Spoiler tags, what happened to them?
« on: January 14, 2012, 08:46:56 am »
I just noticed that the spoiler tags are no longer working and no longer among the options in the editor.

No big deal, just wondering.

Show content
Just to check

Entertainment / Mobile Suit Gundam AGE
« on: January 08, 2012, 10:03:13 am »
I know there are some people here that like Gundam as well, but I am wondering what you guys think of the latest Gundam anime series called "Mobile Suit Gundam AGE"? I have seen 11 episodes now. All of them fansubbed by the #Anime-Gundam group, I don't know what other groups are subbing this series.

Of what I know, it is the game developer studio Level 5 that is primarily responsible for the series. Although it is a cooperation with the franchise holder Sunrise Studios. And this is also noticeable in the story and visuals.

I must say that I am not really warming up to this series. I find the animation a bit plain. It is a serious throw back to the earlier Gundam series, when it was just to costly or difficult to create more lively animations. But even then Mobile Suit Gundam Zeta has more interesting animation. It just does not look as good when you have seen the lively backgrounds and scenes of Mobile Suit Gundam SEED and Mobile Suit Gundam 00.

The story is also not really compelling. It really feels like a story made for a game and not a series. The premise given at beginning of each episode is that we are the start of a hundred year war. From promotional information I know that we get to follow 3 generations of protagonists. Which makes it even more obvious that the story is actually written for a trilogy of games.

You have an antagonist faction that you do not know anything about and the protagonist do not make any visible effort to get to know more about them either. You just have too little information and too little effort in the antagonists to even care about them. The protagonists is just this little group of people on the main ship. And these characters are bland. The main character Flint Asuno is the most boring of them all. He is pretty much that what all the other main characters of the other Gundam series have in common and nothing more. The side characters do not add anything to make the series more interesting. The only interesting character in the series is Woolf Enneacle, who seems a bit to be the ace pilot combat mentor to Flint Assuno. The rest of the world shines in their glorious absence. Seriously by a mere cameo the rest of the world does not exist. The world seems to only exist of the protagonist characters. From the last episode that I have seen it seems that they are forcing in some love relations just to set up the next generation to follow.

Overall, I am seriously underwhelmed by Mobile Suit Gundam AGE. I really think that it was better of as a trilogy of games instead of an anime series. I hope the future will make it better.

So what do you guys think of this series?

Coding / [Tutorial] How to implement states in GML.
« on: January 05, 2012, 06:37:28 pm »
Finite State Machines are a common used principle in games and applications. And most of you have a basic grasp of them. However I have often seen them implemented incorrectly. For each programming language it is different and even within a programming language there are several methods of implementing decent to good FSMs. This tutorial will focus on GML for implementing FSMs.
First and foremost thing to know about states and finite state machines in any language is:
1) A state is always defined by 1 attribute (variable) and not more.
2) The values of attributes (member variables) do NOT define the state, but the state DEFINES the values of attributes.
3) State valid values for the attributes are set when entering the state, not during an update cycle.
This means that checking several numerical or boolean variables like "jumping", "falling", "isRunning", "facing" in several if statements is not using states.

There are several ways to implement states in GML. I will give three methods on how to use states. All three of them will have the object in question have an attribute called "state". This attribute will thus hold the value for the state and this is the only variable that will be checked to determine the code that needs to be executed during the event/cycle/frame.

Method 1: Numerical or String
Okay, this is my least favorite method and not one I would recommend for games with some complexity. The 'state' variable will hold a value that is an string or an integer. For examples look at the code below:
Code: [Select]
state = "jumping";
Code: [Select]
state = 1;
Note that when using integers as your state variable it is better to have some constants defined such as 'JUMPING'. This will make the code more understandable for yourself and others. I will be using constants in the rest of the examples.

During the events you then check the 'state' variable's value with a switch or if-else statements. This will allow the event to execute the right code for that condition.
Code: [Select]
switch( state )
case IDLE:
//do the idle <event> code
//do the walking <event> code
//do the jumping <event> code
//you are in an error state
//do the error handling code


if( state == IDLE )
//do the idle <event> code
else if( state == WALKING )
//do the walking <event> code
else if( state == JUMPING )
//do the jumping <event> code
//you are in an error state
//do the error handling code

It is also good practice to use one event to check if a transition to another state has to occur. A Step or Draw event is something that is done every cycle and often the transitions are an animation end, distance to another object or a timer timeout, these events are good choices. You can also implement the checks in different events, but it is harder to assess whether you have implemented it properly. Some might argue that putting the checks in the events, such as Draw, Key Release and Animation End, that associate with them is more sensible.

Whatever your choice, the checks are most often done in an if (- else if) statement and when true the 'state' attribute value is set. A common mistake however is that only the 'state' attribute is set. Remember, the state DEFINES the values of the attributes and NOT the value of the attributes defines the state. Thus when setting the state you should also set the values of all the attributes of the object to a for the state valid value. However some attributes do not matter or should not be changed at all like the position of the object. These do not have to be considered. Some attributes can have a valid range and thus the value needs to be checked if it is within the valid range.
Code: [Select]
if( key_pressed('A') )
state = JUMPING;
sprite_index = player_jump;
image_speed = 0.5;
attribute1 = 6;
if(attribute2 < 3)
attribute2 = 3;
else if(attribute2 > 9)
attribute2 = 9;
//else attribute2 keeps its value

It is important that the values of the attributes are set to state valid values when the state changes. Failing to do so might or even will cause errors when executing the state specific code. It is also propper to execute state specific code when exiting the state. This is cleaning up, because each state only knows what happens within himself and does not know what happens in other states. However this is not absolutely necessary as it can be safe to assume that the next state will set the right values for the variables. But when the state has created an extra object and the object should not have a lifecycle beyond the state it is propper to destroy the object when exiting.

Method 2: Scripts
The characteristic of the first method is that all the code for each state is listed in a event. When the game is simple and there are only a small number of states the listing won't get long and that method is good. However when the game gets more complex and the number of states grows, so does the code listing in the event. You need to scroll more and it becomes much harder to oversee what you have implemented. For others it also because a bit more difficult to read.

Game Maker offers a solution to this by separating code into Scripts. Instead of having the 'state' attribute hold a numerical or a string value the attribute holds a Script value. Even the object no longer needs to check the state it is in during the event code and with a simple command the state specific can be executed. And scripts are capable of accessing the attributes of the object it is called from like it is part of the event code. The following code shows how to initialize the state:
Code: Text
  1. state = scrIdle;  // scrIdle is the name of the script when the state is IDLE

The disadvantage is that a script does not automatically know from which event it is called like the event code. Game Maker provides some functions to check which event in the gamecycle currently is active. However each script can have up to 16 arguments to provide some additional information. Thus it is a simple matter to provide an event identifier as the first argument. To make the code readable it is propper to use constants for event identifiers when possible. The code with the object is then as follows:
Code: Text
  1. if(state != 0 && script_exists(state))
  2. {
  3.         script_execute( state, <event>, ... ); //... are any additional arguments for this event, such as locally calculate values.
  4. }
  5. else
  6. {
  7.         //you are in an error state.
  8.         //do the error handling.
  9. }
The "script_execute" command is also available in the Lite version of GameMaker and can have up to 16 arguments besides the script argument.
Code: Text
  1. switch(argument0)
  2. {
  3. case STEP:
  4.         //do step event code for the state;
  5.         break;
  6. case DRAW:
  7.         //do draw event code for the state;
  8.         break;
  9. case KEYPRESS:
  10.         //do keypress event code for the state;
  11.         break;
  12. case ENTER:
  13.         //In this case the state of the object has transitioned to this script.
  14.         //Set all the attributes to the correct values.
  15.         break;
  16. default:
  17.         //Error, an unknown event has been passed.
  18.         //handle the error or let it slide
  19.         break;
  20. }
  22. //OR
  24. if(argument0 == STEP)
  25. {
  26.         //do step event code for the state;
  27. }
  28. else if(argument0 == DRAW)
  29. {
  30.         //do draw event code for the state;
  31. }
  32. else if(argument0 == KEYPRESS)
  33. {
  34.         //do keypress event code for the state;
  35. }
  36. else if(argument0 == ENTER)
  37. {
  38.         //In this case the the state of the object has transitioned to this script.
  39.         //Set all the attributes to the correct values.
  40. }
  41. else
  42. {
  43.         //Error, an unknown event has been passed.
  44.         //handle the error or let it slide
  45. }

Note that the example has a special event called "ENTER". This is a state machine specific event which does not occur in Game Maker. The purpose of the event is to set all the attributes of the object to state valid values, when the state of the object transitions to this particular script. A similar event is when the state transitions and the script has clean up for "EXIT"ing the state. The following example shows two methods for changing the state:
Code: Text
  1. if( key_pressed(&#39;A&#39;) )
  2. {
  3.         if(state != 0 && script_exists(state))
  4.         {
  5.                 script_execute(state, EXIT);
  6.         }
  7.         //else an error
  8.         state = scrJump;
  9.         if(state != 0 && script_exists(state))
  10.         {
  11.                 script_execute(state, ENTER);
  12.         }
  13.         //else an error
  14. }
  16. //OR nr2
  18. if( key_pressed(&#39;A&#39;) )
  19. {
  20.         if(state != 0 && script_exists(state))
  21.         {
  22.                 script_execute(state, EXIT);
  23.         }
  24.         //else an error
  25.         if(script_exists(scrJump))
  26.         {
  27.                 scrJump(ENTER);
  28.         }
  29.         //else an error
  30. }
Code: Text
  1. ...
  2. case ENTER:
  3.         sprite_index = player_jump;
  4.         image_speed = 0.5;
  5.         attribute1 = 6;
  6.         if(attribute2 < 3)
  7.         {
  8.                 attribute2 = 3;
  9.         }
  10.         else if(attribute2 > 9)
  11.         {
  12.                 attribute2 = 9;
  13.         }
  14.         //else attribute2 keeps its value
  15.         break;
  16. case EXIT:
  17.         image_speed = 0;
  18.         attribute1 =0;
  19.         break;
  20. ...
  22. //OR nr2
  24. ...
  25. case ENTER:
  26.         state = scrJump;
  27.         sprite_index = player_jump;
  28.         image_speed = 0.5;
  29.         attribute1 = 6;
  30.         if(attribute2 < 3)
  31.         {
  32.                 attribute2 = 3;
  33.         }
  34.         else if(attribute2 > 9)
  35.         {
  36.                 attribute2 = 9;
  37.         }
  38.         //else attribute2 keeps its value
  39.         break;
  40. case EXIT:
  41.         state = 0; //I know it is an error state, but it forces the next script to set a propper state
  42.         image_speed = 0;
  43.         attribute1 =0;
  44.         break;
  45. ...

Like with the first method of numerical/string values the attributes have to be set to values that are for the state valid. Just changing the script is not enough. And the best place is within the script that is also the state.

Method 3: Array of scripts
The 2nd method has the advantage over the 1st method that the code for each state is separated in their own listings and thus far more easy to debug then when everything is put in the event code. However the check for what state the object is in during the event code of the 1st method is swapped by the check for the event that the game is in during the script code of the 2nd method. This check can also be eliminated when the state uses an array of scripts.

Okay this goes a bit against the requirement that the state is only a single attribute, because an array is a container of the same type attributes. However it has more advantages. So let me explain. The 'state' attribute is container for several script values instead of just one. The first element of the container is still the state identifier, which will be referred to as ID (value = 0). The rest of the scripts can be accessed using the event identifier (starting with value 1 and going up). Thus the code in a single script only contains the code that is needed for that state during that event. Setting it up is done as the following example:
Code: Text
  1. state[ID] = scrIdle;
  2. state[STEP] = scrIdle_step;
  3. state[DRAW] = scrIdle_draw;
  4. state[KEYPRESS] = scrIdle_keypress;
  5. [/event]
  7. Note that the code for entering and exiting the state is put in the script under ID. Executing the state specific code for an event is similar as in the 2nd method, but no event identifier needs to be provided.
  8. [code=event]
  9. if(state[<event>] == 0)
  10. {
  11.         //no code or a default needs to be executed.
  12. }
  13. else if(script_exists(state[<event>]))
  14. {
  15.         script_execute( state[<event>], ... ); //... are any additional arguments for this event, such as locally calculate values.
  16. }
  17. else
  18. {
  19.         //you are in an error state.
  20.         //do the error handling.
  21. }
Code: Text
  1. //do all the script code.

A state transitions is also similar to that of the 2nd method, however the initialization needs to do a bit more.
Code: Text
  1. if( key_pressed(&#39;A&#39;) )
  2. {
  3.         if(state[ID] != 0 && script_exists(state[ID]))
  4.         {
  5.                 script_execute(state[ID], EXIT);
  6.         }
  7.         //else an error
  8.         if(script_exists(scrJump))
  9.         {
  10.                 scrJump(ENTER);
  11.         }
  12.         //else an error
  13. }
Code: Text
  1. if(argument0 == ENTER)
  2. {
  3.         state[ID] = scrJump;
  4.         state[STEP] = scrJump_step;
  5.         state[DRAW] = scrIdle_draw;
  6.         state[KEYPRESS] = scrJump_keypress;
  7.         sprite_index = player_jump;
  8.         image_speed = 0.5;
  9.         attribute1 = 6;
  10.         if(attribute2 < 3)
  11.         {
  12.                 attribute2 = 3;
  13.         }
  14.         else if(attribute2 > 9)
  15.         {
  16.                 attribute2 = 9;
  17.         }
  18.         //else attribute2 keeps its value
  19. }
  20. if(argument0 == EXIT)
  21. {
  22.         state[ID] = 0; //I know it is an error state, but it forces the next script to set a propper state
  23.         state[STEP] = 0;
  24.         state[DRAW] = 0;
  25.         state[KEYPRESS] = 0;
  26.         image_speed = 0;
  27.         attribute1 =0;
  28. }
Note that during the "ENTER" the script that is set for the DRAW event is called scrIdle_draw. This is another advantage of this method as it allows states to reuse scripts when two states have exactly the same code for an event. However if there is in the code one token difference like a '+' changed into a '-' then a new script still has to be created. This method can rank up the number of scripts and if you do not organize them well it can be a confusing mess.

Entertainment / Super Mario 3D Land
« on: December 22, 2011, 05:08:03 pm »
Okay guys, I just got myself a Nintendo 3DS Limited Black Edition. Yes its the one with the Zelda print on it. That is why I bought it. As an additional game I got Super Mario 3D Land, which is the only game that I have been playing besides the AR games.

I must say that I am a bit disappointed with the game though. Don't get me wrong. The graphics look nice, just as a Mario game should look like and the 3D is a good addition. The music and sounds are just what you expect from a Mario game.

What is so disappointing then? you might ask. Well it is the difficulty. It is ridiculously easy. I haven't drained the battery (5 hour lifetime) once. I haven't drained it half yet and I am already well away in the fourth world, with almost every Star medal. The rate the difiiculty is going could play this games with my hands tied behind my back and toes at the controls. Over the summer I have played Super Mario World and in the second and third worlds there were levels that already got my teeth grinding because it took me a full afternoon to complete one of them.

Please tell me the difficulty of this game will go way up in the coming worlds, because this is seriously turning into a let down.

Okay, in this topic I will start working on a design for a basic engine that can be used for Zelda fan games and Zelda style games. Why? Because I think that a couple of engines that are easy to use for programmers and nonprogrammers would lower the threshold on completed and abandoned projects. This design project will also be a good start for creating a game. The design will have Object Oriented languages as design target.

I hope people will cooperate and help me make a good design.

Domain Analyses
In this part I'll analyse the domain in which the project is set. It starts out with the premise that it focuses on being a engine, not a game, and that it is a engine for Zelda fan/style games. Thus the analyses is two parted.

Engine domain
The question rises what would make this engine different or better than others. Well, first of all the idea is to have a complete open source engine that anyone can change and program for. The second reason is a bit more complex.

On ZFGC there are a number of "engines", of some that even have the source available. Most of them do not get any further then walking and have some additional features. Others are a lot more extensive, but are loaded with features. Features that some people do not even want to use in their game. Trying to get those features out will undoubtedly lead to breaking the engine as they are often hardcoded in there. The engine I am aiming for has very little to no features at all. What it does contain is the basic code shared by everything and the hooks to easily add new features to the engine in order to create a game.

With features I mean implemented weapons, enemies, NPC's and basic actions the player can do. With this engine programmers will have the basics to create their own features. And members with little programming skills can add readily programmed features for their games. Thus the engine will be very minimal and has a library of features that can be added when creating a game.

Why do this. Well because at the moment the only real option on getting to work on a game, without the need to work on a engine first is Zelda Classic engine. This is a engine based on the original Zelda game, although it has seen some more fangames which seem more advanced. The purpose of this engine is to offer an alternative based on some of the later 2D Zelda games.

Zelda fan/style game domain
The type of Zelda games that the engine has to support is a 2D based Zelda game. But preferably in the style and possibilities of the later 2D Zelda games such as Minish Cap and Four Swords (ALttP?). So what does a basic 2D Zelda game entail.


I'll continue later. Now its late.

Entertainment / Ghostbusters
« on: February 13, 2011, 09:36:04 am »
I just went through my old movies collection and I came across the Ghostbusters. It brought back some memories. I always liked the cartoon series and have some really fond memories. I watched the movie again. Some years ago I heard the rumor that they were working on a Ghostbusters 3 movie with the originals actors. It was around the time that the video game was announced. What nostalgia do you guys have about Ghostbusters. And should I perhaps try out the video game, because I haven't played it yet.

Entertainment / X-Men First Class
« on: February 11, 2011, 06:22:32 am »
I just saw the first official trailer of X-Men: First Class. And I was wondering what you guys think of it.

<a href="http://www.youtube.com/watch?v=m4_ra9VneUc" target="_blank">http://www.youtube.com/watch?v=m4_ra9VneUc</a>

Me personally, I have some mixed feelings about it. I like the X-Men. I have read almost all the comics and spin offs up till the "House of M" story arc. And I loved the previous movies (yeah I loved them so sue me). I think it is great that they try to explore the origins between Professor X and Magneto, but to me the first class still consists of Cyclops, Beast (without the fur), Angel, Iceman, Marvel Girl, Havok and Polaris. With an established Professor X as their teacher and Magneto as their rival and nemesis and Quicksilver, Scarlet Witch, Mastermind and Toad in the Brotherhood.

Now seeing this trailer it feels like a lot of the mutants in the movie are just ripped from various points in the X-men history. It seems like a jumble mish mash of mutants put together, because either people think they are cool or they are recognized. Not to mention that some of the powers do not belong in that time. For example the White Queens diamond form is a second mutation power, which she gains later.

I think that this movie either is great or it will be complete trash, with the latter being the more likely. Still if it is not Real 3D, I am going to watch it.

Entertainment / ∀ Gundam
« on: January 30, 2011, 09:01:10 am »
I just began to re-watch this series, because I finally got a decent translation. Years ago I watched Turn A Gundam, but the subs were not present at certain moments and of the subs that were present the English was horrible. As if it was made with google translater directly from Japanese. You can imagine it did not give a decent first impression, especially because I don't understand Japanese.


Ah well, now I have a good version with good subs so I can actually watch the story now. I have only seen the first 15 episodes and I can definitely say that this is not one of my favorite Gundam shows. At least I am not enjoying it as any of the others. With the exception of G Gundam, because that series is even worse. However I cannot help myself appreciating how the creators have been able to mix the Gundam franchise into a Industrial Revolution time era. With the machinery and fashion to match.

But why isn't it as good. Well unlike all the other gundams, that combines drama with fighting, shooting and explosive actions. Turn A Gundam however tries to tell the story of another side from war. The negotiating of peace treaties and how some revenge crazy, greedy gun-ho soldiers keep spoiling the negotiations. The series lays its emphasis more on the drama than on the action. It does take a few episodes before the Gundam turns up and the war actually breaks lose. Even then it takes a long time before the Turn A Gundam gets into a decent fight, with a weapon that he loses immediately after. And there are very little to no casualties among the soldiers.

The Turn A Gundam is like the RX-78-2 Gundam in the original series never swapped out or improved upon with a better model. Which is something every gundam series does since Mobile Suit Zeta Gundam. And like the RX-78-2, the Turn A is pretty much the only Gundam in the series. It does not look much like any of the other gundams. Even in G Gundam that had pretty weird gundams, they still all had the signature head characteristics. However the Turn A does not seem to have that. But its look does seem to go well with the IR setting.

Entertainment / No more Daddy Cool
« on: January 04, 2011, 10:59:54 am »
At the 30th of december of the year 2010 Bobby Farrell died. He was the male ive performer in the group Boney M. The group had their peak of popularity during the 1970's in the disco scene, with songs like "Daddy Cool", "Ma Baker", "Rasputin" and "Rivers of Babylon".

I can't say that I am a big fan of Boney M, but some of their songs are nice to listen to. In Austria, however Boney M is still a big hit. During the week snowboarding there I heard at least one Boney M song every half hour being played in the apres-ski.

It makes me wonder who of you knows of Boney M and who likes their songs?

Some examples:
<a href="http://www.youtube.com/watch?v=sIakSu5VGF0" target="_blank">http://www.youtube.com/watch?v=sIakSu5VGF0</a>
Daddy Cool
<a href="http://www.youtube.com/watch?v=fv53gKx0cyo" target="_blank">http://www.youtube.com/watch?v=fv53gKx0cyo</a>
Ma Baker
<a href="http://www.youtube.com/watch?v=TmjdZKfumEI" target="_blank">http://www.youtube.com/watch?v=TmjdZKfumEI</a>

Entertainment / Link's Awakening DX for the 3DS ?!?!
« on: December 16, 2010, 06:43:06 pm »
Apparently some time ago, it was announced that Link's Awakening DX will be released on the 3DS's Virtual Console. It seems to get a nifty 3D feature, although I can't really imagine what that would be, considering Nintendo already gives OOT a 3D update and they love to do emulation. What do you guys think.


Entertainment / Anyone ever experienced an AARGH Boss.
« on: December 11, 2010, 09:49:16 am »
I just recently picked up Oracle of Seasons again just to walk around a finished game and it made me remember how long it took to finish this game. Completing the game was spread over almost a year. I started it after I finished Ages and made it a linked game. It all went smoothly and like every Zelda game I was enjoying the game and the easy and hard puzzles. Then I came to the 6th dungeon boss, Manhandla. This is when the game stalled. No matter what I did I could not beat this guy. I must have died a hundred times and got more and more frustrated, but I could not discover the pattern. Even with the remote controlled boomerang I could not take him down and evade his fireballs. I think the frustration after dozens death did not help.

Eventually I put the game down and did not continue playing for almost half a year. On my second try I did not do any better. Again with the frustration I put the game down for almost half a year again. Once I picked it up again It took me three tries and the pattern just hit me. I don't know how I could have missed such an obvious pattern. On the next try I beat Manhandla without loosing a heart or without the need to curve the boomerang. At that point it was the most easiest boss I have ever faced.

Has anyone of you had a similar experience with a boss in a game.

Discussion / QT, anyone has ever played around with it?
« on: November 26, 2010, 10:39:28 pm »
Okay, just to point out I mean this QT => http://qt.nokia.com/

Now the question to why I am interested in it. For my master thesis project I need to work with and program for a tool the university is developing. It is a tool that eases prototyping with OpenCV. However it is build in Qt Creator and the Qt Library and Utilities. It is nice and very extensive. It offers platform independence. However it also makes it feel very a lot like Java. A shitload of new stuff on top of C++ original stuff with a shitload of new features, that are spread over a shitload of classes and thus a shitload of things to memorize. Oh yeah and a number of keywords.

Well, my problem is not the extra features, but it does get overwhelming with a lot to learn. So I wonder if anyone has experience with it and what you think of it.

MC & FS / [Solved] MC Link sword slash
« on: November 21, 2010, 09:21:22 pm »
I wonder if someone has a good with Link from the Minish Cap doing a sword slash. I need it to work out the combat system for MCS engine.

I appreciate all the help, but I prefer the sheet to these specifications.
- Link without his shadow.
- Link and sword separate from each other
- Directions: up, down and side.

Link's tunic color and sword level do not matter and the sword slash is more than sufficient.

Thank you.

Coding / [Solved] Game Maker inheritance complications
« on: November 13, 2010, 10:35:07 pm »
I have a simple question about inheritance in Game Maker. I know that if an event is defined in a child it overrides the event defined in the parent. However when you use event_inherited you can execute the code in the parent. Or at least it should be.

I am trying to do this with the Create however. I seem to fail, because variables defined in the parent are not usable in the child. Is this correct and thus do I need to define each variable in the child again or is there a way around it.

Really Game Maker's inheritance is a big pain in the ass.

Coding / Combat System
« on: October 03, 2010, 08:57:56 am »
EDIT: 22 - 11 - 2010

Okay, I have been working on the combat system a bit more. It is nowhere near finished, but there are a number of aspects that need to be made first. For example an Monster Character. This has been added to my latest addition. I have also been thinking about the hierarchy of characters, Monster Characters and Non Player Characters.

My idea is the following hierarchy:

 |--> parCharacter
         |--> parMC
         |        |-> parStaticMC
         |        |-> parDynamicMC -> Octorok
         |--> parNPC
                  |-> parStaticNPC
                  |-> parDynamicNPC

For the MC I already made an Octorok. It's AI is connected to the state the Octorok is in.


Okay, I have been really busy lately with work and my Master Thesis. Starting work/study at 7:30 and end at after 18:00 leaves me very tired at the end of the day. With some chores to do before bedtime there is very little time left to work. This goes on about 6 or 7 days each week. In the time left I try to get somethings for the CP done and browse the forum.

Well with that said I like to present a bit of what I have been working on. My latest bit is a generic/base object for a handweapon. See the attachment. In the attachment I have made example implementations with the Lantern and Bow (mainly because these had ready available resources for me). The code of this new generic is as follows:

Code: Text
  1. /***************************************************************
  2.   State Variables
  3. * script - is the script with the weapon code.
  4. * state - to be used if the weapon has multiple stages.
  6. ***************************************************************/
  7. script = 0;
  8. state = 0;
  10. /***************************************************************
  11.   Other Variables
  12. * owner_id - the instance that is holding this weapon in its
  13.         hands.
  14. * timer - a counter for timing purposes.
  15. * x_off - the x offset variable. How far from the x position the
  16.         lantern has to be drawn.
  17. * y_off - the y offset variable. How far from the y position the
  18.         lantern has to be drawn.
  20. ***************************************************************/
  21. owner_id = 0;
  22. timer = 0;
  23. x_off = 0;
  24. y_off = 0;
Code: Text
  1. if(script != 0)
  2.     script_execute(script, STEP);
Code: Text
  1. if(script != 0)
  2.     script_execute(script, DRAW);
As you will see the code is minimum at best. But the most interesting part is the CREATE event. As you'll see it does not contain anything usable for damaging enemies or in fights. This is because it is still in development, but before it can go any further I need to discuss how to deal with damaging and calculate hit point decrease.

I was thinking about letting the following aspects play a role:
  • Link's base attack
  • Weapon's base attack
  • Link's attack modifier
  • Weapon's charged modifier
  • Receiver's base defense
  • Receiver's defense modifier
  • Weapon's element (fire,ice,magic,etc)
  • Receiver's element resistance
The problem is that I am probably thinking way to complex here and probably could do with less variables. Thus I would love to hear what you guys think about it.

Note: You can also see some of the latest additions to the engine's future release but it still has some flaws and holes in it. I am working on it and it still has some things to do before a release.

Feedback / Triforce icon
« on: September 18, 2010, 02:26:08 pm »
It is something that has already been there for a while, but I just can't get used to it. What I am talking about is the red/blue/green triforce symbol at the top of a tab. When I saw this the first time, I thought that it looked ugly. I didn't say anything because I thought that maybe I could get used to it. Now I have come to the conclusion that it is ugly and it remains ugly.

What is bad about it? Is it the Triforce symbol? No the symbol it self is rather fitting for Zelda community site. What the problem is is that the color, or better colors are wrong. They are so depressing. The triforce is also describe as "the golden triangles" or "the golden light". Nowhere I see the colors red, blue, green associated with the triforce anywhere (except maybe in the animated series, where Link continuously says "Excuuuuuuuuussssssssseeeeeee me, Princess!"). I know that those colors are associated with the goddesses, Ganon, Link, Zelda, Power, Wisdom and Courage. But the Triforce should be golden or yellow as in the games. Those colors just look depressing.

Okay, I just needed to get that off of my chest.

Discussion / [Discussion] Animations using Sprites
« on: September 04, 2010, 11:23:36 am »
[spoiler=Small rant and reason for creating the topic but has nothing whatsoever to do with the topic.]
Something has been bothering me for a while. Most of the developers that are actively developing something here keep their source code to themselves, hushed up as if they are a commercial company. The only actual open source project active in this community is the Minish Cap Style engine of the Community Project. Sometimes someone posts a topic showing an engine he is creating in which the source is available. But unfortunately these topics are often short lived. Most of the time if any coding is shown, it shows only a small but it does not reveal any of the design and idea behind it. Thus leaving other people whose help is asked guessing whether the fault is in the code or the design. Especially when only 2 lines of code are shown.

Personally, I find this situation for a development community a little suffocating and not helpfull at all. No one learns anything this way. At least not in this community. Also keeping new members who want to learn to develop games away. That is why I decided to try to do something about it by starting discussion topics about how to do specific things. Topics where members can share their ideas, discuss other designs and to learn from each other. I start with this topic about animations using sprites.

A few weeks ago I had a discussion with Freki about using a constant image speed in GM would never lead to good animations (http://www.zfgc.com/forum/index.php?topic=36778.0). I disagree, because with some creativity in sprites you can still create a good animation even with a constant image speed. What I found unfortunate however, was that no alternative solution or implementation was provided. Therefore am I making this discussion about creating animations with sprites.

I am wondering how you guys would design(/program) drawing and animating of sprites. And it does not matter what language you would use. It is not exclusive to GM or C++. Although it would be nice if you could provide some pseudo-code with your explanations.

discuss, discuss, discuss.

Coding / Generic Graphic and Drowning
« on: August 12, 2010, 09:21:17 pm »
I have been sitting on this for a while now. Don't know why I didn't post this before. I probably have been to busy with life and getting 4Sword's latest stuff in the engine (which is done now). But when working on the engine I actually had two things really bothering me.

The first one was the feature Swimming. Somehow it doesn't seem right to add that to the Stable Engine base. In all 2D Zelda games Link gains the ability to swim after he obtains an item, which can be pretty late in the game. Water actually is a barrier, preventing Link from reaching areas to early in the game. Thus it seemed to me more appropriate to have Swimming as an added feature that anyone can add if they wish for it. Just like weapons, such as the Boomerang. Link's primary reaction to deep water is to drown in it. That is why I implemented drowning.

The below code is from the drown script:
Code: [Select]
var round_i;

case STEP:
    if(state == LinkDrown){
        //Check for the end to return to LinkNormal
        if(image_index >= image_number - image_speed){
            maxi_x = MAX_NORM; maxi_y = MAX_NORM;
            x = prev_x - (prev_x mod 16) + 8;
            y = prev_y - (prev_y mod 16) + 8;
            image_index = 0;
            image_speed = 0;
            view_b = 0;
        //Link is touching water and not able to swim.
        //He is going to drown.
        x = x - (x mod 16) + 8;
        y = y - (y mod 16) + 9;
        case 0: sprite_index = sprLinkDrownR; break;
        case 90: sprite_index = sprLinkDrownU; break;
        case 180: sprite_index = sprLinkDrownL; break;
        default: sprite_index = sprLinkDrownD; break;
        image_index = 0; image_speed = 0.33; counter = 0;
        able_x = 0; able_y = 0; able_d = 0;
        step_x = 0; step_y = 0;
        move_x = 0; move_y = 0;
        state = LinkDrown; substate = 0; weaponInd = -1;
        global.scr_R = 0;
            sprite_index = sprSplashL;
            image_speed = 0.33;
            image_index = 0;
            move_x = -0.5;
            dist_max_x = 100;
            sprite_index = sprSplashR;
            image_speed = 0.33;
            image_index = 0;
            move_x = 0.5;
            dist_max_x = 100;
case DRAW:
    // 1. Floor the image_index.
    // 2. draw Link.
    //   a. draw added splash effects if needed.
    // 3. Loop the middle part a couple of times.
    round_i = floor(image_index);
    if(round_i == 5)
    else if(round_i == 6)
    if(image_index >= 8 - image_speed && counter < 2){
        counter += 1;
        image_index = 4;

If you look at the code than you'll see that there are two "genGraphic" objects created. This brings me to the second thing that was bothering me. The current engine did have a number of things implemented, but none of it was really finished. What I mean with this is that the movement and code was all fine and dandy, but graphically it still lacked a number of things. It lacked the graphics that do not interact with anything but are only there to be more pleasing on the eyes. My idea has always been that the engine has to be accessible to anyone. Even the people who want to build up their game like Lego. Thus the things in the engine had to look finished.

To me it seemed the easiest to do this with a simple temporary graphics object. And that is how I came with "genGraphic". On its own this object does not do much, because it lacks a sprite. After creation you have to assign a sprite and an animation speed to it. With the default setting this will play the animation once on the place of its creation and then destroy the object again. The object has some additional variables that can be set to alter the graphics behavior. You can set the number of times the animation has to run. Default it is set to 1, but a higher number for more loops can be set. Set the loop variable to 0 and it will loop indefinitely. You can also set a number of variables that allow the graphic to move in a straight line in any direction. After the graphic has traveled a maximum distance it will be destroyed. Note that it does not consider collisions. If desired a more complex graphic can be made of this. By assigning a script to the genGraphic object, it will override all the other code standard in the object.

below the code listings of this object:

Create Event:
Code: [Select]
scrGraphic = 0;
loop = 1;
move_x = 0;
move_y = 0;
dist_x = 0;
dist_y = 0;
dist_max_x = 0;
dist_max_y = 0;
Step Event:
Code: [Select]
//Check if it is a complex graphic driven by a script.
    if(move_x != 0){
        if(dist_x < dist_max_x){
            x += move_x;
            dist_x += abs(move_x);
    if(move_y != 0){
        if(dist_y < dist_max_y){
            y += move_y;
            dist_y += abs(move_y);
Draw Event:
Code: [Select]
//Is it a complex graphic driven by a script.
    if(image_index >= image_number - image_speed){
        loop -= 1;
        if(loop != 0)
            image_index = 0;

The genGraphic object has been used with the Drowning state and when you push an pushable object in a hole. Well what do you guys think?

Pages: 1 [2] 3 4

Contact Us | Legal | Advertise Here
2013 © ZFGC, All Rights Reserved

Page created in 0.021 seconds with 30 queries.