{"id":20509316,"url":"https://github.com/raydac/battleships-resurrection","last_synced_at":"2025-06-24T10:37:28.871Z","repository":{"id":92138243,"uuid":"332278627","full_name":"raydac/battleships-resurrection","owner":"raydac","description":"Attempt to restore game-play of old demo-game Battleships written for E3 2001","archived":false,"fork":false,"pushed_at":"2025-05-13T08:04:37.000Z","size":45650,"stargazers_count":31,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-02T12:35:07.369Z","etag":null,"topics":["game","game-2d","game-development","game-history","history","j2me","java","java-game","java-game-dev","java-game-development","java-games-examples","java-swing","java-swing-applications"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raydac.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.txt","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-01-23T18:20:05.000Z","updated_at":"2025-05-13T08:04:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"26a71124-9bb8-4299-b6a4-7c3caea88984","html_url":"https://github.com/raydac/battleships-resurrection","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/raydac/battleships-resurrection","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raydac%2Fbattleships-resurrection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raydac%2Fbattleships-resurrection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raydac%2Fbattleships-resurrection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raydac%2Fbattleships-resurrection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raydac","download_url":"https://codeload.github.com/raydac/battleships-resurrection/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raydac%2Fbattleships-resurrection/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261653054,"owners_count":23190380,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["game","game-2d","game-development","game-history","history","j2me","java","java-game","java-game-dev","java-game-development","java-games-examples","java-swing","java-swing-applications"],"created_at":"2024-11-15T20:24:00.885Z","updated_at":"2025-06-24T10:37:28.839Z","avatar_url":"https://github.com/raydac.png","language":"Java","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=AHWJHJFBAWGL2"],"categories":[],"sub_categories":[],"readme":"![Battleships banner](assets/github_banner.png)\n\n[![License GNU GPL3](https://img.shields.io/badge/license-GNU%20GPL%203-yellow.svg)](http://www.gnu.org/licenses/gpl.html)\n[![Java 11.0+](https://img.shields.io/badge/java-11.0%2b-green.svg)](http://www.oracle.com/technetwork/java/javase/downloads/index.html)\n[![PayPal donation](https://img.shields.io/badge/donation-PayPal-cyan.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=AHWJHJFBAWGL2)\n[![YooMoney donation](https://img.shields.io/badge/donation-Yoo.money-blue.svg)](https://yoomoney.ru/to/41001158080699)\n\n\u003e A company called Game Federation in Sweden had created games for the Palm Pilot. They had employed Russian developers. - [Mikko Honkakorpi](https://www.linkedin.com/in/mikkoh/), [\"Finnish Video Games: History and Catalog\"](https://www.amazon.com/Finnish-Video-Games-History-Catalog/dp/0786499621) p.93\n\n# Changelog\n\n## 1.1.2 (24-dec-2022)\n - PC: added AppImage PC client version for amd64\n - PC: added Launch4j wraqpped PC client version (without embedded JDK)\n - PC: embedded JDK updated to 19.0.1+11\n - PC: updated GoSDK for launcher to 1.19.4\n\n\n## 1.1.1 (20-sep-2022)\n - __PC: windows launcher moved from i386 to amd64 to prevent antivirus false positive detection__\n - PC: embedded JDK updated to 17.0.4.1+1\n - PC: updated GoSDK for launcher to 1.19.1\n - PC: added MacOS DMG bundle for PC client\n\n\n[Full changelog](changelog.txt)\n\n# Disclaimer\n\n__All Copyrights to both graphics and sound stuff belong to their authors. The project is already 20 years old, and I\ncan't find any footsteps of companies involved into the project. All sources and materials have been published just to\nbe saved for history and as an example of game programming in Java for who may concern.__\n\n# What is it?\n\nIt is just a commemorative project in an attempt to restore and save old archived sources found on my disks.\n\nThe Battleships game project was started in the beginning of 2001 under umbrella of Ru-Soft Ltd. (Russia) by order of\nGamefederation company (Sweden) and had to be completed before the E3 2001 exhibition start. I have written pair\narticles on [habr.com](https://habr.com/ru/post/458124/) and\nin [my blog](http://raydac.blogspot.com/2015/05/the-battleships-game-e3-2001.html). The original project took about 2.5\nmonths and was successfully completed in time. For me the project is remarkable one because it was my first game\nexperience in J2ME world (a year later I took a part in a big mobile project for a Finnish company to produce 20 mobile\ngames in two months).\n\n# Screen-cast\n\nThere is short screen-cast of a game session including GFX-compatible server, restored PC-client and emulated Motorola\nA008 client.\n\n[![Link to the youtube screen-cast](assets/game-session-screenshot-youtube.jpg)](http://www.youtube.com/watch?v=f1cfqRjnRgk \"Battleships screencast\")\n\n# Pre-built components\n\n| OS                                           |  Download link                                                                                                                                                                                | \n| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| ![Windows](assets/icons/win64x64.png)        | __[Game client for Windows amd64 (JRE included)](https://github.com/raydac/battleships-resurrection/releases/download/1.1.2/battleships-resurrection-1.1.2-windows-jdk-amd64.zip)__           |\n| ![Windows](assets/icons/win64x64.png)        | __[Game client for Windows (No JRE)](https://github.com/raydac/battleships-resurrection/releases/download/1.1.2/battleships-resurrection-1.1.2.exe)__                                         |\n| ![OSX](assets/icons/macos64x64.png)          | __[Game client for OSX amd64 (JRE included)](https://github.com/raydac/battleships-resurrection/releases/download/1.1.2/battleships-resurrection-1.1.2-macos-jdk-amd64.zip)__                 |\n| ![OSX Arm64](assets/icons/macosarm64x64.png) | __[Game client for OSX aarch64 (JRE included)](https://github.com/raydac/battleships-resurrection/releases/download/1.1.2/battleships-resurrection-1.1.2-macos-jdk-aarch64.zip)__             |\n| ![Linux](assets/icons/linux64x64.png)        | __[Game client TAR.GZ for Linux amd64 (JRE included)](https://github.com/raydac/battleships-resurrection/releases/download/1.1.2/battleships-resurrection-1.1.2-linux-jdk-amd64.tar.gz)__     |\n| ![Linux](assets/icons/appimage64x64.png)     | __[Game client AppImage for Linux amd64 (JRE included)](https://github.com/raydac/battleships-resurrection/releases/download/1.1.2/battleships-resurrection-1.1.2-x86_64.AppImage)__          |\n| ![Java](assets/icons/java64x64.png)          | __[Game client, cross-platform JAR file](https://github.com/raydac/battleships-resurrection/releases/download/1.1.2/battleships-resurrection-1.1.2.jar)__                                     | \n| ![Java](assets/icons/java64x64.png)          | _[pre-built GFX-compatible server (only JAR)](https://github.com/raydac/battleships-resurrection/releases/download/1.1.2/gfx-playroom-server-1.1.2.jar)_                                      |\n| ![Java](assets/icons/java64x64.png)          | _[pre-built J2ME midlet for Motorola A008 (zipped JAD+JAR)](https://github.com/raydac/battleships-resurrection/releases/download/1.1.2/BattleShip_A008.zip)_                                  |\n\n__[Full set of pre-built components and clients on the latesr release page](https://github.com/raydac/battleships-resurrection/releases/latest)__   \n\n# Short historical review\n\nI took a part in the project as a Java developer and both the network communication part, and the mobile game client\nwere in my responsibility. The original PC game client was developed by another two developers in C++ exclusively for\nWindows (it strongly required Direct3D for work).\n\nInitially artists developed very detailed and smooth graphics and PC client got size about 160 Mb but then guys from\nGamefederation notified us that they were going to load the PC client distributive during presentation and 160 Mb was\ntoo big size for network in 2001. As solution, the game graphics was reworked, and it started look a bit blurry. The\nresulted PC client size was decreased to about 60 Mb.\n\n## Team\n\nAll guys directly involved in management and development in 2001 (as I recall):\n\n### Producing\n\n- [Mark Pinan](https://www.linkedin.com/in/markpinan/)\n- Alexander Dymov\n\n### Design\n\n- Vladimir Chernysh\n- [Dmitry Kholodov](https://www.linkedin.com/in/dmitry-kholodov-39394661/)\n\n### Sound effects\n\n- some great game sound designer (I don't remember his name)\n\n### C++ development\n\n- [Sergey Kuligin](https://www.linkedin.com/in/sergeykuligin/)\n- a student (I don't remember his name)\n\n### Java development\n\n- [Christian Andersson](https://www.linkedin.com/in/christianand/)\n- [Markus Persson](https://www.linkedin.com/in/markus-persson-7282513/)\n- [Igor Maznitsa](https://www.linkedin.com/in/igormaznitsa/)\n\n# Requirements to build\n\n## Mobile client\n\nThe mobile client is most hard part today to be built because it requires Sun WTK 2.5.2 and JDK 1.5, they both can be\nstill found on Oracle site, but I am not sure that the picture will be the same during next several years. I have\nrestored some Motorola A008 device profile for the WTK, and it can be used to get picture of working device. To be\nhonesty I have not ever saw working mobile client on the real device because during development it was an absolutely new\ndevice with GPRS support and guys in Sweden had to visit the Sweden Motorola laboratory to test the client to write\nreport for me, it was very long way to debug.\n\n![A008 screenshot](battleships-resurrection/battleships-client-a008/assets/emulator_screenshot.jpg)\n\nTo build the mobile client from the project root, you need use maven profile `midlet` and tune paths in the pom to your\ninstalled JDK 1.5 and keep in mind that the `preverify` tool is presented only for Linux.\n\n## PC client\n\nThe PC client has been totally rewritten in pure Java 11. I didn't have sources of C++ client (only graphics and sound\nresources from the technical version), so that I had to restore whole game process from the scratch (but I've made an\nendeavor to make it as much as possible close to the original one). The most terrible part was to calculate offsets and\nship arrangements on the field because I had not any contact with designers of the original game and many steps I made\nthrough guesswork.\n\nThe new client is cross-platform one (in opposite to the original one which could work only under Windows with installed\nDirect3D) and there are versions for Windows, Linux and MacOS. The client jar file can be started on any platform where\nprovided JDK 11 because it doesn't use any third-part libraries and only Swing+Java2D+JavaSound in use for media.\n\n| Original PC client (Windows 10)                       | Restored PC client (Ubuntu 20.04)                |\n| ----------------------------------------------------- | ------------------------------------------------ |\n| ![Screenshot](assets/original_win_game_screenshot.jpg)|![Screenshot](assets/restored_game_screenshot.jpg)|\n\nThere is not any magic to build the PC client. The project has been formed as a regular maven project and can be build\nwith `mvn`, if you want build cross-platform result images then use maven profile `publish`.\n\n## Multi-player modes\n\n### GFX play-room\n\nIt is the original minimalistic GFX-compatible standalone play-room server which was prepared by me for E3 2001 in april 2001. I have no changes in found sources, and it contains all my one-year experience Java coding and errors. The server also formed as maven project and even can be started directly through `exec:java`.\n\nI could not find either documents or presentations about the GFX platform on my disks. As I recall, the real\nproduction-ready GFX server was delivered as a module for BEA WebLogic server. The standalone solution is not fully\nproduction-ready because it was developed for restricted use in bounds of presentations but allows organising game\nsessions between clients.\n\n### LAN serverless\n\nIt is new multi-player mode allows organizing game between two PC clients in LAN (local area network). The mode requires\naccess for UDP-TCP ports to read-write. After start, you see in special dialog all PC clients in the LAN-network who are\nready for game, and you can send invitation to one of them or get request from them. After agreement the game will be\nstarted.     ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraydac%2Fbattleships-resurrection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraydac%2Fbattleships-resurrection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraydac%2Fbattleships-resurrection/lists"}