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
41
Entertainment / Kung Fu Kid
« on: July 25, 2010, 01:54:03 pm »
At least that is what the movie "Karate Kid" should have been called, because it has nothing whatsoever to do with karate. In this movie Xiao Dre a.k.a. Dre Parker (played by Jaden Smith) learns Kung Fu from Mr Han (played by Jackie Chan) in order to survive at his new school and find his place.

When I was a little tyke of 8 to 10 years old I just couldn't get enough of the Karate Kid Trilogy. I watched those movies over and over until I knew them by heart. Off course that has been many years ago and I haven't seen those movies in a decade. But the story about a young kid who got to a new school, having the hots for a girl, being bullied there and a lone old man teaching him Karate, so he can stand up for himself, I have always admired. I probably saw a bit of myself in it, without the karate or the happy end though. Thus when I saw that a remake was being made I wondered if it could bring up all those nostalgic feelings again, or like any other remake would be a complete waste.

The movie is actually rather good. People who have seen the original will after 10 minutes be able to predict things that are comming. The remake shows at certain moments little creativity, especially towards the end. A number of scenes are even the same to the dialogue, just with other people in it. On the other hand the story has been really fleshed out and many characters have more depth.

For one it is more believable that a kid has trouble grounding himself and hating his mother for moving when he moves to China, where he does not speak the language and by appearance stands out. In the original version, Daniel moved from one part of America to another part of America. The difference is also that the remake shows what Dre had to give up when moving to China. The viewer gets more emotionally drawn into the fight that Dre has to go through.

Another one is Dre's crush Mei Ying. She has her own dreams and problems to deal with and her parents that keep pushing her. The movie shows how the introduction of Dre has its positive and negative influences on her. In the original, Daniel's crush Ali was nothing more then a girl that 2 boys are fighting over. Nothing dreams, nothing problems, the only thing she did was scream and cry that they should not fight.

The story brings more depth and still almost follows the script of the original to the point. But the biggest question is how do Jaden Smith and Jackie Chan perform in comparison to their predecessors.

Ralph Macchio had to be a high school teenager in his final years and getting his drivers license, Jaden Smith actually gets to portray a child at the beginning of his puberty. As diverse as their characters are they also are diverse in their portrayals. Very little can be said about this, but Jaden Smith does seem to meet the high expectations that Ralph Macchio had set. His advantage though is that he actually portrays a child, smaller than his mother and smaller than his teacher.

Jackie Chan however has a lot higher ladder to climb. Pat Morita had portrayed a very specific and lovable character with Mr. Miyagi. Mr. Morita's much older appearance actually gives him a wise old man image and it is thus more surprising that there hides such a powerful warrior inside him. Jackie Chan is known for his martial arts and his specific and occasionally humoristic style also makes an appearance in this movie. Mr Chan doesn't look as old and wise nor has the mystique or appears as weak. But he does bring a lot more chemistry and emotion to his part and to the interaction with Jaden. A number of scenes that would have been rather plain have been given a lot more depth due the acting of Jackie Chan.

Concluding
This remake does not deserve the name it has, merely because it has absolutely nothing to do with karate and everything with kung fu. But nonetheless it is a good movie. It follows the original with a lot of detail, but fortunately it follows the original's strong points. The two deviate in that the remake has a lot more depth to the story and characters. The martial arts is a lot more flashy and spectacular as it goes a lot faster and has more flying in it. The best part is that the remake keeps the signature events and uses it perfect.

The remake did bring back all those nostalgic feelings I had when I was little and some more. However the story is rather widely known and brings very little suprises. It is not a movie that will reach the best of the year, but it is still a good movie that will entertain a great deal of people.

Score: 7 (out of 10)

42
Updates / Z3 2010 Build a feature contest
« on: June 30, 2010, 10:30:38 pm »
After a long time of absence a new contest has finally arrived to ZFGC. To accompany the upcoming Z3 2010 a spanking brand new contest is started.

The purpose of the contest is create a feature for the Community Project: Minish Cap Style Engine. Create the sprites, compose the sounds, write the code and show off what you can make Link do.

Quick follow the link to see more information and enter the contest.

http://www.zfgc.com/forum/index.php?topic=36627.0

43
Coding / [FEATURE] MC Boomerang
« on: June 29, 2010, 09:09:10 pm »
With this I submit the MC style boomerang weapon for the Minish Cap Style Engine. You can download it from: http://www.zfgc.com/index.php#?action=games&sa=view&id=168

Besides the small coding addition provided in the readme, it does not need anything else to work.

44
Coding / Feature List
« on: June 28, 2010, 06:05:42 pm »
This topic contains a complete list with all the features developed for the Community Project: Minish Cap Style Engine. In this topic members can post to request for specific features and other members might pick up the request. This topic is not for discussing features.

Here are the rules or this topic.
1) When making a request start your post with [REQUEST]. Give a name of the feature and provide a description as detailed as possible of what you want.

