Show Posts
|
|
Pages: [1] 2 3 4
|
|
2
|
Player / General / Re: Kickstart This Shit
|
on: November 22, 2012, 10:38:06 AM
|
Hey Alistair! Thanks for posting the Tiny Barbarian kickstarter, I was just on my way here to mention it. I still feel like I owe TIGSource a big thanks for being such a great resource when I was working on the first game! 
|
|
|
|
|
3
|
Community / Jams & Events / Re: Seattle People?
|
on: July 31, 2012, 08:08:17 AM
|
|
Anybody else make it to Seattle Indies?
It was a pretty small show but there was plenty of opportunity to talk to other developers and make friends, so I'm really glad I went!
|
|
|
|
|
7
|
Community / DevLogs / Re: Tiny Barbarian!
|
on: January 27, 2011, 02:22:18 PM
|
If anyone is still having trouble with the end boss, there's good news! Somebody sent me this scan from an old artifact called a "magazine." It turns out that people have been playing games like this for a long time, and even in those old days they found ways to get help when they needed it. Spoiler warning, obviously! http://www.starquail.com/TinyBarbarian/NP_scan.png*Also totally not intended to offend anyone! I just wanted a fun way to answer the question, but I also love hard games and hard bosses, so while I do take the input that the boss is hard seriously (noted for next time), it's not something I'm willing to change. The designer's dilemma, right?
|
|
|
|
|
8
|
Community / DevLogs / Re: Tiny Barbarian!
|
on: January 27, 2011, 01:14:43 AM
|
Minor updates for chain-missing antics! Please tell me if this makes a difference: + You can now jump off a chain while holding up. + Collision check for chains is no longer 1 pixel wide (Whoops!) And as an added bonus + Wolves reset to starting location on player death/room entry/exit @Droqen, for combos, the trick is to press while the sword is fully "swung." The timing is precise, but it doesn't keep track of how many presses you made, so you can mash the button and still get it. The first one (baseball bat style swing) requires a very fast press, but the second (overhead smash) is a little slower. Star Guard's similarity on reviving enemies is coincidental (love that game!), but it is thanks to Star Guard's mercy that most rooms don't reset when you die.  No you can't walk through, it keeps pushing you left.It also happens when the 2 monsters are falling down. If you are in the middle/right side of the screen, after the first one falls if you run too far right the 2nd falling one will "hit" you without making contact when it first falls out of the sky. If need be I can figure out a way to film it and post on youtube, if you can't get it to repeat.
I still can't get this one to happen, so I'd really appreciate that. Probably a lot easier than explaining the criteria in excruciating detail.  Has anyone else had this happen?
|
|
|
|
|
9
|
Community / DevLogs / Re: Tiny Barbarian!
|
on: January 26, 2011, 04:50:13 PM
|
|
That is a new one on me, I can't repeat it. You're supposed to be able to walk to the right after you beat them. Did it happen multiple times? Can you walk through the "invisible enemy" during your invulnerability period?
|
|
|
|
|
10
|
Community / DevLogs / Re: Tiny Barbarian!
|
on: January 26, 2011, 02:22:55 PM
|
KIND OF SPOILER I GUESS :: Fun last boss, although I eventually decided the easiest way to beat them was to pretty much bypass the solo giant pattern completely. Is this okay? There's no wrong way to slay a giant!
|
|
|
|
|
11
|
Community / DevLogs / Re: Tiny Barbarian!
|
on: January 26, 2011, 11:14:20 AM
|
Ok, I pronounce this done. Link Link!I really hung onto it for the past couple days! I had a drawing I was working on to go with it, but I wasn't really finding the time to finish it so I decided I'd just go without. Hope you enjoy it! I had a lot of fun making it, and a big thank you to everyone on the forum who helped me out. :D
|
|
|
|
|
12
|
Community / DevLogs / Re: Tiny Barbarian!
|
on: January 17, 2011, 02:19:29 PM
|
Thanks for the explanation, it seems incredibly obvious now. So yeah, that was exactly what I was doing!  Before I was relying entirely on Game Maker's own response to vspeed and hspeed, so when I started doing hspeed manually ("hspd," based on Matt Thorson's code), but still after the vertical, so it was still possible to get him stuck. Since now I am moving horizontal first, and then checking vertical, it makes sense that vspeed's automatic responses will now work properly. I was advised earlier to avoid using very many of those automatic variables and now I have a much better idea why that is! Right now I've got a friend (the same guy who did Astroman's soundtrack) making some suitably retro music, and playing around (not terribly effectively, I admit) with SFXR to get some sounds in place. Once that's all done I'll be ready to show!
|
|
|
|
|
14
|
Community / DevLogs / Re: Tiny Barbarian!
|
on: January 08, 2011, 01:41:49 PM
|
@ John, I have a problem with people recommending me the Grandma Engine! It's a beautiful piece of work, obviously, but part of my goal is to understand how all this stuff works, not just make a game, and despite being so simple and elegant (or rather, because), speaking as a beginner, the Grandma Engine is not especially easy to learn from. But I still went back in and really tore it up this time and emerged with the guts that I needed. I don't know if the Grandma Engine was necessarily the solution, because I only changed my horizontal collision method, and switched the order of the checks (I used to do vertical first), and things seem to be working perfectly now. So, what was so wrong about the way I was doing it? Oh well... @ Astrofra (and others), thanks for the interest! This game isn't all that ambitious, but I hope it at least holds up whatever the tradition established by those games is. 
|
|
|
|
|
15
|
Community / Tutorials / Re: Game Maker Tuts
|
on: January 08, 2011, 01:20:44 PM
|
So an update, I fixed the problem, but my question "why doesn't this work?" still stands, but the answer is more narrowed down (I think?) I went back into the Grandma Engine and--after a lot of careful dissection--was able to pull out what I needed to change my collision. I started with horizontal, and now it looks like this: //horizontal collisions
h_counter += hspd; h = round( h_counter ); h_counter -= h;
repeat (abs(h)) { if (place_meeting(x + sign(h), y, oWall)) { { hspd = 0; break; } } else { x += sign(h); }
}
That made a noticeable improvement. Sticking on top of ledges became harder to do, and sticking to the bottom corners became impossible, but there was still a slight drag around the corner, like a one-frame snag. Then I put this code above my vertical collision, to match Matt's code sequence, and boom, everything worked perfectly, didn't have to change my vertical at all. So I can release the game in a less shameful state, but I still want to know what was wrong and why this solution worked.
|
|
|
|
|
16
|
Community / DevLogs / Re: Tiny Barbarian!
|
on: January 07, 2011, 12:57:08 PM
|
Barbarians might not do Christmas, but surely they are all about pagan solstice rituals, right? Break the neck of a Cimmerian bull with your bare hands? Merry Crom-mas? I also started dabbling in some other programming environments, so that sucked up some time too.  Anyway, the game is almost done! It still doesn't have any sound, but I've added a lot of elements and fixed little things that bugged me. The game keeps track of your score; there's a title screen; there are little ravens picking at the bodies of unawakened zombies. All these little things and I kept adding "one more, one more," (programming is a lot like playing Super Meat Boy) but nothing seemed quite worth blogging about.  The thing I'm caught on (hah) is this stupid thing with ledges. It's been there pretty much since the beginning and at first I thought maybe I could just let it slide by, chalk it up to being new with Game Maker and all that, but that's really no excuse and the more I played it the more I got caught by them (and annoyed by them) and sometimes you even get stuck and can't get out. So yeah, that's no good.
|
|
|
|
|
17
|
Community / Tutorials / Re: Game Maker Tuts
|
on: January 07, 2011, 12:44:57 PM
|
 So, Tiny Barbarian is almost done! The one thing I really want to take care of is this bug in my collision which causes the player to stick into corners and (rarely) whole tiles. I have uploaded a stripped down build of the game that only has a couple rooms in it so you can replicate the bug easily. But this is what it looks like:  On the left, he has run off an edge and landed "in" the corner of the next block. You can jump up to get out of this one, or sometimes run back, away from the sticking block. In the middle, he has lodged himself in the lower corner of a block. Sometimes you can "walk" out of this one, other times, you're screwed. On the right, he was stuck in a corner and then someone shot him, causing him to "bounce" into the block, further in with each hit. In this example, he could jump out, but sometimes he can get pushed into the block at a lower height (I have difficulty replicating this) and then there's no way out at all. One thing I tried to do to fix this was make a check to see if the player should be on the ground and then force his position to line up with the tile grid, but it didn't seem to work well and also caused weird complications with some of his other movements (like bouncing off of spikes got really weird). I also tried rounding X or Y to whole numbers before colliding, and that didn't have any effect at all. It seems like I used to see this "corner sticking" in a lot of Game Maker games, but I think these days I only play the good ones or maybe the method for avoiding this sort of thing is better documented and people avoid it. At any rate, my code for movement and collisions is all in the oBarbarian Step event, and it should be pretty easy to follow for anyone who has done this sort of thing before. Any help would be super appreciated!  //setting horizontal movement
move = false;
if (keyboard_check_direct(vk_left)) && (!hit) && (hp > 0) && (!oGame.playerFreeze) { if (!climb) { if (scale = 1) { hspeed = 0; } if (jump) hspeed = -playerSpeed else hspeed -= accel; move = true; if (hspeed < -playerSpeed) hspeed = -playerSpeed; } scale = -1; } else if (keyboard_check_direct(vk_right)) && (!hit) && (hp > 0) && (!oGame.playerFreeze) { if (!climb) { if (scale = -1) { hspeed = 0; } if (jump) hspeed = playerSpeed else hspeed += accel; move = true; if (hspeed > playerSpeed) hspeed = playerSpeed; } scale = 1; } else if (!hit) { if (hspeed < 0) { hspeed += drag; if (hspeed >= 0) hspeed = 0; } if (hspeed > 0) { hspeed -= drag; if (hspeed <= 0) hspeed = 0; } }
//vertical collisions
if (!climb) { gravity = myGravity; if (vspeed <= 0) if (place_meeting(x,y+vspeed - 1,oWall)) { while (!place_meeting(x,y-1,oWall)) y-=1; vspeed = 0; }
if (vspeed >=0) { if (place_meeting(x,y+vspeed+1,oWall)) || (place_meeting(x,y+vspeed + 1 ,oJumpThru)) && (!place_meeting(x,y,oJumpThru)) { if (jump || hit) while (!place_meeting(x,y+1,oWall) && !place_meeting(x,y+1,oJumpThru)) y+=1; jump = false; gravity = 0; vspeed = 0;
if (hit) { hit = false; invincibleTimer = invincibleTime; } } else { if (!hit) jump = true; gravity = myGravity; if (vspeed > maxFall) vspeed = maxFall; } } }
//jumping if (!jump) && (keyboard_check_pressed(ord('Z'))) && (!hit) && (hp > 0) && (!place_meeting(x,y-4,oWall)) && (!oGame.playerFreeze) //&& (swing < 2) { jump = true; chargeJump = true; climb = false; vspeed = -maxJump;//-jumpSpeed; }
if (chargeJump) && (keyboard_check_direct(ord('Z'))) && (!place_meeting(x,y-4,oWall)) && (!oGame.playerFreeze) && (!hit) { vspeed = -jumpSpeed; jumpHeight += jumpSpeed; if (jumpHeight < maxJumpHeight) gravity = 0; else { gravity = myGravity; chargeJump = false; jumpHeight = 0; keyboard_clear(ord('Z')); } } else { chargeJump = false; jumpHeight = 0; }
//horizontal collisions if (move || hit) && (place_meeting(x+hspeed+1*sign(hspeed), y, oWall)) { move = false; x = xprevious; while (!place_meeting(x+1*sign(hspeed),y,oWall)) { x += 1*sign(hspeed); } hspeed = 0; }
Test BuildGMK File
|
|
|
|
|