Monday, 28 January 2013

All I do on this blog are, "I've been away for a while" posts...

So, I'm still doing random experiments with Q3. The one I am actively working on is trying to recreate some environments from Skyrim. I found out how to extract all of the models and textures, and they work alright in Q3 with some exporters and whatnot. A lot of the problems are not coming from the models themselves, but more from the limitations of Quake, q3map, and my computer. Q3map2 has a brush limitation of around 32,000, and some of these models hit that cap pretty quick if I use auto-clipping on them. If I ever finished a scene that I wanted to play properly in Quake, I would manually clip it, or at the very least make a low-poly version to use for clipping, but right now I'm just trying to get everything working right.

At the moment, the biggest thing I've done is most of the geometry of Winterhold, as it's one of the more practical environments that can be made into its own map: it's on a big cliff, with only a bridge connecting it to the mainland. The most tedious part of this (not difficult; just time-consuming) will be adding all the details. I will have to add all the stupid benches, plants, trees, rocks, and decals manually, because I can't open large files in Max, which means I can't just rip the entire scene from the game and use that. However, because of this limitation, I might resort to doing a smaller area, such as the inside of Winterhold College's main building. It actually is better for my purposes, since my original idea was to make a, "find the differences" map.

A few weeks ago, while riding the train home, I had an idea to make a scene in Radiant, copy it, and add a bunch of extra details to it. You find the differences, shoot them, and a pretty little ring appears above it. When you find all of them, you finish the map. But instead of looking at a 2-D image, or a small environment through a window, I wanted it to be a large area that you could walk around and look behind walls etc. When I got home, I realized that Skyrim would undoubtedly have some area that perfectly suited my needs. The world is massive, with innumerable details spotted throughout. I tried to walk all over it, looking for any spot that would work for me. I made a list of about 10, and decided to then find out how to actually get these scenes into Quake. This was easier than I expected.

It turns out, there are already a lot of existing plugins for Max to import Skyrim's .nif files, and tools to export all of the resources for the game. All I needed to do was extract all of the models and textures, import them to Max and export them as .ase models for Quake. Compiling a map with them, however, was pretty difficult. If I wanted light, it would have to be very low quality (no high resolution lightmaps or super-low lightmap scale), and more often than not the models would have to be nonsolid. An anomaly I found with this was that my Winterhold scene actually crashes Q3map2 when compiled without auto-clipping enabled, but compiles rather quickly with it on (this seems backwards).

Anyway, I've got a lot of working maps, complete with 2k textures and all that good stuff. Detailing I might save until I can figure out an easy way to copy everything from Skyrim 1:1, but the larger architecture is pretty simple and easy to do.

Before I got into this Skyrim thing (it actually made me pick up Skyrim and try to play through it again, because I was forced to fix all the bugs I ran into when trying to play it last time), I was working on Minecraft maps. I joined up with cpu, some wizard who hangs out on IRC, and got working on mc2map, a tool that does exactly what its name implies: converts Minecraft worlds to Q3 .map format. The early versions kinda sucked, and were heavily limited, but I convinced cpu to add some features and I updated his block id list so that all the blocks were what they should be.

The main problem I faced with working on any Minecraft maps is that brush merging doesn't exist yet. Any world I convert is thousands and thousands of brushes, which my computer just can't handle. I gave up on doing any work with Minecraft, despite having a lot of ideas and good worlds ready to go. There are some incredible texture packs for this game, which make me itch to get everything working right in Quake. The gameplay is also quite good, as Space and cpu have both proven with their previous maps.

This is the end of what is probably my longest blog post. If I used this blog more, I may actually have done a lot more work on these projects, since writing everything down helps a lot with thinking of solutions and finding deeper problems to solve. Now it's time for me to post some screenshots of what I have so far. Here goes...

Wednesday, 3 October 2012

I'm working with Quake 3 lighting and shaders!

This is the first project I've put serious work into in a long time (aside from playing League of Legends), and I must say, it's quite fun. I made a small map with less than 100 brushes and no seriously complex geometry to mess around with lighting. This originally started when I was looking up some random Quake-related stuff on Google, when I found a few gorgeous skyboxes that hipshot made. I don't know how old they are, but all they were were a series of groups of images, with no accompanying shaders. He said that anyone who wanted to use them ought know how to make their own shaders anyway, so I was determined to make my own shaders for these skyboxes.

After a little while, however, I ended up messing around with sock's industrial texture pack, and made a few shapes and set up a small area to test lightmaps and how Q3Map2 lights up the world. I have only one (technically two, if you count my second sunExt in my shader) source of light, so it's easy to tell what's right and what's wrong with the shadows being created, and it turns out that quite a bit is wrong with them, that I am trying to fix.

First off, they look like shit by default. I had read something on Smokin' Guns a while ago about hi-res external lightmaps, but I was more of a noob back then than I am now, and it made absolutely no sense to me. A couple days ago, it still didn't make much sense, but as I followed the steps and ran into my own troubles, it all began to clear up, and I found a more or less complete understanding of at least what the author was trying to teach (HERE is the post, btw). I began to get proper understanding, and with that, new ideas. I thought I could make some seriously ridiculous 1024^2 lightmaps, but that ultimately failed as my system has only a measly 2Gb of RAM (ugh). I also couldn't do 512, but 256 was still far superior to 128, and was more than sufficient for my needs, as GtkRadiant can only export lightmaps of a limited size anyway, so all I would be doing is wasting graphics memory on blank spaces, because 4/5 of the created lightmaps would go unused. However, for a lot of basic purposes, 256 lightmaps are FAR superior to 128 lightmaps, and will fix a lot of problems with pixely shadows, provided you also use proper filters (-super, -bounce, etc.). So this was one thing I learned how to fix.

There is another problem that came up, however, that I really can't figure out what to do with, and that is, simply put, dirty lightmaps. What happens with low resolution lightmaps is all the ugliness generated by the 15-year-old system is masked, because there simply aren't enough pixels to display all the crap. And 15 years ago, this was perfectly fine. But if I want to make a map with a 256 or 512 lightmap, a lot of jagged edges and random lines appear on the lightmap, where it should just be flat light. I tried a few ways of fixing this, all the way from insane amounts of supersampling to manually fixing it, but none were really efficient or workable. I'm still trying to fix it, though I have a few ideas as I write this. This was the second problem that came up, and has yet to be resolved.

The third idea I had was that I could finally make toggle lights. I'm fairly certain it's been done before, and since I am by no means the most creative or technically savvy mapper, there should be no reason that it hasn't been done before. But I've been waiting to find a way to do it for some time now, and this is finally it. Since external (the only way to get 256 or higher lightmaps is by using shaders, because Q3Map2 doesn't work properly if you try to use a higher lightmap size with -lightmapsize; this was added for Wolfenstein and ET. One of many advantages of using shaders, however, is that there are a lot of fun things you can do with shaders, starting with toggling them. You can press a button and change x shader to y shader. If you're using shader lightmaps, then you can switch x light to y light, and even to z light if you want to, though I'm not sure of the engine limitations for this. I still haven't worked with toggle shaders, so there will probably be a lot of issues that I need to fix, but I know for a fact that this would work. I could make it so that you flip a switch and a light turns on, or I could even make the light flicker on using a func_random (not sure if this is actually possible, though; will need to play with it). I can couple it up with triggered sounds to make lighting and thunder, and light up an otherwise dark room for a second or two. Anyway, this is what I'm going to be working on next, and is the third idea I had and the third thing I learned.

I really can't think of much else, and if anyone got this far, then good job. It's been a long time since I've made a blog post, as is the norm, and I like to write a lot, especially when I'm tired (I'm very much tired; it's 5:30 in the morning and I had a long day). I might make some amazing discoveries meddling with the Quake 3 engine, and if I do, I'll definitely write them here, because even if nobody reads it, it's good to put these things into words, and is also a good way to store it for later comparison and reviewing.

Friday, 6 July 2012

I got a new monitor yesterday

I've been using my shitty TV as a monitor for the past few weeks, and it really hurts my eyes (not to mention that it's really hard to read on that thing). I decided to check craigslist to see if there were any cheap monitors for sale in my area. To my great surprise, there was one for $25 less than half an hour away! The only problem was that it was a 30kg(!!!!) CRT, and there was no way in Hell I was carrying that thing home. The seller was really cool and offered to deliver it to me for an extra $5. Of course I said yes. I got the monitor, gave the guy his money, and brought it to my room, only to find that it took up half my desk. There was just barely enough room for my keyboard in front of it, but then my face would be inches from the screen.

Anyway, I set it all up, and am using my keyboard Russian-style now, with my mouse on a little cupboard that I put on-end. It's a surprisingly workable setup, though anyone who sees it would shit themselves because it looks so silly (my computer is just a motherboard, PSU, and HDD sitting bare on my desk). I also had to run an ethernet cable up the stairs, because I don't want to go busting walls to route it that way just yet. Oh, also, my chair is a homemade lawn chair that's at least 8 years old. It's really cool.

On somewhat of a whim, I also ended up buying a webcam and a cheap headset ($20 and $12 respectively). I was going to just buy a mousepad, but this stuff is a lot more practical right about now.

HERE are the specs, and below are a couple pictures of my desk, just because. (On another note, I really want to work on Wolfcam some more; specifically, updating my config. At the same time, though, I want to wait and see if brugal will finally clean up all the cvars and shit, because if he does, I would have just wasted a bunch of time adding cvars only to delete them next update)

Friday, 29 June 2012

I did this thing with KOS's cpm22 for nzr0

He was trying to figure out how to make a "standalone" cpm22-kos_fixed or whatever, but was having trouble because of all the shaders and stuff, so I offered to just do everything for him. Took me less than 10 minutes, and works perfectly I guess. HERE's a download link.

I'll be working on the other two maps in a couple days when I get my computer back, as this one takes way too long to load the maps on, and I have nothing to modify targas with. It's just a really bad computer overall (really bad is quite the understatement).

Saturday, 16 June 2012

My blog is bored, and so am I

For the past month I haven't had a computer, and have been relying solely on my iPod. Needless to say, iPods aren't the most reliable source of internet whatnots. I have a crappy computer that I built out of spares and threw in a drawer. It's a piece of crap, but it's still miles ahead of my iPod in terms of useability, though it's actually worse on the hardware side, albeit slightly.

Anyway, nothing really new is happening. When I get my computer back, I might do an Infinity Engine marathon (if I can get enough money to upgrade my computer so I can actually stream decently). This includes Baldur's Gate, Baldur's Gate 2, Icewind Dale, Icewind Dale 2, Neverwinter Nights, Neverwinter Nights 2, and Planescape: Torment. I've heard only bad things about Neverwinter Nights, so I might skip it if I do this. Baldur's Gate should only take about 2 days, and BG2 would most likely take a week or so. I've never played IWD or NWN, and I've not played BG2 for more than a couple hours, so the only one of these I really have experience with is Baldur's Gate. If this happens, it'll be fun.

I wanted to share a song here, but it turns out it's one of the few that I haven't uploaded to MediaFire. Instead, here's a couple pictures of my computer:

Thursday, 19 April 2012

Tuesday, 10 April 2012

Oh right, I have a blog!

I've been too addicted to League of Legends recently that I completely forgot about almost everything else. Brugal is still being... whatever the word to describe how he's handling 8.6, and mccormic is a little bitch 'cause he didn't let me beta-test his movie and then it sucked. If I had a less shitty harddrive I would record some League of Legends shit, but until then I guess I might do some random Q3 clips to test new Wolfcam features and all that. With the next QL update, if the maps are any good, I might think about converting them and playing on them a little bit. That should be fun times. This is pretty much everything that's been happening so I'm going to end this post with this period here: .

Friday, 23 March 2012

Wolfcam

There's a new version in constant development. We're up to test21, with a lot of bugfixes as well as Q3 (and its good mods) support. There are still some tweaks to the Q3 support to be made, as well as some tweaky shit, but I hope it'll be done soon. Of course, brugal is the only one actually working on it; I just report bugs and features and all that.

League of Legends is fun shit, still. Wasted a bunch of IP on Swain, but he's not as good as I had remembered :(