Challenges

View previous topic View next topic Go down

Challenges

Post by JHaskly on Fri Aug 13, 2010 6:52 am

Having noticed that the forum had no challenges section, here it is.

So, the problem that hit our old forum was an absense of two things: challenges, and admins.
We now have admins, but we need challenges. And for challenges we need ideas.

So let's here them!

I'm thinking that we should have at least one challenge open at a time, perhaps one based upon Lua and scripting prowess, with a long time limit, and one based on building prowess and ingenuity, with maybe a shorter time limit, to keep something fresh around.

So, let's discuss - once we've got a good idea, one of the admins will open up a challenge.

Note: If you have a challenge for a specific challenge for a specific someone, go ahead and post it in the user challenges section.


Last edited by JHaskly on Thu Aug 19, 2010 12:55 am; edited 1 time in total

_________________
Previously (and currently) known as Juz.

Please do not write "LUA", beause it's "Lua". It's Moon in Portuguese, not a Limited User Account, Last Universal Ancestor, or the Lukla Airport in Nepal.

JHaskly
Admin

Posts : 235
Join date : 2010-07-16
Age : 21
Location : Brisbane

View user profile

Back to top Go down

Re: Challenges

Post by Point.Blank on Fri Aug 13, 2010 9:04 am

How about a sniper turret contest? Whoever can make the most accurate turret at the farthest range wins. Score is determined like this:
Code:
1) The target is a standard Bulls-eye with 3 rings around the bulls-eye (total width of target is 7 chips), and a moving base to increase/decrease distance. the target also has a braking mechanism to lock in the distance, and independent-origination chips for accurate score keeping.
2) The sniper turret is limited to one arm chip only: you may need to use a recoil jet if necessary. The arm must be directly attached to the core (i.e. the arm chip directly originates from the core, no chips between.)
3) Score is calculated as follows:
Bulls eye: 10 pts
1st ring: 8 pts
2nd ring: 5 pts
3rd ring: 2 pts
Miss: 0 pts
Take the point value of the hit, and multiply it by the distance fired from.
three (3) chances: the marksman chooses the distance he wants to try firing at.
add the results from the three tries and that is the final score.
I suppose this'd go under the Lua/Script category, since you can only be so accurate without using Lua/Script.
Then again, I suppose only very few members can use either, let alone effectively.

avatar
Point.Blank
Car
Car

Posts : 24
Join date : 2010-08-11
Age : 23
Location : Ontario, Canada

View user profile

Back to top Go down

Re: Challenges

Post by JHaskly on Fri Aug 13, 2010 8:19 pm

Sounds great! I have a (possible) adjustment though.
I don't think the arm chip should have to be directly connected to the core, because that can make aiming downright impossible.

What does everyone else think?

_________________
Previously (and currently) known as Juz.

Please do not write "LUA", beause it's "Lua". It's Moon in Portuguese, not a Limited User Account, Last Universal Ancestor, or the Lukla Airport in Nepal.

JHaskly
Admin

Posts : 235
Join date : 2010-07-16
Age : 21
Location : Brisbane

View user profile

Back to top Go down

Re: Challenges

Post by bwansy on Fri Aug 13, 2010 8:39 pm

Making an accurate turret is not hard at all, you just have to make it very light.
As for gun recoil, I don't think anyone would have to worry about it, since the goal is about hitting target rather than destroying it, the gun option can be very low. Of course scripting is needed to make it a semi-automatic gun, otherwise you'd get a machine gun instead of a sniper rifle.
As for the target, I have doubts on the design of it, because bullets are known to pass through it occasionally.
But overall, it would be a good challenge for players of all levels.

_________________
A.K.A. Bernard

bwansy
Admin

Posts : 170
Join date : 2010-07-15

View user profile http://rigidchips.forum-motion.com

Back to top Go down

Re: Challenges

Post by madbob2 on Fri Aug 13, 2010 10:34 pm

Maybe you could layer 2 or 3 chips so that it will be sure to hit?
Just an idea, and yes Challenges are nice
avatar
madbob2
Tank
Tank

Posts : 87
Join date : 2010-07-16
Age : 20
Location : Orz Lake.x

View user profile

Back to top Go down

Re: Challenges

Post by Point.Blank on Wed Aug 18, 2010 9:31 pm

Does anyone remember Bwansy's Top down shooter pack? maybe we should each make our own custom TDS fighters, and duke it out. I can't imagine it'd be very fair if you have gatling gun tech, but fuel efficiency could be turned off to compensate, and a maximum weight limit be imposed. Just a thought, since I decided to work on my own for no apparent reason, and to learn a bit of Lua.
avatar
Point.Blank
Car
Car

