reshaping the arena

For developmental things relating to the graphics of the game.
Post Reply
User avatar
philippeqc
Long Poster - Project Developer - Sage
Posts: 1526
Joined: Mon Jul 12, 2004 8:55 am
Location: Stockholm
Contact:

reshaping the arena

Post by philippeqc »

Hi all,

In this post I will present my plans for the "arenas". I'm a bit stressed on time, so please keep an open mind when reading the post. I've been pondering for a while and I came with the following:

While armagetron(and other similar games) is a 2d based games with a 3d display, nothing forces it to stay that way. In the following, I will present a new structure that would permit 3d shaped structures and possibly much more.

Some terms.
Here I define some term I've used to structured my ideas. You may not like the names I've assigned to them. These refer to terms inside the code. I do not desire for these terms to replace their equivalent in "during game chat". They are just to make easy distinction between programming and map design elements.

I've inspired myself of the romain colliseum for the names of the components, but I may have stretched their definitions. Remember that the arena was not only filled with sand for gladiator fighting, but sometime, it would be filled with water for naval fights, or some different patches of forest would be layed in the arena to depict different hunts at the same time (with differents wild beasts in each parts).

Field: The basic construction element. A field is a 2d surface that is bounded (is has an edge, ie: it is not infinite in any direction). A simple implementation might limit them to triangles. They could be more complex, but always limited to a completly closed set of edges (the last point goes to the first). A field is always located "inside" of the edges that define it (you cant just define a hole in an infinite plane). A field has 2 surfaces where the vehicules moves. A field can be connected to other fields on its edges. The connecting segments may be all or part of an edge, but the whole part shared is considered connecting. A field may have parts of its edges that are not connected to any other fields (for the moment, a non-connected edge is a "wall" ie: you die if you pass it. Future idea may include falling off the surface, but I havent any good concept yet). A field may be oriented in any way in space.

Arena: An arena is a collection of interconnected fields. (ie: from one field, it is possible to travel and to reach all the other fields, even if you have to visit many. but no floating fields)

Now lets give some examples.
-The classical shape could be build of 2 triangles fields. No difference in play from the current implementation. They just lie on the same plane in space.
- Assembling 6 square shaped fields, a cube could be assemble, allowing the players to move on every faces in a 3d arena.
- A moebius ring could be made by a series of rectangles (actually by many triangle, but its easier to imagine with rectangles) turning a bit from each other. For those who dont know what a moebius ring is, take a strip of paper. As you go to glue both end toghether, turn one by half so that the "opposing" face are glued. Now take a pen, and start drawing along the middle of the strip for the whole lenght. You will come back after a while to your starting point, but you looking at the ring the line will be on both "sides". A moebius ring only has one side. Try it, its really fun.
- And many more...

There are not holes in fields. To make a donut shape, just assemble 2 cresent shaped fields. This has the advantage of simplifying the sturctures. Otherwise a "hole" need to be defined, then someone whant an "island" in the hole, then someone whants a "lake" in the island in the hole... and so on.

Why shouln't it be weirder than now? In the current implementation, there are a bunch of eFaces (triangles if I understand properly). Every vertical wall are on the edge of a eFace. but the players still perceive the whole as a flat surface.

This separation allows for many very fun (and complexe) arenas. To the argument of "it will be too hard to play", well a natural selection will occur, and only maps of the right complexity will be played. But by allowing a freedom of shape, I beleive many interesting ideas will spur.

Now for the really weird stuff, if you didnt think that was weird enough:

Colliseum: A colliseum hold 1 or many arenas. Arenas are visible from one to another if properly positionned.

Another example to illustrate this:
- A big square has a hole (one arena) with another square with a hole inside (another arenat) with a third square within (third arena)
- A cube (one arena) floats in space near a piramyd (another arena). Ok, yes, much stranger. It implied some way of moving between arenas, but why not.

The "rim" is at the colliseum level. You cant "see" beyond the colliseum. There is a wall, or its all dark, but that is the limit of vision. In the classic game, once you leave the rim, your out of the colliseum. In the first example, the biggest arena may hold the "rim" wall in the classical sence, but if might just be a very big bubble around everything.

Empire (like a roman empire): An empire hold one or more colliseum.

Ok, I agree, it gets really wacky at this point. But why not. It allows for a "what is behind the wall". It might be that to switch from one empire to the next, you get shipped to another server. Or another game on the same server, or its just a very complex map, but it permits a lot.

I beleive with this structure, or at least the field-arena, very nice maps can be created. No need for specialised structures like over and under pass. It allows for future ideas such as "this field energizes you" (what ever it may mean) or "this field teleports you" or "this field accelerate you", as its only an effect to add to a field, rather than a new graphical object to create.

I really see it as a progression. First the field-arena. Later we implement the colliseum, then later we do the empire.
-------
Yes, there is a second part. Now the funs really begins. I make the separation to help you cope with it. ;)
-------

Directions.
At the moment, the games only permits 4 direction. North, east, south, west. Some ppl have though, what if we could go in diagonal? Adding north-east, south-east, north-west, south-west. All of this is good, but could we generalise?

I say we can.

Direction: a vector describing a possible movement by a vehicule. This vector has to lies in the plane of the field that hold it (ie: you have to move on the surface of the field, you cant go away or in it). A vector only allows deplacement along its positive side (more on that). At the moment, I will add the restriction that directions have to be equally distributed in the plane (they need the same angle between them).

for the confused mind, and I would be one, some example:
- 4 directions, so 90 degrees between them. This is what we are used to. North, east, south, west. Just to reassure you that nothing is lost.
- 8 directions, so 45 degrees between them. The example with north-east and all is using 8 directions.
But now I ear the curious mind telling me, Philippe, why not just devide by 2? Well, imagine now with....
- 3 direction, so 120 degrees between them. North, something like east-south-east and something like west-south-west. You can move up, to the right and down a bit or to the left and down a bit. But not directly down. Nor on the "opposite" direction. That could make things interesting. Of course, if you want to allow the opposite direction, you just have to use....
- 6 directions, so 60 degrees between them. Or 120 degrees, but both direction allowed.

For the curious about the effect on driving of the cycle, it's going to be the same as the moment. Clicking once on "right" will make you move on the next "right" direction (clock-wise). So the same as when your moving west on a 4 directions (normal setting), and you turn right, you are now moving north, moving west on a 8 direction and turning right would make you go north-west.

By dealing with positive direction instead of axes (the mathematical axe, a line that goes both direction), it permits some interesting effect such as odd number of direction, without restricting on the slightly more regular effect of allowing to move on both direction of the axe just by doubling the number of directions. [pfff, who did get that one?]

If that was too much for you, stop now, because....

Directions are defined for each fields.
Which means you could be driving casually (as casually as you can in armagetron) on a 4 direction field [lets say the face of a cube] and as you change to another face of the cube, bam! its now 5 directions on this field!

I've already worked some math to figure out how to deal with that, finding the "best direction" from where you come to minimise the amount of jerking between fields. Because there will be some when you pass from one field to the next, even with 4 directions.

Of course, the number of directions has to be greater than 2, but I dont see a need for an upper bound. Leave it to a drunken group to have fun with one gazillion (or just an inconveniently slightly high number such as 11 or anything that takes too much time to turn efficiently) directions, but maps containing them wont spread to many server ass they will be boring to more sober players.

As before, I want to allow new original gameplay through unusual possibilities, but without restricting on the more "regular" gameplay. Some fun maps may have 5 directions all over them. Some other may just have a small zone with 3 and be 4 direction otherwise. Some will have a very architectural structure, with pillars and vaults where cycles will zoom, while some will have a flat design, but wont leave anyone with any flat impression. But all my ideas leave maps designer free to decide, and make us enjoy their creative work.

Once again, I appologize for the quality of my details. I'm a bit limited on time, and cant revise it. So just ask, and I'll try to explain in better details my unholy vision.

-ph
Canis meus id comedit.
User avatar
Tank Program
Forum & Project Admin, PhD
Posts: 6712
Joined: Thu Dec 18, 2003 7:03 pm

Post by Tank Program »

Wow. Holy Crap. If you could do that... That would be a fantastic break through for the game, and we'd steal of of GLTron's players ;). Seriously if you think you can do that, that would be so cool...

(btw, I get your description)
Image
User avatar
klax
Project Developer
Posts: 481
Joined: Tue Jun 08, 2004 3:51 pm
Location: Barcelona, Spain
Contact:

Post by klax »

If you can do it go on ;)

But with some ideas I smell an almost complete rewrite of armagetron...

I'll need to reread several times the post to completely understand it and post some doubts. Arg my english lol :lol:
User avatar
iceman
Reverse Adjust Outside Corner Grinder
Posts: 2448
Joined: Fri Jan 09, 2004 9:54 am
Location: Yorkshire, England. Quote: Its the fumes, they make one want to play
Contact:

Post by iceman »

I already post these ideas here ages ago ! (should still be here unless someone deleted them :evil: )
Image He who laughs last, probably has a back-up
Image
Image
sorry about the large animated gif
User avatar
philippeqc
Long Poster - Project Developer - Sage
Posts: 1526
Joined: Mon Jul 12, 2004 8:55 am
Location: Stockholm
Contact:

Post by philippeqc »

iceman wrote:I already post these ideas here ages ago ! (should still be here unless someone deleted them :evil: )
Can you find them back? I'm at a client so I cant really just surf around. I'd be interested to know what you proposed and mostly, how.

I just jolted it all down as ppl where moving on the arenas re-design during my vacations. It was great to see the progress, but I wanted to state my goal to avoid possible conflicts.

thanks

-ph
Last edited by philippeqc on Wed Jul 28, 2004 8:43 am, edited 1 time in total.
Canis meus id comedit.
User avatar
philippeqc
Long Poster - Project Developer - Sage
Posts: 1526
Joined: Mon Jul 12, 2004 8:55 am
Location: Stockholm
Contact:

Post by philippeqc »

Tank Program wrote:Wow. Holy Crap. If you could do that... That would be a fantastic break through for the game, and we'd steal of of GLTron's players ;). Seriously if you think you can do that, that would be so cool...
Well, its what I'm aiming for. Still lots to read in the code. But if anyone is enterested, I'm more than ready to team up for the task.
Tank Program wrote:(btw, I get your description)
Thanks
Canis meus id comedit.
User avatar
philippeqc
Long Poster - Project Developer - Sage
Posts: 1526
Joined: Mon Jul 12, 2004 8:55 am
Location: Stockholm
Contact:

Post by philippeqc »

iceman wrote:I already post these ideas here ages ago ! (should still be here unless someone deleted them :evil: )
Humm, tryied to locate it, but I couldnt. Could you give me a hand to find that elusive post?

-ph
Canis meus id comedit.
User avatar
Lackadaisical
Shutout Match Winner
Posts: 823
Joined: Sun Dec 21, 2003 4:58 pm
Location: Amsterdam, Netherlands
Contact:

Post by Lackadaisical »

yeah the idea for having more complex arena's have been around a long long time, but i havent seen anyone making a detailed description about it like this one.. good job, looking forward to see how this is going to evolve :)

and i think iceman refers to this topic: http://guru3.sytes.net/viewtopic.php?t=645
ishAdmin
Match Winner
Posts: 625
Joined: Sun Jul 04, 2004 12:11 am
Contact:

Post by ishAdmin »

You know what would be cool. If you could drive from one server to the other instead of disconnecting, going through the list, connecting. The servers could be actively linked. This would fit in with your connected arenas thing.

How would you drive between them. It could be different in every arena. There could be portals along the wall. You could hit a key for a list to 'teleport' to. Other creative ways could be thought up. If it's full, you can't enter, it shows a closed sign or disappears. Each server could have only certain other servers as an output option. Going from one to another could have no guarantee you can get back.

Entrance could be to an active game at an invisible point. Maybe even a randomly moving point. There would be risk in changing servers/arenas, part of the thrill! You would join the game right then, no waiting for the start of a round.

Stats could be all linked, and other goodies too.
Image
User avatar
philippeqc
Long Poster - Project Developer - Sage
Posts: 1526
Joined: Mon Jul 12, 2004 8:55 am
Location: Stockholm
Contact:

Post by philippeqc »

Because its always after posting a "I cant find you post" that you actually find it.... my appologies to iceman.

I found 2 post related to this one.

http://guru3.sytes.net/viewtopic.php?t= ... ight=arena
http://guru3.sytes.net/viewtopic.php?t= ... ight=arena

I'll overuse the cut-and-paste inside a quote segment, so if I distord your meaning, its totally and solely my fault and I appologize for it.

from the first link:
iceman wrote: ok heres an idea that would add a whole new level to the game
we already have turn left & turn right
now add turn up & turn down !
basically you can drive in all directions inside a cube shaped arena !
Personnally, I dont think it would be interesting. It is much more complex to cross 2 lines in 3D than in 2D. To block someone, you have to close a volume, not just a surface. But I have to admit I only spend a quarter of an hour trying to figure out how to make it work, so I might be wrong on that. I'm ready for any additional ideas on that.
iceman wrote: i had an idea once for no walls wrap around arena
Yep, thought about that one too for a long time ago, but you posted it first, so I give credit to Ceasar. It becomes an infinite universe centered on you. You could theorically keep on driving in the same direction for ever (as the camera is always cetered on you, vs nokia's snake where the screen view is fixed). With my proposed model, on the server side it _could_ be easy. Just indicate that one side of the field is "touching" the opposite side. The rendering part becomes a bit more tricky, but not impossible. (I add a bit on that later)

***
from the second link now
***
subby wrote: What would make a cool variation would be mapping the game grid onto a sphere with no outside walls, wall length would have to be less than the circumference of the "tron planet" otherwise a person could just maka long wall and never turn.
Credit to Ceasar again! I didnt mention curved surface in my first post as I was limited in time, and well, too much is just too much. But I have some thoughts about it.
First , cylindrical surface. Well, you just map a rectangle over it. Server side, its nothing special. Its just the rendre that becomes more complex. Or you do it with a bunch load of small rectangles.

Second, spherical surface. Humm, that one is much more interesting. I've worked out 2 ways of dealing with it.

Longitute-Latitude. The motion in a 4 directions (normal method) mode occurs parallely to the lines normally set on a terestrial globe. Very close to the poles, there is a small region where you cant move on the lattitude (ice cap), as turning there is pure suicide (the full circle at this zone is only a few pixels, and moving on it would bring you back to your own wall in the blink of an eye). This is probably what would be the most popular, or at least easiest way of understanding deplacement on a sphere. But it is only valid for a 4 direction system.

Full-circle (ok, crappy name). Imagine starting at the equator at longitude 0 (is that grenwich?), and moving north. Half-way there, on the 45 parallel, turn right at exactly 90 from your current direction. You are now on a FULL CIRCLE trajectory. To come back to this point, you will move south and cross the equator at -90 longitude (some where in the indian ocean), cross over autralia, then in the pacific, you will reach your southern apoge at 180 longitude by -45 lattitude and will start to travel north. You will cross the equator again near the west coast of south america and move back toward your the point where you turned.

It is the trajectory a statellite would do around the globe. If you project it on a rectangle map of the world, it appears to be a sine. The particuliarity of this model is that your new direction is always at a certain angle from the direction you had when you turned. And after every turn, you are always set on a trajectory that makes your go around the whole circonference.

A positive effect of the second model is that the direction model can be partially preserved. While turning will never bring you parallel to a pre-defined direction like defined before, it is possible to make the cycle turn the right amount so that the angle is true at the point where the turn occured.

Their might be other ways of dealing with moving on curved surface, and I'd be interested into your ideas on that point.

Iceman talking about arena that connect opposing side...
iceman wrote: t may also cause some major fps problems as the arena would be infinite size so some kind of z-clipping would also need to be added
Yes, every time the camera would point toward the horizon, a bigger zone should be rendered, even if its copies of the same small field, and your fps would drop. The fps would raise again as the camera view point drops to the ground.

Majination wrote:
what about a soccer ball shaped arena? This would give you several small planes to fight on as well as making the transition driving into another section smoother all around without dealing with the sphere and cube's extreme variances.
I don't think playing on a polyhedron would work, unless it was a cube. Anything else, and the sides are no longer at right angles. The problem with this would be that as you transition from one flat surface to the next, continuing in a straight line, parallel and perpendicular walls just aren't going to exist; any bike driving onto your flat area from a different one that you entered on will be driving at another angle. There wouldn't be a chance to grind or pick up speed, and you would have to make a lot of course corrections to avoid the angled walls around you.
Not necessary. "Paralellism" is conserved between fields, even when crossing from one set of direction to another. The transition from direction A on the frist field will always map to direction B on the second field. So two lines will stay "parallele", but the distance between the lines will probably change.

Where you will have problem is when the 2 lines end up on 2 different fields. After the transition, they might be convergeant or divergeant. I dont see it as a problem, just a new strategy.
Majination wrote: Depending on its size, a sphere might work because all bikes would be able to run along the same longitudinal and latitudinal lines. Grinding to pick up speed would present a problem if the sphere wasn't large enough, though, because the distance between two lines of longitude gets greater the closer you get to the equator and closer at the poles.
Well, all longitunal lines meet at the poles, making it a sure death spot for anyone but the first to pass it.

On a big sphere, grinding someone ahead of you as she/he moves toward a poles, you would get closer to his/her trace, grinding it more and more, catching more and more on the distance. Quite a fun strategy. While moving toward the equator, you'd have to make a few corrections depending on where you started and the size of the sphere. But still playable. As I said in my first post, there will be a natural selection on the size and format of arenas. Similar to the "brakes accelerate", some ppl despise it, some live and dies by it.
Majination wrote: Of course, you could just screw longitude/latitude and drive around in concentric circles... Thinking about it now this would be the way to go because all walls would be parallel or perpendicular, but I can imagine some programming challenges already, heh. If driving in a tight circle around a pole the entire grid would appear to be very small to one side, dropping off out of view to see space, sky, atmosphere or whatever is "out there". Hehe. I imagine game play in these areas would be quite deadly, quickly coming up on your opponents trails, and your own!
Humm, took me a few read, but yes. That is a neat way of moving on a sphere. It is good for grinding paralleles lines. So there was a third way. Is there a fourth? I mean that you would like to play on.
n54 wrote:btw about cubes:

- how would grinding along the joint of two plnes be rendered, and how would it affect players coming at the trail from 90 degrees (the other plane), would they need to touch the bottom of the trail (ie. the other plane) before they explode? either way it could be wildly confusing.
- how would grinding across the joint be rendered, or even worse, what about the corners?
- camera/overview becomes a problem as there would be very abrupt changes
Well, considering that I've just played a game where, in spectator mode, I've seen 2 cycles so closes to each other, as one double the other, only one was visible as they occuped the exact same volume, I'm not too worried about the rendering aspect. It's only a game, not scientific calculations.

Ok, the game engine need to check if there is a cycle trace on a neigborh field that would accelerate you (grinding), but thats not really heavy. As for collisions when a cycle crosse the height of a parallel trace (from another field), I say we discard it at the moment. The whole concept is really a 2d game. All occurs in the plan. You box someone in a 2D structure. The height is just added for our poor human brains. But later implementation should take care of our poor brains and in time deal with collisions with the height of a trace from neighbor's fields.

And about rendering 2 cycle traces crossing each other as they sit on different fields, well, I'm ready to live with that to play on a cube or other shapes. But yes, your points are valid. you need to fix the engine for the grinding. I'll keep that in mind.

-ph

My new moto: keep post under 3 pages. Yeah sure, that will happen

Nota: About giving credit to Ceasar, Lackadaisical posted the first link as I was writing this post.
Canis meus id comedit.
User avatar
philippeqc
Long Poster - Project Developer - Sage
Posts: 1526
Joined: Mon Jul 12, 2004 8:55 am
Location: Stockholm
Contact:

Post by philippeqc »

ishAdmin wrote:You know what would be cool. If you could drive from one server to the other instead of disconnecting, going through the list, connecting. The servers could be actively linked. This would fit in with your connected arenas thing.
Yes, one colliseum is hosted on one server, another colliseum member of the same empire on a neighbor server.

But the interconnection will be really heavy, long delays, and add a complexity to programming. I saw it more as the whole empire sitting on a machine. During the login process, you can select among the different colliseum as your start up point the same way you select a server, or, the entries points are defined in the map, like a set of fixed point in one or many colliseum, or the system just throws you in a safe location computed at run time in any of the colliseum. But I took care to describe it so it would allow this kind of possibilities.

Nota: it wouldbe hard to distributes arenas (as I define them), as I stated that all arenas in a colliseum should be visible.

-ph

Nota of the edit: the second to last paragraph was the following. This is what tank refers to, I'm sorry for the confusion:
But the interconnection will be really heavy, long delays, and add a complexity to programming. I saw it more as sitting on the same machine, even if during the login process, you can reach different colliseum. But I took care to describe it so it would allow this kind of possibilities.
Last edited by philippeqc on Sun Aug 01, 2004 7:16 pm, edited 1 time in total.
Canis meus id comedit.
User avatar
Tank Program
Forum & Project Admin, PhD
Posts: 6712
Joined: Thu Dec 18, 2003 7:03 pm

Post by Tank Program »

Wow, those are some excellent ideas. As for graphical server browsing, could the say, names of each one be displayed in a giant circle and you drive around the circle and turn right at the one you want to enter? It would be kindof hard I think to have it show an actually picture of the current gamestate... Eating bandwith & server resources...
Image
Post Reply