IronDuke's I-War2 Remake/I-War3

More
6 years 10 months ago - 6 years 9 months ago #20626 by Chessking
I could have it so the textures are different for every install, but there are functions to prevent randomness as well. For example, in Javascript, the line
Code:
noiseSeed(0);
will prevent the Perlin noise function from looking different every time. (Unfortunately, this function does not work on Khan Academy. :( :( ) Also, I am not good enough at PCG (procedural content generation) for the textures to come out perfectly every time yet. That is another thing we will have to figure out later.

Edit(6/6/2017): The noiseSeed(0); function works on KA now! Yay!

This is one tough navy, boy. They don't give you time off, even for being dead. -Clay

Storm Petrel

Please Log in or Create an account to join the conversation.

More
6 years 10 months ago #20627 by IronDuke
Sorry for not responding sooner; I went on a hike on Saturday and [strike]got a huge sunburn[/strike] had a total blast, but it did keep me off the forum all day. :)

For the textures, I've been thinking about them and finally came to a decision. A major selling point of I-War 2 was the advanced texture features of DirectX 7. They had the ability to use realistic looking rust, plus a wear and tear effect. It was baked into the textures beforehand, obviously, and nobody thinks about it anymore because it's in every game on the planet now, but at the time, most games couldn't render such things in a realistic manner.

I want to keep to the original appeal of the game. The way autorepair works is that a bunch of nanobots rebuild the hull on a molecular level. This is gonna make every ship's hull have a slightly different pattern. Procedurally generating the main textures will enable every ship to have a unique look, and you can vary the amount of age shown depending on how old the ship is. Obviously some texturing will need to be done by hand, but I want that to be as little as possible.

I don't know where the idea of saving PCG textures to the hard drive came from; it defeats the entire purpose. When I refer to load times, I'm talking about the time required to pull data from a spinning hard drive. Even SSDs, fast as they are, will never trump the speed of generating the textures on the fly. It's a little silly of me to worry about speed, TBH, since even 2k textures on every model will load from a hard drive in a couple seconds, but I want PCG textures for that uniqueness it'll give every ship in game.

Best part is you can slowly increase the age of the player ship as the campaign rolls along, so by the end of Act 2 you'll notice your Tug is a lot more beat-up looking than it was when you got it. :evil:

--IronDuke

Very little about the game is not known to me. Any questions you got, throw them at me. :)
The following user(s) said Thank You: IronyMan

Please Log in or Create an account to join the conversation.

More
6 years 10 months ago #20628 by IronyMan
Okay, I see what you mean. I wasn't thinking about this on a deep enough hardware level, it seems.

The procedural textures will add a ton, you're right. Star Citizen has the same issue IW2 had; all the ships do look just the same. You're shooting for something better than that already.

Please Log in or Create an account to join the conversation.

More
6 years 10 months ago #20629 by Chessking
I have yet to discover how to generate textures faster then an image can be pulled from the hard drive. :dry: :dry: Perhaps I will discover how throughout this project. :woohoo: :woohoo: Untill then, no promises. :| My current programs work by saving the generated texture as an image, and drawing that image every frame. Because the image is not saved permanently to the hard drive, it has to be generated every time the game loads.

This is one tough navy, boy. They don't give you time off, even for being dead. -Clay

Storm Petrel

Please Log in or Create an account to join the conversation.

More
6 years 6 months ago #20643 by IronDuke
I had a literal shower thought this morning and have spent most of the day considering it. I was thinking of plugin modules for weapons, trying to come up with a clever way of balancing them.

Currently there's the Rapid Fire, Wide-arc, Cryo, and Recoil-damped PBCs. Once upon a time in development, they were going to be plugin modules for the regular PBC, enhancing various aspects of the weapon. They changed their minds and made them standalone weapons, though the encyclopedia entry for the normal PBC still mentions plugin modules. However, these four weapons are completely useless once you get Pulse-accelerated PBCs or anything bigger.

