Author Topic: My First Map- Trouble already!  (Read 5242 times)

0 Members and 1 Guest are viewing this topic.

Lost Seedling

  • Shrub
  • ***
  • Thank You
  • -Given: 3
  • -Receive: 3
  • Posts: 148
My First Map- Trouble already!
« on: June 26, 2011, 04:15:09 AM »
Hello Everyone,
I've noticed that despite the enormous amount of generous help and knowledge available here, many beginning map-makers seem to just disappear- never to be heard from again. Are they intimidated by the incredible maps already made, or do they give up faced with the daunting learning curve? I've decided to give it a try, but have already come to an impasse with my very first attempt to create a map. My problem right now is that I can't seem to control the "send distance" of my asteroids. Some work, and some don't. I can't see a pattern and despite 3 full days of reading, reading, and tweaking variables, and more reading, I've had no luck in getting it to work. Maybe the learning curve for absolute neophytes is just too steep. Can someone take a look at the code and explain what the problem is? Map is attached.

Thank you!

Aino

  • Ent
  • ******
  • Thank You
  • -Given: 1
  • -Receive: 20
  • Posts: 1,483
  • They'll eat you next!
  • Eufloria: Yes
Re: My First Map- Trouble already!
« Reply #1 on: June 26, 2011, 04:26:51 AM »
Just ask us :)

The sending distances is easier controlled in LevelLogic(), meaning that you can set them, and they stay. As far as I'm conserned... If you already have them there: we gotta figure out how to solve the problem :)

Welcome to the foum, and welcome as a map maker :D

Edit: looked at the map, how are the asteroids supposed to get contact?

Lost Seedling

  • Shrub
  • ***
  • Thank You
  • -Given: 3
  • -Receive: 3
  • Posts: 148
Re: My First Map- Trouble already!
« Reply #2 on: June 26, 2011, 05:01:59 AM »
Contact? The middle asteroid is a dead-end asteroid purposely. The inner-most asteroids at the 4 inner-corners should make contact with the center asteroid. All the other outer asteroids should only make contact with their neighbors. For some reason some of the assigned send-distance values are not working properly. Right now at this stage I'm just trying to learn how to control some of these basic parameters. If you run the map and check the send-distances, you can see most are not consistent with the assigned values. I'd like to figure out why this is happening.

annikk.exe

  • Achiever
  • Ent
  • ****
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 1,794
Re: My First Map- Trouble already!
« Reply #3 on: June 26, 2011, 05:59:47 AM »
The reason why that happens is that once all the commands in function LevelSetup() have been run, the game auto-adjusts all the send distances of the asteroids to make sure all asteroids are reachable by each other.  This is a "feature".  :>

If you want to bypass this behaviour, declare your send distances in function LevelLogic() instead.  Then the send distances will be set after the auto-adjusting has already taken place.  :>


Also welcome aboard!!  It's so awesome when a new person starts.  :>  Yes I have noticed about the fact that people give up too, I had figured that was largely because there was only a beginners guide and people were getting a certain way in but where unable to make the leap to coding advanced behaviours, in the way that Aino, Pilchard and myself have been able to.  So now there is an intermediate guide... hopefully that will redress the situation a bit.. but new coders don't come along all that often, so I guess we will have to see.  :>

Great to have you, anyway.  :>  Please let us know if you need any help!

Pilchard123

  • Tester
  • Old Oak
  • ****
  • Thank You
  • -Given: 0
  • -Receive: 17
  • Posts: 899
  • Eufloria: Yes
Re: My First Map- Trouble already!
« Reply #4 on: June 26, 2011, 11:29:19 AM »
To be honest, I can't really say much other than what others have said before me - set the send distances in LevelLogic(). Also, do you realise that your level will not be winnable as you have not written any win conditions? Still, nice to see someone new to coding here, hope you have a good time. If you want to make very simple maps (like just to see if they work or look right) there are a few basic level creators around. DAFT and EUCLiD, are a couple; I'm fairly sure there are others.

Annikk, do you ever sleep? Or are you in Dubai, or wherever you had to go before? I wouldn't say that I've made 'advanced' behaiviours, just added a few little glittery bits to it. Nothing like you or Aino, though thanks all the same.

Aino

  • Ent
  • ******
  • Thank You
  • -Given: 1
  • -Receive: 20
  • Posts: 1,483
  • They'll eat you next!
  • Eufloria: Yes
Re: My First Map- Trouble already!
« Reply #5 on: June 26, 2011, 11:45:15 AM »
The map looks amazing(I didn't get to see it yesterday)...

It kind of reminds me of a Quantum map, just saying :P

annikk.exe

  • Achiever
  • Ent
  • ****
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 1,794
Re: My First Map- Trouble already!
« Reply #6 on: June 26, 2011, 07:33:11 PM »
I never sleep.  :P

Aino

  • Ent
  • ******
  • Thank You
  • -Given: 1
  • -Receive: 20
  • Posts: 1,483
  • They'll eat you next!
  • Eufloria: Yes
Re: My First Map- Trouble already!
« Reply #7 on: June 26, 2011, 07:37:20 PM »
I never sleep.  :P

Whaaaat?

Guys, call Area 51... we got an alien here :o

Aino

  • Ent
  • ******
  • Thank You
  • -Given: 1
  • -Receive: 20
  • Posts: 1,483
  • They'll eat you next!
  • Eufloria: Yes
Re: My First Map- Trouble already!
« Reply #8 on: June 26, 2011, 10:35:09 PM »
How is the map doing?

Lost Seedling

  • Shrub
  • ***
  • Thank You
  • -Given: 3
  • -Receive: 3
  • Posts: 148
Re: My First Map- Trouble already!
« Reply #9 on: June 27, 2011, 01:33:27 AM »
Not well, but I'm not giving up! I tried declaring (per Annikk's advice) the send distances in the function LevelLogic() section using the same syntax I used in the function LevelSetup() without success. Thinking that they were not being overwritten as I expected them to be, I erased them in the Setup section and only declared them in the LevelLogic- still no luck. Was I using the wrong method of identifying individual asteroids? I wasn't sure if they were even being read in that section so I created a message box there which worked fine, so I know something was wrong with the way I was declaring the send distance values. So I've spent quite a bit of time examining and printing out other user-created maps to try to see how it is done. Unfortunately, I haven't found one that used the method I'm trying to use (giving them unique names initially for later reference) while then declaring senddistance in the LevelLogic() area. So then I tried adding seedlings to a an asteroid using the "GetAsteroid()" function. This worked but put them on an unexpected asteroid. After further research, I found out that the asteroids aren't counted from 1, but from "0". Well, that explained that! So I tried to use that function to change the senddistance, but that didn't work. I don't even know if those two functions are compatible with each other, but thought I'd give it a try.

Getting frustrated, I decided to try to play around with other functions as a way of getting more familiar with the arcane language of Lua, and computer and mathematical language generally - "bool", "nil", "void", "structure", "agents", "float", etc. I find lots of functions with a series of variables but it takes time to find out what the variables stand for and what the range of each variable is. For instance, I see the the "Drawline" command and wonder if I can actually draw a line on the screen. Alex gives an example of the code in one of his posts, but did not provide information on what the variables stood for. I finally found a reference to the variables in the script command thread and inserted it into a map but saw nothing. After numerous attempts at "drawing" something on the screen and failing it just reinforces my realization of how deep my ignorance goes.

Anyway, none of my experimentation and playing around has gotten me any closer to solving this very early and no doubt simple problem of fixing my send distances. I am determined to figure these things out on my own as much as possible, and only use this forum's human resources as a last resort. I have so many ideas I'd like to implement and actually have a pretty good idea of how to do it, but just need to get up to speed on the language structure and syntax in order to make them happen. I look forward to the time when I can concentrate on tweaking AI behaviour and working out elegant mathematical solutions to my codes, but it is frustrating at this point as that is something that seems to be far in my future.

Attached is one of my attempts to declare my send distances in function LevelLogic(). I'm doing something wrong but can'figure it out on my own as of yet.  If anyone can give me further insight maybe I can move on to the next of my 10,000 questions.     



Aino

  • Ent
  • ******
  • Thank You
  • -Given: 1
  • -Receive: 20
  • Posts: 1,483
  • They'll eat you next!
  • Eufloria: Yes
Re: My First Map- Trouble already!
« Reply #10 on: June 27, 2011, 01:48:23 AM »
I gotta ask, do you check the console for bugs?

Because there is an error occouring, it says that a2 is nil...

Theese errors are the most irritating this ever, and I'm sorry for you spending so long time trying to get this right...

I fixed the aa2 to a2 and it worked jsut fine for me :)

BTW: leveldraw() is written LevelDraw() else it won't work, lua is case snsitive :P

code:
Code: [Select]
-- RoidForge-Generated Level - v1.01

function LevelSetup()


Globals.G.Asteroids=(25)
Globals.Asteroids.MinSendDistance=350
Globals.Asteroids.MaxSendDistance=9000
Globals.Mines.MinSpeed=200
Globals.Mines.MaxSpeed=400
Globals.G.EnemyFactionsMin=(0)
Globals.G.EnemyFactionsMax=(1)
Globals.G.GreysProbability=0.1
Globals.G.StartingSeedlings=30
Globals.G.StartingSeedlingsPlayer=500
Globals.AI.GraceTimer=(10)
Globals.Structures.FlowerProbability=(0.05)
Globals.Asteroids.MinCoreHealth=150
Globals.Asteroids.MaxCoreHealth=500
Globals.Asteroids.SpawnCap=100
Globals.Asteroids.SeedlingCap=5000
Globals.Agents.MaxSpeed=1000
Globals.Agents.MinSpeed=400
Globals.Mines.MinHealth=75
Globals.Mines.MaxHealth=200
Globals.Structures.LevelTime1=20
Globals.Structures.LevelTime2=30
Globals.Structures.LevelTime3=35
Globals.Structures.LevelTime4=40
Globals.Mines.NumberOfLasers=5

SetBackdropColour(0,0,0)


-- Asteroid z0
z0 = AddAsteroidWithAttribs(0, 0, 0.5,0.5,0.5)
z0.Moveable = false
z0.radius = 100
--z0.SendDistance = 400
z0.Name = "Z0"

-- Asteroid a1
a1 = AddAsteroidWithAttribs(-3000, -3000, 0.5,0.5,0.5)
a1.Owner = 2
a1:addseedlings(300)
a1.Moveable = false
a1.radius = 150
a1.SendDistance = 350
a1.Name = "A1"
--a1:Reveal(1)

-- Asteroid a2
a2 = AddAsteroidWithAttribs(-4000, -4000, 0.5,0.5,0.5)
a2.Moveable = false
a2.radius = 100
--a2.SendDistance = 400
a2.Name = "A2"

-- Asteroid a3
a3 = AddAsteroidWithAttribs(-2000, -4000, 0.5,0.5,0.5)
a3.Moveable = false
a3.radius = 100
--a3.SendDistance = 400
a3.Name = "A3"

-- Asteroid a4
a4 = AddAsteroidWithAttribs(-4000, -2000, 0.5,0.5,0.5)
a4.Moveable = false
a4.radius = 100
--a4.SendDistance = 400
a4.Name = "A4"

-- Asteroid a5
a5 = AddAsteroidWithAttribs(-2000, -2000, 0.5,0.5,0.5)
a5.Moveable = false
a5.radius = 100
--a5.SendDistance = 1400
a5.Name = "A5"

-- Asteroid b1
b1 = AddAsteroidWithAttribs(3000, -3000, 0.5,0.5,0.5)
b1.Moveable = false
b1.radius = 150
--b1.SendDistance = 350
b1.Name = "B1"
--b1:Reveal(1)

-- Asteroid b2
b2 = AddAsteroidWithAttribs(2000, -4000, 0.5,0.5,0.5)
b2.Moveable = false
b2.radius = 100
--b2.SendDistance = 400
b2.Name = "B2"

-- Asteroid b3
b3 = AddAsteroidWithAttribs(4000, -4000, 0.5,0.5,0.5)
--a:addseedlings(300)
b3.Moveable = false
b3.radius = 100
--b3.SendDistance = 400
b3.Name = "B3"

-- Asteroid b4
b4 = AddAsteroidWithAttribs(2000, -2000, 0.5,0.5,0.5)
b4.Moveable = false
b4.radius = 100
--b4.SendDistance = 1400
b4.Name = "B4"

-- Asteroid b5
b5 = AddAsteroidWithAttribs(4000, -2000, 0.5,0.5,0.5)
b5.Moveable = false
b5.radius = 100
--b5.SendDistance = 400
b5.Name = "B5"

-- Asteroid c1
c1 = AddAsteroidWithAttribs(-3000, 3000, 0.5,0.5,0.5)
c1.Moveable = false
c1.radius = 150
--c1.SendDistance = 350
c1.Name = "C1"
--c1:Reveal(1)

-- Asteroid c2
c2 = AddAsteroidWithAttribs(-4000, 2000, 0.5,0.5,0.5)
c2.Moveable = false
c2.radius = 100
--c2.SendDistance = 400
c2.Name = "C2"

-- Asteroid c3
c3 = AddAsteroidWithAttribs(-2000, 2000, 0.5,0.5,0.5)
c3.Moveable = false
c3.radius = 100
--c3.SendDistance = 1400
c3.Name = "C3"

-- Asteroid c4
c4 = AddAsteroidWithAttribs(-4000, 4000, 0.5,0.5,0.5)
c4.Moveable = false
c4.radius = 100
--c4.SendDistance = 400
c4.Name = "C4"

-- Asteroid c5
c5 = AddAsteroidWithAttribs(-2000, 4000, 0.5,0.5,0.5)
c5.Moveable = false
c5.radius = 100
--c5.SendDistance = 1400
c5.Name = "C5"

-- Asteroid d1
d1 = AddAsteroidWithAttribs(3000, 3000, 0.5,0.5,0.5)
d1.Moveable = false
d1.radius = 150
--d1.SendDistance = 350
d1.Name = "D1"
--d1:Reveal(1)

-- Asteroid d2
d2 = AddAsteroidWithAttribs(2000, 2000, 0.5,0.5,0.5)
d2.Moveable = false
d2.radius = 100
--d2.SendDistance = 1400
d2.Name = "D2"

-- Asteroid d3
d3 = AddAsteroidWithAttribs(4000, 2000, 0.5,0.5,0.5)
d3.Moveable = false
d3.radius = 100
--d3.SendDistance = 400
d3.Name = "D3"

-- Asteroid d4
d4 = AddAsteroidWithAttribs(2000, 4000, 0.5,0.5,0.5)
d4.Moveable = false
d4.radius = 100
--d4.SendDistance = 400
d4.Name = "D4"

-- Asteroid d5
d5 = AddAsteroidWithAttribs(4000, 4000, 0.5,0.5,0.5)
d5.Moveable = false
d5.radius = 100
--d5.SendDistance = 400
d5.Name = "D5"

-- Asteroid 21
--a = AddAsteroidWithAttribs(4000, -2000, 0.5,0.5,0.5)
--a.Moveable = false
--a.radius = 200
--a.SendDistance = 800


-- Asteroid g1
g1 = AddAsteroidWithAttribs(0, 4000, 0.5,0.5,0.5)
g1.Moveable = false
g1.radius = 200
--g1.SendDistance = 800
g1.Name = "G1"

-- Asteroid 23
--a = AddAsteroidWithAttribs(0, 4000, 0.5,0.5,0.5)
--a.Moveable = false
--a.radius = 200
--a.SendDistance = 800

-- Asteroid e1
e1 = AddAsteroidWithAttribs(0, -4000, 0.5,0.5,0.5)
e1.Moveable = false
e1.radius = 200
--e1.SendDistance = 800
e1.Name = "E1"

-- Asteroid f1
f1 = AddAsteroidWithAttribs(-4000, 0, 0.5,0.5,0.5)
f1.Moveable = false
f1.radius = 200
--f1.SendDistance = 800
f1.Name = "F1"

-- Asteroid h1
h1 = AddAsteroidWithAttribs(4000, 0, 0.5,0.5,0.5)
h1.Moveable = false
h1.radius = 200
--h1.SendDistance = 800
h1.Name = "H1"

-- Asteroid x27 This asteroid is here just so I can see the whole map
x27 = AddAsteroidWithAttribs(2000, 0, 0.5,0.5,0.5)
x27.owner = 1
x27:addseedlings(600)
x27.Moveable = false
x27.radius = 200
x27.SendDistance = 8200
x27.Name = "X27"




end

function LevelLogic()


-- Am I referring to asteroids here or is this the wrong way to do it?
-- Are my global settings wrong? These commands worked in the first section.
z0.Senddistance = 400
a1.Senddistance = 350
a2.Senddistance = 400
a3.Senddistance = 400
a4.Senddistance = 400
a5.Senddistance = 1400
b1.Senddistance = 350
b2.Senddistance = 400
b3.Senddistance = 400
b4.Senddistance = 1400
b5.Senddistance = 400
c1.Senddistance = 350
c2.Senddistance = 400
c3.Senddistance = 400
c4.Senddistance = 400
c5.Senddistance = 1400
d1.Senddistance = 350
d2.Senddistance = 1400
d3.Senddistance = 400
d4.Senddistance = 400
d5.Senddistance = 400
e1.Senddistance = 800
f1.Senddistance = 800
g1.Senddistance = 800
h1.Senddistance = 800
x27.Senddistance = 8200


end

function leveldraw()


end
so you don't need to :D

Lost Seedling

  • Shrub
  • ***
  • Thank You
  • -Given: 3
  • -Receive: 3
  • Posts: 148
Re: My First Map- Trouble already!
« Reply #11 on: June 27, 2011, 06:09:27 AM »
I had no idea there WAS a console or how to activate it until I stumbled across a reference to it in one of Alex's posts from 2008 yesterday. Since I had no idea what I was really looking at I didn't play with it too much. At this stage, I'm not sure how useful it would be to me anyway.

Sorry about the aa2 vs a2 notation. I had changed that variable as an experiment in case "a2" was a reserved variable or something, just in case that was why it wasn't working. It didn't help, and I failed to change it back before you saw it.

Your confirmation that I was using the correct syntax all along opened my mind to something I suspected but did not pursue until now. When the game auto-adjusted the send-distances due to my desire to have one asteroid a "dead end" (as Annikk pointed out), it happened to adjust certain send-distances exactly as I visually intended, but others not. So when I looked at the map, it appeared some of my values were working. In actuality, they were twice what I was trying to input. An earlier version of my map was too small and compact, and I increased the size but failed to properly increase the send-distances by the correct ratio. So I was fooled into thinking my inputted values were what I wanted because the game was, by chance, making it appear most of my values were correct. So when you confirmed I was entering the correct syntax and the map still was not behaving correctly, I suspected what the problem was. By removing the "dead-end" asteroid from the map, I could see my initial values were indeed too small. I changed them and it is working perfectly now.


This brings up another question. Is it possible to run a map, and somehow, maybe by mouse action, see the numerical values associated with each asteroid in a display somewhere? If this were possible, I could have detected my problem immediately. It seems to me this would make troubleshooting and map-design much easier. Something I missed in Annikk's Roid Forge was a real-time readout of the asteroids' coordinates as they were being placed. Unless it already exists in some form, I was thinking at some point in the future of creating such a feature using your awesome text-drawing function (far, far in the future).

Thanks to you and Annik I can now move on to trying some "intermediate" functions. I'm sure I'll be back here soon.

Oh yeah, i'm aware of case-sensitivity, but not everyone uses it in their posts, so it gets confusing sometimes.

annikk.exe

  • Achiever
  • Ent
  • ****
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 1,794
Re: My First Map- Trouble already!
« Reply #12 on: June 27, 2011, 08:18:18 AM »
Quote
This brings up another question. Is it possible to run a map, and somehow, maybe by mouse action, see the numerical values associated with each asteroid in a display somewhere? If this were possible, I could have detected my problem immediately.

Sort of, yes.  :>  Enable developer mode in-game by pressing CTRL-D, then press F12 to open up the Asteroid Information View.  This shows you the coordinates and ID numbers of all the asteroids in play.

F4 is also very very useful, that lets you turn on vision of the other empires and allows you to zoom all the way out without having to explore everywhere first.  Very handy for developing levels.  :>
« Last Edit: June 27, 2011, 08:23:02 AM by annikk.exe »

annikk.exe

  • Achiever
  • Ent
  • ****
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 1,794
Re: My First Map- Trouble already!
« Reply #13 on: June 27, 2011, 08:33:17 AM »
Also, about the console.  When you're testing a level, it's always best to open the console and check if there is an error message there.
Sometimes an error message will get "stuck", so to test if there is a stuck message, try typing a full stop into the console and pressing enter.  If you only get an error message about the full stop, then there was no additional error message waiting.


To try to put your mind at rest about the send distance thing, here's some sample code showing how I would set the send distance of an asteroid in the situation you are facing.


Code: [Select]
function LevelSetup()
-- Bunch of Globals..

