Dynamic Roads & Picking

It’s been a slow couple of weeks on the game development front which has mainly been down to trying to get ‘picking’ to work. I was thinking about the game play style and think that I’d prefer it to be more strategic than action and decided to change it to a point & click style game. This would also be a better choice as its mainly been aimed for mobile devices.

The main issue with this decision is that because I’m using a 3D environment now, I need to use a process called picking. Picking is the process when you click on a position of the screen and it calculates which object in the 3D environment has been clicked. This is all new to me and left me feeling quite out of my depth. I did manage to find an example of picking but it didn’t play nicely with my current workings when trying to add the methods to my code. After a full week of free time hours try to getting this working, I admitted defeat which doesn’t happen too often. The decision was made to take a look into a premade 3D engine so I started looking at Away3D.


Looking at the examples on the Away3D shows that picking is alive & kicking and having a quick go at creating a testbed seems like a quick & easy solution to creating a 3D environment. My first issue was that there’s not really a great number of tutorials and the genreal help seems to be lacking, that is unless you want to pay for their support or purchase a book. At this revelation, the tenacious side of me kicked in again and I’ve decided to take another look at getting my own version working but in the mean time, take a break & make progress in other areas.

Dynamic Roads

While looking into the picking, I came to the realisation that the different sections of roads being used could be generated from just one tile. Being that the 3D models use triangulation, I could create a tile which would contain two different elements which could be manipulated to the correct road layout.


When applying the texture to the mesh, I have control over which part of the texture gets applied to which corner of the triangle. Therefore, with the image above I can create a straight section of road with the left triangle of the image twice or a crossroad using the right triangle in the same method. This in theory means that less textures are required and should help improve performance. The short video below shows this method in action.

It’s not the greatest looking piece of work but it’s functional and can be updated later on.

What’s Next?

There are a few pieces which are next on the list, I still need to get the picking working but I’ve pushed this to the back-burner for now so I can make some progress on other sections.

I really need to optimise the transition from one city area to another, currently there’s a lag when creating the new area which I really want to reduce or remove.

The other two sections are the pieces I really want to get my teeth into, that’s the enemies with basic reactions. The other is to make each city block more unique, I want there to be different building types and searchable items (crashed cars, bodies, containers, etc)

Seamless city generation progress

I’ve made the decision to change the loading of levels in the game. Originally the plan was to load each piece of the city at a time when you exited and entered a new area. In more recent games, gamers are more accustom for levels loading in the background making it a seamless experience, therefore, this is what I’ve attempted to go for.

To show how I’ve implemented this, I’ve zoomed right out to give ¬†you an idea of the process being performed.

As you can see there’s still a little left to do, the buildings at the edge of each section is still full length which will lead to long buildings so I just need to half the width of these. There’s also a slight lag while each block is being generated. All in all, it’s not too far off what I was hoping to achieve, just needs a few tweaks.