GithubHelp home page GithubHelp logo

empyreanx / eszfw Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mupfdev/eszfw

0.0 1.0 0.0 3.91 MB

A cross-platform game engine written in C

Home Page: https://mupf.dev/eszFW

License: MIT License

Makefile 0.25% Nix 0.33% C 76.46% CMake 15.43% C++ 7.53%

eszfw's Introduction

eszFW

GitHub project Licence Build status Codacy Badge Open Source Helpers

About

eszFW is a cross-platform game engine written in C. It's aimed at platformer games. This project is the logical continuation of my older projects Rainbow Joe and Boondock Sam.

Features

  • It runs on all platforms supported by SDL2.

  • Fully reentrant engine core.

  • The dependencies can be limited to SDL2.

  • It uses the Tiled Map Editor as its main tool to develop games.

Documentation

The documentation can be generated using Doxygen:

doxygen

A automatically generated version of the documentation can be found here: eszfw.de

Code style

You are invited to contribute to this project. But to ensure a uniform formatting of the source code, you will find some rules here:

  • Follow the C11 standard.
  • Do not use tabs and use a consistent 4 space indentation style.
  • Use lower snake_case for both function and variable names.
  • Try to use a consistent style. Use the existing code as a guideline.

Status

This project currently undergoes a complete overhaul.

If you wanna see a previous version in action, take a look at the demo application.

demo demo

An Android version is available on Google Play:

Get it on Google Play

C is dead, long live C

Even though hardly any games are written in C nowadays, there are a few noteworthy titles that meet this criterion e.g. Doom, Quake, Quake II, and Neverwinter Nights.

This project should show that it is still possible and that C (and procedural programming in general) is often underestimated.

With that in mind: C is dead, long live C!

Trivia

The abbreviation esz is a tribute to my best friend Ertugrul Söylemez, who suddenly passed away on May 12th, 2018. We all miss you deeply.

Dependencies

The program has been successfully compiled and tested with the following libraries:

SDL2       2.0.12
libxml2    2.9.10 (optional)
zlib       1.2.11 (optional)

Compiling

First clone the repository including the submodules:

git clone --recurse-submodules -j2 https://github.com/mupfelofen-de/eszFW.git

Windows

The easiest way to get eszFW up and running is Visual Studio 2019 with C++ CMake tools for Windows installed. Just open the project inside the IDE and everything else is set up automatically.

Alternatively just use MSYS2 with CMake and a compiler of your choice.

Linux

To compile eszFW and the included demo application, simply use CMake e.g.:

mkdir build
cd build
cmake ..
make

If you wanna compile eszFW with libTMX instead of cute_tiled, just enable the respective CMake option:

cmake -DUSE_LIBTMX=ON ..

Licence and Credits

Engine

cute_tiled by Randy Gaul is licensed under the zlib licence.

TMX C Loader by Bayle Jonathan is licensed under a BSD 2-Clause "Simplified" Licence.

This project and all further listed libraries are licensed under the "The MIT License". See the file LICENSE.md for details.

cwalk by Leonard Iklé.

picolog by James McLean.

Demo application

Warped City by Luis Zuno. Dedicated to public domain.

Every other work that is not explicitly mentioned here is also under public domain.

eszfw's People

Contributors

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