|
||||||||||||||||||
Add Forum to Favorites | Send Topic To a Friend | View Forum FAQ | Track this topic Page: 1 2 3 4 5 6 7 8 9 10 11 »» |
Last Thread Next Thread ![]() |
| Enginuity, Part V |
|
![]() Helius Member since: 3/7/2000 From: Madrid, Spain |
||||
|
|
||||
| Rock to da beat!! I have been waiting this momment for long |
||||
|
||||
![]() superpig GDNet Technical Lead Member since: 5/26/2001 From: Oxford, United Kingdom |
||||
|
|
||||
| Wow, formatted and put up within 18 hours! Dave, you're on *fire*, man! Oh, and first person to think of a good witty subtitle gets a cookie. |
||||
|
||||
![]() UltimaX Member since: 3/27/2003 From: Ashland, OH, United States |
||||
|
|
||||
| Very nice article! I love this series. I have been wanting to learn about triggers for a long time, thanks. -UltimaX- "You wished for a white christmas... Now go shovel your wishes!" |
||||
|
||||
![]() voodoo_john Member since: 5/2/2001 From: Glasgow, United Kingdom |
||||
|
|
||||
| Thanks for the mention Subtitle: Dirty Harry's Guide To Serializing Your Triggers [edited by - voodoo_john on October 28, 2003 4:15:48 PM] |
||||
|
||||
![]() gsealy Member since: 9/23/2001 From: New Zealand |
||||
|
|
||||
| Hi, Thanks again for another great article. I do have a question though... The docs on the __TIMESTAMP__ macro (in MSVC7), say that __TIMESTAMP__ is "The date and time of the last modification of the current source file". In other words, as far as I can see, if you don't change buildstamp.cpp, then deleting buildstamp.obj won't update the time stamp. Have I missed something here? Under Unix I could just "touch" the file as a post-build step, but under Windows I'm not aware of a similar command. Thanks, George Sealy Added thought: It seems that: std::string buildStamp = "PROJECT NAME " __DATE__ " " __TIME__; will work... [edited by - gsealy on October 28, 2003 4:35:28 PM] |
||||
|
||||
![]() Ronin Magus Member since: 5/30/2002 From: Franklin, USA |
||||
|
|
||||
| I develop on Linux, and __TIMESTAMP__ did not work with g++. However, std::cout << __DATE__ << " " << __TIME__ << std::endl; did compile correctly. I don't know if that code will work on VC++, though. EDIT: Oops, gsealy just said that. My bad! :-D daveandrews.org - a Christian Programmer's Weblog [edited by - Ronin Magus on October 28, 2003 4:46:07 PM] |
||||
|
||||
![]() superpig GDNet Technical Lead Member since: 5/26/2001 From: Oxford, United Kingdom |
||||
|
|
||||
quote: That's odd, I'm pretty sure it worked for me. I'm working with docs from MSVC6, perhaps it's changed? *shrug* Switching to __DATE__/__TIME__ is going to be safer, it seems (especially from the cross-platform point of view)... though personally I'd opt for the small-program-generating-the-file approach, as it affords the most flexibility and can produce much cooler-looking buildstamps Richard "Superpig" Fine - saving pigs from untimely fates, and when he's not doing that, runs The Binary Refinery. Enginuity1 | Enginuity2 | Enginuity3 | Enginuity4 | Enginuity5 ry. .ibu cy. .y'ybu. .abu ry. dy. "sy. .ubu py. .ebu ry. py. .ibu gy." fy. .ibu ny. .ebu OpenGL is a language |
||||
|
||||
![]() superpig GDNet Technical Lead Member since: 5/26/2001 From: Oxford, United Kingdom |
||||
|
|
||||
quote: No problem (In case anyone is wondering, voodoo_john is the guy who donated the code to do user-level logging (error dialogs) under Mac OSX). quote: Ooh.. not bad, but where are the interpolators and buildstamp? No cookie yet, I'm afraid... Richard "Superpig" Fine - saving pigs from untimely fates, and when he's not doing that, runs The Binary Refinery. Enginuity1 | Enginuity2 | Enginuity3 | Enginuity4 | Enginuity5 ry. .ibu cy. .y'ybu. .abu ry. dy. "sy. .ubu py. .ebu ry. py. .ibu gy." fy. .ibu ny. .ebu OpenGL is a language |
||||
|
||||
![]() Joviex Member since: 3/2/2000 From: Wesley Chapel, FL, United States |
||||
|
|
||||
| Excellent series so far. Very solid foundation for a kick ass engine. One problemo, source code link doesn't work Keep it up. |
||||
|
||||
![]() superpig GDNet Technical Lead Member since: 5/26/2001 From: Oxford, United Kingdom |
||||
|
|
||||
quote: Uh oh. *prods Dave* |
||||
|
||||
![]() Myopic Rhino Staff Member since: The dawn of time
From: Temecula, CA, United States |
||||
|
|
||||
| Oh, right. The link in the printable version works. Forgot to update the featured article template to account for the new download location. |
||||
|
||||
![]() Myopic Rhino Staff Member since: The dawn of time
From: Temecula, CA, United States |
||||
|
|
||||
| Fixed now. |
||||
|
||||
![]() superpig GDNet Technical Lead Member since: 5/26/2001 From: Oxford, United Kingdom |
||||
|
|
||||
| *eyes his prodding finger with awe* |
||||
|
||||
![]() Doc Member since: 1/1/2001 From: Brisbane, Australia |
||||
|
|
||||
| Hurrah! All hail superpig! One point to make: Buildstamps are useless if you release your code as open-source (as I do) since the user often compiles it for himself. Regular manual major-minor-debug versioning, and perhaps protocol versioning for serialisation seems like the only way to go in that case, unless you can think of something better... Peace. The following statement is true. The previous statement is false.Shameless promotion: FreePop: The GPL Populous II clone. |
||||
|
||||
![]() Blue Phoenix Member since: 5/20/2002 From: Dominican Republic |
||||
|
|
||||
| Keep it up Dave. Very nice series. |
||||
|
||||
![]() aboeing Member since: 1/11/2003 From: Perth, Australia |
||||
|
|
||||
| a nifty trick for if your not opensourcing your development, and if you do have some kind of global base class, is to have a static object which automatically register's each files date&time to make a combined build number, that always updates itself. - definately helps you to identify which version is newer and what parts were changed. (and the nifty thing is that you can have one nice big build number across multiple dll's) also: #ifndef __TIMESTAMP__ #define __TIMESTAMP__ __DATE__ " " __TIME__ #endif anyway, awesome article as usual superpig |
||||
|
||||
![]() Anonymous Poster |
||||
|
||||
| This probably sounds dumb, but where can I find thread.cpp/h. I googled for it and I only found documentation on it. |
||||
|
||||
![]() superpig GDNet Technical Lead Member since: 5/26/2001 From: Oxford, United Kingdom |
||||
|
|
||||
quote: Er, whoops. I didn't include it because I didn't think it was used by any of the classes - you should be able to safely remove reference it from the engine.h file. It comes into play in the networking system. I take the point about open-source software; in such a situation, the 'file generator program' idea is even more attractive because you can generate the buildstamp file before you release, and then remove any reference to it from the public project file. So, your users get a generated buildstamp file from your last build, but no generator program, so the stamp doesn't continue being updated. Richard "Superpig" Fine - saving pigs from untimely fates, and when he's not doing that, runs The Binary Refinery. Enginuity1 | Enginuity2 | Enginuity3 | Enginuity4 | Enginuity5 ry. .ibu cy. .y'ybu. .abu ry. dy. "sy. .ubu py. .ebu ry. py. .ibu gy." fy. .ibu ny. .ebu OpenGL is a language |
||||
|
||||
![]() ggs Member since: 1/2/2000 |
||||
|
|
||||
| Shouldnt: class ISerializer be: class ISerializer : public IMMObject ? [edited by - ggs on October 30, 2003 6:30:46 AM] |
||||
|
||||
![]() Doc Member since: 1/1/2001 From: Brisbane, Australia |
||||
|
|
||||
quote: I just thought of something: If you're using CVS then perhaps some CVS revision number, or something like that might suffice. Another option to think about... |
||||
|
||||
![]() haust Member since: 8/4/2000 From: Paris, France |
||||
|
|
||||
| great paper, as usual i have only one remark : i think that the interpolator updater should check the bFreeze member instead of leting each implementation doing the check itself. unless you think that an interpolator may reject the freeze request.... |
||||
|
||||
![]() Anonymous Poster |
||||
|
||||
| When I try to build it says CTextureManager and CSoundManager are not classes. Am I missing something? |
||||
|
||||
![]() superpig GDNet Technical Lead Member since: 5/26/2001 From: Oxford, United Kingdom |
||||
|
|
||||
quote: I'm certain I checked those... Delete the 'new CTextureManager()', 'CTextureManager::Destroy()' lines from videoupdate.cpp, and the similar lines in soundtask.cpp. They're for the texture and sound managers (like you probably guessed) which are in the build of the engine I'm working with but haven't yet been introduced through the articles. Doc: Actually, CVS revision number is quite popular, I think. I've certainly seen "$date-time-version$" type insertions in some open source software, I assumed that was a CVS thing. Richard "Superpig" Fine - saving pigs from untimely fates, and when he's not doing that, runs The Binary Refinery. Enginuity1 | Enginuity2 | Enginuity3 | Enginuity4 | Enginuity5 ry. .ibu cy. .y'ybu. .abu ry. dy. "sy. .ubu py. .ebu ry. py. .ibu gy." fy. .ibu ny. .ebu OpenGL is a language |
||||
|
||||
![]() Deeptrouble Member since: 3/16/2003 |
||||
|
|
||||
| What can I say but: "FINALLY!!!" (I can't wait to read it |
||||
|
||||
|
Page: 1 2 3 4 5 6 7 8 9 10 11 »» All times are ET (US) ![]() |
Last Thread Next Thread ![]() |
|