Git Product home page Git Product logo

flutterstein-3d's Introduction

Flutterstein 3D

A 3D raycaster implemented in Flutter.

For anyone looking for the original / unminified code, there is a branch named prior-to-reduction which is pretty much the code prior to the minification.

This app was submitted as an entry to the Flutter 5KB Challenge.

Gameplay 0 Gameplay 1 Gameplay 2 Gameplay 3

Description

This is a an implementation of the 3D raycasting algorithm as employed by games like Wolfenstein 3D. It uses the Canvas API, specifically drawRawAtlas, to render the level data and also to batch the draw calls.

On-screen controls have also been implemented using PointerData, with inflated tap areas to improve responsiveness.

To keep things interesting

Due to the 5KB restriction, I can't really add any game logic. However, when I built the level, I hid 9 other Flutter logos (10 if you count the first logo at the start) within the level, see if you can find them all before reaching the exit (the exit is another elevator).

If you want to see where all of the logos are hidden, here is the map

Running the app

flutter run --release

I highly recommend running this on Android devices since that is where I have been testing the app on. Theoretically, it should also run on iOS since there is no platform specific code or configuration employed.

Orientation

Although the app supports both portrait and landscape orientation, it looks way better in landscape.

flutterstein-3d's People

Contributors

atamocius 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

Watchers

 avatar  avatar  avatar

flutterstein-3d's Issues

Non-minified Version?

This is insanely cool. I was wondering if you were planning on releasing a non-minified/obfuscated-by-circumstance version of the code? (There's enough wizardry going on in there that I'm sure it would be hard enough to follow what's going on without having to guess at class, method, and variable names. :P)

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.