Entian Posted October 29, 2017 Share Posted October 29, 2017 Hello everyone, in late 2013 I started experimenting with what is possible using JavaScript/WebGL (coming from a computer engineering - C++/Java university background). Over time it grew into a game engine and then this game, as I worked on it in my free time next to full time jobs and more recently, contracting work. So it is entirely custom code (the only library used is RequireJS to load the JS files themselves), and I made all the assets as well (models, textures, music, sound effects (using some free CC licensed sound samples as a base) - you can find details in the "About" page in the game. As a result, the engine features and asset quality are rather modest. It is still heavily work in progress as the title suggests, but it has become quite playable recently, so I decided to share it here. About the game My goal is to create a fully fledged 3D space sim with procedurally generated missions that can be played on any computer with a modern browser. I am going for more of a softcore sim feel rather than an arcade one (there are many arcade options these days, but I prefer the more serious, elaborate controls of sims, without the time/hardware investment needed for something like Elite: Dangerous - which also doesn't run on my linux machine) Check out the facebook page, where I post updates and you can also find a recent gameplay teaser video. Game features (so far): full 3D, 6 degrees of freedom gameplay Newtonian physics (with flight assist) basic combat mechanics (primary weapons, shields, flight modes, targeting) 11 simple, authored missions (+3 training missions) against AI in-game database with info about the ships detailed, persistent graphics and control settings graphics settings automatically lowered if default settings are not supported by the hardware (high FPS is not ensured, only that it runs) joystick support an editor to mod the game (even more WIP/unstable than the game) Planned (missing :)) features: procedural missions, with ship upgrades in-between advanced combat mechanics (missiles, jamming, boosting, communication with wingmen) more content (ships, weapons, more detailed environments....) multiplayer Also a lot of polish, HUD changes, performance optimizations etc are planned. You can get a general idea by checking out the issues page of the game's github. Please note! The download size for the game can be significant (tens of MBs - depends on graphics settings and the mission being loaded), so I do not recommend trying it with a plan where you pay based on the amount of data! Play it here Let me know what you think! Technical info You can check out the code at https://github.com/nkrisztian89/interstellar-armada. Feel free to fork it - since it is 100% client side code, you can just throw it into the public HTML folder of your server (e.g. Apache) and it should work locally right away. Then you can use the built-in editor in the tools folder (localhost/the_folder_you_put_the_game/tools) to see how the game data files are organized, play with them (to apply the changes just hit export and then overwrite the original with the exported file in the data folder). Note that you cannot create or export missions or edit config/settings from the editor (as of now) Since this is a long project and I regularly revisit and update parts of the codebase that I might have not touched for a year or so, I try to keep it organized and nicely commented even if just for myself. However, this is not the number one priority, so there are parts of the codebase (which at this point grew above 60,000 lines) which are in terrible, terrible shape. I believe the best example of this currently is the code for the HUD. Skeptron, plicatibu and msanatan 3 Quote Link to comment Share on other sites More sharing options...
Stephan Posted October 29, 2017 Share Posted October 29, 2017 Wow, this is really impressive! It is as you created not only the game but the entire unity engine with it. I can hardy believe this is open source. Keep up the great work Quote Link to comment Share on other sites More sharing options...
Entian Posted October 31, 2017 Author Share Posted October 31, 2017 Thank you Stephan! Although the engine is nowhere near something like Unity, or even smaller, single-platform engines. It is specialized only for 3D, 6-DOF space shooters. The upside of that is the game runs on hardware as bad as my low-spec phone (although I haven't implemented touch controls, and the game by design is desktop-focused), while the Unity WebGL games (even simpler ones) just crash in the middle of the loading phase. Quote Link to comment Share on other sites More sharing options...
HeadClot Posted November 1, 2017 Share Posted November 1, 2017 Hey @Entian - This looks really cool. Got a few Questions though - 1. You mentioned Joystick support in the main post but is there throttle support? 2. What 3D rendering engine is this using? Three.JS, Bablyon.JS, etc. 3. Are there plans for VR Support? The Game looks awesome so far. Cannot wait to see more Quote Link to comment Share on other sites More sharing options...
inteja Posted November 1, 2017 Share Posted November 1, 2017 @Entian this looks really great and I'm looking forward to playing it but I've tried twice now and it's completely crashed my MacBook Pro, forcing a hard reboot each time. MacBook Pro 13" 2.3GHz Core i5, 8Gb RAM, Intel Iris 640 graphics. Tried basic training mission, all assets load and game starts. Looks like it registers keyboard input for about a second then everything freezes up. I think it might be overheating. Haven't had any issues with any other WebGL content as yet. Quote Link to comment Share on other sites More sharing options...
Entian Posted November 1, 2017 Author Share Posted November 1, 2017 @HeadClot Thank you! Good questions! Sorry if the answers turned out a bit long. 1. At the moment, only a single controller is supported. So if you have a throttle that is separate from your joystick, unfortunately there is no way to set it up (I plan to add support for this later). However, if you have a throttle axis built into your joystick (as with my Thrustmaster T.16000M) or have a HOTAS controller that is built as a single device, it should work. I have not yet added a way to change the default bindings from inside the game, so if it has a different mapping than my Thrustmaster, it will not work out of the box, but you can set it up if you download/clone the game, change the default joystick bindings in the config/settings.json file (can be opened with any text editor, joystick settings are at the very and, pretty straightforward - you will need the "forward" and "reverse" actions) and then start the game locally. You can find out which axis is your throttle by going here: http://luser.github.io/gamepadtest/. Axes start with 0 and are represented by the blue bars at the bottom. If you set up some good default bindings, you can send it to me along with your device info (the same as shown in the top at the linked page), so I can automatically set it up if that device is detected in a future version of the game. 2. I am using an entirely custom engine written from scratch, including for graphics (using the WebGL API directly). The graphics engine source files are js/modules/managed-gl.js and all the files in the js/modules/scene folder. I wrote it while learning WebGL, it is not the best/prettiest code and not as feature-rich as ThreeJS for example, but it is more optimized for some special things in this game. 3. Not in the near future. I don't have VR devices (or even a hardware that has enough performance for that) and the game has quite a lot of movement, even in 3D space, so as much as I know, it would not be a good candidate for VR because of motion-sickness. Quote Link to comment Share on other sites More sharing options...
Entian Posted November 1, 2017 Author Share Posted November 1, 2017 @inteja Thank you for the feedback! What browser have you used? I don't have a Mac available to test at the moment, but when I tested it quite a long time ago, there was a bug in Safari that caused similar symptoms to what you describe, while the game worked totally fine in Chrome (and in Opera, though terribly slowly). If it happens in all browsers, could you try to start the game (possibly in Chrome/Chromium) with the developer console open (cmd+shift+i in Chrome/Mac I believe) and send me what appears there before the game crashes? (try to get a screenshot before the freeze, or just take a photo of it with a phone if that is not possible) Quote Link to comment Share on other sites More sharing options...
inteja Posted November 1, 2017 Share Posted November 1, 2017 @Entian I was using Chrome when it crashed. Attached is a screenshot of console output as Chrome didn't save chrome_debug.log even with preserve enabled. Quote Link to comment Share on other sites More sharing options...
Entian Posted November 1, 2017 Author Share Posted November 1, 2017 @inteja Thank you for the log! I will look into this and post an update if I might have a fix. Quote Link to comment Share on other sites More sharing options...
marcgfx Posted November 2, 2017 Share Posted November 2, 2017 Cool project Entian I'm in similar shoes, but I didnt dare create a 3D engine like you did. Impressive! Just gave it a go. What I noticed was that I would really like a higher rate of fire and I found it quite confusing that I have to select a target to be able to shoot it. It would be nice if it didnt try to lock onto a target that is not even visible, allowing me to shoot straight in that case. Quote Link to comment Share on other sites More sharing options...
Entian Posted November 2, 2017 Author Share Posted November 2, 2017 Thanks for the compliment and the feedback, @marcgfx! The targeting mechanic currently is the same as for classic space sims (like Freespace), but I plan to add auto-targeting and firing in the direction of the mouse as well in the future. The rate of fire is different for each weapon, but now that you mention it, for the training weapon it is indeed very low and only for obsolete reasons, so I raised it for the next version. The 4/sec of the basic weapon feels good to me as there is a specific class of weapons with high rate (8-10/sec) planned for the future for those who like that play style, the current gun is just the tier 1/starter weapon. Quote Link to comment Share on other sites More sharing options...
Skeptron Posted November 4, 2017 Share Posted November 4, 2017 Mindblowing. Careful with the clicks sounds though, they really pierced my ear XD Quote Link to comment Share on other sites More sharing options...
Entian Posted November 5, 2017 Author Share Posted November 5, 2017 @Skeptron Thanks! And good point! It was accidental (because of a wrongly placed audio compressor node), I fixed it, should be alright in 0.4.4, coming in a few days. Quote Link to comment Share on other sites More sharing options...
Entian Posted November 8, 2017 Author Share Posted November 8, 2017 I have updated the game with the 0.4.4 release, bringing some polish and fixes and basic analytics integration just so that I can see if anybody else actually plays it The low training weapon fire rate and loud menu click sounds are fixed, too Quote Link to comment Share on other sites More sharing options...
Entian Posted May 19, 2018 Author Share Posted May 19, 2018 I have updated the game to 0.4.5. There is a new mission with a new playable fighter, and I've done lots of performance optimizations on the engine (preparing for an upcoming version playable on mobile phones) Vincent Courtney and HeadClot 2 Quote Link to comment Share on other sites More sharing options...
Vincent Courtney Posted May 9, 2019 Share Posted May 9, 2019 I really like this game but could you add some collision detection so you can't fly through the other ships? Quote Link to comment Share on other sites More sharing options...
Entian Posted May 14, 2019 Author Share Posted May 14, 2019 On 5/10/2019 at 12:25 AM, Vincent Courtney said: I really like this game but could you add some collision detection so you can't fly through the other ships? Thank you! It is in the plans, although I did not have much time for development lately, so I cannot promise it will come soon. I have some changes already done for the next version (touchscreen controls and some important fixes for broken rendering on certain machines and more music tracks), which can be expected soon, but collision is not included yet. I do have some ideas for a solution that might work decently enough and would be fast enough for the browser, if that works out, I could push it out in the next months. Vincent Courtney 1 Quote Link to comment Share on other sites More sharing options...
Langerz82 Posted June 11, 2019 Share Posted June 11, 2019 Hello, Is this project still in active development? If it is I would like to perhaps create an alpha prototype of multiplayer using TCP/UDP and Node.js. Quote Link to comment Share on other sites More sharing options...
Entian Posted June 12, 2019 Author Share Posted June 12, 2019 Hello, "active development" is probably not the appropriate term, since I have last committed in March and the latest release is from last May. I have been busy with commissioned project work recently, but it is still on my mind almost every day, so it isn't abandoned in that sense. I want to put out at least one major update this year. Feel free to create a fork for multiplayer and if you need any assistance or have questions, let me know. If it works out great, we can merge it back upstream. Krisztián Quote Link to comment Share on other sites More sharing options...
Vincent Courtney Posted February 11, 2020 Share Posted February 11, 2020 Hi again. I really hope you did not give up on this project. I was really looking forward to the finished project. Quote Link to comment Share on other sites More sharing options...
Entian Posted February 13, 2020 Author Share Posted February 13, 2020 Hello, I have not given up, there are just other priorities in my life. In fact the next version is almost done! It has missiles (and more), but no collision between ships yet, sorry. I will try to release it in the coming weeks, there are just some finishing touches I want to take care of before. Quote Link to comment Share on other sites More sharing options...
Entian Posted December 28, 2020 Author Share Posted December 28, 2020 Hello everyone, after some detours and feature-creep, here is the next version of the game: 0.4.6, complete with homing missiles, responsive menu layouts and the ability to create and play your own missions. Experimental touch controls are added, too, though there is no tutorial for them as of yet and there are some bugs. There are no visible buttons, the screen is simply divided to 4 quadrants: use bottom left of screen to turn (just press down and move the finger around) top left to set speed (swipe up / down to accelerate / decelerate, tap to stop, swap right to change flight mode) tap top right to switch target or tap with two fingers to change missile (if you have multiple types), long tap to target friendlies press bottom right to fire primaries (tap with two fingers to launch missile, or hold and move the finger to move sideways while firing primaries) tap top left with two fingers to engage the jump drive when the mission is complete, tap with three fingers for in-game menu. See full release notes: https://github.com/nkrisztian89/interstellar-armada/releases/tag/v0.4.6-alpha Wish you all happy holidays and joyful gaming, Krisztián msanatan 1 Quote Link to comment Share on other sites More sharing options...
Entian Posted March 26, 2022 Author Share Posted March 26, 2022 Hello everyone, recently I have released a new update, 0.5.0! It includes a basic multiplayer (and I mean really basic, 2-4 player FFA last man standing), a lot of improvements and new capabilities for the mission editor and with it, a built-in feature in the game where custom missions can be uploaded and if I approve them, they can be played by anyone. I also improved the controller/joystick support (the active controller can now be selected in the menu; there are multiple mappings to choose from; if the controller is recognized as a gamepad, a default mapping I put together for gamepads is used by default; and on Chrome, vibration also works when the player is hit) There are also new spacecrafts and a new mission that takes place in a nebula (which has effects on the gameplay as well). If you are on Ubuntu, you can now also install the game directly from the Software application, as it is packaged as a snap (with Electron). Note that for joystick/gamepad support, in this case you will need to open the permissions page and tick the missing two permissions about hardware and joystick access. If you are on other Linux distros, there is an appimage available as well on the release page. As usual, the full release notes can be read here: https://github.com/nkrisztian89/interstellar-armada/releases/tag/v0.5.0-alpha Enjoy! Krisztián Quote Link to comment Share on other sites More sharing options...
Entian Posted April 30, 2022 Author Share Posted April 30, 2022 Hello everyone, I have just released version 0.5.1, the biggest feature of which is the long awaited (e.g. by @Vincent Courtney ) collision detection. I have added a ton of small optimizations to compensate, as collision detection can be quite costly. By reducing the amount of new memory allocated each frame, I managed to match or exceed the performance that I was measuring in the previous version. It is also my own custom implementation and definitely not perfect, but it still beats spaceships flying through each other. I might improve it in the future. There are also some fixes and smaller editor improvements included. https://github.com/nkrisztian89/interstellar-armada/releases/tag/v0.5.1-alpha Enjoy! Krisztián Quote Link to comment Share on other sites More sharing options...
Entian Posted September 3, 2023 Author Share Posted September 3, 2023 Hello people, The game is still under development (I don't think I will ever stop). To those who are still interested: I have just released version 0.5.4 with a new mission (two if we count from 0.5.1 which was last announced here) and the first real space station as well as a much more complete tutorial and improvements for the mission editor (a lot if we count from 0.5.1). https://github.com/nkrisztian89/interstellar-armada/releases/tag/v0.5.4-alpha Enjoy! Krisztián Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.