| Finally after a lot of hard work the Car Maker is finished and has been released! The Car Maker is included in both the multiplayer and the single player downloadable version of the game.|
- Omar Waly, explaining the release of the Editor
The Car Maker adds a bit of customisation to the game and relies fully on basic coding to make cars. It allows the user to generate polygons using coded point co-ordinates which can then built up to form whatever vehicle the user would like. After the body is created, the user can then define which two colours are changeable in the Multiplayer, the placement and appearance of the wheels, which class the car is grouped under (Class C, C & B, B, B & A, A), the statistics of car (Top Speed, Acceleration, Handling, Stunts, Strength and Endurance) and the physics of the car, which include handbrake strength, the ability to lift/be lifted by or push/be pushed by cars and how damaged the car looks when it has been hit, before being ready to test drive the car and rate it's handling. The coding language used to make these vehicles can be complex, which is why when the first time the Car Maker is loaded, a link to the Simple Car Tutorial is displayed.
There are a few methods for creating a car in the Car Maker: the pen and paper method, which is shown in the Simple Car Tutorial and requires you to draw a car out and use a ruler to find out the co-ordinate values to be written into the polygons, an .obj import, which allows users to import a model exported from a 3D modelling program like Blender using the option on the Car Maker start page (although due to triangulation of faces in the .obj, a lot of merging of polygons is required) and importing a SketchUp model using Jim's Plugin, which allows SketchUp users to convert their model to polygons within SketchUp, to be pasted into the Car Maker. The maximum limit of polygons allowed in the Car Maker is 210 due to lagging problems that would arise, especially in the Multiplayer, if more polygons are used.
The editor is available for the new downloadable edition of Need for Madness (offline), and also for the existing downloadable Muiltplayer version for people with accounts. Unregistered users can also create cars as well, but are limited to using them offline, and cannot be used during Multiplayer. This has also caused a small outrage within the Multiplayer community, especially those who cannot register.
The total number of stat points allowed depends on which class the user has put their car into and is shown below:
- Class C: 520 points
- Class B & C: 560 points
- Class B: 600 points
- Class A & B: 640 points
- Class A: 680 points
The Car Maker gives users the ability to have stats which are similar to the NFM cars, and along with the ability to access the original cars and put them in the Car Maker, this has sparked a popularity of modified NFM originals amongst the players.
The Car Maker allows users to define how the car acts when driving. There are many options for users to adjust including handbrake strength, turning sensitivity, tire grip, bounciness, how strong the car would lift or push another car in a collision, how strong the car would be lifted or be pushed in a collision, aerial control and rotation speed when performing stunts, the radius and magnitude of damage when the vehicle has been crashed into and the amount of damage to the roof, and finally, the engine sounds. There are rumours about the use of aerial control and rotation speed affecting the power drain on cars, of which is avoided by setting the stunts stat high and the control and rotation speed physics low.
Code Usage Edit
Making a polygon Edit
Polygons are created in the Code Edit section of the Car Maker using the codes <p> and </p>. In between the polygon codes, point codes which are coded as p(x,y,z) are created to define each point of the polygon. Users are limited to how many points they can have, from 3 to 100, as any more or less will result in a Java code error.
Giving a polygon color Edit
Each polygon has a distinct color under a red, green, and blue format. In the code, the format is c(r,g,b), with "c" being short for "color". For example, c(0,0,0) will a polygon appear black, c(255,255,255) will make it appear white, c(255,210,0) will make it appear yellow, and so on. This line of code will always be located under <p> when making a polygon.
gr() is a code used within a polygon code to define the grounding (foreground or background) for a polygon which is being shown incorrectly on top of or below other polygons as well as being used to add special effects to the polygon. Negative gr() values result in the polygon being rendered more closer (foreground) whereas positive gr() values result in the polygon being rendered further away (background). The full list of effects of specific values are shown below:
|gr() value||Visual effect||Description|
|No gr() used||No change in the grounding appearance. If the polygons are rendered correctly then no gr() needs to be used unless it's for special effects purposes.|
|1 to approx. 150-200||Renders the polygon behind other polygons with an outline. The larger the number, the more pronounced the effect. Note that large values (over 150) cause the polygon's outline to vary in visibility depending on how far away the polygon is from viewing range. For a stable effect that is viewable from far away, stick to between 1 and 100.|
|approx 150-200 or higher||Renders the polygon behind other polygons without an outline. The same effect can be seen without gr() when the car is viewed from very far away. Note that very large values (over 1000) cause the polygon to vary in visibility depending on how far away the polygon is from viewing range. For a stable effect, stick to between 250 and 750|
|-1 to -9, -16 and -17, -19 to approx 90||Renders the polygon in front of other polygons. The larger the negative number, the more pronounced the effect. Note that large values (over 70) can cause the polygon to vary in visibility depending on how close the polygon is from viewing range. For a stable effect that is viewable from close range, stick to between -1 and -60|
|-10||Renders the polygon's outline in the same colour as the polygon. This effect is used to make a polygon look like it is glowing.|
|-11, -12, -14||The actual effect is unknown but it has an effect of rendering the polygon as one-sided from different ranges depending on which value is used. Due to which side is visible being linked to the shading of the face, the effect can be unstable. Use fs(-1) or fs(1) to try and change/intensify which side of the polygon is visible. gr(-14) renders the polygons with even less stability.|
|-13||Renders the polygon invisible, just showing it's shadow. Can be used for hidden spikes, bumpers for wasting cars or to repair part of the vehicle's shadow which isn't rendering correctly.|
|-15||Renders the polygon as if it has been damaged. The effect varies between different polygons: some polygons may appear damaged and some polygons may just become invisible. Notice that the damage effect randomly distorts the polygon's points each time it is loaded.|
|-18||Renders the polygon's outline with an electrifying effect. This effect is similar to gr(-11), but the outline changes colour from the polygon's colour to various shades of blue. This effect is used on the checkpoints within the game.|
fs() is a code used within a polygon code to help define the face shading of a polygon, and can also be used to correct any grounding issues if gr() doesn't get the desired result. A polygon may be shaded incorrectly due to the order of the points within the polygon, with the first few polygons theoretically setting the colour of that polygon. fs() can be used to correct the shading as opposed to changing the order of the points within the polygon. This piece of code can also be used in conjunction with gr(-11), gr(-12) and gr(-14) to set the front side of the polygon (see above). The effect of fs() depends on whether a positive or negative value is used, and the effects vary with the order of the points within the polygon.
noOutline() is a code used within a polygon code to hide the polygon's outline. No value is needed in between the brackets as there is no varying effect. noOutline() can be useful for parts which are so small, the outline covers them or makes them hard to see, but can also be used to make polygons appear merged without actually merging them. A problem with noOutline() is that neighbouring outlines of other polygons don't look clean so it is recommended to just use it for small stray polygons.
newstone() is a code used at the top of the vehicle's code that hides all polygon outlines. The effect is exactly the same as noOutline() but quickens the process of hiding all outlines instead of noOutline()-ing every polygon.
stonecold() is a code that blends the polygon outlines of a model with the background colors of a stage, such as the fog and snap. This will give the model a 3D-like texture to it. This feature is used on all of the track piece models, and unlike newstone() and noOutline - it works in NFM1 and NFM2. This effect is crucial for track pieces.
BASIC CAR EFFECTS Edit
Introduced in NFM1, this function makes a model bigger or smaller in scale on every axis. Unlike idiv(), this scales the entire model by 10 instead of 100, resulting in naturally larger models and scaling. This is useful for track pieces, however it lacks precision when scaling with any integer is that isn't divisible by 10.
This function is very similar to div(), but instead of scaling the models by 10, it scales them by 100. This also scales the model on every axis, so even if the number is changed, the model's aspect ratio will still stay the same. This function was introduced in NFM2.
This is the NFM2 version of ScaleX; this function will scale the model on the X axis. A bigger number will result in a wider model while having a smaller number will make the model more slim in shape. This, along with idiv() is also scaled by 100.
Introduced in NFMM with the addition of the Car Maker, this scales a model on the X axis, resulting in a wider or slimmer model depending on the number. This works exactly the same as iwid().
Introduced in NFMM, this scales a model on the Y axis. The bigger the number, the more extruded it will be, while having a smaller number will result in a flatter model.
Introduced in NFMM, this scales a model on the Z axis. The bigger the number, the longer the model will be, while having a smaller number will make the model more scrawny in shape.
A very basic function that's been around since NFM1. This creates a shadow of the model while in-game; this is especially useful for people creating custom versions, as the car models have to have this to have a shadow drawn underneath the model. However, when used in NFMM, it serves no purpose since the Car Maker automatically detects and draws a shadow of the model. This is used on car models only.
Though Omar Waly has released it, there are still some criticisms, due to one of his notes that says that The Custom Cars will only be playable online in Need For Madness Multiplayer for registered players.
Another issue with this is the coding limit before over-coding the stage is decreased severely for test drives, and car statues will now cause errors to the stage.
Registered users have been subjected to the annoyance of unregistered users asking for passwords just for the access to the cars players have created, regardless of whether they were public or private. Also, cars were being created and published with overly sized wheels and/or rims and wheels that were too close to the center, sometimes making them almost impossible to directly waste them. The April 19th 2012 update restricts users from publishing cars with overly sized wheels along with some errors, although there have been a few instances that it can be bypassed.
|This article is a stub. Please help the insanity by expanding it, adding pictures, and improving existing text!