Discussion:
Development of Naval Robocode
c***@gmail.com
2016-11-22 08:49:41 UTC
Permalink
Hello,

As you probably know, a couple of students have worked on Robocode before
to make it more applicable to Naval Systems, the result was Naval Robocode.
The plan is to continue to improve and expand that project.

My name is Colin Heppener and I am currently studying software
engineering at The Hague University of Applied Sciences.
I'm currently doing an internship at Thales Nederland B.V. which mainly
focuses on Naval Systems(radar etcetera).
My assignment is to further develop Naval Robocode and make it more
suitable for demonstrational purposes.
To make it more suitable for demonstrational purposes, the idea was to use
something like Google Blockly to simplify the programming of ships and make
it faster.
As a start the latest Naval Robocode version has been made up to date with
the newest regular Robocode version.
After that, the plan is to start implementing new features such as
(ballistic-type) Missiles. Which travel high trough the air, and impact at
a certain location, so it's not just a bigger bullet.
Another idea was to implement islands into the battle arena, which block
radar scans to give the game more dimension. These two ideas are just an
example of what I'm going to be working on.

I will be working in the company's systems, so I won't have a direct
connection to the internet because of security reasons. Which prevents me
to push changes to the GitHub repository straight away. So if you want me
to create a branch on the GitHub repository and push my changes to there
every once in a while, that's a possibility. It just won't be as often as
usual.

If there are any questions, comments and/or suggestions, I'd love to hear
them.

Kind regards,
Colin
--
You received this message because you are subscribed to the Google Groups "robocode" group.
To unsubscribe from this group and stop receiving emails from it, send an email to robocode+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Pavel Šavara
2016-11-23 06:30:32 UTC
Permalink
Hi Colin,

all of this sounds great. Usual github flow is to clone repository on
github, then create branch in your clone. Then you would be able to submit
pull request to naval branch of main robocode repository.

It would surelly interesting for all of us, if you could elaborate about
your design plans. Details of your new game rules and impact for the game
strategy for example. Perhaps such discussion could also help you to
clarify your thoughts.

Cheers
Pavel
Post by c***@gmail.com
Hello,
As you probably know, a couple of students have worked on Robocode before
to make it more applicable to Naval Systems, the result was Naval Robocode.
The plan is to continue to improve and expand that project.
My name is Colin Heppener and I am currently studying software
engineering at The Hague University of Applied Sciences.
I'm currently doing an internship at Thales Nederland B.V. which mainly
focuses on Naval Systems(radar etcetera).
My assignment is to further develop Naval Robocode and make it more
suitable for demonstrational purposes.
To make it more suitable for demonstrational purposes, the idea was to use
something like Google Blockly to simplify the programming of ships and make
it faster.
As a start the latest Naval Robocode version has been made up to date with
the newest regular Robocode version.
After that, the plan is to start implementing new features such as
(ballistic-type) Missiles. Which travel high trough the air, and impact at
a certain location, so it's not just a bigger bullet.
Another idea was to implement islands into the battle arena, which block
radar scans to give the game more dimension. These two ideas are just an
example of what I'm going to be working on.
I will be working in the company's systems, so I won't have a direct
connection to the internet because of security reasons. Which prevents me
to push changes to the GitHub repository straight away. So if you want me
to create a branch on the GitHub repository and push my changes to there
every once in a while, that's a possibility. It just won't be as often as
usual.
If there are any questions, comments and/or suggestions, I'd love to hear
them.
Kind regards,
Colin
--
You received this message because you are subscribed to the Google Groups "robocode" group.
To unsubscribe from this group and stop receiving emails from it, send an
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "robocode" group.
To unsubscribe from this group and stop receiving emails from it, send an email to robocode+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
c***@gmail.com
2016-11-23 09:12:57 UTC
Permalink
Hi Pavel,

Thank you for your response, I appreciate it.

I have elaborated some of the plans and added what I think would be needed
as new game rules and impact on the game strategy.
I will just post them in here since I think that will be easier for
everyone.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Missiles

Elaboration
This feature consists of implementing Missiles in the game. It will be a
new type of weapon that the ships will be able to use. Missiles will be
more powerful than the current bullets or mines. These missiles won't
behave like bullets, so they won't be able to hit something in their path.
They will be launched from a ship and go straight into the air to high
altitude. After that they will travel their distance and impact and
detonate on a certain area of the battle arena. Every ship in the blast
radius of the missile will be hit and damaged.

Impact on game strategy
The impact on the game strategy will be that the robocoders of ships will
have to take in account a new type of weapon. There needs to be way the
ships can estimate a location where the missile will most likely impact, so
they can handle accordingly, or not.

Changes in game rules
The minimum and maximum damage of missiles needs to be defined in the
rules. The maximum distance a missile can travel also needs to be in the
rules. The energy it takes to fire a missile needs to be significantly
higher than a bullet or a mine, since it will do more damage. Firing
missiles is not something you should be able to do over and over again.


Islands

