GithubHelp home page GithubHelp logo

smalljoker / openedits Goto Github PK

View Code? Open in Web Editor NEW
7.0 1.0 1.0 1.45 MB

Self-hostable 2D block building/physics game heavily inspired by the flash game Everybody Edits

License: Other

CMake 1.70% C++ 75.51% C 22.14% Shell 0.21% Lua 0.44%
2d-game irrlicht multiplayer platformer everybody-edits

openedits's Introduction

OpenEdits

preview image v1.0.8-dev

A 2D game block building inspired by Everybody Edits. Code structure inspired by Minetest practices.

The project direction can be found in doc/DIRECTION.md.

Gameplay

Hotkeys

  • W/A/S/D or arrow keys: move player
  • Space: Jump
  • LMB: Place the selected block
  • RMB or Shift+LMB: Block eraser
  • RMB + Ctrl: Select clicked block including params
  • Mouse scroll: Zoom in/out
    • Warning: Rendering performs pretty badly. Do not scroll out too far.
  • 1-9: Hotbar block selector
    • Use RMB to drag & drop a block from the selector into the hotbar
  • / or T or Enter: Open chat box
    • Enter: Submit
    • ESC: Cancel and close
    • Tab: Nickname autocompletion
    • Up/Down: Previous chat message / empty chat message
  • E: Toggle block selector
  • G: Toggle god mode
  • M: Toggle minimap
  • F1: Toggle debug information

Chat commands

  • See /help

Permission/player flag examples:

  • /fset FOOBAR tmp-edit-draw temporary edit access (until rejoin)
  • /fset FOOBAR godmode persistent god mode access (after the world is saved)
  • /fdel FOOBAR owner removes all persistent access except for "banned"
  • /ffilter lists all players with any specified flags

Command line arguments

  • --version outputs the current game version
  • --unittest runs the included tests to sanity check
  • --server starts a server-only instance without GUI
  • --setrole USERNAME ROLE
    • ROLE can be one of: normal, moderator, admin.
    • Can be executed while a server is already running.
  • --go USERNAME PASSWORD [WORLD_ID]
    • Starts a local server and joins the world ID (if provided)

World import/export

  • *.eelvl files in worlds/imports/ are listed by the server as playable read-only worlds
  • Clients may use .export FILENAME to export the current world to worlds/exports/
  • See worlds/README.txt for further information

Linux

  1. Extract the archive to any location
  2. Run AppRun.sh
  3. In case of issues: run with gdb. Debug symbols are included.

Windows

  1. Extract the archive to any location
  2. Run the executable
  3. In case of issues: use a debugger such as x64dbg

Compiling

Dependencies

  • CMake (cmake-gui recommended for desktops)
  • Irrlicht-Mt : GUI/rendering library
  • enet : networking library
  • SQLite3 : auth & world saving
  • Threads (pthread?)
  • zlib: world compression (including EELVL import/export)
  • OpenAL: sound (for GUI builds only)

Dependency tree:

OpenEdits
├── enet
├── irrlicht-mt (server)
├── irrlicht-mt (client)
│   ├── libjpeg
│   ├── libpng
│   │   └── zlib
│   └── zlib
├── openal-soft (client, optional)
└── sqlite3
└── zlib

Debian/Ubuntu:

sudo apt install libenet-dev libopenal-dev libsqlite3-dev zlib1g-dev

Project compiling:

cmake -S . -B build
cd build
make -j

Headless server compiling

  1. Install the minimal required libraries
  2. Put the IrrlichtMt headers (include directory) somewhere
  3. cmake -S . -B build -DBUILD_CLIENT=0 -DIRRLICHTMT_BUILD_DIR="/path/to/irrlicht/include/"
  4. cd build -> build make -j -> start ./OpenEdits-server

Distributing (simplified)

cd build
make install
bash ../misc/pack.sh

Licenses

Code: LGPL 2.1+

Imported code

Fonts

DejaVu Sans bitmaps (Bitstream Vera license, extended MIT)

Images

Images that are not listed below were created by SmallJoker (CC BY 4.0).

DailyYouth (CC BY 3.0)

IconMarket (CC BY 3.0)

ZUMMACO (CC BY 3.0)

Sounds

Sounds that are not listed below were created by SmallJoker (CC BY 4.0).

Piotr Barcz (CC 0)

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.