{"id":1558,"date":"2019-06-18T00:00:00","date_gmt":"2019-06-17T22:00:00","guid":{"rendered":"https:\/\/demo.sidekick.be\/itenium\/robocode-installation\/"},"modified":"2025-11-28T13:31:44","modified_gmt":"2025-11-28T12:31:44","slug":"robocode-installation","status":"publish","type":"post","link":"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/","title":{"rendered":"Robocode Installation &#038; Debugging"},"content":{"rendered":"<h1 id=\"install-robocode\">Install Robocode<\/h1>\n<p>Prerequisites:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.oracle.com\/technetwork\/java\/javase\/downloads\/jdk8-downloads-2133151.html\">Java JDK 6+<\/a><\/li>\n<li><a href=\"https:\/\/sourceforge.net\/projects\/robocode\/files\/robocode\/1.9.3.3\/\">robocode-1.9.3.3-setup.jar<\/a><\/li>\n<\/ul>\n<p>Or follow the official <a href=\"http:\/\/robowiki.net\/wiki\/Robocode\/System_Requirements\">step by step instructions<\/a>.<\/p>\n<p>If you get a <em>\u201c\u2018java\u2019 is not recognized as an internal or external command\u201d<\/em>, then <a href=\"http:\/\/robowiki.net\/wiki\/Robocode\/System_Requirements#Setting_environmental_variables_on_Windows\">add your JDK to PATH<\/a>.<\/p>\n<h1 id=\"building-a-robot\">Building a Robot<\/h1>\n<h2 id=\"in-the-robocode-ui\">In the Robocode UI<\/h2>\n<p>Robot &gt; Source Editor (Control + E) &gt; New Robot (Control + N)<\/p>\n<p>This will generate something like:<\/p>\n<pre><code class=\"language-java\">public class MyRobot extends Robot\n{\n    public void run() {\n        setColors(Color.red, Color.blue, Color.green); \/\/ body, gun, radar\n\n        while(true) {\n            ahead(100); \/\/ pixels\n            turnGunRight(360); \/\/ degrees\n            back(100);\n            turnGunRight(360);\n        }\n    }\n\n    public void onScannedRobot(ScannedRobotEvent e) {\n        fire(1); \/\/ Strength between 0.1 and 3.0\n    }\n\n    public void onHitByBullet(HitByBulletEvent e) {\n        back(10);\n    }\n    \n    public void onHitWall(HitWallEvent e) {\n        back(20);\n    }   \n}\n<\/code><\/pre>\n<p>Extend either <code>Robot<\/code> or <code>AdvancedRobot<\/code>. An AdvancedRobot:<\/p>\n<ul>\n<li>Loses energy when bumping into walls.<\/li>\n<li>Can have non-blocking calls (<code>setXXX() methods<\/code>), custom events and FileSystem access.<\/li>\n<\/ul>\n<p>When you are ready for battle, use: Compiler &gt; Compile (Control + B) in the Source Editor.<\/p>\n<h2 id=\"in-eclipse\">In Eclipse<\/h2>\n<p>New Project:<\/p>\n<ul>\n<li>Libraries &gt; Add External JARs\u2026: Add <code>libs\/robocode.jar<\/code>.\n<ul>\n<li>External annotations &gt; Edit: Javadoc is bundled with Robocode.<\/li>\n<\/ul>\n<\/li>\n<li>Do not create a <code>module-info.java<\/code>.<\/li>\n<li>Add a new Java Class with Superclass: <code>robocode.Robot<\/code>.<\/li>\n<\/ul>\n<p>Be sure your final robot is <a href=\"http:\/\/robowiki.net\/wiki\/Robocode\/Package_Robot\">packaged<\/a>! A <code>*<\/code> appears in-game next to a robot\u2019s name if it is a development version.<\/p>\n<h4 id=\"robocode-ui\">Robocode UI<\/h4>\n<p>Add the project\u2019s <code>bin<\/code> folder in the Robocode UI:<br \/> Options &gt; Preferences &gt; Development Options &gt; Add<\/p>\n<h3 id=\"debugging\">Debugging<\/h3>\n<p>Run as &gt; Run configurations &gt; Java Application<\/p>\n<ul>\n<li>Main class: <code>robocode.Robocode<\/code><\/li>\n<li>Arguments &gt; VM arguments: <code>-Xmx512M -Dsun.io.useCanonCaches=false -Ddebug=true<\/code><\/li>\n<li>Arguments &gt; Working directory &gt; Other &gt; Robocode install path (ex: c:robocode)<\/li>\n<\/ul>\n<p>Do not point to a Robocode directory where the .NET plug-in is also installed!<\/p>\n<h2 id=\"in-visual-studio\">In Visual Studio<\/h2>\n<p>Download the <a href=\"https:\/\/sourceforge.net\/projects\/robocode\/files\/robocode\/1.9.3.3\/\">.NET plug-in for Robocode<\/a> and <strong>install in the same directory as Robocode itself<\/strong>!<\/p>\n<p>Create a .NET Framework project and reference <code>libsrobocode.dll<\/code>. See <a href=\"https:\/\/github.com\/itenium-be\/Robocode\"><code>dotnet-bots<\/code><\/a> for a minimal example.<\/p>\n<h4 id=\"robocode-ui-1\">Robocode UI<\/h4>\n<p>Add the <code>binDebug<\/code> folder in the Robocode UI:<br \/> Options &gt; Preferences &gt; Development Options &gt; Add<\/p>\n<p><a href=\"http:\/\/robowiki.net\/wiki\/Robocode\/.NET\/Create_a_.NET_robot_with_Visual_Studio\">Wiki<\/a><\/p>\n<h3 id=\"debugging-1\">Debugging<\/h3>\n<p>Project &gt; Properties &gt; Debug:<\/p>\n<ul>\n<li>Start external program: <code>C:Program FilesJavajdk1.8.0_211binjava.exe<\/code><\/li>\n<li>Command line arguments:\n<pre><code>-Ddebug=true -Xmx512M -cp libs\/robocode.jar;libs\/jni4net.j-0.8.7.0.jar -XX:+IgnoreUnrecognizedVMOptions \"--add-opens=java.base\/sun.net.www.protocol.jar=ALL-UNNAMED\" \"--add-opens=java.base\/java.lang.reflect=ALL-UNNAMED\" \"--add-opens=java.desktop\/sun.awt=ALL-UNNAMED\" robocode.Robocode\n<\/code><\/pre>\n<\/li>\n<li>Working directory: Where installed (ex: c:robocode)<\/li>\n<\/ul>\n<p>Be sure your final robot is a <code>Release<\/code> build!<\/p>\n<p><a href=\"http:\/\/robowiki.net\/wiki\/Robocode\/.NET\/Debug_a_.NET_robot_in_Visual_Studio\">Wiki<\/a><\/p>\n<h1 id=\"more-debugging\">More Debugging<\/h1>\n<p>Start Robocode UI in debug mode:<br \/><code>java -Ddebug=true -Xmx512M ...<\/code><br \/> Find the CLI arguments in <code>robocode.bat<\/code>.<\/p>\n<h4 id=\"robot-console\">Robot Console<\/h4>\n<p>See <code>out.println()<\/code> (or <code>Console.WriteLine()<\/code>) in your robot log by clicking on your robot name in the right top battle view pane in the UI. SYSTEM events and crash stack traces will also be printed in the robot console.<\/p>\n<h1>Also in this series<\/h1>\n<ul>\n<li>This Part: Robocode Installation &#038; Debugging<\/li>\n<li>Part 2: <a href=\"\/design\/robocode-tutorial\/\">Robocode Tutorial<\/a><\/li>\n<\/ul>\n<h1>Extras<\/h1>\n<p><b>Stuff that came into being during the making of this post<\/b><\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/itenium-be\/Robocode\">Example Eclipse and Visual Studio Robocode projects<\/a><\/li>\n<\/ul>\n<p><b>Other interesting reads<\/b><\/p>\n<ul>\n<li><a href=\"https:\/\/robocode.sourceforge.io\/\">Official Robocode site<\/a><\/li>\n<li><a href=\"http:\/\/robowiki.net\/wiki\/Robocode\">Robocode Wiki<\/a><\/li>\n<\/ul>\n<h1> Package Versions <i class=\"fa fa-info-circle\" style=\"float: right; color: cornflowerblue; font-size: 28px\" title=\"Package versions used for this post and in the accompanying code on Github\"><\/i><\/h1>\n<div><a href=\"https:\/\/github.com\/robo-code\/robocode\" class=\"github\"><img decoding=\"async\" src=\"https:\/\/img.shields.io\/github\/stars\/robo-code\/robocode.svg?style=social&#038;label=Star\" \/><\/a><a href=\"https:\/\/github.com\/robo-code\/robocode\">robo-code\/robocode<\/a>: v1.9.3.3 <\/div>\n","protected":false},"excerpt":{"rendered":"<p><a href=\"https:\/\/github.com\/robo-code\/robocode\" class=\"github\"><img decoding=\"async\" src=\"https:\/\/img.shields.io\/github\/stars\/robo-code\/robocode.svg?style=social&amp;label=Star\" \/><\/a><a href=\"https:\/\/github.com\/robo-code\/robocode\">robo-code\/robocode<\/a>: Build the best &#8211; destroy the rest!<\/p>\n<blockquote>\n<p>Robocode is a <strong>programming game<\/strong>, where the goal is to develop a robot battle tank to battle against other tanks in Java or .NET. The robot battles are running in real-time and on-screen.<\/p>\n<\/blockquote>\n","protected":false},"author":1,"featured_media":2064,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[27],"tags":[20],"class_list":["post-1558","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-design","tag-fun"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Robocode Installation &amp; Debugging - Itenium<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Robocode Installation &amp; Debugging - Itenium\" \/>\n<meta property=\"og:description\" content=\"robo-code\/robocode: Build the best - destroy the rest!Robocode is a programming game, where the goal is to develop a robot battle tank to battle against other tanks in Java or .NET. The robot battles are running in real-time and on-screen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/\" \/>\n<meta property=\"og:site_name\" content=\"Itenium\" \/>\n<meta property=\"article:published_time\" content=\"2019-06-17T22:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-28T12:31:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/robocode.png\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"360\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Usdevelop\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Usdevelop\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/\",\"url\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/\",\"name\":\"Robocode Installation & Debugging - Itenium\",\"isPartOf\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/robocode.png\",\"datePublished\":\"2019-06-17T22:00:00+00:00\",\"dateModified\":\"2025-11-28T12:31:44+00:00\",\"author\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/6ab401ce01e858184ee4a8667fe0f022\"},\"breadcrumb\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/#primaryimage\",\"url\":\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/robocode.png\",\"contentUrl\":\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/robocode.png\",\"width\":300,\"height\":360},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/demo.sidekick.be\/itenium\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Robocode Installation &#038; Debugging\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#website\",\"url\":\"https:\/\/demo.sidekick.be\/itenium\/\",\"name\":\"Itenium\",\"description\":\"We build software. We build careers.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/demo.sidekick.be\/itenium\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/6ab401ce01e858184ee4a8667fe0f022\",\"name\":\"Usdevelop\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cc8cf9b9e9d5bbe7e8d247907cc9ac8457bbfa2854b52eaddf6529adfe88ceab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cc8cf9b9e9d5bbe7e8d247907cc9ac8457bbfa2854b52eaddf6529adfe88ceab?s=96&d=mm&r=g\",\"caption\":\"Usdevelop\"},\"sameAs\":[\"https:\/\/demo.sidekick.be\/itenium\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Robocode Installation & Debugging - Itenium","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Robocode Installation & Debugging - Itenium","og_description":"robo-code\/robocode: Build the best - destroy the rest!Robocode is a programming game, where the goal is to develop a robot battle tank to battle against other tanks in Java or .NET. The robot battles are running in real-time and on-screen.","og_url":"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/","og_site_name":"Itenium","article_published_time":"2019-06-17T22:00:00+00:00","article_modified_time":"2025-11-28T12:31:44+00:00","og_image":[{"width":300,"height":360,"url":"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/robocode.png","type":"image\/png"}],"author":"Usdevelop","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Usdevelop","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/","url":"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/","name":"Robocode Installation & Debugging - Itenium","isPartOf":{"@id":"https:\/\/demo.sidekick.be\/itenium\/#website"},"primaryImageOfPage":{"@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/#primaryimage"},"image":{"@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/#primaryimage"},"thumbnailUrl":"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/robocode.png","datePublished":"2019-06-17T22:00:00+00:00","dateModified":"2025-11-28T12:31:44+00:00","author":{"@id":"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/6ab401ce01e858184ee4a8667fe0f022"},"breadcrumb":{"@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/#primaryimage","url":"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/robocode.png","contentUrl":"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/robocode.png","width":300,"height":360},{"@type":"BreadcrumbList","@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/design\/robocode-installation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/demo.sidekick.be\/itenium\/"},{"@type":"ListItem","position":2,"name":"Robocode Installation &#038; Debugging"}]},{"@type":"WebSite","@id":"https:\/\/demo.sidekick.be\/itenium\/#website","url":"https:\/\/demo.sidekick.be\/itenium\/","name":"Itenium","description":"We build software. We build careers.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/demo.sidekick.be\/itenium\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/6ab401ce01e858184ee4a8667fe0f022","name":"Usdevelop","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/cc8cf9b9e9d5bbe7e8d247907cc9ac8457bbfa2854b52eaddf6529adfe88ceab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cc8cf9b9e9d5bbe7e8d247907cc9ac8457bbfa2854b52eaddf6529adfe88ceab?s=96&d=mm&r=g","caption":"Usdevelop"},"sameAs":["https:\/\/demo.sidekick.be\/itenium"]}]}},"_links":{"self":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/posts\/1558","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/comments?post=1558"}],"version-history":[{"count":3,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/posts\/1558\/revisions"}],"predecessor-version":[{"id":2290,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/posts\/1558\/revisions\/2290"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/media\/2064"}],"wp:attachment":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/media?parent=1558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/categories?post=1558"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/tags?post=1558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}