Elaboration
The plan to implement islands into the arena is to create more dimension in
the game. I want the islands to block radar scans so that you cannot see
everything around you in a certain radius anymore. This creates an element
of surprise, since you do not know what can be lurking behind the island.
Maybe it is an idea that certain types of weapons(missiles in particular)
can damage an island. To do that the island would need a certain amount of
life or an energy level. This will enable the island to be destroyed after
a certain amount of hits. If this does not get implemented it will
basically just function like some kind of wall somewhere in the arena,
since it should behave the same way. Maybe we can let the island be
randomly generated, in terms of size and maybe shape.

Impact on game strategy
The impact this will have on the strategy is that it creates an element of
surprise. If you do not know what's behind an island, you'll have to either
circle around it to find out. Or you have to move away from there. This
forces the robocoder to think about whether he wants to take that risk, or
not.

Changes in game rules
In case an island can actually get destroyed, there could be a set life or
energy value defined in the game rules. It is also an option to make the
energy or life value depend on the size of the island, if it will be
randomly generated.


Composition of ships

Elaboration
At the moment every ship that the robocoder can program is the same. I have
the idea to make the robocoder decide the composition of his own ship. So
for example he can have an extra powerful radar instead of a mine launcher,
an extra powerful front cannon instead of a back cannon, etcetera. The idea
was to make some sort of point system, or a maximum amount of components a
ship can have.

Impact on game strategy
It would add a new form of flexibilty to the game because not every ship
will be the same anymore. It would also force the robocoder to choose the
approach he wants to take, he can sacrifice his back cannon to create an
extra powerful front cannon, this gives the robocoder more freedom.

Changes in game rules
The rules will need to contain some form of point system or maximum amount
of components which the robocoder is allowed to use.


Submarines

Elaboration
The idea was to create a new type of ship, this creates more dimension in
the game once again. I want to make the normal radars, not detect the
submarine. This would be a way to make use of the composition of ships,
because you would need a sonar to detect a submarine. Submarines will be
more fragile than normal ships so the game remains a bit more balanced. I'm
thinking about making some weapons able to hit a submarine and making some
unable to. I was planning to make missiles, mines and torpedo's(see below)
able to hit a submarine, but normal bullets will not be able to.

Impact on game strategy
A robocoder will need to take into account that a new type of ship can be
lurking in the deep. If you don't have a sonar you will be blind for what
happens under water. So he will need to decide whether he wants to take
that risk, or not. If the robocoder is planning to use a submarine, he
needs to decide whether the fact of being more fragile, outweighs the fact
of being harder to detect.

Changes in game rules
The maximum energy level of submarines needs to be specified in the rules
since it needs to be lower than a normal ship. The rules also need to
contain which type of weapons can hit a submarine. I also think it is a
good idea to give the submarine less available components to use, due to
its advantages.


Torpedoes

Elaboration
This is a certain type of self-propelling missile which travels trough
water and detonates on hitting a ship or wall. The idea was to make this
new type of weapon available to both normal ships and submarines. Torpedoes
will travel at a lower speed than normal missiles and bullets, but will be
faster than ships or submarines. The damage a torpedo will do to a ship or
submarine will be in-between a missile and a mine. The damage done to a
submarine will be higher(almost critical) than to a normal ship.

Impact on game strategy
This is a new aspect the robocoder will need to pay attention to,
especially if he chooses to use a submarine. The ships will need to have a
possibility to monitor the torpedo and act accordingly, or not.

Changes in game rules
Minimum and maximum damage of torpedoes will be specified in the rules. The
extra damage a torpedo will do to a submarine, will be taken care of in the
submarine's classes.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

