Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - scotch

#21
Someone produced some code for doing just that a while ago, the problem is that writing one byte at a time is incredibly slow, and it only managed a few KB a second. Considering that videos can be tens or hundreds of MB it's not practical. I'll put obfuscation and packing in the next release but I'm not sure if that'll be today or after Mittens.
#22
Flipped sprites: I'll sort that out.
Obfuscation: Still not convinced it matters, but I might do it.
Sound: I don't have any intention of doing that because I have no idea how to do it reliably while AGS has the sound device.
Memory leaks: Set the pointer to null and it will be destroyed.
Walkbehinds: I suppose I could make it work... I can't see it getting used much but maybe I'll do it.
Green rectangle: I haven't seen this happen.
#23
Weather's looking potentially rainy on the weekend. If you have anything fun for indoors bring it along. There will be some laptops around for game demoing and I'll pack my Wii for playing DVDs and games.
#24
The backgrounds are bitmaps similar to any other, just rows of pixels one after another. It's hard to tell quite what you are saying a quadruply linked list might be used for in this case.
#25
Could use

Code: ags
int IndexOf(this String*, String sub, int start) {
    if(start>=this.Length-sub.Length) return -1;
    if(start<=0) return this.Contains(sub);
    String e = this.Substring(start, this.Length-start);
    int i = e.Contains(sub);
    if(i>=0) i += start;
    return i;
}


watch out in your Split function though, there are some bugs

Code: ags
int Split(this String*, String separator, String array[]) {
    int n = this.Length;
    int start, stop, i;
    while(start >= 0 && start < n) {
      stop = this.IndexOf(separator, start);
      if(stop < 0 || stop > n) stop = n;
      if(stop>start) {
         array[i] = this.Substring(start, stop-start);
         i++;
      }
      start = stop+separator.Length;
    }
    return i;
}


might be ok.
#26
Here is a Belgian tv segment about the chateau. http://www.youtube.com/watch?v=MRyR6ZylK9U

I don't speak Belgic. Do they say it's haunted or something cool like that? Feel free to lie.
#27
Spoiler
When there's nothing missing, any way of cutting the cake straight through the middle point will guarantee equal halves (like any rectangle). If you pick the line that goes through the middle of the cake, as well as the middle of the missing slice, then each side gets half the cake - half the missing rectangle?
[close]
Quite a fun question. I'd have no chance if it required making formulas. Also I probably wouldn't have thought about cutting it along the other axis, heh.

Also, I don't think sqrt is usually super slow. It's very often faster than a LUT would be nowadays, but yeah, I expect an examiner would like to see you thinking lower level.
#28
General Discussion / Re: A UFO theory.
Wed 06/08/2008 16:43:09
As a child David Adair recieved previously unknown mathematics in dreams. He used these to build a rocket aged 11, and after petitioning the government to give him a million dollars he built a nuclear fusion rocket in his father's car garage. If that sounds hard to believe, fair enough, he did have help. From Stephen Hawking (who is also an alien-math dreamer). At 17 this won him a non-existent prize from the airforce. During a test flight of his rocket, it landed in Area 51 (!!) and while he got the guided tour there he saw transparent metal, mind control spaceships and other radical stuff. He was understandbly tired by this experience, so he decided to settle down and earn a living selling books on the UFO fringe circuit, which was cool because now some people on UFO forums have heard of him.

Fair enough, he may not be "well known" or a "scientist" but if you need credentials you can always email Stephen Hawking (could ask him how to build nuclear fusion generator at the same time, if it's not too much trouble).
#29
It seems quite likely it would refuse to install or activate, or at the very least be missing the drivers needed for the different hardware. I'd recommend getting a fresh copy of Windows from somewhere and doing the install yourself. Burn some safety applications (AV, service packs, browser) to disc before you start if you want to be as safe as you can. It's good to download the drivers you need first too, especially network ones, so you can get online to get the rest.

There are versions of Windows around with all the updates slipstreamed in to save you time.
#30
CJ: Thanks. I've played through BASS on my Wii, and I didn't find it problematic, but there can certainly be some improvements over how ScummVM handles the mouse.

Steve: I wasn't sure if you had made a PPC version, not having used the Mac stuff, that'll be a big help!
#31
I think it's worth considering the commercial platforms as well, I know it's a small thing right now but commercial indie development is only just getting what it always needed, access to the same marketplaces the big developers sell on. There are already some indie scale Wiiware games released, and more coming.

It's true Nintendo could make life difficult for homebrew developers if they wanted, and they partially broke some homebrew stuff once before, but I'm fairly confident it's here to stay.

I'm not sure what you are referring to with the R4, it still works fine for virtually everything afaik, and I don't remember Nintendo attacking carts directly. If they have, they're more justified in doing that, since they are clearly intended for piracy. There is no known way to use the homebrew channels for piracy so it should be less offensive to them.
#32
Live is the most established service right now, but unfortunately for AGS, you can't run native homebrew code on the 360. Indie developers can use XNA (for a fee) but that's not an option for AGS because of the .net based platform. Aside from that, the main problem for AGS games is the controller.
#33
I didn't say that :P I was referring to the Wii. But I do think the DS is a great platform for adventures, and one that hasn't been explored enough by western developers. Unfortunately it's a difficult one for indie developers to get in on, because of the cartridge distribution costs.

I'm doing a homebrew demo on DS for my portfolio and I love the platform, but it's hard to justify doing anything for wide distribution when relatively few people have the equipment to play. That's mainly why I am enjoying the Wii homebrew situation right now, it's got a lot of potential for us indie/amateurs.
#34
Handhelds are a bit difficult because of the resolutions, true, but that's by no means insurmountable. I personally think Mac should be the number one priority for porting right now (it's quite common for casual games to have Mac ports), however I won't push that because I am not offering to do it myself.

