Jump to content
The Dark Mod Forums

Namespace From Gtk Radiant


New Horizon

Recommended Posts

Just a post to let you (all) know that I am here :)

 

I guess its time for a litte introduction:

 

I'm namespace (surprise, surprise) and

the last active maintainer of GtkRadiant. I will leave the project

as soon as it hits the final 1.5 release and would like to join your

DarkRadiant Team.

 

Q/A-monologue:

 

"Why do I want to join DarkRadiant?"

For the same reasons I started with GtkRadiant development:

I need a editor for my own hobby project and Radiant is the best

(and only) opensource option.

GtkRadiant is dead,

its community is dead for years now and most of the

q3 and q2 modders which are still around don't care about GtkR 1.5,

they use 1.4 for some irrational zealotic reasons.

The Doom3 community... hm well, was there ever a Doom3 community?

Oh and the serveradministrator doesn't give a shit about the project anymore...

 

Anyway, DarkRadiant has a healthy community, a wiki that wasn't deleted because it

got spammed and a lot of good ideas. Since my project relies on GtkRs Doom3-support

we share alot of interests. There are a lot of things that would benefit both projects.

My brushexport-plugin for example, or a better renderer for Radiant etc.

If there are small things that are DarkMod specific and can be solved "en passant"

I'll do these too, but plz don't consider me to be a full DarkMod-developer.

 

"What are your skills?"

- 10+ years of C++ coding

- 5+ years of OpenGL coding

- basic python skills

 

If want to read about my previous and current projects visit my website CodeCreator.net

If you don't understand german you can still visit my site and watch the screenshots ;)

 

"Are you a thief fan?"

Yes, I am! I even infected one of my friends (STiFU) with the

thief virus and now he works with a small team on the fan campaign "the cabal".

I also like Star Craft and Dark Messiah very much ^_^

 

"How can I get in thouch with you?"

Mail: spam@codecreator.net <- its a real adress believe me

Skype: namespace

#qeradiant on irc.atomicgamer.com

ICQ on demand, I hate ICQ...

Link to comment
Share on other sites

Sounds like there's a lot of things we can help each other with, even if our interests aren't completely identical. :)

 

Yes, I am! I even infected one of my friends (STiFU) with the

thief virus and now he works with a small team on the fan campaign "the cabal".

Hey, I've seen STiFU around... I think he's even on these forums occasionally. I'm supposedly part of The Cabal but I mostly just lurk nowadays. The Dark Mod has stolen me. :ph34r:

 

Actually there's a bit of cross-pollination there - ascottk (who is currently our most prolific animator by far) made some AI models for The Cabal. We Thief fans are a tight-knit bunch. :)

 

Glad to have you around!

My games | Public Service Announcement: TDM is not set in the Thief universe. The city in which it takes place is not the City from Thief. The player character is not called Garrett. Any person who contradicts these facts will be subjected to disapproving stares.
Link to comment
Share on other sites

I'm namespace (surprise, surprise) and

the last active maintainer of GtkRadiant. I will leave the project as soon as it hits the final 1.5 release and would like to join your DarkRadiant Team.

Welcome to the Forums! I'm looking forward to hearing your visions about Radiant and your project.

 

GtkRadiant is dead, its community is dead for years now and most of the q3 and q2 modders which are still around don't care about GtkR 1.5, they use 1.4 for some irrational zealotic reasons.

Ah, that surprises me a bit, but then again, I haven't been observing the GtkRadiant community a lot. Weren't there two more developers working on GtkRadiant lately? What about Shaderman?

 

Oh and the serveradministrator doesn't give a shit about the project anymore...

Wow, that sucks. I'm surprised that GtkRadiant 1.5 was even released under the GPL when no one seems to really care about the project. Not that I'd object...

 

Anyway, DarkRadiant has a healthy community, a wiki that wasn't deleted because it got spammed and a lot of good ideas. Since my project relies on GtkRs Doom3-support we share alot of interests. There are a lot of things that would benefit both projects. My brushexport-plugin for example, or a better renderer for Radiant etc.

Sounds cool, I'm looking forward to hearing those.

 

10+ years of C++ coding, 5+ years of OpenGL coding

Well, that's nice! I actively started coding last September (after reading some tutorials), so there's a lot to learn for me, especially when it comes to OpenGL.

Link to comment
Share on other sites

Weren't there two more developers working on GtkRadiant lately? What about Shaderman?

Yep Shaderman is another developer. He made the enhanced texturebrowser and

a hole pile of smaller fixes and improvements for Rd.

We work very close together in the sense of helping each other.

He stated some time ago that he wants to take a break from coding after 1.5

is finished. In addition he considers him self a coding newbie (which he totaly isn't)

and doesn't want to do things without me at least looking over the patches.

His interests in Rd are very different too. He is Enemy Territory fan and therefore

needs good Q3-support which DarkRd has cut out as far as I know.

And there is the coming release of ET:Quake Wars on the horizon which would require

some big changes in Radiant if we want to support it.

 

The second contributor is Topsun. He made a ET specific plugin and 2 or 3 patches.

He he is more of "a mapper who does coding when necessary"

 

Well, that's nice! I actively started coding last September (after reading some tutorials), so there's a lot to learn for me, especially when it comes to OpenGL.

Nice, esp. 3D graphics are a very interesting and ever evolving field :)

Do yourself a favour and buy a good book about C++/OpenGL.

I tried to start learning OpenGL with tutorials at first, which was a nightmare.

There are alot of tutorials out there that are outdated or just plain wrong

(esp. when it comes to the underlying math).

Learning things the first time the wrong way can be very frustating and caused

alot of "WTF!" moments for me when coding...

Link to comment
Share on other sites

Any recommendations on good books on OpenGL? Doesn't matter if it's English or German.

The "red book" aka "OpenGL Programming Guide: The Official Guide to Learning OpenGL" is the best I know for OpenGL.

You can get an older version for free from opengl.org. This older version covers OpenGL 1.2 (current ist 2.1)

as far as I know, that should be enough for the basics.

The newest version covers advanced features like shaders, frame/vertexbufferobjects etc.

 

The red book is only about OpenGL, it won't cover how to load a model

or how to implement playermovement.

You may want to read a different book if you are interested in these areas.

I read "OpenGL GameProgramming" which is good, but not outstanding.

 

Last but not least:

"Mathematics for 3D Game Programming & Computer Graphics" is a wonderful book if you want to get a deep understanding of the math behind rendering and comp graphics.

Link to comment
Share on other sites

The "red book" aka "OpenGL Programming Guide: The Official Guide to Learning OpenGL" is the best I know for OpenGL.

That's definitely a good recommendation. Other from that, I found a site where there were a lot of OpenGL samples in complete seperate projects. The good thing is that it also contains exactly the same samples for D3D as well, so you can check the exact same code in both versions and see the differences.

 

I have to see if I can find that link again though, but you should find them with google searching for opengl tutorials.

Gerhard

Link to comment
Share on other sites

Other from that, I found a site where there were a lot of OpenGL samples in complete seperate projects. The good thing is that it also contains exactly the same samples for D3D as well, so you can check the exact same code in both versions and see the differences.

That might by CodeSampler, one of the better sample code / tutorial-sites

Link to comment
Share on other sites

Thanks for the recommendations, I think I might check out one of these some time.

 

So what's the procedure for getting namespace into the game? I guess he wouldn't have to prove is abilites on Radiant coding by delivering code examples, would he? ;)

 

What do the others say? Orbweaver? New Horizon?

 

Namespace, did you already check out the DarkRadiant codebase from the SVN repository?

Link to comment
Share on other sites

That might by CodeSampler, one of the better sample code / tutorial-sites

 

Either it was not this site, or they totally rvamped it. The site I found was looking like the average hacker or warez site. All in black and such. :) But it had really great tutorials and hands-on programms side by side which is what made it really helpfull.

Gerhard

Link to comment
Share on other sites

Seems I missremebered that thing about D3D or it was from yet another different site, because I definitely downloaded some of the examples. Anyway, here is the one site I really like http://nehe.gamedev.net/

 

The nice thing is that many examples are also ported to different oparting systems, which might be very helpfull to us.

Gerhard

Link to comment
Share on other sites

Namespace, did you already check out the DarkRadiant codebase from the SVN repository?

Yep, I like the changes that were made to the filetree, makes finding stuff alot easier.

Atm I'm not able to compile it on my Windows-Laptop, because I don't have mingw installed.

Is there a special reason why the scons files are so gcc specific? Scons usually finds the best compiler

by itself and works without problems. I would like to dodge yet another installed compiler on my system (already got 3 on it). :ph34r:

Setting special flags for gcc can be done with ease in scons without forcing everbody to use gcc.

 

I'll get namespace setup. Welcome to the fold.

Nice, thx ^_^

Link to comment
Share on other sites

Atm I'm not able to compile it on my Windows-Laptop, because I don't have mingw installed.Is there a special reason why the scons files are so gcc specific? Scons usually finds the best compiler by itself and works without problems.

 

MinGW is the only FOSS compiler I know for Windows, hence it is the only one supported thus far. I have no problem with other compilers being supported, as long as this can be done cleanly in the build scripts and does not require extensive code changes.

 

Note that there is some GCC-specific functionality used in code, such as <ext/hash_map>, which would need some kind of conditional compilation directive if you wanted to support this on other compilers.

Link to comment
Share on other sites

I have no problem with other compilers being supported, as long as this can be done cleanly in the build scripts and does not require extensive code changes.
I'll take a look at it this evening.

 

Note that there is some GCC-specific functionality used in code, such as <ext/hash_map>, which would need some kind of conditional compilation directive if you wanted to support this on other compilers.
Agh, thats nasty, if you want a good hashmap use boost::multi_index_container.

Custom STL extensions can be a nightmare, there is no guarantee that they stay the same across

different compiler-versions.

Link to comment
Share on other sites

Agh, thats nasty, if you want a good hashmap use boost::multi_index_container.

 

I'll check that out -- I did search for a Boost hashmap implementation but could not find one.

 

Custom STL extensions can be a nightmare, there is no guarantee that they stay the same across

different compiler-versions.

 

I agree, using any class that starts with __gnu_cxx:: makes me slightly uneasy.

Link to comment
Share on other sites

I'll check that out -- I did search for a Boost hashmap implementation but could not find one.

I agree, using any class that starts with __gnu_cxx:: makes me slightly uneasy.

The multi_index_container is a very cool thing. Its a template for a container that

supports multiple ways of indexing the same data, with hashing beeing one of the

indexing methods.

 

typedef multi_index_container<pnc::entity_i*,
indexed_by<
	hashed_unique<
		const_mem_fun<pnc::entity_i, cstring&, &pnc::entity_i::GetHashName>
		>,
	sequenced<>
	>
> entitycontainer_t;

 

Thats a copy & paste from my engine showing a multi_index_container allowing

access to entities which can be indexed by hash or as a sequence (i.e. list).

The Hashvalue is generated from a std::string which is returned from the entity_i::GetHashName() (which is the entityname).

(Thats a lot of functionality in just 8 lines of code ;) )

 

I totally agree that this code looks very complicated at first, but as soon as you get

a little understanding about the multi_index-stuff its very easy to manage and extremly

extendable.

Link to comment
Share on other sites

It might be overkill for a simple associative container though. In fact the only reason I used GNU hash_map rather than std::map was because I thought it would be faster, but no profiling was done and it may be better just to use std::map in this instance.

Link to comment
Share on other sites

