Welcome to Open Carnage

A resource for Halo 1 modding and tech, with unique means of rewarding individual content creation and support. Have a wander to see why we're worth the time! EST. 2012


  • Content count

  • Joined

  • Last visited

  • Raffle Tickets



About Zatarita

Recent Profile Visitors

2,754 profile views
  1. Edit: You know what. I think I misunderstood; I understand now. I thought invader just built maps, after glancing through the some of the source I still didn't understand. After looking at that link I understand now. Yes I'd love to talk on discord now that I understand. If that's the case we can close the thread, I don't want to step on any feet. And kavas been doing it longer, it'll likely be better suited
  2. Hello! I'd like to share some of the progress I have been making on one of my projects. Hopefully get some feed back to help make this be a useful tool for many. I'd like to introduce the Core SDK. What is the goal? The goal of creating this SDK is to allow people to easily access the data inside a halo cache file programmatically. Streamlining the creation of modding tools by taking care of the dirty work, and letting you get straight to writing the fun stuff. This will be a DLL for windows compiled with and without the .net framework (So even the novice writing with visual basic can still use the library), and for linux it will be a shared object. How does will it work? Simply link the library, create a HaloCache variable, Tell it to load from a file, and profit. All of the information available in sapien, and guerilla will be populated to the data in the HaloCache class. What are my dreams for the project? I hope to have an all in one solution, allowing access to all the data in a map, the ability to rebuild the map if necessary. I want to implement helper functions like model data to VBO for quick rendering in openGL, data to command buffer for vulkan, ect. Sanity checking to try and catch illegal parameters, and mitigate exception errors. What do I actually have done? Currently I have parsed scenario data, and I have defined a handful of tags. I have implemented debug functionality that you can hook into tags, that allow for sanity checking, and when an illegal parameter is caught, the ability to hook a function in to handle the error. Currently, I have not defined the sanity checking functions yet. I need to finish defining everything first, before I can verify its integrity. Steady progress has been made, and I wanted to share with the community in hopes to add things that might be desired before the code becomes too hard to change. Finally, an example on its current state of functionality: To start the process you will have to link the Core library, and include header. (This is just an example, so I'll leave this ambiguous until release) Let's take a look at an example main int main() { HaloCache Map; //Create the variable to hold the map data Map.Open(MapLocationHere); //However you wish to handle finding the file, just put the location here Map.PreLoad(false); //PreLoad only loads the header information incase you dont need everything if(!Map.Load()) { //Map loading failed. Maybe with a _Core hook we could see why. } Map.Close(); //Close the file(Can be done after load to free file, it's now loaded to memory) //Maybe we want to see where the 1st vehicle is in the map std::cout << Map.Scenario.Vehicles[0].Position.ToString(); / //Maybe we want to change the Not Placed flags on a vehicle. Map.Scenario.Vehicles[2].NotPlaced = NotPlaced::Automatically; //ect ... if(Map.IsDirty) { //We changed something that requires the map to be rebuilt. I haven't implimented this yet } //Map.SaveChanges(MapSaveLocationHere); This is half implimented but this is how it would close Return 0; } HaloCache is the main class that holds all the information. It also handles loading from the file to memory. The Open() function takes a location to the map file. Once the HaloCache has a file to load, we call the preload function. Load, and PreLoad are separated out because it may be beneficial to just load the header information, and not waste the processing power loading the entire map. The parameter passed (PreLoad(True/False)) Will determine if the preloader should head straight into loading once finished (true is the default parameter). I decided against it in the example to show the load function as well. Both the preload, and the load return a boolean value, so you can easy determine if they failed. If they did fail, information will be available on it. You just have to hook a debug to the variable (The next example). The debug can also be linked to a error handling function on a per tag, or per map basis. It could reopen the file dialog and ask to try again for example. I will fully map out the structure of the HaloCache class once it's complete. Variables will move around a bit as development goes on, but inside of there is the currently organized scenario data, with all of the offsets adjusted for map magic. Let's take a closer look at the _Core handler discussed earlier. void Log(Handle DebugInformation) { switch(DebugInformation.Code) { Case ErrorCode::Notification: std::cout << DebugInformation.Details; //This is debug information break; Case ErrorCode::Error: //This is Non-fatal error info std::cout << DebugInformation.Details; //Output the error DebugInformation.ErrorHandle = ooppss; //call the ooppss function to handle it break; Case ErrorCode::Fatal: //This is when you dun goofed. std::cout << DebugInformation.Details; //Output the error DebugInformation.ErrorHandle = nichtgut;//call the nichtgut function to try and handle it. break; } } int main() { HaloCache Map; Map._Core.DebugHook = Log; Map._Core.InheritHook = true; Map.Open(IncorrectMapLocation); Map.PreLoad(); ... //!!!ERROR we sent the wrong map location return 0; } In this example, we setup a _Core hook, and tried to load a map file. Sadly, we typed the name wrong, and Core couldn't find the map. This is how the situation is handled: Debug information is broken up into: Notification, Standard debug information. Error, Non-fatal error easily recoverable. Fatal, Difficult to recover from, but you can always try. The Handle class contains the severity of the message, Details of the message, and the reference to the error handler. (The hook can also be inherited by the tags children.) So what would the output look like for this? In this case it's a simple cout, so it would be printed to the terminal/cmd as a string: Attempting to find: IncorrectMapLoc Unable to find file specified. Now we know the load failed because we told it the wrong place. This is all I have implemented currently. Development has been steady; however, I'm about to drive/move across country so I'm going to have to take a week/two off here soon. If there are any other features you'd be interested in seeing implemented, please let me know!
  3. I have no objections c:
  4. Hello! Lately I've been studying the game engine to help with TiaraCE's development. I know this has been discussed a few times; however, I wanted to go a bit more indepth and technical c: I will not say I have a 100% understanding; however, This is my adventure in striving to understand the Blam! engine, and I'm dragging y'all along. Maybe get a nice "Halo engine collection" going. this is going to be broken up into a few parts, I'll share what I learn as I go. The desired order will be: Tags Raw Data(Model data, Recorded animations(Still studying this one so it may be a bit; making progress though), Scripts, etc.) External references(Bitmaps.map, Sounds.map, loc.map) External resources(Save data/ hdmu.map) I want to build on a Halo "SDK" if you will. This is another reason I wish to crowd source information, to get the most complete collection of information we can. Before I continue, I want to thank everyone who helped me acquire this knowledge. Moses of Egypt has been quite the gentleman, and I have been reviewing source codes for years (I posted a lot of the source codes back to modhalo.net when it was still around, but I can't find any of them anymore :/ I think hht, sparkedit, and one of the old CE - PC converters) A lot of this wasn't my trial and error, but this is just to compile everything from across the web into one place. I recommend reading this first, because this is where I started; however, I hope to expand upon this knowledge further. Waev, and grenadic both took time out of their lives to write these fantastic pieces: and without further adieu (Please note some of this information might be incorrect for maps that have been "protected") Map Header Tag Index Tag Prefixes Common data structures Scenario That's all I have in me today ;-; I promise I'll add the rest at a later date; however, I have spent ALLday typing this, and I'm scared a windows update might destroy my hopes and dreams. Likely Tomorrow/Sat
  5. Kru, that was a non-sequitur. I could understand something like this being useful if intellisense was implemented, some of the functions can get kinda monotonous to type out, being able to tab fill it is nice, and reference other scripts/functions and their inputs in one glance. Though, that would be significantly more complicated, and it would likely be easier to make a dedicated IDE. That's up to you if you decide the time is worth the pay off c: However, I also understand the flip side of the coin. Scripts aren't overly complicated, and adding something to it might fall under the category of "If something ain't broke, don't fix it." Though my thoughts on this is I'm ALL FOR different ways of representing data. Everybody is unique. For example, what if someone has high functioning autism? Being able to color code things might be fantastic for them. That actually might be the determining factor on if they decide to pursue their want to write scripts. Bridging a gap in the community and allowing for accessibility. This is very important for gaming in general IMO. While I might not personally use it, having it available is nice c: I think it's a nice start c: Don't get discouraged! If one person thought it might be useful, there is bound to be another.
  6. I would definitely be willing to give back to the community now that I'm older and have a more refined set of skills. I know c++
  7. I Can't Stand His Voice
  8. I believe it is determined by hormone levels during the development of their preference. There are many animals that have homosexual tendencies, so it's not just humans. Besides, I don't think it matters, if it is a decision, we have freedom to make that decision. If it isn't a decision, there is nothing we can do to change that (WIth today's technology), so the problem with homosexuality is how people handle it. Who cares which it is? If the population finds out it's a choice, they'll have more reason to hate on homosexuals, "They chose to like men, who would make that choice". All that will do is alienate them more. If it isn't a choice they'll treat them as a handicap. We should just treat them like humans, cause that's what they are. Honestly, with the amount of people in this world, I don't mind the fact that they cannot procreate, but, unless it has changed, there is a law in Florida that states homosexuals cannot adopt a child (Not sure if it's a state-wide law or federal law). The fact this was passed blows my mind. Completely destroys our constitutional rights. Some people need to be less closed minded. Just cause it's not how you would live your life, does not mean it is wrong. When it comes to preference there is no wrong answer. Homosexuality is a huge subject, I'm trying to stay on subject at hand, but I could type a whole book on my arguments. I'm for homosexuality; however, I am not part of their demographic. I would not say it is fair to make a conclusion based off of no data. So all of this is opinionated. On my ending note, I saw this on a youtube video and thought it was beautiful: narrator: "Is homosexuality a choice or is it genetics" When someone replied choice: Narrator: "Can you tell me when you chose to like women?" I like this, it's beautiful, if I can find the link I will share it with you all
  9. Speccy http://www.piriform.com/speccy Advanced System Information Tool - Freeware This will analyze your computers hardware and give you information about each peace (Include temperature) I know there is a lot of different software available for this; however, this is my new preference. Made by Piriform, the same people who make Ccleaner. Expand spoiler for image Fences Desktop Organizational Tool - 9.99 (used to be free, maybe an older version still is) http://www.stardock....roducts/fences/ Allows someone to create subdivisions on their desktop. These subdivisions can display the contents of a folder, or can hold shortcuts organized by type. Expand spoiler for image Rainmeter Desktop accessibility/organization - Freeware http://rainmeter.net/cms/ Very similar to windows sidebar, but a lot more cusomizable. has a lot of nifty features. (*note the above image also is also an example of rainmeter) Expand spoiler for image
  10. Give a drop-down box at the bottom of the page that would allow you to switch between skins. then the user could decide. The website is using PHP already, so that shouldn't be to hard, the only problem is you would have to store the data somewhere, if you have use a database you could always add a new string field for `Preferenced_Skin`, or link each skin to an int value to save some storage space. This way you could make many different skins without "Forcing" the update. I would have to say for people who are hard of seeing, might like a higher contrast of black on white, but grey gives it more of a subtle feel.
  11. I played Oni long enough ago to forget everything about it .-. I actually think I still have it collecting dust somewhere, I should play it again.
  12. Im sure the consumer version of a 3d printer would not utilize metal, but more of a plastic or foam. So the risk of some kid printing out a gun and using it, doesn't seam very likely, the gun would fall apart from the generated heat; however, military grade equipment could work if it utilizes metals. They'd have to be smart about it and make sure that all of the plans are not distributed across a network. Each general could be given a thumb drive containing each sheet encrypted with a 256 bit key. Honestly, I don't see 3d printing being an issue with guns, I don't think something of like that could take a pounding, but for stuff like prototypes and containers, I could understand this. What i think would be cool would be if they used a form of plastic, and applied some form of non-toxic finish over it, they could use the 3d printer to make stuff like plates and bowls, but if designed correctly, once the tools have been used, it will incinerate the plastic, convert it to a gas, then condense for reuse. Hell If we used normal plastic for this we could recycle any old plastic. This would reduce pollution, and still benefit the people. Then again though, I might be getting plastic all wrong.
  13. I don't think he's a pirate, how could he host and play online with an illegal copy? When I used my key twice it wouldn't let me connect anywhere. But that doesn't solve the problem, a couple things to check: >assuming your server is set up correctly. -Check window's logs for specific error details first, this will give us more information on where to look, possibly save ourselves some time with the other debugging steps below. (If your server is set up to have a log, that information is useful too) -You can determine if it is a DDOS by utilizing netstat or by monitoring your network traffic in task manager -Changing your server name does not change your IP Address, to assure all files are working correctly, manually update Halo ( http://www.bungie.ne...h/patch_109.exe ) -Run a virus scan -Update windows for security fixes -Try running a LAN game, If halo still crashes you'll know it's something internal, not a problem with data being sent out. -Try forwarding halo to a different port and reconfiguring your server information. -Try running your server from a different computer in your network.
  14. I don't think schools should be year round. I think school should be longer. When I first started highschool we had block scheduling, for those who don't know, that's 4 classes ~90 mins each, each semester was broken up into 4 quarters. This gave us time to learn our lessons, practice what we learned, and then have 30 mins left over to do our "Home work". My second year - senior year we were forced onto 7 classes a day. This was problematic, They had less than half the time they had before, to teach the same amount of information, on top of that we had 7 classes worth of homework. If you wanted to pass your classes you would have to go to school, learn the lesson, and then go home and do homework until you sleep, just to repeat again tomorrow. This is way too much pressure and most kids just say "Fuck it". I believe this is why so many kids had "A.D.D." They cant focus on just one thing, because if they do, they will fail school. You have to be able to go home do math, do reading, do English, do history, do economics, etc, they don't have time to stop and reflect on what they're learning, instead they develop a method of "I'll figure it out when I get to it" leading to memorization instead of understanding. I've had moments where I had questions, I had no idea how to do anything the teacher just taught, and I would have to ask a question. Since we were so short on time I would always get the "We have a lot to cover today, talk to me after class" responce. I was never able to speak with him/her after class because then I would be late to my next class, get a detention, and now have even less time to do all of the stuff I have to do. I would of done my homework in detention if the teachers didn't make you just sit there and stare at a wall. If you add 30 mins to each class, the teacher might then have time to be able to explain WHY. That is a major issue I have with schools >.> But that is a conversation for a different thread. Another big problem I have with schools are they keep dumbing everything down. "Oh, the kids arn't getting it, what should we do?" If the answer to that question is anything but "Explain it better" You're doing something wrong. I'm offended when I see people not even trying in school, get put in dropout prevention programs, and graduate with the same, if not better, diploma as I. It's insulting. I take classes like Trig, and Calc, Where this kid took algebra 4 years. We enable people to underachieve. Im sorry if this doesn't make much sense, I'm at a lack of appropriate wording right now, ironicly my brain isn't on 'Thoughtful, eloquent reply'. But I wanna break everything down to the root: I don't believe school is even the issue here. Even if school was all year around, we'd still have just as many kids dropping out, if not more. The problem is the mindset children have. I blame media for a lot of it. Everyone thinks "Oh, lil wayne dropped out, he has money and women." (Example not sure if that's true) Everyone drops their education to live the dream. They think the only way to excel outside of school is to listen to the people who actually did excel, in this example, lil wayne. All he talks about is having sex, making money, and doing drugs. So what do teenagers do? "Fuck school, I'll go get 10$ from my mom, buy some weed, high, and have sex with my neighbor." The people who want to be in school, are in school; however, the number of people who want to be in school are getting lesser and lesser because we're becoming more lazy as a society. We condone teenage pregnancy with TV shows like '16 and pregnant' and tell people that you need to conform to progress in life. I can rant about this for day, cause it really pisses me off. Man will cause the regression, and not notice the problem until no one remembers what physics is and why there is an english word for it. Deeeeep breaaath. I think they should require a highschool deploma to get into college. ANY college. We're getting too lenient, I see dropouts making 15$ an hour, while I'm stuck with 4 certifications, a highschool deploma, and a college education, sitting in my moms house on a laptop. You want people to go to school, make them feel special for doing so. The deploma used to be special. We just need to see a GED as unexceptable. And don't give me your "OH, I was a single mother, and my boyfriend smoked crack" story. Your choice to have sex, your choice to pick a crack head, your choice to stunt your education, but don't get pissed at me when you don't understand what I said. >.> Im going to click add reply now, before I just rant about nothing. Today's been a hard day >.> Need something to vent through... Goddamn crack babies... What happened to integrity? [sIDE NOTE FOR TUCKER] Your save feature seams to be a bit weird, It saves the HTML as is, So stuff like " > " get's save as the '&gt' code. .-. I'm not sure how you would fix that, or if this has been brought to your attention.
  15. This tutorial was written by me, just on modhalo. I like sharing my knowledge, so this might help some people here too. Side note, these images are old, and grammatically terrifying. Grammar nazi's be cautious. alright so destructible scenery might sound hard but its all about keeping everything organized. This tutorial assumes you have at least a minimal understanding of creating scenery things you'll need -jms exporter if you dont have it get it, its by the ghost. -hek(duh) -3ds max/gmax ok for this tutorial i used 3ds max, ill start off by creating a box. alright for this tutorial im just using a box but you can create the scenery how you wish, just keeping it simple, if you like import the cyborg model and resize accordingly next you want to texture it. also you want to select all the faces then click clear smoothing groups(bottom right in the above picture under the sets of numbers 1-30 sumthin) next create a sphere and name the sphere frame and attach it to the model as shown below THERE you created your complete model, you want to export that as a jms into your data folders in haloceroot\data\scenery\'your scenery name'\models(make sure there are no spaces where it says your scenery name thats the name for your scenery) now you want to repeat the above steps except make the same model look broken.-music as i get back to work- i simply just took out a chuck but this could be a lot more complicated for you, but for tut reasons its going to be simple. after that you want to export it again but instead of replacing name it ~destroyed. thats it your done with 3ds max now yay. ok so go to your root directory and go to your scenerys folder you should only have models, if you used custom bitmaps make a bitmap folder and drag them in there make sure there in .tif format. your going to right click models and copy them and then paste it right back into the folder, then rename the folder 'models - copy' to 'physics' -------------------------------------------------------------------------------------------------- now for tool -------------------------------------------------------------------------------------------------- your going to open cmd as an administrator and type tool model scenery\your scenery name then hit enter it should go through yada yada then you type tool collision-geometry scenery\your scenery name alot of errors effect me here but you learn to adjust for my example i used the name block so here 'tool model scenery\block Couldn't read map file './toolbeta.map' ### bock.jms ### ~destroyed.jms detail worst-case worst-case level vertices triangles --------- ---------- ---------- superlow 24 12 low 24 12 medium 24 12 high 24 12 superhigh 24 12 ### created model 'scenery\block\block', remember to set the lod cutoffs' which is a good outcome you might have degenerate triangles and other junk try to model clean guys organization is key for tool it hates stuff like that. alright i got an error with my model apparently i have open edges :/ tools stupid but i used toolio so im prolly not going to have a collision but i can still explain. there now you have your model and collision, you might have to fix the shaders but hey its done. note that tool compiled the two models into one. now open guerilla. go to file>open then find your model.collision geometry - COLLISION GEOMETRY!! inside that you have a huge list of stuff ill try to make this easy. at the top you have a thing that says 'indirect damage material' click the drop down box and select any available material. next scroll down till you find a section labeled 'MATERIALS'. the last text box is labeled body damage multiplyer, set that to '1' then scroll down to regions and you'll see a list of tick boxes you want to tick the one that says, dies when object dies. then finally you set how much damage you do till it dies, for scenery i feel that 50 is best but it depends on your taste. to set that scroll back up to the section 'BODY' and set the 'maximum body' vitality to what ever you like. after that place it into a map then compile and test it thats it, tell me if it helped, and tell me spots that i need to clear up.