Giter Club home page Giter Club logo

heligun's Introduction

heligun

3D helicopter shooter with raytraced terrain for Emscripten

Copyright (c) 2016 Joseph Kuziel

Description

Heligun is a game based on the Comanche series by NovaLogic. The player takes control of an attack helicopter to complete missions and battle with other attack helicopters.

The terrain is generated using a similar technique found in Comanche where a ray is cast from the viewpoint to a heightmap as an alternative to vectorized graphics which were computationally expensive in 1992 (http://simulationcorner.net/index.php?page=comanche). Heligun uses raymarching to draw the terrain which is run on the GPU in parallel for each pixel.

Controls

Key Command
w Pitch forward
s Pitch back
a Roll left
d Roll right
i Increase throttle
k Decrease throttle
j Yaw left
l Yaw right

License

MIT

See LICENSE for more information

Languages

  • C
  • GLSL

Dependencies

Supported platforms

  • Web (Javascript / WebGL)
  • Native
    • Windows
    • Mac
    • Linux

Building

  • Emscripten
    • Add Emscripten SDK to your PATH (Bash: source ./<emscripten sdk>/emsdk_env.sh)
    • Run ./build_emscripten.sh
    • index.html, index.html.mem, index.data, index.js should be generated
    • Run python -m SimpleHTTPServer 8080 from heligun directory
    • Open http://localhost:8080 in your web browser

heligun's People

Contributors

jkuziel avatar

Stargazers

Noah Cohn avatar Paul m. p. Peny avatar Stefan Zellmann avatar Derek Henderson avatar frsilent avatar

Watchers

James Cloos avatar  avatar

Forkers

frsilent ford442

heligun's Issues

Add HTML buttons for mobile clients

Mobile clients do not support keyboard entry for the HTML5 canvas without hidden input elements which do not have consistent results.

Solution: Add UI button elements to the HTML page.

Need to generate a static HTML page and only generate the .js file on builds.

Add HUD

Add helicopter HUD image overlay plus VBOs for dynamic UI elements.

Add FBO support

An FBO will be needed to support mesh objects on screen in order to properly clip the objects behind terrain.

  1. Draw objects to FBO, color renderbuffer / depth texture
  2. Bind FBO depth texture to fragment shader
  3. Do not draw rays (alpha = 0) that hit the depth buffer and do not hit terrain

Fine tune player controls

  • Fix helicopter not following yaw direction
  • Adjust sensitivity of directional keys
  • Remove gravity. Have up/down keys directly control vertical velocity.

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.