Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411507 Posts in 69374 Topics- by 58429 Members - Latest Member: Alternalo

April 26, 2024, 04:00:06 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsDevader - swarms of enemies - made in HTML5
Pages: 1 ... 5 6 [7] 8 9 ... 22
Print
Author Topic: Devader - swarms of enemies - made in HTML5  (Read 53000 times)
marcgfx
Level 8
***


if you don't comment, who will?


View Profile WWW
« Reply #120 on: April 15, 2016, 09:34:15 AM »



I reworked the centipede code today. There was glitchy behaviour, where some of the segments started turning and then walking in a loop... I think it looks pretty decent now Smiley
« Last Edit: April 15, 2016, 10:25:19 AM by marcgfx » Logged

eyeliner
Level 10
*****


I'm afraid of americans...


View Profile
« Reply #121 on: May 07, 2016, 06:27:59 AM »

I like how the graphics give a nice throwback to the late 90's.
We need more of these.
Logged

Yeah.
ProgramGamer
Administrator
Level 10
******


aka Mireille


View Profile
« Reply #122 on: May 07, 2016, 12:05:40 PM »

I like how the graphics give a nice throwback to the late 90's.
We need more of these.
I agree, games like this and factorio need more attention
Logged

marcgfx
Level 8
***


if you don't comment, who will?


View Profile WWW
« Reply #123 on: May 08, 2016, 06:05:20 AM »

Thanks! I really appreciate the nice words  Gentleman
late 90's beginning of 00 thats about the age of the tools I'm using for the visuals  Cheesy so pretty spot on I guess.
Nice to hear you think games like this deserve attention  Grin

If you are interested in trying the game, I really appreciate feedback  Well, hello there!
https://forums.tigsource.com/index.php?topic=55685.0
Logged

marcgfx
Level 8
***


if you don't comment, who will?


View Profile WWW
« Reply #124 on: May 13, 2016, 08:01:34 AM »


I received some very good feedback in the Playtesting section. Some of it was related to the missing story. I'm currently thinking about doing some very simple animations with css/js and telling the story with text only.

Also related to the feedback I received are other changes. I've added a lot more weapon upgrades that are nearly all stackable. One of them is possibly a very bad idea, as it causes the shot to split after a short distance. When this weapon is stacked the amount of shots on screen goes up exponentially. With a few 1000 shots the performance drop was significant.

The obvious issue was the massive amount of objects that were all checked for collisions. I luckely had a good idea how to improve. Shots do not collide with shots (there are exceptions) so all checks between shots are completely redundant. So I placed the shots in a separate list and now only check shots vs objects.

This did not lead to the gains I had expected. Profiling showed me the main culprit: Sound. Whenever I create a shot, I also create the shooting sound. This did not really make sense for the splitting of shots, so I simply stopped a sound from playing in that situation. This helped but did not do the trick. Thousands of shots also cause thousands of detonations, that also have sound. I decided to combine identical sounds that played in the same frame (sometimes 100+). The problem here is how do you combine sounds? I still do not have a good answer. My solution was very quick and dirty, simply using the averaged position, and sqrt of sum(volume). This is absolutely wrong, but works fairly well. I might have to revisit this though and if someone has a good idea how to solve this sensibly, I would be happy to take your advice.

I now have fairly good framerates with a lot of shots, but it's still very easy to destroy the framerate. I might have to get rid of the exponential shot increasing.

Logged

io3 creations
Level 10
*****



View Profile WWW
« Reply #125 on: May 13, 2016, 10:36:11 AM »

If instead of reusing objects, you are constantly creating and destroying them, then perhaps object pooling could help.   You start with storing a certain amount of objects (e.g. in an array) and if you need more then you create more.  Not having to destroy and recreate them was more beneficial in the early days when resources were a lot more limited and the extra processing was significant but can be useful even nowadays when you want to use a lot of objects that similarly does push the limits of processing capabilities.

Playing multiple sounds at the same time is interesting.  So far my 2d games with mono sound had a very simple implementation.  If a certain sound is played, (e.g. gun fired) then it checks if the same sound is already playing.  If yes and the other sound is either started on the same frame or just a short while ago, then it wouldn't play.  If the time gap is significant, then the sound would be played from the beginning.

Of course, that doesn't take into account two main aspects: location and volume.

Your approach of taking the average location probably works fine if you use the same volume for all sounds.  However, if some have lower volume than others than that would shift the location to the more dominant one. 

I did a quick search but haven't really found anything useful in terms of how to consider volume when playing sounds in a game.  Probably have to search physics related topics and actual sounds calculations.  For example, two identical sounds (e.g. gunshots) are played on either side (left and right).  Would the sound that we hear in real life be just the value of the loudest (i.e. in this case the same) or would the volume increase?  My first impression is that for certain sounds, you can get away with the same volume.  However, as in your game, if you have a lot of them taking place (e.g. explosions) then those might actually create a louder sound.  Or at least would benefit from having a larger effect psychologically and much like setting game physic values, (e.g. gravity) it's probably better to go with what works for gameplay.  For example, when in a 3d game a lot of enemies are firing at you, then it may be better to emphasize ones that are closer to you and downplay others.  Otherwise, if you play all sounds, then the experience can also become too chaotic.

So, if the overall effect sounds righ then just go with it.  Smiley
Logged

marcgfx
Level 8
***


if you don't comment, who will?


View Profile WWW
« Reply #126 on: May 13, 2016, 06:56:36 PM »

I am using object pooling, as garbage collection is one of the biggest issues causing choppy gameplay with javascript. there is no way to enable/disable the gc, something I would find very helpful. I probably still have a lot to optimize, but it is quite difficult to find the culprits and handling every single object/array creation seems crazy.

as you say, my sound approach will break badly if there are sounds with a large volume difference. Currently the implementation does the trick, but it could produce really bad results. I have tried to find a sensible solution online, but so far I could not find anything. I have not even found a question about the subject. I guess most just use a quick problem solver and don't require accurate representations. as mentioned, my solution does the trick and I really have never felt like it was lacking. my approximation was simply done by feel, it has absolutely no mathematical background.
Logged

marcgfx
Level 8
***


if you don't comment, who will?


View Profile WWW
« Reply #127 on: June 20, 2016, 01:57:10 AM »

Progress has been quite slow, but I am still working on AntiMiner. I must say, I really am starting to dislike the name, it just does not really seem very representative of what the game is about. Story is one of the key elements that is still sorely lacking. I have added a small intro, that shows the your main ship approaching the planet where all the action happens. This ship then deploys the lander-ship that then deploys the robot you finally control...

The story idea:
You are exploring on a ship, similarly to the enterprise, all alone in an unexplored region of space. You pick up a distress call and decide to investigate. You hear the story about a civilization that is on the brink of annihiliation and decide to step in to save them. There is a large scale attack and your main ship remains in orbit fighting off the bulk. You are sent down to the planet surface to take care of the rest. This is where the action begins.
I am still very much struggling with how to convey the story. Maybe I should go the comic route? I really do not know atm.

The game itself has been coming along well and I believe I have improved on a lot of issues that plagued me in the past. But there is still a lot to do. I still need to create boss number 4 and the final battle is very much wip. I was content with it for a while now, but I've noticed it's just terribly boring.

At the beginning of the game there is a large battle. Originally you only had some allied drones on your side. Now I've added some preinstalled defence towers, defending the chrystals. These new defensive towers looked terribly similar to some of the opponents. So I've decided to make the attackers more organic.


I've added some slug like creatures and am very happy with they have come out.


One of my biggest distressed are caused by issues with Chrome (only Browser that really works well enough to run the game), that I don't think I can solve myself. Some of my scripts start to behave erratically, the cause seems to be optimization, but I really am not sure. I'm just hoping it resolves itself (I have filed a bug report).
In the screenshot you can see a short exempt from a script. In row 147 I define an object with a property hide that is set to -1. 2 rows down I output the value and as you can see in the console they get very very weird. I can prevent this problem by adding a debugger statement (this prevents optimization).
Logged

cykboy
Level 2
**

ye


View Profile
« Reply #128 on: June 23, 2016, 05:37:35 AM »

Your game looks kinda cool, I love some of the iso artwork you have. I tried to load/play the link you provided (http://data.cyberlympics.com/html/game.html) but doesnt seem to work, also get a few HTTP errors (seems like its trying to load shaders).

If you want some advice, try THREE.JS - a WebGL library that makes life so much easier. Screenshots look pretty sweet, just wish I could play it Smiley
Logged
marcgfx
Level 8
***


if you don't comment, who will?


View Profile WWW
« Reply #129 on: June 30, 2016, 02:57:59 PM »

Thanks for trying Smiley

Where did you find that link? It's not complete. It really needs the extra parameter to load the game.
http://data.cyberlympics.com/html/game.html?param=AntiMiner_1

The reason for this is that the game itself is a pretty small javascript file. By changing the param I can load a different game using the same engine/gamecode. CartRace would be the other game, but at the moment it actually does not work Tongue
Logged

marcgfx
Level 8
***


if you don't comment, who will?


View Profile WWW
« Reply #130 on: July 04, 2016, 01:22:12 PM »

I was working on performance again today. There are a lot of tentacles in the game now, but the more tentacles I make the more performance drops. As I was starting to overdo it, I was noticing some nasty slowdowns. But tentacles are cool, so I came up with a solution to help out, or so I thought. The idea was to move all elements that can not collide with each other into a separate nc-list (no collisions).

I was not happy to find out my changes did not seem to help, I even had the feeling things had gotten worse. So I did some profiling and noticed my fast collision function was using a ton of cpu resources. Within the function vector-calculation were the most resource heavy, but I managed to simplify them and noticed a large improvement in the profiler. Unfortunately not in the game.

Console output showed me I was sometimes performing 100k collision-checks and the number seemed to be rising. Then it dawned on e, I never removed any of the objects I was adding to the new nc-list... quickly fixed that and now tentacles are much lighter on resources. So now I can really go crazy :D

This is the cute little guy I was using for testing:
Logged

c023-DeV
Level 2
**


DevZoo


View Profile WWW
« Reply #131 on: July 06, 2016, 01:49:12 PM »

Nice!

I enjoyed the game a lot - got to wave 14 and had quite a sweat.

FPS Performance however dropped pretty low (running on my desktop power horse in Iron - Chrome based browser) even when the tentacles were defeated, the fps stayed down. However pretty cool looking tentacles - creepy! But you seem to know about that problem.

Keep up the good work on this!
Logged

marcgfx
Level 8
***


if you don't comment, who will?


View Profile WWW
« Reply #132 on: July 06, 2016, 03:08:33 PM »

Thanks für playing Smiley and glad you had some fun.

Level 14, so did you get to see the big centipede like boss (should be Level 15)? That boss is a FPS nightmare... so much stuff going on. So many bombs dropped, so many shots fired... I had hoped performance would be ok now Sad

I get 60fps on my dev machine, but I will need to get it to work on a macbook at least. I'm just downloading Iron, to make sure it's not the cause for the low FPS (I do all my testing in Chrome).
Logged

darthlupi
Level 0
***



View Profile WWW
« Reply #133 on: July 23, 2016, 06:03:27 PM »

I had to see that blobby slug beast in action.
Here he is in all of his majesty, gleefully absorbing my blasts:



Rare and wonderful indeed!

---

When playing the demo, when picking up the white power ups the game would lock on me for some reason, but I am assuming this is still early in the process! 

I'll keep an eye out for more demos!
Logged

marcgfx
Level 8
***


if you don't comment, who will?


View Profile WWW
« Reply #134 on: July 23, 2016, 09:31:39 PM »

Thanks for giving it a go darthlupi!
The freezing is due to the fact that some code is missing... did you by chance try the demo environment where tons of extras are available? I can't currently correct that, as I am not at home. If not I'm quite impressed how far you managed to get, as the white pick-ups should appear in level 16 for the first time.
Thank you also for the gif Smiley

In the last few weeks I was too lazy to write, but quite a lot has changed.
The most important changes are that the game has been renamed to Devader and the game link is now:
http://data.cyberlympics.com/html/game.html?param=Devader_1

- tentacles are a lot easier to destroy
- more extra drops
- improved performance (still more to do, e.g. the profiler tells me the minimap is pretty terrible)

worked on the tower boss. it now shoots devastating lasers at you, I think it's still too difficult


worked on the final boss, aka adios boss. there are now tentacles coming from the main body


I started working on visualizing the weapon power ups last friday. They are stackable, what I find very cool, but also poses some bigger problems. You can end up making so many bullets, that performance will be impaired. My solution is to make the pickups time out.
The time-out is not obvous for the player. So my original idea was to add the power-up symbol to the GUI and maybe add a visible countdown or let it start blinking shortly before the power-up is used up. As I am using a combination of HTML and WebGL this is actually not that easy. The power-up image is in a texture atlas and the color of the power-up is done by the shader. This means I would need to do a hybrid HTML-WebGL GUI. Unfortunately not that easy, as the screen can zoom. To make things worse, I am considering making the game 2 Player. Everything I paint in WebGL normally would get rendered in both views. If I want to add WebGL GUI elements, this would require me to change the data for the second player. Kind of a lot of work for something I don't think would look that great anyway.

So I came up with a new plan of adding the power-ups to the bot. I decided to place them around the waist at first. This took me far too long to achieve and I was everything but happy with the result. It was kind of cool, but it was not really visible. The amount of collectable power-ups is unlimited, so I can't make them big.

After some sleep I came up with the simple idea: limit the power-ups to 3 and display them on the back. much better!

They seemed a little out of place, so I reduced the size slightly again:
« Last Edit: July 23, 2016, 09:49:30 PM by marcgfx » Logged

marcgfx
Level 8
***


if you don't comment, who will?


View Profile WWW
« Reply #135 on: August 03, 2016, 03:50:30 PM »

progress of a procedural spider monster. the amount of legs is randomized and you can actually destroy the legs.

basing out the idea, cyan for static legs, red for active legs


working legs, still very buggy and jumpy


stabilized movement and added a laser (the first real laser in the game). adding the laser was quite a task, as it needs to check for impact over a larger area.
Logged

marcgfx
Level 8
***


if you don't comment, who will?


View Profile WWW
« Reply #136 on: August 04, 2016, 01:46:24 PM »

I've been considering adding 5 more waves to the game. So far there were exactly 30 and I was trying to keep it that way. But I've made a few more enemies that I feel deserve to be seen and also make sense to ease in the player to new mechanics. After every 5 waves I've been adding some kind of special bonus for the player. So now I need a new bonus. I had the idea to add a passive bonus for once, where the hexas you are protecting get reinforced by a wall.

Here you can see my first (pretty successfull) attempt at the wall. There are still some hexas missing, but I've noticed that working with hexas is not that easy.
I originally hacked together the hexa-field, but this came and bit me in the backside big-time, while implementing the wall. It's possible to map hexas to a normal grid and that's what I was doing. But not the way I was expecting. A row of the grid contained the hexas exactly on the same height, meaning they were never connected. As I was looking for neighbour-hexas, this started to get really weird and complicated. I ended up rewriting the hexa generation so that it now maps adjacent hexas to a row.


While looking for bugs in my wall generation, I decided to display the entire grid with lower wall parts.


I quite liked the look of the smaller wall next to the bigger wall and decided to wall the wall.


The red color was not to my liking and I ended up with gray, mostly due to an issue with how I made the hexa graphics. But I think it looks quite good now. The walls now also through up dust when they get damaged. The gray wall has a redding dust (easier to notice than gray) and the green ones have a pretty bright green.
The green lines by the spiders are just debug info for their movement, as I was having some issues.
Logged

marcgfx
Level 8
***


if you don't comment, who will?


View Profile WWW
« Reply #137 on: September 06, 2016, 05:30:01 AM »

I want to add some images after every 5 Waves, sort of as a reward for the player. I gave a few artists the (payed) task to draw me a win-pose for my robot. This was the best submission I received.


I've been working on the final bosses and tons of other little things. This is the second last boss, so it should be quite a tough one to beat. It fires "strings" that are actually more lasers, as the player can move through them, but takes damage. I don't think I will be able to make them act like real strings that wrap around objects. would be nice, but likely very difficult or bad for performance.


I decided to add some struktural changes to the ground whenever a nuke hits. So I started googling for "broken earth circle" but never found what I was looking for. I ended up drawing what I wanted on a piece of paper with byro. I don't seem to own any white paper...

with a little image manipulation I ended up with a better than expected result, even if it is very subtle (bottom left)
« Last Edit: November 14, 2016, 06:46:52 AM by marcgfx » Logged

marcgfx
Level 8
***


if you don't comment, who will?


View Profile WWW
« Reply #138 on: November 11, 2016, 05:30:31 AM »



I've just entered my game on steam greenlight.

Alvarop made me an awesome trailer and the first and so far only comment, mentioned how awesome that trailer is Smiley
http://steamcommunity.com/sharedfiles/filedetails/?id=784005325

You can find the demo here:
http://falkenbrew.com/index.html
Logged

sbeast
Level 1
*



View Profile WWW
« Reply #139 on: November 14, 2016, 05:59:35 AM »

Hey, I checked out the trailer and the game is coming along really well. Are you still in any need of music out of interest?
Logged

Sbeast - Composer / Cover Artist / Guitarist
http://luxbellator.com/portfolio
Pages: 1 ... 5 6 [7] 8 9 ... 22
Print
Jump to:  

Theme orange-lt created by panic