Inspiration/Motivation

  • Dawson was having shower thoughts
  • Computer Craft Minecraft mod pack
  • CMSC 23320

What it does

Essentially, this is a Terminal/Shell Video Game, heavily influenced by Minecraft/Terraria. This is implemented completely in the terminal, and supports programmable computer blocks which allow running arbitrary programs and IO interfacing with other computer blocks. You can create a network!

Features:

  • Programmable computer block

    • (Arbitrary language supported blocks, programmable with any text editor in game, capable of receiving and transmitting IO via local ports, sockets, and threads)
    • (Computer blocks are able to detect IO on ports based upon wiring in the game. Configured through applying BFS on a network tree)
    • (Adjacent monitors combine to one giant monitor that supports any resolution, displays text output sent via signals from computer blocks)
  • 2D-Minecraft Creative mode

    • (Map exploration, block placement, block deletion, player movement, character inventory etc.)
    • Cool Inter-block Interactions
    • (Chain-able TNT, Fluid dynamics, Water-lava obsidian generation, Optional player gravity)
  • Game Engine

    • Renders the game, transfer IO, manages block resources, physics engine
    • Seeded terrain generation using various statistical methods
      • (Caves, Lakes, Mountains, Grass)
    • Dynamic terrain plant regeneration

How we built it

  • Python curses library
  • Pixel Art
  • Object oriented design

Challenges we ran into

  • Literally Everything

  • Coordinate translation for rendering

    • Converting map coordinates to screen coordinates and back
    • Screen was centred around the player
    • Each block was 3 tall 5 wide for the desired aspect ratio
  • Seeded map generation

    • Generating mountains
      • Guiding a general convex shape generation with mountains
      • Fine tuning parameteres
  • Network ecosystem

    • Merging adjacent monitor blocks into 1 large screen using BFS
    • Transferring IO between connected devices
    • Handling appropriate threads and sockets
    • Defining a computer network

The Team

Accomplishments that we're proud of

  • Implemented a fully playable game with acceptable graphics
  • Computer Network Ecosystem
  • Terrain generation

What's next for Shellcraft

  • Multiplayer
  • Advanced computing interfaces (More IO Devices)
  • GUI (Terminal)
  • Enemies
  • Optimizing the game engine performance
  • Survival Mode

Built With

Share this project:

Updates