Giter Site home page Giter Site logo

tsoding / nothing Goto Github PK

View Code? Open in Web Editor NEW
287.0 17.0 78.0 4.15 MB

A simple platformer about nothing

License: MIT License

Nix 0.09% C 96.21% CMake 1.80% C++ 1.14% Objective-C 0.55% Shell 0.20%
game platformer sdl2 pure-c hacktoberfest hacktoberfest2020

nothing's Introduction

Tsoding Build Status Build Status

Nothing

Dependencies

Ubuntu

$ sudo apt-get install gcc cmake libsdl2-dev

MacOS

$ brew install gcc cmake sdl2

NixOS

For NixOS we have a development environment defined in default.nix with all of the required dependencies. You can enter the environment with nix-shell command:

$ nix-shell

Arch Linux

$ sudo pacman -S gcc cmake sdl2

Windows

Visual Studio

MinGW

Quick Start

Linux

CMake

$ mkdir build
$ cd build/
$ cmake ..
$ make
$ ./nothing

SCU

$ ./build-posix.sh
$ ./nothing

Windows

Visual Studio

> cd path\to\nothing
> 7z x SDL2-devel-2.0.9-VC.zip
> move SDL2-2.0.9 SDL2
> mkdir build
> cd build
> cmake ..
> cmake --build .
> .\nothing

MinGW (with MSYS)

$ cd path/to/nothing
$ wget https://www.libsdl.org/release/SDL2-devel-2.0.10-mingw.tar.gz
$ tar xzf SDL2-devel-2.0.10-mingw.tar.gz
$ mv SDL2-2.0.10 SDL2
$ rm SDL2-devel-2.0.10-mingw.tar.gz
$ mkdir build && cd build
$ cmake .. -G "MSYS Makefiles"
$ cmake --build .
$ ./nothing

MinGW (without MSYS)

> cd path\to\nothing
> 7z x SDL2-devel-2.0.10-mingw.tar.gz -so | 7z x -si -ttar
> move SDL2-2.0.10 SDL2
> del SDL2-devel-2.0.10-mingw.tar.gz
> mkdir build
> cd build
> cmake .. -G "MinGW Makefiles"
> cmake --build .
> .\nothing

Controls

Game

Keyboard

Key Action
d Move to the right
a Move to the left
w/SPACE Jump
c Open debug console
r Reload the current level including the Player's position
q Reload the current level preserving the Player's position
p Toggle game pause
l Toggle transparency on objects. Useful for debugging levels
TAB Switch to Level Editor
CTRL+q Quit the game

Gamepad

Button Action
Left Stick Movement of the Player
1 Jump

Consolé

Key Action
ESC Exit console
Enter Evaluate the expression
Up/Down Traverse console history
CTRL+L Clear
Ctrl+X, CTRL+W Cut
Ctrl+C, ALT+W Copy
Ctrl+V, CTRL+Y Paste

Level Editor

To access the Level Editor open a level and press TAB.

Key Action
s Save level
Mouse Wheel Zoom and pan
CTRL+z Undo
q Toggle snapping mode
SHIFT+Up/Down Change overlaping order of selected object
CTRL+c/v Copy/paste selected object
F2 Rename selected object
DELETE Delete selected object

Support

You can support my work via

nothing's People

Contributors

abridgewater avatar aobolensk avatar aodhneine avatar ear avatar engelju avatar fornever avatar funkschy avatar gkbrk avatar isidentical avatar kolumb avatar minichota avatar nilsirl avatar nykseli avatar ozy avatar paprikax33 avatar pi-pi3 avatar rafaelffilho avatar rexim avatar riscript avatar the-renaissance avatar theknarf avatar travisstaloch avatar valignatev avatar voldyman avatar zhiayang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nothing's Issues

Implement camera

I really want to implement it as a wrapper around SDL_Renderer.

throw_error() is difficult to use

throw_error() sets up the type of the currently propagating error. If you check the result of one of the error source functions (like SDL2 or libc functions) on the low level of abstraction then you have to explicitly invoke throw_error(). If you check the result of the application functions on the higher level of abstractions you don't have to invoke throw_error(). That always confuses me. I propose to make a wrapper layer over SDL2 and libc that invokes throw_error() and just forget about this function.

Clean up the names of entity methods

Go through all of the entities (game, level, player, etc) and make sure they follow the convention:

  • One translation unit per entity
  • Constructors are create_<entity-name> or create_<entity-name>_from_<resource-name> (for example create_level_from_file)
  • Destructors are destroy_<entity-name>
  • Regular methods are <entity-name>_<method-suffix> (for example player_render)
  • Document these conventions somewhere

Doesn't work without The Stick of the Joy

Reproduction Steps

  • Just play without The Sick of The Joy

Observed

  • Game crashes with "Could not find any The Sticks of the Joy"

Expected

  • Being able to play both with and without The Stick of The Joy

Remove the goal wave

I think floating and rotation are enough to indicate the importance of the goal

Camera is too low

We need to keep it so the player is always somewhere at the bottom of the screen.

Player doesn't fully touch walls

  • Introduced in #20

2017-12-08-084523_800x600_scrot

Reproduction Steps

  • Move towards a wall until you hit it

Observed

  • Player stops earlier and cannot touch the wall

Expected

  • Player touches the wall

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.