What I am offering is the Wii though. If I need to pitch it:

It's the best selling console of the current generation, and continues to sell fastest.
Broad user base, including those lucrative middle aged women we all want right now.
It has a suitable pointing device and support for the necessary resolutions.
Online sales of old school 2D games are already big, and WiiWare platform is becoming more accessible to indie developers.
Homebrew works as of now, and requires no modchipping or difficult hacks, the state of homebrew is changing fast but ideally you will just insert the AGS DVD. Or if you already have the Homebrew Channel installed load it over the network or from SD card.
I am pretty sure I am capable of doing the port in a robust manner (as sure as I can be without actually seeing what is necessary).

To me it seems like the most logical candidate of all the non-PC devices out there. Obviously not everyone will own a Wii, nor will everyone that owns one be interested in playing/developing for it, but I fail to see the downside to trying it. I would avoid any disruption to the main AGS development.
#35
QuoteYou obviously haven't played Crysis nor do you know what I am really talking about.
Oh, really.

I didn't disagree that Crysis renders its 3D scene to whatever resolution you want, obviously it does like virtually all 3D games, and I was backing up the suggestion of using the desktop resolution for best compatability. All I was pointing out was that while Crysis rasterizes graphics on the fly to arbitrary resolutions and aspect ratios, it is not a good idea to do the same thing with pre-drawn sprite art. Especially I wanted to point out that not many people would want their sprite art "smooth scaled", but that's not disgreeing with the whole idea.

If this was implemented it'd have to take care not to mess up the aspect ratio, to avoid texture filtering and inconsistently scaled texels. Not all resolutions are good candidates for scaling between, and there are some non obvious decisions to make.

QuotePerhaps you would like to visit the link I posted, scotch, and see what this is all about.

I did, it's about how the changes to the user interface scaling in Vista affect automation programs that assume absolute coordinates... I guess you googled for "screen scaling" and assumed it was relevant? Crysis does nothing that is known as "screen scaling". Please leave the rude tone behind on the tech forums, we're not all idiots.
#36
I don't know what's causing the problem with that setup but I will try it some time, glad you found a workaround for now.
#37
"Modern games like Crysis and Unreal 3 titles use screen scaling to maximize compatibility with an unlimited range of monitors."

3D games are resolution independant because they are vector based, they don't do any upscaling, they simply render at the desired resolution. Whichever resolution that is, the raster elements (the textures) are getting distorted constantly, so they have to be filtered. Pixel art games on the other hand are drawn for one resolution and are completely ruined by scale filters in most cases.

However, scaling isn't a bad option if there is no filtering when doing the scale, in fact as a safe mode it'd probably be the best thing to do, perhaps have it as an option on the setup program. Full screen, native desktop resolution, do the rendering at standard game resolution and then rescale without filtering. We'd still have bars of course but only as long as AGS is tied to certain resolutions, and it seems to be moving away from that.
#38
I think an iPhone version would be worth it if there was a skilled and dedicated porter, it's a reasonable device for AGS to run on, and I do think it's worth supporting platforms where there may be commercial opportunties. It'd be a good draw for AGS. I don't know of anyone that'd do it. I don't own an iPhone.

I'd quite like to do a Wii port though, if it's not too much hassle for CJ. Potentially I could maintain the Linux and Mac versions from the same codebase, but no promises on that. AGS games on the Wii Shopping Channel or the iPhone App Store might be an interesting prospect for some.
#39
Sorry to add to this terrifying nerdathon, but even if you were doing it for fun, avoiding branches absolutely is sometimes important on modern CPUs and GPUs (if you're writing native code) because there are relatively large penalties in some cases. The original abs method is probably impractical as noted, because it uses expensive operations, and anywhere where branches are such a huge problem (like in graphics shaders or SIMD units) there are special abs instructions.

If you want to do this fast on a computer you can use bitwise operations. A floating point value can simply have its top bit dropped, but signed integers are not so simple. Without getting into assembly language, one approach could be to work out both answers and index them with the sign bit
Code: ags
inline int abs(int x) {
    int abss[2] = { x, -x };
    return abss[x>>31];
}

which is a bit like what a graphics shader compiler that doesn't support branches would do when it was forced to simulate a branch.

Interestingly, on my Athlon X2 and VC++, that method is slightly slower than the standard conditional implementation "return x<0?-x:x;" when you run it over a list of numbers which are all positive or all negative. However it is noticably faster when working on a list with random signs. Just goes to show how big a deal branch prediction is these days. The other thing to note is the standard library "abs()" beats them both using a non branching assembly language trick. Trying to outsmart the compiler fails yet again.

branching, positive:   6 secs
branching, random:    11 secs
indexing, positive:    7 secs
indexing, random:      7 secs
abs(), positive:       6 secs
abs(), random:         6 secs


edit: Based off what the compiler tries, I made this more portable version which beats the compiler's method on my system. Perhaps it's not so futile after all.
Code: ags
inline int abs_mask(int x) {
    unsigned int mask = x>>(sizeof(x)*8-1); // fill the mask with the sign bit
    return (x ^ mask) - mask; // two's complement if mask is set
}
#40
Depends on the art, obviously generally no. But it performs reasonably well on flat and outline based art I think. Any art that uses the slightest bit of pixel tech it damages, including Monkey Island. AGS does give you the option, which is a good thing I think.

Most people would look at that and see blobby undefined characters, MindUnderMatter. If you want smooth characters simply draw them at a higher resolution.
SMF spam blocked by CleanTalk