2) When requesting a feature and you have resources that can be used for the feature, provide a link for the download and credit information that needs to be added to the feature.

3) When accepting a request start your post with [ACCEPT]. Give the name of the feature you are accepting and the name of the member that has requested the feature.

4) Members can also announce that they start to work on a feature even when it hasn't been requested. Start the post with [ANNOUNCE] and give a name and description of the feature you are making

Available features
Feature nameCreatorDateProject pageTopicOther dependencies
MC BoomerangNiek2010-06-29http://www.zfgc.com/index.php#?action=games&sa=view&id=168http://www.zfgc.com/forum/index.php?topic=36633.0-
..................

Requested features
Feature nameRequested byDatePostAccepted byDate
Lift & ThrowDark Hylian2010-07-21http://www.zfgc.com/forum/index.php?topic=36627.msg412177#msg412177......
HookshotBrutus2010-11-10http://www.zfgc.com/forum/index.php?topic=36627.msg416940#msg416940......
..................

45
Coding / [June 2010] Stable Releases
« on: June 28, 2010, 04:06:54 pm »
In this topic the releases of the stable engine are discussed. Users can point out errors that even with the careful watching eyes of the Developers have snuk in. The stable releases contain the core code for a game with this engine. In addition there are some basic features/functionality to set up the beginning of a game, which the Developers deem to be needed for any basic 2D Zelda game.

Most of the features developed for the engine won't be present in the engine and to find them you need to look in the other topics. Thus do not post anything that concerns any features in this topic. It is solely meant for the stable releases and to discus the core code.

The projects page including the latest releases is found here: http://www.zfgc.com/index.php#?action=games&sa=view&id=167

The current developers for the Stable builds are:
Niek - Project Leader
4Sword - programmer

Engine content
* Link:
   - Standing/Walking Movement
   - Falling in a pit/moving with a platform
   - Ledge jumping
   - Rolling
   - Swimming
   - Pushing
* Controller:
   - HUD
   - Menu System with an item menu
* Generics:
   - Projectile
   - Flammable
* Objects:
   - Solid walls
   - Bounce objects
   - Ledges
   - Platform
   - Pushable object
* Surfaces:
   - Hole
   - Ice
   - Deep/Shallow water

Release log

June 2010
This version of the release is mainly posted for the upcoming contest for the Z3 (Still TBA). It does not contain the updates posted by 4Sword yet. These are set to be added for the next release.  


