Ranger-Go-IGE

module
v0.0.0-...-2a9dfdc Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 13, 2021 License: MIT

README

Ranger-Go-IGE

Ranger-Go-IGE (IGE) is a continuation of RangerGO.

As was RangerGo, so is IGE, a variation of the Ranger Dart game engine but written in Go but using OpenGL and GLFW.

This version is the great merging of RangerGo, RangerGo-GLFW and Ranger-Alpha.

Video demos

Gif of c4_lava example

Gif_c4_lava

Gif was made using ffmpeg -i c4_lava.mkv -r 30 -vf scale=512:-1 c4_lava.gif

mkv version of video is in docs folder.

Audio

Sfxr

Games

  • Port Spout (standard)
  • Spout custom. In this verion instead of particles for the obstacles the obstacles are outlined with a polygon. The poly is updated when part of the obstacle is destroyed.
  • Port StarCastle / Star Barriers
  • Port Bosconian
  • Port Omega Race
  • Port 2048
  • Create New Game. A blend of Lunar Lander (Sky and Landings), Moon Patrol (Ground), Atari Pitfall (Obstacles), Defender (Rescue). Multi-planet and Moons.
  • Create a 1946 shooter like clone.
  • Create a BurgerTime like clone.

Demos

  • Combine vector fonts with tweening and physics. The text rotates and then randomly falls to the ground. Then the text moves back inline using tweening.
  • A triangle spaceship (with particle exhaust) that can fly around and shoot characters. The chars bounce off walls like asteroids.
  • A qix like demo where lines move around the view. Each end point bounces off the walls.
  • Particle system demo(s)
  • Infinite side-scrolling demo. A UFO can move left/right forever. The terrain is procedurally generated using One-Lone-Coder's algorithm.
  • Infinite scrolling demo using a top-down view. Again using OLC's algorithm. In this demo you can "drive" over a terrain and encounter different objects.
  • 2D Light shadows.

Tools/Apps

Current Tasks and Goals

  • OpenGL 4.x Core
  • Pixel Font (Slow version)
  • Pixel Font (Faster version)
  • Static shapes: Circle
  • Dynamic shapes: Line
  • Space mappings
  • add Outline shapes
  • Alpha coloring / transparency
  • Node Dragging
  • Zoom Node
  • Filters: transform and translate
  • Particles
  • Animation (tweening) Using tanema's library: https://github.com/tanema/gween
  • Box2D physics (with space ship). Uses: https://github.com/ByteArena/box2d
  • Zones combined with Zoom
  • Interpolation
  • Sprite Textures (quads)
  • Scene Transitioning
  • Bitmap fonts
  • Simple motion animations
  • Audio (SFXR 8bit sound: https://sfxr.me/) (However, 16bit stills needs completion)
  • working Custom vector font (needs lower case completion)
  • Vector Fonts via SVG import
  • Partial Completion QuadTrees
    • Example 1: Random spread of points/particles into tree (with capacity)
    • Example 2: Random spread of squares
    • Example 3: Insert squares at Mouse
    • Example 4: Triangle ship moving through tree
    • Example 5: Query and highlight tree according to obj-obj intersecting
  • Improve Bitmap fonts. Rename current bitmap font object to "CharacterBitmapFont" and add new one called "StringBitmapFont". The new one creates a buffer of quads.
  • Scripting via https://wren.io/ or make custom language using via http://craftinginterpreters.com/
  • Simple Widget GUI framework
    • Buttons
    • Checkboxes
    • ListBox and Combo dropdowns
    • Inputs (text, float, int, bool)
    • Text
    • Dialogs (OK, Yes/No, etc.)
    • Grouping (i.e. Radio buttons)
  • Batch rendering
  • OpenGL ES (https://github.com/golang/go/wiki/Mobile)
  • Physics with Textures
  • Joysticks and Gamepads
  • Shaders with interleved vertex/color, for example, checkboards
  • Stippling with OpenGL patterns (aka advanced shaders)

Directories

Path Synopsis
assets
display
Package graphics provides visual
Package graphics provides visual
io
rendering
Package rendering defines features of shaders.
Package rendering defines features of shaders.
examples
tests
svg
tools

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL