Git Product home page Git Product logo

c64maze's Introduction

C64maze

A 3D maze game written in C

Intro

This project (distributed with the GPLv.3 license) is a very simple 3D maze originally written for the Commodore 64 computer, hence the name, and then ported to UNIX. The source code is written in C (with some inline assembly for the C64 version) and it is meant to be compiled with the cc65 compiler or gcc with the SDL2 library.

The game started as an exercise in high resolution graphics on the C64 and was inspired to those old 3D maze games in BASIC that were popular at the time. However, the C language is much faster than BASIC and one can do some pretty nice things. Some routines are tweaked in assembly for better performances.

Do you dare to enter The Maze?

The goal of the game is to find the exit of the maze in the shortest possible amount of time. The entrance of the maze is changed randomly each time the game is played. You can have a look at the maze map, but beware! Each time this is done, a penalty of 30s is applied:

Maze map

You should explore the maze to find the exit:

Hey! You found the exit!

And once you find your way through it, you will know how much time you needed:

Game completed.

Here is a screenshot of the game running on a Unix machine:

UNIX PORT 1st version

Music

The music is a 3-part reduction for the SID of J.S. Bach's "little" fugue in G minor, BWV578. Hommage to Wendy Carlos. The music driver is fully interrupt-driven and it is also written in C.

How to build the game

To build the game for UNIX\GNU linux install SDL2 library and type:

make PLATFORM=UNIX

To build for the Commodore 64, make sure you have CC65 installed and type:

make PLATFORM=C64

c64maze's People

Contributors

darwinne avatar igor1101 avatar pdpdds 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

Watchers

 avatar  avatar  avatar  avatar

c64maze's Issues

24 errors and 1 warnings generated.

Hi

I want to compile and test this for C64 but getting compile issues. Do you know a solution?

I have cc65 installed on Windows.

>make PLATFORM=C64
cc65 -I ./ -g -DP_C64=1 -DP_UNIX=2  -Os -DPLATFORM_MAZE=C64 -DP_CURRENT=P_C64 -Oi -T -t c64 c64maze.c
c64maze.c:11: Error: Include file 'ports/EXPAND2(PLATFORM_MAZE,.h)' not found
c64maze.c:62: Error: Call to undeclared function 'port_pset'
c64maze.c:69: Error: Call to undeclared function 'port_printat'
c64maze.c:74: Error: Call to undeclared function 'port_clearMazeRegion'
c64maze.c:79: Error: Call to undeclared function 'port_fflushMazeRegion'
c64maze.c:84: Error: Call to undeclared function 'port_graphics_init'
c64maze.c:89: Error: Call to undeclared function 'port_vert_line'
c64maze.c:95: Error: Call to undeclared function 'port_diag_line'
c64maze.c:100: Error: Call to undeclared function 'port_hor_line'
c64maze.c:106: Error: Call to undeclared function 'port_line'
c64maze.c:142: Error: Call to undeclared function 'port_getch'
c64maze.c:147: Error: Call to undeclared function 'port_get_time'
c64maze.c:391: Error: Call to undeclared function 'port_colour_banner'
c64maze.c:399: Error: Call to undeclared function 'port_loadVICFont'
c64maze.c:446: Error: Call to undeclared function 'port_get_current_time'
c64maze.c:457: Warning: Signed integer constant overflow
c64maze.c:496: Error: Call to undeclared function 'port_clearHGRpage'
c64maze.c:530: Error: Call to undeclared function 'port_font_magnification'
c64maze.c:551: Error: Call to undeclared function 'port_sound_irq'
c64maze.c:555: Error: Call to undeclared function 'port_start_sound'
c64maze.c:596: Error: Call to undeclared function 'port_loadVICFont'
c64maze.c:637: Error: Call to undeclared function 'port_clearHGRpage'
c64maze.c:643: Error: Call to undeclared function 'port_music_off'
c64maze.c:646: Error: Call to undeclared function 'port_music_on'
c64maze.c:664: Error: Call to undeclared function 'port_exit'
24 errors and 1 warnings generated.
make: *** [Makefile:24: c64maze] Error 1


Random wayout

Now it's difficult when you are playing c64maze for the first time, but the second time gets much more easier since you know where is the way out. How about randomly placing way out from labyrinth?

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.