Things to be added
- Handweapons (for Link and for enemies like moblins)
- Base/Generic enemy
- Base/Generic (mini-)Boss enemy
- Base/Generic NPC
- Bottle system
- Text engine
- Option choosing in text engine (Buying stuff)
- Gamemaker room transitions (changing area's in the overworld or entering a dungeon/cave)
- Generic Collectable items (ruppees, bombs, arrows)
- Base/Generic Switches
- Base/Generic Doors

And probably a number of things that I can't think up now. If you want to add something to the engine build it with a specific example on the latest release stable version and make a topic about it. If your code works, than the developers will work on incorporating it in a future release.


46
Entertainment / Flingsmash
« on: June 18, 2010, 08:57:47 am »
In all the goody goodness that Nintendo has been showing and in all the big franchises that are ruling the talk of the day. There is one little title that I almost failed to notice. And this game is called Flingsmash. In all honesty the game doesn't look much and it looks such a happy game, that it becomes even corny to me. But I think this has the same potential as Kuru Kuru Kururin had back in the day of GBA.

For more info about it check: http://e3.nintendo.com/wii/game/?g=flingsmash

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


Now discuss.

47
Entertainment / E3 Press conferences
« on: June 14, 2010, 05:06:41 pm »
Well, this is a topic about the press conferences from E3.


19:05 hours  (GMT+1 Amsterdam, Berlin, Brussels, Paris time) the Microsoft E3 pressconference should have started now. But it has been delayed. Oh golly. I heard a rumor that Project Natal has been renamed to Kinect?

48
Coding / Boolean array/flaglist
« on: May 03, 2010, 09:21:04 pm »
Okay I don't know why I put this up, because it actually is way to simple to make an elaborate code example for it. But hell. What I made were actually three scripts/functions that would allow you to use a single numerical variable as an array with 53 boolean elements.

What do these scripts do and how do they work?
All the scripts have the flaglist as a parameter and the index of the bit that needs to be changed. The first script is queryFlag. This script only looks at whether the bit is set 1 (true) or 0 (false). The second script is setFlag. This script sets the bit at the given index in the flaglist to 1. The final script unsetFlag does the same, but instead it sets the bit to 0. Both setFlag and unsetFlag return the new value of the flaglist if the bit is changed or the old value of the flaglist.

Why setFlag and unsetFlag?
Actually, it is not necessary to have two different scripts because the line of code that sets the bit is also used to unset the bit. What makes the two scripts different is that one first checks if the bit is set and the other checks if it is unset before changing the bit. I did this to make it more dummy proof. Now you explicitly have to set and unset the bit to change the value.

Does queryFlag return true and false?
It all depends on how you see true and false. Gamemaker does not really have a datatype boolean. When the bit is set to 0 all the bits in the return value are set to 0. Thus 0 would be a return for false. When the requested bit is set to 1, only the bit at that position will be 1 in the return value. However the value of the return is equal to 2 to the power of the index.

How are you doing it?
I use bitwise operators. Before changing or checking the requested bit a temp value is created where the first bit is set to 1. Then the bit is left shifted to the correct position of the index. For checking the bitwise AND operator is used. If the bit was unset the result would be a lot of zeros, if it is set the result will have a single 1 at the requested index. Changing the bit is done by using the XOR operator. This will change the bit at the index from 1 to 0 and 0 to 1 and leaves all the other bits unchanged.

Thus I only need to call the scripts?
For querying the flag yes, only a call to the script is enough. For changing the bit only calling the script is not enough. Number parameters of scripts are passed by value and not by reference. Even if the parameter value would be changed it does not change the original flaglist. A assignment statement is needed to actually change the flaglist, like this
Code: [Select]
flaglist = setFlag(flaglist, index);

Why is the array 53 elements long
That is because I chose to use the number datatype instead of a string. Gamemaker's number datatype uses the binary64 standard or better known as a Double-precision floating point value. This datatype has 64 bits. The first 52 (+ 1 hidden) bits are the significand bits and thus the usable ones. The next 11 bits are the exponent bits, and changing these bits automatically also changes the significand bits. The final bit is the sign bit, making it a positive or negative value. Therefore of the 64 bits only the first 53 are usable.

Does this help me in any way make my game better?
It all depends on how you have organized your engine and how you have set up you game. The memory saving is pretty meaningless, because it is for the PC that has a shitload of memory. Also compared to the rest that needs to be stored it is relatively small. And something like
Code: [Select]
has_Opened_Chest_X_in_Area_Y = true;
is probably a lot more clearer what is set than setting an number in a list. But you can get swamped in the shitload of variables. Using these scripts however greatly diminishes the number variables used and can give a lot more order to your progress variables. In addition you can set up more generic objects, which do not need specialized code.

Ah well, the three scripts can be directly copied to any project, because they don't have any dependencies.

49
Coding / Menu System with the Controller object.
« on: May 03, 2010, 12:57:55 pm »
It is a new month and I thought why not show everyone what I have been working on for the Community Project. This topic is about the Menu System I build for the CP Minish Engine. To test and illustrate the system I implemented some of the menu screens found in the Minish Cap. First I'll give a brief overview of what to expect. Then I'll explain some more the implementation details and all the relevant scripts. After that I'll follow with some questions that are still bugging me. And I'll close with some other systems that semi tie in with the menu system, but are not developed yet.

Brief overview:
I have implemented a Menu System. The menu system is completely build of scripts and is a state of objController. To demonstrate it I have implemented the item and status menus with the save and Kinstone submenus. By pressing START (Enter) you can enter and exit the menu. With the L (A) and R (S) you can shift from the item menu to the status menu and back again.

To move the cursor use the arrow keys. No! You can't navigate the cursor on the L and R buttons or use it to go to the next menu screen, because Minish Cap doesn't do that either. That was done in OOT and MM, but not in the Minish Cap. Use the A (X) and B (Z) for entering and exiting the submenus. In the submenus the L and R buttons do not work.

With the item and status menu the cursor position of the last visited index is stored, just as which of the two menus you visited the last. I haven't implemented the graphical effects of dropping HUD's, Title and sliding L & R buttons.

Have fun playing. The demo is attached to this post.


Implementation details:
No about some implementation details. First of the Menu System is not a separate "Room" nor a separate "Object". The Menu is actually a state of objController, realised by a number of Menu specific variables and a bunch of scripts. But later about that.

Pausing the game
There are two viable options. Option 1 is deactivating and activating all objects except objController itself. Second is to have a global variable pause or something and then each object at the beginning of each event (except the create event) should have if(global.pause) exit;. I have chosen for the former, because this engine should be usable by every one. And they should be able to add objects to the engine if they want to. Then option 1 is the easiest and best choice.

However this resulted in that a number of variables of objects (especially Link) are also needed by the menu. And when objLink is deactivated this becomes a problem. The variables that are definitely required are the keys and the scripts belonging to the keys. These were made 'global'. To keep it all ordered and such I declared all the global variables in the script "InitializeGlobals" that is called at the beginning of the creation event of the Controller. This also resulted in the alterations of those variables in the code and scripts of objLink.

The variables of the menu system
As mentioned above a number of variables were made global. But a number of variables specific to the menu system were defined in the create event of objController. The common variables are used by many states of objController, while the menu specific..., well you can guess.

Common:
  • state - the state of the Controller object, game, menu, titlescreen.
  • substate - this can be almost anything and the values depend on the state. With the menu it can mean the submenus.
  • timer - a counter that can be used by the state.
  • use_A/use_B/use_L/use_R/use_START/use_SELECT - boolean values that tell whether a key press should be processed (true) or ignored (false) by the controller.

Menu state specific:
  • menu_i - pointer to the current main menu screen. It holds an index value to menu[i,j] and thus designates the current active menu screen.
  • menu_m - the maximum number of main menu screens used in the game and all of them are put in menu[i,j].
  • narrow - it is a blinking value for the cursor and other blinking stuff. In MC the menu cursor widens and narrows after a number of frames.
  • menu[i,j] - holds all the menu data of the main menus.
    • j = 0 : holds the Menu scripts of the main menus.
    • j = 1 : holds the last selected cursor index of the main menu.
    • j = 2 : Another variable which can be used for anything.

As you can guess menu[,] and menu_i are the most important parts for the menu system. menu[,] is a matrix that holds all the data of a main menu screen. Each row is a menu screen. First is the script that holds all the code of a menu. Second is the last selected position of the cursor for the menu screen. In MC the cursor of each screen is stored. Last is a position for extra data that might be useful. Because there are only 3 menu screens in MC I could have done it with 3 sets of variables, but doing it in a matrix structure allows for scripts that are more plug and play. With menu[menu_i,1] = you could change a cursor position, no matter where in the matrix it is added.

The variables use_A, use_B, use_L, use_R, use_START and use_SELECT are boolean values that represent whether the press of the respective keys are propagated to the state. It is usefull when you don't want the menu to end, thus preventing the START press to exit the Menu state.

The scripts of the menu system
The basic script that also represents the state for the menu is 'ControlMenu'. On its own this script does very little. The state accepts 4 events which are propagated to the script of the menu that is currently active. In the STEP event this script does nothing but propagate it to the menu script. In the DRAW event the background is drawn to the buffer, after which the menu script can draw its parts. In the KEY PRESS event the base script does the most. An START key exits the Menu state no matter what the active menu script is doing. The L and R keys will go to the previous and the next menu, when the substate has the value 0 or lower, otherwise the keys are given to the menu script. All the other keys are propagated to the menu script. The fourth event is the CREATE event, which initializes the Menu System and the active menu.

The other menu scripts are created to demonstrate as examples for the Menu System, but also to look at how to realize or functions (later about that). 'MenuItem' and 'MenuStatus' are the base menus that are added. Like the name says 'MenuItem' is the menu that allows you to assign weapons to item keys, by pressing the respective key. If the item already had been assigned to the other item key, the weapons will be swapped. The MenuItem also has the save screen as a submenu. Submenus are substates in which L and R should not do their usual action. There are a couple of ways to realize the submenus. In MenuItem this is done by assigning the value 1 to the substate. The script 'MenuItem' also contains all the code for the save menu.

The other base menu is the Quest Status Menu, which is coded in the script 'MenuStatus'. This screen actually only shows the games current status. This menu also has a number of submenus, accessible by selecting them and pressing the A (X). The only two submenus currently implemented are the Save menu and the Kinstone collection menu. Unlike the Item Menu this menu does not assign numbers to the substate. Instead the script of the submenu is assigned to substate and when a submenu is activated the events are passed to the script of the submenu.

In short...
The script ControlMenu is the basis of the menu system, but it can not work without actual menu scripts. The data of the menus are stored in menu[,] and menu_i indicates which menu is active. Submenus are dealt with by the menu scripts, the code can be put together in a single script like in MenuItem or it can be divided over a number of scripts like in MenuStatus.


Bugging questions:
Okay having explained how the menu system works I still have a few things bothering me. Which I could not find a proper solution for.

Direction keys
Currently when processing key presses the controller only looks at the keys representing the buttons of the GBA. The d-pad is hardcoded as the arrow keys and dealt with in the step event. Just like in objLink. But because the controller only deals with key presses in the states for the controller that I currently can imagine, such as the HUD, Menu, Teleport and File Select. It only needs to deal with presses and not holds and releases.

My idea was that I would add the directional keys to the KEY PRESS events as well. Which would leave the step event near empty (note not completely empty, but near empty). This is a small feat to do accomplish, but my trail of thought did not end there.

I was thinking about making the directional keys the same as the buttons. Assign the values to global variables. And then when in the code the directional keys are used, accessing the global variable instead of using 'vk_up' or 'vk_left'. There are mainly two reasons for this. First it would allow the engine to be easier configurable to the developers preference. Probably even make a key configuration feature, that would allow the player to customize his own buttons. The second reason is that it makes added features more plug and playable. When a developer chooses to use other keys (such as WASD) for the directions, then those developers would not need to look through every bit of code of the features they are adding just to change the direction keys used.

I know it probably would not be as efficient as using 'vk_up' and 'vk_left', but there is something to be said about plug and playability.

Information bar
As you look closely a small text bar appears at the bottom of the screen, when the cursor is on something that had already been obtained. This text bar provides the name of that something (weapon, key items, trophies) centered in the middle. Now I was wondering how to do that the best way possible. I thought up two options:

First is to have each name as a sprite and then store those sprites, like I did with the Save menu example. The only thing that needs to be done is to draw the sprite on the text bar in the middle. This does mean that the file size increases a lot.

The second option is to store the info as a string and then draw the string to the text bar. This would require that a text engine would be implemented, which is a complete separate feature for the engine. It also gives an added requirement for the text feature that it can center text as its alignment.

I would prefer to use the second option, but that does mean that I cannot complete this part until I know the details of the text feature.


Other systems:
While I was making the example menus for the menu system, I could not help but think about some other minor features which aren't directly connected to the menu. Most of them are about storing data. Some of these features are partially implemented and some of them are not.

weapon matrix
First thing I thought about was how to store data of the weapons/items that Link uses by pressing the A and the B. I was thinking about making a matrix "global.weapon[,]" where each row is the data for a single weapon. What I currently have stored is the following:

weapon[x,0] - the strength/level of the obtained weapon, where 0 is that the weapon has not been obtained yet. For the bottles this value could represent the current content, with 1 being empty.
weapon[x,1] - the script that is associated with the weapon. The script that is executed when the respective buttons were to be pressed. And the script that is the state for that action.

At the moment I don't know what more I would need to store, but that could always be added. In some scripts the level of the weapon is required to be known and would thus need to access the matrix. To facilitate plug and play scripts again, one could assign the index of the row in the matrix to the buttons instead of the scripts themselves. And those index numbers would be easy accessible to the script.

I can still see some problematic points with those index numbers though and I have not really thought about a simple solution yet. Or whether that is the best way to store the data.

Boolean variables & flag lists
Well I probably am saying something wrong with the title, but what it comes down to is how to store game progress data. I thought about having some numerical values and the higher they are the further the progress, but this would result in very linear progress. Another option was to have a great deal of numbers that act as booleans because they only have the values 1 (true) or 0 (false), for example has_Opened_Area_X_Chest_Y.

The best option to me is to use a combination. I use the true/false values of option 2 because it allows for a more nonlinear gameplay and I use option 1's numerical values because it allows more data to be stored in a single variable, without get swamped in a landslide of variables.

This would come to the following. By using bitwise operators I would use a numerical variable as an array with boolean values. The 52 (+ 1 hidden) significand bits of GM's number data type are then the elements/indexes of the array. Storing a total of 53 variables in 1 variable. I have implemented the scripts setFlag, unsetFlag and queryFlag to deal with the bitwise operators and to somewhat make it dummy proof.

With the globals I have the variable status to deal with the stuff of the status screen and I was thinking about making once more a matrix to store data of every dungeon. Thus you could give a index value to each chest in the dungeon and then with common dungeon data representing the right flaglist, you could query, set and unset the right value.

Saving and loading data
I have implemented the save menu as an example for the menu system. Every functionality is implemented except for actually saving data. I thought to do this in script that would just be called and not a separate thread. This would mean that the game would just freeze and not show any animation while saving. This is not something I have thought long and hard about.

Dungeon vs overworld
Also not yet implemented, but it is something that would be required for the map screen and maybe the flaglists. Data that indicates which area the player is in. And if this is an overworld or a dungeon area. In addition which overworld or dungeon area. For the dungeon I was also thinking about how store the number of keys the player has in its possesion.

I thought about doing this in variables with the controller object or maybe make a special object associated with the room or something. Well I'm not to sure about this.

50
Coding / How many bits are there in a GML number?
« on: March 29, 2010, 06:48:31 pm »
Well, like the title says. I am trying to find out how many bits are there in the GML datatype number. And how many bits make up the fractional part of a number.

Does gamemaker use double precision floating point values?

51
Coding / Link Swimming
« on: March 27, 2010, 02:18:31 pm »
Okay, I have added the swimming feature. In this feature Link will swim automatically when he comes in deep water and can only get out in shallow water. By pressing Z Link will dive. By pressing X link will get a boost. His movement direction will be fixed, but can still turn his facing direction.

The feature exists of:
- 9 sets of sprites gathered under: Link->Swim
- The script LinkSwim, which is an action script.
- The 2 scripts swim_check_x and swim_check_y.
- Slight alterations in objLink events: Step and Draw.
- Major alteration in objLink event: Key press
- Added the objects: parWater, objWaterDeep and objWaterShallow.

I made a complete different step event for movement. Although the movement is fully based on the basic step event. The major difference is that Link has to remain on the parWater objects when in the Swimming state.

Note that I did not implement a Drowning state, because simply it is not the same. Although both are initiated when Link is positioned on objWaterDeep. Drowning is still something different from actual swimming.

52
Coding / HUD and Controller
« on: February 21, 2010, 01:51:25 pm »
Well I found a little bit of time again to work on something for the MC Engine. In this case I have been working on a HUD. At the moment it is only the buttons section, because it directly applies to the actions Link can do.

Okay, now about what I did. I made a new object called objController, my idea was that it can deal with things in the game that does not directly apply to entities in the world, like the HUD, menu, titlescreen and all that.

The HUD itself is only something that needs to be drawn on screen. Thus I put it in a script. At the moment it first draws the buttons and then the actions assigned to the buttons. With the actions two options popped in my mind:
1) Make a giant switch/if statement to see what icon needs to be drawn.
2) Call the scripts assigned to the buttons and let them paint the Icon needed.
The choice was simple, because the second option is a lot faster and far more modular when adding new actions to the engine. A new event was added to the constants denoted as 'HUD'.

At the same time I finished some last details on the Bow. In the last versions the Bow did nothing with the amount of arrows. Now I made two global variables:
1) cur_arrows = the number of arrows Link is currently holding.
2) max_arrows = the maximum number of arrows Link can hold.
The current number of arrows is given with the Bow Icon.

The Controller object is currently rather empty and small, but in time it can grow larger. But I did add something extra, which should not considered to be a part of the engine. Instead of stopping the engine to change actions assigned to the buttons or reset the arrow count, you can now do this by pressing 'PgUp' and 'PgDn'. On there own those buttons don't do much, but in combination with another you can change things.
'P' => changes the action assigned to the A button.
'O' => changes the action assigned to the B button.
'I' => increases and decreases the amount of cur_arrows.

I'd love to have some input, about how you guys would do this.

Enjoy!

53
Coding / Magical boomerang and pushing
« on: February 10, 2010, 10:16:04 pm »
Alright, I have been working a bit on some actions for Link again. The first action is a new itemscript for the Magical Boomerang. If you keep the action button pressed you should be able to curve the boomerang with the arrow keys.

The second action is Pushing and like pitfalling and ledge jumping this is a integrated action, because it does not require the press of the action or an item key to activate. This action is based on Goodnights pushing engine.

In the attachment you'll find a rar file with again both GM8 and GM7 versions.

