Announcement: Be excellent to each other.


Caravel Forum : Caravel Boards : Development : .Net questions.
New Topic New Poll Post Reply
Poster Message
ErikH2000
Level: Legendary Smitemaster
Avatar
Rank Points: 2379
Registered: 02-04-2003
IP: Logged
icon .Net questions. (0)  
quote:
[bold]sozieg wrote:[/bold]
Hi Erik.
my partner and i started writing out c# version of DROD, and we have few questions for you:

1. how do you insure that an object is reached by only one other object at a time (simultaneously)? , does handling on the data is being done through mutexs,semaphores?

Code in DROD runs in a single thread with the exception of the audio library and maybe some SDL library stuff, so thread synchronization on data access isn't necessary. If I needed to have multiple threads accessing data, I'd have a lot of work to do, but 90% of it would be completed by adding thread synchronization to the public methods of classes beginning with "CDb" (data access classes). Note that Metakit, the database library, isn't designed for simultaneous access, so this is an important reason to add thread synch. to the data access classes. If you can run the data access in a single thread, all of this isn't necessary.
quote:
2. we need an explanation of the "timing" algorithem you use in order to choose which object will activate his functions next,how do you choose when to move "focus" to a given object (e.g: if the swordman perform an action, how do you choose which monster shell responde first ,ect..)

Beethro always moves first, followed by mimics, followed by the 'Neather, followed by other monsters. The order of movement in each one of those groups is dependant on when the monster was created (either in the editor or during gameplay, i.e. roach spawn). Monsters created earlier move before monsters created later. It's not very sophisticated and if you aren't bound to complete compatibility with DROD, I recommend improving on this last part. For example, you could make multiple passes over the monster list while processing movement, and only stop making passes when on one pass every monster has either moved or had its movement blocked.

-Erik

____________________________
Godkiller Gamedev Sundays (live sessions every Sunday 3pm PST where I make a new puzzle game)
youtube (archive of live streams, and some animated videos I made)
12-03-2003 at 06:47 PM
View Profile Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
DiMono
Level: Smitemaster
Avatar
Rank Points: 1161
Registered: 09-13-2003
IP: Logged
icon Re: .Net questions. (0)  
This is unrelated to .NET, but since the topic of turn order was brought up, where does placing a mimic sit? And opening doors? And disappearing of red doors?

Actually, I'm sure there's probably a list of all this somewhere, can you drop a link to it?

____________________________
Deploy the... I think it's a yellow button... it's usually flashing... it makes the engines go... WHOOSH!
12-14-2003 at 08:06 AM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts This architect's holds Quote Reply
ErikH2000
Level: Legendary Smitemaster
Avatar
Rank Points: 2379
Registered: 02-04-2003
IP: Logged
icon Re: .Net questions. (0)  
quote:
DiMono wrote:
This is unrelated to .NET, but since the topic of turn order was brought up, where does placing a mimic sit? And opening doors? And disappearing of red doors?

Oh man, I don't remember all this offhand. Although, if you read through CCurrentGame:: ProcessCommand() and its callees from CurrentGame.cpp of the drodlib project, answers to these and other game-logic questions will be revealed.

http://cvs.sourceforge.net/viewcvs.py/drod/Caravel/DRODLib/CurrentGame.cpp?rev=1.172&view=auto

-Erik

____________________________
Godkiller Gamedev Sundays (live sessions every Sunday 3pm PST where I make a new puzzle game)
youtube (archive of live streams, and some animated videos I made)
12-14-2003 at 09:11 PM
View Profile Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
DiMono
Level: Smitemaster
Avatar
Rank Points: 1161
Registered: 09-13-2003
IP: Logged
icon Re: .Net questions. (0)  
Cool, I'll download and go digging through the source when I have time. I might have some puzzles I can design around monster/orb/mimic order and such, which would be interesting to solve.

____________________________
Deploy the... I think it's a yellow button... it's usually flashing... it makes the engines go... WHOOSH!
12-15-2003 at 08:07 AM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts This architect's holds Quote Reply
agaricus5
Level: Smitemaster
Avatar
Rank Points: 1839
Registered: 02-04-2003
IP: Logged
icon Re: .Net questions. (0)  
Just make sure that what you exploit is not quirky or counter-intuitive or it may put those who do not look at the source code off from playing your rooms.

____________________________
Resident Medic/Mycologist
12-15-2003 at 11:04 PM
View Profile Send Private Message to User Send Email to User Show all user's posts This architect's holds Quote Reply
DiMono
Level: Smitemaster
Avatar
Rank Points: 1161
Registered: 09-13-2003
IP: Logged
icon Re: .Net questions. (0)  
I just mean stuff like you're walking down a corridor one square wide, encounter a mimic potion, and the roaches just happen to evacuate the useable square after you move, but before you place the mimic.

____________________________
Deploy the... I think it's a yellow button... it's usually flashing... it makes the engines go... WHOOSH!
12-17-2003 at 04:24 AM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts This architect's holds Quote Reply
New Topic New Poll Post Reply
Caravel Forum : Caravel Boards : Development : .Net questions.
Surf To:


Forum Rules:
Can I post a new topic? No
Can I reply? No
Can I read? Yes
HTML Enabled? No
UBBC Enabled? Yes
Words Filter Enable? No

Contact Us | CaravelGames.com

Powered by: tForum tForumHacks Edition b0.98.8
Originally created by Toan Huynh (Copyright © 2000)
Enhanced by the tForumHacks team and the Caravel team.