Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (499)
Games in Android Showcase (118)
games submitted by our members
Games in WIP (568)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  How to block vision behind obstacles in RTS game?  (Read 923 times)
0 Members and 1 Guest are viewing this topic.
Offline phu004

JGO Coder


Medals: 4
Projects: 9
Exp: 10 years


NoSuchPersonException


« Posted 2013-11-29 22:08:31 »

Game such as Starcraft has a mechanism that anything behind obstacles (trees, cliff etc) is covered in Fog of War even if a unit's sight circle touches it. I have been thinking how to do this efficiently for quite a while.  A naive approach would be for each tile inside the unit's sight circle,  check if there is an obstacle between the unit and the tile.  But I could imagine this won't scale well when you have a lot of units on the map.  Can anyone suggest a more efficient way of doing this?
Offline opiop65

JGO Kernel


Medals: 154
Projects: 7
Exp: 3 years


JumpButton Studios


« Reply #1 - Posted 2013-11-29 23:23:15 »

Use ray casting to see if anything is between the unit and a tile.

Offline ctomni231

JGO Wizard


Medals: 99
Projects: 1
Exp: 7 years


Not a glitch. Just have a lil' pixelexia...


« Reply #2 - Posted 2013-11-29 23:50:59 »

Well, you can draw based on the y-axis position of the object.

If you have your images draw in a queue, you can basically give the illusion of depth by changing the order in which the objects are drawn based on how far up they are on the screen. (This is assuming you're using sprites and not using objects in a 3-D environment.)

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline phu004

JGO Coder


Medals: 4
Projects: 9
Exp: 10 years


NoSuchPersonException


« Reply #3 - Posted 2013-11-30 03:10:47 »

Quote
Use ray casting to see if anything is between the unit and a tile.

Thanks for the reply, this approach looks promising Smiley This means I just have to cast enough rays (from the unit position)  to cover all the tiles inside the unit's sight circle. Much better than my original naive approach.
Offline opiop65

JGO Kernel


Medals: 154
Projects: 7
Exp: 3 years


JumpButton Studios


« Reply #4 - Posted 2013-11-30 03:16:29 »

Yes, but don't over do it! A newbie would cast rays for every degree in a circle, but that would take a hit on your performance, even if its just a little bit. Cast just enough rays so that every tile is covered. So, I think for all the cardinal coordinates. N E S W NE NW etc... As long as your tiles are all the same size, you should be casting rays through every side and corner of every tile!

Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Pippogeek (40 views)
2014-09-24 16:13:29

Pippogeek (31 views)
2014-09-24 16:12:22

Pippogeek (21 views)
2014-09-24 16:12:06

Grunnt (47 views)
2014-09-23 14:38:19

radar3301 (29 views)
2014-09-21 23:33:17

BurntPizza (65 views)
2014-09-21 02:42:18

BurntPizza (37 views)
2014-09-21 01:30:30

moogie (44 views)
2014-09-21 00:26:15

UprightPath (53 views)
2014-09-20 20:14:06

BurntPizza (55 views)
2014-09-19 03:14:18
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!