Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Author
Message
Pincho Paxton
23
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 9th Jun 2012 17:07 Edited at: 9th Jun 2012 17:20
I've made a Wipeout car, now I need to make a Wipeout Track. I went back, and found a good track editor for standard driving games. I figured that it would be good to take this into a modelling package to finish it off with banks, walls, and scenery...

http://forum.thegamecreators.com/?m=forum_view&t=158864&b=8&p=0

I ended up with this mesh...



But maybe it is too high poly? What do you think?

Maybe someone can help me to reduce the poly's in the link above which the track editor, or maybe it has to be this high poly?

I don't know much about vertex editing to fix the original code. Something in here needs changing. All I want is some big rectangles...



Pincho Paxton
23
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 9th Jun 2012 17:55
It's OK, I've got it down to a reasonable size now.

Pincho Paxton
23
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 9th Jun 2012 18:31 Edited at: 9th Jun 2012 18:40
Well, I got it down to this, but I still can't figure out where it gets 6 across from...



Here's the code, tell me if you can figure out how to reduce 6 tiles across....



Pincho Paxton
23
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 10th Jun 2012 20:04 Edited at: 10th Jun 2012 20:05
This part makes the width limbs, there are 6 limbs wide, and I just want one...

Quote: "`function make_straight_ahead_object(obj)
` make object cube obj,1
` if object exist(50000) then delete object 50000
` make object cube 50000,1
` if mesh exist(1) then delete mesh 1
` make mesh from object 1,50000
`
` add limb obj,1,1
` offset limb obj,1,40,10,0
`
` add limb obj,2,1
` offset limb obj,2,-40,10,0
`
` add limb obj,3,1
` offset limb obj,3,70,30,0
`
` add limb obj,4,1
` offset limb obj,4,-70,30,0
`
` add limb obj,5,1
` offset limb obj,5,90,70,0
`
` add limb obj,6,1
` offset limb obj,6,-90,70,0
`
` if object exist(50000) then delete object 50000
` if mesh exist(1) then delete mesh 1
`
`endfunction"



This part gets the limb positions to make vertex...

Quote: "posx1=limb position x(t1,6)
posy1=limb position y(t1,6)
posz1=limb position z(t1,6)

posx2=limb position x(t1,4)
posy2=limb position y(t1,4)
posz2=limb position z(t1,4)

posx3=limb position x(t1,2)
posy3=limb position y(t1,2)
posz3=limb position z(t1,2)

posx4=object position x(t1)
posy4=object position y(t1)
posz4=object position z(t1)

posx5=limb position x(t1,1)
posy5=limb position y(t1,1)
posz5=limb position z(t1,1)

posx6=limb position x(t1,3)
posy6=limb position y(t1,3)
posz6=limb position z(t1,3)

posx7=limb position x(t1,5)
posy7=limb position y(t1,5)
posz7=limb position z(t1,5)

posx8=limb position x(t2,6)
posy8=limb position y(t2,6)
posz8=limb position z(t2,6)

posx9=limb position x(t2,4)
posy9=limb position y(t2,4)
posz9=limb position z(t2,4)

posx10=limb position x(t2,2)
posy10=limb position y(t2,2)
posz10=limb position z(t2,2)

posx11=object position x(t2)
posy11=object position y(t2)
posz11=object position z(t2)

posx12=limb position x(t2,1)
posy12=limb position y(t2,1)
posz12=limb position z(t2,1)

posx13=limb position x(t2,3)
posy13=limb position y(t2,3)
posz13=limb position z(t2,3)

posx14=limb position x(t2,5)
posy14=limb position y(t2,5)
posz14=limb position z(t2,5)"


And this part makes the vertex from those positions...

Quote: " create_vertex(1,v_num,posx8,posy8,posz8,rgb(255,255,255),0,0)
write float 1,posx8:write float 1,posy8:write float 1,posz8
inc v_num
create_vertex(1,v_num,posx2,posy2,posz2,rgb(255,255,255),u#*1,1)
write float 1,posx2:write float 1,posy2:write float 1,posz2
inc v_num
create_vertex(1,v_num,posx1,posy1,posz1,rgb(255,255,255),0,1)
write float 1,posx1:write float 1,posy1:write float 1,posz1
inc v_num

create_vertex(1,v_num,posx8,posy8,posz8,rgb(255,255,255),0,0)
write float 1,posx8:write float 1,posy8:write float 1,posz8
inc v_num
create_vertex(1,v_num,posx9,posy9,posz9,rgb(255,255,255),u#*1,0)
write float 1,posx9:write float 1,posy9:write float 1,posz9
inc v_num
create_vertex(1,v_num,posx2,posy2,posz2,rgb(255,255,255),u#*1,1)
write float 1,posx2:write float 1,posy2:write float 1,posz2
inc v_num


create_vertex(1,v_num,posx9,posy9,posz9,rgb(255,255,255),u#*1,0)
write float 1,posx9:write float 1,posy9:write float 1,posz9
inc v_num
create_vertex(1,v_num,posx3,posy3,posz3,rgb(255,255,255),u#*2,1)
write float 1,posx3:write float 1,posy3:write float 1,posz3
inc v_num
create_vertex(1,v_num,posx2,posy2,posz2,rgb(255,255,255),u#*1,1)
write float 1,posx2:write float 1,posy2:write float 1,posz2
inc v_num

create_vertex(1,v_num,posx9,posy9,posz9,rgb(255,255,255),u#*1,0)
write float 1,posx9:write float 1,posy9:write float 1,posz9
inc v_num
create_vertex(1,v_num,posx10,posy10,posz10,rgb(255,255,255),u#*2,0)
write float 1,posx10:write float 1,posy10:write float 1,posz10
inc v_num
create_vertex(1,v_num,posx3,posy3,posz3,rgb(255,255,255),u#*2,1)
write float 1,posx3:write float 1,posy3:write float 1,posz3
inc v_num


create_vertex(1,v_num,posx10,posy10,posz10,rgb(255,255,255),u#*2,0)
write float 1,posx10:write float 1,posy10:write float 1,posz10
inc v_num
create_vertex(1,v_num,posx4,posy4,posz4,rgb(255,255,255),u#*3,1)
write float 1,posx4:write float 1,posy4:write float 1,posz4
inc v_num
create_vertex(1,v_num,posx3,posy3,posz3,rgb(255,255,255),u#*2,1)
write float 1,posx3:write float 1,posy3:write float 1,posz3
inc v_num

create_vertex(1,v_num,posx10,posy10,posz10,rgb(255,255,255),u#*2,0)
write float 1,posx10:write float 1,posy10:write float 1,posz10
inc v_num
create_vertex(1,v_num,posx11,posy11,posz11,rgb(255,255,255),u#*3,0)
write float 1,posx11:write float 1,posy11:write float 1,posz11
inc v_num
create_vertex(1,v_num,posx4,posy4,posz4,rgb(255,255,255),u#*3,1)
write float 1,posx4:write float 1,posy4:write float 1,posz4
inc v_num


create_vertex(1,v_num,posx11,posy11,posz11,rgb(255,255,255),u#*3,0)
write float 1,posx11:write float 1,posy11:write float 1,posz11
inc v_num
create_vertex(1,v_num,posx5,posy5,posz5,rgb(255,255,255),u#*4,1)
write float 1,posx5:write float 1,posy5:write float 1,posz5
inc v_num
create_vertex(1,v_num,posx4,posy4,posz4,rgb(255,255,255),u#*3,1)
write float 1,posx4:write float 1,posy4:write float 1,posz4
inc v_num

create_vertex(1,v_num,posx11,posy11,posz11,rgb(255,255,255),u#*3,0)
write float 1,posx11:write float 1,posy11:write float 1,posz11
inc v_num
create_vertex(1,v_num,posx12,posy12,posz12,rgb(255,255,255),u#*4,0)
write float 1,posx12:write float 1,posy12:write float 1,posz12
inc v_num
create_vertex(1,v_num,posx5,posy5,posz5,rgb(255,255,255),u#*4,1)
write float 1,posx5:write float 1,posy5:write float 1,posz5
inc v_num


create_vertex(1,v_num,posx12,posy12,posz12,rgb(255,255,255),u#*4,0)
write float 1,posx12:write float 1,posy12:write float 1,posz12
inc v_num
create_vertex(1,v_num,posx6,posy6,posz6,rgb(255,255,255),u#*5,1)
write float 1,posx6:write float 1,posy6:write float 1,posz6
inc v_num
create_vertex(1,v_num,posx5,posy5,posz5,rgb(255,255,255),u#*4,1)
write float 1,posx5:write float 1,posy5:write float 1,posz5
inc v_num

create_vertex(1,v_num,posx12,posy12,posz12,rgb(255,255,255),u#*4,0)
write float 1,posx12:write float 1,posy12:write float 1,posz12
inc v_num
create_vertex(1,v_num,posx13,posy13,posz13,rgb(255,255,255),u#*5,0)
write float 1,posx13:write float 1,posy13:write float 1,posz13
inc v_num
create_vertex(1,v_num,posx6,posy6,posz6,rgb(255,255,255),u#*5,1)
write float 1,posx6:write float 1,posy6:write float 1,posz6
inc v_num


create_vertex(1,v_num,posx13,posy13,posz13,rgb(255,255,255),u#*5,0)
write float 1,posx13:write float 1,posy13:write float 1,posz13
inc v_num
create_vertex(1,v_num,posx7,posy7,posz7,rgb(255,255,255),u#*6,1)
write float 1,posx7:write float 1,posy7:write float 1,posz7
inc v_num
create_vertex(1,v_num,posx6,posy6,posz6,rgb(255,255,255),u#*5,1)
write float 1,posx6:write float 1,posy6:write float 1,posz6
inc v_num

create_vertex(1,v_num,posx13,posy13,posz13,rgb(255,255,255),u#*5,0)
write float 1,posx13:write float 1,posy13:write float 1,posz13
inc v_num
create_vertex(1,v_num,posx14,posy14,posz14,rgb(255,255,255),u#*6,0)
write float 1,posx14:write float 1,posy14:write float 1,posz14
inc v_num
create_vertex(1,v_num,posx7,posy7,posz7,rgb(255,255,255),u#*6,1)
write float 1,posx7:write float 1,posy7:write float 1,posz7
inc v_num"



Now, I tried to reduce this down to a single limb width. And I used posx4,posx5,posx11, and posx12. I REMed out the rest. It nearly worked but I had gaps in my triangles. Vertex have to be joined up in a certain way. I don't know how to rebuild the track with the vertex positions that use just one limb.

Le Verdier
14
Years of Service
User Offline
Joined: 10th Jan 2012
Location: In the mosh-pit
Posted: 10th Jun 2012 21:20 Edited at: 26th Nov 2012 20:36
Hi
Here's another track editor I made some time ago.
There's some bugs left, no error control and unfinished functionalities but it is workable enough
It focuses on the track mesh, which can be exported to favorite 3D App (.x and .obj)
I'm no longer developping it but maybe it can be helpful..
A help file, a mini tutorial and a demo track are also included
(requires msrt71, maybe Win7 problems...)
Feel free to explore it!..

New version
http://forum.thegamecreators.com/?m=forum_view&t=201783&b=8&msg=2412859#m2412859

Pincho Paxton
23
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 10th Jun 2012 22:00
OK thanks! I'll take a look.

chafari
Valued Member
20
Years of Service
User Offline
Joined: 2nd May 2006
Location: Canary Islands
Posted: 11th Jun 2012 00:36
Hi there.

@Le Verdier
Tested and no problem in windows vista. I have to say that I like your program. As you comment, it is workable enough.

Cheers.

I'm not a grumpy grandpa
Pincho Paxton
23
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 11th Jun 2012 02:19 Edited at: 11th Jun 2012 02:21
Quote: "requires msrt71"


On Google you are the only person that ever uses the term msrt71. But it runs OK anyway. I did have a bit of a problem with the banking as I couldn't figure out how to smooth it out, but it is easier than making the banking in a modelling package anyway.

Indicium
18
Years of Service
User Offline
Joined: 26th May 2008
Location:
Posted: 11th Jun 2012 02:40
What is the poly count on the track model?


They see me coding, they hating.
BatVink
Moderator
23
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 11th Jun 2012 12:28
Pincho, I've attached my spline track-modelling tests. The tools above are what you need, but this code might help you understand how to piece things together, and it also shows how smooth a track can be when it is only one poly wide.

The test code start by creating one section from 2 polys, then stringing them together, then making tracks from multiple sections (So you can hide them for example), then it makes hills from them too and finally drops a track onto a terrain and moulds itself to the hills.

The beauty of moulded tracks is, the banks make themselves, simply by dropping it on a suitable terrain. They can also be far more complex with very little effort in the track-building stage.

It's only test code, you'll have to restart after running each part of the demos.



Pincho Paxton
23
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 11th Jun 2012 13:43 Edited at: 11th Jun 2012 13:59
Ok, I am trying to get it to work. What is...ezro_objorbit (Unrecognised?)

Ok I've found EZRotate, now the program stops at this line....
dim arrlines() as tLines

tLines unrecognised?

BatVink
Moderator
23
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 11th Jun 2012 13:58
It's been a while since I looked at this code, I forgot I use EzRotate to simplify some of the maths when generating random tracks. It's not used in the actual track-creation.

I think I used that one to make it easier to make a circular track over the hills. I use the command to orbit around the central point, but you could use plain maths to do the same (if you want a boring circular track!)

I've attached the executable so you can run it without needing EzRotate.

Pincho Paxton
23
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 11th Jun 2012 14:13 Edited at: 11th Jun 2012 14:15
Add to Queue does not match Array Names(0)...

add to queue arrlines()

The demo is very smooth. I figured that I didn't need more than one mesh wide. And the amount of scenery in Wipeout doesn't really let you waste poly's.

BatVink
Moderator
23
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 11th Jun 2012 14:21
The errors you're getting are odd, but this code is a couple of years old. I did compile it ok here to post the demo.

This video is why I developed those tests, although I never finished it. It's a track editor that moulds to the terrain. The idea was that you make a terrain map in greyscale however you like (Photoshop, Bryce etc), then drop your track on afterwards and design it for the terrain you made. You could even add red dots to map the track, and apply it in code using the mesh code. The order of the dots would be determined by the red component (section 1 pure red, to last section being a lighter shade of red)

Food for thought, good luck with it, I always look forward to seeing racing games



Pincho Paxton
23
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 11th Jun 2012 14:38
Yeah a good idea, I suppose I should try to create my own meshes, but I am thinking of the time scale for making all of those buildings in Wipeout.. there are a lot of buildings.

chafari
Valued Member
20
Years of Service
User Offline
Joined: 2nd May 2006
Location: Canary Islands
Posted: 11th Jun 2012 15:13
@BatVink
Your video looks awesome. I don't know why but every example I try to execute gives me an error about Ezro_ ... I have the free version. I tried with the free Ezro dll into the folder but get the same error. If I rem that line, I get the same error as Pincho Paxton
Quote: "Add to Queue does not match Array Names(0)..."


I'm still using 1.074 as new 1.077 crash with my vista

Cheers.

I'm not a grumpy grandpa
Pincho Paxton
23
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 11th Jun 2012 15:52 Edited at: 11th Jun 2012 16:06
I'm getting the hang of Le Verdier's editor now. It's really good once you get used to it. 2 meshes wide is better than 6. I still need to add rims though.

You get this which has banks, and hills...


BatVink
Moderator
23
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 11th Jun 2012 16:19
Yes, I'm quite envious of the track editors in this thread, they got a lot further than I did. With a good track/scene editor, there would be far more racing games out there.

Regarding the Add To Queue error, it may be down to the IDE you are using. I don't put (0) in the brackets and that may be the issue.

I have the paid for EzRotate. You don't need it for the mesh code, just the demos.

Pincho Paxton
23
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 11th Jun 2012 16:46 Edited at: 11th Jun 2012 16:48
I tried (0) but it came up with the same error.

Your editor looks good as well, but I need the banks to bend inwards, and I don't need a landscape. But your poly count is probably the best.

Pincho Paxton
23
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 11th Jun 2012 20:35
Once I added the track rails I got... Polygons = 6656 from the Le Verdier editor... that's a lot.

Le Verdier
14
Years of Service
User Offline
Joined: 10th Jan 2012
Location: In the mosh-pit
Posted: 11th Jun 2012 22:01
It isn't so high... Consider some optimization like
dividing the track into several zones and load into several objects rather than a big one
Consider also dividing and regrouping polygons with the same texture into the same object

Pincho Paxton
23
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 11th Jun 2012 22:11
Yeah I can merge faces. I was only wondering if there was a vertex setting that halved them. I found a setting to set the height, so I thought maybe length was in there as well.

Le Verdier
14
Years of Service
User Offline
Joined: 10th Jan 2012
Location: In the mosh-pit
Posted: 11th Jun 2012 22:24
There's is a setting (track settings/double quality) for doubling them...(smoother curves..)
If you meant delete the "central line" to have one square, maybe using SketchUp (With .obj plugin import..) but the textures UV will have to be reworked.. not recommended..

paul5147
20
Years of Service
User Offline
Joined: 11th Jan 2006
Location: Hot & Sunny
Posted: 18th Jun 2012 11:41 Edited at: 18th Jun 2012 13:47
Hi Pincho,not been on the forums in a while,glad to see someones making use of my track editor at last.The reason for using the multiple limbs for the width of the track is to be able to make tracks that are not flat in profile,so they can have walls or banks added to them seamlessly,and so i could do one strip of texture for the whole track width.I havnt been using DBPro for a while now but if i can dig out the old hard drive ill have a look at the code and see if i can nock up a quick example for you.
-Edit-
Had a quick look at the editor part of the code and this function,

is what sets the positions for the track data limbs,if you where to change the "y" values of the offset limb commands you could change the profile of the track to a u shape for example,this was left in from the original editor that actualy banked the track automatically on corners,as my original idea was for a wipe out type game as shown in one of my early atempts at a video shown in the link in the first post.
http://www.youtube.com/watch?v=Zz92LEnmg24

-Edit-
Found my old hard drive backup from before it mechanically destroyed itself (bearings went) leaving the platters in bits.
This is a zip of all i had left,its quite a large file.
Remember to run the programs in this order,

1-Track Editor -And remember to preview the track,press space as thats what saves the actual polygon data for later use.

2-Landscape Editor v1.1 - Just sit back and wait,this bit saves out all its own media and creates a different fractal based landscape each time it run,so if you don't like the first one,just run it again.

3-Track Scenery - Again sit back and wait and then add/delete what you want, remember to save once done.If you really mess up then just restart it.

4-Loader - This is a basic viewer to sit and watch your creations with.If you like one then remember to copy all the data and media into a new folder or the next time you run any of the above editors it will be destroyed forever due to the hard coded file names in them!!

Hope this helps you or any one else that wants a go with it.

https://dl.dropbox.com/u/6261172/Race%20Track%20Builder.zip
(wont let me embed the link for some reason so you will have to cut and paste it)
Pincho Paxton
23
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 18th Jun 2012 14:00
Hey thanks Paul! Exactly what I need.. seamless ridges around the track. So I just set the Y. That means I can move on to the buildings, which I have been looking forward to starting.

paul5147
20
Years of Service
User Offline
Joined: 11th Jan 2006
Location: Hot & Sunny
Posted: 18th Jun 2012 14:04
No problem Pincho,you can even stretch out the "x" coordinates to change the width of the track,just don't touch the "z"`s!!! or all manner of nasty things will happen,good luck.
Pincho Paxton
23
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 18th Jun 2012 14:06
I was wondering about the width. I also have to make forks, and loops but I can export it to a modeller for that.

paul5147
20
Years of Service
User Offline
Joined: 11th Jan 2006
Location: Hot & Sunny
Posted: 18th Jun 2012 14:24
If my hard drive hadn't crashed i even had that covered with a pit lane of sorts that could fork off and on to the track,it wasn't a lot of work to add as long as you kept the profile flat,but in your case the modeler is probably the better idea.If i had the time i would pick this back up,but the amount of work i spent on this after this point was huge,i merged it all back into one tool with a file system and my own gui after BlueGui ate some of it!!Loops are quite easy to do,just bare in mind that when approaching a loop you would be able to see through the back side of track making it invisible unless you create both sides of the track.Let me know how you get on.It would be interesting to know if you have downloaded the zip file and tried any of the tracks i had saved to see what fps you get with them.
Pincho Paxton
23
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 18th Jun 2012 14:34 Edited at: 18th Jun 2012 14:36
Quote: "...just bare in mind that when approaching a loop you would be able to see through the back side of track making it invisible unless you create both sides of the track."


I could create both sides of just the loops. I need to make sure that nothing vanishes from any angle. But your Y idea can be used to cover the sides up. I will widen the track, and use some of those extra poly's up.

Login to post a reply

Server time is: 2026-07-08 14:12:13
Your offset time is: 2026-07-08 14:12:13