Giter Site home page Giter Site logo

gotell's Introduction

OVERVIEW

This is a game engine which generates ANSI code for a TCP connection over a terminal. Using "Cells" "Tiles" and "Regions" you can build a screen.

HOW TO RUN THIS

  1. go run .
  • This starts our server
  1. On Mac:
  • run stty -icanon && nc localhost 9002
  1. On Windows:
  • Download PuTTy
  • image description
  • As seen above: Insert these settings (in red); click SAVE
  • image description
  • As seen above: Click Terminal and set "Local line editing" and to "Force Off". Save again.
  • Now click OPEN on the main screen again.
  • From now on if you SAVE these settings you'll just have to "Load" than "Open" in the future

MAIN DEMO

  • v0.0.1 Initial Commit

  • image description

  • v0.0.3 Better coloring, Now have most "in game" regions defined.

  • image description

  • v0.0.4 We have COOOOMBAT now.

  • v0.0.5 Fog exist! Health returned on fog. -- Stats for players and enemies exist as well -- examples of how to update screens now implemented -- switched to CELLS which are just stacks of tiles

  • image description

  • v0.0.6 Items-a-palooza -- Items are now a thing to pickup and uses -- this includes potions, equiptment AND spells -- One spell implemented -- ton of refactor work

  • image description

  • v0.0.7 The Great Last Refactor -- Refactored input and a ton of other code -- Finally added file parsing for levels and items -- Randomization of things on the Level! -- New enemies generated -- Removed a ton from our session object (as I should have) -- added header region -- Modfied other regions -- added menus (just static text things)

  • image description

  • v0.0.8 Great Refactor 2 -- This will be refactoring how we handle file parsing -- There are things I put into core which seem stupid to do so in hindsight so ill be moving them -- Pop ups are now useful! -- Generate a static HTML file for level editing -- Generate a static HTML file for splash screen editing

  • image description

  • v0.0.9 Main menus and story -- We will write out the story -- A main menu for game selection will be implemented -- Classes for the hero will now be a thing -- signs in levels for pop ups will be a thing -- Maybe gods will be added?

MAIN STRUCTS

  • Screen Think old computers with all their talk of "column count" and you have a good idea on how this will work. A screen is a collection of CELLS and a string which represents what is sent to the users terminal
  • Cells An array of "TILES". These help determine Zindex on the screen. We the programmer push "tiles" to represent characters we want to display in a column/line and than compile it into the "RAW" string which is the ANSI code needed to be sent to the user terminal
  • Tile A tile is a representationo of a single Column/Line cooordinate. #Icon# represents the actual "character" you'll see. #Color# stores the ANSI code to change the characters color (just foreground for now) Why? Because its hard to calculate WHERE on our screen a character will appear when just directly using strings. ANSI codes are just ugly strings which become invisible when submitted to the clientt terminal. This makes it easier for you; the programmer.
  • iRegion We'll want different sections of the screen; and an easy way to determine what to draw. Regions are just screen sections. Thus far I have: level (aka map) profile (aka user info area)

TODO

  1. Signpost which trigger popups.
  2. Enemy Drops
  3. map selection / main menu
  4. Add FOG wall detection (cannot see through walls)
  5. Start thinking about town hub interactions.
  6. Multi-layered levels? Multi BOSS levels?
  7. End conditions for beating the level
  8. Gods or deities for interesting gameplay
  9. Finish story
  10. Finish how to play
  11. Test with multiple connections
  12. Save state
  13. Try finding a way to host this
  14. CLEAN UP STATES! -- it's a mess!
  15. Refactor...again.

BUGS

  • title on level doesn't load, just says "SOME TITLE"
  • The "direction" cue for which enemies are nearby changes to your intended spot when you "attack" giving misinformation.
  • Enemy level generation is not so solididly ....distributed? may be because im less than 10 enemies.

gotell's People

Contributors

ev-agarber avatar the60ftatomicman avatar

Stargazers

kleintux avatar  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.