54
Coding / Bow (with charge), Rolling and Lantern
« on: January 28, 2010, 09:10:16 pm »
Well, like the title says I added the Bow and Rolling back in with 4Sword's last version of the Minish Cap Engine. With the Bow, I have done nothing fancy, just 1 single bow with a charge timer. I haven't added a charge effect with particles, because that is just a graphical extra that anyone can add.

I have also made the Lantern. Link is also capable of doing every other action, while holding the lantern. The test room also has a torch that Link can ignite.

Well, those are actually some small things to add. But my focus at the moment was twofold. First experimenting with scripts for actions and making it easy for new actions to be added to the engine. Second is to experiment with generic objects. Objects that are actually differentiated by the scripts assigned to them when created.

I'd love to hear some comments about them.

55
Entertainment / The End of Time
« on: January 04, 2010, 02:24:38 pm »
No this topic is not about the end of the world. This topic is about the BBC television series Doctor Who and especially the latest episodes.

I just finished watching this 2 part Doctor Who special and it was magnificent. It was really one of the best Doctor Who stories in the long history of Doctor Who. This year marked the climax of David Tennant in the role of The Doctor, which started back in 2005. 4 specials dedicated to the end of the Tenth Doctor and what an end it was. Visiting all his former companions and having to fight his greatest battle ever. Bernard Cribbins, playing Wilfred Mott, is probably the oldest companion of the Doctor to date. And in my opinion also one of the most enjoyable. To bad that character never got more story time to develop any further. John Simm in his 'double' role of the deranged and mad Master was superb. Timothy Dalton also put up a great performance as the narrator and as the other antagonist in the story.

