Showing posts with label map. Show all posts
Showing posts with label map. Show all posts

Monday, August 30, 2010

Dreg's triumphant return (I hope)


Arrow keys: move. Space: jump. A: punch. D: Kick. E: interact.


Hello again! Miss me?

Yeah, I definitely had a bit of break... then I got working, like seriously. I didn't update for a while cause I was fed up with all these little updates about small additions to the game. I want to make the damn game already!

So what you have above you is the beginning of the Dregs of War! It's still a little clunky- the foreground is minimal, and I haven't added a lot of details. But you still get the general idea. Then again, I won't be adding many more details to it, because the previous post is too complex for my struggling little computer to keep up. Seeing as I declared that the game should be able to run on my machine, I'm going to have to make some sacrifices as far as graphics go. The main reason for slow down is the mini map, but it's so easy to get lost in this game that the map is pretty much essential.

Here are the new bits:

- the map is faster now, and you can add your own little flag on it to look for. When you're give objectives, they show up on the map too.
- When you die, the game puts you back at the beginning of the current neighbourhood.
- I have my excuse for cutscenes, where the camera will focus on different characters / areas and sometimes a simple animation will play.
- the game has states which are triggered by the player's actions. The main example you see here is the fact that people say different things to you after you've performed certain actions.

Lots of other things have been tweaked, but generally I can see this game coming together. I reckon that what you can play above is about a fifth, or maybe a quarter of the whole game. It takes a while, and let's face it, I am only making a flash game. My next project is definitely going to be smaller in scope!

In any case, now it's becoming less and less about programming, and more and more about designing. I need to make the next few levels, complete with cut-scenes, backgrounds, sounds and (urgh!) new enemies! Fun fun fun!