So in that mod I was making, I changed them back to plugin modules. It made equipping your weapons so much more fun, but unfortunately was rather overpowered. I also was thinking today about the problem with medium ships in I-War 2 having way too many hardpoints relative to the capital ships. All of it clicked together today, and I came up with a superb solution.

Say you have a normal PBC, for an example. It has four slots: two on the top, and one on each side. You can place a plugin module on each of these. If it's an external hardpoint, all four slots may be filled. However, if it's an internal hardpoint, the smaller ones will restrict the number of modules that may be equipped. Also, larger weapons like the Assault Cannon will take up more space, meaning that when mounted internally, they'll have even less room for modules. Also, when a weapon is mounted externally on a pylon, in vanilla EoC, you can slap a missile launcher on it. I plan to make that missile launcher occupy the two slots atop the weapon, leaving you with only the two on the sides.

This creates interesting problems involving choice and balances the modules nicely, so larger vessels will naturally be able to equip more of them. Plus, most of them increase power or heat in some way, which serves the same effect. All weapons in game will be able to have these modules, including turreted weapons. Missile launchers will have a single slot on the back for things like an extra magazine. Ammo-based weapons like the Gatling Cannon will have unique modules such as extra ammo feeds.

All this will allow me to reduce the firepower of ships like the Heavy Corvette (six neutron PBCs?! OP as flip) while significantly increasing the firepower of capital ships, all in fun and interesting ways. :evil:

Now, hopefully at some point I can figure out how I want to run the visibility mechanics. I'm still stuck on those. :dry:

--IronDuke

Very little about the game is not known to me. Any questions you got, throw them at me. :)

Please Log in or Create an account to join the conversation.

More
5 years 9 months ago - 5 years 9 months ago #20692 by IronDuke
"WARNING: WALL-O'-TEXT LAUNCH DETECTED"

Many apologies for completely failing to keep updating this thread; I've mostly just been posting updates on the Discord. :P I have quite a bit of stuff to mention!

Update on personal stuff: It seems my last post here in this thread was in September. o.O It does make sense though; at that time, I got sick and tired of being in high school, bent down, and worked my face off. I graduated at the end of last December, had already enrolled in college classes in November, and last spring was my first semester in college. It went great and I can confirm I am majoring in Computer Science. :D It did leave little time for hobbies, since I took 16 credits (full-time is 12) and I am gonna take 16 again in the fall semester which starts at the end of August. I'm also under a bit of pressure to find a part-time job as well, since I need to fund college from financial aid and out-of-pocket. I'm very skeptical of student loans and would prefer not to have to take any, even if it means working part-time while doing college full-time. :P Hence, the remake activity will likely be slow, except during summer breaks.

So enough about me! Let's talk remake! :D

There's a time limit on post edits, so I cannot actually edit the post I reserved on the first page. I'm gonna PM Schmatzler and ask for MOAR PARMESANS. I am going to put a to-do list there, containing all the individual components of what I'm announcing in the next paragraph. As I complete them, I'll edit the post to reflect that.

I'm in a good place to now announce that I am working on a playable prototype-test of the remake. ;) Contain your excitement; it's gonna be very basic. Here's the gist: you're in a Heavy Corvette, armed with (at the current stage of planning) two PBCs, a light PBC, two racks of Seekers, and a countermeasure launcher. Enemies (also Heavy Corvettes (subject to change though), with similar or identical armament) spawn about 15km away. First wave has 1, each successive wave has 1 more. You will eventually die, I guarantee it. :3 The idea is for people to provide feedback on the "feel" of the combat, and how much it immerses one into a universe that can clearly be identified as I-War. Probably, the models are gonna be untextured gray, the visual effects will be simple, and the damage model will be exactly the same as EoC but without system damage.

