Jump to content

Bullet Hell?


Recoils14
 Share

Recommended Posts

I recently purchased the Leadwerks engine during the winter steam sale to tinker with in my free time and it's been fun but now I have decided to build my own game but something out of the norm for myself. I want to design a Bullet Hell game.

 

I'm wondering if anyone has done this yet and if so, can you point me in the direction of some resources to help me with journey?

 

I'm relatively new to the programming and scripting side of things so anything that may help would be greatly appreciated. Also discussion on the subject of Bullet Hell within Leadwerks is highly encouraged.

 

Thanks.

Link to comment
Share on other sites

I am a 3D modeller so probably 3D, but I prefer the 2D look for these games. I'll use simple 3D objects during development and finish in 2D with an artist friend, but I haven't even started yet so that's neither here nor there at the moment.

 

As for C or LUA I'm not sure. Like I said I'm new to the programming side and that's why I came here to ask. I'm not sure which will be better for me as I have to learn from the ground up. I understand that learning while trying to develop a game will be difficult and arduous, but I'm up to the task.

Link to comment
Share on other sites

@Recoils14

 

sounds awesome man, LUA is a good first start, you can do a whole lot with just LUA, as for C++ you can start there if you want to,But I enjoy using LUA just as much as C++, its all a preference I guess LUA does have its limits as C++ doesn't really (like LUA doesn't have steamwork achievements correct?)

OS: Windows 10 Pro

CPU:  i3-10100 CPU @ 3.60GHz
GPU: NVIDIA 2060 Super - 8 GB

RAM: 32 GB

Link to comment
Share on other sites

I haven't done it myself but there are threads on the forums claiming it's possible.

 

Also, in addition to the Documentation at the top, don't forget to check out the unofficial wiki: http://leadwerks.wikidot.com/

Rick is kind enough to offer super cheap Lua tutoring. If you have a few extra bucks laying around and he can find time, I'd suggest taking him up on it.

 

There are great YouTube video tutorials if you like watching videos. Two popular ones are here:

https://www.youtube.com/user/Aggror89/videos

https://www.youtube.com/channel/UCdNkNE5acxWUf2vCEo-eOcw/videos

 

One word of caution: coding for 3D and for 2D are two different things. I'd suggest picking early on which you'd like to use. That said, getting prototypes going in both formats shouldn't be too hard (but give it some time as you learn).

 

Hope that helps.

Link to comment
Share on other sites

I think im to old for Bullet Hell type games, to much going off on screen. Look forward to seeing it though.

 

You can just use Lua scripts for certain in game objects and do the rest in C++.

 

Have dabbled a bit in C++ but like the simplicity of Lua. As a hobby coder Lua is great.

Elite Cobra Squad

Link to comment
Share on other sites

If you do 3D, don't use full physics for those bullets. You could, and you might get away with it, but it's kind of overkill for a spherical object traveling in a straight path. Use picking instead, like I did in the weapon script for bullets.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

Use picking instead, like I did in the weapon script for bullets.

 

How would you do this with visual spherical bullets though? I mean the idea of these games is avoiding those bullets coming at you at a much slower speed than reality. It's really more about collision with the bullet itself. Picking is instant so not sure how you'd do that with this style of game.

 

I wouldn't go the physics route either but maybe bounding box collision checks on bullets? Or does the Collision() callback get called if you move things with the Move() function? I can't recall.

Link to comment
Share on other sites

I wouldn't think it would be thousands. Although some of those screens look crazy I bet there is at max a hundred or so bullets at a time and depending on how fast they move could get away with splitting cycles on checking them all. 1/2 the bullets this frame, 1/2 the bullets the next frame, rinse and repeat and I bet that would be good enough for performance. Put on top of that any player movement restrictions then perhaps can only limit bounding box collisions to a certain point on the screen (that could move). Say the player can only move on 1/2 of the screen and can't go into the enemies 1/2. No sense in checking those bullets that are on their way to the player 1/2 of the screen. Stuff like that would be good to do at first glance.

Link to comment
Share on other sites

You could even optimize more :

 

if bullet.x < ship.x - (ship.width) SetColor (Red)

 

if bullet.x > ship.x + (ship.width) SetColor (Red)

 

if bullet.y < ship.y - (ship.width.y) SetColor (Red)

 

if bullet.y > ship.y + (ship.width.y) SetColor (Red)

 

YouGroove, that code actually wouldn't be any more optimized and would likely be LESS optimized because there are more interpretation steps, at least in Lua (even in C++, you would be guaranteed to run 4 checks each time, whereas gamecreator's code would do at most 4 checks). You should be using elseif for the second, third, fourth, etc. if statements. That way, you don't have to run through all the conditionals for all of the entities.

Link to comment
Share on other sites

I think YouGroove forgot the return statement after setting the color to red for each if statement. At that point you'd have exclusion statements so that best case scenario after the first if fails (which means it couldn't possibly be hitting the ship) you bail out so as to not do any other of the if statements.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...