A Unity ID allows you to buy and/or subscribe to Unity products and services, shop in the Asset Store and participate
in the Unity community.
Separate names with a comma.
Discussion in 'Projects In Progress' started by adamgolden, Oct 12, 2020.
That's all for this week
Another mostly technical week - primarily spent adding/improving the systems noted below, bug hunting and optimizing - though I did get the main route of the "Rural 1" world (shown last week) pretty much done. So far it features several banked corners, a couple of natural jumps where the road goes over smaller hills, rails, 3 tunnels + lights on the walls, a bridge over water and several km worth of destructible fencing. The performance is currently better than both test worlds, but I expect it to be about the same once more heavily populated. I'll do another video next week.
I've added an effect of the car pushing groundcover away as it drives through it! This applies to the larger kinds that are visible between trees when the option is on Low or Medium - not to the smallest stuff that appears on High. It's still rough but good enough for now. Also reduced the amount of related mesh data that was previously being downloaded with a world by generating most of it while loading instead - resulting in several MB less per world to download or install. I also recently took to using Procedural Primitives + Mesh Deformer for generating some other stuff at runtime.
The vehicle can now smash through most things that were previously destructible only by blast (like fences) if going fast enough, which takes about 3 car lengths worth of acceleration after stopping for something like a wood fence at the side of the road. The faster it's going the stronger the effect. The debris from these things bounces around by built-in physics but will not affect the vehicle ..because while that would be more realistic, it isn't fun for anyone getting wiped out by some random flying piece of wood. If I do reconsider, it will be visual only (i.e. most debris just bouncing off the car as though it had little or no mass).
Integrated Auto Fence - including with my destructibility and LOD systems. Any fences laid out in the editor are now generated at runtime to reduce download/distro sizes. This is an improvement over my previous system, as I was baking things like guardrails into the world - which adds up to a lot of unnecessary data. Also integrated the latest version of DinoFracture.. a number of things will see improvement thanks to this vs. how they would have been.
Improved my workflow in several areas by integrating River Auto Material's RamSpline. Compared with my previous solution, it has nice gizmos and things like splitting the spline at control points, seamless end-to-end connections between multiple splines and more. Updated LOD systems to support texturing further out, in some cases texturing will now persist through them all. Raised a number of graphics options defaults again (groundcover is now set to the highest it goes, draw distance now defaults to 90% instead of 80). Probably won't be maintaining or including previous test worlds anymore - it's just taking time better spent on progress.
I've also worked through all but 1 remaining upgrade-related issue. The next live build will probably be using 2021.2.0b6. I've had an 0a20 build up for ages now. The only issue I'm still facing is related to mesh tangents and lighting in WebGL builds, but I sort of have a workaround for now anyway, so whatever.
After next week, I'll aim to have another world done each week so their landscape, sky, primary route(s), fencing and buildings are good to go. Then maybe a week total for any major improvements to things that stood out as needing attention. Then I'll focus on adding the scenarios and whatever additional scenario-specific content. Beyond that.. like beautifying more with particle systems, rethinking textures, lighting etc. depends on how much time is left before finalizing in December
This is my first draft of Suburban 1 (working title). While revisiting this for scenarios later, I'll add an off-road course and some parts of the road will be half inside the cliffs, with rock above you and seeing out over the water kind of things. I'll also quickly revisit foliage (for both 2D and 3D option).. I want to pick out some different trees and improve the variation of groundcover. Also change the night-time sky, as I'm currently reusing the one from the previous world and I'd like each to have unique skies (except for any variations like a Rural 2, 3, etc.). I lerp between this and the cubemap of the daytime sky at dawn/dusk (Shader Graph).
There are just shy of 100 houses in this world. The house models I'm using are from a free asset. They were originally textured with lots of materials, so for performance considerations I [essentially] baked their appearance to vertex color (aside from changing rooftops to dark grey) and merged submeshes so they could all use the same shared material.
The picket fences can be driven through / blown apart ..each piece of wood becomes a separate fragment. Performance while driving around in this world is about the same as the previous one (which is the same or better than test worlds). I'm currently using 2021.2.0b6, URP 12.
Here's a shaded wireframe of Suburban 1 as it stands, with nothing spawned in but the buildings, sidewalks and road markings. There are no fences/walls, signs, streetlamps, trees or groundcover:
I'll probably work on a desert next - cactii and dusty roads, tumbleweed, a highway with lots of rails, cliffs, jagged rocks, etc.
It's been a productive week I guess. I got some of the "Desert 1" environment done, though most of my attention ended up with other stuff. Roughed in the landscape, base texturing, cactii-type groundcover, did a new Shader Graph for blendy roads like these.
I also made further improvements to groundcover - it can now "taper off" instead of going from thick to nothing, to whatever threshold per material. So there's now a transition zone at the edges of sidewalks, yards, roads etc. where it gets taller.
Note, in these shots the dirt roads are 2 lanes wide - I haven't set them to single lane width yet, but they will end up the right distance apart to more closely match the space between the vehicle's tires
Among the changes I've made to systems this week.. required shader variants are now warmed up during load processes instead of all at once during startup (which can take a while) or during gameplay (which causes stutter), so for example while game data downloads and while worlds are loading in, variants that will be needed are queued for warming. A single variant is handled in a frame, then after a given delay another, and so on. If this is happening while a new world is loading, the progress bar will wait at 100% until the queue is empty if it's not by the time the world is ready. If this ever causes any grief (i.e. it's waiting for more than a moment), I'll improve this a bit further by having the warmup progress count towards the total progress of the bar.
At the end of this month I'll update the live build on the site to 2021.2.0b7 (or whichever I'm using at the time) and have a Campaign in the Test Worlds game that will let anyone pick from the new worlds and drive around. The one that's live right now is still 0a20 / been there forever.
I'm still doing 1 more environment this month - the "Arctic 1" I started a while back. That will bring the total number to 7, including the test worlds. Right now I'm thinking the city test could end up being "Urban 1" and the one that's currently got helicopters could also be refactored (into what, I don't know yet). Anyway, I'll be moving my focus along to creating new enemies/barriers/powerups/weapons and so on throughout September. According to plan, that still leaves October and November for creating scenarios, populating the worlds more and adding whatever other content.
The live build on the site is now using 2021.2.0b8. Since last week, I've updated Tropical 1's roads and texturing somewhat and added a couple of unique species of 3D trees to the newest worlds (except Arctic). As of earlier this week, the build on the site has had the Field of View slider in graphics options - adjustable between 50 and 90 (with a current default of 65) ..although for some gameplay types this will be more of a "preferred fov", as it may deviate based on whatever while playing. A number of other improvements on the technical side of things include reduced startup time and smaller initial download (data.gz now just under 7 MB) as well as a number of random performance gains thanks to heavy time investment with the profiler trying to track something down (which turned out to be web browsers losing their minds).
My goal for the rest of the month is to get the Arctic and Desert environments up to where the others are at. I'd also like to have a full-length checkpoint route for all 7 by then.. but depends how much time and motivation I can put into this over the next 10 days. If not I'll just do a "drive around" mode for each. Then by the following weekly update I'd like to add a campaign with them to both Upcoming Title and Test Worlds as well so anyone visiting the site before this is done will have more to play.
As of today I've also added 3 more icons to the top left of the screen during Campaign Selection - these travel to Rural 1, Suburban 1 and Desert 1. There's nothing to play if you go there, it's just the generic flythrough of the current location / menu background world.. for now
A few screenshots of the Arctic environment as it stands. When selecting "Test Worlds" it's now the default being loaded. I'll also be extending the new flythrough thing soon-ish so it will display any rails that would be active for the route currently being viewed.
The flythrough mode in most new worlds (Arctic, Desert, Tropical and Rural) now follows a route instead of the camera drifting through the air. While this mode is active, you can use the right mouse button to look left and right, increase speed with W, decrease with S. For the next update all worlds will have this for their menu backdrop as well - it currently just repeats a route, but later will be cycling between all available routes in that world for the current game and I might use A and D to skip to the previous or next one, plus display the scenario title of the route being viewed. A step beyond that is hitting a key to instantly start playing it.
My plans for this coming week are adding a route to Suburban 1 (including the "park area" road that'll go around the lake etc. mentioned before), and adding new flythroughs for the older test worlds / getting their path systems up to date. Aside from that, mostly stuff like adding guardrails, hydro poles, "move streetlamp off the road" or "add rail at impossible corner", creating more paths and tunnels and bridges, adding road signs and maybe some other random props. I might also extend the Arctic and Desert routes.
So.. kinda sorta met my goal! I've pretty much done 8 new checkpoint scenarios (so.. 16% of how many I'm aiming for, but when I add ones for racing the other way around it that's actually 16 racetracks done-ish.. so I'm closer to 1/3 my year's end goal of 50 scenarios, many of which won't be racing.. and it's quite likely there will be more than that).
The above will be in Test Worlds on the live build at some point prior to next week's update, though it might be called something other than "Early Access Racing" and there will be different objectives (each currently just has 2 I'm using for testing). I need to refine a few things before uploading to the site, mostly adding rails then readjusting timing plus a fix a few bugs and test more in case anything I've done recently broke anything I don't see often.
As far as what kinds of objects these tracks will have, I'm currently leaning towards just the occasional barrier to destroy or dodge and some "not always easy to spot" things to shoot (i.e. like the stars.. though I still haven't decided what they'll be for sure yet.. maybe gems).
A few other highlights of my week where non-technical stuff is concerned includes a new offroad section in Suburban 1 and new offroad section in Urban 1 (previously known as City Test Env.). That can already be seen in the live build, as all 7 worlds now have flythrough along routes instead of just drifting up into the air - which I still have it do when a scenario ends though. So anyone can just click the world icons at the top left on the Campaign Selection screen to fly along the routes as they currently exist. Where multiple routes are available (such as in Legacy 1 ..new working title for "current test world"), you can use A or D for prev/next, W to speed up and S to slow down.
And that's another week down.. with just under 4 months to go!
As of this morning there've been 8 playable racing-only scenarios in Test Worlds on the site. You can start any at whatever time of day by holding LMB/RMB on the clock at the top beforehand as usual, although in the game itself, each scenario will transition to a specific time of day during the countdown when it starts.
Also in the game (vs. "Test Worlds"), there will be a forward and reverse run for both day and night, for each of the 7 worlds. I'll also be adding just as many routes that are more like Legacy 1B.. uneven terrain, plus dodging trees/rocks/logs/etc., needing to jump over things or jump up onto ledges and so on. That will bring the total number to 56.
I do still plan to extend the primary routes of Arctic and Desert by another 1-2km each. I'll be doing that between creating scenarios, but the Racing Preview routes in Test Worlds will continue to end where they do right now to avoid existing high scores from becoming "off". The timing in Racing Preview is also rough and some races are more forgiving than others, but will remain that way for the same reason.
Anyway, after the above, I'll put together a campaign using whichever routes for the previously-mentioned "tower offense" stuff, which will be similar to the current Highway 1 and Service Road gameplay (weapons, armor etc.). Depending how much time is left after that I might still add world variants like an Arctic 2, but given there's already so much land to populate and work with.. at this point, I doubt it.
This is also the last new stuff being added to Test Worlds campaigns until this game is done, although as things grow between now and December 31st, any changes to the worlds where "always exists" content is concerned (i.e. added hydro poles, wires swaying back and forth, added guardrails or fences, non-enemy buildings, or changes to foliage, texturing etc.) will become visible there as well when driving around.
I'll be spending most of the weekend [as usual] cleaning up whatever bugs, optimizing stuff that bothers me, and then my focus will be 99% on doing one scenario after another plus whatever new stuff each needs until the end of November. Also, given just how many there will be, in December (if not sooner) I'll be adding a "Favorites" Campaign, that players will be able to add scenarios to by clicking a heart toggle on any launch or completion screen.
It would be fun to consider the point this game's done as being "just getting started" instead, spend another year on it.. or create another game of a different genre, ..but, I'll be spending January learning the latest techniques/best practices for creating Editor tools + the new Unity Tutorials systems. Then as of February, spending roughly half the time I spend on game dev to create and publish some hopefully-useful assets that will be easy for anyone that wants them to learn, integrate and use
A few highlights of the week are that I've nearly doubled the length of Arctic 1, to 4.9km (now the longest of all routes), added a bunch of additional bridges and tunnels and lots of rails.. speeds there can reach nearly 400km/h on a pristine run (i.e. the better your driving ability and lines, the faster the game's pace). I've also extended the desert route by an additional ~1.5km (to 3.9km), added a few bridges and tunnels and boulders etc. The project (and live build) is now using Unity Engine 2022.1.0a8.
I've changed my mind about not keeping the Racing Preview routes up to date. There have been [and will continue to be] adjustments to the terrain and road systems, route extensions, scoring, timing and so on prior to release. So - if I didn't - they wouldn't really be "previews" anymore, plus their value for testing purposes and feedback would depreciate.
The Scenario Launch window now displays the length of the route that will begin if you click Start, along with the number of checkpoints it has (when applicable to the scenario in question). I screenshotted+cropped these together in gimp for this post - left to right across the top is Desert 1, Tropical 1, Rural 1, Legacy 1A, and across the bottom are Suburban 1, Urban 1, Arctic 1 and Legacy 1B.
The combined length of all routes is now roughly 28.9km. There are 7 primary plus 1 secondary (Legacy 1B, at the bottom right of the image). The difference where my naming convention is concerned is that secondary road surfaces conform to the terrain, whereas primary roads have the terrain conformed to them.
I had thought to do a "Sunshine Cup" (daytime racing) and "Moonshine Cup" (at night), where you would play through all routes forward then in reverse order driving in the opposite direction. But.. it's sort of pointless given I have dynamic time of day already and powerups for the player to switch that while playing, so I think just scattering a few of those around like I did with the other scenarios would be more appropriate, consistent and fun.
A few highlights of the week..
Added the ability to pick up new weapons (and/or get more ammo) by shooting/clicking/dragging over weapon powerups. The powerup has text on it displaying the number of rounds of the ammo it contains, for example "+10" or "+50,+3" if there's a second ammo type.
Added player "weapon anchors" for vehicles, bipeds or whatever else can be controlled, a system which allows me to configure which types of weapons can be attached and where. If the player already has the same weapon when collected, all of the ammo it contains will be added to the remaining ammos of the equipped one, up to the max capacity for each given ammo type.
Each scenario can now also begin with a specific loadout. What you start with also depends on which vehicle is chosen (although currently I only have 1 and there's no "Select Vehicle" kind of menu in place.. or likely to be for this title).
Made the Airstrikes a player-useable weapon if collected or part of a loadout. While equipped and have ammo remaining, click the ground anywhere and the circle of indicators starts spinning there like usual for a moment before impact. Added a smoke plume to them as well, livens it up a bit.. already visible on Highway 1 and Service Road scenarios.
The weapon selection menu at the bottom right now displays remaining ammo for current weapon selection, or the infinity symbol if the the weapon has no limit. Also added speech when changing weapons. Added new weapon "Grenades" and ammo type "Re-cored Surplus". They're similar to "Ball Tosser" except have a much shorter range and explode after about 3 seconds. I haven't added a trajectory prediction trail yet or picked a mesh/material for it, but it's functional. Not yet available anywhere in test worlds.
Added a subtle audio spectrum to the compass plus a new "Spectrum Framerate" audio option slider (60fps default, but can drag to the far left to turn it off or anywhere else for 24<->60). My visualization is currently pretty simple (just a waveform that dances a bit on loud noises for the most part, centered around the center of the compass/corresponding to where the vehicle is), so it doesn't seem to impact framerate at all for me, but if I make more complex ones in the future or have multiple to choose from and something needs a lot more processing it'll be good to have the option to throttle it.
Re-added the "Target Framerate" option that I had in the previous UI, but for WebGL basically most people will want to leave it default (best performance). If anyone wants to throttle it to keep the CPU cool / fan quiet, it's there. Default is at far right of slider and lets the OS decide, or can drag between 30<->144.
Fixed a number of random bugs (such as the recent missing text of powerup effect time remaining), did some minor adjustments around the worlds (dotted lines on one of the roads were "hovering" about 0.3m above it instead of being aligned), etc.
Finally got around to integrating AraTrails with my project (have had it for a while but fx have been low priority). For now just added short projectile trails for rockets and for rifle bullets when fired by an enemy, to help indicate enemy location. I'll probably add tire tracks and find a bunch of other uses for it over time.
This coming week I'll probably just do a few weapons and clean up random stuff ahead of the shift in focus. I'll add new enemies and whatever else while creating scenarios. I'm currently thinking to do about 20 of the "combat-oriented" type, but depending on whatever it could be less or more, too early to say.
I did end up getting a lot of stuff done towards October's plans - now have a total of 14 weapons set up (although most are just at a functional state as derivatives of other types and I'll be refining them all this coming week, alongside other stuff I'm planning on doing). Also, finally got decent projectile prediction together, ..my only screenshots for this week. The red thing at the end is just a placeholder/default "where the projectile will end up" indicator - I'll eventually customize it per weapon. This one just pulses dark red to light red while aiming.
3rd person view:
1st person view:
Other things achieved (in local WebGL builds - no update to the site since a few days ago) is significant fragmentation system improvements - I now have the capability to config anything (enemies, buildings, etc.) for either real-time fracturing or having any number of pre-fracture options chosen at runtime by whatever criteria. Related to that, also created the first "Tower class" of enemy (a small watchtower with rifle weapon) and "Car class" enemy (a buggy with rocket launcher attached) and a couple more destructible semi-transparent sand-colored "Barrier class" variants for the desert, ..all these things come apart into actual mesh chunks that bounce around before the fragments transition out. I also updated the helicopter and older red barrier to break apart like that (again - not updated on the site yet though, but will before next week's post). It's been great progress, I'll have more to say about it next week along with a playable scenario for the open tests game called "Fraggin' Meshes"
A new video this week:
The same build is live on the site - from Campaign Selection, click "New Stuff" and then pick "Fraggin' Meshes!" . You might want to wait though.. I found out tonight my website's security certificate renewal was somehow not put through properly by my host, despite it having been paid early. Their client portal shows it was paid and that SSL is active and valid, but it's not - at least as far as browsers are concerned. Aside from this, they've been great.. so hopefully it'll be resolved once they see the ticket. I was trying to work out why all of the sudden I was getting cURL errors in the console tonight, figured it might be related to the 2022.1.a11 update, but after downgrading to 0a9 it was still happening. Then I figured it out. I don't expect they'll get back to me immediately given the holiday. I'll post again when it's been fixed.
I tried to get a good run in for the video - failed multiple times, despite only about 1.5km of the route being populated for it, feels like a fair challenge / I'm happy with the difficulty level. After the area shown in the video, you can just drive the rest of the way to the finish line (I reused my route from the Desert 1 racing preview scenario). It won't be the exact same layout or all the same objects/enemies/etc as that in the game for the desert.. basically just because doing a full route or paying much attention to what goes in it would be wasting time for a test world scenario.
Final note for now.. Debris Lifespan can be increased up to 10 seconds (from 1/2 second default) in the Options menus, and there's also new options to toggle whether to use bullet impact decals and/or projectile trails. Decals are enabled by default, trails are not. In addition to debris lifespan (how long a piece of a mesh is displayed before transitioning out), you can also increase how many pieces of debris have physics applied - default/minimum is 50%, but it can be set to 100%.
They fixed it already
QA this week took the first 4 days (Sat-Tue), along with a few systems improvements related to last week's changes. Some of the highlights include now having "blast waves" that radiate out from epicenters, instead of just blasting everything in the radius at once - this was important to get the right feel to chain reactions, such as an exploding barrel detonating a nearby barrel 1/10 of a second later sort of thing, or a building near a blast seeming like it got taken down by pressure / the force of the wind hitting it, which I think looks a lot more natural/better than just having everything nearby pop at once. This also has the benefit of reducing the performance hit of explosions, since the cost is distributed across multiple frames.
Another interesting performance improvement I've learned is calling Physics.BakeMesh on runtime-generated meshes while the world loads. Doing this means collision data is "warmed up", eliminating physics-related stutter when meshes being used by MeshColliders are first exposed to the scene (..WebGL is currently single threaded, so I was particularly elated to discover this).
As an additional benefit to having looked over older stuff earlier in the week, I was also able to achieve faster loading times - including no more "stopping briefly half way through the progress bar and then jumping ahead" issue, which has probably been around for like 2+ months. This was related to something I did a while back that wouldn't scale well, so as my scenes grew so did the effect of it. I had since replaced the need for it but left it there not realizing that I had (related to traversing the hierarchy for specific things that needed to be done so they wouldn't be done while playing).
I updated the build on the site after the stuff noted above, and have also updated my WebGL template to more closely match the most recent official one (2022.1.0a12), but the build itself remains at 0a11 pending a few last things I want to get done this weekend and test more beforehand.
There has been a bug where sometimes on restarting a scenario, the vehicle will wildly turn or hop into the air a bit, despite rigidbody velocity and angularVelocity being zeroed. I hadn't been able to figure it out, but it recently occured to me [when it wouldn't happen if I wasn't holding down acceleration when starting] that it's likely being caused by torque build-up in the WheelColliders before the vehicle is "released" for movement - which would be my own fault for allowing related input through at all prior to that moment. So, if that's the case, this should finally be fixed in the next update.
Replay systems now also need attention, as I'm pretty sure I broke something [visual] during recent changes related to planning for MLAPI (not for this title - just in general). I have sort of tracked it down - something is resetting a transform localScale to Vector3.one (and I don't know where, ..yet, and don't know how to set a watch on a specific transform / break at the line where it's being changed, or if that's even possible). Anyway, I'll look into it more and see how it goes this weekend.
Since the most recent update to the live build, I've also improved systems related to wiring - for example hydro poles. Both poles and wires can now be destroyed like other stuff and a shower of sparks comes off wherever a connection between wire<->pole is broken. I'll eventually be improving how the wires themselves look using tubes instead of triangle strips. I would actually use line renderers if possible, but then they wouldn't have collision. I'll also be doing something for them to fall and "drape over" stuff, with one end still being attached to something where applicable. For the time being I just remove any that lose a pole or get destroyed. It's also now possible to procedurally step along connections.. so, for example, I'll be able to do stuff like if you drive into a transformer a power surge could chain-react down the street with sparks flying off poles one after another. Good times. Another week down, 10 to go!
I didn't spend much time on game dev this week. I've been visiting family elsewhere in the province since last Friday and just got home today. I did throw a few hours into quick stuff, structural improvements and thinking over/through my immediate agenda, but nothing much where visible progress is concerned or noteworthy enough to mention.
I plan to spend the rest of this month finalizing the 28 racing-only scenarios, which means not only forward and backward along the primary routes for the 7 worlds but also adding the other 6 offroading tracks (the kind like Legacy 1B). Since Tropical 1 doesn't have land for that, this also means Tropical 2 is in the works and will mostly be comprised of beaches, dunes, sticks/logs, rocks and water hazards. After these are in, pretty much the only thing left is populating all routes for the tower offense ones - which will bring the total number to 56, not counting what's likely to be 4 Tutorial scenarios if I bother to include any. I'll probably also extend the Tropical 1 primary route by another km, mostly of flying over the water while grabbing rails.. but I'll leave it for last and decide based on where I'm at by next Friday.
For local builds I've added a minimal "Photo Mode" - nothing as great as the official one, just enough to hide the UI and move around the world with time stopped, rotating the camera whichever way for screenshots. I'll eventually integrate the solution by Unity and/or expand upon what I've done as a feature for my players. As of then it will immediately be available in all games including this (which in game select will likely be called "Casual Racing & Tower Offense").
As of this morning, I've had 28 racing scenarios! 14 unique tracks + their reverse. Also did get around to extending the Tropical 1 route by quite a bit with lots of "rails over water" near the end of it, so it's now about 6.1km long. Also added a new world, Tropical 2:
This all turned out to be a lot more work than expected. Mostly because I hadn't considered that doing a reverse for each of the 8 tracks that I'd already done would need so much attention.. for example, an S curve followed by climbing a hill is much different when driving in the other direction, as it's then going down a hill into an S curve. So that meant doing unique sets of rails for each direction.. probably 30-40 new ones total.
For "offroad" tracks I've mostly stuck to only using rails where necessary - to avoid confusion over which way to go or where visibility is poor, like a sharp turn directly after coming over a hill and you're airborne.. it's more fun to click a grapple point than almost always wiping out or needing to memorize the tracks. Also because offroad surfaces aren't smooth, the average speed is lower, so it's not often as difficult to navigate more demanding sections vs. highway speeds.
I didn't take the direction as I did with Legacy 1B (which was unshaped, mostly having road surface conforming to existing terrain). It took a lot of extra time to implement, but I decided on doing a hybrid approach with what I've done for "highways", because despite how Legacy 1B isn't so bad due to mostly following valleys, it's still sort of a bland and bumpy drive with no real definition to where the side of the road is (aside from splat and groundcover). So I did each of the new tracks as an actual road first (sculpted into terrain), _then_ conformed the road surface like Legacy 1B. This means there can be dips and other subtle nuances to the surface, which satisfies the difference that I wanted for the offroad variety of tracks.
There is still plenty of related cleanup to occupy the remainder of the month - mostly splat painting though, since a lot of terrain has changed, but also some surface refinements, adding a few more rails plus whatever other adjustments need to be made for being able to complete each scenario consistently without any significant aggravations (for example removing any significant bumps in the road where precision cornering is already difficult enough at high speed etc.).
Note, nothing in Open Tests has changed since last week on the website, and most of my posts for the remainder of the year won't likely relate to anything there. However, as mentioned previously, if anyone would like to help out by testing and get access to non-public content prior to Dec. 31, please message or email
The current roster of scenarios that are mostly done:
I decided this morning that Casual Racing / Offroading will be a separate game from Tower Offense. This basically means my initial version of it will be complete and available to play in about 2 weeks, barring any significant real-life distractions from my regular schedule
It will have the 28 scenarios mentioned in my previous post. There will be things to find/click while driving that are off to the side or sort of hidden, and each scenario will have an objective to find them all, to reach a given top speed and to hit all checkpoints without running out of time. There will be progression (complete one to unlock the next), but the only requirement to continue vs. try again will be reaching the finish line.
Each will start at a given time of day, but the day/night "powerups" will be available while driving at several points along the way. It will also have a reorganized/custom main menu (vs. generic Campaign Select) and scenarios will be arranged differently with actual names vs. what they're named right now. I'm not sure yet how much of a distinction I'll make between racing and offroading.
After the above, I'll be spending a week or two on a playable concept piece for a different game, which I won't elaborate on further in this thread other than to say that the general idea starts with flying over millions of trees (or buildings) instead of groundcover. This will then also be added to the Select Game screen.
Then, once I've got that off my mind (because I really, really want to do it, like right now even), I plan to spend the rest of the year on the Tower Offense scenarios, doing however many is fun to do before December 31st. This thread will continue to get updates about the two games my original post has evolved into (racing and tower offense).
Not much to mention for this week. As noted previously, I'm currently focused on wrapping up the first game, plus extending or tuning up whatever systems related to that. The schedule still looks right (another week of a few hours per day). The latest update to the site was November 3rd, but the only noticeable change for most will be that the game selection menu has more items. The next major update will have the Casual Racing button enabled for everyone
The initial release of Casual Racing is now live on the website
There are 28 races spanning 8 worlds. Each race has 3-4 additional (and optional) objectives beyond hitting all checkpoints. Contrary to previous post, time of day each starts with persists, so if it's night when you leave the Desert it will now still be night when you arrive somewhere else. Near the start of each race is a time of day "powerup".
The objectives are simple - hit a given speed, drive a minimum distance while it's day or night (click sun or moon powerups near the road to switch the time of day while driving) and on highways collect tolls by clicking while driving by. Achieving 100% completion of all objectives within a world will display a gold trophy over it on the Main Menu.
As mentioned previously, I'll be working on something else now for a couple of weeks before focusing on Tower Offense again, so my next post in this thread will probably be December 3rd.
December 3rd already! And the last month of this WIP thread. Tower Offense is now "open world", with no routes or linear gameplay. Each scenario will have a number of fully-destructible bases that can be approached in any order. After clearing all enemies at a base, awards are spawned such as more time, loot, weapons/ammo or BGM. Each world may be explored in any direction, and there will also be loot hidden inside whatever that gets spawned by destroying it (like a building). More details next week, and maybe a few screenshots - still going with December 31st for initial release.
Things have been moving along well enough - not much in the way of content, although I did get a few more enemies done yesterday (3 more cars, a truck, another helicopter), and made it less time-consuming to set things up like cars coming apart with their wheels bouncing/rolling around and stuff.
I now have the systems together that were necessary re my previous post. In addition to that, if the player stumbles on a specific or out-of-the-way "secret location", I can have a few enemies spawn in with a challenge like "destroy 3 trucks in 7 seconds!" and if you do, bonus armor or whatever spawns in to grab. It's also capable of stuff like "make it though here before reinforcements arrive!", having indicators on the compass for whatever active 'tasks' need them, branching by results and so on, which is perhaps overly robust for what this title is, as it's meant to be casual not ..more, but most related code was necessary anyway so I could have multiple bases on the map each having their own requirements for completion. It also took some time doing related tie-in with my objectives system. Also put time into getting rid of whatever bottlenecks became apparent as I scaled up the quantity of content.
I figure with 3 weeks left to burn on this, I'll spend the weekend finalizing what I've worked on this week, plus whatever random stuff needs to be done to stay on top of things. Then in whatever time between Monday and Friday of next week I plan to just create more enemies and other content (bus shelters, benches etc., ..all destructible). And then spend the following week putting together the game - anywhere from 1-3 worlds depending on time and motivation. Then until Dec. 31 just final tweaks wherever absolutely needed, random cleanup, customize main menu, refine logo and splash, profiling and optimizing.
I'll post a lineup of the enemies the game will have around this time next week - mostly derived from free-ish stuff I could find on the store, already had for a while, or made myself. Expect typical fare for Tower Defense genre.. but I figure the distinction of the player being on a road (vs. attacking what's on a road) makes "Tower Offense" more appropriate
I've settled on 3 worlds - Desert 1, Suburban 1 and Tropical 2. Each will have a bunch of smaller enemies scattered around plus larger ones at the bases. A base is just enemy towers connected by walls (wood spikes and castle-type stone in the desert, ruins and surfboards on tropical and cinder blocks type for suburban), plus whatever mix of suitable props I've got around to integrating ..which currently totals 73 (all destructible), but will surely be 100+ by the time of release. The easiest entry to a base will be smashing through or shooting gates, although any of its walls can be destroyed if enough damage is done.
Each world has unique towers from each other - 14 total so far. I had planned to post a shot of them, but between the video and screenshots most are covered anyway. Secrets in the world will be indicated by something subtle.. for example, in nature areas of Suburban, I plan to use a small swarm of fireflies or butterflies. Approaching will reveal whatever's hidden (typically powerups). I may show a ? on the compass for these but I'm still undecided, due to how that would impact the experience. Also haven't decided whether I'll add an objective like "Find All Secrets".. as it means finding them all would be necessary for 'Perfect!' and for hitting 100% completion.
I've also improved my compass and navigation systems. Nearby powerups now appear on it as miniature icons. This applies to Casual Racing as well, although they won't be visible in the website build until I've updated it again, which probably won't be until late next week. Indicators for each enemy within a given radius are also on the compass, which turn red when the enemy is attacking and flash as each of their projectiles hit the player.. so it's now possible to use the compass to locate all enemies currently causing damage, and either take them out or find cover more easily. The speedometer will not be visible in this, as it serves no purpose for Tower Offense and obscures view of the compass where indicators of what's behind you are located (beneath the line).
Finally, a few shots of what I'll be busy with next week, which is mostly placing content and configuring things specific to each scenario - there will be some other stuff as well, but these should be enough to convey the general idea (along with my video, which shows some gameplay in the desert). There won't be any shots or video next week - New Year's Eve will arrive shortly, along with release of this title, barring any significant misfortune between now and then
The final week begins! All 3 worlds are now populated with 3 bases each, 5-7 secrets each and several "# of things to smash" kinds of objectives. Also, now have a total of 150 different destructible props, hundreds of objects placed per world so far.. could almost call the scenarios "done enough" as-is, but a week of polish in between the final menu stuff and random cleanup will do wonders.
I didn't end up doing stone walls for the desert (idea mentioned last week). Not seeing the enemies annoyed me, it didn't look great, and it didn't really fit the gameplay flow, so it's out.. but I did lay down a bunch of palisades / spikes kinds of barricades to smash apart. In suburban there's a base in the park area that I might put some lowish-style walls around as well (not high enough to really block the view). I have some ruins-style ones in the tropical world, haven't added more since initially for a mock-up / seeing how they'd look, so spreading more of those around is also on the agenda.
I'll be improving the variety of enemies in tropical this week, since I currently only have 2 kinds of towers there, whereas the other worlds have 6-7. There's also quite a few to be found outside of bases, but it isn't necessary for completion to get them. The same goes for crystals, where an objective might say destroy 50+, but there are 130+ in each world already to shoot/crash through/etc.. it's not meant to be difficult to achieve, but they're meant to blend in somewhat (sand color on sand, green on grass, etc.) and be easy to forget when focused on enemies and driving.
It will not be necessary to complete a base to get more time (contrary to the thought in my previous post). There will now be a fixed time limit of 3 minutes per run in which to achieve everything possible. For balancing difficulty, I aim to complete a run through each scenario myself meeting all objectives in under 2 minutes (..not so difficult with practice, knowing the terrain well, etc.), so I think a minute extra should be a fair entry point. An indicator for each base is shown on the compass until it's located. Clearing all bases ends the scenario with success, so any optional objectives must be completed first if aiming for "Perfect!". Must be careful when exploring for out-of-the-way enemies and crystals to leave yourself enough time to still get the final enemies of the final base for victory.. whichever base that happens to be, depending on how the map is being approached.
There is also now info that activates while playing depending on what's happening (for example, "base 3 incursion - 5/14 cleared" or "secret #7 found!"). Any number of these may be in effect at once, and may be scrolled through by holding MMB down while using the mousewheel. I'll probably add keyboard < and > buttons (comma and period) for alternative, but it isn't necessary to use anyway, as which info is visible switches by itself when new things happen, and all related enemies have a special indicator on the compass in addition to their normal one, so it's easy to see there's a few left without reading anything.
Also re last week's indicisions.. finding secrets will not be required for completion or to achieve Perfect. My reasoning behind that being for example, there are 7 to find in the desert, it's just way too much effort and takes too long to find and grab them between the other objectives. It would fit well with an exploration-friendly genre like RPGs, but I don't find it appealing for this, actually I found it annoying - so it's out. However, each secret is worth checking out if the "?" indicator is nearby on the compass, as they generally offer a better weapon (i.e. Pulse Cannon or Gatling, which will be in this for sure, along with Rifle and Rocket Launcher) plus an armor powerup or health+armor etc.. there are also the day/night switching things around to grab like in Casual Racing (not as secrets), but no related objectives.
My next post in this thread should be New Year's Eve, about Tower Offense being available to play on the website
And so, I present.. the initial release of Tower Offense! Live and playable on the website now. Requires WebGL 2.0, a modern gaming laptop or desktop and high-speed internet.
A quick post for now, as I want to get this up/available before the new year.. so time for writing and screenshots before then is limited. Between now and the end of this weekend I'll put stuff together (video examples of nailing a "Perfect!" run for each world, along with some other posts including screenshots and info).
There is now vehicle selection, with 2 vehicles to choose from - "Light" or "Heavy". The first moves faster and will allow for easier objective completion once skilled enough to survive while using it.. Heavy is great to get familiar with everything and learn how to play. See Help->Controls for info. A quick hint.. press 'R' key while playing to scrap the attempt, you can then click Try Again and start the scenario again without any loading screens. 'F' changes camera between several. Find secrets marked by "?" on your compass for health, armor and more powerful weaponry.
There is BGM to collect. I've added a bunch of CC0 stuff from freesound.org, but haven't spent time to balance audio volume between them yet, which is different in builds than the editor so it takes a bit more effort. However, you can lower the volume of music or disable it entirely (from Options->Audio) if it's not to your taste, or turn off speech (which I got from a text-to-speech thing for now), or make the engine more quiet if you want etc.
There's loot rewarded for each base taken down (all enemies indicated are destroyed). It's just fun for points, nothing useful, but since the leaderboard is based on points it's worth it if you're competing. Loot mostly is intended to spawn at opposite ends of a base's area.. so if you can wrap around (as the world repeats indefinitely), you might find loot from a base you already took down earlier, further ahead
I'll post more here shortly - enjoy!
The weekend hasn't been conducive to further videos or screenshots (as I'd planned to do while writing the post prior to the above). Anybody interested is welcome to check this out for themselves anyway. This thread is now low priority for me, as it's a new year with a new focus. I only allotted myself the additional weekend to waste on this before moving on.. and the weekend is over
If I get around to continuing work on either of these titles between other stuff (or due to renewed enthusiasm), I'll create a new thread in Made With Unity for it, along with info on any significant updates or plans. There will be minor revisions to both over time, but probably not worth writing about and will be mentioned in their respective changelogs anyway.
Hi.. Are you planing to implement the new input system in your games?
I'd like to, primarily due to the performance benefits of callbacks vs. polling. When I started learning Unity, pretty much every example of how to handle input was using the original system - then later, I didn't switch because I already did so many things, it would mean revisiting a lot of old code that was already stable. I'd have to hunt around, refactor random things, retest anything that might not work anymore.. intentionally risk breaking things for the sake of improving things and optimizing - which I personally don't see anything wrong with, but it's hard to estimate just how much time that would end up taking (especially if running into bugs beyond my ability to resolve on my own), so probably something else has to make it important to me first.
For example, if I'm adding systems to allow users to customize their own control layouts (which is planned, though not a priority at the moment), and the new input system would make this process easier or would make supporting specific input hardware more streamlined, or improve compatibility, or give better performance.. I would likely put the time in to update everything else first, and hope that what I'd expect to take a day or two doesn't end up taking a week or two
Then maybe is not a good idea. But i think you can still code axis for gamepads in the old input system without too much trouble, i asked because i think is pretty standard to avoid play racing games with keyboards xD
Indeed - at the moment, I only share the WebGL builds (for which I assumed most people would play with a keyboard and mouse), and the only gamepads I have around without borrowing from anyone are for PS4, which I haven't looked into getting working on this laptop [yet].
However, I am using axis for movement (not specifically the WASD keys).. so thanks to your feedback, adding gamepad support for WebGL is now interesting me after a quick look at related docs, in particular that there's an HTML5 Gamepad API, which either I wasn't aware of or had entirely forgotten existed!
Thanks for taking the time to provide feedback, it's appreciated - support for gamepads will likely be added in a future update to the site However, no promises as to when, because as mentioned, the ability for users to customize their control layouts isn't something I was planning to look at implementing just yet (..and picking axis and which button is jump, handbrake and so on would likely be essential/necessary).
That said, I may have to take a run at getting a gamepad working on this laptop in the very near future (because was definitely a fail this didn't occur to me), and if I can get it working well enough I may prioritize all of this sooner, because yeah.. me being mostly a console gamer, racing with a gamepad is 100% something I'm excited to provide the option for.
Edit: I just played through and completed a scenario in my local web browser using nothing but a PS4 controller (via DS4Windows), with no changes to the project at all! However, I can't aim the reticle around with right thumb to grapple rails or pick up items (since my WebGL and desktop builds are expecting that's being done with a mouse), and the gamepad buttons did nothing, ..so it will take some further attention to work out what else needs to be done to get minimal support functional until full/customizable support is added later
You do not need to make full/customizable controls, just the option to play with a control with predefined settings will be fine for an webGL game and have all the options available with gamepad buttons, i also tried with my xbox controller and i can control the car with the left joystick but the other buttons does not work with the other options, that is why i'm asking xD.
I forgot to say: the ghost icon was funny xD i think you can change it for a prefab of the car and give the rotation + velocity or something like that. Anyway i'll follow this thread, looks interesting
I've credited your suggestion re gamepad support on the website. Thanks again. I could change the personal ghost option toggle to a slider (off->icon->vehicle). I'm debating now whether to add that to a list of things I've committed myself to doing.. and I'm leaning towards yes. It would give a classic time trial / ghost car feel and wouldn't be very difficult or take long to do. I'm already storing rotation, despite currently just using position (structured that way as part of future-proofing for realtime multiplayer data streams, instead of preloading blobs from a database like now), ..I've personally been calling the existing replay racing "deferred multiplayer" to differentiate. I'll post here again once any of your suggestions are online (or sooner, depending on thread activity).
Control mapping systems are now available in the live build (as of 0.8.29). Have fun with your gamepads - quick related tip for my racing players, you can hold the top right shoulder button (R1 for DualShock users) and sweep the right stick around to aim and pick up items while driving. Click the help icon in the top left of the screen to see and/or modify all available controls for the current game.
yeah i played... good work, was a fun moment.
I've published Casual Racing on itch.io and created a thread for it in Made With Unity: