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

Zatarita

Member
  • Content count

    89
  • Joined

  • Last visited

  • Raffle Tickets

    0

Everything posted by Zatarita

  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.
  16. I tried googling around for this answer, but I don't believe i understand the proper terminology, or exactly how to phrase it. Say for example I have this snippet of code string1 db 128 dup('?') ;Trying to define a string consisting of 128 ?'s character1 db 64 dup('?') ;define a character mov ax, 2000h ;set all the segment registers to 2000 mov ds, ax mov es, ax mov fs, ax mov gs, ax Keyboard_Read_Keys: ;Wait for input from the keyboard, return key pressed pusha .Wait_Key: ;Loop, waits for key press mov ah, 01h ;when ah = 1 int 16h checks keyboard buffer int 16h ;returns nz if a key is ready jnz .Key_Ready ;If a key is ready jump to reading the key. jmp .Wait_Key ;If not, loop till a key is pressed .Key_Ready: ;Function to load the key into a variable mov ax, 00h ;when ax = 00. Int 16h returns a key from the buffer int 16h ;Returns ascii scancode to al mov BYTE[character1], al ;mov al into our variable popa ;Bring back our values ret ;return the code do_something_with_the_char: pusha mov al,character1 mov BYTE[string1], al ;-----------------------this is where i need the help ... ... ... ;-----------------------print the char, and end input This code is kinda choppy cause a lot of these functions are defined in includes, so i tried to chop them together. Basically in that part where i said i need help, i want to write the character to the address of string1. After that, next time i get a character i want to append it to the address of string1 without over writing the original character. I believe to do this i need to increment the segment register? Im not sure, i tried googling append chars to make a string in asm. Got a lot of int 21h, I can't use int 21h for this, I need to do it manually :/ Any help would be greatly appreciated, I don't understand much about how the segment registers work, i just know it's their job to keep track of where stuff is located.
  17. Hey guys, I had a really bad day today :c. I feel we should all sit down, and just talk bout stuff n stuff. So what did you guys learn today that was somewhat interesting? I learned how to better understand the way ASM indexes RAM. Not that fun for a lot of people; though, I enjoyed it. .-. plz show love I don't wanna be that guy on the forum. y'know....that guy >.> that one that always kills the threads. Only the pro's can kill a thread before it was started ;-;
  18. Holy crap .-. I can't keep up. Too many people making friends I learned something else new: 15 year olds should not have tumblr's 15 year olds need to remember how clothes work. Edit: and i got INTP Introvert(56%) Intuitive(12%), thinking(12%), perceiving(17%) What i don't understand is how that totals 97% Edit 2: Nvm i think i understand the percents, it's 100% per section, not 100% total.
  19. sorry, right after i made this thread, my computer crashed. So I'm back >.> That's a start .-. What type of car? I've always wanted a '67 mustang fastback candy apple red with a white pin stripe :c The stripe is similar i guess >.< I do not understand... Did i miss something?
  20. You sir, are a gentleman, and a scholar. Thank you for your help, answered a lot of questions I had about how ASM allocated memory.
  21. Just to make sure I fully understand: If i Increment ecx, in this example, past 127 (-1 for the terminator) would that start to index whatever is located after string1 in memory? Also yea :/ I'm working in 16 bit mode, And this is part of a kernel, so i set all the segment registers to the location of the kernel loaded into ram, in this case (and i believe most other cases) 2000:____. didn't think i'd run into an issue like this, I usually learn by forcing myself to learn. Just do it, until you have a question. Bad way to learn IMO >.> then you don't know what you don't know. I have not dabbled much into 32, and 64 bit modes yet, I'm still learning and working from the ground up. For the most part ASM is pretty simple, just not very easy to organize and keep organized. Thank you for the flat memory info, when i get my 64 bit computer running, that might be helpful.
  22. using c++ it would be easy to code a form of 'scripting'. Using cases you could easily pull that off. As far as syntax and auto-complete, that shouldn't be too hard either, depending on if you supply the program with the appropriate information. Using any programming language i couldn't see this being too difficult, just time consuming and tedious. I think the hardest part would be implementing the graphical input its self. Maybe i'm not fully understanding what you're trying to say >.<
  23. my solution: Build everything into the ground, move all of your belongings into your new underground home, burn down your old house. We allow the trees and plants to grow on the top, while we live under the trees and resources we need. We go above ground for transportation, communications, and some of that good old sunlight. Just imagine everywhere you walk is a park though. Minimal roads, just for you to get from point a to point b. From there we dig channels to the sea regulated by valves, since we're below sea level now, water will flow to us. each water channel goes through a turbine to be converted to electricity. I donno though, I might of just been playing too much minecraft lately.
  24. Im having a few memory leak problems with my program. I cant tell if it's: A) Not clearing the buffer and appending new frames ontop of old frames. B) Loading everything constantly. C) neither of those two. I've been trying to fix it for a while now to no avail. Im going to try and post the code here subdivided into the different headers and cpp files. (note for some reason it wont copy any header surrounded by "<>" like <IOstream> so the blank ones are them) >.> im going on a whim here...i know alot of people will just say tl;dr. but i really needs help, this sorta stopped the whole project. it's been like 3 weeks and i have no clue
  25. "Your "player_controle" function (why is it misspelled, why is the capitalization different from your other function names, and why are the functions in a header file?!) calls your loadTexture function all the time - an expensive operation, likely freezing your computer and leaking memory (although mine is fast enough to process it)." This. most anything dealing with the character, was poorly thrown together. as to why it's misspelled. I prolly misspelled it initially, and then just got too lazy to change it, ended up coding with the typo, and when i do that, i always end up fucking myself over, cause i cant fix that one dumb thing without changing 40 references to it. "^ Don't do this; don't rely on variable-length arrays on the stack, especially when the length is file input. clang++ won't compile this in particular, and it's not good to use (and easy to blow up the stack) anyway. Allocate it on the heap using new." makes sense. "Don't use windows file paths in your text files (images/Texture_list.txt and images/Global.txt), or in your code (search for \\'s). Especially if you want it cross-platform." this one...i don't understand. How do i reference files, without giving the computer the information on where to find what i want? "Oh yeah, #undef'ing main is definitely the wrong thing to do - I know you did it to get the program to compile or whatever as a hack. With SDL, Windows and OS X at least need some initial setup to get a SDL game running. On OS X, there is a SDLMain.m file, on Windows I'm pretty sure you are suppose to link to SDLmain or something." :c i never knew that was wrong. That's how I was taught. I'll have to look into it. But thank you so much, i do think the fact player_controle was constantly loading files had something to do with the fact it was eating my ram >.>(also explains a couple of other bugs i have with the character its self)