Update 0.9 – Team Deathmatch

Added in support for team death match and related support features! Now you can make Voltron style group bots that only end up working together in the last 5 minutes of an episode.

http://procrastinationsoftworks.com/Files/pyRoBeta_0_9.zip

Add -t to the run line to enable team matches, example:

pyRoBeta.py team1bot otherteam1bot team2bot otherteam2bot -t

This will spawn all of the bots on the outer walls of the arena with their teammates. When a bot dies the bot will respawn back on its team’s side and reduce the team’s respawn count. First team out of respawns looses. There are of course some nifty new hardware and interpreter options to take advantage of:

  • Broadcastdish – lets you send variables to all bots on your team
  • Repairshot – short range healing gun to fix up teammates
  • team register – returns your current team id ( use with scanner for friend vs foe)
  • available operator – returns if the named value is available – useful for checking if a broadcast has occurred yet before blowing up trying to read a bad value.

There have also been some visual tweaks so you can tell whats going on

Official EA rejection!

EA has acknowledged me as a viable threat to their corporate standing int the games market! What this means is rather simple. I can not publicly distribute the project. However, I can still privately distribute the project with no problems. Knowing that I am not a web guru and definitely not a security expert. I suspect that there is no feasible way I can actually lock down access to the files and still have the accessible to my private use group. So, you will now notice there is a change in the licensing. The software is for private use only and you are not allowed to use it without explicit permission. I cannot control the flow of bots, as those are your creations and I have no control on their distribution. So, this nixes the idea of the web based platform, everything else should continue as normal.

I really don’t expect this will be much of a hindrance to my current user base. Which is currently plateaued out at a healthy zero.

Update 0.8

Yes, yes. I know. It wasn’t weekly.

Went back to working on the game itself, but kept to the theme of reducing barriers to entry. Specifically I focused on usability during bot creation. This weeks update contains some very powerful, but very simple improvements to the code monkeying section of the game.

  • Bots now die when they throw an exception (this used to crash the simulation…)
  • All exceptions now display the current location in code including label, instruction, and instruction offset indexes(if you see any raw python exceptions point me to them and I will get them properly wrapped!)
  • Minor bug fixes

I also spent a good deal of time testing the game to find the best ways to improve the experience. By testing I of course mean ‘testing’, which of course means playing. I have created a new bot the shows off some of the more powerful uses of the scan operator and has basic circling, distance adjustment, and target following algorithms. It is available in the forums, and is distributed with the games starter bots as well. Its name is Tracker. I demand you kill it and send me the bot that did it!

http://procrastinationsoftworks.com/Files/pyRoBeta_0_8.zip

Nothing to show this week

I may have been a bit distracted this week by Mass Effect 3. However that is not to say I am still not working on improvements. I have been doing some background research into hosting a simple website to allow bot submission and stats tracking. This is not my primary realm of expertise so I am taking my time and making sure everything is actually as awesome as it was in my head once its a finished product. For now just continue to create bots, and by continue I of course mean start. There is as much activity in the forums as I expected (read: none). So, feel free to be the first to make a killer bot that will rule over the presently non-existent competition.

Weekly Update 0.7

This weeks update is both small and awesome. It is a precursor to getting the game to be a web app instead of something you download. The intent being to lower the barrier to entry for new players. The basic plan is to get the game up and running in a HTML5 friendly way, then slap some basic website goodness around uploading and sharing bots. In the processes though I still squeezed in some new features.

In this case a picture is worth a thousand words, especially since all of this weeks update is visually noticeable! However, I have a demo as well, and I would venture it is worth at least a thousand pictures.

Interactive Demo:procrastinationsoftworks.com/RoBeta/index.html?source=statelog.txt 

Picture for good measure:

Picture of new side bar sexy-ness

Side Bars!

Weekly Update 0.6

Wait what, where did weekly Update 0.1-0.5 go? Good question. I have decided to start posting updates on the blog instead of just updating the readme file and emailing everyone. So for a brief summary of all the updates not posted(full change log in the readme):

0.0 – First playable

0.1 – Random starting locations so two bots don’t always fight the same way

0.2 – Arena boundaries and bot state inspection registers

0.3 – Better flow control operators and radar

0.4 – Scanner and various bug fixes

0.5 – Missiles and optimization

Now the moment you all didn’t know you were waiting for: 0.6 ! This week I have added hardware build options. The intent being to support a wide range of very powerful weapons and operators that can be so awesome because they require you to spend build points to turn them on. Currently missiles, scanners, radar, and explosive shots are hardware options.

Explosive shots? Yeah, I added those this week as well in my push for getting a base set of interesting weapons in. Same as normal shots except they explode on impact with a bot, dealing 1.5*power in damage in a 36 unit radius.

Not sure how far I will get in 0.6 but my goals for now are as follows:

  1. Finish weapon spread (lasers, healing shots, explosive shot weapon interactions)
  2. Add status panel to the battle viewing window so you have some idea of current state of the bots
  3. Debugger!
  4. Team communication operators and team death-match
  5. Non command line way of browsing and picking bots for a match

Once those are implemented I will proudly stamp the game as alpha and move on to even more crazy ideas I have.

Where do you download the game? Well, EA is still considering whether I am a threat to there economic well being. So, I am still on private distribution only. That said if you want a link ask, and if you have an old link to the Files directory just change pyRoBeta_0_X.zip to the correct version and it will be there.

Public Bot Storage on a Private Distribution Game?

Turns out programmers love games about programming.  Novel that. Though they seem to enjoy fiddling with the source more than creating bots. Seems I am going to have to adjust for that.

This week along with my normal work on the yet unrealeased project I am going to look into a solution for public bot storage. I suspect once people start sharing thier works it will be more enjoyable to try making new bots to beat them. I have thought on a few solutions and am currently swaying between forums, and a public subsection of an ftp sever.

Both obviously have unique benifits and problems – should be fun looking into this week.

PS – no word on legal red tape and public distibution. Though I do have the game available online now, so no more bulky emails. Plus i can easily ensure the same version is available to everyone. It’s almost like I have propper releases, almost.

 

A Super (Not So) Secret Project

As I eluded to yesterday I am working on an awesome new project that may or may not ever see the light of day. I have has a long standing love for competitive robot AI programming – and you thought your hobbies were niche. My favorite bot building game was RoboWar 5. It had a lot of fun options available such as reading your opponents registers and a variety of weapons. However I felt its main shining point was how it handled the language of the bot’s themselves. Many games in this genre use modern languages and some basic OS controlled timing on thread scheduling which is only vaguely accurate and vastly different on different machines and operating systems. What RoboWar 5 really did right for me was the concept of your bot’s CPU power. Each operation took the same amount of time, and depending on how many points you spent into your bot’s CPU you would have different amounts of operations per ‘chronon’, which are roughly equivalent to a frame. So there was not only a strategy and logic element, but a very strong optimization slant on robot coding.

Recently I found myself wanting to program some more bots, like I had so many times before. However I was upset to find that the windows distribution of RoboWar 5 was not 64bit OS compatible and for a while I was strongly considering porting it for modern systems. Then I started thinking, maybe I could extended it if I ported it, how neat it could be to add new features into the game. Starting to think on the project as a whole I realized that in a modern language, the game could be written very simply and could probably have a proof of concept ready with a weekends worth of work.

So at this point, we all know what I spent last weekend working on. I now have a very shiny start to a game in the very niche and unknown genre or competitive robot AI programming. I developed the whole thing in python2.7 with no 3rd party libraries needed. I kept the simulation and rendering completely separated with a state-log of every frame in the simulation. The current render engine is a hacked up Tkinter canvas. But any language or drawing libraries could potentially read in and use the replay like state-logs. The bot language itself is a simple stack langue using reverse polish notation and borrows much from RoboWar 5′s language. So adding a new operator is as simple as defining its name, a function that manipulates the stack or the bot, and a dictionary entry mapping the two together. I worked on the game tonight for about 2 hours and managed to add in 9 new instructions. I am poised to make rapid changes in little time for as long as I keep getting good feedback from my users or my creative juices keep flowing.

If you have read this far you are probably wanting to try this game out for yourself. As of right now I am waiting on red tape with EA legal to be able to freely and publicly distribute the game. I can continue to work on it and privately distribute it .If you know me personally, and lets be honest most of you do, ask me for a copy. For a nice download link on this page, I will need approval that this little niche python script will not overthrow the gaming market as a whole and muscle out EA’s market share. Should be an easy sell.

Hello World

I am rebooting the website as it was compramised by script kiddies taking advantage of my lazy habbit of not updating my wordpress version.

No contet was lost in the transition but it will take me a bit to get everything back in working order with the new system as import / export is not trusted in my case.

Will be updating with new content soon though, I have a nifty project I want to share with all of you. EA willing that is, I may only be able to talk about it with all of you and keep it privately distributed until I go through a bunch more red tape. More on that later.