Giter Site home page Giter Site logo

nevzatseferoglu / boulder-dash Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 57.13 MB

Boulder Dash, is a video game released in 1984 by First Star Software for Atari 8-bit computers.

License: MIT License

Makefile 1.87% C 98.13%
boulder-dash game-development sdl2

boulder-dash's Introduction

Boulder-Dash

Game History

Boulder Dash, is a video game released in 1984 by First Star Software for Atari 8-bit computers.There have been numerous versions and sequels in this series for numerous interactive platforms including: Apple II, MSX, ZX Spectrum, Commodore 64, ColecoVision, NES, BBC Micro, Acorn Electron, IBM PC, Amstrad CPC, Amiga, Mac OS, and other platforms. It also influenced other games in the rocks-and-diamonds genre such as Repton in addition to rather direct clones such as Emerald Mine. The original Boulder Dash was created by Canadian developers Peter Liepa and Chris Gray, and on October 28, 1983, acquired by First Star Software, which still owns the rights to the game and the intellectual property, including the registered trademark: "Boulder Dash".

  • Project Purpose

The aim of the project was to create a replica game, as shown in pdf, rather than creating a new game.For this reason, I did not have to be very creative, but during the development phase, I encountered many tricky problems related to game dynamics.

  • Challenges :
    • It was my first complex project so I did not actually know what I'm going to do as next at the beginning. Resourcing about game develoment was a good solution.I probed a lot of things related to SDL that will be explained in below.I will attach some links that i find out during that process.

    • Code structure was so crucial at first , because there are lots properties related to character , background audio , tiles which are rendered to the screen .I even did not find any sprite-sheet about boulder dash at first. I did not know object-oriented-programming while joining the parts of project. Exploiting struct data type was a good idea. I implemented unique structure for each seperated part of the game.

  • Why did you use extern every single header ?

Actually all functions are extern as default but in my design structure I have .c and .h files for each seperate unit.There should be a communication between different compilation unit on structure design. Extern actually does that.

More info about extern : 1 , 2 , 3

  • SDL - Simple DirectMedia Layer

    Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D.

    SDL is written in C, works natively with C++, and there are bindings available for several other languages, including C# and Python.

    Official Wepsite : Simple DirectMedia Layer

  • Gameplay

  • Dependency

There are three different library in addition to pure SDL.

SDL_ttf - It is an text file loading library.

SDL_mixer - It is an audio file loading library.

SDL_image - It is an image file loading library.

  • Installation

    1 - Install indicated libraries that are above and also SDL itself.

    2 - Type make on shell environment , it will create an executable file which's name game.

    3 - Run the executable ./game.

  • Other projects that's created thanks to SDL

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.