Announcement: Be excellent to each other.


Caravel Forum : Caravel Boards : Development : The DROD Flash Project
12
Page 3 of 6
456
New Topic New Poll Post Reply
Poster Message
hyphz
Level: Delver
Rank Points: 34
Registered: 01-02-2006
IP: Logged
icon Re: The DROD Flash Project (0)  
Um, Mr. Hold Importer Person? :) The revised importer gets the correct squares, but it doesn't subtract the top left corner offset from the coordinates for scrolls and monsters, so they're out of sync. Could you take a look at this please?

08-13-2008 at 12:59 AM
View Profile Send Private Message to User Show all user's posts Quote Reply
kyevan
Level: Disabled
Rank Points: 54
Registered: 08-29-2007
IP: Logged
icon Re: The DROD Flash Project (0)  
While we're at it, I don't think you control drod.org, seeing as it's just a domain squatter. Why are you using the org.drod namespace!?
08-13-2008 at 02:08 AM
View Profile Send Private Message to User Show all user's posts Quote Reply
hyphz
Level: Delver
Rank Points: 34
Registered: 01-02-2006
IP: Logged
icon Re: The DROD Flash Project (0)  
kyevan wrote:
While we're at it, I don't think you control drod.org, seeing as it's just a domain squatter. Why are you using the org.drod namespace!?

ActionScript/Java namespaces aren't tied to URLs in the same way XML Namespaces are.

08-13-2008 at 03:09 AM
View Profile Send Private Message to User Show all user's posts Quote Reply
kyevan
Level: Disabled
Rank Points: 54
Registered: 08-29-2007
IP: Logged
icon Re: The DROD Flash Project (0)  
hyphz wrote:
kyevan wrote:
While we're at it, I don't think you control drod.org, seeing as it's just a domain squatter. Why are you using the org.drod namespace!?

ActionScript/Java namespaces aren't tied to URLs in the same way XML Namespaces are.
Yes, they are. Well, you CAN use anything you want, but it's conventional to use URLs to prevent collisions. If you're not going to do that, you could use the drod namespace, or something, but using org.drod is misleading.
08-13-2008 at 03:11 AM
View Profile Send Private Message to User Show all user's posts Quote Reply
halyavin
Level: Delver
Rank Points: 52
Registered: 02-20-2006
IP: Logged
icon Re: The DROD Flash Project (0)  
My logic was simple - org because it is not commercial project, drod - because it is developed by drod community. I don't have any domain, so I haven't even thought to use real one.
For my projects I am usually use org.ha namespace.
08-13-2008 at 10:56 AM
View Profile Send Private Message to User Show all user's posts Quote Reply
hyphz
Level: Delver
Rank Points: 34
Registered: 01-02-2006
IP: Logged
icon Re: The DROD Flash Project (0)  
I have just conquered a room in FlashDROD. ;)

08-17-2008 at 02:53 AM
View Profile Send Private Message to User Show all user's posts Quote Reply
Snacko
Level: Smiter
Rank Points: 448
Registered: 06-08-2006
IP: Logged
icon Re: The DROD Flash Project (0)  
Seriously? Let's get a progress report here! We're way ahead of a nonexistent schedule.

____________________________
Director of the Department of Orderly Disruptions
08-17-2008 at 05:49 AM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores Quote Reply
Briareos
Level: Smitemaster
Avatar
Rank Points: 3516
Registered: 08-07-2005
IP: Logged
icon Re: The DROD Flash Project (0)  
Snacko wrote:
Let's get a progress report here!
What this project needs is a bar... ;)

