Posts

Showing posts from 2014

Still Alive! Just awfully quiet.

It's been a while, huh. Well, simply put, I've put Downfall Inc on the backburner for a little bit. There's a fair amount going on for me right now, potentially something big happening just after Christmas too, so I've not really wanted to do any work on the game for a while. What I am up to, right now, is concepting. Characters, environments, themes. I'm planning out the showcase/demo level, which when complete I'll start developing the tile set and effects for.   Downfall Inc   is still alive.  I just don't have much to report on these past two months. Man, adult life gets in the way. The blog will shoot back into life once I get rolling on the demo level. - Rob

Kick, and Grab

So hey, I managed to sort out the basics for two kinds of finishing moves today. There's a set chance of an enemy being knocked down instead of being flat-out killed when they've taken critical damage. At this point, you can either kick them or pick them up. Kicking sends them flying a fair amount away, potentially into a wall to be lodged into. Picking them up, currently, enables you to move them about before throwing them forward. I've had some ideas, I'm thinking of letting the player use the picked-up enemy as a human shield. Think Gears of War 2 . It's a potential mechanic that shouldn't be too hard to implement. I'm tempted, also, to allow the player to throw the enemy with an attached grenade, again, ala Gears of War 3 . Part of me feels this is too derivative and too far from the theme.. part of me just wants to code it. So, yeah, more features! Probably implement the above mechanics tomorrow, or just bug fix. Anyhow, off for a bit of R&R n

Stunlock

Tonight I've been working on stun lock for enemies. Damage freezes enemies for a set period of time, melee more than ranged. During this time the enemy can't move, fire or turn. They'll display a damage animation when I do the art pass. This enables melee focused players to get in on an enemy and finish them off, and allows a ranged focused player to take on groups of enemies without being swamped. I think. Anyway it's a feature, one I've been meaning to implement. I'm going to polish it up tomorrow, but after that I'm going to work on melee knockback and kicking. These are features that have been broken by the AI rebuild, so I'm retreading old ground. Still, progress. I've also been thinking hard about the theme of the game, and made some ground there. No notes for now, haven't settled on anything solid yet. Chao! - Rob

Excuses and a minor update

