Author Topic: What are you working on? :D  (Read 34851 times)

0 Members and 1 Guest are viewing this topic.

annikk.exe

  • Achiever
  • Ent
  • ****
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 1,794
Re: What are you working on? :D
« Reply #600 on: January 11, 2012, 01:21:36 PM »
The part of the internet I call home doesn't appear on that survey unfortunately.  However, I generally split my time between the Gulf of Youtube, Facebook's quiet south-eastern coast (so difficult to find private beaches these days!) and roaming the vast seas and oceans, hunting for treshures. :>

annikk.exe

  • Achiever
  • Ent
  • ****
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 1,794
Re: What are you working on? :D
« Reply #601 on: January 12, 2012, 11:57:50 PM »
So, people other than Aino... what is stopping you from writing your own AI? :>
A deadly AI has been the most rewarding thing I've ever coded, I think..  I'm keen to see more of them.  Does anyone have a desire to write one, but doesn't know where to start?

Lost Seedling

  • Shrub
  • ***
  • Thank You
  • -Given: 3
  • -Receive: 3
  • Posts: 148
Re: What are you working on? :D
« Reply #602 on: January 13, 2012, 01:05:08 AM »
I've made no secret that I find the AI aspect fascinating. Writing a functioning AI, for me, is the ultimate accomplishment for this Eufloria stuff. But the simple reason I have not attempted it is.........Time. I say "attempt" because after looking at the existing AI's, I say to myself that even if I had all the time in the world I couldn't do that. Maybe some day.

Quote
(Pilchard123 08/06/11) I am actually trying to produce a method of determining strategically important asteroids atm, based on stats, how many other asteroids it can reach, and how many it can be reached by. Stats are fairly self-explanatory, but the send/recieve thing is related to its defensibility and use in offence. If it can send to lots of asteroids, it can attack lots of asteroids and be evacuated easily. It it can't be reached easily, defense can be managed easier, but can't be reinforced well.

If I WERE to attempt an AI, this is the route I would pursue. I'm still patiently waiting for Pilchard to find time to finish his so I can learn something.

Pilchard123

  • Tester
  • Old Oak
  • ****
  • Thank You
  • -Given: 0
  • -Receive: 17
  • Posts: 899
  • Eufloria: Yes
Re: What are you working on? :D
« Reply #603 on: January 13, 2012, 09:05:46 AM »
Why am I not coding? Life, in a nutshell. While college arguably isn't real life, exams are hanging around at the moment. Before that, I didn't do much because there was no-one around, and before that, because of the risk of losing all of my work to a new version with different Lua bindings.

I might get going again after exams, now there's people here again.
« Last Edit: January 13, 2012, 09:13:12 AM by Pilchard123 »

Lost Seedling

  • Shrub
  • ***
  • Thank You
  • -Given: 3
  • -Receive: 3
  • Posts: 148
Re: What are you working on? :D
« Reply #604 on: January 13, 2012, 12:27:20 PM »
Quote
because of the risk of losing all of my work to a new version with different Lua bindings.

I could "make" time, but that is probably the biggest reason I don't.

Aino

  • Ent
  • ******
  • Thank You
  • -Given: 1
  • -Receive: 20
  • Posts: 1,483
  • They'll eat you next!
  • Eufloria: Yes
Re: What are you working on? :D
« Reply #605 on: January 14, 2012, 06:25:04 PM »
Awkward silence detected!

I'm making a new java game, this time not for training. I'm going to approach this project with a plan other thank just doing what I come up with.
What are you guys doing?

Edit: It's a god game, inspired by dungeon keeper :P

Pilchard123

  • Tester
  • Old Oak
  • ****
  • Thank You
  • -Given: 0
  • -Receive: 17
  • Posts: 899
  • Eufloria: Yes
Re: What are you working on? :D
« Reply #606 on: January 14, 2012, 09:43:57 PM »
College stuff. Exams. Weird conversations in class, among them:

"Modelling this situation as a Poisson distribution, what is the probability that persons X and Y are a couple before the end of term?"

"What are the relative merits of turning the Nerf Longstrike into a liquid nitrogen-powered air rifle as opposed to wrapping the barrel in copper wire, packing the darts with buckyballs and making a coil gun?"

And my personal favourite...

"Here is a box of frogs. Discuss."

Aino

  • Ent
  • ******
  • Thank You
  • -Given: 1
  • -Receive: 20
  • Posts: 1,483
  • They'll eat you next!
  • Eufloria: Yes
Re: What are you working on? :D
« Reply #607 on: January 21, 2012, 12:27:48 AM »
Loop between each day on the forum:
Code: [Select]
AverageUsers = 17(as of today)
if Active then
 Activity = Activity * 0.95
 Posts = math.floor(Activity*AverageUsers)
 if math.random() < 0.33 then
  Active = false
 end
elseif math.random() < 0.01 or Posts > 1 then
 Active = true
end

So, what's up? Really weird seeing these spikes of activity then all out of the blue the activity drops like a nuclear bomb hit...

Pilchard123

  • Tester
  • Old Oak
  • ****
  • Thank You
  • -Given: 0
  • -Receive: 17
  • Posts: 899
  • Eufloria: Yes
Re: What are you working on? :D
« Reply #608 on: January 21, 2012, 09:13:48 AM »
There's not enough new maps around. Wait until the iOS version is out, that should bring more people. A new PC version may boost numbers, and a new AI or two could be good too.

Aino

  • Ent
  • ******
  • Thank You
  • -Given: 1
  • -Receive: 20
  • Posts: 1,483
  • They'll eat you next!
  • Eufloria: Yes
Re: What are you working on? :D
« Reply #609 on: January 31, 2012, 04:02:01 PM »
New idea = new map...

But first: change Ringdesigner to fit my map...

Aino

  • Ent
  • ******
  • Thank You
  • -Given: 1
  • -Receive: 20
  • Posts: 1,483
  • They'll eat you next!
  • Eufloria: Yes
Re: What are you working on? :D
« Reply #610 on: January 31, 2012, 08:22:14 PM »
Change Ringdesigner wasn't going the way I wanted, instead of implementing what I wanted I ended up adding a colorscale, so you can change the backgroundcolor :)

Release it --> modify to what I want it to do --> make map! :)

Lost Seedling

  • Shrub
  • ***
  • Thank You
  • -Given: 3
  • -Receive: 3
  • Posts: 148
Re: What are you working on? :D
« Reply #611 on: February 03, 2012, 12:54:06 AM »
I've been waiting for someone who knows what they're doing to make a randomizable AI war map. As soon as Pilchard debuts his, we'll have four(by my count) contenders ready to rumble! Unfortunately, no one has made an acceptable arena so I thought I'd take a look at it.

What would make a good AI war map? In my opinion:

1- It should be an "organic" style layout vs. a "grid" layout-if for no other reason than Grid designs are boring to watch. Of course, a grid design is a worthy challenge for AI, but organic designs I think contain greater complexity and nuance.

2- It should contain perfect symmetry in all aspects so that each AI faction is on equal ground. Annikk's Organic AI war map and collapsoul's WebWideWar map do not allow an even playing field due to their lack of perfect symmetry. In Annikk's map, you can easily replay the map by switching starting positions, but this requires fiddling with the code and requires extra time.

3- It should be easily customizable for number of AI opponents. This would require the ability to be sectorized evenly in two dimensions.

4- It should also be customizable in number of asteroids, and asteroid stats- while maintaining the perfect symmetry and complete fairness to each AI faction.

5- It should be easily transformable so that one map can be used for different configurations.

I believe it would be quite possible to fulfill all of these requirements. Collapsoul's WebWideWar map is a fantastic blueprint for how it could be done. Even without the user-interface that he created (but which I could never hope to recreate), I have a pretty good idea how to implement my basic concept.

Unfortunately, at a very, very early and preliminary proof-of-concept stage, I've encountered a show-stopping problem. Despite creating a symmetrical asteroid field, the send-distances are displaying an odd bilateral bias. In other words, the hoped-for symmetry is proving elusive.

