Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- derrick - Today at 12:02 AM
- I may have asked it wrong... I am used to there being a main as I do simple game programming... Being able to iterate time or have the main check your object or list versus some time that should happen in the future
- What is the equivalent of main within ACE
- I am at the point of applying spell effects to targets and trying to get them to expire properly
- OptimShi - Today at 12:04 AM
- ¯\_(ツ)_/¯
- ElonMad1
- ElonWink1
- derrick - Today at 12:04 AM
- lol
- will do some digging into the code
- Rawaho - Today at 12:06 AM
- Every world object has an update method with the last server tick, you want to decrement the tick from the remaining time of the spell effect every update
- ACE1
- derrick - Today at 12:06 AM
- Thanks Rawaho, I will look into that!
- floater - Today at 1:37 AM
- no idea how ACE code is laid out but typically better to set an expiration time, rather than constantly decrementing a value
- if (GetCurrentTime() >= _expirationTime)
- Ripley - Today at 1:38 AM
- i went that route for the generator queue
- floater - Today at 1:38 AM
- the "time" value is a real thing too, a double value, shared with the client
- the same one that controls the seasons
- err
- time of day rather
- lil things may not seem like much but can add up i assume
- if (GetCurrentTime() >= (_startTime + interval)) is obviously slower than just doing a one time _endTime = _startTime + interval; if (GetCurrentTime() >= _endTime)
- but if that level of granularity matters the project has bigger issues haha
- i just generally do things that way just because
- sometimes i dont when there are scenarios that the interval might be dynamic
- Rawaho - Today at 1:41 AM
- Decermenting a value is ALOT quicker then constantly querying the server time
- Ripley - Today at 1:41 AM
- there's likely an issue with the main loop tbh, going through an spawning a town full of generators can cause the client to be "frozen"
- Rawaho - Today at 1:41 AM
- DateTime.Now isn't quick
- floater - Today at 1:41 AM
- the server time is a double value stored in memory
- not a system pull of the time
- Rawaho - Today at 1:42 AM
- ACE doesn't use that value for updates
- But it could be changed to do so
- floater - Today at 1:42 AM
- any game should always have some sort of floating point time variable
- Rawaho - Today at 1:42 AM
- That is what the server tick is
- floater - Today at 1:42 AM
- if ACE doesnt have one it should get one
- not just a delta, an actual time value
- Rawaho - Today at 1:43 AM
- It's not really needed if you have the last tick
- floater - Today at 1:43 AM
- the time can be pulled once per tick, generally speaking at least, and the value stored as a floating point
- Rawaho - Today at 1:44 AM
- ACE pulls the current time at the start of a world update and calculates the delta, the actual time value is discarded at that point
- floater - Today at 1:45 AM
- it kind of is needed... sort of silly to explain why, but try finding a game code that doesnt reference a global game time variable, it doesn't exist
- there are even parts of the AC code that are designed specifically to triggers at certain times
- delta wont give you that
- furthermore
- weenies store time variables
- not deltas
- Rawaho - Today at 1:46 AM
- Well if you need an event to trigger at a certain time you just calculate the time till that event and still just decrement from the delta
- In such case the calculation only needs to be done once(edited)
- floater - Today at 1:46 AM
- so if you have a million objects all decrementing memory every tick you dont think thats bad?
- when its unnecessary?
- Rawaho - Today at 1:46 AM
- It's not
- floater - Today at 1:46 AM
- it is...
- Rawaho - Today at 1:47 AM
- At most a single server tick will only have a few hundred objects to update
- Not millions
- floater - Today at 1:47 AM
- this is a silly conversation
- i hope you know that
- Rawaho - Today at 1:48 AM
- I know how game server performance works, I am not exactly a novice in the area
- floater - Today at 1:48 AM
- cool, make something better than PhatAC
- physics took me two weeks
- have fun
- ill wait
- Rawaho - Today at 1:48 AM
- lol
- I work on game servers that handle 40K plus players
- floater - Today at 1:49 AM
- and?
- Rawaho - Today at 1:49 AM
- My point is I understand how you need to optimise
- I have physics on my private ACE fork ))
- I have for 8+ months(edited)
- floater - Today at 1:49 AM
- no, you don't
- Rawaho - Today at 1:50 AM
- The Physics in AC isn't overly complicated, you aren't the only one to have implemented
- floater - Today at 1:50 AM
- my guess is you RE'd some of it
- just like you made cachePwn as if looking at a few functions in phatAC in IDA is a big deal(edited)
- then anonymously post reddit asking me to "comment"
- your ego needs a check
- Rawaho - Today at 1:51 AM
- LOL
- I know who that person is
- It's not me
- Ripley - Today at 1:51 AM
- i'd agree with that tbh
- floater - Today at 1:52 AM
- the purpose of obfuscating cache.bin actually wasn't to stop someone from doing it, or i would have virtualized the code
- it was to slow anyone down initially and/or prevent ACE from reversing it
- because it took me less than 10 minutes to obfuscate things
- Ripley - Today at 1:52 AM
- :cry:
- but we wanna play with the pretty data too..
- floater - Today at 1:53 AM
- there's the comment you wanted
- you spent hours to reverse something that took me 10 minutes
- glad your time is less valuable than mine
- Rawaho - Today at 1:53 AM
- I only worked on CachePwn because someone told me ACE already had it and I didn't want to be left out
- I did take a few hours
- Maybe 5 or 6
- Was a slow work day :stuck_out_tongue:
- floater - Today at 1:53 AM
- also, the largest contents of cache.bin is mostly public
- voluntarily released
- Rawaho - Today at 1:54 AM
- Eh, I had fun working on it regardless
- floater - Today at 1:54 AM
- to a handful
- good, we all should have fun
- i dont taunt your projects though
- so don't be an idiot
- and act like you are hotshit
- you are a nerd
- i am a nerd
- we are here to enjoy this
- not to outnerd each other
- damn this is #development my bad
- Rawaho - Today at 1:56 AM
- I never said I was trying to out do someone
- If anything it's you that is thinks that you are the only one with the skills to RE the physics
- floater - Today at 1:56 AM
- checksum RE'd physics first
- Rawaho - Today at 1:56 AM
- I couldn't care who did it first, I only mentioned I had done it and you shot me down
- floater - Today at 1:57 AM
- then show your work
- i dont doubt you reversed some of physics
- and that said, you would know, physics entails more than just collisions
- its animations, and everything else tied in
- Rawaho - Today at 2:00 AM
- There are actually people that have access to my work, I don't have any plans to release it publicly at this point
- I don't really have anything to prove, I only work on AC emulation because it's something I enjoy(edited)
- 💅1
- Ripley - Today at 2:01 AM
- :raised_hand: can i take a peek? :stuck_out_tongue:
- Rawaho - Today at 2:02 AM
- I never even played AC, I only found the game through Reddit when I decided to work on an emulator
- HellsW̶r̶a̶t̶h̶ - Today at 2:02 AM
- There's a community of people looking for something stable and extensible :wink:
- The game means something totally different for you than it does for us. It's a lifetime passion for most here. I spent 17 years of my 28 in this game. ISO working server :ok_hand:
- 👌2
- ChosenOne - Today at 2:04 AM
- Can’t believe I’m gonna agree with Hells on something...
- :nauseated_face:
- HellsW̶r̶a̶t̶h̶ - Today at 2:04 AM
- we broke it. reality is dead.
- floater - Today at 2:04 AM
- just a little tip for anyone who might be trying to emulate physics
- Morosity (Spazmodica) - Today at 2:04 AM
- hey, i applaud anyone that has working physics for AC. that takes effort, brains, and a lot of creativity.
- floater - Today at 2:04 AM
- ive mentioned this privately to a few people
- consider this to be a goal, it will allow you to focus on the steps necessary to really have physics: the goal should be to be able to spawn a monster, tell it to move somewhere (move to position, move to object commands), and have the server know exactly where the monster is in sync with where the client thinks it is
- if you focus on stuff like the player itself, you're missing important things like that the animations themselves need to be part of physics implementation
- Morosity (Spazmodica) - Today at 2:05 AM
- baby steps. :smiley:
- floater - Today at 2:06 AM
- so dont worry about players, worry about monsters
- once you can do monsters
- players are already done o.o
- players are just autonomous monsters
- Ripley - Today at 2:06 AM
- or vendors even..
- its all derived from the same weenietype
- floater - Today at 2:07 AM
- one problem with focusing on players is that, sure, you may be checking collisions to verify client movement i suppose, but ultimately, you are still relying on updates from the client
- Morosity (Spazmodica) - Today at 2:07 AM
- holy cow, im yellow now. just noticed
- ACE2
- Ripley - Today at 2:07 AM
- congrats :smiley:
- ChosenOne - Today at 2:08 AM
- It’s 2018 bro, we don’t look at each other by color.
- 😜1
- floater - Today at 2:21 AM
- we look at each other by the content of our emulators?
- 😂2
- Ripley - Today at 2:23 AM
- oh look.. another failed test.. :rolling_eyes:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement