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

Kavawuvi

Administrator
  • Content count

    4,160
  • Joined

  • Last visited

About Kavawuvi

  • Birthday April 10

Extra Information

  • Gender
    Male
  • Contributed
    $100 (US) to Open Carnage
  • Raffle Victor
    One-time

Computer Details

  • Name
    Dark Citadel
  • Central Processor
    AMD Ryzen 5 2600
  • Motherboard
    MSI B450M MORTAR
  • Graphics
    MSI GeForce GTX 1070 Gaming 8G
  • Memory
    32 GB [2x 16 GB] G.Skill Ripjaws V Series
  • Storage
    500 GB Samsung 970 EVO
  • Power Supply
    EVGA SuperNOVA 650 G3
  • Case
    Fractal Design Node 804
  • Display
    Acer G257HU smidpx 25" 2560x1440 60 Hz
  • Keyboard
    MAX Keyboard Nighthawk X9
  • Mouse
    Logitech M510 Wireless Mouse
  • Operating System
    Arch Linux

Recent Profile Visitors

76,366 profile views
  1. The OP only applies to build 49 of Chimera. Technically this is not the latest version, and the version on GitHub is actually almost completely rewritten. I originally kept build 49 here as a sort of "stable" release, and all builds after that were newer versions but were less tested. When I start posting a public alpha of 1.0, I'll update the OP. 0-1. I suppose I could put that in the description. 0-1, where 1 = stick is all the way out and 0 = stick is in the center. I suppose I could put that in the description. It doesn't take any arguments. It simply turns on a bunch of features at once. 50 = 50 degrees horizontal - Use this if you don't plan on changing aspect ratios. 50v = 50 degrees vertical - Basically, it automatically adjusts horizontal FOV so the vertical FOV calculates to 50 degrees. Use this if you switch between aspect ratios (e.g. 16:9 fullscreen and 32:9 splitscreen). auto = Use this if you want your game to look like the Xbox version's FOV. It's basically just a scale, where 1 = 1x, 2 = 2x, etc. 1 = LODs appear as designed in the map 2 = Higher quality LODs will start to appear at half their pixel threshold 4 = Higher quality LODs will start to appear at a quarter of their pixel threshold There isn't any ideal value for this, though. The problem is that if you set this to anything higher than 1, then glitches like the headless chief glitch can appear when you play The Pillar of Autumn. Therefore, it's probably better to not touch this unless you just play multiplayer and you find LOD pop-in to be annoying, or you don't care about the headless chief glitch. So, I suppose if you just play multiplayer, you could set it to 10 and you'll always see the highest LODs of objects with no pop-in. I'm still not quite sure how I plan on taking <player> as an argument. Anyway, thanks, I'll look into updating the readme.
  2. I've fixed a few interpolation problems, and I've reimplemented maps in RAM and map compression using Invader's map compression for this. Map downloading is coming soon, too, but I need msalerno1965 to set some things up, first. If anyone wasn't aware, the password to the last build was cookies. I've decided to make this next one's problem simple: an arithmetic problem. I'll also include a PASSWORD.txt which will have hints to the password. If you want the files, you will have to either: a) Compile Chimera from source (https://github.com/Kavawuvi/chimera) b) Solve the below question (NOTE: the question may change; answers will be posted on Open Carnage eventually) c) Get Chimera from somewhere else Here's the question! What is 20 - 12 / 4(4 - 2) x 2 Note: x is multiplication and / is division. Order of operations matters. Note: All answers only contain lowercase letters and numbers. Also, when Chimera goes into open alpha, I'll stop requiring a password. Until then, good luck. chimera-20191113T185645Z.7z UPDATE: I fixed a bug where servers weren't joinable if you had maps in RAM enabled.
  3. You can't detect if someone is pressing specific keys in a SAPP server, nor would you want to.
  4. I'd totally give you tickets if I was allowed to. That's really cool!
  5. Here's a monthly update for the progress made in October. I hope everyone had a good Halloween last night. Invader is now 0.15.2, and there have been a number of changes, including the new invader-compress program. View this topic for more information. Added invader-archive: Now accepts filesystem paths for the tag if -P is passed invader-bitmap: Now accepts filesystem paths for the image input if -P is passed invader-build: Now accepts filesystem paths for the scenario tag if -P is passed invader-dependency: Now accepts filesystem paths for the tag if -P is passed invader-font: Now accepts filesystem paths for the the TTF file if -P is passed invader-string: Now accepts filesystem paths for the text file if -P is passed invader-crc: Now prints a warning to stderr if the CRC32 in the cache file header is wrong invader-crc: Now errors with a useful error message if a resource map is loaded with it invader-build: Halo Demo / Trial maps can now be built (-g demo) invader-crc: Halo Demo / Trial maps can now be used invader-build: --no-indexed-tags was renamed to --no-external-tags invader-build: Building retail and demo maps now uses the resource maps invader-build: The gain modifier for sound\sfx\impulse\ting\ting.sound is now changed to 0.2 if building for retail or demo and 1.0 otherwise invader-build: Now shows the target engine of the map invader-compress - Compresses cache files using the Zstandard algorithm invader-resource: Added --retail / -R which will allow you to build retail maps invader-build: Copying TagString data now checks for string overflow invader-crc: Works with maps compressed with invader-compress invader-indexer: Works with maps compressed with invader-compress Changed invader-build: The diagnostic messages now show tags using external raw data when building a retail or demo map invader-dependency: Now uses -R instead of -r for reverse dependencies invader-dependency: Now uses -r instead of -R for recursive dependencies invader-build: Bitmaps and sound data are now shown separately next to their combined total in the diagnostic output invader-build: The number of tags that could be cached/indexed is now shown invader-archive: Now handles exceptions instead of calling abort() while either compiling or parsing cache files invader-build: No longer errors when orphaned model nodes exist invader-bitmap: Made detail fade factor closer to tool.exe's output - still needs more work but it's remarkably close Fixed invader-build: Fixed decals with null references crashing the game invader-bitmap: Fully implemented and fixed 3D textures invader-dependency: Fixed an issue where it didn't include a null terminator, causing some tags to fail to open invader-archive: Fixed an issue where some stock HEK .gbxmodel tags tried (and failed) to be archived as .model tags invader-bitmap: Fixed an issue where sprites spanning the entire width wouldn't be detected invader-archive: Fixed an issue where the root tag would have its full system path included when using -s As always, you can get the latest build at https://invader.opencarnage.net/builds/nightly/download-latest.html or view the changelog at https://github.com/Kavawuvi/invader/blob/master/CHANGELOG.md. If anyone has any comments, suggestions, or bug reports, feel free to reply here. Otherwise, see you next month! Stay warm.
  6. I sort of agree. Being able to turn off or at least tone down the depth of field would be really nice. It doesn't ruin the experience for me, but it is a little excessive in my opinion. Also, again, analog sticks are being made to do what the directional pad does 100x better. This is a great game, but I think they should address these things in a patch. Every other problem I have with the game that I can think of, besides the frame rate issues, isn't necessarily the remake's fault. No problem. You might be able to pick up a used copy in a few years from now for a good price. I get plenty of cheap stuff off of eBay and Amazon this way.
  7. You can only bind two items, but you always have access to pegasus boots, shield, and sword. Most rooms use a fixed camera just like before. It's only the overworld and a few larger rooms which use the bounding box camera, instead. Yes. The layout of everything is mostly the same as the original game. I don't know if I'd buy a Switch just for it, but it is a really good game. Maybe check out Digital Foundry's review as they do a good overview of the technical aspects, if you're interested.
  8. Before you read, note that I did play a little bit of the GBC version of the game, but only up until the first dungeon. All of my other knowledge of the GB/GBC version game comes from watching gameplay. However, I did beat the Nintendo Switch version. Also, this review contains no spoilers. The Legend of Zelda: Link's Awakening is a remake of a game of the same name from the Game Boy and Game Boy Color era, featuring the traditional top-down perspective from classic 2D games like it. The main difference is that everything is presented in 3D, kind of like The Legend of Zelda: A Link Between Worlds on the Nintendo 3DS except with a toy-like art style. The original game is, indeed, a classic, with the cruft of classic games that go along with it, and this remake is no different. Premise Link wakes up on an island. To leave the island, he must wake up the Wind Fish. To do this, he has to defeat all of the Nightmares and obtain all of the Instruments of the Sirens. To do this, he has to beat all of the dungeons, similar to most other Legend of Zelda games. Unlike most other Legend of Zelda games, Zelda is absent from the entire game, even in the ending. Dungeons Dungeons play very similarly to The Legend of Zelda: A Link to the Past. You have to find keys, solve puzzles, obtain items, and find the Nightmare Key to finally unlock the door to the boss of the dungeon. Some dungeons also have mini-bosses which provide a fair challenge, but to obtain the Instrument, you must defeat the boss (the Nightmare). Unlike A Link to the Past, dungeons contain subsections that involve 2D platforming. Items In addition to obtaining items inside dungeons, Link must obtain items outside of dungeons in order to progress. Much of the content is completely optional, such as three bottles (captures and holds fairies - Link's only manual healing item), two tunic upgrades (reduces damage taken), heart pieces (increases maximum health for every 4 pieces), the Boomerang (ranged attack like the bow), and medicine (heals Link to full health if he dies - fairies do NOT do this unlike ALttP). I managed to complete the game with the starting green tunic, 15 hearts, one bottle, only half the seashells, and no boomerang. Some required items must be found outside of the dungeon, including the Bow which is sold at the shop for an obscenely high price. You can steal from the shop, but if you do, your name gets permanently changed to "THIEF" and the shopkeeper will instantly kill you the next time you visit the shop regardless of if you have medicine, though he won't kill you when you re-visit after that. Note that there is a secret ending that you can see if you survive without dying, so maybe don't steal from him. You also have to go through a trading quest where you have to obtain an item and trade between different NPCs throughout a good part of the story. There are also other collectibles: seashells, figurines, and dungeon tiles. Seashells are used for obtaining items from the Seashell Mansion. Figurines are used to decorate rooms, and there are many of them - some of them are Mario universe cameos. Dungeon Tiles are used for Chamber Dungeons. If you want to 100% the game, there's obviously a lot to stuff to find. If you hate doing this stuff, though, then this game isn't too hard on doing this stuff if you just want to beat the game. Chamber Dungeons Chamber Dungeons are a new feature of the game (the "gimmick"), and this consists of a simple dungeon editor. This dungeon editor allows you to place rooms you've collected into one big dungeon. You can do things like make a boss rush dungeon or a place to get money at a steady rate. Like regular dungeons, each dungeon needs to have a Nightmare for you to defeat in order to win. Doing any of this is completely optional, but you can obtain some rewards for doing so. Unfortunately, you can only place premade rooms. You can't create rooms, and the amount of control is limited. Also, you can't share dungeons. Game Controls Also, the game controls are interesting to say the least. Before, every action that didn't involve moving or interacting had to be bound to either A or B, but this game changed it so the sword (attacking), shield (blocking), power glove (grabbing), and pegasus boots (dashing) are always usable. I wish they expanded upon this and made the Roc's Feather (jumping) permanently bound to a button, too, as I found that I had this item bound for most of the game anyway, but this is still a very nice change. This game uses 8 directional movement, which is perfect for the D-pad. Unfortunately, the D-pad does nothing in-game, and instead, the left analog stick is used. They really should have used the D-pad or at the very least both for movement, instead. Art style As I said before, this game has a sort of toy-like aesthetic to it. Plenty of things have a slight shine to it as if it was made out of plastic. At first, I thought it was strange to look at, but it kind of grew on me. In my opinion, this game overall does it well, but the depth of field effect can be a little overboard. That said, it does sometimes stay with the original source material a little too much. The game is still a sort of grid-like system, which while it does copy the original game, I think it copies it a little too well. For example, many pits you can fall in are still circular shaped tiles like in the original game when they could be actual connected pits. This doesn't detract from the game in my opinion, but I wouldn't have complained if they changed this. The game has also been changed so a lot of places take up more than one screen with the camera following Link in a sort of bounding box, such as in the overworld or in some of the dungeon rooms. Otherwise, many dungeon rooms take up one space with the camera at a fixed position until Link goes to a different room. The game handles this well, in my opinion. Music This game features an orchestral version of the original sound track. There is a small variety of music in the game depending on where Link is or what he is doing, including music for each dungeon. In my opinion, I think it all complements the visuals very well, but I recommend you listen for yourself. How well does it run? Since it's a console game, you might be wondering if it runs poorly. It doesn't run poorly, but it isn't flawless. This game runs at 60 frames per second with a dynamic resolution, and I personally appreciate this. The dynamic resolution scaling is sometimes noticeable, but only for a moment when you're entering rooms, so it's not really intrusive. Unfortunately, the game can intermittently drop to 30 frames per second when going between different locations. For example, if you are inside a house and you go outside, or if you're going from the outskirts to a desert or a forest, it can drop in frame rate momentarily. There is also one area in the game, a swamp, where the game does not run at 60 frames per second the entire time. It is important to note that I exclusively played this game in portable mode, but people who have played this game with their Switch docked have encountered the same exact issues. I recommend watching Digital Foundry's review of the game if you want more information on performance, as they did an excellent performance analysis (the performance analysis is at 15:25). Conclusion Overall, despite the few issues the game has, this is a great game, and if you're a fan of The Legend of Zelda series, I highly recommend picking this up if you have a Nintendo Switch. Is it was worth the $60? For what you get, it's no Breath of the Wild, but you can sink a lot of hours into this game on just finding all of the items, and the main story isn't exactly short. Perhaps if you're into completing the game, maybe! However, if you want to get this, you could buy a used copy or wait for it to go down in price if you want to buy a retail copy. However, there are plenty of games out there that have a similar amount of content which cost much less than $60, so keep that in mind. Pros Lots of new content Improves upon the original game without straying from the original source material Excellent soundtrack Runs at 60 FPS Cons Analog sticks should not be used for digital input No option to turn off depth of field Some performance issues
  9. Do you have fall damage disabled?
  10. Nice! You should consider using a service such as SoundCloud so people can listen to the sounds before downloading a >100 MiB archive of HEK tags. Also, that archive also has a lot of empty directories, so you might want to look at that to make sure you aren't missing anything. If you aren't, you should remove those so things are easier to navigate. Lastly, your topic could do with a description of the sounds. What inspired you to make your sounds? Is there a sort of theme? How did you make them? These are just some ideas for your description if you need any.
  11. Many maps being made today contain large amounts of bitmap, sound, model, and BSP data. As a result, these maps take a large amount of space. A common way to keep size down is to use DXT compression. This allows for bitmaps to take up as low as 1/8th their original size. However, this results in a significant, irreversible loss in quality in the original image. Something I've been doing is experimenting with lossless map compression. There are a few choices for good, lossless compression algorithms to use: DEFLATE (typically used in .zip/.gz) - Also used by the original Xbox for Halo Combat Evolved cache files LZMA/LZMA2 (typically used in .7z/.xz) Zstandard (typically used in .zst) The map I'm going to use is a10.map (189.9 MiB). This map was built with no dependency to bitmaps.map, sounds.map, or loc.map, and it contains the original Gearbox-compressed bitmaps and sounds. I'm going to be testing using libdeflate (DEFLATE), xz (LZMA), and zstd (Zstandard). DEFLATE and LZMA's default compression settings are level 6, with the maximum being 9. In this case, I'm going to be using level 3 and 9. I picked 3 over 6 for better performance rather than better compression ratio, and I don't have time to compress and decompress the same file 20 times at level 6 since I'm already spending a lot of time doing level 9. zstd's default compression setting is level 3. The maximum is 22, but levels beyond 19 require more memory, so I chose to use level 3 and 19. First, let's look at the most important thing: decompression time When it comes to decompression time, Zstandard is the best, adding only 0.27-0.35 seconds to the map loading time depending on the compression level you used. DEFLATE is also very good and doesn't vary significantly if you use any compression level. xz, on the other hand, is the slowest at nearly six seconds. Next, let's look at the second most important metric, compression ratio As you can see, LZMA is the best of the three, closely followed by Zstandard. DEFLATE's best is only slightly better than Zstandard's default. Lastly, here is the compression time When you use the lower settings, Zstandard and DEFLATE are both quite fast. In fact, DEFLATE's best is much faster than LZMA at level 3. Zstandard at level 19 is still considerably faster than LZMA. That said, compression time is not really important, as it's something you only have to pay for once: when you create the map. Decompression has to be paid for every time the map is decompressed. It's worth noting that these tests were all performed on one CPU thread. zst allows you to compress using multiple threads (though it seems diminishing returns are at 4 threads?), and this significantly improves performance. I did a test earlier today with all of the Halo PC maps that came with the game using Zstandard, and this is what I got. xz also lets you use multiple threads, but if you want better loading times, you'll want to split things into blocks so you can decompress them in parallel. This is basically required to make loading times bearable. Here is an old spreadsheet I made where I compressed the entire Refined campaign into blocks using LZMA. As you can see, loading times are actually pretty tolerable, even if you have only a dual core CPU. Waiting 3-4 seconds is much better than having to wait six seconds for a map to load. If you have four or more threads, though, then you'll generally see two seconds or less, and under two seconds with eight threads. Even so, this is still not quite the speeds of even DEFLATE on one thread. And you can also use multiple DEFLATE or Zstandard blocks, too, if you wanted. That said, it is worth noting that using multiple blocks also comes at a compression ratio tradeoff and requires more RAM - something Halo Custom Edition being a 32-bit program is in short supply of. So what are the takeaways? LZMA: Best in compression ratio by far Better than Zstandard at -19 in compression speed All of the above benefits hardly matter because you have to wait multiple seconds for the map to load tl;dr: Best compression ratio, Slow DEFLATE: Fast decompression Compression ratio isn't very good compared to Zstandard which is better compressed and is faster at decompression Best setting (-9) is only 1% better than Zstandard's default (-3) in compression ratio, but takes over 10x as long to compress tl;dr: Fast, Not very good compression ratio though Zstandard: Fastest decompression all around Fastest compression if trying to match DEFLATE's Can match LZMA's -3 compression ratio with -19, but takes 49% longer than LZMA to compress to that level Significantly better than DEFLATE's compression ratio with -19, but not quite as good as LZMA's -9 tl;dr: Fastest decompression, Decently fast compression speed, Good compression ratio, the "best of both worlds" so to speak You can create .xz and .gz archives in 7-Zip. 7-Zip does not support Zstandard, though, so you'll need a separate program for this or a plugin of some kind. Writing a program that compresses maps isn't particularly difficult. Also, it is possible to have the game automatically decompress the map, too, with a mod. Chimera, for a while, did this, as it supported an experimental format that used multiple LZMA blocks, and these were decompressed into a region of memory. However, this came with a drawback: it required a 1 GiB contiguous chunk of virtual memory just to hold the map, thus you had to patch the game to allow you to go above the 2 GiB limitation. 1 GiB is arguably not enough memory, too, as while today's maps are usually under half a GiB, tomorrow's maps could go over this limit, and making one is easy to do right now. The Xbox version of the game addressed its low memory limits by caching the uncompressed version. However, unless you have multiple compressed maps, then having a big temp file on your hard drive or SSD is going to negate the savings. Also, accessing the disk is slow and prone to stutters even on an SSD. This makes it questionable whether or not map compression is viable on Halo PC or not, as while it provides a significant savings sometimes even over DXT compression, it, first of all, requires a mod. It also requires either patching your game's executable while hoping nobody makes a 1+ GiB map, or that you have to have uncompressed files laying around taking up a lot of space.
  12. A bug was found where fast loading was not working in Halo Custom Edition. I've fixed this. chimera-20191019T225026Z.7z