Attached are two simple and somewhat unstable maps showing what I'm talking about. They are not in any way intended to be representative of the ultimate direction or methods I intend, but merely test-beds to see if the premise will work.

Both maps crash frequently, and may have trouble initiating due to "stack overflow". I think the overflow could be from my method used to check for overlapping asteroids. I don't know enough about Lua or programming to figure out a better method right now, but that is beside the point. The real mystery right now is why the send distances are not symmetrical.

The "preview" map was just a test to try out different variables and test out the practicality of my idea.

The other map creates the actual asteroid field, representing a four-AI battlefield. If you click on the asteroids in each sector, you will soon see that the quadrants are not all equal, despite the relative coordinates and stats of the asteroids being the same. The send-distances are screwed up. This, of course, is unacceptable. Unless I can solve this problem, further effort on this would be useless.

Does anyone understand why this occurs or know of a solution? I've noticed this same problem to one degree or another in every map I've ever made. Could the presence of the player-owned asteroid be a disrupting influence? It seems to be, but I don't know how to eliminate it. If any of you programmers are bored and want to make a proper AI war map your own way don't think I'd mind! Even if I solve this issue, it will probably take me many months to work on this.
« Last Edit: February 03, 2012, 09:03:57 AM by Lost Seedling »

Aino

  • Ent
  • ******
  • Thank You
  • -Given: 1
  • -Receive: 20
  • Posts: 1,483
  • They'll eat you next!
  • Eufloria: Yes
Re: What are you working on? :D
« Reply #612 on: February 03, 2012, 02:00:42 PM »
Here, I've changed it from random coords to trigonometry(meaning no collision detection needed) :)

annikk.exe

  • Achiever
  • Ent
  • ****
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 1,794
Re: What are you working on? :D
« Reply #613 on: February 03, 2012, 02:46:13 PM »
Lost Seedling, I think I may know the cause of the problems you are experiencing.

Here's how it goes:


1. The level loads.  LevelSetup() is run.  Asteroids are placed, send distances are set.
2.  LevelSetup() completes.  The game now looks at all asteroid distances to work out if any are unreachable by others.  If so, it increases the send distance.
3.  LevelLogic() begins and the player sees the level onscreen.  If the send distances were modified, the level may now look unsymmetrical.


Could you try storing the desired send distances to an array in LevelSetup?
EG you could create an array called SendDistanceStored[n] where n refers to the ID of each asteroid.
Then, at the beginning of LevelLogic(), set all the send distances a second time like this: GetAsteroid(n).SendDistance = SendDistanceStored[n]
That should correct the send distance problems. :>

annikk.exe

  • Achiever
  • Ent
  • ****
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 1,794
Re: What are you working on? :D
« Reply #614 on: February 03, 2012, 02:51:45 PM »
This code is probably responsible for your occasional Stack Overflow problems:


Code: [Select]
function mapcreation()

for x = 1,TotalRoidCount do
AstMap[1][x] = math.random(MaxRoidRadius * 1.5,MapSize)
AstMap[2][x] = math.random(MaxRoidRadius * 1.5,MapSize)
AstMap[3][x] = math.random(MinRoidRadius,MaxRoidRadius)
q = q + 1
z = x
if x > 1 then
for y = 1,z-1 do
if math.abs(AstMap[1][z] - AstMap[1][y]) <= (AstMap[3][z] + AstMap[3][y]) * 2 then

if math.abs(AstMap[2][z] - AstMap[2][y]) <= (AstMap[3][z] + AstMap[3][y]) * 2 then
--x = x - 1
overlap = true
end
end
end
end

end

if overlap == true then
overlap = false
mapcreation()
end

end

You call MapCreation() from inside itself.  This has the potential to create an infinite loop, resulting in a Stack Overflow.

If you instead test the following:

if overlap == true and counter < 50 then

Where counter is initialised with the value 0 prior to calling the function, and then if overlap is equal to true then it increments the counter by one, and then calls the function again.

This means that the code will get a maximum of 50 attempts to do what it wants to do.  If it hasn't managed after 50 attempts, it will abandon the attempt and proceed instead of overflowing.