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 - Martijn dh

Pages: [1] 2 3
Entertainment / Pong game with GB Zelda(ish?) visuals on steam
« on: July 31, 2016, 11:14:18 am »
This one tickled my funny bone a little because of how obviously it is "inspired" by zelda sprites. Is it just me or is half of it just plain ripped?

Recruitment / Looking for a designer for alttp style dungeons/overworlds
« on: January 24, 2016, 02:44:51 pm »
Thanks for checking out the request:
If anybody feels like working on alttp level designs please send me a PM or reply to this topic. I'm looking for a few people to (help) design the dungeons and overworlds for my fangame. Mainly 'cause I feel like working with a small team again but also because I'd like to speed up the development progress a little.

Check this link if you don't know my project yet:

How does it basically work:
Designs can be made in Gamemaker, paint, on paper, or with whatever other method you prefer. (That way you won't have to concern yourself with all the objects and coding within the actual engine). Send me the results and when we are both happy I'll implement the results it in the actual game. You can work with the tilesets I provide (though I lack overworld tilesets) or with your own creations/additions.

I'll obviously share more information on the game, planned dungeons/areas and so on with those that want to help or learn more.

Finally I do have a few personal preferences held over from previous collaberations:
1. All rooms / area's have to look unique and/or contain unique contents.
(example: 5 simular square rooms in a row with just some enemies is boring)

2. Please respect existing game design choices.
(example: don't design a swamp with the ultimate boss when I asked for a mountain cave acting as a tutorial area)

3. Everything is allowed to change if needed.
(example: sometimes rooms might need to change due to engine mechanics. It might also be that a tough room in the beginning of the game is ultimatly thought to better suited for a later dungeon. Things like that.)

4. No rush.
It's all meant in good fun. The game will get finished eventually anyway. ;)

Entertainment / Mario maker (code exchange)
« on: September 25, 2015, 05:19:32 pm »
A topic for myself and those of you that also own the game and want to exchange leveldesigns and/or feedback.
It's not quite Zelda, but design is design and you can never learn too much about what makes games fun.


Feedback / April 1
« on: April 01, 2015, 05:59:15 pm »
Nice one.
When will we going back to the regular site?

Entertainment / Stop motion video made on the atomic level
« on: April 29, 2013, 04:50:27 pm »
Nothing to complex but just something I came across and found interesting:
<a href="http://www.youtube.com/watch?v=oSCX78-8-q0" target="_blank">http://www.youtube.com/watch?v=oSCX78-8-q0</a>

Here is the making of (which is the more interesting part):
<a href="http://www.youtube.com/watch?v=xA4QWwaweWA" target="_blank">http://www.youtube.com/watch?v=xA4QWwaweWA</a>

Recruitment / [Request] Tester and/or gamplay recording
« on: December 21, 2012, 11:02:47 am »
With the holidays coming up I plan to spend more time improving my fangame. For this I need playerinput and though this topic I'd like to invite anybody willing to play (and record) a testversion of my game. Though this I hope to find out what issues others encounter so that I may adress them. I'm talking about getting information on glitches, framerates on different machines and how people experience puzzles and the level of difficulty. More help is always welcome, but I don't want to ask for too much here.
On a final note: we will be working with a testversion of the game so some areas you'll encounter might still need work, though that's kind of the point XD.

Contact me if you are interested. I can produce a testerdemo in about a day.

For those that do not yet know, I'm talking about the following project:

Coding / Video explanation on 2d camera logic
« on: December 17, 2012, 08:05:36 pm »
Interesting videos I came across:
<a href="http://www.youtube.com/watch?v=nryuCql2k9A" target="_blank">http://www.youtube.com/watch?v=nryuCql2k9A</a>

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

Discussion / New project: Guildmaster 1.0
« on: November 03, 2012, 12:57:48 pm »
Zelda fangames are nice and all, but I too want to create something slightly more original every now and then. And here it is. Or at least, here is the concept I have decided on as my fun little secondary project. Not to worry though. Horn of Balance development is not going to discontinue or anything. ;)

Okay, so the concept is browser-like management game where you build a guild across a fantasy land. You hire members, manage stats, buy equipment, upgrade buildings and have you guildmembers perform quests for gold. In the beginning you will only have yourself to earn gold with but the game will be expansive in that I plan to included a LOT of characters to recruit and stuff to unlock/upgrade. It's simple but should be very addicting if you like (micro)management and achievements....like myself XD

The members to recruit can be characters from various media (anime, videogames, movies, whatever). Think along the lines of characters from Final Fantasy, Naruto, Zelda, Warcraft. Whatever floats your boat really. I'll leave it up to you guys to come up with requests while I build the needed mechanics. Maybe I'll introduce some guidelines later on to prevent stormtroopers from fighting alongsides fairies, but who knows. That might be funny in it's own right.

I'll post some images and more details over the next couple of weeks hopefully. For now I'm really interested to learn what you guys think about the concept.

EDIT: Attached some screenshots.

Graphics Requests/Archive / [REQUEST] Alttp character animations
« on: August 14, 2012, 06:33:09 am »
Hello all,

It has been a while, but with the new demo just out now might be good time to make another request topic. I'm currentllooking for the following custom animations (in alttp style):
- Link drinking from a bottle
- Link swiping with his bottle to catch stuff (like in OoT)
- Link emptying the contents of a bottle (like in Oot)
- Animations for when Link is idle

For the first three requests I'm looking for animations for all four different directions. MaJoRa's has already once made a character sheet where the character drinks from a bottle so the front view has already been made. There is no need make multiple versions for the various bottle contents like in that sheet.

MaJoRa's character sheet:

The fourth request is free form. I want Link to do funny things if the character is idle long enough. Sleeping, dancing, striking poses, juggling stuff. Whatever you can think off really. Consider it an in-game secret / joke. I'd say have fun with this one if you're interested in helping out my project or like spriting in general. For these animations just the frontal view will be sufficient.

Here is a link to the project where the amations will be incorperated into, for those that are unaware of it.

Graphics / Will these fit alttp style?
« on: April 30, 2012, 05:34:27 pm »
Okay, this may be a little silly, but I'm in doubt wether or not the attached item sprites could fit the alttp style/world.
I mean to replace the pendants from the original with a set of rings.

EDIT: The 3rd and 4th attachement is the runner up option I have in mind. Same question. Will these fit?

Graphics / Graphics archive - LTTP & FSA
« on: February 19, 2012, 02:48:38 pm »

If you like gamefonts also check out: http://www.zone38.net/font/

Links left to investigate:

Coding / Which is more efficient
« on: January 14, 2012, 09:38:07 am »
So the problem is as follows:
My gamemaker game uses two methods of checking for collisions against solids (I'm talking about the rectangular solid objects only right now) and I'm wondering which is better / more efficient. I have a strong hunch that method 1 is faster, but would like to see it confirmed before I spend a couple of days on changing things back. If anybody knows of a method to check the differency myself (get time before and after lines of code?) then that would also help.

Method 1: Default mask checking.
You'd get something like the code below if used (in a larger movement script). The downside to this is that you need to make a lot of masks ahead of time for every single size you want. All dimensions are multiples of 8, but that still means a lot of sprites. 8x8, 16,8, 32x8, 8x16, 8x32, 8x80, 16x16 etc. I've got around 60+ different rectangular sized sprites in use right now and that's only because I often avoid adding new masks when a combination of older masks can do the same. To limit the number of sprites, the filesize, the loading time etc. I do this reluctantly though because less objects, to check collisions against, the better.

Code: [Select]

// Set depth
if (creator_id.depth_scale = c_Lower) {argument[4] = obj_Solid_Lower_Floor_Unpassable} else {argument[4] = obj_Solid_Upper_Floor_Unpassable};

// Check collisions against solid masking
argument[3] = script_Check_If_Two_Objects_Collide(id, argument[4], round(New_X_Position+Final_xspeed)-x,round(New_Y_Position+Final_yspeed)-y, true);
if (argument[3]!=0)
    // Check if you didn't start in the same object
    if (place_meeting(round(creator_id.creator_id.x + x_correction), round(creator_id.creator_id.y + y_correction - creator_id.height_above_ground), argument[3]) = false)
         // action


Method 2: Imaginary collisions.
Check out the script below. I give the solid object a width, length, depth and offset. Next I use this code below to check if an enemy or object is colliding with it. The upside is freedom to create any shape you want without problem. Very usefull if you want to cut down on the number of objects in the room. The downside, I suspect, is (far?) less efficient collision checking.

Code: [Select]
// WITH (object you wish to check other collisions against)

// argument[0] = object to check if it collides with self
// argument[1] = correct self location on the x-axis
// argument[2] = correct self location on the y-axis
// argument[3] = compare depth_scales [true/false] (OPTIONAL)

// SET:
// argument[4] = instance counter
// argument[5] = number of objects to check collision against
// argument[6] = instance you are currently checking collisions against
// argument[7] = indicator to help check for matching depth_scales

// Returns collision object_id or 0

argument[4] = 0;
argument[5] = instance_number(argument[0]);

if (argument[5] > 0)
    // check collisions with all objects of the given sort
    for (argument[4]=0; argument[4]<argument[5]; argument[4]+=1)
        argument[6] = instance_find(argument[0], argument[4]);
        argument[7] = false;

        if (argument[3] = true)
            if (depth_scale = argument[6].depth_scale) {argument[7] = true};
            argument[7] = true;

        if (argument[7] = true)
            if (collision_rectangle(argument[6].x + argument[6].border_x - argument[1],
                                    argument[6].y + argument[6].border_y - argument[2],
                                    argument[6].x + argument[6].width - 2*argument[6].border_x - argument[1],
                                    argument[6].y + argument[6].height - 2*argument[6].border_y - argument[2],
                                    id, true, false) > 0)
                return argument[6];

return 0;

Anybody have any thoughts on the matter?

Feedback / Video embedding
« on: December 26, 2011, 11:10:50 am »
I'm sorry to say I'm a little annoyed by the lack of embedded videos. Or am I missing something?
Assuming the feature is abscent to save traffic, isn't there a midway solution like one video per post or per starting post?

Check the attachment for the sprites I am currently working with. I'm not sure how long it has been, but FrozenFire made these for me way back when. I FINALLY got around to actually using them. They are still rough though, meaning I still need to seperate the handle (and possible the head) from the rest of the sprite, but that is my concern.

Why I am posting this topic is because the arm's wave motion doesn't translate well in the actual game. They are used for when the character is swinging around a very large flail, but now that I'm partly done with the programming it is clear that the motions are too gentle. It is not noticable enough so I'm hoping someone here could edit them a little. Making the waving stand out more.

Any takers?

EDIT: When I mention the armswinging I'm talking about the last 8 sprites on the strip (just in case that wasn't clear).

Graphics Requests/Archive / [request] custom alttp-styled broken wall
« on: November 04, 2011, 07:15:06 pm »
It's been a while but I have another custom sprite request: broken wall sprites.
They are for a boss fight in the next demo so I'll be adding them to the game as soon as somebody is able to help me.

The video below says it all. The Cukeman enemy from alttp has a rather funny animation when hit.
Could someone help me get/find/rip those sprites while it's electric?

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

LTTP & FSA / [Solved] Custom magic attack (alttp style)
« on: June 05, 2011, 10:16:19 am »
Hello all,

I have another request for my game: a magic attack to be used with the rod of medu (=stone magic).

With some more work I should be able to release a new demo by the end of next week, but I'm strungling to also be able to include the stone magic. The original plan was to use the magic attack (sound included) from Super Mario World's magikoopa for sprites, but the size was wrong. It should be no larger then 16x16. Also the colors seem really out of place in the style. My editing hasn't helped it much.

I've attached my own attempt at the magic (along with the magic from the ice- and firerod for possible reference). If someone could make me an animation (that DOES fit with the lttp style) to use as stone magic I'd be most gratefull.

Updates / The Dungeon Design Contest has started
« on: April 22, 2011, 06:50:53 pm »

The contest has begun!

I missed it?! - That depends. You can still register to enter till the 29th of April
Till when will it run? - The contest will run til the 31st of May or untill all the results have been send in

For more information read click on the header link.

Updates / The Dungeon Design Contest will start on April 22nd
« on: April 06, 2011, 05:55:03 pm »
Registration is now open!

As promised there will an upcoming dungeon design competition.

When does it start? - April 22nd
Till when can I enter? - You have to register before the 29th of April to enter
Till when will it run? - The contest will run til the 31st of May or untill all the results have been send in

For more information read the connected topic in the contest section of the forum.

Contests / Dungeon Design Contest (using GMare)
« on: April 06, 2011, 03:15:05 pm »
Dungeon Design Contest (using GMare)

When does it start? - April 22nd
How and till when can I enter? - Post here before April 29th to enter
Till when will it run? - The contest will run till the 31st of May or until all the results have been send in

On April 22nd each participant will be presented with a GMare file preloaded with the relevant objects and tileset. No additional resources may be used. All particants attempt to build a dungeon before the end of the event, which will then get graded by the general public. The winning design will be converted into a stand alone game, so we actually see it in action. You'll also receive a little trophy by your name as prove.

Below will be a detailed description on how to build a dungeon, how to add object and so on. Please browse through the text when it is finished. Preferably before starting on your dungeon design. Check the final chapter for details on how to submit your endresult.

Registered contestants:
- Homegrownpwn
- infinitenintendo
- Jetstorm4
- Knighty
- shongshui


How to build a dungeon?

Step 1. Downloading GMare & resources

GMare can be found here: http://gmare.codeplex.com/
Resources can be found here: http://www.mediafire.com/?dagrrcudf6amsa6

Step 2. Defining rooms

When building your dungeon you will need to determine how large each individual room will be and where it is placed. To help you can do the following. First create a new layer, called Room Borders, at the default depth of -1000000000. Set your GMare grid to 320x320 and color the borders of the rooms you wish to use. Keep in mind that your dungeon may use no more than 16 blocks of 320x320 pixels. Here's an example:

The example shows that I want to build 3 rooms in my dungeon, using four blocks of 320x320 pixels.
Just a friendly warning: do not make rooms consisting of more then 6 blocks. It may murder the framerate if you are going place lots of objects in them later.

The following is an example that is wrong:

Rooms must always have a rectangular shape. The example above has a room that is a different shape and thus will not be usable.

After you have placed down the blocks to build your dungeon it is time to document the basic variables needed. Give each room a indexnumber starting from zero and create a separate textfile to document the following per room: room index / x / y / width / height

For the example I would have to document the following.

Code: [Select]
// Room information
Index / x / y / width / height
 0 /   0 /   0 / 320 / 320
 1 / 320 /   0 / 320 / 320
 2 /   0 / 320 / 640 / 320

Step 3. Tiling your rooms

When tiling rooms you have to keep an eye out for using the proper depths.

The two depthranges are:
- The upper floor (= all depths between 500 and 600)
- The lower floor (= all depths between 1600 and 1700)

Basically all basic floortiles may be placed within the lower depths. The exception to this is when Link (or any part/extention of Link) can pass under that piece of tiling. In that case the tiling has to be placed within the higher depths. I will demonstrate with the example below.

Upper Layer

Lower Layer

Step 4. Connecting your rooms

You'll want to connect your rooms with doorways, but it is important to understand that you can not just randomly place these anywhere. I'll try to explain and add some examples.

The reason lies in the in-game cameracontrol. When you are walking around in a room nothing outside of that room will be displayed on screen. This means that the camera does not always center on the main character. When you touch a doorway the screen will move in the direction of that doorway towards a new room. Upon arrival the game considers the new room as the current room and it checks if the camera can be centered yet again. If it then can than a nasty screenjump will occur. That's bad room design!

Let's say you want to add a doorway through a vertical wall:
- Place the doorways on both sides of the wall where you'd like to put them.
- Look at the center of your doorways and imagine an line going up 120 pixels and down 120 pixels (also see the example).
- If your line hits any room borders (which are the bright red area's in the example) and the same thing does not happen in both rooms equally then the doorway is not placed correctly. All other situations are fine.

Example 1 (Bad)

In this example I'm trying to place a doorway through a vertical wall. In the second image you can that I have marked the area 120 pixels up and down of the doorways. On the left side of the wall I hit the left room's border. This does not happen on the right side of the wall so my doorway is not placed correctly.

Example 2 (Good)

Here I am once again trying to place a doorway through a vertical wall. The second image highlights an area 120 pixels up and down from the center of the doorway. On both sides of the wall the upper border of the rooms is hit within those 120 pixels. This is fine! It happens, but it happens on both sides so there is no problem. If it would not have hit any borders then it would have been fine also.

Positioning a doorway through a vertical wall is basically the exact same thing. Only instead of looking 120 pixels up and down, you'll need to look 160 pixels left and right.

< I'm skipping the rest of this step to keep things simple. You will not have to worry about changing tiledepths between doors. Nor will you have to place the needed objects >

Step 5. Placing doors

There are currently 3 doorobjects:
- obj_Locked_Door_Small_Key
- obj_Locked_Door_Large_Key
- obj_Conditional_Door

Place these at the center of the doorway where you want them (see example below).
I will need a list of the following information per locked door: x / y / doorindex / small key or large key / opened or locked
I will also need a list of the following information per conditional door: x / y / doorindex / opened or closed

Doorindex = The indexnumber by which one or multiple doors may be referenced. The count starts at 0 and there is separate count for locked and conditional doors. Doors that share the same state (=opened or closed) and are dependant of each other (=open together or close together) should be given the same index number. Each other door should get it's own index number.

Here is an example placement and documentation.

Code: [Select]
// Locked doors
// x / y / doorindex / small key or large key / opened or locked
104 / 264 / 0 / large / locked
104 / 360 / 0 / large / locked
472 / 384 / 1 / small / locked
472 / 240 / 1 / small / locked

// Conditional doors
// x / y / doorindex / opened or closed.
272 / 96 / 0 / closed
352 / 96 / 0 / closed

Step 6. Placing chests

To add a chest to your game, wether it is a large or small chest, first tile the bottom half of the chest into your room like you would the floor. Then place the object obj_Chest on top of it as show in the example below. Finally document the following information per chest: x / y / index / large or small chest / content

Possible chest content:
- Nothing
- Rupee (green/blue/red)
- Key (small* / master)
- Book of Mudora
- Bottle containing a fairy
- Compass
- Dungeonmap
- Pegasus boots
- Glove (silver / gold)
- Sword (default / master sword)
- Shield (default / upgraded shield)
- Tunic (upgraded tunic)
* more details can be found in step 11

Example placement and documentation:

Code: [Select]
// Chests
// x / y / index / large or small chest / content
408 / 200 / 0 / small chest / master key
104 / 464 / 1 / large chest / pegasus boots

Step 7. Placing containers

To add a container to your game simply place the object obj_Container_Creation. Then add the creation coding as seen below. Containers basicly only need three input variables:
- depth_scale: meaning is the container positioned on the upper or lower floor.
- type: what kind of container you want it to be. The possible options are listed inside the creation coding example.
- item_index: what items should be created when the container gets destroyed.

Creation code:
Code: [Select]
depth_scale = <fill in c_Upper or c_Lower>;

type = <fill in one of the numbers below>;
// 0 = vase normal
// 1 = bush lightworld
// 2 = skull
// 3 = small rock light
// 4 = small rock heavy
// 5 = gray square block
// 6 = large rock heavy
// 7 = large rock darkworld
// 8 = large rock light
// 9 = crate
// 10 = bush darkworld
// 11 = vase middle
// 12 = vase large
// 13 = barrel

item_index = <fill in one of the numbers below>;
// -1 = random
// 0 = none
// 1 = small magic bottle
// 2 = large magic bottle
// 3 = small heart
// 4 = single bomb
// 5 = five arrows,
// 6 = green rupee (1)
// 7 = blue rupee (5)
// 8 = red rupee (20)
// 9 = small key*
* Check out step 11 for more information on adding keys

Overview of the available containers:

Overview of the different weights:

Light (no gloves needed)
 0 = vase normal
 1 = bush lightworld
 2 = skull
10 = bush darkworld
11 = vase middle

Heavy (silver gloves needed)
 3 = small rock light
 8 = large rock light
 9 = crate
12 = vase large
13 = barrel

Very heavy (golden gloves needed)
 4 = small rock heavy
 5 = gray square block
 6 = large rock heavy
 7 = large rock darkworld

Step 8. Placing ledges and lights


Link can jump from ledges in a straight line. You will do not have to place objects needed for this, but as the designer you should make sure Link does not get stuck while landing. I will attempt to further explain this with two images.

Image 1:

The locations along the ledge that are marked red indicate bad locations to jump down. Moving in a straight line down from there will result in the character getting suck in the walls. The brown area is equally unsuited because moving down in a straight line will get the player stuck inside the chest or the stairs. Had the chest been positioned 8 pixels lower then the location would still be unsuited, since Link always links a tiny distance away from the wall. Had the chest been positioned 16 pixels lower and the stairs 8 pixels further to the right then it's all good. The green area is what remains and those are the positions where Link can jump down safely without any further adjustments.

Image 2:

Taking the comments from the first image into consideration your room might end up looking something like this (if you want Link to be able to jump done anywhere possible).

Lights (also named "torches")

1. Small torches
These are the lights you could light with the lantern in Alttp. In my game however you currently can't do anything special with it (yet) so adding one would just be for decoration purposes. Simply place the obj_Small_Torch somewhere in your dungeon and you're done.

2. Large torches
These are the larger lights (32x32 pixels), you sometimes see in dungeons, which are also just meant as decoration. Place the obj_Large_Torch somewhere in your dungeon and you are done.

3. Wall lighting
These are the lights you sometimes see attached to walls inside dungeons. Adding them is a small hazzle. First place a obj_Wall_Light on the wall like as seen in the example above. The add the following creation code:
Code: [Select]
sprite_index = sprite_Wall_Light_A;
image_speed = 1/6;
Required_Facing = <fill in c_Left, c_Up, c_Right or c_Down>;

For required facing enter the character's facing when he's looking at the light on wall. If you are placing the light on the left side wall of your room then enter c_Left. Use c_Up for the upper wall, c_Down for the lower wall and c_Right for the right wall.

Step 9. Placing switches and movables

Switches have different means to activate and they are usefull for triggering events, which I'll explain in step 12.

Pressure plates
There are three types of pressure plates:
0. The switch is activate (once) when you stand on it
1. The switch is activate as long as you stand on it
2. The switch alters between an active and inactive state each time you stand on it

To add a pressure plate place an obj_Pressure_Plate somewhere in your dungeon. Next document its location, index number, type and sprite.
Code: [Select]
// Pressure Plates
// index / x / y / type / sprite
0 / 150 / 320 / 0 / 1
1 / 20 / 764 / 1 / 1
2 / 66 / 320 / 2 / 2

There are two sprites to pick from (as seen in the image below). The first sprite is used for a default pressure plate you see under pots and elsewhere. The second is usefull as a more hidden pressure with a simular floorpatern.

Crash switches
A crash switch is an invisible switch that activates when the player crashes up against it using the running boots. To add one of these position an obj_Crash_Switch inside something solid (like a wall, large light or even a master chest) in a way that the player can walk up against it, but not over it.

Next give it the following creation code:
Code: [Select]
index = <fill in the crash switch's index number>;
depth_scale = <fill in either c_Upper or c_Lower>;

And then document all of your crash switches:
Code: [Select]
// Crash switches
// index / x / y
0 / 148 / 320
1 / 204 / 764

Movable objects

When defining a movable object you are given the option to disable each individual movement direction. You can forget about this if you want by allowing all movement. If want however it is possible to get creative.

Example 1: Using events (=step 12) you can use this to create a "pull switch". Let's say the movement object is placed at y = 90 and may only move downwards. When it is moved down to y = 98 you can use that as a trigger for an event like opening a door and/or lock any further movement with that movable object by disallowing all directions.

Example 2: Let's say you want a moveable object / statue in your room with a limited action radius. The object allows movement in all directions, but if  x < 90 then you disable further movement in the left direction. Doing this for all directions allows you to define a nice (rectangular) area for the movable object to stay containt in. Like for instance, the statue may not move off the carpet on the floor.

To add a movable object place down a obj_Movable_Object somewhere in your dungeon. Next document its location, index number, sprite and which directions the object is allowed to move in.
Code: [Select]
// Movable objects
// index / x / y / sprite / allow left / allow up / allow right / allow down
0 / 150 / 320 / 1 / true / true / true / true

There are two sprites to pick from (as seen in the image below).

Step 10. Placing enemies

To create an enemy you will have to place the following object in your dungeon: obj_Enemy_Creation. Next, right click on the created instance and fill in the creation code to specify the enemy parameters. I'll go over the needed creation code per type of enemy in a minute. The symbols <> indicate what values you may (or have to) change. First though there some variables to explain.

depth_scale - This variable tells wether the enemy is positioned on the upper or lower floor. Fill in either c_Upper or c_Lower for the respective floors.
facing - This variables tells which side the enemy should be facing at the time of his creation. Fill in either c_Left, c_Up, c_Right or c_Down.

Enemy creationcodes

Code: [Select]
// parameters
name = "Plant";
depth_scale = <fill in c_Upper or c_Lower>;
enemy_type = 0;
item_index = -1;
active_outside_room = 0;

Stalfos (blue / red / yellow*)
Code: [Select]
// parameters
name = "Skeleton Normal";
depth_scale = <fill in c_Upper or c_Lower>;
enemy_type = <fill in 0 for a blue and 1 for a stronger red stalfos>;
item_index = -1;
facing = <fill in c_Left, c_Up, c_Right or c_Down>
active_outside_room = 0;
*Check out step 12 for information on how to add a the yellow stalfos (= the one falling from the ceiling)

Cyclops Guard (green / blue)
Code: [Select]
// parameters
name = "Cyclops Guard";
depth_scale = <fill in c_Upper or c_Lower>;
enemy_type = <fill in 0 for a green and 2 for a stronger blue cyclops>;
item_index = -1;
facing = <fill in c_Left, c_Up, c_Right or c_Down>
active_outside_room = 0;

Code: [Select]
// parameters
name = "Anti-Faerie";
depth_scale = <fill in c_Upper or c_Lower>;
enemy_type = 0;
item_index = -1;
direction = <fill in any number from 0-360 to set the starting direction for this enemy>;
active_outside_room = 0;

Pol's Voice
Code: [Select]
// parameters
name = "Pols Voice";
depth_scale = <fill in c_Upper or c_Lower>;
enemy_type = 0;
item_index = -1;
active_outside_room = 0;

Buzz Blob
Code: [Select]
// parameters
name = "Buzz Blob";
depth_scale = <fill in c_Upper or c_Lower>;
enemy_type = 0;
item_index = -1;
active_outside_room = 0;

Step 11. Understanding keys

Adding small keys to your dungeon can be done in 5 ways, which I'll explain below.

Default - placing it on the floor
Place the obj_Common_Item somewhere on the map. Then document the location of the object plus the key index you want to give it.

Inside a container
Place a container on the map like you normally would. Then document the location of the container and the key index you want to give it.

Inside a chest
Add a chest and document it like you normally would (as seen in step 6). Next document the location of the chest (again) in the small key overview. This time in combination with the key index.

Held by an enemy
Place an enemy on the map like you normally would (as seen in step 10), giving it it's usual creation coding. Then document the location of that enemy in combination with the key index.

Falling from above
You may make use of keys that fall from the ceiling if the right conditions are met (see step 12). For example when all the enemies in the room have been killed. Do you not have to place an object in your room for this one. Simply document where you want the key to land and what it key index should be.

Each key needs it's own index (so they are one time occuring objects) and you'll need to document where it is located. This is important that there is one seperate listing for the small keys eventhough a key's location may also have already been documented elsewhere. Fragmented / scattered documentation is bad!

Example. If I place a key for each of the 5 possible I would have to document something like this:
Code: [Select]
// Small Keys
// index / x / y / description
0 / 552 / 168 / default
1 / 180 / 180 / inside container
2 / 208 / 766 / inside chest
3 / 344 / 208 / held by enemy
4 / 500 / 504 / falling from above

Step 12. Understanding events

Events have to be coded in scripts, so the contestants will not have to actually do this. You can however (to keep it simple) add a default trigger + event to your dungeon by documenting a line like so:
Code: [Select]
For room <index>: if <condition(s)> then <event(s)>Should your dungeon be the winner then I'll code the events for you using the given instructions. The conditions and events available are listed below. If however you feel a vital event or condition is missing then you should contact me. The conditions are stated as A = B, but you may also use A < B or A != B and so on. If-then-else is also possible.

Available conditions*:
-Entering room
-Chest [index] = opened
-Pressure Plate [index] = active
-Crash switch [index] = active
-Count enemies of type [name or all] = number
-Position [x or y] of Moveable object [index] = value
-Movable object [index] in contact with Pressure Plate [index] = true
-Permanent_condition <index> = value

-Conditional door <index> opens / closes
-Enemy <description> appears at position <x,y>*
-Enemy Yellow Stalfos falls down to position <x,y>*
-Pressure_Plate <index> state = active / inactive
-Crash switch <index> state = active / inactive
-Movable Object <index> allow movement in direction <direction> allow/disallow
-Drop small key <index> down at position <x,y>
-Permanent_condition <index> = value
*For enemies appearing/falling down make sure to also add the creation coding af that enemy to indicate it's type and so on.

Permanent conditions
You've probably noticed that I also listed something called permanent_condition both as an condition and event in the list below. That's a variable name that is stored for your dungeon. This will help you with your events if you want to make an event a one time occurance. Or if you want an event in one room have impact on another room.
To use permanent conditions first define them by documenting them:
Code: [Select]
permanent conditions
index / starting value
0 / false
1 / 0
2 / -7

I'll give some examples of what events can do for your dungeon:

Example 1: When I enter room 3 I immediately want the doors to close and have 3 skeletons and 1 plant appear every time. When all enemies are dead the doors open.
Code: [Select]
For room 3:
if enter room then
  appear blue stalfos at (100,50) , (90,90) and (100,70) and appear plant at (80,80)
if count enemies of type all = 0 then
  conditional door 0 opens and conditional door 4 opens

Example 2: I want the same as example 1 but it should only happen when I first enter the room. Remember: I have already documented that permanent_condition[0] = false.
Code: [Select]
For room 3:
if enter room and permanent_condition 0 = false then
  appear blue stalfos at (100,50) , (90,90) and (100,70) and appear plant at (80,80) and permanent_condition 0 = true.
if count enemies of type all = 0 and permanent_condition 0 = false then
  conditional door 0 opens and conditional door 4 opens

Example 3: Let's say I have a room with a pressure plate and a movable object. The pressure plate is only active if you stand on it, but you need to stand on it to open a door. The player has to move the movable object on top of the plate to open the door.
Code: [Select]
For room 2:
if movable object 0 in contact with pressure plate 0 = true then
  conditional door 1 opens
  conditional door 1 closes

Example 4: Let's say I have a door in room 0 that only opens if I use three switches in three of the other rooms
Code: [Select]
For room 0:
if permant_condition 1 = true and permanent_condition 2 = true and permant_condition 3 = true then
  conditional door 3 opens
For room 1:
if Crash switch 0 = active then
  permanent_condition 2 = true
For room 4:
if Pressure_Plate 0 = active then
  permanent_condition 3 = true
For room 5:
if Pressure Plate 2 = active then
  permanent_condition 0 = true

Step 13. Global dungeon design

This step describes the two minor details to finish a dungeon: the start and end

The start of your game
Please fill in the following form to indicate where the character starts and what stats he should have.
Code: [Select]
Starting conditions
Starting location: (x,y)
Health: (number of hearts)
Sword: (none / lv1)
Shield: (none / lv1)
Pegasus Boots: (none / collected)
Gloves (none / lv1 / lv2)
Bottle 1: (none / empty / life medicine / magic medicine / cure all / caught fairy)
Bottle 2: (none / empty / life medicine / magic medicine / cure all / caught fairy)
Bottle 3: (none / empty / life medicine / magic medicine / cure all / caught fairy)
Bottle 4: (none / empty / life medicine / magic medicine / cure all / caught fairy)

The endgoal of your game
To set the endgoal of your dungeon place the object called obj_Credits in your dungeon. This object is invisible for the player and if they touch it the credits will roll and the game ends. It is possible to make this object visible and use a different sprite, but that is up for you to decide should you win. I'm open for suggestions on that matter.

Step 14. Sending in your submission
< explanation is being worked on >

Pages: [1] 2 3

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

Page created in 0.096 seconds with 12 queries.