[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4688: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4690: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4691: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4692: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
shmup-dev | forum - View topic - Unity 3D shmup framework

Unity 3D shmup framework

This forum is for discussing shmup development, tools, engines and techniques.
User avatar
Posts: 76
Joined: Mon Aug 20, 2012 8:11 pm

Unity 3D shmup framework

Postby wondersonic » Fri Aug 24, 2012 8:59 am

Hi all,
according to you, what would be the requirements for a good shmup framework? Please put priorities/step order as well.

Cheers,
WS

User avatar
Posts: 76
Joined: Mon Aug 20, 2012 8:11 pm

Re: shmup framework

Postby wondersonic » Fri Aug 24, 2012 11:33 am

Oh, the goal is to start building a framework to ease shmup development under Unity3D.

Also, I'll use it for my own needs since my project starts to be not as well organized as I wish.

User avatar
Posts: 76
Joined: Mon Aug 20, 2012 8:11 pm

Re: shmup framework

Postby wondersonic » Fri Aug 24, 2012 2:33 pm


User avatar
Posts: 76
Joined: Mon Aug 20, 2012 8:11 pm

Re: shmup framework

Postby wondersonic » Fri Aug 24, 2012 3:52 pm

After that, there are Render Settings to setup.

This can be done using menu Edit>Render Settings or more easily using the new menu (thanks to the framework) My Schmup>Initialize scene.

Using this, the ambient color is set to: Color(30, 30, 30, 255), fog is disabled as well as sky box (this will be the default).

Note that each scene can have its own Render Settings. Also a game is generally made of several scene (~game level).

User avatar
Posts: 76
Joined: Mon Aug 20, 2012 8:11 pm

Re: shmup framework

Postby wondersonic » Fri Aug 24, 2012 4:31 pm

By the way, I'll need some beta testers ;)

User avatar
Posts: 76
Joined: Mon Aug 20, 2012 8:11 pm

Re: shmup framework

Postby wondersonic » Fri Aug 24, 2012 4:33 pm

And now, input are also configured in one menu click. I currently have only one set of inputs, but I can enhance it according to your wish or one can use the "Axes" defined and use it as tutorial.

See menu Edit>Project Settings>Input.

Explanations:
As there are currently no way to programatically modify the input Axes, I had to overwrite the configuration file with the one from the myshmup framework (a little dirty, but it works).

User avatar
Posts: 76
Joined: Mon Aug 20, 2012 8:11 pm

Re: shmup framework

Postby wondersonic » Fri Aug 24, 2012 8:51 pm

is the first alpha version.

User avatar
Posts: 76
Joined: Mon Aug 20, 2012 8:11 pm

Re: shmup framework

Postby wondersonic » Sat Aug 25, 2012 9:00 am

And next, what will you need?

This is an open question to you that will help me to prioritize developments.

I've got some ideas but I prefer your advice, since this framework is more targeted at you ;).

Site Admin
User avatar
Posts: 240
Joined: Thu Jul 26, 2012 2:32 pm
Location: Melbourne

Re: Unity 3D shmup framework

Postby monoRAIL » Sat Aug 25, 2012 10:09 am

This is a great thread wondersonic. I've renamed your topic "Unity 3D shmup framework" because I think we should aim to have many of these threads, one for each of the popular shmup engines. I already have a Torque 2D shmup template game that I often use for rapid prototyping or game jams which I will post in its own thread.

By the way, I noticed that your UnityPackage is called MyShmup - but internally it's called MySchmup, you should probably leave the c out to be consistent.
Also, what does the InputManager do? It doesn't appear to be a script or a scene object.
| | | |

User avatar
Posts: 4
Joined: Thu Jul 26, 2012 9:47 pm

Re: Unity 3D shmup framework

Postby motorherp » Sat Aug 25, 2012 1:35 pm

I can chip something in when it comes to making shmups in Unity. One problem I've seen many people complain of when making danmaku style shmups using Unity is that the performance is lacking. This usualy comes down to two common issues.

Firstly is that Unity doesn't automaticaly recycle resources and people tend to waste a lot of performance by constantly creating and deleting entities, for example bullets or enemies. Therefore one useful feature to write would be an object pool, ie: a class which would pre-create a whole bunch of objects of a given type and handle managing which are currently free and in-use and correctly enabling or disabling those objects when they're needed or not. When a new object is called for the object pool would return you a free one from its pool rather than dynamically creating new ones, and similarly when an object is no longer needed it should be returned to the pool.

Secondly is creating a more efficient way to handle large quantities of bullets. The way I've seen most people handle bullets is to create a new entity for each individual bullet with each one having its own set of components attached such as a mesh, mesh renderer, collision shape, and custom script for handling the bullets motion and logic. The problem with this approach is that each component, and in particular monobehaviours, impose a performance overhead since they are written to be as general and flexible as possible. This isn't really a problem for complex entities which you have fewer of, the trade off for the added functionality and flexibility is worth it. For something as light weight and simple as an individual bullet however then the overhead from all these individual components adds up when you wish to have a lot of bullets.

What I'd recommend is that instead of having each bullet as its own entity is to create a bullet group entity which contains all your bullets of one type. That will require you to write your own mesh rendering logic and collision detection routines for bullets however, but if making a danmaku game then it should give you a good deal of performance back if done right.

Alternatively it used to be possible to abuse the unity particle system to create a pretty decent and quick bullet engine. Unity's particle engine has undergone a big rewrite since I last dabbled in that though so I dont know if its still possible but its certainly worth looking into.

Next

Return to Development

Who is online

Users browsing this forum: No registered users and 0 guests