It truly was a worthy goodbye for David Tennant as The Doctor and Russell T Davies as the main writer and executive producer of the series. I can't wait to the first episode of the new season to see if Matt Smith is a worthy successor as the Eleventh Doctor. Steven Moffat has already proved that he is a good writer with episodes like "Blink" and "Silence in the Library". So I'm not to worried at all about him succeeding Russell T Davies as head writer and executive producer.

Has any one else seen this episode and what were your thoughts about it.

56
Coding / C++ & DirectX headaches
« on: October 06, 2009, 08:11:35 pm »
Okay, I have been slowly learning some directX. After a few tutorials I try to make something myself with the knowledge I have gained. Now I was just trying to setup a checkersboard. So I try to make the squares by drawing single colored squares. This is the code I made:

dxgraphics.h
Code: [Select]
#ifndef _DXGRAPHICS_H
#define _DXGRAPHICS_H

int Init_Direct3D(HWND, int, int, int);
LPDIRECT3DSURFACE9 LoadSurface(char*, D3DCOLOR);
int drawPlainSurface(int, int, int, int, int, int, int, HWND);

extern LPDIRECT3D9 d3d;
extern LPDIRECT3DDEVICE9 d3ddev;
extern LPDIRECT3DSURFACE9 backbuffer;
extern LPDIRECT3DSURFACE9 surface;

#endif

dxgraphics.cpp
Code: [Select]
#include <d3d9.h>
#include <d3dx9.h>
#include "dxgraphics.h"

LPDIRECT3D9 d3d = NULL;
LPDIRECT3DDEVICE9 d3ddev = NULL;
LPDIRECT3DSURFACE9 backbuffer = NULL;
LPDIRECT3DSURFACE9 surface = NULL;

int Init_Direct3D(HWND hWnd, int width, int height, int fullscreen){
d3d = Direct3DCreate9(D3D_SDK_VERSION);
if(d3d == NULL){
MessageBox(hWnd, "Error initializing Direct3D", "Error", MB_OK);
return 0;
}

D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp, sizeof(d3dpp));

d3dpp.Windowed = (!fullscreen);
d3dpp.SwapEffect = D3DSWAPEFFECT_COPY;
d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
d3dpp.BackBufferCount = 1;
d3dpp.BackBufferWidth = width;
d3dpp.BackBufferHeight = height;
d3dpp.hDeviceWindow = hWnd;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;

d3d->CreateDevice(
D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp,
&d3ddev);

if(d3ddev == NULL){
MessageBox(hWnd, "Error creating Direct3D device", "Error", MB_OK);
return 0;
}

d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 1.0f, 0);

d3ddev->GetBackBuffer(0,0, D3DBACKBUFFER_TYPE_MONO, &backbuffer);

HRESULT result;
/****
 * THE NEXT PART GOES WRONG
 */
result = d3ddev->CreateOffscreenPlainSurface(
50,
50,
D3DFMT_X8R8G8B8,
D3DPOOL_DEFAULT,
&surface,
NULL);

if(!result){
MessageBox(hWnd, "Error creating plain surface", "error", MB_OK);
return 0;
}

return 1;
}


LPDIRECT3DSURFACE9 LoadSurface(char* filename, D3DCOLOR transcolor){
LPDIRECT3DSURFACE9 image = NULL;
D3DXIMAGE_INFO info;
HRESULT result;

result = D3DXGetImageInfoFromFile(filename, &info);
if(result != D3D_OK)
return NULL;

result = d3ddev->CreateOffscreenPlainSurface(
info.Width,
info.Height,
D3DFMT_X8R8G8B8,
D3DPOOL_DEFAULT,
&image,
NULL);

if(result != D3D_OK)
return NULL;

result = D3DXLoadSurfaceFromFile(
image,
NULL,
NULL,
filename,
NULL,
D3DX_DEFAULT,
transcolor,
NULL);

if(result != D3D_OK)
return NULL;

return image;
}

int drawPlainSurface(int x, int y, int width, int height, int r, int g, int b, HWND hWnd){
HRESULT result;

RECT rect;
MessageBox(hWnd, "Begin drawing plain surface", "error", MB_OK);


d3ddev->ColorFill(surface, NULL, D3DCOLOR_XRGB(r,g,b));

rect.left = x;
rect.top = y;
rect.right = x + width;
rect.bottom = y + height;
d3ddev->StretchRect(surface, NULL, backbuffer, &rect, D3DTEXF_NONE);
MessageBox(hWnd, "End drawing plain surface", "error", MB_OK);

return 1;
}

The LPDIRECT3DSURFACE9 surface never got instantiated. I don't know what goes wrong, because in the tutorial it goes right. I have looked on google what the problem might be. The only advice I got was that d3ddev was not initialized, but it doesn't fail on that check.

Oh yeah, I should add that I am running the program in windowed mode. Anyone some good advice, because this is giving me headaches.

57
Graphics / Ripping MC Link & items animations
« on: September 04, 2009, 08:08:53 am »
Okay, I decided to rip sprites of Link from the Minish Cap. I'll use this topic to post the latest sheets. One sheet is just Link's movements without the use of weapons and the other sheet is Link using weapons. With Link I focus on just the green tunic, because the red, blue and purple are a bit more difficult.

Update 2009-11-21
Added a weapon action:
- Cane of Paci

Redone:
- Ocarina of Winds.

Both Ocarina of Winds and Cane of Paci were ripped with VBA's OAM Viewer.


Update 2009-10-27
Added the following basic actions to the spritesheet.
- Bouncing
- Drowning
- Floating
- Swimming
- Diving
- Climbing Vertical
- Climbing Horizontal
- Reaching the top of a Climbing

Added the following extras:
- Grass (for walking through high grass)
- Water Ripples (for walking through shallow water)
- Water Ripples (for swimming)
- Water Splash (for entering the water)
- Water Splash (for drowing)
- Water Splash (for going under with drowning)

Added to the weapons:
- Ocarina of Winds
- Flame Lantern

Added an extensive HUD and Menu sheet.


Update 2009-09-09:
Link movements:
- Idle/Standing still.
- Falling in a pit
- Walking
- Rolling

Link weapons:
- Bow & Arrow & Light Arrow.

Anyone who wants to help your welcome.

----------------------------------------------------------------------------------------

Just like I pointed out in this topic: http://www.zfgc.com/forum/index.php?topic=34949.0, I couldn't really find any spritesheets with the animations of the items used in the game. With this I don't mean the items as you see them on the menu screen and HUD, but as you see them animated on Link or in the game world, when you push the item button.

Thus, my request is: has anyone a spritesheet with all the animations for items (preferably detached from the Link animations) from MC. This includes all the animations of different levels, dust clouds and of projectiles also.

Here's a list with the items in MC:
- Sword (+charge and beams)
- Shield
- Pegasus Boots (+ dust clouds)
- Gust Jar (+ sucking clouds)
- Mole Mitts (+ dig spot animations)
- Roc's Cape
- Cane of Pacci (+ beam)
- Flame Lantern
- Ocarina of Wind
- (Magical) Boomerang
- (Remote) Bombs (+ explosions)
- Bow (+ arrows)
- Bottle drinking and emptying (+ various contents)

It is for the MC Engine of the Community Project. Thank you.

58
Coding / Bow & Arrow
« on: September 04, 2009, 07:47:32 am »
I have been working some more on the engine and I have added the functionality of the Bow and Arrow. You might ask why I had chosen the bow & arrow to implement as the next functionality. The reasons are simple:

1) Thanks to Frozenfire there are some actual sprites of the item in use. At least ones I could find next to the Mole Mitts and Roc's Cape. Apparently TSR has some nice spritesheets with Link animations but they don't really contain any items.
2) The introduction of some new things, like the usage of item buttons, projectiles and a limited amount of ammo.
3) It is the simplest item that also has subactions:
   * Loading an arrow.
   * Walking with the bow and arrow (just the walk engine by 4Sword).
   * Shooting the arrow.

So down to the engine. I hope I did a nice job on it, I would really appreciate some comments on it.

For the projectile part I had two options for dealing with it. Option 1 is to let objLink keep track of all the arrows shot. Drawing them and dealing with the events entailing of the arrows hitting something. This one gave me major headaches and wasn't chosen. The second option is to make a new Arrow object and let it deal with its own problems and events. This has more overhead but is a whole lot easier to program. So I ran with this option. If anyone thinks this is a mistake and knows how to implement option one, please let me know or implement it yourself. Any input is greatly appreciated.

Well, like I said earlier there aren't really any spritesheets for items, so I had to do with what I got. But I noticed in the Minish Cap, that once the arrow hit something it would waggle a bit. I don't know if this is done through animation or that the arrow is simply rotated. I used the rotation option, purely because I couldn't find any animation. But this part could use some tweaking.

I really appreciate comments, so please leave some.

Update: 09/09/2009
Corrected the error in the assumption made towards ice movement.

59
Feedback / Next Contest
« on: August 14, 2009, 08:44:38 am »
I was just thinking. The dungeon design contest is finished now, so it is possible to have a new contest again. A contest that I would suggest is a Story Writing Contest. There are four reasons for it why I think that is a good idea:

1) I actually like to write stories, but also to read other peoples stories.
2) I've skimmed the archives, but I couldn't really find if there ever was one before. So it probably is the first.
3) It doesn't require much skill or time in the way of programming, spriting, audio editing or otherwise. You just have to organize your words and a bit of imagination.
4) It is done very often with Zelda WIP or Concept topics. Many discussions in those topics are about the story lines, but many of those projects never ever get so far that the entire story is revealed to the public.

So that is why I would like to see a story writing contest. But I wonder if it is not to early to have another contest or if the community has any interest in it. So what do you guys think?

60
Entertainment / Cartoons and tv-shows you grew up with.
« on: August 13, 2009, 10:33:34 pm »
I went to the movies today. It was G.I. Joe: The rise of Cobra. I went there with the expectation to see a movie about one of those cartoons I grew up with. Imagine my surprise, that I didn't recognize anything. It seems my memory is failing me.

The TV show I was thinking about, was about a group of people fighting another group of people but they had these super suits, including some really weird helmets with super powers. There vehicles (often regular cars) had hidden weapons and could transform to vehicles with other functionality. One of those vehicles was a red car that had doors that opened up like wings and he could fly it.

I don't know if any of the older members here knows what I'm talking about. But it also got me wondering what TV shows you guys grew up with or are still growing up with.

Pages: 1 2 [3] 4

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



Page created in 0.023 seconds with 30 queries.