Sector Six can now be paused!
That's something that game needed for a long time. With key customization and pause systems in place, game engine is practically completed! That means boring updates are almost over! Finally I'll be able to work on the content updates. So, next week I plan to add new ways to leave the game, like exiting to main menu and then begin preparing game for the combat overhaul release! This is what I need to do: Implement new ways to exit game. Implement fusion abilities. Update tutorial. Fix issues with balance. Fix ether and armour bars. Fix enemy segment armour. Fix amplifiers and hard mode. Clean up interfaces. Add new boss. Add new abilities. Add new enemies. I'll be bringing this list back in every echo until it's completed and I can release new version. It should take a month or so to do that. When combat overhaul will be released, game will become beta, as all core features will be implemented. There's good news and bad news. The bad: After combat overhaul release I will no longer update game, because I will begin selling updated versions on Itch.io and hopefully on IndieGameStand or even Steam store. So, the newest game version will no longer be free. The good: Alpha game will stay free and the last update will add a lot of new content, like new abilities, new enemies, new achievements, epic boss and, of course, new combat. I will not stop supporting alpha version, I'll continue fixing bugs and balancing issues. I really hope Sector Six will sell well, because living off game development is my biggest dream right now. Until next week!
0 Comments
This week was very good for Sector Six, because I have managed to implement key remapping or as I call it, control customization system, bring back ether to the game and began updating technology interface. I also ran few long tests and I was very happy to find out, that all those game systems are finally starting to work! It seems that my attempts to improve game by making parts rarer, preventing level from giving armour, limiting weapons, etc, were not waste of time. Anyway, when new abilities came out, they didn't required ether to use them. Well, evil laugh, now they do! Even better - ether doesn't regenerate anymore! Regeneration is a disgusting mechanic. It makes being idle in the game into something you might consider doing! That makes no sense, considering that the games are here mostly to fight boredom! Regeneration was extremely harmful to Sector Six, because hiding from enemies and waiting for armour, ether or alloy container charges to regenerate was very easy. In the past I have removed armour regeneration. Now I removed ether regeneration. In future alloy containers with regenerating charges will also disappear! Regeneration will be completely replaced with generation when you destroy enemy or demolish ruins. Or initial generation for ether and alloy container charges. With ether regeneration gone, all ether providing parts became much more useful, making spaceship building more fun than ever. Ether rework had huge impact on the gameplay, but it's minor change compared to the fact that Sector Six now has perfect controls! How? You can now go to settings and change movement, ability, dialogue and alloy container keys to almost any key on the keyboard! For those who use GameMaker: Studio and are interested in making key remapping in their games, here's how I did it: First, I had added bunch of buttons for every control in game. If, for example, you press container use button and then press T on keyboard, container use key will be remapped to T. When you click button, the variables mode_remap and selected_key are set. For example, if you click container use button, selected_key is set to 14. These variables are then used in the press any key event. /// Press < any key> event if mode_remap = true { if scr_check_key() = true { mode_remap = false; switch(selected_key) { case 1: movement_up = keyboard_lastkey; break; case 2: movement_down = keyboard_lastkey; break; case 3: movement_left = keyboard_lastkey; break; case 4: movement_right = keyboard_lastkey; break; case 5: ability_1 = keyboard_lastkey; break; case 6: ability_2 = keyboard_lastkey; break; case 7: ability_3 = keyboard_lastkey; break; case 8: ability_4 = keyboard_lastkey; break; case 9: ability_5 = keyboard_lastkey; break; case 10: ability_6 = keyboard_lastkey; break; case 11: ability_7 = keyboard_lastkey; break; case 12: ability_8 = keyboard_lastkey; break; case 13: ability_9 = keyboard_lastkey; break; case 14: container_key = keyboard_lastkey; break; case 15: dialogue_key = keyboard_lastkey; break; case 16: engine_key = keyboard_lastkey; break; } } } scr_check_key script is here to prevent people from remapping to keys like caps lock and screen capture. /// scr_check_key() var allow = false; switch(keyboard_lastkey) { case vk_left: allow = true; break; case vk_right: allow = true; break; case vk_up: allow = true; break; case vk_down: allow = true; break; case vk_enter: allow = true; break; case vk_space: allow = true; break; case vk_shift: allow = true; break; case vk_control: allow = true; break; case vk_alt: allow = true; break; case vk_backspace: allow = true; break; case vk_tab: allow = true; break; case vk_home: allow = true; break; case vk_end: allow = true; break; case vk_delete: allow = true; break; case vk_insert: allow = true; break; case vk_pageup: allow = true; break; case vk_pagedown: allow = true; break; case vk_f1: allow = true; break; case vk_f2: allow = true; break; case vk_f3: allow = true; break; case vk_f4: allow = true; break; case vk_f5: allow = true; break; case vk_f6: allow = true; break; case vk_f7: allow = true; break; case vk_f8: allow = true; break; case vk_f9: allow = true; break; case vk_f10: allow = true; break; case vk_f11: allow = true; break; case vk_f12: allow = true; break; case vk_numpad0: allow = true; break; case vk_numpad1: allow = true; break; case vk_numpad2: allow = true; break; case vk_numpad3: allow = true; break; case vk_numpad4: allow = true; break; case vk_numpad5: allow = true; break; case vk_numpad6: allow = true; break; case vk_numpad7: allow = true; break; case vk_numpad8: allow = true; break; case vk_numpad9: allow = true; break; case vk_multiply: allow = true; break; case vk_divide: allow = true; break; case vk_add: allow = true; break; case vk_subtract: allow = true; break; case vk_decimal: allow = true; break; case ord("1"): allow = true; break; case ord("2"): allow = true; break; case ord("3"): allow = true; break; case ord("4"): allow = true; break; case ord("5"): allow = true; break; case ord("6"): allow = true; break; case ord("7"): allow = true; break; case ord("8"): allow = true; break; case ord("9"): allow = true; break; case ord("0"): allow = true; break; case ord("Q"): allow = true; break; case ord("W"): allow = true; break; case ord("E"): allow = true; break; case ord("R"): allow = true; break; case ord("T"): allow = true; break; case ord("Y"): allow = true; break; case ord("U"): allow = true; break; case ord("I"): allow = true; break; case ord("O"): allow = true; break; case ord("P"): allow = true; break; case ord("A"): allow = true; break; case ord("S"): allow = true; break; case ord("D"): allow = true; break; case ord("F"): allow = true; break; case ord("G"): allow = true; break; case ord("H"): allow = true; break; case ord("J"): allow = true; break; case ord("K"): allow = true; break; case ord("L"): allow = true; break; case ord("Z"): allow = true; break; case ord("X"): allow = true; break; case ord("C"): allow = true; break; case ord("V"): allow = true; break; case ord("B"): allow = true; break; case ord("N"): allow = true; break; case ord("M"): allow = true; break; } return allow; So, that's basically it. Of course, you also need to make game respond to the key variables: if keyboard_check(movement_up) { x -= 1; } Instead of: if keyboard_check(vk_up) { x -= 1; } And the hardest part is probably to make the interface, but since every game has different interfaces, it's up to you. But here's something that might help you do that: /// scr_return_key_string(key) var key_string = ""; switch(argument0) { case vk_left: key_string = "Left"; break; case vk_right: key_string = "Right"; break; case vk_up: key_string = "Up"; break; case vk_down: key_string = "Down"; break; case vk_enter: key_string = "Enter"; break; case vk_space: key_string = "Space"; break; case vk_shift: key_string = "Shift"; break; case vk_control: key_string = "Ctrl"; break; case vk_alt: key_string = "Alt"; break; case vk_backspace: key_string = "Backspace"; break; case vk_tab: key_string = "Tab"; break; case vk_home: key_string = "Home"; break; case vk_end: key_string = "End"; break; case vk_delete: key_string = "Delete"; break; case vk_insert: key_string = "Insert"; break; case vk_pageup: key_string = "Page up"; break; case vk_pagedown: key_string = "Page down"; break; case vk_f1: key_string = "F1"; break; case vk_f2: key_string = "F2"; break; case vk_f3: key_string = "F3"; break; case vk_f4: key_string = "F4"; break; case vk_f5: key_string = "F5"; break; case vk_f6: key_string = "F6"; break; case vk_f7: key_string = "F7"; break; case vk_f8: key_string = "F8"; break; case vk_f9: key_string = "F9"; break; case vk_f10: key_string = "F10"; break; case vk_f11: key_string = "F11"; break; case vk_f12: key_string = "F12"; break; case vk_numpad0: key_string = "Numpad 0"; break; case vk_numpad1: key_string = "Numpad 1"; break; case vk_numpad2: key_string = "Numpad 2"; break; case vk_numpad3: key_string = "Numpad 3"; break; case vk_numpad4: key_string = "Numpad 4"; break; case vk_numpad5: key_string = "Numpad 5"; break; case vk_numpad6: key_string = "Numpad 6"; break; case vk_numpad7: key_string = "Numpad 7"; break; case vk_numpad8: key_string = "Numpad 8"; break; case vk_numpad9: key_string = "Numpad 9"; break; case vk_multiply: key_string = "Numpad *"; break; case vk_divide: key_string = "Numpad /"; break; case vk_add: key_string = "Numpad +"; break; case vk_subtract: key_string = "Numpad -"; break; case vk_decimal: key_string = "Numpad ."; break; case ord("1"): key_string = "1"; break; case ord("2"): key_string = "2"; break; case ord("3"): key_string = "3"; break; case ord("4"): key_string = "4"; break; case ord("5"): key_string = "5"; break; case ord("6"): key_string = "6"; break; case ord("7"): key_string = "7"; break; case ord("8"): key_string = "8"; break; case ord("9"): key_string = "9"; break; case ord("0"): key_string = "0"; break; case ord("Q"): key_string = "Q"; break; case ord("W"): key_string = "W"; break; case ord("E"): key_string = "E"; break; case ord("R"): key_string = "R"; break; case ord("T"): key_string = "T"; break; case ord("Y"): key_string = "Y"; break; case ord("U"): key_string = "U"; break; case ord("I"): key_string = "I"; break; case ord("O"): key_string = "O"; break; case ord("P"): key_string = "P"; break; case ord("A"): key_string = "A"; break; case ord("S"): key_string = "S"; break; case ord("D"): key_string = "D"; break; case ord("F"): key_string = "F"; break; case ord("G"): key_string = "G"; break; case ord("H"): key_string = "H"; break; case ord("J"): key_string = "J"; break; case ord("K"): key_string = "K"; break; case ord("L"): key_string = "L"; break; case ord("Z"): key_string = "Z"; break; case ord("X"): key_string = "X"; break; case ord("C"): key_string = "C"; break; case ord("V"): key_string = "V"; break; case ord("B"): key_string = "B"; break; case ord("N"): key_string = "N"; break; case ord("M"): key_string = "M"; break; } return key_string; It turns, for example, movement_up variable into "Left" string. You can use it like this: /// Draw event draw_text(x,y,scr_return_key_string(movement_up); This could be useful. So, until next week! I hope it will be as good as this one! PS.: <3 This week was rather quiet. Didn't got much time to work and even when I did, I couldn't work for long, because I was tired. Long story short, last school semester sucks.
Anyway, this week I have updated the way part stats are displayed on panel next to building field. Now it shows total weapon damage and amount of weapons equipped. The biggest change this week was implementation of weapon limit and engine requirement. This was very easy to add, so it wasn't big thing for me, but it should have huge impact on gameplay. Now attached weapon amount cannot be higher than half of part limit, else you will suffer 400% longer ability cooldown penalty. Also, you must have at least one engine equipped on your spaceship, or movement speed will be reduced to 50%. Lastly, I have re-implemented resurrection missions, eliminated old, elusive glitch and replaced veteran mine spam attack with more interesting move. Next week should be more interesting, as I will be trying to implement control customization! I'm sure many will like this feature. Until next time! This week I have added two new awesome abilities and began tweaking game difficulty. Since the new combat test release last Sunday, combat test version has been downloaded about 50 times! However, only few people have given me feedback about new combat system. This is what information I have received:
I have decided to make combat faster and by doing so, made combat much harder. Now even I have problems passing the introduction mission. Since I began to mess with the game difficulty, I have stumbled upon old problem. The picture above shows how game difficulty depends on the amount of the weapons you have on your spaceship. Red is too hard, green is too easy. Since player starts with two sockets, it's hard to pass the first mission. The weapon problem is very old, it's there since the beginning of the game. Game is very hard, if you don't have enough weapons, but it instantly becomes too easy, if you add more weapons to your spaceship. Also, there's another problem that comes with it. About 50% or more of parts received from the part safes aren't weapons, which means that they are pretty much useless. This vastly reduces fun of getting new parts. So, the solution is to limit how much weapons can be added to spaceship, to keep difficulty between too hard and too easy. My idea is to make ability cooldowns 100% longer, if your spaceship has more weapons, than non-weapon parts attached to it. For example, since at level 1 part limit is 7, you can only equip 3 weapons. If you equip another weapon, ability cooldown will be doubled. For those, who are skilled enough, that can fight with reduced amount of weapons without any problems, in future there will be modular difficulty system. It will replace current hard mode. When you will choose mission in map grid, you will be taken to mission overview interface. There you'll see detailed information about the mission, enemy types that will appear during the mission, lore about the region and other things. But the most important part of that interface will be difficulty modules. The more modules you enable, the harder game becomes. Here are the examples of difficulty modules:
And so on! Obviously, some of those might never appear in game. To make things even more interesting, there will be rewards! They will be based on amount of modules selected. For example, if you will enable all modules and to win, you'll receive Radiari circle! It will contain mythical/etalon grade parts and access to hidden Radiari region. As you probably have noticed, there are no screenshots in this echo. This is because my computer screen didn't turned on this morning, so I didn't took screenshots. I hope I'll get my screen back soon, because newest Sector Six version is stuck in computer without screen, so I can't work on it. But, because I couldn't work on Sector Six, I have managed to write this long and, hopefully, interesting echo. So, until next week! New combat system test version is now available! I've been working on new combat system for a month now and I feel like it's time to show what I've done, before continuing combat overhaul. It's an early version, a mere prototype of a new combat system, so beware of unfair difficulty, poor balance, unfinished graphics, unfinished abilities, wrong sound effects and glitches! So, what is exactly different in test version? Difficulty. I'm trying to make combat more interesting, more complex and, automatically, more difficult. Enemies now can use really powerful abilities, that could easily destroy unprepared player! Right now game is very hard, even unfair, but I intend to lower difficulty at least a little in future. Controls. Now you move spaceship using arrow keys and activate abilities by pressing or holding 1-9. Shields. Now player and enemies can activate shields. Shields soak all the damage, which means that while shield is active, you don't take damage! Activate your shield by pressing 3, when enemies fills screen with more missiles than you can avoid! To remove enemy shields, press 4. This ability is also useful for destroying probes. Ability unleashing. Now abilities have chance to be unleashed, if they are upgraded to level 5 or higher. When ability is unleashed, it's behavior changes, for example, your basic attack ability will release additional missiles, doubling or even tripling damage dealt by that ability! Currently only 2 of 5 abilities can be unleashed. In future every ability will have unleashed form! This is like critical hits in other games, just more interesting. Attributes. Attributes work like uncapped passive abilities. They increase damage, reflect chance, unleash chances and armour. Destroying breakable enemy segments matters. Destroy them to weaken enemies. Ability cooldowns. Abilities now have cooldowns instead of ether cost. In future abilities will also use ether, but for now cooldowns are enough. New part properties. Parts now can increase ability unleash chances and attributes. Tips? Use ability 2 to deal a lot of damage to enemies. Keep it for hard enemies, because it has long cooldown. Ability 5 repairs your spaceship, use it as often as possible. Use shield ability only if necessary! It protects you only for 3 seconds, so you don't want to waste it on attacks you can avoid. And that's all! Don't forget to tell me what you think about new combat system, because it's the main reason why I started this combat test! Especially if you played Sector Six before. PS.: You cannot do tutorial and most of the missions in the test version. Simply because they are incompatible with new combat system yet. Combat overhaul is going very well!
This week I have modernized veteran and implemented shielding ability. New veteran has six breakable segments - two small cannons in front and four side protrusions. Cannons fire missiles and soak damage, while protrusions are veteran's weak spot. Destroying protrusions is hard, but it's worth it, because every destroyed protrusion removes 10% armour from veteran. And that is needed, because veteran is very hard to destroy! Veteran is able to attack player from above, direction from which player has never been attacked before in Sector Six. It has lots of armour. Every 18 seconds it releases seeking crush ram, which deals massive damage. The only way to prevent being hit by crush ram is to use shielding ability. Right now there's only one shielding ability. If used, it creates shield around player's spaceship, that lasts 3 seconds If enemy projectile hits shield, it gets destroyed and player spaceship takes no damage from it. That's what needs to be done with crush ram! In future there will be more enemy abilities like crush ram, so shielding abilities will be very important. Anyway, I got good news for everyone waiting for new combat system! I am going to release new combat system preview soon! I am not sure yet when exactly, but probably next Sunday. The reason for this is that I want to see if players like the new combat. If not, I can quickly abandon this direction and try other ways to make combat more exciting. I don't want to waste months, since I am trying to finish game this year =] I also expect to get some feedback. So, until next echo! This week I have began to work on attributes!
Sector Six attributes aren't traditional RPG attributes, because what's the fun in making system that was made million times before? Current Sector Six version has two passive abilities. Attributes work like passive abilities, players have to spend technology points to upgrade them. Except that unlike normal passive abilities, attributes will not have level cap! Also, attributes will have two effects, primary and secondary. There will be four attributes and only one of them will be able to have active secondary effect. Attributes are tied to classes. Sector Six abilities are divided in four categories, four classes. Since Sector Six is not class locked RPG, spaceship class is defined by how much points are spent on each class abilities. If, for example, player has spent most points on nomad abilities, spaceship becomes nomad class spaceship and nomad class is considered dominant. Every class has one attribute. If class is not dominant, attribute will only grant you primary effect. Secondary effect is only given if class is dominant. Apocalypse class has aggression attribute. Effect: +x% damage. Dominant bonus: +x% to all unleash chances. Goliath class has resistance attribute. Effect: +x% reflect chance Dominant bonus: +x% to maximum armour Nomad class has mastery attribute. Effect: +x% to all unleash chances. Dominant bonus: +x% reflect chance. Carrier class has capacity attribute. Effect: +x% to maximum armour. Dominant bonus: +x% damage. x is attribute level. Hopefully this system will help to make game more complex and interesting! Another thing that I've done, is the implementation of ability unleashing and unleash chances on parts. That is the end of this week's echo, until next week! First echo about combat overhaul! It wasn't easy to start updating combat... I wasn't sure about control scheme, enemy armour pieces and other things. Decisions were hard to make and codes were hard to write. But I've spend many, many hours and everything worked out. I've broke my personal development length record! New control scheme is mouse free, like promised. Abilities are activated by pressing 0-9 and movement is controlled arrow keys. I don't know how it works for right handed people, but it works for me. Anyway, players will be able to customize controls, so I hope it won't be a problem. Dialogues and alloy container controls didn't change, it's still E and Q. I have replaced lasers with missiles. This is just because I decided that missiles look better than these small odd red flying stripes. I have reworked heavy, now he uses three abilities. First ability is normal attack, which launches large missile. Second ability releases two mines that makes avoiding aforementioned large missile harder. Third ability makes heavy move faster and reduces cooldowns of other abilities for few seconds. Also if you don't break heavy's side armour it will barrage your spaceship with missiles! That's pretty much all I did this week. Next week I am planning to add new player abilities, new enemies and maybe even ability unleashing/critical hit system. PS: How's version 0.3.5? Does save system work? Another update is here! The most important change is the new save system, better than old save system in every aspect. First, it should work for everyone. Old save system had odd habit of not working for no clear reason. I hope the new one will work for everyone! Second, three save slots instead of one! Players will be able to start new game and don't lose old game. Third, now there's an auto save option. Just enable it and after end of every mission, no matter completed or failed, game will be saved to chosen save slot. I have made few other changes, mostly fixes to the problems encountered in version 0.3.0:
Because tomorrow I'm starting to work on new combat system! Ever since release of the alpha version, I've got many different comments. But all that feedback can be summarized to everything is great about Sector Six, except combat. And now it's time to fix it! Combat overhaul is going to be the biggest Sector Six update ever, that will completely change the way game is played. Here's my plan:
That's just bunch of ideas, but I hope I can make them work. Whatever happens, I promise that combat overhaul will make combat at least a little better! Until next time! Don't forget to tell me if something is wrong. Especially if something is wrong with new save system. There's huge chance that I didn't noticed some big problem! After a week of work, new save system is almost complete! And that's basically it, I don't have anything else to show you guys! Hang in there, update is coming! |
Archives
October 2016
Categories
All
|