Posts : 24
Join date : 2010-08-11
Age : 23
Location : Ontario, Canada

View user profile

Back to top Go down

Re: Challenges

Post by JHaskly on Thu Aug 19, 2010 1:04 am

I remember it... I think.

It's a good idea, what does everyone else think?

_________________
Previously (and currently) known as Juz.

Please do not write "LUA", beause it's "Lua". It's Moon in Portuguese, not a Limited User Account, Last Universal Ancestor, or the Lukla Airport in Nepal.

JHaskly
Admin

Posts : 235
Join date : 2010-07-16
Age : 21
Location : Brisbane

View user profile

Back to top Go down

Re: Challenges

Post by Sean Mirrsen on Thu Aug 19, 2010 5:43 am

I don't remember, but it sounds fun.

You could have generic buildoffs, with specific themes and limits. Kinda like Scrapheap Challenge, but with chips. Smile

Sean Mirrsen
Cube
Cube

Posts : 4
Join date : 2010-08-19

View user profile

Back to top Go down

Re: Challenges

Post by Point.Blank on Thu Aug 19, 2010 6:41 am

For those who don't remember, here it is:
TDS Base:

Code:
// [RCD]
Val
{
   XJETPWR(default=0, min=-999999999, max=999999999, disp=0)
   YJETPWRB(default=0, min=-999999999, max=999999999, disp=0)
   YJETPWRF(default=0, min=-999999999, max=999999999, disp=0)
   YJETPWRL(default=0, min=-999999999, max=999999999, disp=0)
   YJETPWRR(default=0, min=-999999999, max=999999999, disp=0)
   ZJETPWRL(default=0, min=-999999999, max=999999999, disp=0)
   ZJETPWRR(default=0, min=-999999999, max=999999999, disp=0)
}
Key
{
}
Body
{
   Core(name=BODY) {
      N:Jet(power=YJETPWRF) {
         S:TrimF(angle=-90, option=1) {
            N:Jet(angle=180, power=XJETPWR) { }
         }
      }
      E:Jet(power=YJETPWRR) { }
      S:Jet(power=YJETPWRB) { }
      W:Jet(power=YJETPWRL) { }
      W:TrimF(angle=-90, option=1) {
         E:Jet(angle=180, power=ZJETPWRL) { }
      }
      E:TrimF(angle=90, option=1) {
         W:Jet(angle=180, power=ZJETPWRR) { }
      }
   }
}
Lua
{require("Bernard/Aero.lua")


function init()
   clist = {}
   for i = 0,_CHIPS()-1 do
      table.insert(clist,i)
   end
   
   mouseflag = 1
   ctrlmode = 0

   hoverht = 1.5
end
function OnInit()
   init()
end
function OnReset()
   init()
end

function inputctrl()
   mouseflag = switch(mouseflag,14)
   ctrlmode = switch(ctrlmode,16)
   if mouseflag > 0 then
      scrx = _WIDTH()
      scry = _HEIGHT()
      mx = (1-(_MX()/(scrx))*2)*(scrx/scry)
      my = (1-(_MY()/(scry))*2)
   else
      mx,my = 0,0
   end
   headtgt = atan2(-mx,my)
   inpws = _KEY(15)-_KEY(8)
   inpad = _KEY(7)-_KEY(9)
   temp = len2(inpws,inpad)
   if temp > 0 then
      inpws = inpws/temp
      inpad = inpad/temp
   end
end

function getstate()
   st = getstatefull(BODY,clist,st)
   st.ex,st.ey,st.ez = vtr3.euler(BODY)
   wt = st.m*9.81
end

function hover()
   dh = getht(BODY)-hoverht
   
   thry = 1-dh*1-st.iv.y*0.4
   
   if ctrlmode == 0 then
      itx = -inpad*15+st.iv.x*0.5
      itz = inpws*15+st.iv.z*0.5
      sey = sin(st.ey)
      cey = cos(st.ey)
      thrx = -itx*cey+itz*sey
      thrz = itx*sey+itz*cey
   elseif ctrlmode == 1 then
      thrx = inpad*15-st.v.x*0.5
      thrz = inpws*15+st.v.z*0.5
   end
   
   pitcht = thry*st.bcg.z/0.6+st.ex*2+st.w.x*0.3
   rollt = -thry*st.bcg.x/0.6+st.ez*1.5+st.w.z*0.2
   yawt = -thrz*st.bcg.x/0.6-thrx*st.bcg.z/0.6+limit(normalrad(st.ey-headtgt)*25,-40,40)*mouseflag+st.w.y*1.4
end

function actuate()
   XJETPWR = 6*wt*thrx
   
   YJETPWRL = 6*wt*(thry/4-rollt/2)
   YJETPWRR = 6*wt*(thry/4+rollt/2)
   YJETPWRF = 6*wt*(thry/4-pitcht/2)
   YJETPWRB = 6*wt*(thry/4+pitcht/2)
   
   ZJETPWRL = 6*wt*(thrz/2-yawt/2)
   ZJETPWRR = 6*wt*(thrz/2+yawt/2)
end

function OnFrame()
   inputctrl()
   getstate()
   hover()
   actuate()
   laser(BODY,rgb(255,0,0),-3)
   out(0,"Top-Down Shooter Base")
   out(1,"[Q] Toggle mouse")
   if ctrlmode == 0 then
      out(2,"[E] Control mode (Absolute)")
   elseif ctrlmode == 1 then
      out(2,"[E] Control mode (Relative)")
   end
   out(3,"[W/S/A/D] Move")
   out(4,"Mouse: aim; Left button: shoot")
end}
TDS Mono (one gun):
Code:
// [RCD]
Val
{
   GUNANG1(default=0, min=-400, max=400, disp=0)
   TRIG1(default=0, max=999999999, step=999999999, disp=0)
   XJETPWR(default=0, min=-999999999, max=999999999, disp=0)
   YJETPWRB(default=0, min=-999999999, max=999999999, disp=0)
   YJETPWRF(default=0, min=-999999999, max=999999999, disp=0)
   YJETPWRL(default=0, min=-999999999, max=999999999, disp=0)
   YJETPWRR(default=0, min=-999999999, max=999999999, disp=0)
   ZJETPWRL(default=0, min=-999999999, max=999999999, disp=0)
   ZJETPWRR(default=0, min=-999999999, max=999999999, disp=0)
}
Key
{
}
Body
{
   Core(name=BODY) {
      N:Jet(power=YJETPWRF) {
         N:Arm(angle=GUNANG1, power=TRIG1, option=400000, name=GUN1) { }
         S:TrimF(angle=-90, option=1) {
            N:Jet(angle=180, power=XJETPWR) { }
         }
      }
      E:Jet(power=YJETPWRR) { }
      S:Jet(power=YJETPWRB) { }
      W:Jet(power=YJETPWRL) { }
      W:TrimF(angle=-90, option=1) {
         E:Jet(angle=180, power=ZJETPWRL) { }
      }
      E:TrimF(angle=90, option=1) {
         W:Jet(angle=180, power=ZJETPWRR) { }
      }
   }
}
Lua
{require("Bernard/Aero.lua")


function init()
   clist = {}
   for i = 0,_CHIPS()-1 do
      table.insert(clist,i)
   end
   
   mouseflag = 1
   ctrlmode = 0

   hoverht = 1.5

   gunop = 400000
end
function OnInit()
   init()
end
function OnReset()
   init()
end

function inputctrl()
   mouseflag = switch(mouseflag,14)
   ctrlmode = switch(ctrlmode,16)
   if mouseflag > 0 then
      scrx = _WIDTH()
      scry = _HEIGHT()
      mx = (1-(_MX()/(scrx))*2)*(scrx/scry)
      my = (1-(_MY()/(scry))*2)
   else
      mx,my = 0,0
   end
   headtgt = atan2(-mx,my)
   inpws = _KEY(15)-_KEY(8)
   inpad = _KEY(7)-_KEY(9)
   temp = len2(inpws,inpad)
   if temp > 0 then
      inpws = inpws/temp
      inpad = inpad/temp
   end
end

function getstate()
   st = getstatefull(BODY,clist,st)
   st.ex,st.ey,st.ez = vtr3.euler(BODY)
   wt = st.m*9.81
end

function hover()
   dh = getht(BODY)-hoverht
   
   thry = 1-dh*1-st.iv.y*0.4
   
   if ctrlmode == 0 then
      itx = -inpad*15+st.iv.x*0.5
      itz = inpws*15+st.iv.z*0.5
      sey = sin(st.ey)
      cey = cos(st.ey)
      thrx = -itx*cey+itz*sey
      thrz = itx*sey+itz*cey
   elseif ctrlmode == 1 then
      thrx = inpad*15-st.v.x*0.5
      thrz = inpws*15+st.v.z*0.5
   end
   
   pitcht = thry*st.bcg.z/0.6+st.ex*2+st.w.x*0.3
   rollt = -thry*st.bcg.x/0.6+st.ez*1.5+st.w.z*0.2
   yawt = -thrz*st.bcg.x/0.6-thrx*st.bcg.z/0.6+limit(normalrad(st.ey-headtgt)*25,-40,40)*mouseflag+st.w.y*1.95
end

function fire()
   gunjet = 0
   trig = _ML()*mouseflag
   if trig > 0 and _E(GUN1) == gunop and _TICKS() > 150 then
      TRIG1 = 999999999
      gunjet = gunop
   end
end

function actuate()
   GUNANG1 = -asind(_ZY(GUN1-1))
   
   XJETPWR = 6*wt*thrx
   
   YJETPWRL = 6*wt*(thry/4-rollt/2)
   YJETPWRR = 6*wt*(thry/4+rollt/2)
   YJETPWRF = 6*wt*(thry/4-pitcht/2)
   YJETPWRB = 6*wt*(thry/4+pitcht/2)
   
   ZJETPWRL = 6*wt*(thrz/2-yawt/2)+gunjet/2
   ZJETPWRR = 6*wt*(thrz/2+yawt/2)+gunjet/2
end

function OnFrame()
   inputctrl()
   getstate()
   hover()
   fire()
   actuate()
   laser(BODY,rgb(255,0,0),-3)
   out(0,"Top-Down Shooter Base")
   out(1,"[Q] Toggle mouse")
   if ctrlmode == 0 then
      out(2,"[E] Control mode (Absolute)")
   elseif ctrlmode == 1 then
      out(2,"[E] Control mode (Relative)")
   end
   out(3,"[W/S/A/D] Move")
   out(4,"Mouse: aim; Left button: shoot")
end}
TDS Duo (two guns):
Code:
// [RCD]
Val
{
   GUNANG1(default=0, min=-400, max=400, disp=0)
   GUNANG2(default=0, min=-400, max=400, disp=0)
   TRIG1(default=0, max=999999999, step=999999999, disp=0)
   TRIG2(default=0, max=999999999, step=999999999, disp=0)
   XJETPWR(default=0, min=-999999999, max=999999999, disp=0)
   YJETPWRB(default=0, min=-999999999, max=999999999, disp=0)
   YJETPWRF(default=0, min=-999999999, max=999999999, disp=0)
   YJETPWRL(default=0, min=-999999999, max=999999999, disp=0)
   YJETPWRR(default=0, min=-999999999, max=999999999, disp=0)
   ZJETPWRL(default=0, min=-999999999, max=999999999, disp=0)
   ZJETPWRR(default=0, min=-999999999, max=999999999, disp=0)
}
Key
{
}
Body
{
   Core(name=BODY) {
      N:Jet(power=YJETPWRF) {
         S:TrimF(angle=-90, option=1) {
            N:Jet(angle=180, power=XJETPWR) { }
         }
      }
      E:Jet(power=YJETPWRR) {
         N:Arm(angle=GUNANG2, power=TRIG2, option=400000, name=GUN2) { }
      }
      S:Jet(power=YJETPWRB) { }
      W:Jet(power=YJETPWRL) {
         N:Arm(angle=GUNANG1, power=TRIG1, option=400000, name=GUN1) { }
      }
      W:TrimF(angle=-90, option=1) {
         E:Jet(angle=180, power=ZJETPWRL) { }
      }
      E:TrimF(angle=90, option=1) {
         W:Jet(angle=180, power=ZJETPWRR) { }
      }
   }
}
Lua
{require("Bernard/Aero.lua")


function init()
   clist = {}
   for i = 0,_CHIPS()-1 do
      table.insert(clist,i)
   end
   
   mouseflag = 1
   ctrlmode = 0

   hoverht = 1.5

   gunop = 400000
   
   guncharge = {0,0}
end
function OnInit()
   init()
end
function OnReset()
   init()
end

function inputctrl()
   mouseflag = switch(mouseflag,14)
   ctrlmode = switch(ctrlmode,16)
   if mouseflag > 0 then
      scrx = _WIDTH()
      scry = _HEIGHT()
      mx = (1-(_MX()/(scrx))*2)*(scrx/scry)
      my = (1-(_MY()/(scry))*2)
   else
      mx,my = 0,0
   end
   headtgt = atan2(-mx,my)
   inpws = _KEY(15)-_KEY(8)
   inpad = _KEY(7)-_KEY(9)
   temp = len2(inpws,inpad)
   if temp > 0 then
      inpws = inpws/temp
      inpad = inpad/temp
   end
end

function getstate()
   st = getstatefull(BODY,clist,st)
   st.ex,st.ey,st.ez = vtr3.euler(BODY)
   wt = st.m*9.81
end

function hover()
   dh = getht(BODY)-hoverht
   
   thry = 1-dh*1-st.iv.y*0.4
   
   if ctrlmode == 0 then
      itx = -inpad*10+st.iv.x*0.8
      itz = inpws*10+st.iv.z*0.8
      sey = sin(st.ey)
      cey = cos(st.ey)
      thrx = -itx*cey+itz*sey
      thrz = itx*sey+itz*cey
   elseif ctrlmode == 1 then
      thrx = inpad*10-st.v.x*0.8
      thrz = inpws*10+st.v.z*0.8
   end
   
   pitcht = thry*st.bcg.z/0.6+st.ex*2+st.w.x*0.3
   rollt = -thry*st.bcg.x/0.6+st.ez*1.5+st.w.z*0.2
   yawt = -thrz*st.bcg.x/0.6-thrx*st.bcg.z/0.6+limit(normalrad(st.ey-headtgt)*30,-40,40)*mouseflag+st.w.y*1.85
end

function fire()
   gunjet = {0,0}
   trig1 = _ML()*mouseflag
   trig2 = _MR()*mouseflag
   
   for i = 1,2 do
      guncharge[i] = _E(_G["GUN"..i])/gunop
      if _G["trig"..i] > 0 and guncharge[i] == 1 and _TICKS() > 150 then
         _G["TRIG"..i] = 999999999
         gunjet[i] = gunop
      end
   end
   
   if mouseflag > 0 then
      for i =1,2 do
         if guncharge[i] == 1 then
            col = rgb(255,0,0)
         else
            col = rgb(255*guncharge[i],255*guncharge[i],0)
         end
         laser(_G["GUN"..i],col,-3)
      end
   end
end

function actuate()
   for i = 1,2 do
      _G["GUNANG"..i] = -asind(_ZY(_G["GUN"..i]-1))
   end
   
   XJETPWR = 6*wt*thrx
   
   YJETPWRL = 6*wt*(thry/4-rollt/2)
   YJETPWRR = 6*wt*(thry/4+rollt/2)
   YJETPWRF = 6*wt*(thry/4-pitcht/2)
   YJETPWRB = 6*wt*(thry/4+pitcht/2)
   
   ZJETPWRL = 6*wt*(thrz/2-yawt/2)+gunjet[1]
   ZJETPWRR = 6*wt*(thrz/2+yawt/2)+gunjet[2]
end

function OnFrame()
   inputctrl()
   getstate()
   hover()
   fire()
   actuate()
   out(0,"Top-Down Shooter Base")
   out(1,"[Q] Toggle mouse")
   if ctrlmode == 0 then
      out(2,"[E] Control mode (Absolute)")
   elseif ctrlmode == 1 then
      out(2,"[E] Control mode (Relative)")
   end
   out(3,"[W/S/A/D] Move")
   out(4,"Mouse: aim; Left/right button: shoot")
end}
Requires Bwansy's Lua library, which can be found in the Orz uploader... somewhere.
avatar
Point.Blank
Car
Car

Posts : 24
Join date : 2010-08-11
Age : 23
Location : Ontario, Canada

View user profile

Back to top Go down

Re: Challenges

Post by T-Bouw on Fri Aug 20, 2010 5:55 am

Oh, and you could post the dates of the challenges in the calendar. That way you can easily keep an eye on the time left to create something.

Last I checked, it was awfully empty.
avatar
T-Bouw
Car
Car

Posts : 22
Join date : 2010-07-22
Age : 34
Location : The Netherlands

View user profile

Back to top Go down

Re: Challenges

Post by JHaskly on Fri Aug 20, 2010 6:00 pm

Good idea.

_________________
Previously (and currently) known as Juz.

Please do not write "LUA", beause it's "Lua". It's Moon in Portuguese, not a Limited User Account, Last Universal Ancestor, or the Lukla Airport in Nepal.

JHaskly
Admin

Posts : 235
Join date : 2010-07-16
Age : 21
Location : Brisbane

View user profile

Back to top Go down

Re: Challenges

Post by Sponsored content


Sponsored content


Back to top Go down

View previous topic View next topic Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum