Code Monkey home page Code Monkey logo

game-jam-2020's Introduction

Hey there, I'm Dennis ๐Ÿ‘‹

I'm very passionate about software engineering and Kubernetes, striving to learn more everyday.

  • Lots of experience in Python , Rust , and TypeScript .
  • Kubernetes and Cloud Native Enthusiast
  • Platform Engineer @ Rolls-Royce
  • Unrelated, but I also love playing guitar ๐ŸŽธ

Learn more about me on my website.

Website Discord Email LinkedIn


game-jam-2020's People

Contributors

albertopoljak avatar den4200 avatar f4zii avatar kosayoda avatar lemonsaurus avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

albertopoljak

game-jam-2020's Issues

Last hearth doesn't work

Neither is it restored nor is it properly deducted (it just goes from 3 full to 2 full skiping one step of half)

Add potions

Simple idea:
Randomized spawn same as enemies.
On pickup they restore ability cooldown so it's faster to use abilties.

Some can restore certain ammount of HP/mana?

Diagonal Movement is buggy

Description

When sticking to 2 tiles and trying to move diagonal the movement is buggy and throwing you backwards.

Solutions

The solution I thought about was to make the player sliding, so he can slide on a wall while moving to it.

Global sound manager

We need a way for it to be global, in form of import maybe.

That way we can easily import it and add sounds and deal with slowmode/volume tinkering and additional things instead of passing references around.

Implement melee weapon

Currently the class exists but is a placeholder.

Not sure how would it visually be represented, maybe "throw" some semy transparent sprite (air/dash) in the direction but with very short range.

Charged laser not working

Something got broken with previous commits...
If it's charged to the max it's lifetime is too short and dissapears right away...

Add readme

Basic explanation on how to setup/run

Description of the game and abilities (see #19 can use text from there).
Should have image of the game.
For copyright should link to attribution.txt

Slowdown works for everything except sound

Some method of SoundManager should be activated on slowdonw that would decrease the volume of all playing sounds, then after slowdown method that restores the volume should be called.

Death event

What happens when the player dies.
Easily to implement new level but maybe show text screen or smth.

Core Game Idea

Description

We need a core game idea. We've come up with many different ideas, but haven't really discussed or formally agreed on any of them. However currently, we have an incredibly good base game.

Current Game Implementation

The player has 3 different wizards to pick from: red, green, or blue. Each colored wizard has their own special abilities.

Color Description Attack Multiplier (/\) Speed Multiplier (/\) Resistance (/\) Dexterity (\/) Special Ability
Red Strong and powerful, destroying all who dare defy him. 1.5 1.1 0.1 0.6 A floor smash, killing everything within a 5 block radius.
Green Built like a tank and as strong as a brick, this wizard can take a punch. 1.1 1 0.5 0.75 Invincibility and regeneration for 8 seconds (40hp/sec).
Blue Quick and fast, speeding through enemy ranks. 1 1.5 0 0.5 Flash time - Moving so fast that everything else appears slow.

Note: ( /\ ) means a higher value is better and ( \/ ) means a lower value is better

When hovering over a card to select a specific colored wizard, the game slows down time, making everything move in slow motion.

The player can move around the map by clicking on a tile. The wizard will then use A* pathfinding to figure out its way over to the player's selected destination.

The map is generated using cellular automata through several generations. The map consists of three things, The flooring, walls, and spikes. The spikes periodically extend up out of the ground, and if the player is on top of them, they will be damaged.

The player and some specific enemies are able to shoot laser projectiles at each other, causing damage to the one entity hit. Currently, we have two enemies: The chasing demons and stationary imps. The chasing demons will chase the player if within range, and use melee attacks. On the other hand, stationary imps will not chase the player. Instead, they will sit still and fire lasers when the player is within range.

I think that's about it for our current game implementation.

Figure Out the Core Design & End Goal

What will our core design and end goal be for this game? Will the game's idea be centered around "survive as long as you can"? Or will it be more like a strategic puzzle game, solving levels and fighting enemies along the way? This game could branch off into so many directions, as it is in a very flexible stage. We need to nail down our idea and final goal.

Some Ideas

  • Have the game be "survive as long as you can" with multiple waves of enemies spawning in. There could possibly be power-up items to pick up and use, boosting the player's abilities in some way. In the end, when the player dies, the score will be uploaded to a server to be added into a leader board.
    • Extending on this idea, we can have multiplayer games where 2 or more players can work together to survive the longest. When the players both die, the score will be saved into a different leader board than singleplayer.
    • Extending on this idea even further, we can have multiplayer games where 2 or more players can battle each other, in a free-for-all.

Conclusion

We need ideas and we need to agree on one! Discuss below.

MovingSprite movement is inaccurate

When a sprite inherits this class and uses the move_to function, the sprite does not end up exactly where the destination was set. This needs to be fixed.

Better sound asset declaration.

Currently it's declared as class atribbutes.
Maybe it should be enums similar to enemies, but with value being tuple of tuples or smth

Hit throwback does not work if sprite is moving

This could be for the better as if it was working:

Higher chances of player being pushed into wall, need to refine custom engine
Enemies do not have collision check, need to refine custom engine for them (thus we can shoot them and push them trough walls)

For sprites that don't move (the moving sprites that are idle and not chasing) the throwback works.

Card menu "cheat"

Description

When the player is in trouble, he can just open the cards menu and relax, think about what he should do for a while, i think this is not optimal and we should have some sort of uptime for the cards menu.

Alternatives for pausing

What we should probably do for pausing is a simple menu to pause the game, but the menu will hide or blur the game.

Implement traps class

Similar polymorphism as enemies but completely new thing.
For the being just a simple spike trap that periodically extends spikes is good enough.

Should be modular so we can make a trap spike that extends spikes only when player is close/on i etc.

Main Menu

We need at least some kind of basic menu, even if it just has the play button.

Feedback for powerups

Player can activate powerup but he can't know what is the current cooldown.

There should also be a sound or effect upon ability activation. (and deactivation?)

Remove current throwback implementation

It is dropped, too much work and it tends to be very buggy.
Current implementation is also buggy, since there is no collision for enemies it can push enemies off screen and trough walls.

If it's not gonna be implemented then a simple collision check for wall hit needs to be performed after pushback that will just reset enemy change_x, change_y to 0 AND move them to nearest passable tile (if we don't move them we can spam them into wall.)

Mouse / Cursor add-ons

Add animation to mouse click / hover

Can be the color of the current character and the cursors will be switched according to the current player state :

  • Attacking - Ranged
  • Attacking - Melee
  • Selecting / Collecting
  • Moving? / Hovering on collidables

good assets - https://kenney.nl/assets/crosshair-pack

Huge lags for unknown reasons.

Set map seed to 3, you will see that it is not due to tons of enemies around you.

It is slighly noticable when you set the seed to 6 and move left.

It is completelly recreatable with seed 13 when you move left.

My bet is that this is due to pathfinding.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.