• 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
lucky6969b

Letting a probability of an object to appear in the scene...

5 posts in this topic

If on each frame update, I pick a randomized number, if this number is greater than 100000, then I let the object appear, is it an efficient or good way?

Thanks

Jack

Edited by lucky6969b
0

Share this post


Link to post
Share on other sites

that for sure will not work because the probability from the random object is less than 1% which is a super low drop rate assuming

if your number was used in my approach stated below.

 

What you can do is achieve a 50% drop rate. This is written in Java:

 

Random random = new Random();

 

if(random.nextInt(2) == 1)

{

// add your item to the screen

}

 

nextInt method returns an integer number between 0(inclusive) and 2(exclusive)

 

So it basically returns either 0 or a 1 which is 50% or (1/(total possibilties))

Edited by warnexus
0

Share this post


Link to post
Share on other sites

Not the most efficient way, but it would work. In SFML, you could do something like this: Create a timer, get a random number using rand() between and n, and set the timer to go off after the random number of seconds is up. After the timer goes off, you would execute whatever you wanted to happen.

Here is a link to the SFML Timer page so you can learn more about it: http://www.sfml-dev.org/documentation/2.0/classsf_1_1Time.php.

 

If you're not using SFML, I'm sure you could easily apply it to another API.

0

Share this post


Link to post
Share on other sites

Typically you would use float [0..1) for probability.

 

However, let me point something else out to you:

 

If on each frame update, I pick a randomized number...

 

I'm stressing on that particular sentence.  This is a poor way to do any probability.  Regardless of how low the probability is, counting it on each frame update means it will happen very often!  If you say 1% chance of event X happening, and your game runs at 100fps, guess what happens?  In one second, event X will occur.

 

That's not what you want, right? Rather than counting it every frame, pick a more deterministic occurence of when you are going to count the probability.  Something like on a button press or on every second.

0

Share this post


Link to post
Share on other sites

He could apply the frame delta time to the random.

 

for a random between 0 and 1

if (rand(0-1) < 0.5*dt)

{

something...

}

would give you 50% chance regardless of FPS (i hope) of the object to appear during 1 second. Unless the FPS is less than 1. And the behaviour might still depend a bit on FPS.

 

But the timer method is probably the best way to go, as you can throw in some limits (like, always add 10 seconds to the spawn time in addition to the random delay, so no object will appear at a rate faster than once in 10 secs)

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