All Projects → Pokemon-PythonRed → Pokemon-PythonRed

Pokemon-PythonRed / Pokemon-PythonRed

Licence: MIT license
[WIP] A fan-made, text-adventure Pokémon game in Python 3. If you want to Fork it, leave feedback too!

Programming Languages

python
139335 projects - #7 most used programming language
Batchfile
5799 projects

Projects that are alternatives of or similar to Pokemon-PythonRed

gracidea
🌺 A Pokémon 2D live map gathering all regions, including wandering pokémons and characters and animated tiles!
Stars: ✭ 163 (+307.5%)
Mutual labels:  pokemon
Pokedex
Pokedex is a robust Discord bot that mimics the iconic Pokedex from the Pokemon games and show. It's loaded with features to help players of all skill levels to learn and better enjoy Pokemon! The goal of Pokedex is to provide users with as much data about the Pokemon games as they desire conveniently and with minimal effort.
Stars: ✭ 18 (-55%)
Mutual labels:  pokemon
whosthatpokemon
A simple HTML5 game that generates silhouettes from images and gets the user to guess the name of the Pokémon shown.
Stars: ✭ 53 (+32.5%)
Mutual labels:  pokemon
ps
Modular Pokémon Showdown
Stars: ✭ 38 (-5%)
Mutual labels:  pokemon
pokeai
Develop ultimate AI Pokémon trainer
Stars: ✭ 18 (-55%)
Mutual labels:  pokemon
faker-pokemon
A Faker provider that generates fake pokemon data for you! 🍬
Stars: ✭ 14 (-65%)
Mutual labels:  pokemon
graphql-pokemon
Extensive Pokémon GraphQL API
Stars: ✭ 81 (+102.5%)
Mutual labels:  pokemon
PokeBall-SelfBot-Poketwo-Autocatcher
This specific selfbot was designed to automatically catch pokemon spawned on Discord by Poketwo bot. It also offers other utility functions to automate features like trading, releasing, id search, etc. Currently the autocatcher is powered by AI making it possible to autocatch pokemons on multiple bots like PokeTwo, PokeRealm, etc.
Stars: ✭ 306 (+665%)
Mutual labels:  pokemon
react-reactions
😲 Create custom reaction pickers and counters or use your favorites!
Stars: ✭ 34 (-15%)
Mutual labels:  pokemon
intellij-pokemon-progress
A Pokémon themed progress bar for IntelliJ IDEA.
Stars: ✭ 70 (+75%)
Mutual labels:  pokemon
PogoMap
PoGo Map using React Native
Stars: ✭ 59 (+47.5%)
Mutual labels:  pokemon
palettetown
Pokemon themed colour schemes for R.
Stars: ✭ 56 (+40%)
Mutual labels:  pokemon
Poke-Pi-Dex
Our deep learning for computer vision related project for nostalgic poke weebs (Sistemi digitali, Unibo).
Stars: ✭ 18 (-55%)
Mutual labels:  pokemon
Pokebot
Pokémon for Discord
Stars: ✭ 15 (-62.5%)
Mutual labels:  pokemon
react-pokedex
A Pokedex built using React.js
Stars: ✭ 17 (-57.5%)
Mutual labels:  pokemon
mkm-sdk
Python SDK for Magickartenmarkt API
Stars: ✭ 33 (-17.5%)
Mutual labels:  pokemon
Pokedex
Pokedex developed with React Native, consuming the public API "Pokeapi".
Stars: ✭ 18 (-55%)
Mutual labels:  pokemon
pokemon-random
API & NPM Module To Express Random Pokemon
Stars: ✭ 47 (+17.5%)
Mutual labels:  pokemon
api.pokedextracker.com
API for pokedextracker.com
Stars: ✭ 38 (-5%)
Mutual labels:  pokemon
liferay-pokemon-item-selector
Code for Liferay's /dev/24 talk
Stars: ✭ 13 (-67.5%)
Mutual labels:  pokemon

Pokémon

PythonRed Version


Project Status Updates

Summary & Important Notes

  • This is a game written in Python 3 and based on the Pokémon Red game. However, it is not intended to be a perfect recreation; think of it as a remix.
  • Prior in-depth knowledge of the Pokémon franchise, especially the video game series, is recommended and may be required to fully enjoy this game.
  • This project (@Pokemon-PythonRed and anything found within) is not endorsed by Nintendo, GAME FREAK, Creatures Inc., or The Pokémon Company. This is an independent, fan-made game.
  • This game's plot is a work of fiction! Any references to real people or events are completely coincidental.
  • Pokémon PythonRed is a work-in-progress and is intended to be a long-term project. The owners feel no rush to meet community deadlines or expectations. Please be considerate.
  • Any problems with the game can be reported in Issues.

Community

If you or someone else has been offended or treated poorly by a member of our community, please submit a complaint.

For report options, please see the Enforcement section of the Code of Conduct.


References

For more information on various topics regarding this project, please visit the following links:


Contributors

This project follows the all-contributors specification (emoji key, command Issue). See what you can do to contribute.


All Contributors

📖

Dependabot

🚇

Don Jayamanne

🔧

GitHub Actions

💻 📖 🚇 ⚠️

I'm special ;)

⚠️

Ikuto Tsukiyomi

🎨 🤔

Joe

⚠️

JohnnySD

💻 🔣 🤔 🚧 📦 ⚠️

Jérémy LARDENOIS

💻 🧑‍🏫 📦 ⚠️

Microsoft

💻 🔌 🔧

Mihai Ionut Vilcu

🔧

Nando Vieira

🔧

Nils Werner

🔧

Porsce <3

🎨

Ravanger_101

💻 ⚠️

Richard St Germaine

⚠️

Sam

⚠️

Shan Khan

🔌 🔧

Sourcery

💻

Trunk

💻 🔧

Val=fλ

💻 🎨 🤔 🚧 ⚠️

Valerie

🎨

WeiJian Chen

🔌

basedpainnn

⚠️

hacking-mudkip

🔣 🤔

just a weeb

💻 🚇 🧑‍🏫 ⚠️

Installation

Startup

  • To play the game, you will need:
    • Windows or Linux OS
    • Python 3 (aka CPython 3.x)
  • Follow this link to download a .zip file of this repository. Once it downloads, unzip and open it.
  • You will need to open a command line in the folder, then run the following command to install dependencies:
python -m pip install -r requirements.txt
  • Finally, open main.py in the app folder.

  • If you encounter any problems when opening the game, feel free to create an Issue.

Controls

  • When > is shown, press Enter to continue. You may need to input text first.
  • When text bullets are shown, you need to enter the character next to the option you choose.
  • In the overworld, navigation bullets are WASD for directional movement, then numbered for interactions. Other commands might also be available.
  • When Y/N is shown, you can enter y or n for Yes or No respectively.
  • When reading through next normally, you can press any key to proceed.

Examples

No text needed, just press Enter:

Press Enter to continue.

>_

Enter text from a bullet point:

Choose an option.

[1] - Save
[2] - Quit

>_

Enter Yes or No:

Would you like to save? Y/N

>_

Press any key:

OAK: Hello there! Welcome to the world of POKéMON!
_

Extras

Here's some extra information that isn't required to play the game, but might still be interesting.

Technicalities

Technicalities

Since this is a Python game, some elements will have to be changed from the original version. Here are some examples of challenging changes.

Save data and saving

The game has to keep track of the many variables that make up a Save File. These include:

  • Trainer info
  • Party / Box info
  • If a place has been visited, for Fly locations (each city separately)
  • If cutscenes have been triggered
  • Event flags
  • Pokédex
  • Game mechanic settings for accessibility

These are stored in a Python dictionary variable, which is then saved to the external file save.json via Python's json module.

Game data

Not to be confused with save data, game data is composed of the numbers and calculations that the game uses. These include:

  • Pokémon info
  • Trainer battle info
  • Save file templates

Large sets of data may be stored as .json files in the project folder. This is done to keep the program files concise. These files may be added, removed, or changed at any time.

Save file templates contain all the things the game must keep track of between sessions. On each save or load, the player's file is automatically updated with the latest data, in case an update was performed. This means that when the game is updated, the player can copy their save.json file into the new version, and the save file will automatically be updated with the latest data.

Menus

Pokémon Red is full of menus that look like the following:

Would you like to save your progress?
> Save
 Don't Save

This has been changed to be more suitable for a text-adventure game:

Would you like to save your progress? Y/N

>_

This is done with code similar to the following:

import json
save = {
  # Save Data
}
print('Would you like to save your progress? Y/N\n')
  saveOption = ' '
  while saveOption.lower()[0] not in ['y', 'n']:
    saveOption = input('>') + ' '
  if saveOption.lower()[0] in ['y']:
    open(os.path.join(sys.path[0], 'save.json'), 'w').write(
      json.dumps(save, indent=4, sort_keys=True)
    )
    print('\nGame saved successfully!')

Save management

The user can use multiple save files by moving or backing up their save.json file to a different directory on their device. This has been implemented in the interest of user-friendliness and safety. Save files can easily be backed up, reset, or shared.


Mystery Gifts

Mystery Gifts

Pokémon games use Mystery Gifts to bring communities together and incentivise players to take part in events, and Pokémon PythonRed is no different. Codes can be given out in planned giveaway events to specific people, left online to be found by anyone, or even given in-person to specific people. Most of them are online, so you should try looking in places @TurnipGuy30 has been.

Technical information

As of the time of writing, Mystery Gifts have not yet been implemented into the game. The base game will have to be completed first. For now, keep track of any codes you find.

Formatting

Pokémon PythonRed Mystery Gift codes are easy to identify because they will always be given in the following format:

Pokémon PythonRed Mystery Gift #20: "POKEMONPYTHONRED"

(Yes, this is a valid code. Consider it a free trial. You're welcome.)

Possible rewards

Redeemed codes will reward a player with in-game items or Pokémon.

Recipient responsibilities

Any person or group who finds or receives a code has no responsibility to keep it to themselves unless otherwise stated by the giver of the code.

Summary

Mystery Gifts are meant to unite the community and provide a fun way to interact with the game.


Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].