Difference between revisions of "Laser Hexagon"

From Tmplab
(Game features)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
== Description ==
 
== Description ==
A personal remake of Terry Cavanagh's [http://superhexagon.com/ SUPER HEXAGON obstacle race game].
+
A personal remake of [http://superhexagon.com/ SUPER HEXAGON], Terry Cavanagh's awesome psychedelic obstacle race game.
  
Also borrowing some nice ideas from Vittorio Romeo's [http://vittorioromeo.info/projects.html OPEN HEXAGON remake].
+
Also borrowing some nice ideas from Vittorio Romeo's [http://vittorioromeo.info/projects.html OPEN HEXAGON] remake.
  
Tailored for laser projection.
+
Made for laser projection.
 +
{|
 +
| [[Image:HexagonLazer.png|link=|center|300px|Watch the video on http://www.tmplab.org/video/HEXAGONLAZER.webm]]
  
[http://www.tmplab.org/video/HEXAGONLAZER.webm Video here (W.I.P. 2015/01/29)]
+
[http://www.tmplab.org/video/HEXAGONLAZER.webm Webm video] [http://www.tmplab.org/video/HEXAGONLAZER.mp4 MP4 video] (W.I.P. 2015/01/29 : testing basic patterns in a short sequence with some randomness)
 +
 
 +
|}
 +
 
 +
Source code now available on [https://github.com/tmplab/laser-hexagon GitHub]
  
 
== Game features ==
 
== Game features ==
(work in progress)
 
  
 
Written in Python, using the [http://www.pygame.org/wiki/about pygame framework].
 
Written in Python, using the [http://www.pygame.org/wiki/about pygame framework].
Line 19: Line 24:
 
Designed with wire-frame in mind : since lasers can only draw lines, therefore even the obstacles are lines rather than solid polygons !
 
Designed with wire-frame in mind : since lasers can only draw lines, therefore even the obstacles are lines rather than solid polygons !
  
Level scripting mimics Vittorio Romeo's LUA scripts "spawn-then-wait" concept (but in a more basic way since I'm not as skilled as him !) thanks to Python's ''yield'' statement. Instead of writing complex state machines, levels get written as simple sequential programs !
+
Level scripting mimics Vittorio Romeo's LUA scripts "spawn-then-wait" concept (but in a more basic way since I'm not as skilled as him !) thanks to Python's ''yield'' statement. Instead of writing complex state machines, write your levels as simple sequential programs !
  
 
Open Hexagon's floating/rotating walls, as well as Super Hexagon's scenery-bound walls subject to the opening/closing sector effect.
 
Open Hexagon's floating/rotating walls, as well as Super Hexagon's scenery-bound walls subject to the opening/closing sector effect.
  
 +
There are currently three levels :
 +
 +
* main level (music : <u>Robot Rockerz</u> from Komputer Kontroller) : average difficulty, intended to show most of the game's features
 +
* "G-Force" remake from OPEN HEXAGON 2 (music : CPU Mood from Fantomenk) : high difficulty, extra "scissors" pattern (side walls that can crush you) ;  patterns announced by swarms of tiny side walls instead of text (not yet implemented).
 +
* beginner level (music : <u>Pirate Manners</u> from Bossfight) : pentagonal/hexagonal quickly made level
  
... and of course, source code intended to be released as soon as the game gets substantial playable content !
+
No text support yet (would be useful for credits, level names, pattern notifications, settings etc...)
 +
Some distortion effects implemented but not yet used (zoom, 3D tilt).

Latest revision as of 23:26, 7 August 2015

Description

A personal remake of SUPER HEXAGON, Terry Cavanagh's awesome psychedelic obstacle race game.

Also borrowing some nice ideas from Vittorio Romeo's OPEN HEXAGON remake.

Made for laser projection.

Error creating thumbnail: File missing

Webm video MP4 video (W.I.P. 2015/01/29 : testing basic patterns in a short sequence with some randomness)

Source code now available on GitHub

Game features

Written in Python, using the pygame framework.

Core EtherDream controller's protocol management (dac.py module) from Brandon Thomas (Echelon)'s Laser Asteroids game.

On-screen (pygame drawing primitives-based) display enables to play or design the game even with no laser at hand.

Designed with wire-frame in mind : since lasers can only draw lines, therefore even the obstacles are lines rather than solid polygons !

Level scripting mimics Vittorio Romeo's LUA scripts "spawn-then-wait" concept (but in a more basic way since I'm not as skilled as him !) thanks to Python's yield statement. Instead of writing complex state machines, write your levels as simple sequential programs !

Open Hexagon's floating/rotating walls, as well as Super Hexagon's scenery-bound walls subject to the opening/closing sector effect.

There are currently three levels :

  • main level (music : Robot Rockerz from Komputer Kontroller) : average difficulty, intended to show most of the game's features
  • "G-Force" remake from OPEN HEXAGON 2 (music : CPU Mood from Fantomenk) : high difficulty, extra "scissors" pattern (side walls that can crush you) ; patterns announced by swarms of tiny side walls instead of text (not yet implemented).
  • beginner level (music : Pirate Manners from Bossfight) : pentagonal/hexagonal quickly made level

No text support yet (would be useful for credits, level names, pattern notifications, settings etc...) Some distortion effects implemented but not yet used (zoom, 3D tilt).