[gameprogrammer] Re: Embedded file monitoring system?
- From: Jake Briggs <jacob_briggs@xxxxxxxxxxxxxxx>
- To: gameprogrammer@xxxxxxxxxxxxx
- Date: Fri, 29 Apr 2005 10:33:27 +1200
You could start by having a user initiated check. IE you bind a key
press to the "lookForAndLoadNewTextures" function. Although that does
avoid the more interesting part of the problem, how do you know the
files been changed/added.
You could just check the texture directory for its timestamp. On linux,
if you make a directory at 10 am, then put something in it at 10:30 am
the time modified omn that directory is updated also. If you modifiy a
file in the directory, its timestamp is also modified. You would only
check one thing per frame...
Or you could make your engine do the adding/modification of textures,
instead of the filesystem. You could tell your engine to save the changes...
Jake
Swalrus wrote:
>On Thu, 2005-04-28 at 16:45 -0300, Kevin Fields wrote:
>
>
>>Boost would help to solve the cross-platform issue.
>>If it's a texture issue, maybe you should check out the devIL library.
>>I know about it because I'm working with the Ogre rendering engine (which
>>makes use of both Boost and devIL).
>>
>>
>
>Yes, I'm using Ogre too in this game I'm doing, and it's a quite
>impressive engine :D
>But regarding devIL... I haven't had a good experience with it in the
>past. It gave me a lot of problems to get to compile Ogre with it (I've
>even read Ogre developers saying "we know devIL is evil"). So, is it
>still as evil as ever? Or have they managed to keep it's evilness down?
>
>
>
>>As for determining whether the texture has been modified, instead of polling
>>each frame to see if the texture was modified, you could use a sort of event
>>handling system where the appropriate texture would have an event signaled
>>to it, and in the event handler function for that texture, you would reload
>>the texture. But, that's just one possible way of doing things.
>>
>>
>
>Yes, that was what I was looking for the first time. But for what I've
>seen, only a few platforms allow you to "register" a process as a
>"filesystem events handler" and make the kernel tell that process when a
>file has been modified (latest versions of Linux, for example, seem to
>have this feature). And as one of my project goals is portability, I
>think I'll have to find another way to do it. And the only other way
>that comes into my mind is polling every few seconds :S
>
>I think something like this could work:
>Poll the filesystem for changes every few seconds in an independent
>thread (using the Boost library). Then, between frames, check the
>changed files and reload the corresponding textures.
>
>Probably I'll have to dig deeper into Ogre's internals to be able to do
>that, as I'm no Ogre guru myself. Hummm... now that I think of it...
>this could be a very interesting feature for Ogre... hummm
>
>Well, I'll keep thinking about this, and looking for other solutions to
>this problem.
>
>Bye!
>
>
>
>>Kevin
>>
>>
>>
>>>From: Swalrus <swalrus@xxxxxxxxxxxxxx>
>>>Reply-To: gameprogrammer@xxxxxxxxxxxxx
>>>To: gameprogrammer@xxxxxxxxxxxxx
>>>Subject: [gameprogrammer] Re: Embedded file monitoring system?
>>>Date: Thu, 28 Apr 2005 17:47:00 +0200
>>>
>>>On Thu, 2005-04-28 at 10:45 +0100, Trollfiddler wrote:
>>>
>>>
>>>>Unless you use java. Cross platform IO works fine on various versions of
>>>>Windows and Unix. Probably no use to you at this stage, but if it really
>>>>
>>>>
>>>HAS
>>>
>>>
>>>>to be cross platform then it's worth mentioning in case you hit a dead
>>>>
>>>>
>>>end.
>>>
>>>Unfortunately I'm coding it using C++, so Java's I/O capabilities won't be
>>>of
>>>much help this time :(
>>>
>>>Anyway, I've just found a C++ library that seems portable enough (works
>>>on all POSIX compliant platforms and Windows), and that lets you check
>>>files' last modification time as I needed. It's one of the Boost.org set
>>>of libraries, called Boost Filesystem Library.
>>>
>>>Has anybody here used it before?
>>>
>>>And, answering Scott here, when I've coded this monitoring system I will
>>>release under the LGPL, so anybody can use it :) And as you suggested,
>>>if I manage to code that on-the-fly-assets-reloading system, I will
>>>upload a tutorial to the wiki :)
>>>
>>>Bye
>>>
>>>
>>>
>>>>----- Original Message -----
>>>>From: "Scott Harper" <lareon@xxxxxxxxxxx>
>>>>To: <gameprogrammer@xxxxxxxxxxxxx>
>>>>Sent: Thursday, April 28, 2005 3:43 AM
>>>>Subject: [gameprogrammer] Re: Embedded file monitoring system?
>>>>
>>>>
>>>>
>>>>
>>>>>Good luck on the cross-platform-ness in this regard. I don't know TOO
>>>>>much about programming on a per-system level, but from what I've
>>>>>learned, dealing with the filesystems is almost COMPLETELY different
>>>>>from platform to platform. You would literally have to write calls
>>>>>using completely different code on each platform to do the different
>>>>>things.
>>>>>
>>>>>Although, now that I think of it, I suppose it wouldn't be
>>>>>
>>>>>
>>>unreasonable
>>>
>>>
>>>>>to implement this way, just a whole bunch of #ifdef's in your code, I
>>>>>imagine. Careful coding would be requisite in this case, though, to
>>>>>ensure that each platform's code was isolated appropriately.
>>>>>
>>>>>If you do it that way, you should go to the wiki and upload a
>>>>>
>>>>>
>>>tutorial!
>>>
>>>
>>>>>--Scott
>>>>>
>>>>>On 27 Apr, 2005, at 7:37 PM, Swalrus wrote:
>>>>>
>>>>>
>>>>>
>>>>>>On Wed, 2005-04-27 at 13:03 +0000, John-Philip Johansson wrote:
>>>>>>
>>>>>>
>>>>>>>While I was reading "The Guerrilla Guide to Game Code"
>>>>>>>(http://www.gamasu=
>>>>>>>
>>>>>>>
>>>>>>tra.com/features/20050414/rouwe_01.shtml), which is a great article
>>>>>>btw, I =
>>>>>>came across this at the end; under References:
>>>>>>
>>>>>>
>>>>>>>[Butcher]: Halo 2 =96 Chris Butcher =96 Speech at game|tech 2004
>>>>>>>( http://www.game-tech.com/Talks/Butcher.doc )
>>>>>>>
>>>>>>>
>>>>>>Reading that document (a great reading, BTW), a Halo2 feature Butcher
>>>>>>talks about just caught my attention. He talks of an embedded file
>>>>>>monitoring system that reloads game assets when the related files are
>>>>>>modified on the HD. For example, if a texture image is modified, it's
>>>>>>automatically reloaded in the game, immediately showing 3D models
>>>>>>
>>>>>>
>>>with
>>>
>>>
>>>>>>the new texture. And the same goes for all kinds of objects
>>>>>>
>>>>>>
>>>(geometry,
>>>
>>>
>>>>>>collisions data, sounds, etc)
>>>>>>
>>>>>>This kind of thing would be REALLY helpful in a small game I'm
>>>>>>developing, and so I wonder how could I implement this feature.=20
>>>>>>
>>>>>>I suppose I would have to manually poll each and every file I want to
>>>>>>monitor every few seconds, to see if they've been modified, but... do
>>>>>>you know if there's a better way to do it?
>>>>>>
>>>>>>I've been googling for a library I could use to do this kind of
>>>>>>
>>>>>>
>>>stuff,
>>>
>>>
>>>>>>but the only ones I've found where non-portable (I need it to be
>>>>>>cross-platform), and relied on a client-server architecture (see
>>>>>>
>>>>>>
>>>SGI's
>>>
>>>
>>>>>>FAM for example).
>>>>>>
>>>>>>Do you know of any library that could be used for this? Or will I
>>>>>>
>>>>>>
>>>have
>>>
>>>
>>>>>>to code this feature from scratch?
>>>>>>
>>>>>>Thank you!
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>---------------------
>>>>>>To unsubscribe go to http://gameprogrammer.com/mailinglist.html
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>---------------------
>>>>>To unsubscribe go to http://gameprogrammer.com/mailinglist.html
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>---------------------
>>>>To unsubscribe go to http://gameprogrammer.com/mailinglist.html
>>>>
>>>>
>>>>
>>>>
>>>
>>>---------------------
>>>To unsubscribe go to http://gameprogrammer.com/mailinglist.html
>>>
>>>
>>>
>>>
>>
>>
>>---------------------
>>To unsubscribe go to http://gameprogrammer.com/mailinglist.html
>>
>>
>>
>>
>
>
>
>---------------------
>To unsubscribe go to http://gameprogrammer.com/mailinglist.html
>
>
>
>
>
>
--
Named after its country of origin 'England', English is a little known dialect
used by up to 1.5 billion non-Americans worldwide. Some interesting but
obviously incorrect features of the language include:
- queues of people
- wonderful coloUrs
- the useful metal aluminIum
- the exotic herbs (h-urbs), basil (ba-zil) and oregano (o-re-gaa-no)
- specialiSed books called 'dictionaries' that tell you how to spell words
correctly
Many people using this bizarre gutter speak also subscribe to the pagan belief
that water freezes at 0 degrees and that distances should be measured in the
forbidden mathematical system of base-10...
---------------------
To unsubscribe go to http://gameprogrammer.com/mailinglist.html
- Follow-Ups:
- References:
- [gameprogrammer] Re: Embedded file monitoring system?
- From: Kevin Fields
- [gameprogrammer] Re: Embedded file monitoring system?
- From: Swalrus
Other related posts:
- » [gameprogrammer] Re: Embedded file monitoring system?
- » [gameprogrammer] Re: Embedded file monitoring system?
- » [gameprogrammer] Re: Embedded file monitoring system?
- » [gameprogrammer] Re: Embedded file monitoring system?
- » [gameprogrammer] Re: Embedded file monitoring system?
- » [gameprogrammer] Re: Embedded file monitoring system?
- » [gameprogrammer] Re: Embedded file monitoring system?
- » [gameprogrammer] Re: Embedded file monitoring system?
- » [gameprogrammer] Re: Embedded file monitoring system?
- » [gameprogrammer] Re: Embedded file monitoring system?
- [gameprogrammer] Re: Embedded file monitoring system?
- From: Kevin Fields
- [gameprogrammer] Re: Embedded file monitoring system?
- From: Swalrus