Giter Site home page Giter Site logo

sebe324 / retro-game Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 3.0 37.06 MB

a 2d game made in SFML and c++

License: MIT License

C++ 94.47% C 1.25% CMake 4.28%
2d cpp fantasy game-dev sfml sfml-game procedular-generation contributions-welcome good-first-issue

retro-game's Introduction

retro-game

This is a 2d game made in C++ and SFML with a kind of retro aesthetic.

Version alpha 0.3.0 short preview

preview.1.mp4

Description

The player controls a hero, that fights monsters in a procedurally generated world.

Enemies can spawn in different biomes.

All enemies have their own properties. Some will attack on sight, others will run away or be neutral. There are also different monster types with their own properties.

A few monsters will fight until their last hp point, while some others are going to escape if low on hp.

There are numerous classes to choose from and each has unique abilities.

Project Status

W.I.P

Building from source

Using command line

  1. Install SFML from their original website: https://www.sfml-dev.org/download.php
  2. In CMakeLists.txt set the SFML_LOCATION to your sfml download location
  3. Use the following commands in the command line: cmake . cmake --build .
  4. Move SFML dynamic link libraries from the SFML_LOCATION/bin to the folder with the executable in the project directory.
  5. Just click the app icon. It should work now.

Using an IDE

  1. Install SFML from their original website: https://www.sfml-dev.org/download.php
  2. Configure it with your IDE. Here are some tutorials: https://www.sfml-dev.org/tutorials/2.5/
  3. Create a new project and add the source files into the project.
  4. Copy the sfml dlls (window, graphics and system) where the executable is located.
  5. Run the game.

Installation

  1. Install the release from the "releases" tab.
  2. Unzip the package
  3. Run the executable

Contributing

If anyone wants to help feel free to fork, add some things and contribute.

You can also start an issue and leave feedback.

There is a lot of things to do:

  • Making the code more readable
  • Documentation
  • GUI changes
  • More gameplay mechanics (abilities, special effects, obstacles, etc)
  • Sound
  • A duel gamemode
  • Ranged attacks
  • Player Inventory
  • Language
  • And much more

License

MIT

retro-game's People

Contributors

mvoorhes avatar rodrigocastroandrade avatar sebe324 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

retro-game's Issues

Add an option to show the map and ui in the settings

Is your feature request related to a problem? Please describe.
A player has no way to disable the minimap or the user interface.

Describe the solution you'd like
Few togglable buttons in the settings menu.

[BUG] - game crashes after going back to menu and starting again

Describe the bug
Game crashes after going back to menu and starting again
Vector out of range
How to recreate

Step by step guide how to recreate the bug

  • Start the game and create a new world
  • Go back to main menu
  • Start a new game again
  • After playing for some time the game crashes
    Additional Information
Zrzut ekranu 2023-09-12 115229

Add some additional information - OS, Game version etc.

Game over screen

When player's hp goes down to 0 nothing happens.

A "game over screen" should appear similar to those in other video games.

Quick sketch:

image

Disable exit using X

When pressing X in the top right corner the game should be paused instead of closing immediately.

Dark knight ability 3 should drain mana every tick.

Is your feature request related to a problem? Please describe.
Ability 3 - the bat transform is a little over powered, because u can stay as a bat forever.

Describe the solution you'd like
It should drain some mana every second.
If the player doesn't have enough mana, they turn back into human form

World generation revamp

The world is kinda boring in this game. Currently there are only few biomes and they are all plain and simple.

** Tiled map **

I would like to add textured tiles to the world. It would add more variety to the game.
Each tile can have different movement modifiers or other parameters.

** Biome blend **

Tiles near biomes' borders will blend together to make a smooth transition.

** Rivers and water **

** Props **

Different static plants / rocks / etc

Good First Issue - Add an icon to the game

Short Description

After opening the game has the default executable icon.
The icon could be a small pixel art or just a cropped screenshot from the game.
In main.cpp use the setIcon() method on the window object.

[BUG] - world border

There is no problem right now with crossing the world border.

For now an invisible wall should stop the player from doing so.
Also monsters aren't allowed to spawn outside of the world.

Maybe later a more creative implementation of a world border will be added.

How to recreate
Start the game
Go to any world edge

image

Change name to something cool

Currently this project is called "The Game". I'm bad with creating names so maybe someone else can

Change title of sf::RenderWindow window (in main.cpp line 12) and string of logo (in Menu.cpp line 18) to something cool.

[BUG] - Giant's attack

If player stands near a giant, the rock he throws sometimes doesn't push back the player.

How to recreate

  1. Start game.
  2. Find a plains biome.
  3. Aggro a giant enemy, while being very close.
  4. Rock projectile sometimes doesn't affect the player.

Saving and loading games

The player has no way to save any progress made in the game.
A system should be added that allows the player to pick any save and load it.
For now the save has to contain player's statistics, cooldowns and nearby monsters.

Add multithreading

This game runs only on one thread. On older cpu's it can be slow despite small size.

The particle system, gui, game loop, world generation, etc could run on separate threads.

Add inventory system

The player has no way to see their stats except for level.

After pressing some key, an inventory should be visible. It should contain inventory slots and player statistics like hp, damage, attack speed, etc.

quick sketch:
image

Fix archer teleport on dash

After using dash ability on archer class, the player almost teleports.

This ability should have a limited range.

Semi-transparent overlay for submenu

Is your feature request related to a problem? Please describe.
Pausing the game opens the submenu which works fine, but it would look better if the game was darkened so the buttons stand out more. Same with the game over screen.

Describe the solution you'd like
A transparent overlay should be added to the submenu class which renders before the buttons.

[BUG] - changing settings from submenu

Describe the bug
Changing settings while in-game doesn't actually do anything

How to recreate

  1. Start the game
  2. Press ESC
  3. Click the settings button
  4. Change options to arrows
  5. The player still moves using WASD keys.

Additional Information
OS: Windows 10

Add documentation

This project has no documentation at all.
If it continues to grow, it needs to have one.

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.