-- Declare Asteroids
MyAwesomeAsteroid = AddAsteroidWithAttribs(1000,1000,0.5,0.8,0.3)
MyAwesomeAsteroid.Radius = 300
MyAwesomeAsteroid.TreeCap = 3
MyAwesomeAsteroid.Owner = 1
MyAwesomeAsteroid:AddSeedlings(100)

end

function LevelLogic()

MyAwesomeAsteroid.SendDistance = 1000

end


Hope that makes sense.  :>

annikk.exe

  • Achiever
  • Ent
  • ****
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 1,794
Re: My First Map- Trouble already!
« Reply #14 on: June 27, 2011, 09:07:04 AM »
A few other mysteries you talked about that I can hopefully dispel:

1.  If you declare send distances in function LevelSetup(), and then declare them again in function LevelLogic(), the values in LevelLogic() will overwrite those in LevelSetup() the moment the game starts.


2.  You identify individual asteroids either with a variable, or with their ID.

For example, consider this code:


Code: [Select]
function LevelSetup()

-- Bunch of globals..

-- Asteroid #0
fluffy = AddAsteroidWithAttribs(250,-350,0.5,0.5,0.3)

-- Asteroid #1
battlefluffy = AddAsteroidWithAttribs(250,-350,0.5,0.5,0.3)


Now I can refer to the first asteroid as either "fluffy" or "GetAsteroid(0)", and I can refer to the second asteroid as either "battlefluffy" or "GetAsteroid(1)".

So for example, to continue from the above code, we could set the following send distances and radiuses:

Code: [Select]
function LevelSetup()

-- Bunch of globals..

-- Asteroid #0
fluffy = AddAsteroidWithAttribs(250,-350,0.5,0.5,0.3)
fluffy.SendDistance = 1200
GetAsteroid(0).radius = 300

-- Asteroid #1
battlefluffy = AddAsteroidWithAttribs(250,-350,0.5,0.5,0.3)
GetAsteroid(1).SendDistance = 1450
battlefluffy.radius = 375


You can mix and match variables and the GetAsteroid command in this way.  It's just two different methods of referring to an asteroid, and both are "compatible" with everything else.

As for the ID numbers, the order in which asteroids are created is what determines what their ID numbers shall be.  The first asteroid you create is asteroid ID 0, the second is ID 1, etc.




3.  Regarding the drawing of lines on the screen.  It's not obvious, because it is not covered in any tutorial (I'm saving it for an "Advanced" tutorial).  But since you talked about it in your post, I'll talk a little about how you draw things now.

First of all it's important to understand that you don't put DrawLine or DrawSprite commands in LevelSetup or LevelLogic.
Instead, they go in their very own function!  You have a choice, you can either draw to the level or to the screen - using either function LevelDraw() or function ScreenDraw().

Lets take a look at an example:

Code: [Select]
function LevelSetup()

-- bunch of globals

-- Asteroid #0
a = AddAsteroidWithAttribs(0,0,0,0,0)

end

function LevelDraw()

DrawLine(50,50,200,200,0,1,0,1,0,0,1,0.5,5)

end

function LevelLogic()


end

That would draw a line.

The way the DrawLine command works is it draws a line from Point 1, to Point 2.  You set the coordinates of Points 1 and 2, and various properties about them; you specify the colour of each end of the line, and the "alpha", which is how transparent it is.  That means you can create lines with cool crossfades of colour.  Finally, you set how thick the line should be.

Here's what all the parameters are:

DrawLine(X-Coord 1, Y-Coord 1, X-Coord 2, Y-Coord 2, Red 1, Green 1, Blue 1, Alpha 1, Red 2, Green 2, Blue 2, Alpha 2, Line Thickness)


Hope that explains it.  Let me know if you still can't get that to work, and I'll do a proper playable map.  :>



4.
Quote
I look forward to the time when I can concentrate on tweaking AI behaviour and working out elegant mathematical solutions to my codes, but it is frustrating at this point as that is something that seems to be far in my future.

I realise it's frustrating with the initial problems, but right now you are going through an important process of learning how to analyse the code you've written and look for mistakes.  Some of the things you've talked about, the discovery that asteroid ID's start with 0 instead of 1, these are crucial lessons which will stand you in good stead for all of your coding going forward.  :>  It really doesn't take as long to get up to speed as you'd imagine.

We're here to help!  So if you get stuck or if you have a random question about something, just let us know.  :>
« Last Edit: June 27, 2011, 02:07:06 PM by annikk.exe »