As likely none of you want to wait around for me to edit the first-page-post with status, bouncing in your seats like a toddler who needs to go, I'll give you a rundown here of the progress towards this instant-action style playable test.
-Turreted and gimballed capability are both fully implemented, though no damage modeling yet. (It's so simple I haven't done it yet.)
-The ability of weapons to track and predict target movements is 100% implemented. I'm telling you, it's crazy effective. There's partial compensation for acceleration, something EoC had nothing of, and the target is tracked based on the location of the actual weapon, whereas EoC tracked from the center of your ship, making large ships with wide-flung weapons inaccurate.
-Turrets will track targets individually, based purely on proximity. They do ignore targets outside of range/firing-arcs, and will return to their rest position when no viable targets are available. Tested using a Gunstar model I dragged in. :3 The same one you've seen me post a couple screenshots of.
-Those four little brackets around a target, at the corners, are now implemented in a basic form. You have no idea how hard it is to do something so simple-seeming. XD If you saw the code I had to write to calculate the farthest-bounds of the collider, in screenspace, you'd have a seizure.
-A glorious, fully functioning sensor system, with persistent data on targets no longer detected. (Meaning once a hostile ain't detected and you re-detect them, they're still hostile. :V That bug was embarrassing.)
Yet to do:
-The rest of the HUD. XD Seriously. This will be kinda slow; HUDs aren't easy.
-Missiles. Actually not that hard; I have a prototype created already.
-Basic combat AI. Oh boy, will this be hard, but gloriously fun to write. :D Won't have collision avoidance though, not yet.
-A spawning algorithm. I have one in another project that I'll just copy-paste, edit to work in 3-D space, and we're good to go.
-The damage system. As simple as "shot deducts 100 health from 1,000 HP pool, once at 0, boom." No damage modeling for systems will be in the test, nor will collisions inflict damage, since the AI won't be unstupid enough to avoid those. :V I also have one of these in another project that I'll just copy over.
-SHIELDS! The I-War franchise has the absolute best shield mechanic of any game I've ever seen, and I've played way too many. Implementing this will be FUN. :D It will be more realistic than EoC, with lighter weapons draining less shield power, and aspects of the EoC shields that they claimed were functional but actually weren't (like the shield being unable to block a second shot within a minimum time) will be there. Oh boy, I genuinely cannot wait to work on this :D Plus the bugs will be hilarious. :P Oh, and because shielding, enjoy rippling refraction effects! :D
-Music. Not like this is hard; literally just slap an audio file on the camera, set to loop, done. :3 You're doing literally one thing: combat. I'll use the vanilla game's instant action music, obviously :D
-Controller ID swapper. Lemme elaborate. Unity keeps track of game controllers by the numbers assigned to them, which is done by Windows. Unfortunately, if you have two identical controllers attached, Windows picks #1 and #2 at random when first detecting them, unless you plug them in while running in the order you want them. Even so, now and then, upon rebooting, it's swapped them. :P It's annoying, and Unity unfortunately has no way of distinguishing between identical sticks. In my case, i have two Thrustmaster T.16000M sticks. Left is translational control, right is attitude, but every now and then, Windows randomly swaps their IDs. So, I will implement a button in the Escape menu that will swap Unity's ID on controllers 1 and 2, as long as you have two plugged in. Don't use if you ain't having this problem, though :V
Things that definitely won't be in the test:
-LDS. Sorry, you're not escaping these attackers. :P If you somehow do manage to get far enough away, maybe I'll just kill you. I dunno. c: No capsule drive either, obviously.
-Graphics settings. Seriously, it's not like there's much in there to start with. :P If your PC is so potato that you can't run a prototype test with the models literally pulled from the original game and untextured, with simple effects, then I have no words for you. :V
-Literally anything else I haven't mentioned, with the possible exception of small random things I forgot.

I started typing this at 5 AM and there's a fair chance I forgot something obvious at some point. :P Hit me with your questions and comments, I wanna hear them. :3 Off to announce this post on the Discord, [strike]then start pestering our dear Schmatzler.[/strike] Edit: he has been pestered, and the second post in this thread now has a beautiful outline/roadmap of the progress towards the playable test for you to enjoy! :D

Happy Hunting!
--IronDuke

Very little about the game is not known to me. Any questions you got, throw them at me. :)
The following user(s) said Thank You: Marius Fusariu

Please Log in or Create an account to join the conversation.