Page 1 of 5

Advertising OXP

Posted: Thu Feb 14, 2008 8:36 am
by Hoopy
A newish commander was recently complaining about the tedious slog from having a nicely equipped Cobra to having enough credits to buy something bigger like a python.

The rusty ship OXP helps but there's still something like 100,000 Cr to be found by taking 35t of Computers one way (for 1200Cr profit) and Furs the other way (800Cr profit). That's 100 trips of trading between the same two systems.

So I thought maybe I could write an OXP where you sign up with an advertising agency who put a big advert on the side of your ship. Whenever you visit a new system and show off your advert (providing you're clean) they pay you 250Cr.

So with 256 systems in a galaxy you could get 64,000 Cr. Do some trading whilst flying around and you get your 100,000 Cr and a chance to see the galaxy!

Does that seem reasonable? Am I paying too much? How would I store the variables? I don't really want a boolean for all 256 planets: could I have a 256 digit binary number and get the javascript to chop it up instead?

Posted: Thu Feb 14, 2008 9:47 am
by Commander McLane
Yes, I think you pay waaaay to much.

A more reasonable pay-off for me would be an the region of covering the fuel-costs, something like 10 Cr. per system.

Generally I am strongly opposed to any get-rich-quick-scheme. Since the days of old Elite (and BTW in RealLife as well) it took time to make a fortune. Why should it suddenly work in an instant? And besides, every single one of us has gone that way, making hundreds of cargo runs, until we got our dream ships. If a player feels unhappy about this, I think he is playing the wrong game.

If you want to cheat and get rich quick, then you still can edit your save-file. But you should be aware that this is cheating.

A cheating.oxp would not be to my liking.

Posted: Thu Feb 14, 2008 9:56 am
by Hoopy
but 10Cr isn't enough an enticement to go off and explore.

I'm worried that palyers are getting bored of Oolite before they've earned to get a new ship or get a galactic hyperdrive or even trek over to the far end of galaxy 1 to do a mission (I've forgotten the name of the OXP but it's right in the far NE corner).

I also worry that to a new player a forum full of people with a million Cr, 5000 kills and 27 OXPs being played could make them feel 'unworthy' until they spent weeks trundling back and forth for 1000 Cr at a time.

250Cr extra per trip, only if it's to a new system, isn't really that much. It's a long way short of adding 100,000Cr in the save file. But it will encourage exploration, trips to the Tionsla graveyard etc. The game will then be more interesting and before they know it they'll have done 100 jumps and have the cash to upgrade their ship and the kills to take on the interesting nasties in some of the mission OXPs.

Trident down paid me 350,000 Cr, that felt far more like cheating! :)


But point taken - 1 vote for "that's too much free money!"

Posted: Thu Feb 14, 2008 10:01 am
by Kaks
Hear hear! Well said Commander McLane!

Plus from the technical side, while there shouldn't be a problem chopping up a 256 bits number ( hmm, maybe 4 x 64 bits numbers is better!), I've no idea how you'd add a sponsorship image to your cobra. Can it be done at all?

If anyone points me to the right direction, one oxp I'm interesting in doing is a paintshop.oxp. Which would work the opposite way to the sponsorship.oxp Hoopy is talking about.

In exchange for hard cash, you could get your cobra repainted - a choice of 10 designs, etc...

However, as I said, I haven't got a clue about how to change your cobra's texture from within an OXP. Has something like that been done in the past?

Cheers,

Kaks

edit: also good counter point. Still, 250 is a lot when you're just starting up. One thing that could work is a sliding scale depending on your score. Nobody would want to sponsor an unknown! :P

Posted: Thu Feb 14, 2008 10:08 am
by Hoopy
If we can't change the texture it could just be described as you doing 'door-to-door' salesman type stuff at the station.

1 Cr for the first planet, 2 for the next etc. It would average out at 128Cr per system if you got them all, ie 32,000 in total. But 1Cr to start with doesn't feel like a get rich quick scheme...

Posted: Thu Feb 14, 2008 11:42 am
by Commander McLane
I'm afraid I have to make another point (or a couple of them):
Hoopy wrote:
but 10Cr isn't enough an enticement to go off and explore.
No, and why should it be? To be precise: Why should there be any enticement to go off and explore other than the thrill of going off and explore? The Ooniverse is big, and it is exciting all by itself to visit all these different worlds. If a player doesn't feel this, then Oolite, whose main feature is the open-endedness, is probably not the right game for him. You make also money on the go, and you do that with the traditional methods, but being paid money just for the act of jumping in another system????? No!
I'm worried that palyers are getting bored of Oolite before they've earned to get a new ship or get a galactic hyperdrive or even trek over to the far end of galaxy 1 to do a mission (I've forgotten the name of the OXP but it's right in the far NE corner).
This is not a worry I share (obviously). The incentive of buying a Galactic Hyperdrive comes (latest point!) with the Constrictor mission, which is built-in, so every player will at a certain point get it.
I also worry that to a new player a forum full of people with a million Cr, 5000 kills and 27 OXPs being played could make them feel 'unworthy' until they spent weeks trundling back and forth for 1000 Cr at a time.

