Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (513)
Games in Android Showcase (120)
games submitted by our members
Games in WIP (577)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  game idea: "space wars" on Klein bottle surface?  (Read 1175 times)
0 Members and 1 Guest are viewing this topic.
Offline philfrei
« Posted 2014-05-18 02:35:22 »

Maybe this has already been done? Just a brainstorm I had today about a possible game:

I was trying to envision a two-person shoot-at-each-other game in 3D, where one races around on a semi-transparent Klein bottle surface. Controls would be "classic": turn left, turn right, forward thrust and shoot, but the implementation would be over the geometry of a Klein Bottle surface.

I'm imagining the bulk of the screen being POV (for the individual player), but with maybe a 3D model/map on the side.

Part of the charm, on the surface in front of you, the "enemy" might be right-side-up (on the same surface as you) or upside-down and slightly blurry (on the "other side" of the Klein bottle). One would have to get a feel for the geometry of how to approach/ambush. Bullets would follow along the surface, curving around as the surface curves, but would die before they loop back to their origin! (No shooting self in the butt except in the narrow neck areas.)

Any thoughts on the math needed to make this work? Thought it might be a neat collaborative project.

Part of the problem: Klein bottles are by definition a "non-orientable" surface. So the coding of travel directions for "straight lines" for visuals, flight paths, bullet trajectories, would require some thought! Maybe every point on the surface is encoded as if a tangential plane but with some sort of curvature component...iieeyyaah! Or maybe it is no worse than putting a cartesian coordinate system onto a sphere? This is the first time I've tried to actually think about this.

"It's after the end of the world! Don't you know that yet?"
Offline HeroesGraveDev

JGO Kernel


Medals: 269
Projects: 11
Exp: 2 years


┬─┬ノ(ಠ_ಠノ)(╯°□°)╯︵ ┻━┻


« Reply #1 - Posted 2014-05-18 02:39:37 »

How would you handle the 3D intersection (where in 4D it would not happen)?

Offline UprightPath
« Reply #2 - Posted 2014-05-18 02:45:53 »

Aren't old-school game maps (Of the wrapping over head sort) basically these? I'm just saying that you can probably model it by doing positions based off of one of these maps but with some sort of mapping that states that if you're more than 1/4th a map length away on the height/length of the bottle (arbitrary Y axis) then you're on opposite 'sides' of the surface?

Further, the circumfrence surface (Arbitrary X axis) could be controlled by some sort of mapping that adjusts the relative radius of the infinite cylinder.

Of course, this doesn't help if you want to include the wonkiness of the handle if you honestly want the world to be shaped like a klein bottle.

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Online LiquidNitrogen
« Reply #3 - Posted 2014-05-18 04:04:02 »

is it possible to make a surface like that which has several branches but everything still loops on both sides of the surface?

Offline philfrei
« Reply #4 - Posted 2014-05-18 04:46:44 »

Quote
How would you handle the 3D intersection (where in 4D it would not happen)?

My first inclination would be to create some sort of rift/hole, where the 2D grid doesn't exist. I'm not sure if that is possible. I'm not a purist. Maybe just make a hole.

@UprightPath -- Your post is beyond my comprehension level.  Sad  I'd like to know more about this.

@LiquidNitrogen -- That seems like a very cool idea. I saw the picture, too, of the embedded Kline bottles. http://en.wikipedia.org/wiki/File:Science_Museum_London_1110529_nevit.jpg

"It's after the end of the world! Don't you know that yet?"
Offline UprightPath
« Reply #5 - Posted 2014-05-18 06:23:06 »

Okay, let's say you define the world to have two axises. You have the Y axis which is basically the length of the Klein bottle; The part that goes from the inner surface to the outer surface. This axis is basically infinite in that it has no edges. However, it has some length Y0 such that if you travel along for Y0 distance you arrive back at the same spot you started.

Knowing this, then for some object traveling this axis there is some point on the horizon, both in front and behind, where an object on the same axis will appear to be on the surface below the object.

Now, we look at the X axis which is basically the circumference of a cylinder. When two objects are at similar Ys they will have similar Xs (Two objects at the same Y will be able to move on the same X). Objects that are 1/2 Y0 away from each other will be on opposite sides of the surface and inhabit the same X, save being on opposite sides of the Surface.