I don't know if I explained this before, but as this project has gone on I've had less and less time to work on it, and increasingly complicated tasks to complete. I work weekdays, leaving me a few hours after to work on the game (if nothing else is in the way, and if I'm not shattered). I see my girlfriend pretty much every weekend, so I don't work on it there. Compare that to when I started, when I had considerably less responsibilities (no job, no lady).. you can see why I'm so slow to update. Right, anyway, enough of making excuses. Just wanted to defend myself a little. Now onto the real purpose of this blog - stuff! I completely rewrote the menu and now there's a basic menu system all sorted. It needs art, but it's functional. I can't do any art until I have a style guide, so that's on the shelf for later. One (serious) problem involves a concept known as 'delta time'. See, for some reason, in the software I'm using, frame

Menu Update

It's been a while since I last updated, I'm just seriously preoccupied right now. I am working, albeit slowly, still. I'm a little burnt out from A.I, so I've been working on the menu system. It's all functional at the moment, including a very basic loadout screen and map selection. My next task is to turn this text-based interface into a GUI, which is actually the fun part as I enjoy designing a fair bit. Hopefully, GUI update to come next. Downfall, Inc is still going strong, just unfortunately adult life gets in the way a lot. Still alive! - Rob

Progress Report - 16/09

I don't have much to report for today, I'll be honest I've been in a bit of a bad mood since I got back from work so I haven't felt like doing much code. I managed to get the enemies to search for the player once alerted, so there's one thing. I've also being planning out the menu screens, I felt the need to do something a little different for a bit. Anyway, I'm going to do some drawing, I need to cheer myself up. More stuff tomorrow! - Rob

Damage Indicator

Image
New tracer round effect, and the damage indicator ring. The player here was hit by two rounds, so it formed a semicircle as both indicators overlapped. The red dots are usually hidden, they're just a debug thing for me. Same for the blue square, ignore all that. Tonight I created a damage indicator ring, which visually indicates which direction the player has taken damage from. While the screen shake lets you know you've taken damage, the damage ring lets you know which direction the damage came from. Additionally, I created a new tracer round effect, which is just a nice visual touch to the existing bullet art. Now, usually, bullets don't glow. In fact, they're not visible at the speed they travel at. As you may have figured from this blog, realism isn't my main aim. I like the tracer effect, it helps really empathise how lethal skirmishes are with all these tracers tearing through the air. I've started working on the special 'Search' behaviour

Enemy Roaming, and Reinforcements

When the alarm has been raised, enemy reinforcements will start to arrive. They'll arrive in waves, via the nearest spawn point to the player. At the moment, they simply spawn and move either to idle or to roam. However, my next step is to flesh out this feature, so the enemy first moves to the alarm location before switching to default mode. Also, enemies will spawn in groups depending on the threat level, with appropriate equipment. Enemies will now roam, if told to. This functions almost identically to civilian movement right now, but it will we slightly different. Hostiles will have their own "roam" nodes, which cover important areas to search. When an alarm is raised, all enemies that are aware will switch to this search/roam mode, to try and find the threat. This is after reacting to any sound/sight that they noticed. So, productive evening overall. The basics of two tasks are done, they just need to be expanded upon. All that remains for the enemies is some t

Return

I'm back! If I'm honest I got back a week ago, but Wasteland 2 came out, and between that and work I've been pooped. Time to get back on the horse! Starting tonight onwards, I'm back on Downfall, Inc . I shook up the game feel a little tonight with an experiment. Holding the right mouse button draws the current weapon, slowing the character to a walk as he aims, but allowing you to shoot. Letting go lowers the weapon, which increases your move speed but stops you from firing. It actually has a pretty decent effect on the game, forcing you to decide between fight or flight more seriously. While aiming you're easier to hit, as you can imagine. You may be wondering why I tried this. Well, at the moment, pistols have little strategic value. Automatics and shotguns deal more damage, faster. Now, pistols have on major advantage -- mobility. A pistol barely slows you down whilst aiming, whereas an assault rifle slows you to a walk. The heavier the gun, the less mobile

Holiday

Image
It's holiday time! I'll be back soon, until then, stay frosty! - Rob

Misc. Updates, 19/08/14

Image
- When an enemy dies, and drops their weapon, it now has the correct force/speed. Previously, it was treated as a thrown weapon. Now it has a separate switch to make sure it doesn't fly off and potentially kill someone. - Weapon pick-ups now have a box indicating their presence and whereabouts, so the player can clearly distinguish between interactive objects and the environment. - Melee focused enemies now have an attack, which triggers within a certain range. Get swamped by two or more melee enemies and you'll take a serious beating. - When you take damage the screen shakes a minor amount, to indicate damage. I felt this was necessary as it is immediately noticeable, as opposed to the health box which is in the corner. I may go in tomorrow and make this a toggle-able option, as I imagine some players will not enjoy the effect.  - Enemies will now correctly chase the player, stopping and facing them if they see them. Previously, movement was the priority. However, t

Mission Objectives, and miscellaneous updates

Image
It's such a small thing, but it makes such a big difference in play testing. This text pops up when the objective for the level is completed, letting you know you've made it. Objectives are now set-up for Assassination and Elimination -- hunting a certain target, and floor clearing respectively.  I'm about to start working on the other two mission types -- Raid and Retrieval. Raid asks you to cause as much property damage as possible, while Retrieval tasks you with grabbing an important item and getting out in one piece. After these, reinforcements really are my number one priority. Additionally; - Created a new enemy type; the VIP (Target). - Holding the grenade key will determine how far the grenade is thrown. - The noise from a breaching charge detonation now attracts enemies. - Game now tracks stats for kills, damage taken, shots fired, accuracy ect. for post-mission assessment. I've noticed that I've been updating the blog less frequentl

Civilians -- Complete... ?

Image
Civilians now roam the map, moving to pre-placed "points of interest" and taking a look around. After a randomised delay they start to move again, to a different spot. Sounds really simple, but it wasn't! They still retain their flee behaviour too, so they'll run if they are spooked by something. I can't really think of any planned feature that's missing from them, so for now I'm calling this first pass on the Civilian done. I may add more in the future, but for now I'm moving on. The logic/script I created for finding, storing and selecting random nodes to move to - I'm going to adapt it for the enemies, so they can have a "roam" AI state. This'll most likely be for the reinforcement waves. Anyway I'm pushing it for time, better call it a night! -Rob

Civilians!

Last post I mentioned I was working on patrolling, melee and civilian A.I. Well, I've done.. one and a half of those things. I've had a busy week and I've been pretty exhausted, as you can imagine that has had a big effect on my output. I'm still chugging along though, so here are some things for your brain. Enemies are pretty docile until they notice something off; a dead body, a player holding a weapon, or a gunshot nearby. Once alerted (they chatter, so they alert each other) they'll jitter more, and shoot on sight. There are melee and ranged enemies, the biggest new thing here being that melee enemies will try and get close to you and hit you with sharp objects. At the moment they don't attack, but that's just one script I've got to write. Civilians are pretty chill until they hear a gunshot, see a body, or see you running at them with a loaded shotgun. They bail for the nearest exit when they get scared. Unlike guards, they don't have a hi

First August Update!

Image
Wow, has it really been a week since I updated? Where did the week go!? Well, a lot of planning / tweaking has been going on, but obviously they're too small to report on. Here are a few things to mention, though; Thrown weapons will not bounce off walls; they used to use the same logic as grenades but I've corrected that now. They'll lose a lot of force when they impact, meaning they'll just drop down. Enemy A.I reacts to sound; gunshots will draw them over to investigate. The silenced pistol has the smallest range, and the shotgun currently has the largest report. So, firing a shotgun off will call most of the map, whereas a handgun will only bring in the next room or so. It's not realistic, I know, but the idea is that the tradeoff of heavier firearms is that you lose all hope for a stealthier approach. There are silenced weapons; silenced pistols, SMG's and Rifles will be available. These will have reduced damage however, and will be rarer. Here

Untitled Update!

Image
I had a fairly busy weekend, so no real major progress to report. Some little things though; You can now change the resolution and size of the window! It does require restarting the level, but hey, it's a thing. This facilitates a menu-based resolution option, which is something I felt was necessary! In windowed mode, the GUI doesn't stretch, it just spreads out more. In fullscreen, currently, it stretches. This is something that can be changed. I felt that the game was too small, not just at my native 1920x1080 resolution but even on a lower 1024x768 resolution (which, if I recall, is the lowest in use nowadays). Everything has been upscaled by 2x, and I'm in the process of rooting out all the little bugs this has caused (mostly due to distances now needing to be double). I feel it's an improvement, and I didn't want to simple 2x the window as this stretched the UI.  Tracers are back! A friend pointed out that seeing the enemies fire helps you avoi

Some Ideas

House of Cards One idea I've been toying with is a house of cards, of sorts. Low-level targets are the numbered cards, with higher members filling in the King or Queen. You need to take out the lower foundation cards before you can tackle the higher cards. The Ace is the finally piece, the head of the whole downfall.. Starting Equipment I'm debating my initial decision to allow the player to take in two weapons of their choice, as in the later game you'll be able to take in an assault rifle and a shotgun -- making you pretty unstoppable. I'm undecided yet, as I don't want to restrict player choice. Super brief update. More to follow. - Rob

Inventory / Weapon Icons

Image
Today I decided to do some more inventory art, before moving back to the coding side of things. I've been hesitant to use Using a fantastic resource, " Pimp My Gun ", I've mocked up a few weapons that'll feature in the game. I say a few, I mean all. I've not shown them all here due to space and stuff. There's 10 in total. I'll be using these to create the line art that's used in the interface.

Teaching a potato to think - A.I Update #5

Potato Based A.I There's a good reason why it's been 6 days since my last post. Aside from working tirelessly to get my head around the enemy code, I also almost gave up. Yeah. As an amateur, completely self-taught programmer, my range is pretty short. I'm an artist at heart, so I don't like diving any deeper than fairly basic programming, once it gets too mathematical I lose interest. As you can imagine, A.I really stretched me thin. So here's update #5 on the A.I -- it's pretty dumb. I've accepted that, for now, the enemies aren't going to be smart. It's just outside my current skill ceiling. It's something I can come back to and develop, but for now I'm moving on to keep the ball moving. At the moment, the enemy will fire at a visible player, and chase them if they lose sight. If they lose the player completely, they find the nearest room and stand watch. They change their facing fairly regularly, as if they're keeping an eye out

Teaching a potato to think - A.I Update #4

Image
Patrolling My main focus for today was to work in patrolling -- more specifically, getting in and out of a patrol loop effectively. I've got it working, it's slightly buggy but the A.I will stop patrolling if he hears or sees the player, and will move back to the patrol route once he's lost them. Reacting to Sound The A.I will react to nearby gunfire, turning to face the direction it came from. If you missed your shot, he'll notice. It's still a bit early days, for example he won't move to investigate a sound, which is something I'll add in a little while later. Now that I think about it too, he should react to thrown grenades and weapons. Dammit, more stuff to add in to an already fragile system :( So, what's next? Well, my priority now is reintroducing all of the previous A.I functions, one at a time to ensure they're working correctly. I have a working copy of the previous A.I code, so I can copy it chunk by chunk and alter it

Teaching a potato to think - A.I Update #3

Image
I wanted to include a video with this update, but Fraps doesn't handle Game Maker very well :C Ah shucks. Anyway, today I tore apart (not really, more just pulled  apart) the enemy A.I and started to rework it. Basically, it overlapped too much, and that was causing problems. Now I'm going through system by system, making all the necessary changes. Firstly, and arguable quite importantly, was making the A.I turn to face the player, rather than snapping. It's a simple thing on paper, but it's more difficult than it sounds. Remember that 0" and 360" are the same, and that to a computer the fastest route from 5" to 355" is to add  rather than subtract. That one was a bugger to solve. Next, I made sure the enemy only turned when he could see the player, and only within a certain cone. If you stand in his periphery, he will see you, but if you're out of sight he'll be oblivious. When oblivious, he'll either fidget (change direction occas

State of the A.I

I've been trying to repair the A.I today, and to a certain degree, I have. Getting the A.I to react to sound has worked to a degree, but it's currently disabled as I can't get it to really integrate at the moment. How it works; The enemy uses several scripts, each handling a different area. The first just returns a load of variables based on certain things; can he see the player, is he in cover ect ect. The second uses these values to determine what state the A.I should use, based on conditions and current state. The third, which is a set of scripts, acts upon the current state. State 0 is the idle state. Currently, the enemy just stands. I want him to fidget, and patrol if given a path. I tried this before, and unfortunately the patrolling was suuuper buggy. It's one to fix, though. State 1 tells him to search for cover. If there's no cover in range, this is ignored. Otherwise, he moves to the nearest good cover facing the player. Good cover is determined b

In-Level Lighting

Image
You know when I said I'd take the weekend off?  I lied. I originally made a very crude, very very inefficient line-of-sight system, that would obscure anything outside of the player's field of view (actually, anything obscured by a wall). This literally killed the framerate in larger levels, though, so I quickly ditched it. Searching for tutorials regarding lighting using surfaces, I stumbled upon a very cool set of scripts, that were free to use. After a quick field test, I decided to include them in Downfall, Inc.  They're a ton better than anything I could do, and it means I can focus on the A.I more now. First, credit to the author - Shiny Jumpluff (http://youtu.be/MaDPr2Z1-lM).  Initially, I used only one light, which followed the player. This was a visual indication to the player as to what they can see. They're looking overhead, whereas the character isn't. So I wanted to highlight clearly what was hidden from your view.  My first pr

A.I -- an update

I sat down today with the intention of expanding the enemy A.I, however, in my infinite wisdom I seem to have broken a few features whilst adding in melee reactions. Essentially, to add in the new functions, I need to rework some of the A.I code. This isn't a one evening job. Given that I have plans both tomorrow and Saturday, I'm electing to resume work on the A.I on either Sunday or Monday. I'll just forget where I got otherwise. I aim to add in patrolling enemies, and to make the A.I react to sounds. All in due time! - Rob

Basic UI Elements

Image
I am simultaneously an artist, a programmer and a designer when it comes to Downfall, Inc , so I often switch roles on the fly. Today, instead of tweaking the A.I, I wanted to do some design/art. So I worked on some basic GUI Elements.  Downfall, Inc - while tactical and methodical, is still an action game. The UI had to accommodate this. Using the above cropped screenshot as an example, you can see how this works. Instantly, from the colour of the bar, you can tell you've taken damage. A simple description lets you know how severe the damage is. Take minor damage, and the bar will be yellow and read "Injured". Take major damage, and it'll go deep red and read "Critical". Hopefully, it's super easy to read from a glance. A line drawing of the current weapon lets you know what you're wielding, and the lines beneath display current rounds. You'll be able to see the heavily depleted bar from a glance, letting you know you'll need to relo

Kick, Stunlock and speed based collision damage

Image
Melee attacks knock the enemy back, and stun them briefly. Enemies no longer attempt to find cover if you're right near them, as this led to an annoying cat-and-mouse chase that really didn't feel groovy. In a nutshell, enemies have more courage, and will stand and fight if you charge them. Yeah, it's not realistic, but it's also not fun the other way. Trust me, I've been testing it all day. You can kick enemies now, an alternate melee attack that causes less damage but provides more force. Force determines how far an enemy flies, so a kick will send them flying while a melee attack will do more damage.  If an enemy hits the wall at a certain speed, they will be killed (I like to think they're knocked out cold, personally). They have a different "death" sprite too, so they're not bleeding and are slumped against the surface. Pretty cunning, huh?  Well, not really. Honestly, I'm an amateur coder, don't expect any flash w