With kind regards,
Colin
--
You received this message because you are subscribed to the Google Groups "robocode" group.
To unsubscribe from this group and stop receiving emails from it, send an email to robocode+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Pavel Šavara
2016-11-23 09:56:23 UTC
Permalink
Nice, few notes:
- I would advise you to implement it step by step, so that you are able to
show working result when you run out of time, or passion.
- Try to play the game with the new rules with a friend, so that you could
tune the rules. Otherwise you will end up with game with poor fun factor.
- It seems to me that rules you propose would work best with teams of
ships.
- It seems it would require smarter robots than usual robocode, planning
ahead, planning routes to avoid islands. Again, try to implement such robot
with a friend to prove the problem is solvable and fun.
- Sample robots would help others in the community to follow.
Post by c***@gmail.com
Hi Pavel,
Thank you for your response, I appreciate it.
I have elaborated some of the plans and added what I think would be needed
as new game rules and impact on the game strategy.
I will just post them in here since I think that will be easier for
everyone.
------------------------------------------------------------
------------------------------------------------------------
----------------------------------------------------
Missiles
Elaboration
This feature consists of implementing Missiles in the game. It will be a
new type of weapon that the ships will be able to use. Missiles will be
more powerful than the current bullets or mines. These missiles won't
behave like bullets, so they won't be able to hit something in their path.
They will be launched from a ship and go straight into the air to high
altitude. After that they will travel their distance and impact and
detonate on a certain area of the battle arena. Every ship in the blast
radius of the missile will be hit and damaged.
Impact on game strategy
The impact on the game strategy will be that the robocoders of ships will
have to take in account a new type of weapon. There needs to be way the
ships can estimate a location where the missile will most likely impact, so
they can handle accordingly, or not.
Changes in game rules
The minimum and maximum damage of missiles needs to be defined in the
rules. The maximum distance a missile can travel also needs to be in the
rules. The energy it takes to fire a missile needs to be significantly
higher than a bullet or a mine, since it will do more damage. Firing
missiles is not something you should be able to do over and over again.
Islands
Elaboration
The plan to implement islands into the arena is to create more dimension
in the game. I want the islands to block radar scans so that you cannot see
everything around you in a certain radius anymore. This creates an element
of surprise, since you do not know what can be lurking behind the island.
Maybe it is an idea that certain types of weapons(missiles in particular)
can damage an island. To do that the island would need a certain amount of
life or an energy level. This will enable the island to be destroyed after
a certain amount of hits. If this does not get implemented it will
basically just function like some kind of wall somewhere in the arena,
since it should behave the same way. Maybe we can let the island be
randomly generated, in terms of size and maybe shape.
Impact on game strategy
The impact this will have on the strategy is that it creates an element of
surprise. If you do not know what's behind an island, you'll have to either
circle around it to find out. Or you have to move away from there. This
forces the robocoder to think about whether he wants to take that risk, or
not.
Changes in game rules
In case an island can actually get destroyed, there could be a set life or
energy value defined in the game rules. It is also an option to make the
energy or life value depend on the size of the island, if it will be
randomly generated.
Composition of ships
Elaboration
At the moment every ship that the robocoder can program is the same. I
have the idea to make the robocoder decide the composition of his own ship.
So for example he can have an extra powerful radar instead of a mine
launcher, an extra powerful front cannon instead of a back cannon,
etcetera. The idea was to make some sort of point system, or a maximum
amount of components a ship can have.
Impact on game strategy
It would add a new form of flexibilty to the game because not every ship
will be the same anymore. It would also force the robocoder to choose the
approach he wants to take, he can sacrifice his back cannon to create an
extra powerful front cannon, this gives the robocoder more freedom.
Changes in game rules
The rules will need to contain some form of point system or maximum amount
of components which the robocoder is allowed to use.
Submarines
Elaboration
The idea was to create a new type of ship, this creates more dimension in
the game once again. I want to make the normal radars, not detect the
submarine. This would be a way to make use of the composition of ships,
because you would need a sonar to detect a submarine. Submarines will be
more fragile than normal ships so the game remains a bit more balanced. I'm
thinking about making some weapons able to hit a submarine and making some
unable to. I was planning to make missiles, mines and torpedo's(see below)
able to hit a submarine, but normal bullets will not be able to.
Impact on game strategy
A robocoder will need to take into account that a new type of ship can be
lurking in the deep. If you don't have a sonar you will be blind for what
happens under water. So he will need to decide whether he wants to take
that risk, or not. If the robocoder is planning to use a submarine, he
needs to decide whether the fact of being more fragile, outweighs the fact
of being harder to detect.
Changes in game rules
The maximum energy level of submarines needs to be specified in the rules
since it needs to be lower than a normal ship. The rules also need to
contain which type of weapons can hit a submarine. I also think it is a
good idea to give the submarine less available components to use, due to
its advantages.
Torpedoes
Elaboration
This is a certain type of self-propelling missile which travels trough
water and detonates on hitting a ship or wall. The idea was to make this
new type of weapon available to both normal ships and submarines. Torpedoes
will travel at a lower speed than normal missiles and bullets, but will be
faster than ships or submarines. The damage a torpedo will do to a ship or
submarine will be in-between a missile and a mine. The damage done to a
submarine will be higher(almost critical) than to a normal ship.
Impact on game strategy
This is a new aspect the robocoder will need to pay attention to,
especially if he chooses to use a submarine. The ships will need to have a
possibility to monitor the torpedo and act accordingly, or not.
Changes in game rules
Minimum and maximum damage of torpedoes will be specified in the rules.
The extra damage a torpedo will do to a submarine, will be taken care of in
the submarine's classes.
------------------------------------------------------------
------------------------------------------------------------
----------------------------------------------------
With kind regards,
Colin
--
You received this message because you are subscribed to the Google Groups "robocode" group.
To unsubscribe from this group and stop receiving emails from it, send an
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "robocode" group.
To unsubscribe from this group and stop receiving emails from it, send an email to robocode+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
c***@gmail.com
2016-11-23 10:04:15 UTC
Permalink
Thanks a lot for your advice.
We also had the idea to organize at least one evening at the company so we
can try the game in a competitive way among colleagues.
I will keep you up to date on how things go.

-Colin
--
You received this message because you are subscribed to the Google Groups "robocode" group.
To unsubscribe from this group and stop receiving emails from it, send an email to robocode+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Loading...