I decided to join in. A bit late, I know but... I've sprained my ankle in a rather nasty way when running through woods so I'll be tied to a chair for a week or two. I'd like to finish somewhat ambitious prototype until the jam submission deadline. We'll see how it goes. It will probably take a bit more than 7 days.

Below is a pseudo-design-document draft, for what it's worth. Visual mockups coming next.

Escape from the fishing community island

Disclaimer

This will be mechanics prototype strictly. Because of the time constraints it will be pure 2d. All visuals are symbolic placeholders. No animations. Most of the stuff will be represented by plain circles. Fishing-like mechanics I'm trying to explore here could function well in other narrative contexts but I nevertheless kept some kind of "fish story" to it.

Tech

Javascript / HTML canvas Mouse+keyboard controlsWill be tested only in Firefox - first version probably won't work properly in other browsers

Story

You and your spouse were visiting an old fishing village on a small, remote island. As the night fell the first day, something strange happened. Masses of all kinds of demonic fish started rising from the sea, floating through the air, brutally attacking every living thing on sight. As if they're seeking a revenge for the centuries of exploitation of their kin by "the evil humans". Most of the villagers who owned fishing boats managed to escape in panic. Your spouse disappeared. Find the spouse and get off the island asap. As you grab some fishing hooks and a harpoon to defend yourself, you hope there is a functioning motorboat left somewhere along the coast...

Gameplay

2d top-down view.Action. Mostly tactical combat with fishing-inspired mechanics. Main conceptual idea for combat mechanics is indirection which is one of the key characteristics of fishing.Search and exploration.Some role playing elements.

Objective

Player can beat the game in two ways:1) Kill all the demonic fish (good luck with that)2) Find the spouse, boat keys and a fuel jerrycan in the village, locate the boat along the coast and escape.

Player character

Walks in 8 directions. Uses 3 kinds of weapons (harpoon, net, hooks). Health bar. Searches houses.Player has several stats that affect weapon handling. On the game start the character is customized by assigning points to different stats. Stats can be additionally improved during the game when fishing equipment is found.

The Island

Island is a big flat shape filled with scattered houses. For each game the shape of the island is randomized, as well ad the house arrangement.

Houses

Houses are filled with furniture (represented by ?-marked boxes). Player must search them to find the spouse, key items, villagers, upgrades and other stuff.

Minimap

Map that gradually reveals discovered areas of the island. Fully searched houses are marked distinctively vs. non-searched ones so the player knows what to explore next.

Demonic fish

Fish vary in size(radius,strength), movement speed and aggressiveness. Each of those parameters is a continuum from small to big. Fishes are generated using standard Gaussian distribution. So small/weak are more common than big/nasty.Other properties:- cruising velocity- engage velocity- steering- engage/disengage radius

Boss fish(optional)

Fast big fish. Appears from time to time. Hard to kill.

Spouse

Player's spouse is hiding somewhere in the village. Finding him/her is one of the key objectives. When found, the spouse will follow player. Has "health" property and can die.

Villagers

Villagers who didn't manage to escape hid in houses. Player can stumble upon them when searching. They will follow player. Player can use them as a bait or sacrifice them to get out of tricky situations. Player can "detach" a villager by instructing him to "wait here". A villager has two properties: "health" and "calm". "Calm" is depleted by fish proximity (only on villagers that are detached). When "calm" reaches zero, detached villager will flee in panic back to player, potentially dying if the player is far away. Optionally: differentiate villagers: male, female, child.Optionally: Having a villager can boost weapon handling stats. When villager is lost, boost is lost too.

Weapons (description a bit confuddled, need to test stuff as I go)

You use fishing equipment you find in the village as your weapons. Weapons differ in tactical possibilities. You configure your character to use a combination of 2 of 3 possible weapons. Weapons can be improved/upgraded/repaired along the way by searching houses for more fishing equipment. Player starts with customizing weapon configuration/strength in the character creation screen. This is done by assigning a limited set of points to weapon parameters. So for example you can have a strong harpoon and a weak net, or balanced harpoon and net...

Harpoon - When fish is hit with the harpoon it starts running away from the player, dragging her with it. The bigger the fish the longer it takes to tire it. This increases risks as the player's control is somewhat reduced during dragging, making her easier target for other fish.Parameters:- Range - length of the harpoon cord and successful shot distance- Strength - damage rateNet - It can be thrown and dragged around. Fish get caught in it. It's represented by a bunch of circles. Each circle can catch only fishes smaller than it. If the bigger fish pass through it it will tear it. Torn parts of the net do not catch fish. You can repair the net by finding fishing equipment in houses. Fish that damaged the net can be slowed down a bit (maybe), so player can sacrifice net to escape. You dragging the net slows the player down.Parameters:- Area - total net area- Strength - size of one net circle. The bigger it is the bigger fish can be caught in it.

Hooks - A number of hooks can be thrown. When a demonic fish passes over it it will "bite". Bigger fish need to bite several times until caught. Hooks are deployed/retracted similarly to net. While net is better for catching a lot small fishes, hooks are more effective in targeting one big fish.Parameters:- Count

Items

Items can be obtained by searching furniture/stuff inside houses. Searching each thing takes some small amount of time. Search time varies slightly. When searching of an object is complete it disappears from the world and you get whatever you found there. To search the object, you must be in its proximity and hold the mouse button ("Searching..." progress bar).Items that can be found:- Fishing equipment - boosts weapon stats or repairs broken stuff. - Alcoholic beverage - - Food/first aid -- Villagers in hiding -

Essential items

- Boat keys- Fuel canister

Finding those two items and then getting to the boat is the objective of the game. Items are somewhere in the village. Player needs to search houses to find them.

Unique items (optional)

- Army boots - if you find them, you'll move slightly faster for the rest of the game.- Shotgun + 5 shells. It will instantly kill a target of any size. Only 5 (or so) shots in the whole game- Fishing dynamite- more...

Last edited by nenad on Wed Jun 12, 2013 6:06 am, edited 3 times in total.

Today I made most of the graphics I'll be using. Maybe even some I won't be needing. I also did a lot of preparatory grunt-level coding. Menial stuff like boxes and circles, basic collision handling and program states scaffold. I'm not using any libraries so everything needs to be coded the pedestrian way.

Here's the raw graphics sheet. More to come. Off to core game mechanics implementation now.

A lot of coding done but nothing spectacular to see on screen yet. Implemented:- rudimentary game logic: movement, map scrolling, etc...- gaussian fish spawn- basic fish behavior: seeking targets, two degrees of aggression...- distance constraint relaxation algorithm for keeping all circles magically apart. It gives a very nice feeling when walking into bunch of fish.- some groundwork for trying out specific weapon mechanics- net throwing/picking mechanics- parts of interface in html.- more preparatory "low-level" code as a basis for implementing the stuff jotted in the design doc.

Today I spent most of the time figuring out specifics of weapon mechanics. Here's a short description of the system I decided for.

Player can simultaneously use 2 out od 3 weapons; harpoon, hooks or net. Chosen weapons are triggered by left or right mouse button (left/right hand).

Tactical combat is not unlikely in your ordinary arena shooter. There is a "twist" however. Player can't just go and shoot demon fish directly. They don't possess "direct" kind of weaponry. Instead, all tactics involve some degree of indirection. Player must use approaches such as luring, trapping and tiring.

Brief overview of each weapon with some screenshots:

1) Net- Click and drag mouse button anywhere in the range to throw/arrange the net. - Click again to collect the net.- Fish smaller than the net circles will be caught. Bigger ones will tear the net. Torn parts of the net cannot catch anything.- All fish trapped in the net at the collect time will be caught/banished/destroyed.- Player can drag thrown net (with caught fish) but it slows them down by the half.

Player dragging the net. Two smaller fish on the left are caught. The big one cut through the net, heading for the player to harm them.

Player standing in the middle of the net, acting as a bait. The net is not strong enough (circles too small) to tangle the big one.

2) Hooks

- Click and drag mouse button anywhere in range to deploy hooks.- Click again to reel the hooks in.- Fish touching the hook will "bite" it. The bigger the fish, the more hooks it takes before it becomes "hooked"- All fish hooked at the reel time will be caught/banished/destroyed.- If fish is only partially hooked, reeling will set it free completely.- Player can drag thrown hooks around.

Player threw some hooks. The right big fish is partially hooked. Number "1" means one more hook needed before fully hooked.

Now the upper fish is hooked and the one bellow will need one more hook.

Two big fish hooked. Player can successfully reel in now and run away from the smaller fish flocking around to attack. Two green hooks are left unused.

3) Harpoon

- Player can launch the harpoon in any direction in a certain range.- When the harpoon head hit a fish, it will start running away from the player pulling them by the harpoon cord. After some time, the fish will surrender. The bigger the fish the longer it takes to tire it. Time left is indicated by a number over the harpooned fish- Player can withdraw harpoon at any time. In that case the fish will be released unharmed.

Player firing the harpoon at a large fish

Harpooned fish running away in aggravation, pulling the player along. Two more ticks until its surrender.

Very intensive day. I dealt mostly with the exploration part of the game. I managed to finish the island generator and a fully functional minimap. At each go, the player will get unique island. Island size is full scalable as well as the number of houses. This can be used as a difficulty parameter, along with fish aggressiveness and spawn rate. It's starting to feel more like a game now.

Implemented:- Fractal island contour generator.- House generator using simple plan templates. - Populating island with houses, keeping the village layout neat.- Minimap: gradually reveals as the player explores, searched houses can be rendered in outline.- Improved fish "AI". Among other thing, now they cannot see player through walls. It allows for nice hide and seek tactics.

Thanks, narF. I'll try to make the playable version available as soon as possible so you guys can try it out. But probably not before day 7. I'd like to bring it to at least somewhat rounded state, with all the planned features included.

I worked mostly on high level game logic. The game can now be played "from the beginning to the end", although it's highly unbalanced and still missing some stuff. This top-level scaffold is always bothersome to implement because all kinds of loose ends constantly emerge...

Search/explore mechanic is fully in place now. Items to find are scattered around the houses. Player can encounter upgrades, story items and villagers. The boat can also be found on the island coast. Once the player finds it, it is marked on the map so they can backtrace when all essential items are found.

Another intensive day. I finished most of the villager mechanics. Player can now find people hiding inside houses. They'll join the escape party. Player can assign certain helping roles to them (mend wounded, pull harpoon etc..) which will increase overall strength of the group at the cost of agility. Villagers can be attached/detached at will. When villager is detached from the group, fish will prefer to attack him/her. Even if the rest of the group is nearby. This allows for some evil escape tactics by sacrificing villagers.

Since villagers follow the player, I had to use some kind of pathfinding algorithm. Seems like an overkill for a project of this scope and I thought I'd get away without using it but villagers tended to stuck at the opposite sides of walls a tad too often. So I implemented a quick A*. Didn't have time to put in any sophisticated heuristics. It manifests occasional hiccups but works decently for this purpose.

Some screenshots:

Player leading a group of villagers away from the gigantic fish:

Detached villagers wait inside house while player deals with dangerous job of harpooning a fish:

Villager sacrifice tactics. A kid is left as an easy target for fish while player safely runs away.