# GameDev_RoughRogue

# RoughVoyageCrawl

For The Game Jam. "RoughReadyRougish": [https://itch.io/jam/megamitts-mega-jam-18](https://itch.io/jam/megamitts-mega-jam-18), **RoughVoyageCrawl** uses *Python* to generate the terrain in tandem with *Puzzlescript* to make the game/interaction.

A Dungeon Crawler that is rough around the edges and has some randomness added. Can you find the Way Out? Can you find the Way In?

## Game

[https://illestpreacha.itch.io/roughvoyagecrawl](https://illestpreacha.itch.io/roughvoyagecrawl)

## Code

### Python Randomizers that help build the terrain

```python
#grid
import random as rd

def symbolize2():

    seq = ['#',".","O","*",".",".",".","#"]

    for i in range(12):

        seqAudio = rd.choices(seq, k=15)

        if i % 4 == 0:
            seqAudio1 = ''.join(seqAudio[0:rd.randrange(15,16)]) #sublist
        elif i % 3 == 0:
            seqAudio1 = ''.join(seqAudio[0:rd.randrange(15,16)]) #sublist
        else:
            seqAudio1 = ''.join(seqAudio[0:rd.randrange(15,16)]) #sublist


        print(seqAudio1)
        
symbolize2()


```

```python
#grid
import random as rd

def symbolize2():

    seq = ['#',".","O","*",".",".",".","#"]

    for i in range(12):

        seqAudio = rd.choices(seq, k=12)

        if i % 4 == 0:
            seqAudio1 = ''.join(seqAudio[0:rd.randrange(6,7)]) #sublist
        elif i % 3 == 0:
            seqAudio1 = ''.join(seqAudio[0:rd.randrange(6,7)]) #sublist
        else:
            seqAudio1 = ''.join(seqAudio[0:rd.randrange(6,7)]) #sublist


        print(seqAudio1)
        
symbolize2()
```

```python
#Terrain Builder

import random as rd

def Terrain():

    seq = ['#',".","O","*",".",".",".","#"]

    for i in range(24):

        seqAudio = rd.choices(seq, k=24)

        if i % 4 == 0:
            seqAudio1 = ''.join(seqAudio[0:rd.randrange(11,12)]) #sublist
        elif i % 3 == 0:
            seqAudio1 = ''.join(seqAudio[0:rd.randrange(11,12)]) #sublist
        else:
            seqAudio1 = ''.join(seqAudio[0:rd.randrange(11,12)]) #sublist


        print(seqAudio1)
        
Terrain()
```

```python
#Color Palette Distrubutor 

def Colorize():

    seq = ["0","1","2"]

    for i in range(5):

        seqAudio = rd.choices(seq, k=5)

        if i % 4 == 0:
            seqAudio1 = ''.join(seqAudio[0:rd.randrange(5,6)]) #sublist
        elif i % 3 == 0:
            seqAudio1 = ''.join(seqAudio[0:rd.randrange(5,6)]) #sublist
        else:
            seqAudio1 = ''.join(seqAudio[0:rd.randrange(5,6)]) #sublist


        print(seqAudio1)
        
Colorize()
```

## PuzzleScript

```javascript
title RoughVoyageCrawl
author illestpreacha
homepage blog.illestpreacha.com

========
OBJECTS
========

Background
white grey white 
00120
21110
01112
01000
21010


portals
darkblue grey darkred
21102
02222
12011
10210
12211


Wall
brown black darkgray
11220
10012
02221
10102
00102


Player
blue black red
01121
11222
11021
22020
11101

packages
orange green darkgreen
01121
11222
11021
22020
11101

packages2
brown darkbrown darkblue
11212
20202
01122
12201
02010


Wall2
black darkbrown darkgray
12002
01110
22010
22221
22221

Roamer
orange red darkred
01202
22011
20002
11111
21120

=======
LEGEND
=======

. = Background
# = Wall
k = Wall2
P = Player
* = packages
G = packages2
! = packages and portals
O = portals
R = Roamer


=======
SOUNDS
=======
Player Move Up 142310
Player Move Down 142310
Player Move Right 142314
Player Move Left 142314

Player CantMove 4123412

EndGame 100532
Endlevel 134177

================
COLLISIONLAYERS
================

Background
portals
Player,Roamer, Wall,Wall2, packages, packages2


======
RULES
======

[ > Player | packages ] -> [ > Player | > packages ]
[ > Player | packages2 ] -> [ > Player | > packages2 ]
[ stationary Roamer ] -> [ randomDir Roamer ] 
[ stationary portals ] -> [ randomDir portals ] 

==============
WINCONDITIONS
==============

 some portals on packages
 some Player on portals
=======
LEVELS
=======

P..g..
.kk.g!
!.!k..
Ok....

message More Journeys, More Tiles, Bigger Scale


##*#.##..**
..#.....O*.
.*.#O#*O..#
#.##.#O###R
O.#.*#*#R..
#..#.....##
O.*##.#.#.P
*..O*.#O...
.#O##..*O.O
.#....*.#O.
...!..#*O#*
*.#.*.O...*

message Flourishing in this realm, what else do you have to do?


R.*.!O
..P..#
...*..
.#.#**

message Enjoy the little breather before we get back to this

O*O#..#.#*O.#..#*...#.*.##O#.#
.#.#..*#.O##**.#OO...#O..#.##O
...#..*.#...O#..*#.#.#OO#*.#O#
.*#.#...O#.*#.##.OO.##*.*#O..#
*...O*O..O#**O*#O*O.##.#.....!
.O##.O.#.O#O#..O.#.#.#O....#.*
P*..#.*OO##O#.#.*##..#....#..#
*..OOO#.#O.O#...*..*R..#O*#.O.
#.*#...#..O#**##.*..#...OOO..#
#.*O#.##......O#...O.#.R.*.O.O
..O.##O.O##.#.....*.O#...*#*O.
..**#.*#...R.#O#.##.#*#####O.*

message now back to smaller entries to gain a flow back

..*.!O
..P..k
.kk.g!
!.!k..
Ok.RR.
.k.k**

message Bigger Realm, Not the biggest though


.*.*..#.O.#
#.O#.*.*..R
#.#...##.!.
..##..*O.#.
P.O#.#O#...
#*..*##.###
.*..##O#.*.
#*......R..

message Time to go even bigger, Explore More


.*.*..k.O.k
k.Ok.*.*..R
k.k...kk.!R
..kk..*O.k.
P.Ok.kOkR.R
k*..*kk.kkk
.*..kkOk.*.
k*.........
.**...kk.*.
.*.!.k.*k.*
..*..kOO...
.k..k....k*

message Lets Make this more complicated

..#*....#..#
##.RR..O.#.#
##..O#*..#.#
##.#*O..!..#
..*#..*....#
P..#.**.*###
..**.#..O.*#
#.O.#.O##.*#
.k.O..kk.k.#
*k...*.Ok..#
kk..*Ok.k.R#
*..kk!..O*.#
k.k.*.*O.k*#
....kO.kR.k#
.O.*.Ok..k*#
PO*O*.kOOkO#

message Lets Make this more more complicated

..*..*O..#####.
.**.O..##.#O..O
##..*..##...!..
O..*.O...#.**O*
..*#..##..R..R*
#O.....*..#**..
P.*...*.*..*O#.
#.#.O#..#.##...
.O**..*.O.*##.#
O..*...OO..*.O.
...OO***.!...##
.O#.....*...#..

message This is the end for now




```