Shying away new forum members could be a point worth considering. On the other hand we usually don't fill up our debates with how much money we have in-game; and the forum has its own rating system, completely independent from your gameplay (I myself haven't played for more than a month, and I wouldn't even dare to ask Dr Nil when he last has actually spent time with the game). So a forum newbie can earn himself a decent reputation just because of his activities here.

And: Why do you assume you have to trade back and forth for weeks? I can't, of course, speak for anybody else, but at least this is not my own style of playing. Everybody will find out soon what the most profitable trade-routes are, but from most Fur-systems there is more than one Computer-system in reach, and vice versa. So I always have explored new regions of space while doing my milkruns.
250Cr extra per trip, only if it's to a new system, isn't really that much. It's a long way short of adding 100,000Cr in the save file. But it will encourage exploration, trips to the Tionsla graveyard etc. The game will then be more interesting and before they know it they'll have done 100 jumps and have the cash to upgrade their ship and the kills to take on the interesting nasties in some of the mission OXPs.
It is that much, if you have a look at the prices for equipment. With 250Cr per jump you would iron-ass your CobraIII in no time, so why would you want to buy another ship at all? And as I said before, anybody who doesn't stick to the same two planets back and forth for weeks (what a boring personality that must be! (no offense meant, if you, dear reader, happen to just do exactly this)), will inevitably come to Tionisla after a short while. It's, after all, quite close to Lave, and not in the far end of the galaxy! The Tianve Pulsar would give you a better point here, probably.

Anyway, my main point is: If it would get so easy to make thousands of credits in a very short time, I would vote for raising the equipment-prices at least by a factor 50! It's all about balance, and balance is a subtle thing. And I really feel being awarded 250 credits just for jumping around would hugely unbalance the game.
Trident down paid me 350,000 Cr, that felt far more like cheating! :)
Wow! Didn't know that it is so profitable. Perhaps a bit unbalanced as well?
But point taken - 1 vote for "that's too much free money!"
Exactly. Except my vote goes to "that's waaaaay too much free money!" :wink:

And my second vote goes to: If you need a financial incentive of this kind in order to explore at all, then Oolite is the wrong game for you in the first place.

Posted: Thu Feb 14, 2008 11:45 am
by Griff
Cool idea for an .oxp!
Have a look on page 5 of the Shaders' Outpost sticky thread at the top of this forum, Ahruman's posted an example decal shader, i'm not sure but this might possibly do what you're after? although getting it to work on different ship models might be a problem, i've not looked at how the texture uv's are layed out in the different ships but i imagine there's no standard layout (ie where a wing is layed out on the cobra is where the engine is layed out on the adder etc).

Posted: Thu Feb 14, 2008 11:53 am
by Hoopy
I sort of imagined that the advert should be for something Cobra Mk3 related so only new pilots would use it. That way it could be FdL (if I remember it's them that make the Cobra) who pay you to advertise the new widget that they're selling for the Cobra and there would be no expectation of getting something similar when you get a new ship.

That would make it easy to position the advert.

I did think that maybe you should pay to get the new widget and the advertising revenue could pay for it after a few jumps. Maybe the new widget would give and extra 0.05 max speed or something?

Re: Advertising OXP

Posted: Thu Feb 14, 2008 12:10 pm
by JensAyton
Hoopy wrote:
How would I store the variables? I don't really want a boolean for all 256 planets: could I have a 256 digit binary number and get the javascript to chop it up instead?
Quick experimentation shows that JavaScript can deal with the standard bitwise operators, but only on 32-bit quantities. You’ll need to store an array of eight numbers. In fact, due to the way numbers are implemented in JavaScript, it would be more efficient to use nine; nine storing thirty bits each gives you 270 bits.

Whoops, I seem to have accidentally written most of the code for you while experimenting:

Code: Select all

this.clearAllBits = function()
{
    this.bitmap = [0, 0, 0, 0, 0, 0, 0, 0, 0]
}

this.clearAllBits()    // Initialize bitmap at startup


this.isBitSet = function(bit)
{
    let index = Math.floor(bit / 30)
    let bitID = bit % 30
    
    return (this.bitmap[index] & (1 << bitID)) != 0
}


this.setBit = function(bit)
{
    let index = Math.floor(bit / 30)
    let bitID = bit % 30
    
    this.bitmap[index] |= (1 << bitID)
}


this.clearBit = function(bit)
{
    let index = Math.floor(bit / 30)
    let bitID = bit % 30
    
    this.bitmap[index] &= ~(1 << bitID)
}


this.saveBits = function()
{
    for (let i = 0; i < 8; i++)
    {
        let key = "myMisson_bitmap_" + galaxyNumber + "_" + i
        missionVariables[key] = this.bitmap[i]
    }
}


this.loadBits = function()
{
    for (let i = 0; i < 8; i++)
    {
        let key = "myMisson_bitmap_" + galaxyNumber + "_" + i
        this.bitmap[i] = missionVariables[key]
    }
}


this.reset = function()
{
    this.loadBits()
}


this.willEnterWitchSpace = function(cause)
{
    // Hmm, this is silly. There should be a "playerEnteredNewGalaxy" message.
    if (cause == "galactic jump")
    {
        this.loadBits()
    }
}


this.didExitWitchSpace = function()
{
    if (!this.isBitSet(system.ID))
    {
        this.setBit(system.ID)
        this.saveBits()
        player.credits += 250
        player.consoleMessage("Advert shown.")
    }
}
Things of note:
  • the % operator is the remainder operator. For instance, 5 % 2 is 1.
  • The << operator is the “left shift” operator. x << y returns x * 2 to the power of (y % 32). In effect, for smallish integers, it moves each bit of x y steps to the left.
  • The & operator is the bitwise and operator. x & y returns the bits that are set in both x and y. For instance, 100 (64 + 32 + 4) & 37 (32 + 4 + 1) is 36 (32 + 4).
  • The | operator is the bitwise or operator. x | y returns the bits that are set in either x or y. 100 | 37 = 101 (64 + 32 + 4 + 1). The form a |= b is shorthand for a = a | b.
  • loadBits() and saveBits() rely on automatic conversion of mission variables to and from numbers.
Edit: Hmm, I Just noticed that willEnterWitchSpace() is loading the bitmap for the wrong galaxy. The fix for this is to change loadBits() to take the galaxy to load as a parameter, and call loadBits((galaxyNumber + 1) % 8).

Posted: Thu Feb 14, 2008 12:17 pm
by Hoopy
I was sort of thinking that this would work as a good excuse for me to learn javascript (I develop server applications for websites so normally don't touch any of the client side javascript stuff) but now you've gone and ruined it by doing all the work for me! :lol:

Does this mean you think it's a reasonable idea for an OXP?

Posted: Thu Feb 14, 2008 12:21 pm
by JensAyton
Hoopy wrote:
I was sort of thinking that this would work as a good excuse for me to learn javascript (I develop server applications for websites so normally don't touch any of the client side javascript stuff) but now you've gone and ruined it by doing all the work for me! :lol:
Well, ignore the spoiler and just read the bits at the end. ;-)

Oh, I forgot to describe the ~ operator, bitwise not. It inverts all the bits of an integer. Only, in JavaScript, it probably doesn’t. But it seems to do what I need. :-p
Does this mean you think it's a reasonable idea for an OXP?
I try not to pass judgement on OXPs.

Posted: Thu Feb 14, 2008 2:49 pm
by LittleBear
I think its a nice idea, but perhaps more than just going to the systems you might have to go to particular systems and show the adverts to particular ships. Then go somewhere else to get a new advert. On balancing I think giving out loads of cash is Ok as long as the player needs a respectable Elite rating to qualify. By the time someone is Dangerous (say) 5,000 C doesn't have the same value as it did when they were harmless. Random Hits will only allow you to earn a few hundred credits for a hit if your Average or below and the big payers (up to 9,000) require you to be Dangerous or higher.

Posted: Thu Feb 14, 2008 2:55 pm
by Disembodied
How about making it easier for new players to access delivery missions? A "Random Parcels" OXP? No huge cargo spaces required, no access to the kind of juicy high-end special deliveries that you have to work for, but a chance for players in small ships to make a few hundred or even a couple of thousand credits for a long delivery run? There could be lots of items which have little intrinsic value but which individual A wants to deliver to individual B several systems away. Birthday presents, heirlooms, pets, items of clothing, etc. which don't take up cargo space but which still offer a chance of making some money.

Posted: Thu Feb 14, 2008 3:08 pm
by Hoopy
I wanted something to help the player early on so I don't want it to only be open to people with more than 200 kills.

Disembodied's idea looks pretty good. Although I don't want to step on the toes of UPS too much. Maybe it could be an addition to UPS?

So maybe we make it a case of show this advert to these ships in this (nearby) system for 50 Cr at a time. 50 Cr bonus if you get all of them.

Hmm.. Perhaps it could be 25Cr in a Corporate state rising to 250Cr in an anarchy? That way you still get some benefit as a Harmless pilot but there's some progression in there that doesn't exclude anybody who wants to risk jumping to some anarchy to try and make a quick buck.

Re: Advertising OXP

Posted: Thu Feb 14, 2008 5:29 pm
by JensAyton
Ahruman wrote:

Code: Select all

    // Hmm, this is silly. There should be a "playerEnteredNewGalaxy" message.
Now implemented as playerEnteredNewGalaxy(newGalaxyNumber).