____________________________
"I'm not anti-anything, I'm anti-everything, it fits better." - Sole
R.I.P. Robert Feldhoff (1962-2009) :(
08-17-2008 at 10:57 AM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts Quote Reply
hyphz
Level: Delver
Rank Points: 34
Registered: 01-02-2006
IP: Logged
icon Re: The DROD Flash Project (+1)  
Halvayin --

I noticed that in the latest revision, you changed the event sequencing rules. The problem is that these rules introduce a bug, as follows:

Here's beethro pointing his sword at a roach:

  B-R


Now, suppose Beethro moves a step to the East. Thus, the roach gets hit with the sword, dies, and a MONSTER_KILLED event gets queued up.

Here's the issue: that MONSTER_KILLED event absolutely must be processed, through GameScreen.processEvents(), before processMonsters() gets called. If it isn't, the roach will remain in the active monster list, and will move West "underneath" the sword and kill Beethro!

That's why the sequence needs to be "player turn, events, monster turn, events" - you can't put processMonsters() into processCommand() without getting bizarre results (and trouble allowing for haste potions).

There's similar things in other contexts - for example, if Beethro hits an orb with his sword, then monsters can immediately move onto the open door, instead of having to wait a turn because the door doesn't open until after their movement.

You can see this: if you check out Rev. 27 and kill a roach, it works fine. If you check out Rev. 28, then whenever you kill a roach, you get the "beethro died" trace as well, even if he shouldn't have. Also, often a random roach disappears (this is the result of killMonster() trying to kill the same monster twice)

I obvously don't want to start a fight on SVN ;) so if you could sort this out in some way that's in tune with how you want event handling to work it would be much appreciated :)


[Last edited by hyphz at 08-17-2008 10:31 PM]
08-17-2008 at 10:26 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
halyavin
Level: Delver
Rank Points: 52
Registered: 02-20-2006
IP: Logged
icon Re: The DROD Flash Project (+1)  
I fixed bugs with new event handling. GameScreen shouldn't handle monster killing - this is the job of the game engine.
08-18-2008 at 08:59 AM
View Profile Send Private Message to User Show all user's posts Quote Reply
hyphz
Level: Delver
Rank Points: 34
Registered: 01-02-2006
IP: Logged
icon Re: The DROD Flash Project (0)  
halyavin wrote:
I fixed bugs with new event handling. GameScreen shouldn't handle monster killing - this is the job of the game engine.

So the "events" passed up from the process calls, should be purely things which require animations to run?
08-18-2008 at 04:42 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5056
Registered: 02-04-2003
IP: Logged
icon Re: The DROD Flash Project (0)  
hyphz wrote:
halyavin wrote:
I fixed bugs with new event handling. GameScreen shouldn't handle monster killing - this is the job of the game engine.

So the "events" passed up from the process calls, should be purely things which require animations to run?
I'll just throw in my two cents here (and I hope I don't end up looking silly if you guys have discussed this already). Designers usually think of games as having two "engines" -- a back-end and a front-end. The back-end handles all the state logic of how the inner parts of the game behave. The front end displays all the graphical display for what the back end is keeping track of. When the back end wants something displayed, it passes this information to the front end part. Whenever the front end receives these things, it displays that stuff.

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.
08-19-2008 at 04:46 AM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
Sillyman
Level: Smiter
Avatar
Rank Points: 339
Registered: 09-08-2006
IP: Logged
icon Re: The DROD Flash Project (0)  
And sometimes, the front-end handles input as well.

____________________________
Who, me?
FNORD
08-19-2008 at 07:31 AM
View Profile Send Private Message to User Show all user's posts Quote Reply
hyphz
Level: Delver
Rank Points: 34
Registered: 01-02-2006
IP: Logged
icon Re: The DROD Flash Project (0)  
Mrimer, I'm familiar with that aspect of game structure - and that's reflected in FlashDROD, I just wasn't sure about the design contract for the event handling system halyavin wrote :)

While we have legendaries here can I just ask - is there a reason why regular DROD - apparantly - recalculates the list of squares that a yellow door covers every time the door is affected by a orb? I couldn't think of anything that changes it, so the orb implementation in FlashDROD just scans the whole room when it's first loaded and forms a linkage map that persists. Albeit we don't have platforms yet, but I wanted to increase performance as far as possible - at the moment all the graphics are done by drawing on a bitmap surface and Flash isn't really meant to be used like that (it likes you to use vectors, layers, etc), so the performance has to be carefully watched..

(Has to work out how to do undos and checkpoint resets now without taking up stupid amounts of memory ;) )

PS: We currently have: roaches, orbs, yellow doors, green doors, force arrows and oremites (although force arrows and oremites have no graphics). If anyone can do some .png tiles for these they'd be handy..) There is incomplete support for orthosquares and pressure plates. Having roaches already, doing queens, golems and wubbas shouldn't be too hard either. Brains and snakes are a bit scary though. :p But what the hey, I'm loving doing this so who knows? :) There are already at least five "maps" stored of each room so adding the routing map brains use shouldn't be too much of a hassle..


[Last edited by hyphz at 08-19-2008 06:45 PM]
08-19-2008 at 06:30 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
Briareos
Level: Smitemaster
Avatar
Rank Points: 3516
Registered: 08-07-2005
IP: Logged
icon Re: The DROD Flash Project (0)  
hyphz wrote:
While we have legendaries here can I just ask - is there a reason why regular DROD - apparantly - recalculates the list of squares that a yellow door covers every time the door is affected by a orb?
If by "regular DROD" you mean TCB - can't builders remove from a door?

np: O9 - Terminal Red (Church Of The Ghetto P.C.)

____________________________
"I'm not anti-anything, I'm anti-everything, it fits better." - Sole
R.I.P. Robert Feldhoff (1962-2009) :(
08-19-2008 at 06:46 PM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts Quote Reply
kyevan
Level: Disabled
Rank Points: 54
Registered: 08-29-2007
IP: Logged
icon Re: The DROD Flash Project (0)  
A thought: We really don't need 100% perfect emulation of the rules in the Caravel versions, do we? It should be as close as practical, but if, say, movement order within a 'phase' (like "monster movement") is a little different, that's not a huge problem, is it? It's not like plans are to import an old hold - the room size is different, even!

And Mike Rimer obviously hasn't worked on 'modern' games. I'm pretty sure Valve's Source, for example, is up to something like half a dozen somewhat independant sub-engines, most of which are built up of several components themselves...
08-19-2008 at 06:59 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
hyphz
Level: Delver
Rank Points: 34
Registered: 01-02-2006
IP: Logged
icon Re: The DROD Flash Project (0)  
Ack. Hadn't thought about builders. Still, if it's only a simple change the linkage map can be updated..

Also, one thing I should mention that I was thinking we might _add_ to FlashDROD is a) a score, and b) achievements. Certainly if it's going to go onto Kong, Kong has integrated systems for both of these, so they'll be mandatory to fully integrate with it (and they increase the popularity of a game, too).

Plus, of course, they add new dimensions to what architects can do - (ie, a token which increases your score as a way of adding extra optional puzzles to a room).

My best guess for how to do Score would be something along the lines of "finishing a room gets you 1000 minus the number of moves you took" (assuming that 1000 is a reasonable top limit of course).

For achievements, I suggest the Amorphous+ strategy - ie, having lots of them (most of which won't be Kong "badges"), some of which are just automatic and serve to motivate the player to see more of the game, and some of which serve to teach the player techniques in the game. So examples of automatics would be, for example, an achievement for the first time you smite each monster type. For teaching ones, you could have (for example):

NOT SO LITERAL: Walk sideways across a Force Arrow.

BACKSWIPER: Kill a monster to Beethro's left or right in one move, without turning your sword.

IAJITSU MASTER: Kill a monster with your sword in the same turn you drew your sword (by stepping off oremites, etc)


08-19-2008 at 07:15 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
halyavin
Level: Delver
Rank Points: 52
Registered: 02-20-2006
IP: Logged
icon Re: The DROD Flash Project (0)  
hyphz wrote:
My best guess for how to do Score would be something along the lines of "finishing a room gets you 1000 minus the number of moves you took" (assuming that 1000 is a reasonable top limit of course).
I thought about scores but imagine formula 1000*best_known_solution/player_solution.
08-19-2008 at 07:46 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
kyevan
Level: Disabled
Rank Points: 54
Registered: 08-29-2007
IP: Logged
icon Re: The DROD Flash Project (0)  
halyavin wrote:
hyphz wrote:
My best guess for how to do Score would be something along the lines of "finishing a room gets you 1000 minus the number of moves you took" (assuming that 1000 is a reasonable top limit of course).
I thought about scores but imagine formula 1000*best_known_solution/player_solution.
That means scores have to be invalidated every time someone finds a faster solution.
08-19-2008 at 08:26 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
AtkinsSJ
Level: Master Delver
Avatar
Rank Points: 107
Registered: 12-23-2005
IP: Logged
icon Re: The DROD Flash Project (0)  
Kong is quite capable I think of just having the score as the number of turns per room, and the lowest is the best. That's a system everyone will understand, too. Though it would mean having an individual score table per room.
08-19-2008 at 09:30 PM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts Quote Reply
hyphz
Level: Delver
Rank Points: 34
Registered: 01-02-2006
IP: Logged
icon Re: The DROD Flash Project (0)  
Ok, I've just been trying to code Wraithwings. I notice in the movement summary on them, it comments that they "attack like brained roaches and run away like brained roach queens". I couldn't see that in the original source. They seem to attack like ordinary roaches (a call to GetDirectMovement with the default IQ being SmartDiagonalOnly) and run away in similar fashion. Am I misreading the source or is the original post wrong?

08-20-2008 at 02:06 AM
View Profile Send Private Message to User Show all user's posts Quote Reply
coppro
Level: Smitemaster
Rank Points: 1308
Registered: 11-24-2005
IP: Logged
icon Re: The DROD Flash Project (0)  
/me bumps in with random plugs for The Pragmatic Programmer

EDIT:
hyphz wrote:
Ok, I've just been trying to code Wraithwings. I notice in the movement summary on them, it comments that they "attack like brained roaches and run away like brained roach queens". I couldn't see that in the original source. They seem to attack like ordinary roaches (a call to GetDirectMovement with the default IQ being SmartDiagonalOnly) and run away in similar fashion. Am I misreading the source or is the original post wrong?
IIRC, that's the brained movement. Otherwise, it's just regular roach/queen movement.

[Last edited by coppro at 08-20-2008 04:46 AM]
08-20-2008 at 04:45 AM
View Profile Show all user's posts Quote Reply
Briareos
Level: Smitemaster
Avatar
Rank Points: 3516
Registered: 08-07-2005
IP: Logged
icon Re: The DROD Flash Project (+1)  
AtkinsSJ wrote:
Kong is quite capable I think of just having the score as the number of turns per room, and the lowest is the best. That's a system everyone will understand, too. Though it would mean having an individual score table per room.
I guess allocating some space on screen for a permanently visible score (i.e. turn) counter - as opposed to DRODs F7 counter - might be a good idea then...

____________________________
"I'm not anti-anything, I'm anti-everything, it fits better." - Sole
R.I.P. Robert Feldhoff (1962-2009) :(
08-20-2008 at 08:45 AM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5056
Registered: 02-04-2003
IP: Logged
icon Re: The DROD Flash Project (+1)  
hyphz wrote:
Ack. Hadn't thought about builders. Still, if it's only a simple change the linkage map can be updated..
Sure, if you'd like to optimize door region calculations somehow and update when the room geometry changes, that's sounds great. I'd consider avoiding superfluous updates, perhaps by setting a dirty bit whenever door tiles are plotted or removed, and whenever a door is toggled, recalc the door shapes if the dirty bit is set. Otherwise, do nothing.
kyevan wrote:
And Mike Rimer obviously hasn't worked on 'modern' games. I'm pretty sure Valve's Source, for example, is up to something like half a dozen somewhat independant sub-engines, most of which are built up of several components themselves...
Aw, come on, you're hurting my pride. :( If I catch your meaning, then it is true that I haven't written 'modern' games using Valve's Source, etc., but how is it obvious? I was trying to be helpful on a basic level. I guess that's what I get for jumping into the middle of a conversation, but I was describing fundamental model-view-controller design. Was my reasoning flawed? Is my code poorly written? I dunno...it's silly to say a person doesn't know how to write a great novel because he is overheard talking to his child about the alphabet (not implying anyone here is a child or like my child...it's just an analogy).

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.

[Last edited by mrimer at 08-20-2008 02:53 PM]
08-20-2008 at 02:03 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
Tim
Level: Smitemaster
Avatar
Rank Points: 1979
Registered: 08-07-2004
IP: Logged
icon Re: The DROD Flash Project (0)  
mrimer wrote:
kyevan wrote:
And Mike Rimer obviously hasn't worked on 'modern' games. I'm pretty sure Valve's Source, for example, is up to something like half a dozen somewhat independant sub-engines, most of which are built up of several components themselves...
Aw, come on, you're hurting my pride. :( ...
LOL.

I'm also pretty sure that Microsoft Vista has lots of independent sub-engines with several components. These 'modern' games must be great!

Note: I am curerntly using Vista.

____________________________
The best way to lose customers is to let little kids running loose on a forum with too many mod points.
08-20-2008 at 02:56 PM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
kyevan
Level: Disabled
Rank Points: 54
Registered: 08-29-2007
IP: Logged
icon Re: The DROD Flash Project (0)  
mrimer wrote:
kyevan wrote:
And Mike Rimer obviously hasn't worked on 'modern' games.
Aw, come on, you're hurting my pride. :(
I was being silly. I apologize if that didn't come across and I hurt your feelings.
08-20-2008 at 05:55 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
hyphz
Level: Delver
Rank Points: 34
Registered: 01-02-2006
IP: Logged
icon Re: The DROD Flash Project (0)  
mrimer wrote:
hyphz wrote:
Ack. Hadn't thought about builders. Still, if it's only a simple change the linkage map can be updated..
Sure, if you'd like to optimize door region calculations somehow and update when the room geometry changes, that's sounds great. I'd consider avoiding superfluous updates, perhaps by setting a dirty bit whenever door tiles are plotted or removed, and whenever a door is toggled, recalc the door shapes if the dirty bit is set. Otherwise, do nothing.

Actually, the door shape calculations aren't something I've looked at yet (halya did them and I've not gotten involved ;) ) - it's just for dealing with the list of tiles to toggle when an orb is switched.

Shape calculations are generally minimised because in the latest rel. there's a global "dirty square list" which gets passed around with the event list, listing the squares that need to be redrawn. As I mentioned.. the current system of blitting the images onto a bitmap is actually a bit alien to Flash, which likes you to use Flash itself as your graphics engine. But I don't suppose anyone fancies redrawing all the tiles and monsters as vector objects in Flash :)

Certainly on my machine, which is fairly quick, without the dirty list if you held down a movement key Beethro (or do I have to call him "swordsman" now? ;) ) would "stutter" a bit (even after the auto-repeat kicked in) on his way across the room. With the dirty list he moves fairly smoothly.

And I hope your pride hasn't been hurt, your code is still some of the best to learn from I have ever read ;) Although I still have to work out how to do checkpoints and undo..


[Last edited by hyphz at 08-20-2008 07:01 PM]
08-20-2008 at 06:53 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
kyevan
Level: Disabled
Rank Points: 54
Registered: 08-29-2007
IP: Logged
icon Re: The DROD Flash Project (0)  
hyphz wrote:Although I still have to work out how to do checkpoints and undo..

I see two ways: one that uses little memory, one that uses little time. The first, use a queue, enqueue each move as the user makes it, and store a snapshot of that when they touch a checkpoint. Replay to restore. (You'd need to store the room start state, too, but that should be small - what square you enter at, what sword angle, if it was pre-cleared, and if the blue door was down is all I can think of.) For time-efficiency, store a snapshot of the entire room state when you touch a checkpoint, and keep the previous moves state around until they move again. Restore to those.

Of course, you could use both, too - keep this state and the previous state for the one move undo, but use move queues for checkpoints. Another plus to the move queue system - you've basically just written a system for demos. :lol
08-20-2008 at 07:09 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
AtkinsSJ
Level: Master Delver
Avatar
Rank Points: 107
Registered: 12-23-2005
IP: Logged
icon Re: The DROD Flash Project (0)  
Presumably there wouldn't be a restore feature, but instead you'd just continue where you left off. That way, it would only need to save the checkpoint data for the current room.
08-20-2008 at 07:12 PM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts Quote Reply
hyphz
Level: Delver
Rank Points: 34
Registered: 01-02-2006
IP: Logged
icon Re: The DROD Flash Project (0)  
TCB 3.1 apparantly performs essentially a complete game save when a checkpoint is stepped on. As we're going to have to do that to some extent, too, I guess how much persistent data we can pack into Flash is the next research project ;)

08-20-2008 at 07:37 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
12
Page 3 of 6
456
New Topic New Poll Post Reply
Caravel Forum : Caravel Boards : Development : The DROD Flash Project
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.