Metadata-Version: 2.1
Name: if-dsl-gui-ai
Version: 0.1.2
Summary: For generating and playing IF games
Home-page: https://github.com/SimicAleksa/pythonProject
Author: Simic Aleksa
Author-email: aleksadsimic@gmail.com
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Environment :: GPU :: NVIDIA CUDA :: 11.8
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: accelerate ==0.21.0
Requires-Dist: Arpeggio ==2.0.2
Requires-Dist: certifi ==2023.7.22
Requires-Dist: charset-normalizer ==3.2.0
Requires-Dist: colorama ==0.4.6
Requires-Dist: diffusers ==0.19.0
Requires-Dist: filelock ==3.12.2
Requires-Dist: fsspec ==2023.6.0
Requires-Dist: huggingface-hub ==0.16.4
Requires-Dist: idna ==3.4
Requires-Dist: importlib-metadata ==6.8.0
Requires-Dist: Jinja2 ==3.1.2
Requires-Dist: MarkupSafe ==2.1.3
Requires-Dist: mpmath ==1.3.0
Requires-Dist: networkx ==3.1
Requires-Dist: numpy ==1.25.1
Requires-Dist: packaging ==23.1
Requires-Dist: Pillow ==10.0.0
Requires-Dist: psutil ==5.9.5
Requires-Dist: PyYAML ==6.0.1
Requires-Dist: regex ==2023.6.3
Requires-Dist: requests ==2.31.0
Requires-Dist: safetensors ==0.3.1
Requires-Dist: sympy ==1.12
Requires-Dist: textX ==3.1.1
Requires-Dist: tokenizers ==0.13.3
Requires-Dist: tqdm ==4.65.0
Requires-Dist: transformers ==4.31.0
Requires-Dist: typing-extensions ==4.7.1
Requires-Dist: urllib3 ==2.0.4
Requires-Dist: zipp ==3.16.2

# Jezik i alat za kreiranje IF (Interactive Fiction) igara sa grafickim korisnickim interfejsom uz dodatak generisanja slika na osnovu teksta

## Instaliranje
Pre same instalacije ovog alata, potrebno je instalirati PyTorch, koji je neophodan za rad sa modelima vestacke inteligencije. Možete ga instalirati pomocu sledece komande:
`pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118`

``` 
**Napomena**
Neophodno je posedovanje graficke kartice sa CUDA jezgrima  
```

Nakon toga takodje u konzoli pokrecete sledecu komandu:
`pip install if-dsl-gui-ai`


## Inicijalno postavljanje
1. Nakon instalacije, potrebno je da u root direktorijumu svog projekta kreirate direktorijum sa nazivom `if_dsl_gui_ai`.
2. U novokreiranom direktorijumu kreirati jos jedan sa nazivom `games`.  
  *(ostatak je opcionalan ukoliko želite da imate primer igre)*
3. U `games` folderu kreirajte novi folder sa nazivom `simpleGame.game`.
4. U `simpleGame.game` prekopirajte sledece stvari iz `venv/Lib/site-packages/if_dsl_gui_ai`:
    - Slike: `backyard.png`, `entryway.png`, `hallway.png`, `kitchen.png`
    - IF igru: `simpleGame.game`

## Uputstvo za pokretanje projekta
- Importujte `main` iz `if_dsl_gui_ai`.
- U vas kod dodajte `main.App()`.
- Pokrenite vasu aplikaciju.

## Kako i sta?
- Za pregled svih igara i izbor za igranje birate `Library`.
- Za kreiranje novih IF igrica, birate `CreateFiction`.
- Za igranje IF igre, idite u `Library`, izaberite igru, a zatim kliknite dugme `Play`.
- Za kreiranje slika za vasu IF igru, izaberite igru, zatim kliknite dugme `Picture creator`.
- Za pregled koda vase IF igre, idite u `Library`, izaberite igru, a zatim kliknite dugme `Load code`.

## Struktura projekta
- `gameFrame.py`: Ova datoteka sadrži kod koji upravlja grafickim interfejsom za igranje igrica.
- `gameInterpreter.py`: U ovom fajlu se kreiraju Python klase interpretiranjem informacija dobijenih parsiranjem igrica napisanih u `gameWorldDSL.tx`.
- `gui.py`: Ova datoteka sadrži kod za graficki interfejs koji se sastoji od pocetnog ekrana, dela za kreiranje IF, dela za
     ucitavanje koda igrica i izbora igara za igranje, kao i dela za kreiranje slika igre.
- `main.py`: Startni fajl.
- `pictureCreatorFrame.py`: GUI za kreiranje slika IF igre.
- `codeEditorFrame.py`: Code editor za pisanje IF igre.
- `simpleGame.game`: Ovo je primer jedne igre napisane u `gameWorldDSL.tx`-u.
- `gameWorldDSL.tx`: Ova datoteka sadrži opis Domain-Specific Language (DSL) kojim je moguce pisati igre.
- `dslClasses.py`: Ovaj fajl sadrži Python interpretaciju klasa definisanih u `gameWorldDSL.tx` formatu.

##Dodatno
- Za brzi rad aplikacije skinite [*Stable diffusion*](https://huggingface.co/runwayml/stable-diffusion-v1-5) sa sajta [*huggingface*](https://huggingface.co.)
- Zatim je potrebno da kreirate novu *Environment variable*-u sa nazivom `SDV5_MODEL_PATH` i vrednoscu koja predstavlja putanju do *Stable diffusion*-a na vasem racunaru
