Skip to content
Engine and game
C++ GLSL Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
game
tools
.gitignore This appears to fix crashes on Windows Jun 4, 2016
.travis.yml Basically ignore clang on travis.ci until they decide to update their… Apr 16, 2015
LICENSE
Makefile CXXFLAGS: skip -Wstrict-aliasing=3 for clang, it doesn't have it Dec 27, 2016
Makefile.mingw
README.md
a_fader.cpp
a_fader.h
a_filter.cpp
a_filter.h Make it compile with clang again Aug 14, 2016
a_lane.cpp Added a single instance option for audio system and fixed an issue wi… Jul 31, 2016
a_lane.h
a_system.cpp Proper logging across the engine: Sep 11, 2016
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
gui.h
icon.ico Better icon Apr 17, 2015
include.mk Cleaned up optimizer. Fixed several issues reported by matthiaskrgr. Dec 22, 2016
kdmap.cpp Actually respect what is behind the near and far clipping planes when… Dec 24, 2016
kdmap.h DRY Sep 15, 2016
kdtree.cpp This old code be changed to new style guide Dec 4, 2016
kdtree.h
m_bbox.h The new r_stats May 14, 2016
m_const.h
m_half.cpp Build with VS again and work towards getitng Win64 to run without cra… May 28, 2016
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
m_vec.cpp Cleaned up optimizer. Fixed several issues reported by matthiaskrgr. Dec 22, 2016
m_vec.h Reduce tons of state changes Sep 18, 2016
mesh.cpp PascalCase mesh stuff Jul 17, 2016
mesh.h
model.cpp Proper logging across the engine: Sep 11, 2016
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
r_billboard.h
r_common.cpp Reworked console variable system not to make any allocations with sta… Jul 31, 2016
r_common.h gpu memory information for r_stats May 16, 2016
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 Need to figure out what is going on with the batching in the ui Dec 4, 2016
r_light.cpp Stop using structures in GLSL May 19, 2016
r_light.h
r_method.cpp Reduce tons of state changes Sep 18, 2016
r_method.h
r_model.cpp Some fixes Dec 15, 2016
r_model.h PascalCase model code Jul 17, 2016
r_particles.cpp
r_particles.h
r_pipeline.cpp
r_pipeline.h
r_shadow.cpp
r_shadow.h Organize composite render buffer and method. Move some standard rende… Oct 12, 2015
r_skybox.cpp
r_skybox.h
r_ssao.cpp Put trig into its own translation unit. Dec 14, 2015
r_ssao.h
r_stats.cpp
r_stats.h
r_texture.cpp Finished some TODOs Oct 15, 2016
r_texture.h PascalCase texture Jul 17, 2016
r_vignette.cpp
r_vignette.h
r_world.cpp
r_world.h Have neoMain pass the world renderer to game code. This lets us contr… Jul 31, 2016
s_gc.cpp
s_gc.h
s_gen.cpp Reduce amount of memory allocation during parsing and code generation… Jan 7, 2017
s_gen.h Improve cache locality of instruction stream. Use stack allocation on… Dec 26, 2016
s_instr.cpp scripting optimizations Jan 7, 2017
s_instr.h
s_memory.cpp
s_memory.h
s_object.cpp Memory leaks Dec 27, 2016
s_object.h
s_optimize.cpp
s_optimize.h Cleaned up optimizer. Fixed several issues reported by matthiaskrgr. Dec 22, 2016
s_parser.cpp
s_parser.h
s_runtime.cpp
s_runtime.h
s_util.cpp Cleanup u_misc. No longer need the c99 hacks. MSVC 2015 now supports … Jan 4, 2017
s_util.h Fix script memory alignment. added s_memory_dump to see the permanent… Dec 27, 2016
s_vm.cpp
s_vm.h scripting optimizations Jan 7, 2017
texture.cpp
texture.h PascalCase texture Jul 17, 2016
u_algorithm.h
u_assert.cpp
u_assert.h
u_buffer.h
u_file.cpp Apparently this is undefined Dec 15, 2016
u_file.h
u_hash.cpp
u_hash.h
u_log.cpp Limit scripting memory Dec 27, 2016
u_log.h
u_lru.h No more "voidptr" trick as it optimizes poorly and we can't use U_MAL… Aug 13, 2016
u_map.h u::assert => U_ASSERT such that assertion fail can be [[noreturn]]. May 12, 2016
u_memory.h
u_misc.cpp
u_misc.h
u_new.cpp
u_new.h
u_optional.h Fix some issues Dec 16, 2016
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 Better handling of axii in vec3 - simplifies backtraces and also make… Mar 30, 2016
u_zip.cpp
u_zip.h
u_zlib.cpp u::assert => U_ASSERT such that assertion fail can be [[noreturn]]. May 12, 2016
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.

You can’t perform that action at this time.