Home » Community » Forums » » Enginuity, Part V
  Intel sponsors gamedev.net search:   
[Control Panel] [Register] [Bookmarks] [Who's Online] [Active Topics] [Stats] [FAQ] [Search]

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
Post Reply 
Rock to da beat!!
I have been waiting this momment for long

 User Rating: 1015   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

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.

 User Rating: 2118   |  Rate This User  Send Private MessageView ProfileView JournalView GD Showcase Entries Report this Post to a Moderator | Link

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!"

 User Rating: 1183   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

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]

 User Rating: 1027   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

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]

 User Rating: 1015   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

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]

 User Rating: 1024   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

quote:
Original post by gsealy
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.


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


 User Rating: 2118   |  Rate This User  Send Private MessageView ProfileView JournalView GD Showcase Entries Report this Post to a Moderator | Link

quote:
Original post by voodoo_john
Thanks for the mention


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:

Subtitle: Dirty Harry's Guide To Serializing Your Triggers


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


 User Rating: 2118   |  Rate This User  Send Private MessageView ProfileView JournalView GD Showcase Entries Report this Post to a Moderator | Link

Excellent series so far. Very solid foundation for a kick ass engine.

One problemo, source code link doesn't work

Keep it up.

 User Rating: 1066   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

quote:
Original post by Joviex
One problemo, source code link doesn't work


Uh oh. *prods Dave*

 User Rating: 2118   |  Rate This User  Send Private MessageView ProfileView JournalView GD Showcase Entries Report this Post to a Moderator | Link

Oh, right. The link in the printable version works. Forgot to update the featured article template to account for the new download location.

 User Rating: 2088   |  Rate This User  Send Private MessageView ProfileView Journal Report this Post to a Moderator | Link

Fixed now.

 User Rating: 2088   |  Rate This User  Send Private MessageView ProfileView Journal Report this Post to a Moderator | Link

*eyes his prodding finger with awe*

 User Rating: 2118   |  Rate This User  Send Private MessageView ProfileView JournalView GD Showcase Entries Report this Post to a Moderator | Link

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.


Image loads when I'm online!The following statement is true. The previous statement is false.
Shameless promotion:
FreePop: The GPL Populous II clone.

 User Rating: 1324   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Keep it up Dave. Very nice series.

 User Rating: 1015   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

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

 User Rating: 1053   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

This probably sounds dumb, but where can I find thread.cpp/h. I googled for it and I only found documentation on it.

 User Rating: 1015    Report this Post to a Moderator | Link

quote:
Original post by 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.


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


 User Rating: 2118   |  Rate This User  Send Private MessageView ProfileView JournalView GD Showcase Entries Report this Post to a Moderator | Link

Shouldnt:

class ISerializer

be:

 

class ISerializer : public IMMObject
   

?   


[edited by - ggs on October 30, 2003 6:30:46 AM]

 User Rating: 1044   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

quote:
Original post by superpig
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.



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...

 User Rating: 1324   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

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....

 User Rating: 1015   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

When I try to build it says CTextureManager and CSoundManager are not classes. Am I missing something?

 User Rating: 1015    Report this Post to a Moderator | Link

quote:
Original post by Anonymous Poster
When I try to build it says CTextureManager and CSoundManager are not classes. Am I missing something?


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


 User Rating: 2118   |  Rate This User  Send Private MessageView ProfileView JournalView GD Showcase Entries Report this Post to a Moderator | Link

What can I say but: "FINALLY!!!" (I can't wait to read it )

 User Rating: 1015   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link
Page:   1 2 3 4 5 6 7 8 9 10 11 »»
All times are ET (US)

Post Reply
 Last Thread Next Thread 
Forum Rules:
You may not post new threads
You may post replies
You may not edit your posts
You may not use HTML in your posts
Jump To:
Administrative Options: