3rd Party Models/Media Chat / Pirate Myke New Train Tracks - WIP

Author
Message
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 15th Feb 2017 15:21 Edited at: 15th Feb 2017 16:43
There are plans using amen Moses script source. Track lengths and curve radius need to be evaluated still, to see what is the best length for the script. How to split the wheels from the chassie and how much performance hit will determine this.
Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 16th Feb 2017 05:09
A video of the cube map shader in action.
Real time lighting right now. Different cubemaps for inside the roundhouse and for outside stuff.
Still working on the windows, don't quite have the reflection on them yet.

Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 16th Feb 2017 07:29
I've been bit distracted recently with other stuff, not enough hours in the day etc.

Lee promised new Lua commands so I was waiting to see if any of them were ones I had requested (i.e. commands to get info about Entity dimensions & FPE settings would be nice) but I'll probably have to go ahead with what we currently have.
Been there, done that, got all the T-Shirts!
PM
AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 16th Feb 2017 21:23
Ok so this is doing my head in, first pic shows the track, it's a circle.

Second pic is the bogey at the start of a track section, it's on the track as it should be.

Likewise third pic at end of track section.

Fourth pic otoh is in the centre of a track section. Grr.



Been there, done that, got all the T-Shirts!

Attachments

Login to view attachments
PM
granada
Forum Support
22
Years of Service
User Offline
Joined: 27th Aug 2002
Location: United Kingdom
Posted: 16th Feb 2017 22:12
Quote: "Fourth pic otoh is in the centre of a track section. Grr."


I'm sure you will sort it out eventually

Dave
Windows 10 Pro
GeForce GTX 1050 Ti
AMD FX (tm)-9590 Eight-core Processor
31.96 GB RAM
1920x1080,60 Hz
PM
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 16th Feb 2017 22:42
@ Amen Moses: What can I do to assist?
Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 16th Feb 2017 22:54
I'm thinking that the curved tracks aren't quite as curved as they should be, they are probably only a tiny bit out.

Is there some way you can check that?

If they do have the right curvature then I'm at a loss to figure out what's going wrong.
Been there, done that, got all the T-Shirts!
PM
AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 16th Feb 2017 23:15
Just did some in game measuring, the radius at the ends is 1534 game units, radius in the centre is 1525! Not much in it but that explains why the bogey is off the track in the centre.

I could put a frig factor in the math to account for it I suppose.
Been there, done that, got all the T-Shirts!
PM
AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 17th Feb 2017 00:03
One frig factor later ...


Works though!

Basically that's the code that positions the bogey on the curved track, in this case 1200 units from the 'start' end of the track which is the end it rotates around.

Now I've sorted that out I will position a second bogey relative to the first then position the diesel unit on top of them automagically.

Hopefully by the end of the weekend I'll have an engine going around in a circle, after that comes the hard part!
Been there, done that, got all the T-Shirts!
PM
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 17th Feb 2017 02:44
Yes, I can remake the curve tracks. Some of the difference may be to trying to get these to align in the game engine seamless.

Let me work on that. Nice that you for a way to check for deviation and have it work.

Lee has started the AI stuff and you can read about it in his progress thread addendum in the first post.
Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 17th Feb 2017 15:28
I doubt if Lee is working on anything that will help control vehicles yet, sounds more like he is planning on improving the Lua scripts (in addition to stairs of course, I'm intrigued to find out how he does it!) for ai characters.

Been there, done that, got all the T-Shirts!
PM
AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 18th Feb 2017 14:06 Edited at: 18th Feb 2017 14:14
Latest progress, two bogeys and engine all positioned correctly by script in real time. Going to have lunch then start on moving it.

Another angle.
Been there, done that, got all the T-Shirts!

Attachments

Login to view attachments
PM
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 18th Feb 2017 14:11
Excellent.
Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

granada
Forum Support
22
Years of Service
User Offline
Joined: 27th Aug 2002
Location: United Kingdom
Posted: 18th Feb 2017 14:16
Very cool, must be nice seeing your models come to life Pirate Myke .

Dave
Windows 10 Pro
GeForce GTX 1050 Ti
AMD FX (tm)-9590 Eight-core Processor
31.96 GB RAM
1920x1080,60 Hz
PM
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 18th Feb 2017 14:24
It is exciting that they could be able to follow a set of tracks, it will open up a lot of stuff.
There will be a lot of rework to do on the train cars for this. But it should be worth it.
Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 18th Feb 2017 15:26


Time for a video methinks.

A nice slow shunt.
Been there, done that, got all the T-Shirts!
PM
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 18th Feb 2017 15:55
Sweet. Great start.
Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 18th Feb 2017 16:15


Faster, higher res example.
Been there, done that, got all the T-Shirts!
PM
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 18th Feb 2017 16:57
That looks great. It follows along nice with the wheels turning also.
Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

granada
Forum Support
22
Years of Service
User Offline
Joined: 27th Aug 2002
Location: United Kingdom
Posted: 18th Feb 2017 19:03
Very nice .

Dave
Windows 10 Pro
GeForce GTX 1050 Ti
AMD FX (tm)-9590 Eight-core Processor
31.96 GB RAM
1920x1080,60 Hz
PM
AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 18th Feb 2017 19:08 Edited at: 18th Feb 2017 19:08
To add smoke or not to add smoke that is the question ....
Been there, done that, got all the T-Shirts!
PM
arfur9
12
Years of Service
User Offline
Joined: 23rd Jan 2012
Location: Cold op norf UK
Posted: 18th Feb 2017 20:06
This looks really cool well done guys...
Its a diesel innit? Smoke normally bad if its diesel lol

looking at this reminded me there's a really cool program called MS Physics for Sketchup
AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 18th Feb 2017 20:08


Too much?

Cold engine!
Been there, done that, got all the T-Shirts!
PM
AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 18th Feb 2017 22:26


Less smoke, hey PM, got any steam engines?
Been there, done that, got all the T-Shirts!
PM
AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 19th Feb 2017 12:46


Been there, done that, got all the T-Shirts!
PM
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 19th Feb 2017 20:32 Edited at: 19th Feb 2017 20:35
No steam engines yet. I would like to do one. It would be a lot of rigging and would take a bit. But I should start one.

The script is coming along very nice. Makes everything look better. Great job.

I like the smoke, but I think I would make the decal more transparent. You could have a few decals for these for different states of the diesel engine. Bad fuel mix, cold starting, and fully warmed up, Blown up.
Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 19th Feb 2017 21:22
The smoke is actually using the StartParticleEmitter command, not sure what that does under the hood but it would be nice if Lee could give us more control over it.

Do you know how to make decals btw?
Been there, done that, got all the T-Shirts!
PM
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 19th Feb 2017 21:51 Edited at: 19th Feb 2017 21:55
I can make decals, But the particle system is still hard coded, Can only use one decal.
One of the effects is for explosions and has multiple decals used. But at this time we no way I know to initialize it other then the engine explosions.

Game Guru\Files\effectbank\explosion.

If you get this free program called WTV, It will show you the decal cells when you open one in it.
http://www.nvidia.com/object/windows_texture_viewer.html


The magenta color is the alpha channel being shown.
Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 19th Feb 2017 23:05
I can see the decal sheets in Gimp but I wondered how they are actually created in the first place, is there a Gimp plugin maybe?

One option would be to have a bunch of different smoke-puff decals, maybe 20 or so, for each type of smoke, then the script simply choses a number of them at random and places them starting at the exhaust stack and working backwards gradually scaling them up.

One addition Lee could make which would allow decals to be far more effective would be to have a Lua command that could set a transparency value to an entity, basically so you could fade them out and fade them back in again. Not sure if that is technically feasible in GG but would allow all sorts of SFX to be generated.

Think how much better this would look if the decals could be faded in and out:

Been there, done that, got all the T-Shirts!
PM
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 20th Feb 2017 03:34
That would be great.
Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

arfur9
12
Years of Service
User Offline
Joined: 23rd Jan 2012
Location: Cold op norf UK
Posted: 20th Feb 2017 08:01 Edited at: 20th Feb 2017 08:03
this is the Gimp plugin I use
Also this does nice fire

I think the fire one has a little bug in 2.8 but the fix is in the commebts
synchromesh
Forum Support
10
Years of Service
User Offline
Joined: 24th Jan 2014
Location:
Posted: 20th Feb 2017 11:15
Incredible work here ....
Pushing GG further than ever ....
The only person ever to get all his work done by "Friday" was Robinson Crusoe..
PM
AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 22nd Feb 2017 22:34 Edited at: 23rd Feb 2017 00:07
Next step, moving from track piece to track piece.



And yes I know its going backwards.



Going forwards now, and I must have had too much to drink, I'm seeing double.
Been there, done that, got all the T-Shirts!
PM
AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 23rd Feb 2017 21:47
Not seeing any performance issues yet

Been there, done that, got all the T-Shirts!
PM
OldFlak
GameGuru TGC Backer
9
Years of Service
User Offline
Joined: 27th Jan 2015
Location: Tasmania Australia
Posted: 23rd Feb 2017 22:05
Man that's good - awesome work AmenMoses!

Pirate Myke, you must be jumping with joy m8.

Reliquia....
Intel(R) Core(TM) i3-4160 @ 3,60GHz. 8GB Ram. NVidia GeForce GTX 750. Acer 24" Monitors x 2 @ 1920 x 1080. Windows 10 Pro 64-bit.
PM
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 23rd Feb 2017 22:19
I am jumping with joy. It is nice to see them moving and following the tracks.

Amazing stuff Amen Moses.
Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 23rd Feb 2017 22:28 Edited at: 23rd Feb 2017 22:29
Well currently the scripts only work for the left and right curve sections, I need to sit down and work out the other track pieces and then add carriages, figure out what to do about points, add some collision detection so the trains don't just drive through each other (boy does that look weird!) add acceleration and deceleration ... etc

The way it works is you name the train parts, T1E for the engine, T1C1 for the first carriage T1C2 for the second etc, the bogeys would then be called T1EB1 for the primary bogey (this one basically controls where the train is on the track and its speed and direction) and T1EB2, carriage bogeys would be T1C1B1, T1C1B2, T1C2B1 etc. Up to 9 trains with 9 carriages each using this simple naming convention.

The tracks are named in such a way that the scripts can figure out the mathy bits, i.e. RC1 is right hand curve type '1' that's what I've called it anyhow , the track layout script at present simply builds a list with 'next' and 'prev' fields but this will be built upon when I start playing with points, each bogey works out where it should be on the track and the engine or carriage piece just positions itself with respect to it's bogey pair.

It's not rocket science .. yet ..

Will be interesting to see how many trains moving at once before the FPS dips below 60.
Been there, done that, got all the T-Shirts!
PM
AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 23rd Feb 2017 22:53
Answered my own question, 6 engines took it down to 50 FPS! (and I have a beast of a PC). Will have to experiment to see if turning off collision gives better performance (I assume it will), maybe I could only turn on collision when the player is close?
Been there, done that, got all the T-Shirts!
PM
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 23rd Feb 2017 23:14
Sweet. you have put a lot of thought into this.
Thank you.
Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 24th Feb 2017 21:34
For the carriages would it be possible to have a very low poly count? The engines obviously need more detail but there will obviously be a lot less of them compared to carriages.

I only ask because my experiments seem to indicate the slow down in performance is all in the rendering, I even reduced the texture file sizes but it didn't make any difference, the slow down seems to be purely related to GG rendering the engine models.

As my level doesn't contain any animated trees or buildings and I have a way more powerful computer then normal folk (not I'm not normal, far from it!) would probably have it is slightly worrying that only 6 engine models and 12 bogeys cause such a slow down, if I add one more engine the movement starts to appear jerky. (note that even if the models are stationary the FPS reduction occurs and the scripts slider isn't even registering if you look at the video I posted earlier, all the processing is on rendering)

How about two types of model? Static models having more detail than those intended to move around maybe? If a train is moving the lack of polys in the model will be far less noticeable than one you can walk up to and look at close up.
Been there, done that, got all the T-Shirts!
PM
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 25th Feb 2017 00:52
This would be possible. I will rework the carriages.
Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 25th Feb 2017 01:15
Is there any possibility of reducing the poly count on the bogeys? They aren't really very visible after all and for distant viewing they don't really even need to be animated as beyond a certain distance you wouldn't be able to see the animated wheels. I'm not a modeller so don't know much about LOD stuff but is it possible to have a model that close up is animated but beyond a certain distance is not if that makes sense.

I don't have any carriage models btw, If you send me some I can do some performance testing to see how a complete train behaves.
Been there, done that, got all the T-Shirts!
PM
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 25th Feb 2017 01:30
I will have to make a low poly set of all these. Right now all the trains are fully details with mesh (poly count). There are actually no LOD's in the examples I sent to you.

I was going to have to have two sets of these anyway, as Light mapping and LOD don't get along well at all.
Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

Earthling45
8
Years of Service
User Offline
Joined: 3rd Sep 2016
Location: Zuid Holland Nederland
Posted: 25th Feb 2017 03:31
Simply awesome to read this whole thread, hats off to both of you.
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 25th Feb 2017 04:12
Thank you.
Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

AmenMoses
GameGuru Master
8
Years of Service
Recently Online
Joined: 20th Feb 2016
Location: Portsmouth, England
Posted: 28th Feb 2017 01:24


New bogeys made a significant improvement, back up to 60 FPS. I did reduce the textures to 1024x1024 as I didn't see the point in them being any higher res than that but on my beast of a machine texture size doesn't really make much of a difference to performance.

Been there, done that, got all the T-Shirts!
PM
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 28th Feb 2017 02:02
Excellent. I will work on reduced poly cars them selves. Not to low, I still want detail.
Looking great.
Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 31st Mar 2017 07:47
Needed some model me time so I started this steam locomotive. Will be based off the Santa FE 2-10-2 style.



The start:



Getting the wheels done:

Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

Errant AI
Forum Support
18
Years of Service
User Offline
Joined: 24th Aug 2006
Location: [REDACTED]
Posted: 1st Apr 2017 00:54
You two make a mighty team! The track following has me stunned. Looking forward to seeing that steamer in action.
Gigabyte P67A-UD4-B3, Intel Core i7 2600K (passmark 8555), 16GB Corsair DDR3, EVGA GTX 970 SC (passmark 8637), Win10 Pro 64-bit, Primary monitor @ 1920x1080, secondary monitor @ 1280x1024
Pirate Myke
Forum Support
14
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, California
Posted: 1st Apr 2017 19:46
Some Linkage and Guide progress.




Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz, 2400 Mhz, 4 Core(s), 4 Logical Processor(s), 8gb RAM, Nvidia gtx660, Windows 7 Pro 64bit, Screen resolution 1680 x 1050.

Login to post a reply

Server time is: 2024-11-22 01:41:12
Your offset time is: 2024-11-22 01:41:12