#Elysium Station Defense
1 messages Β· Page 1 of 1 (latest)
I finally have decided which game loop I would be doing for now with my first game in dotbitbang
I want to make something like a hero-defense map from warcraft (if you old enough to remember those).
This would be quite simple game loop to make, but it would be easy to slowly expand with new ship modules, levels, etc.
Basically the idea is that player would need to defend a space station from waves of invaders, earning XP and money in the process. Money could be used to install new modules in the ship, XP is needed to unlock more types of modules
For now I plan at least two levels of complexity - hardcore and standard. In hardcore level loosing the wave would reset you back to the first wave. In standard level player can replay the same wave or optionally try earlier wave to get more money/currency
Currency would be ephemeral and only exist during the play session. XP would be stored in a save to keep track of which ship modules player have unlocked
Player would get XP only when completing wave they did not complete before
I named the game Elysium Station Defense. The working name before was SkyFly2 preview
I love this idea! So hyped to see this progress π Let us know if you need any help π
Implemented first very simple wave of destroyers ships. Not so much clever logic, they just go to predefined position for now.
Also setup couple station defense turrets
next step would probably be teaching invaders to attack defense turrets and station itself, then adding logic for loosing the wave (when either player or station is destroyed)
growing the station little by little. Added some nice camera switching when entering ship building mode, also camera is shaken when you get hit and such stuff
made a bit more cool custom mouse pointer when ship is deployed, also pulsing whenever projectile cannon shoots
working on some ray gun mechanics. Ray can either shoot instantly or growing from shooting point outwards until it hits something
Oooooh this is getting spicy! Loving the feedback when the player shoots, that's real nice π
Thanks!
You mean sound feedback? Or when you are hit (camera shake)?
Ah, the pointer pulse probably, got it :)
Yer I love how simple it but it's very effective in letting the player know they've fired a shot π
doing some refactoring of internal code stuff regarding rotations of items. This unfortunately causes some of them look weird in UI, but it does not matter since I plan to replace 2d UI stuff with 3d anyways
flocking bots which are destroyable and readjust formation as the flock changes
also taught them to rotate (with limited speed) while tracking the target
fighting these flocks is a bit chaotic π
Always love seeing updates for your project. Looks like it's coming together very nicely π
Thanks! I am mostly now just trying different things, building base mechanics, etc.
Once I have these flocking bots working as expected, I would make enemy carrier ships which would deploy them and add those to one of waves. Basically if player destroys carrier before flock is deployed, they can prevent from more enemies spawning :)
Sounds so gooood! π€
For now I put a flock of these small bots on the third wave. I am not so good at my own game, so I had to retreat behind defensive turrets to not die from their small cannons π
Look good, It Is good diferente type of Views (always first person view, Is bored)
added a limitation to prevent any module installed behind engine or in front of a cannon
adding some small floating damage indicators (for now trying to use text components instead of UI, though this might be not the best way) :
laser turret now does periodic damage , should be adding enemy destroyers with those turrets next thing and then a ship module turret for player to install in their ships
I finally managed to play it and I really enjoyed it!
Here's some unsolicited feedback, feel free to ignore as this is just one man's opinion!
Ship building was intuitive
-the mouse alignment was a little offset which felt awkward
Had some weird placement of blocks and couldn't delete them so had to clear the whole ship and start again (add a "remove block button?")
I felt like my ship layout only affects 2 things
-How easy it is for me to get hit by enemy ships
-How quickly I can fire
I felt Adding hull parts doesn't affect my hp or how fast I can turn
You can turn on a dime if you're stationary
With enough guns you can constantly be firing which felt great
I like the fact the weapons shoot towards the mouse
I'd love to have the camera float Infront of the direction I'm facing so I know what's ahead of me
The firing indicator has some great feedback
Very interesting, thanks for detailed feedback!
There is going to be a longread answer, feel free to ignore π
Here's some unsolicited feedback
I expect it here, so it is solicited
the mouse alignment was a little offset which felt awkward
ah, yes, 2d buttons are a bit off. The reason here is that dbb API for UIs is somewhat limited and it is very hard to define boundaries of elements and there is no support for hover events or anything that similar systems have.
The direction of my thoughts here was that unless dbb is going to revamp that, I would need to let 2d UI go and instead make it 3d. Notice that mouse when it hovers over 3d blocks that you already dropped on ship - does not have that issue , highlight is spot on. This is because 3d has easier API for that kind of thing of answering "is my mouse over that thing or not". If I make 3d buttons - that would work similarly good and that's the plan ATM.
Had some weird placement of blocks and couldn't delete them
Deletion is middle mouse button (the wheel click).
It has a quirk is that it is possible to delete two modules at once, as I could not find in API any way to figure out which entity was hit first (I have an idea for that).
I thought that is a known default for that (try middle button some of your unneeded tabs in browser), but I need to add a legend at some point in that UI together with some simple tutorial anyways.
I felt like my ship layout only affects 2 things
Oh, there is a whole lot here actually planned already.
How easy it is for me to get hit by enemy ships
this is going to be more important and interesting when you open shields. Currently they are implemented, but you need XP to open them and I haven't yet finished XP system, so technically you cannot get them, but you can already see how it works on defense turrets, when they are hit by enemy invaders.
...
continue on next message
I felt like my ship layout only affects 2 things
Power model (when I finish it) would also affect ship building a lot, as the closer you have reactor to your power consumer (like shield or cannon), the less energy would be lost in transit. But the logic for establishing that model is a bit tricky, since every cannon, shield or others, would need to have a list of all reactors in order of how far they are and correctly pull "power" from them (which is ok, algo is not very that hard), and I would need to figure out how to show that info to player during ship design (that is trickier).
Cannons which consume ammunition instead of power could be affected by distance to storage modules, same rocket launchers and such, all in all distances from A to B within the ship would matter once I have enough types of modules for that to matter and balance things out so that the details are not "squished" (i.e there is enough variance for them to matter).
I felt Adding hull parts doesn't affect my hp or how fast I can turn
Oh, that is very true, "hull" is useless now! In fact hull module as all others slows you down, as its mass is added total. BTW interesting idea about increasing hp using hull..
Engines in fact should increase turn speed, acceleration and (maybe) speed cap.
The reason why "hull" is needed, is that initially the plan was (probably still is), that you would have to "connect" all cannons, engines and other modules which have no "hull" property, by a "hull" to the center of ship (cockpit, for now looks a lot like a hull). Some modules would be considered "hull"-y for that purpose (such as shield generator, reactor, etc). The differentiation is whether the module needs facing outwards or not.
ATM I did not implement that requirement and you can connect cannon to another cannon that is connected to cockit. Again I need more modules before I can properly balance that part so it is not annoying too much, but it should add more challenge to ship building as well π
You can turn on a dime if you're stationary
hah, yes, true. I simply reused the same movement model from standard script with a very small modification to make you slide more when stopping. I do need to completely revamp that so that ships would not turn that quickly (like characters with legs allowed to), did not put it very high in priorities, since I want to try more different modules first.
With enough guns you can constantly be firing which felt great
Wait till I add laser turrets π
I like the fact the weapons shoot towards the mouse
Yeah, there is one improvement I was thinking either add everywhere or only on some weapons - add one final turn when projectile actually would pass specifically through the point where mouse is (assuming the angles allow it) and not just fly in the same generic direction. Such weapon would be easier to aim, as you do not need to take into account that difference in angle causing projectile line-part trajectory to "shift" on a distance of its turn radius.
And next stage would be fully guided projectiles that track selected target, but that is a different story and only some torpedoes would be able to do that.
I'd love to have the camera float Infront of the direction I'm facing so I know what's ahead of me
Oh, that I did not quite understand. You mean turn the camera so it changes its angle? Or just shift it?
Shifting might cause a tad of confusion when you are trying to avoid enemy projectile if the camera is moving relative to the ship too fast. And dodging projectiles is important part of the process (as I imagined it) - at least for small unprotected ships (put enough shields and probably you can take a hit then..).
One thing I thought about this and noticed in similar games designs (think diablo and its clones) - is that the clever part of the design of the map is that enemies are never at the south of you and often are at the north or at least east or west π
So you generally are fine that while you see less at one side of you due to camera angle, you generally do not need to look there.
In this game specifically it is very easy already, since all enemies are going to come from top, where their "wormhole" is. There are some testing things here and there, but player is not supposed to interact with them, I just put some stuff on south that I tested with.
But it is an interesting idea to try and see how it affect different aspects, dodging, aiming, etc. Maybe I would try that. Thanks!
dbb API for UIs is somewhat limited and it is very hard to define boundaries of elements I've never messed around with making clickable UI things, I usually use Booradley's ui stuff π
It's true, our UI API does need some TLC.
Deletion is middle mouse button (the wheel click) Middle click seemed to work the first time, until I selected one of the modules, then i couldn't get it to work again until refreshing the page for some reason π€·
Oh, there is a whole lot here actually planned already. Yeye I can see there's endless potential with game!
Shields and Laser turrets?! YEY π Very hyped for both of these things.
Yeah, there is one improvement I was thinking I'm not sure it would need that as it feels great already π
You mean turn the camera so it changes its angle? Or just shift it? scrap that idea lol, The current camera feels very stiff andyou could definately use it to improve the experience of the game. I'm now thinking that the camera's position could lerp towards the centrepoint between the ship and the mouse to allow the player to scout ahead a little and let them decide where they want to look.
Keep up the great work π
I'm now thinking that the camera's position could lerp towards the centrepoint between the ship and the mouse to allow the player to scout ahead a little and let them decide where they want to look
that sounds like a great plan! I had something along those lines with additional module that could be installed - a radar or scanner or something like that that player can turn to move camera a bit around a map. This can be integrated somehow in a way you describe..
laser turrets kinda cool π I made them to adjust pitch as well depending on distance to pointer, so for small targets it matters where player aims not only in direction..
Otherwise turret would always be shooting over the small targets or I would need to superficially make them "taller", which for now I do not want to do, so it works like this
This approach also creates a limit on close range for these weapons depending on where they are located regarding other ship modules, so there is a bit of a challenge about placing them
Later I want to make these ray guns to create a target lock if they are kept long enough on target, so that other weapons could auto-follow selected target (those that are guided, so not all of them)
Added couple new weapons (miniguns) and control over which buttons (only mouse for now) activate which groups of weapons
wanna improve UI a little bit now, as there is more and more possible modules to install, I need some sort of way of limiting amount of displayed on screen.. maybe add a scrolling or something like that
Got back after a bit and finished the big rework of building UI. It now is 3D! π
Made the menu to select component to be on the right side and configuration of single item on the left side (currently only for shield size).
Meet cruisers - new enemy type, that sport 3 more weapons against previous biggest enemy type, including 2 laser turrets!
This game looks so amazing, and I keep trying to play but I can't seem to figure it out. It says the ship should have an engine, but I don't know what to press or do to add one.
oops, 3d buttons update have messed this up for everyone except me.. π I was debugging them and forgot to remove if (handle === "str") { .. lol. Should be fixed now @haughty socket ..
If you reload, the buttons should appear on the right side to select which module you wanna put where
Oh thank you! I thought I was just going crazy or completely missing something XD
FYI, there is not really complete game loop in the game, f.e there are almost no limitations on which modules you could put in a ship (except for simple stuff like nothing behind engine or all modules shall be attached somewhere) and there is nothing telling player that they have won, or what wave is current.. this is pretty much currently my playground to test various things quickly at the moment.
The whole "horde defense" is just a convenient medium for me to do such testing more or less.
Not that I don't want to make this game complete actual game at some point, it is just not there yet π
No worries, I just wanted to play with what I saw in your posts. When you are ready for it to be featured, let me know so I can put it in front of more people π
tell me if you find anything else not working, I don't really do much testing, so anything noticed could help π
Will do! I am looking forward to watching it develop π
So I take it that the buttons have appeared again?
Yep, I played it for a little bit right after you fixed it this morning. I still haven't tried all the pieces, but I will poke at it again next time I have a lull in my work day π
Made guided missiles, which now can track and follow particular target.
There is no UI that would be showing target lock yet, I'd need to think more about how to show this, but I like how it looks overall already
Added possibility to zoom out using mouse wheel. Somewhat tricky, but mostly solved, was to make spatial sounds still work regardless of distance.
Still need to replace in some places old scripts with new ones, but in practice it already works.
Being able to zoom out opens up interesting possibilities now for making weapons with different effective ranges and building ships that otherwise would take half of screen.
Next thing I am thinking to try to add here is some sort of fog-of-war mechanic so that even zoomed out far away, you might not see some enemies (which could be adjusted by some special module possibly, like a scanner or such).
Not sure how to visually represent such fog though, not much background to visibly "fog"..
Tried to simply rollout a bunch of particle effects in a grid.. does the job, but looks terrible π
Probably I would just limit how far the scroll would work, based on which scanner module was installed and that would be it π Players with wider screens would see more, but does not seem to be big issue
Maybe there would be additional "map" view where I would move camera farther , but hide stuff that player is not supposed to see..
This all seems super fun, I really enjoy "fog of war" mechanics π
added a bit bigger target lock handle so that it would be much easier to snipe small target from afar (given that you have guided torpedoes.. π )
bunch of updates:
- guided torpedoes now can be shot down by other projectiles
- added new PDC turret module that has automatic weapon, which would only target and shoot at torpedoes using bursts of bullets
- torpedo boat enemy added
- target lock indicator now would be smaller until ship is focused and would pulse when target lock is established (and make sound when locks first time)
I also plan to increase damage when target lock is established, so that it makes sense regardless of which weapons are used (instead of showing it only when player has torpedoes)
Getting ready to rollout a new ship building UI with cool popups showing some details of each module. I wanna figure out some way of comparing two items though it could be tricky, as there is no easy way to understand with which item to compare (in contrast to games where equipment has one particular slot to install to)
figured out how camera transitions work (sort of), so now shop would rotate camera to have a bit less cluttered background
I want to write down minimal things that I see needed here to have a complete game loop:
- limit ship design with costs (using some credits currency)
- give player credits when they destroy enemy ships
- show "you have won" and some stats when the last wave is defeated
- reset the states (credits, ship) when last wave is defeated to restart the loop
- test and balance (to figure out right costs/damage amount/health and other parameters)
There are a bunch of other game mechanics I thought about, particularly having another wider loop (getting xp, unlocking more modules), but after some considerations I have decided to limit for now to this minimum.
This also does not include multi-player ATM, i.e game for sure would be broken in some unpredictable ways with several players (all my scripts ignore multiplayer completely).
I am writing this, because I would like to see some other people's opinions if list shall be bigger or not.. π so any input is welcome
I think that list sounds good! Getting a min viable build in front of players will give you a chance to get feedback, and updates with more features are welcomed by players π
System of costs of installed modules takes some form.
It is based on some simple predefined requirements - moving module does not cost anything, removing module would refund percentage of its cost (currently 50%, subject to change).
So the system calculates the difference between new design and old design and shows how much player should pay for new design compared to old design, while also explaining in "refund" section what happens with stuff that was removed.
This approach would create a certain incentive to design in advance, so some late-game designs could be partly grown from early-game designs, while early game design might sacrifice some of its efficiency in order to be more compatible with late-game designs.
The way that all would work.. might depend on which other limitations to ship geometry might be put later in place (like distance from reactor module, which is part of later added power-system).
I don't actually know how efficient designs would look like.. that would be something that players would need to find out, I guess π
I haven't yet implemented the bit where cost is subtracted from currency that player owns, but that should be straightforward enough..
So the shop is mostly ready and works as expected. I am still fixing some corner cases though.
I have thought a bit about this and decided that since I don't at the moment know how many more modules I would be able to add, which would be functionally different (not like just more dmg and different color), I would probably add wider game loop (getting xp, levels, unlocking more modules) as a part of minimal game, not later added bit. The reason is that I don't want to deal with removing items that players already used to be having. So basically stuff like "shield" module, and some of weapons (f.e laser turret) would not be available right away, but would be possible to unlock if enough XP is received (probably XP would be given after defeating all waves, so this wider loop is designed to cause players to want to play the game once more)
Game now has full game loop, with the start and win condition!
I did first attempt at balance and currently it is very hard to pass all waves (at least for me) π
I probably need to see how to make progression easier or something.
Also PDC are pretty much useless against the only wave where they would've been theoretically useful (enemies overwhelm them easily, so they end up maybe shooting down two missiles from 40)