Offline Roquen
« Reply #6 - Posted 2014-05-18 06:41:33 »

I've always like the Clifford torus (http://en.wikipedia.org/wiki/Clifford_torus).

Wouldn't the question become just finding a good projection operation for all points...one that has no local intersections in 3D?
Offline pjt33
« Reply #7 - Posted 2014-05-18 07:51:37 »

I once wrote up a design proposal for a puzzle game on a surface of genus 2, but I never made the game. I can't remember now what the reaction from the rest of the team was. IIRC I had some scheme involving 7 screens which gave the right topology, but it was a pretzel rather than a Klein bottle.

And I think I've seen occasional mention of other games which do puzzles on surfaces other than the simple plane, sphere, or torus, but no names come to mind now.

(No shooting self in the butt except in the narrow neck areas.)
Wouldn't the question become just finding a good projection operation for all points...one that has no local intersections in 3D?

I would think that you want to project symmetrically, such that (modulo textures) the view is unchanging. Then if the projection has a local intersection and a narrow neck area, pick a part of the projection which puts them way beyond the horizon so that the player is unaware of them.

Aren't old-school game maps (Of the wrapping over head sort) basically these?

No, they're tori. A bit simpler.
Offline Jono
« Reply #8 - Posted 2014-05-18 12:11:21 »

Actually it's pretty trivial to do this by just tweaking the way screen wrapping works. Right at the the top of the wikipedia page it shows how to write the mapping from left-side to right-side and top to bottom: http://en.wikipedia.org/wiki/Klein_bottle.

It's more fun when you make top map to left and bottom to right though. I've used that before as a quick way to model a planet's surface on a diamond. It has some nice properties where the longitudinal lines at the equator are longer than those near the poles which is a bit more realistic than the cylinder maps.
Offline philfrei
« Reply #9 - Posted 2014-05-18 21:11:06 »

Thought #1:
Suppose one just wanted to draw a Moebius strip on a screen in 3D, and be able to rotate it, view it from any angle. Would this pose difficulties? (In OpenGL?) I don't know much about 3D representations of surfaces. There's something about breaking things into triangles, yes? But going with that isn't there also something in the data structure about specifying whether something is "inside" or "outside" having to do with orienting the data in a clockwise or counter-clockwise order? Would that be possible for a Moebius strip?

Clearly, 3D animation of a moebius strip has been done...
https://www.youtube.com/watch?v=CMVNrxDQ5ZA

Also travelling on Klein bottles! (Note--I haven't heard the dialogue yet, my sound is effed up.)
https://www.youtube.com/watch?v=sRTKSzAOBr4

Thought #2:
Trying to think (naively, this is new to me) about the data structure for the Klien Bottle surface (to allow 3D representation and 'grid-oriented' movement). Suppose the surface was broken into unit-length "squares", and each unit has four triangles (left, forward, right, backward). For movement, the triangles would be treated "as if" each was identical in size and coplanar to interpolate the movement. However, the mapping of each quadrant-triangle to a 3D location could be more flexible to account for the various curvatures. Am assuming with the mapping that the triangles will not be the same in size nor coplanar.

Or maybe the unit would be a "diamond" with four square quadrants.

******

Any vehicles or objects moving on this surface would be 3D (have a top/bottom/sides), so that we can use both the transparency degradation (per surface) and the object's orientation to help determine visually where it is.

To get away from complications of 2-person games, maybe an "Asteroids" sort of game could be played on such a surface. Or such could be used as a stepping-stone project.

"It's after the end of the world! Don't you know that yet?"
Pages: [1]
  ignore  |  Print  
 
 

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

theagentd (5 views)
2014-10-25 15:46:29

Longarmx (52 views)
2014-10-17 03:59:02

Norakomi (45 views)
2014-10-16 15:22:06

Norakomi (34 views)
2014-10-16 15:20:20

lcass (38 views)
2014-10-15 16:18:58

TehJavaDev (68 views)
2014-10-14 00:39:48

TehJavaDev (68 views)
2014-10-14 00:35:47

TehJavaDev (60 views)
2014-10-14 00:32:37

BurntPizza (73 views)
2014-10-11 23:24:42

BurntPizza (45 views)
2014-10-11 23:10:45
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!