========================================================================

   ASCII  TERRAIN  ENGINE  v1.2

   For Game Developers
   By Virtusoroca (Brazil, 2020)
   Made in QB64

   README.TXT

========================================================================
1. Getting started!
========================================================================
First: run the the program
Second: switch DebuMode ON and OFF and see how the thing works
Third: try editing the demo files (font'Terminal' is recommended)
Forth: if you change their sizes, ajust the variables in the code
Fifth: study and understand the code
Sixth: plan yor game: think of gameplay and storyline 
Seventh: create yor game by expanding and improveing the code
========================================================================
2. Features
========================================================================
Multilevel (unlimited) and Multiplayer (currently 2)
Custom map structure and design (100x45 characters)
Custom player structure and design
Customization by loading text files
Transparent background of player design over map design
Collision detection (PlayerStructure x MapStructure)
Edge-sensitive collision (for Players up to 3x3 characters)
Debug area (right side) and Debug Mode for main screen
Structured and commented code
Apparently complex code, but easely scalable
SkipIntro option for developers
Simple demo scenarios included
Designed for ASCII characters in 256 colors mode
Keyboard interface only
========================================================================
3. Controls
========================================================================
Move Player 1: Arrow keys
Move Player 2: Arrow keys
F1: DebugMode (ON/OFF)
F5: Reload files
Q: Quit program  
SkipIntro=0 (Line 78) to disable Introduction
========================================================================
4. Future developments
========================================================================
Expansion of demo scenarios
Enemy (simple AI) in demo scenarios
Point counter in demo scenarios
Fixed visibility field ("dark dungeon")
Load color customization by text file
Collision detection (Player x Player)
Collision detection (Enemy x Player)
Edge sensitivity (for any Player size)
User-friendly interface
========================================================================
5. Possibilities by code-editing
========================================================================
Player animation by frames
Spawn enemies and NPCs
Level-change flexibility (by location, points, other conditions)
Roguelike (easlsy adaptable, shoot function to be included)
Ponglike (by character customization and collision detection, ball to be included)
Paclike (by map customization and collision detection, pacpills to be included)
Tetrislike (by character customization, descent function to be included)
Shooterlike (starfield animation and shoot function to be included)
Plataform (jump function to be included)
Joystick and mouse interface
========================================================================
6. Code information
========================================================================
Heavly built on multidimensional TYPE ARRAYS
Heavly built on FOR/NEXT loops
Heavly built on SUBROUTINES
Heavly built on SHARED variables
MovePlayer SUB to be improved and condensed
========================================================================
7. Code summary
========================================================================
1. 	IDENTIFICATION

2. 	SYSTEM SETTINGS

3. 	DECLARATIONS
3.1. 	Subroutines
3.1.1. 	Maps
3.1.2. 	Players
3.1.3. 	General
3.2. 	Types
3.2.1. 	Files
3.2.2. 	Players
3.2.2. 	Fields
3.3. 	Variables (Part1)
3.3.1. 	General
3.3.2. 	Maps
3.3.3. 	Players
3.4. 	Arrays (Part 1)
3.4.1. 	General
3.4.2. 	Maps
3.4.3. 	Players
3.5. 	Variables (Part2)
3.5.1. 	General
3.5.2. 	Maps
3.5.3. 	Players
3.6. 	Arrays (Part 2)
3.6.1. 	General
3.6.2. 	Maps
3.6.3. 	Players

4. 	MAIN ROUTINE

5. 	SUBROUTINES
5.1. 	LoadIntro
5.2. 	PrintIntro
5.3. 	LoadGame
5.4. 	LoadMapStructure
5.5. 	LoadPlayerStructure
5.6. 	ReadMapStructure
5.7. 	ReadPlayerStructure
5.8. 	LoadMapDesign
5.9. 	LoadPlayerDesign
5.10.	PrintMapDesign
5.11.	PrintPlayerDesign
5.12.	MovePlayer
5.12.1.	Player1 (up)
5.12.2.	Player1 (down)
5.12.3.	Player1 (left)
5.12.4.	Player1 (right)
5.12.5.	Player2 (up)
5.12.6.	Player2 (down)
5.12.7.	Player2 (left)
5.12.8.	Player2 (right)
5.13.	ChangeLevel
5.13.1.	Level 1 to 2
5.13.2.	Level 2 to 1
5.14.	DebugScreen

7. 	END OF PROGRAM

========================================================================
    About me
========================================================================
    Im a 39 years-old sociologist, archivist and librarian, specialized in data modeling.
    This is my first programm sience the mid '90!
    Using my original Halvorson & Rygmyr (1992, brazilian edition) for reference.
    Also used: SchoolFreeware on Youtube (highly recommended!).
    Made in Brazil with love during COVID-19 -- Stay at Home!
    Check my youtube channel for some Brazilian Jazz
    Contact: virtusoroca@yahoo.com.br (send it again in case I dont answer you).
========================================================================

    
















