|
Post by Paril on May 8, 2011 11:08:32 GMT -5
Strange, all of the qbsp programs work fine in my W7 x64.
-P
|
|
|
Post by Paril on May 8, 2011 5:45:57 GMT -5
I didn't even pull out all the stops, maric, I wanted to make sure anyone reading it at least knew what I was talking about Also, these days, programming is like, half GUI. Visual Studiooooooooooooo -P
|
|
|
Post by Paril on May 7, 2011 4:07:54 GMT -5
As a pretty much one-man project, and my own introduction to C++, I can understand a lot of these issues that you brought up.
The complexity of the code really depends on the pair of eyes that are looking at it. I could navigate through CleanCode just as easily as the 3.21 source, but that's just because I've spent several years on both of them together - not to mention I wrote the former. A couple programmers who worked on CleanCode briefly were from an OOP background and found CleanCode much easier to wade through than 3.21, and they helped with figuring out where things should be sorted into.
Now, the second issue is the whole inheritance thing. Sadly, it is very complicated and a lot more overcomplicated than I wanted it to be, but honestly this wasn't an issue with my implementation but rather than issue with C++ itself. Features like automatically inheriting constructors and interfaces would of made the code a billion times easier, but sadly we didn't have these at the time (and still don't), so we had to create workarounds.
The naming of structures and classes were carefully picked to both mirror the original Quake source and to be understandable whilst not colliding with any other names. We chose the CamelCase convention, as that is what most C++ programmers are familiar with, and did not go with underscores for elegance reasons.
The C++ wrapper code to the C functions is quite overcomplicated and somewhat mixed into regular code, something that never intended to happen but was mostly because when I started this project I had no idea how to work with C++ - I learned quite a bit throughout commits, but a lot of things remained the way they were. The frontend code was never really finished, sadly, but the idea was there.
The dependence is another sad outcome of a project that continued to be worked on for many years by nearly one single programmer and several programmers over small periods of time. However, as you can see, there was work near the end to cut dependence out of the question - Items, weapons, and entities can be created in their own source files without requiring modifications to other files (unlike the original C counterpart, which required g_spawn or g_items changes), so your claim is not entirely based on fact. Monsters, however, are indeed part of the entire source due to the player-monster interaction that occurs. Attempting to segregate them would of been quite a task.
Zlib was never intended to be removed, quite honestly; it was a useful feature to compress save files. SIRCL was a rather new feature, so I didn't yet get time to work on the removal for it yet.
The code was probably the least amount of OOP I could put into this project, maintaining both actual OOP and the structure and layout of the original C code. I don't know exactly which classes/structures you're saying don't need to be there, so I can't really disseminate that.
Entities probably took the most time out of any of the game due to the wrap to the old structure-based system and its contiguous memory storage. Several of the features, however, turned out to be way more complex than I wished they needed to be (saving/loading), however, you'll be surprised to know that a lot of these features were referenced from Half Life/Half Life 2's game source, which gave a lot of ideas to how new games actually do these things.
I do agree that the original C code is easy to understand, however newer games today tend to use C++, and this was my first step into figuring out how a game would be laid out in C++. HL/HL2 helped quite a bit, however, I do wish that C was still used in game development (HL2's game source takes like half an hour to compile on my 6-core processor).
Perhaps we can collaborate on a complete re-write of CleanCode or something someday. Like I said, email or MSN me, we can talk about this a bit more (paril at alteredsoftworks dot com).
-P
|
|
|
Post by Paril on Apr 19, 2011 12:44:36 GMT -5
Thanks for the reply! I am using the unified ZIP. I'll try the SVN trunk. It didn't occur to me that the problem might be in the code, and not from my newbishness. I'll post next week with my results. -Again, Thanks. P.S. (I forgot to point out that I hate newbies who try something for 5 minutes then post on a forum expecting others to do like 20 hours of work for them. I'm not that guy! I really tried a lot of things before posting here. I don't mind wasting computer time because my TV is next to my computer, so I'll do about 10 - 15 Simpsons episodes of effort before I post again.) With CleanCode you never know. Anyway, like I said, add me on MSN or something so we can more easily discuss this and not flood the forums with fixing bugs -P
|
|
|
Post by Paril on Apr 14, 2011 17:51:34 GMT -5
Actually thank Skeletor, he's the one who notified me of this If I don't catch on to a post Wixxy and you or someone here needs me, just pass me an email at my MSN address above and I'll be here in a jiffy. Or tell them to email me, whichever's quicker -P
|
|
|
Post by Paril on Apr 14, 2011 10:50:22 GMT -5
Hi there Bongo.
First off, are you using the SVN or the zipped code? The SVN code is like 99.99999% more stable, I would recommend it over the pre-release version.
Add me to MSN (paril at alteredsoftworks.com) or Skype (paril101) and we'll fix it up for you.
A lot of the paths were made absolute just for convenience on my end. We did have CMake at one point but it's sort of gone out of sync with the regular project right now.
-P
|
|
|
Post by Paril on Apr 1, 2011 2:26:29 GMT -5
|
|
|
Post by Paril on Mar 30, 2011 10:13:55 GMT -5
|
|
|
Post by Paril on Jan 25, 2011 9:40:20 GMT -5
This was my mod that I made a long time ago. It isn't original Quake 2.
-P
|
|
|
Post by Paril on Dec 17, 2010 1:04:14 GMT -5
I'm not really looking to do any StroggDM-related mods or anything. Nothing big anyways. Monsters are a pain.
-P
|
|
|
Post by Paril on Dec 13, 2010 18:04:28 GMT -5
I'm right here guys.
Yes, StroggDM is indeed dead. I stopped working on it at about the same time I started honing my programming skills - when I wanted to return to it, I realized what an idiot I was and just didn't feel like recoding 100% of it.
The blue glow is not quad damage, it was to separate players from monsters. Yes, they are strong, and yes they do run fast; the speed was so spawned monsters could keep up with the owners. Basically, the cooperative mode is just spawned monsters without an owner, so they had the power and attacks of spawned monsters.
If you have any other ideas for mods, don't be afraid to pitch them to me. I'm always looking for fun stuff to do.
-P
|
|
|
Post by Paril on Dec 13, 2010 18:02:54 GMT -5
Just so you guys don't get the wrong idea on the whole usage thing, these are called escape sequences, and the \n one is called newline.
-P
|
|
|
Post by Paril on Nov 14, 2010 10:08:15 GMT -5
Ahh, well I meant you guys being "under" Altered Softworks; you don't exactly have to be part of it, nor use our name in any way. I suppose kind of like how PlanetQuake offered hosted sites.
If you guys already have the hosting part figured out then it's kind of pointless, since that's really what I was talking about. As for 'contracting', if you guys need any software done let me know.
-P
|
|
|
Post by Paril on Nov 13, 2010 11:30:37 GMT -5
If you guys want Skelly, you can become a subsidiary of Altered Softworks and take advantage of free web hosting under Altered Softworks (lolmycompany.alteredsoftworks.com), and if you guys buy a domain off GoDaddy or whatever for like 2 bucks we can easily just pop it into the system and have you running off that domain without even needing to move any files around.
Think about it, let me know. I know our site and us as a team aren't very active (on the site anyways) but that doesn't mean I don't have resources available to guys like yourself!
-P
|
|
|
Post by Paril on Oct 24, 2010 13:04:53 GMT -5
All items are dropped to the floor a frame or two after loading; you'd need to place a solid brush underneath the item. Solid entities won't work because any solid entity is either dropped to floor or moved before spawning (or creates something unwanted, or possibly is an entity that is not used in deathmatch, etc). The only known way I believe is to use a solid brush, which can only be done by modifying the BSP data (decompiling the bsp, in your case, and recompiling it).
No entity will work, because the drop to floor trace only traces for SOLID and WINDOW objects (path_corner is a trigger, which wouldn't be caught by the trace).
-P
|
|