It might be overkill for a simple associative container though. In fact the only reason I used GNU hash_map rather than std::map was because I thought it would be faster, but no profiling was done and it may be better just to use std::map in this instance.

As far as I know std::map uses red-black trees, which have a O(log2n) performance for

search, insert and delete. Good hashing should be O(1). I doubt that we will deal with

data that is big enough to create a feelable difference between the two (maybe when

you want to precache all paths in the vfs etc).

Hashing does require more memory so I wouldn't recommend it for containers

which will only store a few elements.

Link to comment
Share on other sites

As far as I know std::map uses red-black trees, which have a O(log2n) performance for

search, insert and delete. Good hashing should be O(1). I doubt that we will deal with

data that is big enough to create a feelable difference between the two (maybe when

you want to precache all paths in the vfs etc).

 

That's exactly what it's used for -- storing a map of VFS paths to GtkTreeIter structures while populating the tree. It is, however, only temporary and only used once per session, which may have an impact. I guess the thing to do would be to switch to std::map and see if there is a noticeable performance drop.

Link to comment
Share on other sites

Well, I just gave it a try for the new MRU class I'm currently writing. I need it to maintain a list of structs named MRUItem.

 

There is even an example at boost.org for such an MRU list, but it is using std::strings as keys only, so I tried to change it to use structs instead of std::string. The hashing of these structs is obviously different to those of std::string and after several compiler errors I finally managed to get this:

error: 'class boost::multi_index::multi_index_container<ui::MRUItem, 
boost::multi_index::indexed_by<boost::multi_index::
ordered_unique<boost::multi_index::tag<ui::MRUList::fileName, mpl_::
na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::
na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::
na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::
member<ui::MRUItem, std::string, &ui::MRUItem::fileName>, mpl_::
na>, boost::multi_index::hashed_unique<boost::multi_index::
identity<ui::MRUItem>, mpl_::na, mpl_::na, mpl_::na>, mpl_::na, 
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, 
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, 
mpl_::na, mpl_::na, mpl_::na>, std::allocator<ui::MRUItem> >' has no 
member named 'push_front'

Seriously, WTF? Okay, after this message I know that the multi_container seems to morph somehow and its methods change with the way you declare it.

 

As elegant as it could be - I refuse to fool around with such error messages and rather type in some more lines of code that do the same thing.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent Status Updates

    • OrbWeaver

      Does anyone actually use the Normalise button in the Surface inspector? Even after looking at the code I'm not quite sure what it's for.
      · 7 replies
    • Ansome

      Turns out my 15th anniversary mission idea has already been done once or twice before! I've been beaten to the punch once again, but I suppose that's to be expected when there's over 170 FMs out there, eh? I'm not complaining though, I love learning new tricks and taking inspiration from past FMs. Best of luck on your own fan missions!
      · 4 replies
    • The Black Arrow

      I wanna play Doom 3, but fhDoom has much better features than dhewm3, yet fhDoom is old, outdated and probably not supported. Damn!
      Makes me think that TDM engine for Doom 3 itself would actually be perfect.
      · 6 replies
    • Petike the Taffer

      Maybe a bit of advice ? In the FM series I'm preparing, the two main characters have the given names Toby and Agnes (it's the protagonist and deuteragonist, respectively), I've been toying with the idea of giving them family names as well, since many of the FM series have named protagonists who have surnames. Toby's from a family who were usually farriers, though he eventually wound up working as a cobbler (this serves as a daylight "front" for his night time thieving). Would it make sense if the man's popularly accepted family name was Farrier ? It's an existing, though less common English surname, and it directly refers to the profession practiced by his relatives. Your suggestions ?
      · 9 replies
    • nbohr1more

      Looks like the "Reverse April Fools" releases were too well hidden. Darkfate still hasn't acknowledge all the new releases. Did you play any of the new April Fools missions?
      · 5 replies
×
×
  • Create New...