C++ GLSL Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
docs
game
tools
.gitignore
.travis.yml Basically ignore clang on travis.ci until they decide to update their… Apr 16, 2015
LICENSE
Makefile
Makefile.mingw
README.md optional typing for Neo language Dec 22, 2016
a_fader.cpp Moving to PascalCase for class names Jul 17, 2016
a_fader.h
a_filter.cpp
a_filter.h Make it compile with clang again Aug 14, 2016
a_lane.cpp
a_lane.h
a_system.cpp
a_system.h
a_wav.cpp
a_wav.h Moving to PascalCase for class names Jul 17, 2016
c_complete.cpp
c_complete.h
c_config.cpp
c_config.h
c_console.cpp
c_console.h
c_variable.cpp
c_variable.h
engine.cpp
engine.h
grader.cpp more PascalCase Jul 17, 2016
grader.h
gui.cpp Fix the buffer overflow issue on window size change Dec 22, 2016
gui.h
icon.ico
include.mk
kdmap.cpp
kdmap.h DRY Sep 15, 2016
kdtree.cpp
kdtree.h
m_bbox.h
m_const.h
m_half.cpp
m_half.h Force all allocations to be aligned by 16-bytes Aug 8, 2015
m_mat.cpp Fixes, cleanups and ability to set the audio driver Jul 29, 2016
m_mat.h
m_plane.cpp
m_plane.h
m_quat.cpp
m_quat.h
m_trig.cpp
m_trig.h No more libm needed Jul 4, 2016
m_vec.cpp
m_vec.h
mesh.cpp
mesh.h
model.cpp
model.h
neothyne.rc
neothyne.sln
neothyne.vcxproj
neothyne.vcxproj.filters
packages.config Did not want to commit SDL2 into that, thanks VS! Jun 4, 2016
r_aa.cpp
r_aa.h
r_billboard.cpp Better rendering statistics May 15, 2016
r_billboard.h
r_common.cpp
r_common.h
r_composite.cpp
r_composite.h
r_gbuffer.cpp
r_gbuffer.h
r_geom.cpp
r_geom.h
r_grader.cpp
r_grader.h
r_gui.cpp
r_gui.h
r_light.cpp
r_light.h Stop using structures in GLSL May 19, 2016
r_method.cpp
r_method.h
r_model.cpp Some fixes Dec 15, 2016
r_model.h
r_particles.cpp
r_particles.h The new r_stats May 14, 2016
r_pipeline.cpp
r_pipeline.h Pipeline cleanup May 14, 2016
r_shadow.cpp
r_shadow.h
r_skybox.cpp
r_skybox.h
r_ssao.cpp
r_ssao.h
r_stats.cpp
r_stats.h
r_texture.cpp
r_texture.h PascalCase texture Jul 17, 2016
r_vignette.cpp
r_vignette.h vignette opacity option Oct 12, 2015
r_world.cpp
r_world.h
s_gc.cpp
s_gc.h
s_gen.cpp
s_gen.h
s_instr.cpp
s_instr.h
s_memory.cpp
s_memory.h
s_object.cpp
s_object.h
s_optimize.cpp
s_optimize.h Cleaned up optimizer. Fixed several issues reported by matthiaskrgr. Dec 22, 2016
s_parser.cpp Reduce amount of memory allocation during parsing and code generation… Jan 7, 2017
s_parser.h
s_runtime.cpp
s_runtime.h
s_util.cpp
s_util.h
s_vm.cpp scripting optimizations Jan 7, 2017
s_vm.h
texture.cpp
texture.h PascalCase texture Jul 17, 2016
u_algorithm.h
u_assert.cpp
u_assert.h
u_buffer.h
u_file.cpp
u_file.h Avoid even more useless IO Apr 18, 2016
u_hash.cpp
u_hash.h
u_log.cpp
u_log.h
u_lru.h
u_map.h
u_memory.h
u_misc.cpp
u_misc.h
u_new.cpp
u_new.h Optimize the zeroing of memory for garbage collected objects and gene… Sep 27, 2016
u_optional.h
u_pair.h Remove compressed list and signed left shift template stuff. Improved… Aug 11, 2015
u_set.h
u_stack.h
u_string.cpp
u_string.h
u_traits.h
u_vector.h
u_zip.cpp Cleaned up optimizer. Fixed several issues reported by matthiaskrgr. Dec 22, 2016
u_zip.h Avoid doing so much IO for ZIP operations Apr 17, 2016
u_zlib.cpp
u_zlib.h

README.md

Neothyne

Neothyne is an attempt at getting back to the roots of good old twitch shooting akin to that of Quake World.

Here's what it looks like currently

Philosphy

A modern dependency free game engine to make a twitch shooter with

Status

As of late Neothyne is just an engine offering

  • Efficent KD-tree (which allows for)

    • Efficent static and sweeping collision detection
    • Efficent scene management
    • Smooth world traces for accurate and efficent collision response
  • Deferred renderer (which can do)

    • Directional lighting (with ambient and diffuse terms)
    • Specular lighting (with power and intensity terms)
    • Point lighting (with omnidirectional shadow mapping)
    • Spot lighting (with shadow mapping)
    • Skybox
    • Soft particles
    • Normal mapping (dot3 bump mapping)
    • Displacement mapping (steep parallax and relief mapping)
    • Fog (linear, exp and exp2)
    • Fast approximate anti-aliasing (FXAA)
    • Screen space ambient occlusion (SSAO)
    • Vignette
    • View frustum culling
    • Skeletal model animation (IQM)
    • Variable color grading (supporting)
      • Color balance (shadows, midtones and highlights)
      • Hue, lightness and saturation
      • Brightness and contrast
  • Scripting language (Neo language)

    • Heavily inspired by Javascript, C++, Lua, Ruby, C#, Java (In order of inspiration)
    • Dynamically typed (with optional typing)
    • Structured
    • First class values
    • Lexically scoped
    • Type rich (function, method, bool, int, float, string, array, object)
    • Object oriented (Single inheritence multiple-interface)
    • Garbage collected
  • Fire and forget audio mixer (which can do)

    • Multiple sound sources (global and local)
    • Faders (adjust volume, speed, panning over time)
    • Dynamic audio control
      • Fade volume, speed, panning, etc.
      • Panning
      • Speed
      • Filters
        • Echo
        • Biquadratic Resonance Filters
          • Low pass
          • Hi pass
          • Band pass
        • DC Blocking
      • Audio grouping
  • Immediate-mode graphical user interface (which can do)

    • Buttons
    • Items
    • Check boxes
    • Radio buttons
    • Windows
    • Collapsible areas
    • Labels (left-justified text)
    • Values (right-justified text)
    • Sliders (horizontal and vertical)
    • Indentation
    • Headers (vertical separations and lines)
    • A variety of raw rendering primitives (such as)
      • Lines
      • Rectangles
      • Text
      • Images
      • Models
  • Console (which allows for)

    • Global configuration
    • History and tab completion
    • Reactive changes to various engine components (including renderer)
  • Asset optimization (which can do)

    • Online texture compression
    • Online linear-speed vertex cache optimization
    • Online half-precision float conversion
    • DXT end-point optimization (helps old hardware DXT decode fetches)

Goals

  • Networking (client/server model)
  • Build the game
  • Scripting

Etymology

  • Neo (Old English from Proto-Germanic: nawiz, nawaz, i.e: "corpse")
  • Thyne (Old English: thyn, þyn. Cognate to German: dein, i.e: "yours")

In modern English: "your corpse"

Screenshots

An imgur album of screenshots showing the engine and development of it can be found here

Build

Please check the build documentation

System requirements

Neothyne requires a GPU which is capable of GL 3.0. Modern low profile GPUs may function poorly. (Note: Some cards are advertised as being GL 2 capable, but with newer drivers, can become GL 3 capable. This is the case for some cards in the GeForce 8 series, for example.)

Documentation

Documentation may be found in the `docs' directory.