Terminal Game written in Rust
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Jakob Meier 106dc3e0a5 Updated ReadME (#3) 2 months ago
files added .desktop file 3 months ago
screenshots updated readme 3 months ago
src Added farming section to readme #3 2 months ago
worlds Growing plants done Closes #3 2 months ago
.gitignore Initial commit 3 months ago
Cargo.lock Initial commit 3 months ago
Cargo.toml Initial commit 3 months ago
LICENSE added a beautiful MIT license 3 months ago
ReadME.org Updated ReadME (#3) 2 months ago
icon.png Initial commit 3 months ago
icon.xcf Initial commit 3 months ago

ReadME.org

World2 - RUSTED SERIES

About

Rusted World2 is the successor of Rusted World, a failed attempt at creating a synchronous terminal-based 2D open-world game. World2 is based on an ansynchronous workflow and features a top down view.

Roadmap [16/18] [88%]

  • Render Blocks

  • Render Player

  • Navigate

  • Inventory

  • Coordinates

  • Interactions

    • Mine

    • Place

  • Player

    • Facing

    • Health

  • Doors

  • Drawers

  • Animals

  • Blocks

  • Farming

  • Saving

  • Loading

  • About Screen

  • Gamemodes

  • CLI Level Creation

  • Add a License

History

Rusted World

A 2D terminal-based terraria-like game written in rust. Discontinued due to flaws in source-code and plans for RustedWorld2. In case you want something to laugh about checkout RustedWorld over on GitLab

First Test Release

RustedWorld2's first git commit. Simple Navigate new MapSystem

Version 1 - Coral

Released Q1 2021, the first stable RustedWorld2 Release codenamed Coral has been released featuring basic building blocks, the ability to load and save games, health and more.

Version 2 - Cobalt

Completely restructured the code to be easier to expand functionality. Seeing its second release in Q2 2021 codenamed Cobalt, RustedWorld2 is on its way to be completed. V2 doesn't come with a lot of features. The only real new feature is the world creation api, which can be used to create new worlds.

Version 3 - Clover [NEWEST]

Released Q2 2021 the third RustedWorld2 release codenamed Clover features some bug fixes, a basic about menu and the long awaited farming feature. Plants allow you to fullfill your dream of becoming a farmer yourself and worry about the plants health.

Setup

Requirements

  • Some ram

  • Some MB free storage

  • A computer or phone with terminal

  • rust compiler optionally cargo

Configuration

As all the settings are hard coded its recommended to check the keymap and adapt it to ones liking. Note that all configuration related files can be found in ./src/config/

Building

Assuming you have cargo installed and setup you can use the following command to compile World2.

cargo build --release

Starting

After building you are able to run World2 using the following commmand (if you are using windows the command will look somewhat diffrent)

./target/release/rusted_world2

The recommended way of running World2 is from XTerm with the font set to Monospace and the font size increased to some number between 16 and 20.

xterm -fa 'Monospace' -fs 20

You could combine the two into one long command you could put inside a .desktop file for easier execution:

xterm -fa 'Monospace' -fs 20 -e "./target/release/rusted_world2"

An example .desktop file can be found in the ./files/ folder, you only have to change the path to point to your local copy of this repo.

Defaults

KeyMap

Global
Action Key Notes
Quit game q Closes the game (Closes the inventory)
Toggle About/Help u Shows a help menu
Default Global Keymap
In-Game
Action Key Notes
Move hjkl West,South,North,East
Place s
Dig d
Fight/Attack f Also used to put item into drawer
Open Inventory i
Select Slot 1-6
Save w
Force Use F Used to remove all items from drawer
Default In-Game Keymap
About/Help
Action Key Notes
Circle Tabs hl Left, Right
Default About/Help Menu Keymap
Inventory
Action Key Note
Move Up/Down kj Up, Down
Assign to slot 1-6 Each item can be assigned to multiple slots
Unassign u Removes item from every slot
Close Inventory i or q q doesn't close the game
Default Inventory Keymap

FOV

By default the FOV is set to 12:10, which means that going from the center there will be 12 blocks along the x-axis and 10 blocks along the y-axis. It is not recommended to change the FOV as it might result in weired or laggy behaviour.

INVENTORY LIST LENGTH

By default the inventory shows 5 items, to move you use the keys specified in the Keymapconfig and circle around the list of all your items

Handbook

How To Play

You spawn in a seemingly empty world and walk around. If you wand to build something you can. Basically there is nothing special going on here but it is fun. (Maybe not)

Creating a new world

Creating a new world can be done using the terminal by appending specific command line arguments. See the table below for a list of supported arguments.

Key Arguments Argumentcount Action
new path 1 Specifies that the user wants to create a new world and gives a path which to write to
seed character sequence 1 Sets the world generation seed (unused as of v2)
gamemode survival/creative 1 Sets the Gamemodes

After creating a new world, RW2 will automatically open the world and save it once closed. After waving goodbye the game will print the command used to play in the world. Example:

./target/release/rusted_world2 new "worlds/demo.world2" seed 123 gamemode "creative"

Playing from the disk

To open a world which is already stored on your hard drive use the store argument followed by your file path. This will load your world and save it once closed. Example:

./target/release/rusted_world2 store "worlds/creative.worlds"

Using drawers

Drawers can be used to store items, where as each drawer can only hold one item type. An empty drawer is displayed as a small white cube, once items are placed in the drawer the draer adapts the item's shape. To put one item into the drawer you press the Fight/Attack/Use key, to remove all items from the drawer you use the ForceUse Key. A drawer which holds items can not be mined.

Farming

You can plant crops as you would with every other block. Your plant will grow over time changing its shape and color (See below for more details). It is recommended that you only "mine" the plant once it reached its max. size. But if you keep the plant growing to long it will turn into ash and you wont be able to obtain anything.

State Symbol Color Drops
0 & dark brownish nothing
1 + light brown nothing
2 l dark green nothing
3 straight line(interferes with table) bright green 1crop
4 P dark yellow 3crops
5 @ yellow 6 crops
dead ¸ dark grey nothing

Facts

  • The inventory is technically not infinte (limited by usize limits)

  • There is no Day/Night cicle

  • You have to tap twice in order to change direction and move as the first click will only change the direction you are facing

Known Bugs

  • Opening the inventory in survival mode without an item in there will crash the game

Screenshots

/comcloudway/rusted_world2/src/branch/main/screenshots/game1.png
World2 Game Screen
/comcloudway/rusted_world2/src/branch/main/screenshots/inventory1.png
World2 Inventory Screen