Coder Social home page Coder Social logo

pxlwolf's Introduction

# The
# ██████╗ ██╗  ██╗██╗     ██╗    ██╗ ██████╗ ██╗     ███████╗
# ██╔══██╗╚██╗██╔╝██║     ██║    ██║██╔═══██╗██║     ██╔════╝
# ██████╔╝ ╚███╔╝ ██║     ██║ █╗ ██║██║   ██║██║     █████╗  
# ██╔═══╝  ██╔██╗ ██║     ██║███╗██║██║   ██║██║     ██╔══╝  
# ██║     ██╔╝ ██╗███████╗╚███╔███╔╝╚██████╔╝███████╗██║     
# ╚═╝     ╚═╝  ╚═╝╚══════╝ ╚══╝╚══╝  ╚═════╝ ╚══════╝╚═╝     
# project
# https://github.com/jacmoe/pxlwolf
#
# (c) 2020 - 2021 Jacob Moena
#
# MIT License
#

pxlwolf

Seriously overengineered Wolfenstein-like raycast engine

TOC

Screenshots

PixelWolf

Clutter creates an atmosphere

Static sprites

Textured floor and ceiling

PixelWolf

Level Editing in LDtk

Pxlwolf uses the LDtk Level Designer Toolkit to create and edit levels. LDTK First four levels of Wolfenstein 3D. Wolfenstein Levels Taking care of the details. Static sprites and pickups

Goals

  • Explore raycasting, including height-mapping and animated tiles.
  • Learn how to use modern C++ features, and move from C++98 to C++17 and beyond.
  • Create a complete game, and not just a tech demo.
  • Use third-party code whenever possible, but keep things simple.

Features

Here I will write the features of PixelWolf down as I implement them.

Implemented

Planned

Dependencies

PixelWolf is being developed on Linux and Windows.

Compiled using MSVC 2019 on Windows, and GCC 9.3 on Linux.

Uses Visual Studio on Windows, and CMake on Linux.

External dependencies

Library Description License
Allegro 5.2 A game programming library Zlib license

Windows

The easiest way to get Allegro on Windows is via Nuget, which is why this project uses Visual Studio for Windows.

The PixelWolf solution references two projects, Lua and PhysicsFS, which should be generated using CMake before opening the project.

Use the CMake script in 3rdparty and choose 3rdparty/vsbuild as the "where to build the binaries" folder.

Make sure win32 is chosen as the architecture, otherwise CMake will choose x64 (and that is not going to work).

After having generated the two projects, you can now open the PixelWolf solution. Maybe in the future, there will be a better way.

Linux

Allegro should be available from your package manager. On Ubuntu, perform a simple sudo apt-get install liballegro5-dev

On Linux PixelWolf is fully CMake'd. Simply open the main CMake script using CMake or a CMake-aware program, like VSCode or KDevelop.

Bundled dependencies

Library Description License
cereal C++11 library for serialization BSD license
enTT C++ entity component system MIT license
Lua 5.4 Scripting language zlib License
PhysicsFS Archive support for games zlib license
PhysFS++ C++ wrapper for PhysicsFS zlib license
RapidJSON A fast JSON parser/generator for C++ MIT license
Sol A C++11 Lua wrapper MIT License
spdlog Logging library MIT license
stb_image Image loader Public domain

The bundled dependencies are all header-only, and doesn't require building, except for Lua, lgui, and PhysicsFS.

On Windows, you need to generate the projects simply by running the `` batch file from the 3rdparty directory. You need CMake, Doxygen and the Graphviz tools (dot) installed.

On Linux, the CMake script handles all this for you.

Credits

This project is using code from the c-raycaster project - the raycaster and a lot of the pixel related functionality is borrowed from the project. It also uses code from Herrecito's 2.5D Raycaster engine in C. And the overall structure of the project is lifted from Balantkissdev's Raycaster engine.

pxlwolf's People

Contributors

jacmoe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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