• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
ssb

Generating procedural road intersection geometry

4 posts in this topic

There's a thread here that poses the exact questions I need help with, but it was ignored at the time. Basically, I am trying to make a system of roads based on splines. These will be generated by the user at runtime, so all of the generation needs to be done dynamically and on the fly. I can create the curve and create an extruded mesh based on that, but I can only get as far as the rectangluar shape. Basically this means plopping vertices at offsets along the curve and triangulating it. This is simple enough, but I have absolutely no idea where to begin thinking about how to create an intersection, specifically in creating the geometry for it. Think SimCity.

 

For example this video. It uses Houdini to create the mesh beforehand, but what I basically need help with is the most basic theory behind how Houdini does what it does in this particular case.

 

I apologize for the lack of detail in this question. I am just lost regarding how best to proceed from here. Thank you.

2

Share this post


Link to post
Share on other sites

I haven't done dynamic road generation myself yet (though my current project will eventually need it). I came across this article a while back at noted it down for future reference. See if its helpful to you.

0

Share this post


Link to post
Share on other sites

I have seen that article and it was helpful for me in formulating my basic road creation tools, but it doesn't do much for me with regard to creating an actual intersection. Procedural generation is still a bit of a mystery for me, so I'm not sure how to piece together something like an intersection. Even if I can imagine the steps necessary I have no idea how to actually implement them.

0

Share this post


Link to post
Share on other sites

(A warning ahead: I'm not familiar with road terminology. I'm using "country road", "freeway", "interstate", "junction", "feeder road", "road surface", "kerbstone" and similar words without being sure whether I'm doing that correctly.)

 

So the designer places splines by hand. The splines by themselves just define geometry, what is not sufficient by itself. Besides geometry, such a spline need to have meta data associated with it. The geometry and the meta data together is modeled as a piece of your internal representation of the road network.

 

Each node in the network can be understood as a model for a distinguishable piece of the road network. A node that represents a line of road refers to two other nodes, namely one at the beginning and one at the end of the line. A T junction refers to three other nodes, a crossing to four other nodes. Also a bridge is possible, showing 2 pairs of references but not as a crossing. Lets use the abbreviations I-node, T-node, X-node, and B-node in the following. Notice that in this network, when looking at it as a graph, the edges exist explicitly.

 

When the designer places a spline, the system tracks the geometry, creates a new I-node in the network and attaches the spline. The tool that the designer has used defines the kind of the road (e.g. country road, interstate, freeway; this belongs to the said meta data) or else the designer declares the kind of road after creating the geometry.

 

Then the system detects whether the new I-node's spline hits a formerly existing node. If so, and the formerly node is an I-node, and the new line ends at the geometry of the former one, then a new T-node, X-node, or B-node need to be inserted. For now the splines are split, a new "undefined" node is inserted, and all the references are set up. Before the system is able to actually create the road, the designer need to specify what kind of node s/he actually wants there. According to the kinds of participating roads, some possibilities may be excluded. It may further be the case that geometric constraints may exclude possibilities, e.g. the intersection should be in-between 75° and 90° to allow for an X-node. Or there is not enough area left to model the junctions where a country road hits a freeway.

 

After the above steps are done, an abstract road network exists. The concrete network then requires the generation of concrete geometry for road surface, kerbstone, and perhaps some accessory. Parameters for this (like e.g. road width) are stored in the meta data, initially derived from the kind of road but perhaps overwritten by manual input. T-nodes and X-nodes are defined to have terminals (correct word w.r.t. roads? I don't know) so that the actual connection is part of them (rather than part of the referred I-nodes).

 

Now the "intelligence" is put into the nodes. If you have an X-node with country roads on all connections, the node is modeling its concrete surface as 2 crossing straight pieces of road, where the transitions are smoothed by inscribing circular arcs. Some node set-ups need prefab support: Bridges, junctions, crossing of interstates, ... show characteristics that need to be a-priorily integrated. E.g. an X-node coming from an intersection of a freeway and a country road is not modeled as a crossing; instead it is modeled so that the country road is bridged over the freeway, and four feeder roads are set into the tangents. Placing accessories like traffic lights, traffic signs, vegetation, ... is also based on the nodes.

 

Well, the above is a coarse description of a framework. It s hopefully a suitable foundation of how to start.

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0