picosonic / js13k-2023 Goto Github PK
View Code? Open in Web Editor NEWJS13KGames entry for 2023
License: MIT License
JS13KGames entry for 2023
License: MIT License
When close enough to an enemy, change their state to make them follow you to attack.
If they collide with you, lose some health.
Make sure they can't move as fast as you, so you can at least get away from them.
When a key is collected it can then open all the doors.
So allow key to be collected, a state var is recorded that the player has collected the key, and then any closed doors visited become equivalent open doors, plus character enters the door which goes to a different level.
Detect when you walk onto a potion
If enough money held, buy a potion and reduce coin count
When opening a chest randomise what you get, between coins, keys, potions
It would be good to have a particle system to render when interactions occur, like healing, killing rats, collection objects, e.t.c.
Will need to render text at some point so add an 8-bit font and text writer library
When pressing right button, the context menu appears and the character starts moving towards the space under the cursor.
Also the middle button will be processed.
These both need to be put into settarget() function in the file inputs.js
Having added the mouse cursor which is good for desktop, we don't want it to show when on mobile/tablet/touchscreen
The rats should patrol randomly and if they come in to contact with a villager they infect them - shown by them leaking particles
When entering a house, write the room name at the top of the screen
Show all the items collected and allow them to be interacted with, e.g. dropped, or potions mixed
Will need to decide how to show/hide inventory
When closed chests are clicked on, change to open chest and make coin appear nearby
When trying yo go through a door which is locked, show something to indicate this
Need to create some levels to represent the inside of buildings, which include a way to get out again
Allow collecting potions, shown on status bar
When potion of same colour as a bleeding villager is held, and we run into a villager, heal them
Blood colour determines potion colour needed to save villager
Now that levels can be created using Tiled, imported and drawn in the game, we need to design some test levels which can refined as game mechanics are refined. I'll go through how to do this to make things easier.
When over a sign post, put up the text which the sign post has on it until the character is moved away.
When the mouse cursor is being shown (non-touch), the mouse can be moved around the screen and could change shape when over a solid tile. Since the player character can't be moved onto a solid tile.
Detection of solid tiles can be done by checking if the gs.tiles[] array has a non-zero and non-empty value for the equivalent row, column position of where the cursor is.
The issolid() function within the pathfinder.js shows how to detect if a tile is solid at a given x, y position.
Something similar is needed in redraw() within main.js at the end of the function where the cursor is shown.
Note - it currently always draws tile 60, the target box, but could draw tile 61 when what's underneath is solid.
When stairs are clicked on, they act like doors and take you somewhere else
Game is completed when all treasure is collected and all villagers are not infected
The current used space out of the 13kb is 90% - most of this is taken up with the huge double spritesheet which includes tiles for both the village and dungeon sets of graphics.
So the next major task will be to cull it down to size by deciding what will actually be used in the game. This needs to be done before the maps are made otherwise the ids of the tiles/chars will all change and will require all the levels to be remade.
It would be good to at least halve the size of it. Perhaps just concentrate on the village sprites with the people from the dungeon set, then add a few ad-hoc ones as required and remove any duplicates.
Loose health when enemies touch you
For when the player collides with a non-solid space, i.e. one occupied by an object or another character, we need code to execute an action.
e.g.
pick up object
Detect when running portrait and display a fullscreen prompt to get the user to rotate their screen to landscape.
Once villagers die, they should go to church and disappear into a gravestone
The tileset has a cursor crosshair, use this when mouse it being moved around rather than showing actual mouse cursor
Make the player character bob up and down as they walk from side to side rather than gliding, to give a sense of walking
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.