Giter Site home page Giter Site logo

build-your-own-world-'s Introduction

Build-Your-Own-World-

Creating a Game engine that generates explorable 2D tile-based worlds

skills: Java, StdDraw, Design,

Screen Shot 2022-09-13 at 8 13 21 PM

Design Project Overview Document

Bryan Aguirre

Classes and Data Structures

Main: Main Runner

Engine: Handles the inputs for the Main Method

RandomUtils: Creates Psuedo-random Scenarios.

Point: X and Y Coordinates

Hallway: Creates the Path that connects Two Rooms.

Room: Creates a Room around a Center Position with a Random Width and Height.

World: Creates a Random Number of Rooms with Different Dimensions, and Connected Hallways.

GameFile: Used to Save Our World. Saves the Game using a Hash Map.

StringInput: Prepares our String to Generate a Seed.

Avatar: Character and Movements Directions.

Keyboard Interactor: Interacts with Keyboard Movements, as well as has HUD display, Spanish Mode Display, and other requirements for the project.

String Interactor: Allows us to pass in a string and world in our configuriations.

Algorithms

Random World Generator that builds rooms around our single point. Allowing us to keep track of the middle point and based on its position, we are able to connect two rooms using hallways based on a certain direction. By inputing a string of numbers, the algorithm is able to take in a string and convert it into a seed, where each seed is embedded and capable of generating the same or different world based on the input. There is an Avatar character that is able to move around the world using keyboard inputs of 'WASD' as well as capable of toggling the world using keyboard input 'V' from light mode to dark mode feature. Using a HashMap in our GameFile Class , we are able to save our world and load back from our previous position. And as a result, we create a Game Engine that generates explorable 2D tile-based worlds!

Persistence

Persistence Utils in which we use it to read and write Serialized information.

build-your-own-world-'s People

Contributors

baguirre2651 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.