As for programming, I still need to sort out saving, and I want to make a sort of quick travel feature players unlock as they explore the world (to avoid boring treks through bits you've already seen)

Unfortunately I have some paid programming work to do, which will further slow this whole project down. Do you remember last year that I declared I would finish the game before last Christmas? Hahahahaha! I'll be lucky if I can make it for the following Christmas!

Anyway, as always, please point out improvements the game needs, and any bugs you discover. Wahey!

Here, have an image of a new part of the world, The Big Drink:

Monday, March 22, 2010

Money talks


Arrow keys for movement and crouching, spacebar to jump. Use arrow keys while swinging to increase his spin. Hold down spacebar to make the jump last longer. Hit spacebar again when holding on to a wall to wall jump. A is for punch and D for kick. Press S to hold a grenade, the release S to throw it (be careful - hold it too much and you'll blow up!


It’s a big update today!

Thing is, I don’t think anybody reads this actual blog post anymore (apart form you, Xenelement, thanks!) so I’m going to take this opportunity just to waffle on for ages, stream-of-consciousness style.

Oh and don’t worry – I removed the sounds because it was taking up too much time to test the movie. Can anybody explain how to compress MP3s to be directly used in Flash? No matter what I do, it wants to convert them as it compiles, apart from one mp3 which I downloaded from a site and which allows flash to “use imported MP3 settings”. How can I other MP3s that also get to use their own imported settings?

This was another one of those updates that saw disparate parts of the project coming together. I imagine you’ve noticed that there’s now a shop, and money to be earned! How do you earn it? You beat it out of your enemies, that’s how.

Everything is extra cheap at the shop so that you can buy stuff!

Now some of you might not have realised that there is a bigger map than the mini-map. Press M to access it. Do you remember that post oh-so-long ago where I first introduced the map? Yeah, it was horrendously ugly.

A couple of posts ago I updated it to have a lot of it drawn automatically for me, so that I don’t have to worry about drawing a map as well as designing a level. But it was still ugly.

The mini map is what did it for me – I decided to make the mini-map’s big brother share the same aesthetic, and here it is in all its glory:


I know it says “press s to set flag”, but ignore that for now, please!

This was plagued by a common problem I have while working on this project – wasting time on stupid nonsense. Specifically I wasted time on:

- making the screen to the right show the correct values for x and y (they are in metres by the way)

- adding rotation (what on Earth could be the point?). That took me ages to get right.

I also worked a pretty long time on the shop. It makes sense, though – I imagine in the future (and there will be plenty more games in the future) it’ll be useful for me to have a shop, and what with the flexibility of object orientated programming, a lot of what I’m doing now can be re-used again in the future.

With the shop, the biggest obstacles were actually graphic-design related, as opposed to programming. The two main issues were the holotec armour suit and Snotty Sam.

I started with the holotec armour, a blatant rip-off of the sort of energy field armour in the tremendously fantastic Mass Effect 2 (I don’t think you could actually see the energy armour in the first installment, which was also wonderful).

So I happily drew highly intricate, shiny energy armour for Dreg, which looked great, but when I loaded up the game, it was all so small that is was just a nasty mess (to be honest, it’s still a bit of a nasty mess, but whatever, I have to make this damn game!).

By the way – the armour does actually work – if you’ve got all of the holotec armour you’ll receive only 55% of the damage dealt to you…

Anyway, I quickly discovered that to make something visually appealing, I had to make it big, fun and simple. Hence the huge shoulder-pads and silly helmet. Now the armour adds to dreg’s silhouette considerably, in a way it has to, so as to compensate for its transparency. Then came drawing the shop, and giving it a salesman.

The thing is, Snotty Sam has been a character in Disarea for aaaages (when I was 18 I wrote a crappy sci-fi book set in the world – I write more about this in my ancient university-era site, which also has the comic).

The thing is, I’d always known Snotty Sam was an amalgamation of alien bits and bobs, due to an unpleasant experience in the badlands (he hints at this if you let him chat with you in the shop).

This was fine in the book, because that was all I needed to do – write that he’d been patched up with alien pieces, and that was it. Having to draw the bugger, on the other hand, posed a whole other problem.

The thing is, I’d never taken the time to properly visualise what Snotty Sam looked like, and I tried to draw him anyway. The stupid thing is, I already knew that this was a stupid idea (again, I wrote about this five years ago!), but I had so many things I needed to do in the game that I wanted to rush it. Obviously, this only meant more time-wasting.

So finally I gathered up the self-discipline to figure out what I wanted him to look like. Then Suddenly it was there, and here he is!



Again, simple, big silhouette, minimal alien modifications but a drastic change from his original form – though in the book it was fine to have him be a complex, amorphic mass of alien organs, it just doesn’t work visually (at least, not within my limited abilities!)

I went through a similar process with the currency – should I use coins? Symbols? AAARGH! Then I thought I’d just rip off Zelda. That was a solution I was happy with. Tell me what you think!

Friday, March 12, 2010

Minimaps, hidden areas and stupid armour


Arrow keys for movement and crouching, spacebar to jump. Use arrow keys while swinging to increase his spin. Hold down spacebar to make the jump last longer. Hit spacebar again when holding on to a wall to wall jump. A is for punch and D for kick. Press S to hold a grenade, the release S to throw it (be careful - hold it too much and you'll blow up!


Wahey! Look! A mini-map! It is excellent.

Anyway, this is an update of pleasant surprises, in the form of small touches that make a big difference (to me, anyway!)

So I was working on getting an easy system to have parts of the background seem to be in front of Dreg - this is important for things like when he's hanging off of corners (so that the lower part of his body is hidden by the floor... urgh, can't explain!!!)

I wanted to do this to allow Dreg to pass through windows (he is in front of the wall most of the time, but as he walks through a window, the part of the wall between the window frame and the foreground needs to be in front of Dreg. Again, can't explain. My Brain!)

Anyway, I suddenly realised that the same mechanic I use to have the grenade explosion reveal a part of the level could also be used to reveal hidden areas Dreg accesses. As you go through the window (in the part of the level to the left) the room is revealed as you enter it. The nice thing about this is that it was done entirely through my "level editor" - no additional coding was needed. That was nice.

The other nice surprise was how cool I find the simple addition of a gradient to the mini-map to give it volume. Observe:


Before



After


See? Now it looks like a compass or something! You might think it sucks, but I think it's wonderful, and so simple!

Then there's the armour. Again, you probably think it looks stupid, but I'm totally ok with that. In fact, I want to go further with the stupidness - I think I'll have three different suits of armour, and you obtain them part by part (helmet, torso, arms and legs), either by buying or finding them. Each part will increase your armour score, so it always makes sense to have the best version of each part equipped. My hope is that you'll end up with a horribly matched Dreg, which at the very least will make me laugh. Yipeeee!

Next up, shops, money, and the other suits of armour.

Tuesday, March 9, 2010

Happiness is a procedurally generated explosion


Arrow keys for movement and crouching, spacebar to jump. Use arrow keys while swinging to increase his spin. Hold down spacebar to make the jump last longer. Hit spacebar again when holding on to a wall to wall jump. A is for punch and D for kick. Press S to hold a grenade, the release S to throw it (be careful - hold it too much and you'll blow up!


Dreg goes Boom now!

Well, sort of - he throws grenades! To make it work, hold S start holding a grenade, then release S to throw it (I did it this way so that you can hold a grenade and wait until just before it explodes to throw it at an unsuspecting enemy who won't have time to run away). Or you could simply not release S then get blown up. As you wish.

This was a big ol' undertaking! It required a bit of work everywhere - I needed to make the grenades respond to the gravity shifts, and seeing as I'd been a bit stupid this meant fiddling around with things that I'd done badly, but hey, I'm used to that by now.

So yeah, it meant working on collision and physics for the grenade, on computer AI to make the thugs run away, on graphics for the explosions, on level set-up to have walls that can be blown away and on player input.

To give the player a decent amount of control over how Dreg throws grenades, I decided to have the arrow keys dictate a fair amount of how the grenade is thrown, as well as Dreg's movement at the time of the throw. Notice that if you throw the grenade while Dreg is crouched, he'll just drop it in front of him.

It also caused unexpected headaches, more on which later!

Anyway, I now have all the major items for Dreg to find within the game. By major item I mean those things that allow him to access new areas. At the beginning of the game, Dreg will have no objects and will only be able to wall jump once at a time. As he progresses he'll get these (probably in this order):

- triple wall jump
- whip (can latch on to poles and damage enemies - can be upgraded)
- double jump
- grenades (deadly against enemies, and smash through weak walls to reveal new areas)

If the list seems a little small, bare in mind this is only the beginning - I think I mentioned in an earlier post that I want to make a couple of "chapters" for Dreg. This is nice because it justifies all this work on the game engine (if more than one game will come of it), and it allows me to make the aims for the first game more realistic. In later games I can have additions like guns, grappling hooks, instant transportation devices etc.

Also, there'll be other items to get, such as better armor and offensive stuff (but focusing on unarmed combat). There'll also be stuff like the ability to have unlimited wall jump, but it won't be vital to complete the game.

It all feels so close now! we might see this game completed yet!

Anyway, if you're interested in the nitty-gritty of the grenade-a-thon of last week, read on!

< geekanisation >

So the reason I had to do a lot of fiddling is that I had foolishly focused on the Character class (Dreg and the thugs are extended from Character) when a lot of the functionality (such as collision detection and resolution) should have been in the parent class, MovingObject. Grenades, obviously, are moving objects, but not characters. So that was boring

But the really weird problem was the issue I had with having Dreg hold the grenade in his hand before throwing it. I thought this would be necessary to give the player control over when the grenade blows up after being thrown, but the issue was that I wanted the grenade visible before it got thrown.

I obviously didn't want to animate a run, jump, skid etc. cycle for Dreg with him holding a grenade, so I thought I could simply add an image of a grenade to Dreg's hand and be done with it.

The issue is that Dreg and his various components are scaled to different degrees, and the grenade would fiendishly change shape depending on what animation loop Dreg was in. I had a problem: I needed to have the grenade appear behind his hand, at the same position and rotation as the hand, but maintaining the grenade's original scale.

The solution involved a hell of a lot more involvement with transformation matrices than I would ever have liked to experience. That said, I feel super smart now.

Easiest of all, surprisingly enough, were the explosions. I had a clear idea of what I wanted, and it worked pretty quickly!

The most annoying part was making the map screen aware of walls being blasted away. It was all very hacky. At least it seems to work now!

< geekanisation />

Sunday, February 28, 2010

On health and maps


Arrow keys for movement and crouching, spacebar to jump. Use arrow keys while swinging to increase his spin. Hold down spacebar to make the jump last longer. Hit spacebar again when holding on to a wall to wall jump. A is for punch and D for kick.


Hello!

Doubtless you all missed me - I was working on another project for a while, but now I'm backing with ever increasing vim!

Anyway, I've made a couple of changes that should hopefully make things easier when I finally get round to actually making the game (yeah, as if that's ever going to happen!). I decided I didn't want to have to draw a map for every level, so instead I've made a system which will automatically create a map from the level elements that I draw. So that's cool, innit?

Anyway, press M to see the map. The right hand space will be for giving extra information about places of interest.

Also, health! Yeah, I decided to be inspired (steal from) Oni for learning how much health an enemy has - each time you hit an enemy a sort of coloured circle appears. The colour of the circle indicates how much health the enemy has left. I tried giving the enemies health bars but it looked horrible. You might think this system looks horrible too, but wotcha gonna do about it? It's my game and I decide, ok?

Also, I've decided to build upon (rip off) Zelda for Dreg's health - little red circles in the top right (ok, in Zelda they're hearts, but still, very similar). Just like Zelda, you'll find objects that increase your maximum health hidden around the levels. In the sample above, you have one that increases your health by a whole circle, but in the actual game it'll probably only be a quarter of a circle at a time.

Finally, all of the enemies will drop some health every time you kill them. Try letting them get you close to death, then kill them to get your health back, there's a little colour thing going on when you're a third of your health down which draws from (copies) what we see in most FPSs nowadays.

Anyway, thanks for those of you who can still be bother to humour me - I know this is taking too bloody long!

Thursday, November 5, 2009

I'm back!


Arrow keys for movement and crouching, spacebar to jump. Use arrow keys while swinging to increase his spin. Hold down spacebar to make the jump last longer. Hit spacebar again when holding on to a wall to wall jump. Press L then use the arrow keys to look around, and press M to bring up the map (- and + zoom)

If you want to check out the combat go here


Hello!

Ok, so it's been a while. I think I was working myself up over my self-imposed Christmas deadline, and I needed a Dreg holiday. I know that makes my Christmas deadline somewhat less realistic, but let's face it, as well as world fame and massive amounts of money, I'm making this game to have fun, and there's no point in getting stressed, yeah?

Anyway, the hiatus has given me lots of energy to delve right in. I think one of the main reasons that I needed a break was that I'd found a whole bunch of small bugs and issues that needed resolving, and I didn't have the heart to face them. After a week and a half of doing bugger all I was able to sort most of them out (a couple of big bloopers are still lurking around though).

As for actual real changes that are of interest to you, I decided to focus on navigation. With a such potentially confusing level design, full of tricky little platforms and such, I needed to give the player the ability to check out his or her surroundings, so I've added two things: the ability to look around, and a map.

To look around, press L, then use the arrow keys to look around. For the map press M and press - or + to zoom in and out.

I had to think for a while about what form the map should take - I want it to show information, but only for those places the player has visited. But you can see the dark red shape that indicates the general shape of the level. But I didn't want to show secret paths, so they're not included in the silhouette of the map (but if you use them, they'll show up on the map).

I also wanted some way to indicate the gravity in a certain part of the level. I've gone for a gradient, but I'm not sure if that's clear enough. Maybe I should just physically stick some arrows in there!

I also couldn't decide whether the player should still be able to move while looking at the map, or if the game should be paused. I've gone for the former - what do you guys think?

The reason why the map isn't centred is that the right hand side will contain information and instructions - I want to make it so that important buildings and objectives will appear on the map, and the player can add markers on the map. Maybe that'll be my next update!

In any case, as always, feel free to point out all the bugs/issues you come across!