Hi !
Featured games (84)
games approved by the League of Dukes
Games in Showcase (603)
Games in Android Showcase (171)
games submitted by our members
Games in WIP (652)
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 1134 times)
0 Members and 1 Guest are viewing this topic.
Offline phu004

JGO Knight

Medals: 13
Projects: 10
Exp: 10 years


« 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 Opiop
« 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 Knight

Medals: 13
Projects: 10
Exp: 10 years


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

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 Opiop
« 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.

SHC (21 views)
2015-08-01 03:58:20

Jesse (19 views)
2015-07-29 04:35:27

Riven (39 views)
2015-07-27 16:38:00

Riven (21 views)
2015-07-27 15:35:20

Riven (24 views)
2015-07-27 12:26:13

Riven (14 views)
2015-07-27 12:23:39

BurntPizza (35 views)
2015-07-25 00:14:37

BurntPizza (46 views)
2015-07-24 22:06:39

BurntPizza (28 views)
2015-07-24 06:06:53

NoxInc (36 views)
2015-07-22 22:16:53
List of Learning Resources
by gouessej
2015-07-09 11:29:36

How Do I Expand My Game?
by bashfrog
2015-06-14 11:34:43

List of Learning Resources
by PocketCrafter7
2015-05-31 05:37:30

Intersection Methods
by Roquen
2015-05-29 08:19:33

List of Learning Resources
by SilverTiger
2015-05-05 10:20:32

How to: JGO Wiki
by Mac70
2015-02-17 20:56:16

2D Dynamic Lighting
by ThePixelPony
2015-01-01 20:25:42

How do I start Java Game Development?
by gouessej
2014-12-27 19:41:21 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‑
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!