Jean-Paul Software

Jean-Paul Software

@jeanpaulsoftware.bsky.social

Just this guy, you know? Currently writing a game in UE5 about an AI wiping out humanity, but doing so using brand-friendly, HR-approved language. Buy my screensavers! https://store.steampowered.com/app/1631280/The_JeanPaul_Software_Screen_Explosion

880 followers991 following247 posts

Jean-Paul Software reposted

This is a thread of hard-won tips and tricks for preventing the brain from falling over - or, at the very least, mitigating any falling over that may still occur, despite best efforts. Please do add yours to the list

For this edition of #screenshotsaturday I present basic traffic AI now working with #ue5 ZoneGraph (sans Mass) complete with traffic lights at intersections. I've used a rather sneaky trick to reduce the need for complex turn logic- can you spot what it is? 1/2 #gamedev

Just in case you didn't see it- the vehicles never turn right, only forward or left. This means no cars ever cross each other's path at intersections. I think this is fine for now, particularly for dumb traffic- I'm not building #GTA6 here. #screenshotsaturday #gamedev #ue5 #cityplanning 2/2

This week in #gamedev: I finally got #ue5 ZoneGraph working without Mass. Given the typical lack of Epic documentation on either, I'm calling this a big win. I am aware that this currently looks like a bunch of ants looking for sugar, but fun traffic AI is now very possible! #screenshotsaturday

Here's a bouncing rock. The rock will not be in the game. #gamedev It's bouncing because this morning I wrote a simple 'tweening' plugin for basic procedural animation in #ue5, modelled on the ones popular in the #flash / #as3 days. I'll stick it on Github when I've thought of a name- suggestions?

#screenshotsaturday this scene is still a testbed for developing tech for elsewhere, but it's quite fun in it's own right. Dynamic texturing allows me to accumulate blood on the pylon over time, and there's some subtle IK used to make sure the punches connect. Sound too! #ue5 #gamedev 1/5

View full thread

Blood is applied by a set of decals, each with a texture. When a hit is detected, a circle is drawn on to that texture. Mapping the transform of the impact to the correct UV space was a bit annoying, but it does mean things accumulate properly, and the number of decals required is capped 5/5 #ue5

#screenshotsaturday this scene is still a testbed for developing tech for elsewhere, but it's quite fun in it's own right. Dynamic texturing allows me to accumulate blood on the pylon over time, and there's some subtle IK used to make sure the punches connect. Sound too! #ue5 #gamedev 1/5

I also needed a better model of a car, but models of right-hand drive cars (such as we have in the UK) are thin on the ground. So, I converted this one from the free Epic 'Vehicle Variety Pack' from left-hand drive to right in #Blender. This was not fun, as it's not a straightforward flip... 2/5

...but while I was at it I added the additional bones I needed for steering and doors. Importantly, I also gave it the number plate that Inspector Morse uses. I believe this is known as environmental storytelling. 3/5 #gamedev #inspectormorse

It's #screenshotsaturday! Following on from last week: I present a man's futile battle with an electricity pylon, as filmed by a camera drone which I simulated using the #UE5 Gameplay Cameras plugin. Next up: hitting the pylon, blood loss, and exhaustion. #gamedev #existentialism #rochdale #pylons

#screenshotsaturday some fun stuff this week prototyping a traffic system using #UE5 Niagara- but doing so in style, by attempting to capture the feeling of the M62 motorway near Rochdale. 1/6 #gamedev #unrealengine #motorways #pylons #rochdale #flytipping

View full thread

This also allows me to mark all BSDF properties including emission, again without needing to muck around with multiple textures for each object, which is a big time save. I will need to add extra lights to get a proper night-time effect but this is a good start, and it's good to know the limits. 5/6

As for the traffic itself- it's a single Niagara emitter for *all* cars using a mesh renderer, sampling from a spline and then using the particle index to determine which lane it should be in. Lanes have different speeds. A headache to work out but looks depressingly simple now I've done it 6/6

#screenshotsaturday some fun stuff this week prototyping a traffic system using #UE5 Niagara- but doing so in style, by attempting to capture the feeling of the M62 motorway near Rochdale. 1/6 #gamedev #unrealengine #motorways #pylons #rochdale #flytipping

View full thread

There's only one shader for all non-foliage props- cars, pylons, street furniture. Data encoded into UV maps marks which parts should change colour, and then the 'instance random' property is used to pick a colour from a (statistically accurate) texture of the most popular car colours in the UK. 3/6

#screenshotsaturday some fun stuff this week prototyping a traffic system using #UE5 Niagara- but doing so in style, by attempting to capture the feeling of the M62 motorway near Rochdale. 1/6 #gamedev #unrealengine #motorways #pylons #rochdale #flytipping

Gamedev on the backburner for a bit while I do some paying work to get the company funds back to health. This means cycling to Kensington every day, a place where people love cars more than humans. There's a lot of Ferraris here, but the owner of this car is clearly rich in things other than money

#screenshotsaturday #ue5 #gamedev fixed up and extended Lump, my "Mass for Idiots" system- now you can't see where it switches away from ISM to mesh or actor. Framerate stays nice and high thanks to object pools, and only using physics where needed. Next job: use it to make cars and pedestrians.

#screenshotsaturday #ue5 #gamedev Turns out the bits of Mass I wanted to use are dependent on ZoneGraph, and ZG can't be rebuilt at run time, so I can't use it. Mass is also fully C++ and honestly a bit of a headache. So, I nicked the ideas from Mass I wanted and built something a lot simpler. 1/n

View full thread

#screenshotsaturday #ue5 #gamedev Turns out the bits of Mass I wanted to use are dependent on ZoneGraph, and ZG can't be rebuilt at run time, so I can't use it. Mass is also fully C++ and honestly a bit of a headache. So, I nicked the ideas from Mass I wanted and built something a lot simpler. 1/n

Everything here is in an ISM until you get close; then it gets turned into a regular Static Mesh, or actor if specified. Get far enough away, it gets switched back, but you can specify the conditions under which that happens. Movement is controlled by a class that can be extended in C++ or BP... 2/n

...of which you can have many. There's two above- one for cubes, one for cones. So, like Mass, you can have a ton of stuff moving around and only worry about collisions where required, which keeps things very performant. It'll never be as optimised as Mass, but it's close enough for me. 3/n

#screenshotsaturday #ue5 #gamedev #london- infinite PCG road now features intersections and buildings (well, connection points for intersections and placeholder cubes). The pop-in is a bit brutal but I can fix that later. Implementing traffic comes first. And breaking the legs of pedestrians.

#screenshotsaturday The Last Gig is on hold for a bit while I try to find funding, so I'm now cranking out a quick one-month side project, Electric Rental Bike Simulator. Infinite procedural #ue5 road working great, now working on intersections, buildings, and detecting the breakage of traffic laws.

#screenshotsaturday- needed a break from tech debt and UI so have implemented ridable Lime bikes. It uses the #ue5 vehicle system, plus control rig IK for the hands and feet. Below is an accurate demo of a typical #London Lime bike usage- note the use of proper parking technique. #gamedev 1/2

The hardest bit was making them crash without the physics exploding. The #ue5 vehicle plugin wants spherical wheels (!), so there's a bit of smoke and mirrors when you jump off... but it works very well! TBH I might just pivot to making Rental Bike Wanker Simulator. #screenshotsaturday #gamedev 2/2

Been a while since my last #screenshotsaturday post- fixing AI bugs isn't exactly a visual treat. However now it's a LOT more stable, and even uses the correct escalator when given the option. Plus it can jump if it's sufficiently annoyed. #ue5 #gamedev #indiedev 1/3

#screenshotsaturday the other main focus has been on closing the loop on this being a game rather than a bunch of levels, which means UI and saving and loading... again, not exactly glam, but there's now a nicely bleak main menu scene #ue5 #gamedev #indiedev 2/3

#screenshotsaturday and finally, now there's an actual fail state. For fun I added "death quotes" ala *Call of Duty*... but as theme of the game is AI, I'm using dumb pro-AI horseshit from the wankers running AI companies- Elon Musk, Sam Altman, Sundar Pichai and so on #ue5 #gamedev #indiedev 3/3

#screenshotsaturday - mostly getting rid of tech debt this week so the AI has fewer existential crises, but also some combat tweaks. Question- should robots care about which way an escalator goes? It's easier if they don't, but I can't decide if it looks "menacing" or "stupid" #ue5 #gamedev

This giant chandelier thing is just straight PCG- a bunch of spheres and boxes- and the 'fountain' is just a sphere from Scythe with some glitter. Corporate art is very, very easy. I'd add physics, but I need to focus on getting the robots in, and building the supermarket 2/3 #ue5 #gamedev