Skip to content

Commit

Permalink
Merge pull request #199 from arnauddupuis/release-1.3.0-readmes-update
Browse files Browse the repository at this point in the history
Update README for release.
  • Loading branch information
arnauddupuis committed Oct 16, 2022
2 parents 7a877c7 + 1017c8d commit e93024f
Show file tree
Hide file tree
Showing 10 changed files with 33 additions and 48 deletions.
8 changes: 4 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ First off, thank you for considering contributing to the pygamelib. We all reall

Before we start, here are some valuable resources:
- [Read The Docs](https://pygamelib.readthedocs.io/en/latest/index.html)
- [Github](https://github.com/arnauddupuis/pygamelib)
- [Github](https://github.com/pygamelib/pygamelib)

These guidelines are heavily insprired by https://github.com/nayafia/contributing-template/blob/master/CONTRIBUTING-template.md thanks a lot to them.

Expand All @@ -25,7 +25,7 @@ We are always happy to receive contrbutions. There is a lot of area to contribut
# Ground Rules
### Code of conduct and guidelines

First of all, we expect everyone (contributors and maintainers alike) to respect the [Code of conduct](https://github.com/arnauddupuis/pygamelib/blob/master/CODE_OF_CONDUCT.md).
First of all, we expect everyone (contributors and maintainers alike) to respect the [Code of conduct](https://github.com/pygamelib/pygamelib/blob/master/CODE_OF_CONDUCT.md).
It is not a recomandation, it is mandatory.

For all contributions, please respect the following guidelines:
Expand All @@ -35,7 +35,7 @@ For all contributions, please respect the following guidelines:
* Do not add unnecessary dependencies.
* Remember: the pygamelib is supposed to require only python3, colorama and a terminal to run. Anything more needs to be discussed. Any dependency to a specific platform or OS will be refused.
* Be aware that the pull request review process is not immediate, and is generally proportional to the size of the pull request.
* Please, check the [pull request checklist](https://github.com/arnauddupuis/pygamelib/blob/master/PULL_REQUEST_REVIEW_CHECKLIST.md) before submitting your PR.
* Please, check the [pull request checklist](https://github.com/pygamelib/pygamelib/blob/master/PULL_REQUEST_REVIEW_CHECKLIST.md) before submitting your PR.

# Your First Contribution

Expand Down Expand Up @@ -63,7 +63,7 @@ Here is a good tutorial on rebasing: https://benmarshall.me/git-rebase/.
The general process to submit a contribution is as follow:
1. Create your own fork of the code
2. Do the changes in your fork
3. Make sure you went through the [pull request checklist](https://github.com/arnauddupuis/pygamelib/blob/master/PULL_REQUEST_REVIEW_CHECKLIST.md)
3. Make sure you went through the [pull request checklist](https://github.com/pygamelib/pygamelib/blob/master/PULL_REQUEST_REVIEW_CHECKLIST.md)
4. Submit a pull request that respects the PR template.

# How to add issues
Expand Down
26 changes: 7 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@
[![codecov](https://codecov.io/gh/arnauddupuis/pygamelib/branch/master/graph/badge.svg)](https://codecov.io/gh/arnauddupuis/pygamelib)

<p align="center">
<img src="https://raw.githubusercontent.com/arnauddupuis/pygamelib/master/images/pygamelib-logo.png">
<img src="https://raw.githubusercontent.com/pygamelib/pygamelib/master/images/pygamelib-logo.png">
</p>

# pygamelib
A (not so) small library for terminal based game development.

## Preemptive warning

Between version 1.1.1 and 1.2.0 the library was renamed from hac-game-lib to pygamelib and reworked to its core. So even though all the objects remains API compatible across versions, there is a bit of renaming to do in the imports.
Version updates always bare the possibility of bringing some breaking changes together with new features and improvements. We try to limit these but when they do occur they are documented [on the wiki]([/wiki#migration-notes](https://github.com/pygamelib/pygamelib/wiki#migration-notes)).

## Introduction

Expand All @@ -30,27 +30,15 @@ However, it can now be used by aspiring game developers for an introduction to 2

There is a [Youtube channel](https://www.youtube.com/channel/UCT_SxIlKaD6MM7JlQKelpgw) that (will) contains tutorials.

![suparex.py screenshot](https://raw.githubusercontent.com/arnauddupuis/pygamelib/master/images/Screenshot_Suparex.png "suparex.py")
Here is a quick view of what can currently be achieved with that library:

Here is a quick view of what can currently be achieved with that library (base_game haven't been updated for a long time):
[![Watch the video](https://img.youtube.com/vi/9l18dhJ-kJE/hqdefault.jpg)](https://youtu.be/9l18dhJ-kJE)

![base_game.py animation](https://raw.githubusercontent.com/arnauddupuis/pygamelib/master/images/base_game.gif "base_game.py")
Have a look at the [examples/](examples/suparex/) directory to see how most of these games have been done!

The base game makes use of:
* The main "game engine" (pygamelib.engine.Game)
* Many different types of structures (from pygamelib.board_items): Wall (well the walls...), Treasure (gems and money bag), GenericStructure (trees) and GenericActionnableStructure (hearts and portals)
* Game()'s menu capabilities.
* Player and NPC (from pygamelib.board_items)
* Inventory (from pygamelib.engine.Inventory)
* Player and Inventory stats
* RandomActuator (NPCs in level 2) and PathActuator (NPCs in level 1) (from pygamelib.actuators.SimpleActuators)
If you want a quick peak at the new features in the most recent version, have a look at this:

For more up to date examples, have a look at:
* [examples/suparex/](examples/suparex/) a platform game with procedural level generation
* [examples/tutorials/03-game-design/](examples/tutorials/03-game-design/) for a more "dungeon-y" turn by turn experience.

Here is a poorly done gif of Suparex:
![Suparex animation](https://raw.githubusercontent.com/arnauddupuis/pygamelib/master/images/suparex-720.gif "suparex.py")
[![Watch the video](https://img.youtube.com/vi/AyzSMH5msU4/hqdefault.jpg)](https://youtu.be/AyzSMH5msU4)

## Strong points

Expand Down
2 changes: 1 addition & 1 deletion docs/source/gfx_particles.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Here is a video example:
<iframe width="560" height="315" src="https://www.youtube.com/embed/KnBOzVpapNY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

This is the benchmark of the particle system, the code is available on
`Ghithub <https://github.com/arnauddupuis/pygamelib/tree/master/examples/benchmark-particle-system>`_.
`Ghithub <https://github.com/pygamelib/pygamelib/tree/master/examples/benchmark-particle-system>`_.

.. important:: Like the UI module, the particles system works exclusively with the
screen buffer system (place, delete, render, update, etc.).
Expand Down
2 changes: 1 addition & 1 deletion docs/source/history.rst
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ Emergency release: fix a regression introduced by v1.2.2.
------------------

* Renamed the entire library from hac-game-lib to pygamelib.
* ***Breaking change:*** The library has been heavily refactored and this creates some issues. Please have a look at `the migration notes <https://github.com/arnauddupuis/pygamelib/wiki/Migrating-from-hac%E2%80%90game%E2%80%90lib-1.1.x-to-pygamelib-1.2.0>`_
* ***Breaking change:*** The library has been heavily refactored and this creates some issues. Please have a look at `the migration notes <https://github.com/pygamelib/pygamelib/wiki/Migrating-from-hac%E2%80%90game%E2%80%90lib-1.1.x-to-pygamelib-1.2.0>`_
* **New feature:** Items that can be represented on more than one cell. We call them complex items. There's a lot of new complex items: ComplexPlayer and ComplexNPC of course, but also ComplexWall, ComplexDoor, ComplexTreasure and the general purpose Tile object.
* **New feature:** Going, with complex item we now have a proper sprite system with the gfx.core.Sprite class.
* **New feature:** In addition to the regular model we now have a new concept: the Sprixel. A Sprite is made of many Sprixels.
Expand Down
21 changes: 9 additions & 12 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,25 +37,22 @@ More advanced game will use the :ref:`gfx_ui-module` module to create terminal u

Here is an example of what the current version allow to build:

.. image:: https://raw.githubusercontent.com/arnauddupuis/pygamelib/master/images/suparex-720.gif
.. raw:: html

The `suparex <https://github.com/arnauddupuis/pygamelib/tree/master/examples/suparex>`_ game makes use of:
* The main game engine (pygamelib.engine.Game)
* Procedurally generated boards (pygamelib.engine.Board).
* Many different types of structures (from pygamelib.board_items), like:
<iframe width="560" height="315" src="https://www.youtube.com/embed/9l18dhJ-kJE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

And a quick peak at the new features in the most recent version:

.. raw:: html

<iframe width="560" height="315" src="https://www.youtube.com/embed/AyzSMH5msU4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

* Wall (well the walls...),
* GenericActionnableStructure (hearts and portals).
* Game()'s menu capabilities.
* Projectiles (the tree shooter, bolts and bombs)
* Player and NPC (from pygamelib.board_items)
* Player stats

Tutorials
^^^^^^^^^

Most tutorials to teach you how to use the library to build games are (or will be) on the
`wiki <https://github.com/arnauddupuis/pygamelib/wiki>`_.
`wiki <https://github.com/pygamelib/pygamelib/wiki>`_.

Tutorials that teach you how to expand the library are (or will be) centralized here.

Expand Down
2 changes: 1 addition & 1 deletion pgl-sprite-editor.py
Original file line number Diff line number Diff line change
Expand Up @@ -1674,7 +1674,7 @@ def update_screen(g: engine.Game, inkey, dt: float):
base.Text(
"The sprite editor is under heavy development and is not production ready."
"If you find bugs or have feature requests please go to "
"https://github.com/arnauddupuis/pygamelib/issues",
"https://github.com/pygamelib/pygamelib/issues",
core.Color(0, 150, 255),
style=constants.BOLD,
)
Expand Down
6 changes: 3 additions & 3 deletions pygamelib/board_items.py
Original file line number Diff line number Diff line change
Expand Up @@ -1740,7 +1740,7 @@ class Actionable(Immovable):
for more details.
.. important:: There's a complete tutorial about Actionable items on the pygamelib
`wiki <https://github.com/arnauddupuis/pygamelib/wiki/Actionable-Items>`_
`wiki <https://github.com/pygamelib/pygamelib/wiki/Actionable-Items>`_
"""

def __init__(self, action=None, action_parameters=None, perm=None, **kwargs):
Expand Down Expand Up @@ -2595,7 +2595,7 @@ class GenericActionableStructure(GenericStructure, Actionable):
:class:`~pygamelib.board_items.Actionable` for more information.
.. important:: There's a complete tutorial about Actionable items on the pygamelib
`wiki <https://github.com/arnauddupuis/pygamelib/wiki/Actionable-Items>`_
`wiki <https://github.com/pygamelib/pygamelib/wiki/Actionable-Items>`_
"""

def __init__(self, **kwargs):
Expand Down Expand Up @@ -2954,7 +2954,7 @@ class ActionableTile(Actionable, Tile):
player collide with the object.
.. important:: There's a complete tutorial about Actionable items on the pygamelib
`wiki <https://github.com/arnauddupuis/pygamelib/wiki/Actionable-Items>`_
`wiki <https://github.com/pygamelib/pygamelib/wiki/Actionable-Items>`_
"""

def __init__(self, **kwargs):
Expand Down
4 changes: 2 additions & 2 deletions pygamelib/engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class Board(base.PglBaseObject):
If you want a detailed introduction to the Board object, go the the pygamelib wiki
and read the "`Getting started: the Board
<https://github.com/arnauddupuis/pygamelib/wiki/Getting-started-Board>`_" article.
<https://github.com/pygamelib/pygamelib/wiki/Getting-started-Board>`_" article.
.. role:: boldblue
.. role:: blue
Expand All @@ -79,7 +79,7 @@ class Board(base.PglBaseObject):
managed to expand and shrink on demand (or on a need basis). You can use the
layer system to add some depth to your game but you should be warned that you may
experience some issues. If it is the case please report them on the
`Github issues page <https://github.com/arnauddupuis/pygamelib/issues>`_.
`Github issues page <https://github.com/pygamelib/pygamelib/issues>`_.
For existing code, the entire Board object behaves exactly like in version 1.2.x.
"""
Expand Down
2 changes: 1 addition & 1 deletion pygamelib/gfx/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -513,7 +513,7 @@ def from_ansi(string, model="▄"):
.. warning:: This has mainly be tested with ANSI string generated by climage.
If you find any issue, please
`report it <https://github.com/arnauddupuis/pygamelib/issues>`_
`report it <https://github.com/pygamelib/pygamelib/issues>`_
"""
new_sprixel = Sprixel()
if "[48;" in string and "[38;" in string and model in string:
Expand Down
8 changes: 4 additions & 4 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,11 @@
],
project_urls={
"Documentation": "https://pygamelib.readthedocs.io/en/latest/index.html", # noqa: E501
"Source": "https://github.com/arnauddupuis/pygamelib",
"Tracker": "https://github.com/arnauddupuis/pygamelib/issues",
"Wiki": "https://github.com/arnauddupuis/pygamelib/wiki",
"Source": "https://github.com/pygamelib/pygamelib",
"Tracker": "https://github.com/pygamelib/pygamelib/issues",
"Wiki": "https://github.com/pygamelib/pygamelib/wiki",
"Tech blog": "https://8bitscoding.io/",
"Release Notes": "https://8bitscoding.io/2020/08/30/pygamelib-v1-2-0-release-notes/", # noqa: E501
# "Release Notes": "https://8bitscoding.io/2020/08/30/pygamelib-v1-2-0-release-notes/", # noqa: E501
},
python_requires=">=3.6",
)

0 comments on commit e93024f

Please sign in to comment.