Group Games Prototype Testers Needid

Hello All, Ive finally got what could be called a game together,just need to work on and test my sensors so i should be finnished next week.

From the Group Project thread ive taken what everyone has said. But first thing first. Could anyone who would like to try and make a AI for my game please post here , and then middle of next week i'll send the nescercery files.I want to keep everything a bit low key for the moment intill the intial bugs are out the game. The game is VERY basic at the moment and will be much better later but if theres any fundamential bugs which mean i have to change alot of code i would prefer to do it now before more code and game optoins are addid.

So please post, and if any bugs are found post again , any comments appriated.
The code that will be sent will explane the game but if you want to understand how the game works or want me to change a attribute please post. So basicly this thread will be for all things for the group game.

thanks for your time
NoZ

Count me in!

Definitely send me a version!

- jon

I'll try

I'm happy to have a go, although can't guarantee I'll be too capable.
Do you think adding this as content to the site would be better than emailing it to people?

Ive done it

Hey all , ive finnished Versoin 1. Its going a bit slow if its not one on one at the mo but im going to try and get around that.

I was wondering do i need some kind of lisence on it? To stop people from either passing my work off as there own or stop other people possibly trying to make money from it?

Its not that i dont want people to have my code, And i know my code is pretty awfull compared to jons code etc but i just dont want to be cheated. Any comments on this would be great i'll probably look into interlectual rights etc next week.

but before then becouse ive now finnished versoin 1 ive been thinking about v2. this is my plan so far

V2:
The idea will be each person will be given a client versoin of the code. when they start that file it connects to my server and gets infomatoin like how many robots they got etc etc. from there world they can teleport to a number of differnt "worlds" which will be running on my server. each world will have a gardian, they will be hard to beat but if you do, the gardian becomes a member of your side and wont fight you anymore. For each world you own you gain a point a day. If you get alot of points you can give some to a unit and then send that unit to the "god" world. while there it can go to a God shrine and create anouther unit for your side. there will be a few differnt gods, and if you give enough points you can be given special skills to use in battle. for instance if there was a ice god and you buy the "ice Daggers skill", in battle you are able to give a portoin of your energy to ask the ice god to send daggers of ice into the enemy. Although you can only serve one god, so some special skills will be unattainable.

So the general idea of the game is to get as many terratories under your control as you can. But you'll have to face the gardians and other players.

If you got any better ideas please comment.

NoZ

Apparently Copyright is

Apparently Copyright is automatic so ive put the files on a upload site, its in a rar file and the password is "game1".

http://www.mediafire.com/?4jgwqmz2yze

To play open the file "main.tz"
To make your player alter the file called "Player1.tz"

Have Fun.

AnyOne?

Anyone had a look yet? im very anxious to see what people think of it so far.

Noz
ps(at the mo im working on a adaptive ai for the gardians)

password?

Is that password correct? I'm having trouble decompressing the file.

- jon

Soo Sorry

Sorry Sorry Sorry, the password is "Game1"

Again im soo sorry for wasting peoples time.

oh and im making progress with the situatoinal polymorphic code AI. Only using it to teach a walker to walk at the moment but the results are quite impressive. If it works on this it should be very easy to transfer it over to the gardians. which means everytime a gardian is in a battle it should learn enemy tactics.

NoZ

Awesome!

Okay, so far I haven't figured out any gameplay or how to customize the agent behaviors, but the fighters themselves are just awesome!

Are people meant to just write custom behaviors, or will it also be an interactive game? I think it would be great to add in keyboard controls so that users could control it interactively.

- jon

Thanks for the comment

At the moment its ment to be based on writting custom behaviours but in the next versoin i will allow the behaviour of your robot to be overridden by the keyboard. This was ment to be an aid to figure out how you want the robot to behave.

To tinker with the AI of your robot open up player1.tz, ive got a whole load of comments in there to help. Im trying to make it so newbies can write affective AI's without too much code. i think the opponents AI's are pretty much 8 lines of code. Hopefully it will give a good base's for people to start with and then they can add and rewrite code so in the end they wont be using my methods.

At the mo im working on a AI to inhabit a game but if theres anything people find wroung with the game engine (how bullets work) health or something like that please comments.

NoZ

Awsome Robot

This sim is cool man, you know how hard it is to put all them darn pieces together?

How do we make him/her move around?

Do you plan to have a robot template so I can retro-fit my robot. Or at least change his armor. CreativeCommons has a good license structure LGPL/GPL/MPL/and BSDs are complicated. Hey thank's for publishing your code this makes a big difference.

OK I am on the sensors already this sounds cool we can pit are creations against each other. What kind of AI are you looking for?
Do you want her to actually see with bitmaps or stick to sensors with GP functions, or neural nets, Still got my AI books with Simulated Annealing, Perceptrons and expert system design specs.

Ready, Fire, Aim

I got a good over view of the code. Focusing on a seperate library of two types of AI. One for identification and one for targeting used in TargetAI and BluePrintMethods ...+ to GetEyeSensorPrimary to-value.

I prefer the + to GetEyeSensorPrimary to-value =0 is great. Identification AI will focse on alternative methods for populating the list of badguys. e.g how are they identified and can we predict where the next one could be?

TargetingAI can wait thinking to involve various algorithims for iterating through the list of badguys. e.g Hunting/Tracking tactics. for example maybe one type of robot seeks out only small game while another targets two badguys at high escape vectors, or easy prey.

In summary Targeting and Tracking should be seperated. The next step is to add a tracking/identificationAI used in the blueprintmethods.

LGPL

NoZ

Since Breve is GPL it's logical that the source libraries get an LGPL license. This is specifically what the LGPL was designed for, libraries and Plug-ins. Applications that interface with Breve should be GPL such as a Content Management System that has a specific XML API for Breve's Network.tz.

You will need to add a GPL or LGPL license disclaimer to your project before we can modify your copyrighted work. For those of us that don't understand the GPL/LGPL you can still copyright your work (because you have the right to copy it) and you give others permission to modify the code, use the code, add a copyright to their portion, and sell the code provided that the original source is included without modification for free.

The LGPL has a distinct advantage over the GPL when you create a plug-in all of the above apply except that you are not excluding your right to keep part of your work compiled without your source modifications. (Source modifications could include binaries or other code not included in the original source) For example you could sell a suite of plug-ins without releasing the source for those plug-ins, and still retain copyright on the original source and your plug-ins.

The sum advantage of this is that the copyright owners give you the above rights to use the work and if someone trademark's the name or patents their own modifications, you don't need permission (from hundreds of other developers) to make further changes or publish the code because you gave or were given the right to begin with. The protection the GPL/LGPL gives us is that for example if four developers have trademarks on their binaries new name and patents on their source modifications (where their binaries are considered trade secrets) in addition thirty other developers have made modifications to the source. No one or group of developers can claim entire exclusive rights over the entire source.

Enjoy your day

Range Finder

NoZ

We have the code for one dimensional tracking in two dimensions. I estimate six to eight weeks for a targeting and tracking subsystem. When you decide on a license for your code let us know. We will require a reply in one week.

Golly Gosh

Hello firefly

been away for a week sorry and at the mo im just reading your comments.

give me a bit to figure out licenses etc. Brain is only in first gear at the moment.

It sounds good, not quite sure what your exactly getting at but i'll have anouther look tommorow. I like that you have said preditor/prey etc becouse ive been working on a theory for a type of nerual net which i think would be perfect.

Due to complicatoins with the original game idea ive been trying to make some changes to make it more open endid. you populate your own world with your robots , then through some random events one of your robots can go onto anouther players computer etc. so theres less workload for each node in the game and ease's up on the server. also makes it so if a player quits it doesnt make the game unfair. best player is the one whos robots are most common. Also been working on the world theory,and also better robot design making it more indevidual than just choosing parts.

basically need to make some changes. Would love to hear any ideas you have. Also who does "WE" mean? im a bit taken aback becouse before holiday no one seem intreasted and now people do.

any comments appreciated.

Change Management

The Code looks like a good skeleton I don't see any long range difficulties. Your object code is very flexible I can patch in wherever you need an auxiliary system or domain model. We refers to my stake holders and a close network of researchers, professors, and developers I work in consultation with.

I have already started on neural network based development for pattern recognition, for tracking group dynamics. We can keep the conversation open to explore ideas and share models.

I will do my best to keep it clear, concise, and simple. In the general context of open forums to address key artifacts in project development, I see two areas that could use better exploration.

1) Change in Scope: Traditionally we work on the forums to ask specific code level questions. A change in scope is needed to address domain models and larger development processes, not specific to user experience.

2) Noninterference: We need better understanding of each users' coding style. Using a template model that addresses the principal idea of the question not specific answers. This practice doesn't interfere with ongoing development and let's other users decide what are the alternatives; within a given context without restricting their domain model.

im a little bit lost

Sorry if i seem stupied but im a little lost.

Do you want to turn this into something comercial?something to sell to people at some point?

Versoin 1, the code you have is more of a rough outline of code to see what people thought of the general idea. The secound versoin which im working on will be alot better. Im going to make it so users can place objects on there robot, instead of choosing type of arms they can choose segments and then attach them to the body. It sounds uneven but there will be some restrictoins etc.

At the moment the physics for physical contact is good but slows the system down way to much so im going to make a method like "force push" which when two objects are close will push away from each other so the physics engine isnt called as much.

im more than happy for help but honestly your comments are confusing me a little.

sorry for my stupidity.

NoZ

UPDATE

Hello All,
Been rewritting some of the code , specifically for robot design. although its more complicated then before it will allow users to make much more indevidualistic robots can make walkers,turrets as long as they fall within the rules.

After i finnish off the new body methods im going to attempt to make a kineamatic aiming responce. for a functoin like

Self aim-at "badguy" with wepon "gun1" priority 1.

which will basicly go from gun1 through all links to the main body and figure out the angles needid for the arm (whatever) to point the gun towards the badguy. prioritys will be given to the functoin so like

Self aim-at "badguy" with wepon "gun1" priority 1.
Self aim-at "badguy" with wepon "gun2" priority 2.

will aim gun1 at the badguy and aim gun2 at the badguy unless it stops gun1 aiming at the badguy. if any one could help with this it would be great, or even tips/etc on how to go about it. Depending on diffacultiy i might try to add collisoin detectoin so arms will move around each other when aiming, if i get those two done then i'll probably add a functoin for figureing out if a wepon or bullet will hit a object, which will be good for swords and sheilds , specially dodging incomming fire.

if anyone can help with advice etc or even if they think its a good idea it would be good to hear from you

NoZ

Prototype + Game Theory

I understand the difficulty of Open Source project management. I worked three years participating and running my own projects. I understand the pitfalls and the advantages. Most developers are dedicated to writing great code. The disadvantage of this is the is no one right way to do any one thing and everyone has more ideas than time. It helps to publish a roadmap and let others join in but you have full control when it comes to forking and refactoring your code. Rather than taking a top down leadership role.

Consider Writing an OPENAPI that allows others to identify critical points of development were our combined efforts outweigh the efforts of any individual. Understand key areas that could be bridged without releasing our source code or modifying licensing structure would be a good goal. I think we all as a community can publish openAPIs with access to our compiled or protected code so we can still have the option to interface with other projects.

I use an MVP approach Model View Presenter. The View is for GUI I/O the Model gets commands from the View and sends updates to the presenter that in turn broadcasts to multiple views. The API is a second tier Presenter that interfaces with a select view interface in conjunction used as a wrapper to filter input to the model. Were you control the access privileges of the wrapper, in addition expose select view broadcast properties. This keeps your kernels tight without introducing more complexity to you domain model-view(s). It's more compact than MVC and doesn't require that a view be a User Interface but any interface to your model. (If you ever built a graphics pipeline you can understand the logic) If we can get a roadmap of places were you would accept real code interfaces as published APIs then we could know specifically what you require, and to what extent you would agree to participation. A copyright alone doesn't give us permission to use your code, or publish our own contributions.

The Simplicity is this, in MVP when a presenter gets TurnCube every connected view draws circles using its own routines, Similar to a 3D editor nothing has changed about the model. In MVC the view has to send requests to a controller to interface with a model or other views and then the model updates the view(s). MVP is desigend for modular code design. Once you get it working you wrap it up API it and move on to the next section.

By the way what are you going to do if a goodguy is in the line-of-sight of a badguy? I used to play AVP and team up with the Predators, because they had more firepower to deal with the Aliens. I would run cover for the Predators as they reloaded and they would pop upto four Aliens at a time for me they had the firepower and range. But I had to keep the humans at bay because they would run around like mad. The Predators would actually give me cover. So what is a badguy anyway?

No, life is only given to me once and I shall never have it again; I else better not live it at all. —Dostoevsky

Im sorting out copyright

Im sorting out copyright etc should have a new versoin of previous code up with the modificatoins.

But like i said im changing the code to give users more control and making it a bit more automated.

with this in mind i have written a "cover" for the multibody,

so you can create a multibody robot buy only using a two main functoins.

This part sets up the main route node.Going to change Shapetype to a string , so it will be "cube" or "cone"
etc. Also addid tints which based on the amount of armour
colours that node. Also you can add names to each part.
this makes it easer when creating a robot

self SetShapeOfBody ShapeType 3 Xsize 1 Zsize 1 Ysize 4 Armour 2 WithTint (0.1,0.2,0.3) nameOfPart "mainBody".

After thats done you just start adding parts to the robot.
I think users will find this more intuative and if jon wants me to i'll make a stripped down versoin for him to put into
breve. Basicly ive made the joint and part functoin into one
and im going to add more shapes But what i think makes it easer is that you can name peices and add others to that named peice.


self AddNewPart ShapeType 1 Xsize 1 Zsize 1 Ysize 1 Armour 3 WithTint (0.1,0.2,0.3)
AtlocXP 1 AtlocYP 0 AtlocZP 0
AtlocXC 0 AtlocYC 1 AtlocZC -1
withRotX 0 withRotY 0 withRotZ 0
withJointType 2 withJointStrenth 1
nameOfPart "RightUpperArm" JoinWithPart "mainBody"
WithNormal (1,0,0) withMaxSpeed 3
IsItWheel "no".

Also its very rough becouse its hard to get how i want it all to come together explaned in words but the general program structure is

Robot Desginer.......Robot loader.............Server
.....|....................|.....................|
Design robot body...Connect to server....Figure out stats
.....|....................|.....................|
Arena to test......Send/Recive robots..Send/Recive robots
..........................|
.......................Run Game

Sorry if thats not very clear. Basicly to create a robot you load robot designer, there you build your robot try out code, fight against some easy apponents or players youve made

Robot loader connects to the server,checks everything , sends and recives robots and then lets the robots duke it out

Server just keeps tabs on most things.

PARTS TO BE DONE

Robot designer im making progress with
- Load/unlaod robots
- Additoinal shapes
- Wepon physics and design
- fur and body
- rules

Its hardest to explane this one but ive done a fair bit so shouldnt take too long. The main diffrence to Versoin 1 is landscape and bodytypes. So more wepons , (rockets etc) also
more designing for the robot body , also additoinally it will have armour and differnt landscapes will have differnt heats etc like snow and the sun etc, and depending on parts brought means how well they can cope in the cold or heat.

if someone wants to it would be REALLY good to add some shape classes , just create some shapes from the custom shape class but use X,Y and Z. So there proportoinal

The rest im still pondering over and havent got to the nitty gritty of figuring out how there going to work.

Oh and the sensors will be changed but i dont know if i'll add code so they can have line of sight. But i am addiding magnatic grippers so you can pick up anouther robot and possibly rip there parts off.as well as missiles.

NoZ

Keep up the Good Work

It's looking good. Are we going to have the capability to send and receive information to our remote robots for navigation without sending than actual code? (Say my AI is 20MB) I am also making progress on the tracking system, If one of my bots goes behind an obstruction it makes predictions on its location. My system is aggregate based were multiple bots or squads share information on tracking other sqads, rather than a composite AI system for one bot. I am think in-terms of a network overlay for bot communication and control. NoZ you have a good sense of structure, I was never good as a top-down developer. I need to take at least two weeks researching related work, before starting work on the domian model. If I don't have a model that I can compare simulation results to I feel like Iam coding in the dark. I take a bottom-up approach nailing down the key algorithms first and fully spec the system before I build to spec.

Plan to BSD the code.
No, life is only given to me once and I shall never have it again; I else better not live it at all. —Dostoevsky

Site plans?

NoZ how do you plan to market your code?

Intuitive reasoning

Can't wait to see JoinWithPart , your code generation is more like natural language than object code. That's one thing I really enjoy about breve the language is closer to written language.

"You miss an infinitesimal line and you can build it into a pyramid of evidence! " —Dostoevsky

Effectors

NoZ

I worked out a multibody that has multiple effectors. She is a protoypical mantis with six legs, each leg is a object with three joints: a revolute in the XZ plane, a revolute in the XY plane, and a prismatic extender. I am now working on the neuralnet for each of the effector's inputs.

There is only one object class for the leg rather than putting all the legs in one multibody. Waiting to see your next version maybe we can combine our efforts, or at least you will get a good tracking system for multiple targets. Oh yea, I wan't some smartscouts for my robot. Do you think you could turn a swarm boid into a modified search drone. I was thinking it could use a percentage of energy for its guidance system a percentage for communication with its host, and a percentage for thrust, and range. Four input variables to control for each scout with search and rescue as outputs. If you get a good idea let us know we might be able to put it together in a day or two.

"No, life is only given to me once and I shall never have it again; I else better not live it at all." —Dostoevsky

Good thinking

Ive been thinking of communicatoin alot lately, havent had much time to do hard coding becouse ive got a job offer and need to starting renting a flat etc so everythings a bit hectic. One big problem ive forseen is sending robots to other computers. i dont know if they need a class for them on the other computer, say someone makes robot X on computer X and then if gets sent to Computer Y , will robot X need its source code? I might have to make the blueprint more functoinal so only varibles get sent across and i'll have to make a structure for it like an array so although a method like

IfStatementgreaterthan Object1 enemyrobotdistance Object2 freindly robot distance.

well something like that which can be compressed into
(1,2,1) so the whole contruct will be a list or array.

Thats the biggest problem but havent got time to experiment at the moment.

Figured out alot of stuff so far like missiles etc so it should be easy to impement.

Communicatoin idea is in the works, think there will be a distance varible to it, and scouts but they will be preprogrammed by me with methods like , search for freindlys search for baddies etc.

seeya later
NoZ

Breve Object Brokering

What I see most if not all of network games each computer gets the same source. Maybe one difference is that there exists a central server that manages the intranode communication, similar to this forum. Neither of us have the actual forum code, but we are provided an interface to send objects to each other, or messages in this case. If you think in terms of the client server model robot configuration would be similar to user web page customization. Many sites allow users to move blocks of code and change templates, that are saved in each user's profile. You can use allot of examples in network applications that already exist and make similar solutions to your system. check out the Object Management Group www.omg.com. Creating a protocol e.g. (1,2,1) could get messy I would let breve handle the command transfer with the XML-RPC based archive/dearchive and built-in object transaction methods.

Years ago I built my own client server with users/groups and challenge based password authentication from scratch (TCP Sockets) that included basic object brokering to send commands with multiple parameters to the server for processing. At the time I was racing to build a better system than Hotline this was before IMAP servers became available. If you need a specific solution let me know i worked out four or five models to handle the object brokering and client communication. Recently worked out a few methods to secure your code for application deployment. Good luck with the new position!

Try to adopt jungle vision looking beyond obstacles at the bigger picture. These don't have to be physical obstacles, they could be your position, relationships, and other challenges in our lives.

No, life is only given to me once and I shall never have it again; I else better not live it at all. —Dostoevsky

Sorry its been a while

Just an update , still got a massive list of stuff to do before implementing this, but im writting a "breve" template that will go over steve for the robots based on a state machine and my own languge sort of. this has 4 main objectives

1 will allow me to control what commands are used

2 will be able to compress peoples robots for network transfer

3 will allow me to control processor time on each robot, so hogging wont be allowed

4 it will also allow robots to be able to duplicate there AI into anouther robot. In theory a well written AI could be used in any body.But even if that isnt the case could still make some intreasting fights.

Ah!

Hey NoZ

Looks like you have been doing some research. State machines are very popular, I recall reading a 24pg. paper on the AI engine for DOOM from the lead developer at ID, I think state machines were mentioned.

They can be a pain but work good for realistic behavior

Back to work,
No, life is only given to me once and I shall never have it again; I else better not live it at all. —Dostoevsky

Secure Coding

Mark Graff's Book is better by any standard that could be explained.

In Breve CLI XGrid for OS X has a hidden feature. Most IDEs can store a file be it a perl script or steve script.You can access the user's shell be it zsh, bash, or even perl from a terminal object, commands are brokered similar to the tcp sockets. You save your steve code as a template that your application configures, some people call it metadata, internal to your application and Send it to the terminal service via the breve CLI.

Now for XGRID delete your perl library from a client, and configure a 10.1.2.3 IP with router at 192.168.47.1, with and additional interface network configuration of 192.168.47.1 with a router at 192.168.0.1. On your remote system keep perl intact, only when your remote workstation is on with XGrid routed through your 10.1.2.3 (localhost) will a perl script run. Works with the breve CLI on a remote machine as well.

I have not failed! I have only tried 100,000 ways that will not work. —Thomas Edison

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.