Quickie: Persistent Bodies

Image
Previously, enemies would just disappear on death. This wasn't a design choice, obviously, I just didn't have any art to indicate that the character was pretty messed up. It'd been bugging me all the time I was testing, so I decided to scratch that itch and make some placeholder art. It's purely placeholder art at the moment, a quick 20 minute mashup. However, it enabled me to sort out the code for persistent bodies and whatnot. Anyway, back to melee.. - Rob

Potential Firearms

Image
So, I was supposed to call it a night and relax, but I had a whole host of ideas for potential firearms so I decided to boot up Photoshop. Here are some one-handed weapons, a mixture of semi-auto pistols, magnums and machine-pistols. These can all be dual wielded. The first is the pistol that low-level enemies will use. The second is the default, unlocked handgun. After that is a high-power magnum and it's heavier calibre brother. Finally, that's a machine pistol. Handguns don't affect movement speed, and can be fired as fast as you can pull the trigger. A few different types of sub-machine guns, that will vary in clip capacity and fire rate mostly. In Downfall, Inc.,  sub-machine guns are a good middle ground between pistols and rifles, offering decent movement speed and fire-power. Four potential rifles, the first three being automatic and the last being a semi-automatic. They'll vary in damage and spread. The first will most likely be used by the mercenaries

Basic Melee Combat

Image
After finishing the smoke grenade, I decided to focus squarely on the last big feature missing from the basic gameplay blueprint -- melee combat. Currently I'm only working on the combat knife, as it's the weapon I'd encourage melee focused players to equip. At the moment, there's a sprite for holding it when equipped, and a basic two-slash that will deal damage to an enemy within melee range. And as I mentioned in the last post, it can be thrown at an enemy for an instant kill, and retrieved afterwards. You will also be able to melee with ranged weapons, however, this will be much slower and deal less damage than the knife. I decided to make the knife its own weapon, as I wanted to empathise melee combat as a separate discipline for your agent. I want the player to choose to be a melee fighter, rather than it being a last resort when they're out of ammo. This stems back to Downfall, Inc 's roots, as originally there were classes to choose from. While I d

Smoke Grenades - Quick Update

Image
So, just a quick update here -- smoke grenades are done, completing the three available grenade types. Enemies cannot "lock on" to the player if he's in the radius around the smoke grenade, essentially they lose him. It could be considered a little over-powered, sure, but they're not a recoverable/reusable item and they're only around for a short time.

Throwing Weapons, and Weapon Pickups

Image
I can't really think of a good image to use here, so I'm just going to show some of the world pickup icons. I started working on throwable weapons yesterday, in between working on placeholder art to jazz up the current build. I finished up work on throwing weapons this afternoon, hooray! In a nutshell, you can throw your current weapon whenever you feel like it. Dependant on what kind of weapon it is, it'll either go far or.. not so far. For example, you can throw a handgun pretty far and pretty hard, but a rifle wont fly so pretty. A combat knife will fly beautifully, though, and is pretty lethal. If a thrown weapon is going over a certain speed, it'll take out the guy it hits. I know, I know, throwing a pistol at a guy might not kill him, but I'm in charge here. Aside from the fact you've just lobbed your weapon, there's also the risk that you're a hair too far away to do lethal damage. Throw your shotgun at too great a distance and it'll j

Start of the Initial Art Pass

Image
I decided to spend this weekend creating some placeholder art to spruce up the prototype. I've found that, while it's faster to use basic blocks to map everything out, you can't get the feel  of the game without placeholder art. I had some other things to do today, so I only really focused on the player character sprite. It consists of three layers; upper body, arms, and legs. The upper body rotates as the player moves the mouse, indicating the direction the player is aiming. It's a single frame at the moment, so it's pretty easy to change the appearance of the player. The arms follow the body, but are animated with the different actions and weapons the player can use. The legs operate separately, facing the direction the player is moving rather than the direction they are facing. Here's the rough reload animation for the pistol; I've got to do the reload for dual wielded weapons, sub-machine guns, rifles and shotguns. At some point, I need an

Scan Dart & Smoke Grenades (Basic)

Image
A scan dart will burrow through the first wall it touches, leaving the other side and burying itself into the next wall where it comes to a stop. It provides line-of-sight for the player, illuminating previously dark areas of the map and revealing all enemies within visual range. It's the final piece of special equipment available. It's the stealthier option, offering a more tactical approach when compared to the loud breaching charge or the costly magnetic shield. Basic functionality of the last grenade type, the smoke grenade, is done. Fragmentation grenades wound, Stun grenades disable, and Smoke grenades conceal. Enemies wont be able to lock onto the player through the smoke, but the player will be able to identify their foe through it. It's like portable cover, that enables the player to take out several unsuspecting foes before slinking out. I aim to finish the smoke grenade tomorrow, and hopefully get basic melee working. Night! :) - Rob

Breaching Charges (Revised), and Magnetic Shield

Image
Most of my work tonight went into fixing the breaching charge feature, which was functional but broken. Essentially, charges would be placed around corners or between wall segments if you were in a certain position against the wall. My solution, unfortunately, is a less efficient and more object-heavy solution.  Each destroyable wall segment generates nodes around it, used in calculations. There's a dummy object that orbits the player, based on their facing direction. Pressing the key to place the charge will, if close enough, create a charge and move it to the node nearest to the dummy.  If I've lost you, basically now the charge is placed based on where you're facing, rather than which direction you moved towards the wall in. Apart from the under-the-bonnet stuff, it all looks the same, so no screenshot there.  Another feature I worked on this evening is the magnetic shield - a piece of equipment used to deflect incoming rounds when activated. It can only

Breaching Charges (Basic)

Image
I should've been in bed a half hour ago, but I stayed up a bit longer to get this feature functional. This evening, I've been working on the breaching charge. In a nutshell, it's a special item that will blast through thin walls and doors, creating a unique entry point whilst killing and stunning enemies in certain ranges. It's been a bit of a complicated one, since there were a lot of direction and angle calculations to consider. Firstly, the charge had  to sit in the middle of the surface it was placed on, so it cleanly blew up the portion of wall it was aligned with. This was tricky for me, as there was no short way of determining which face of the wall was closest to the player. It's still a bit buggy, if you're half way between wall segments it'll choose either the above or below segment, it doesn't look natural. That's something I'm going to smooth out tomorrow hopefully. For now, pictures! An important note.  Everythin

Welcome to Downfall, Inc.

What is Downfall, Inc? Downfall, Inc is a tactical, top-down arcade action game heavily inspired by Syndicate, Hitman and Rainbow Six. Players assume the role of a mysterious operative, hired to cause property and personnel damage at a number of high-value locations around the city. Downfall, Inc focuses on intense close quarter fights. Once you make your move, the enemy will dive for cover, and call for reinforcements. Use stun grenades to prepare rooms for rapid entry, or blow through the wall using a shaped charge to surprise the enemy and get the drop on them. Kick weakened enemies through doors, then throw your knife at the next target. Essentially, imagine Hotline Miami  meets Rainbow Six meets Hitman . You'll be given a target to assassinate or property to ruin, and it's up to you to meet your objective before reinforcements overwhelm you. Before you draw your weapon you'll be able to walk around the environment undetected, within reason of course. So the f