Java-Gaming.org    
Featured games (91)
games approved by the League of Dukes
Games in Showcase (581)
games submitted by our members
Games in WIP (500)
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  
  Spell effects: (Damage-Over-Time) Threading?  (Read 2883 times)
0 Members and 1 Guest are viewing this topic.
Offline Oryan

Junior Newbie




Java games rock!


« Posted 2005-11-22 22:06:51 »

Im designing the spells in my rpg... nukes are easy... heals are easy... but spells that change or affect the player over time are a different ball game.

My Question:

> Should i make each buff that is in my buff list implement Runnable?when they run they proceed to affect the target over time.

> I imagine this can be very taxing on the server. Is this a good way to handle it? or is there a better way?

kthnxbye

-Oryan
Offline hvor2

Junior Member




Beyond mind, there is an awareness...


« Reply #1 - Posted 2005-11-23 00:04:21 »

If I understand this correctly...
Why don't you add some Vector() on your player object that will contain all active spells. Then, all spell knows when it is "triggered". Every frame you just check "is it time for spell to affect player?".
Yes ---> affect, move trigger time to next trigger time
No ---> go on...

Offline arne

Senior Member




money is the worst drug- we should not let it rule


« Reply #2 - Posted 2005-11-23 16:01:52 »

I believe java is very optimised for multi-threading.

:: JOODE :: Xith3d :: OdeJava ::
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline K.I.L.E.R

Senior Member




Java games rock!


« Reply #3 - Posted 2005-11-23 16:20:25 »

Why not create a thread specifically for spell effects that works globally?
It's better if you're trying to go for dual core efficiency optimisations.

Vorax:
Is there a name for a "redneck" programmer?

Jeff:
Unemployed. Wink
Offline ryanm

Senior Member


Projects: 1


Used to be bleb


« Reply #4 - Posted 2005-11-23 16:54:00 »

IMO, threading in this situation would be a needless complication.

Disregarding the multiple processor case, threading should be used:
  • To keep GUIs responsive when doing processing in the background
  • When faced with blocking I/O operations

I say go with hvor2's suggestion: Have a list of active spells for each player, and check them each frame.
Offline rolz

Junior Member




Chief Technopolitan


« Reply #5 - Posted 2005-11-23 17:47:57 »

I'd suggest processing delayed/repeating events in the same thread which processes game events.
But you still can use java.util.Timer (one timer per all delayed effects) if the game engine works fine with multiple threads. Why not ?

Offline ryanm

Senior Member


Projects: 1


Used to be bleb


« Reply #6 - Posted 2005-11-23 18:38:01 »

if the game engine works fine with multiple threads. Why not ?

Thread scheduling is dependant on the underlying system, so what works on your development box may not work anywhere else. Also, bugs introduced by multithreading can be right bugger to find and fix, due to this inherent unpredictability.

IMO, threading should be avoided except where you absolutely have to use it, like in the cases above, or when you are completely sure about what you're doing, and there is zero doubt of the benefits.
Offline Ask_Hjorth_Larsen

Junior Member




Java games rock!


« Reply #7 - Posted 2005-12-06 04:08:48 »

Never use threads for this kind of thing. You cannot predict how much time a thread will waste after each sleep or yield. If you want to change stuff in the game from the thread, those things must be synchronized or you will undoubtedly introduce subtle bugs that show randomly, ruining the game. You should either poll each time-dependent thing each frame, or implement a sort of queue which manages them by sorting them at insertion time, then polling the foremost entry for when it should be executed (this is more efficient if lots of stuff is going on).
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.

xsi3rr4x (55 views)
2014-04-15 18:08:23

BurntPizza (53 views)
2014-04-15 03:46:01

UprightPath (66 views)
2014-04-14 17:39:50

UprightPath (49 views)
2014-04-14 17:35:47

Porlus (66 views)
2014-04-14 15:48:38

tom_mai78101 (90 views)
2014-04-10 04:04:31

BurntPizza (151 views)
2014-04-08 23:06:04

tom_mai78101 (246 views)
2014-04-05 13:34:39

trollwarrior1 (204 views)
2014-04-04 12:06:45

CJLetsGame (211 views)
2014-04-01 02:16:10
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
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!