ID:1794487
 
(See the best response by Kaliba.)
I know this could take a bit of work, but I would love a particle system built into dream maker. Not something maybe as complicated as unity, but something. This would really quicken devlopment time for tough particle drawings as well as probably make particles look better.
Best response
With the implementation of animate, it's already possible to create your own particle system - the only problem is even if you are recycling each particle, it still takes up quite a bit of CPU if you want to make it look worth the effort.

emitter
parent_type = /obj
var

_counter= 1
list
particle_count = new/list(25)
particleicon='Particles.dmi'
particleicon_state="fire"

particle
layer = MOB_LAYER+5
parent_type = /obj
blend_mode = BLEND_ADD

New()
..()
pixel_x=rand(7,9)
pixel_y=rand(5,7)
spawn()
src.Update()

proc/Update()
animate(src,transform=turn(matrix(),(rand(0,360))),time=25)
animate(src, transform=matrix()*0.985,pixel_y=rand(32,40),pixel_x=rand(-5,15),alpha=0,time=25)

sleep(world.tick_lag*100)
del(src)

proc/_Update()
var/tmp/pcount=0
for(var/obj/emitter/p in world)
for(var/mob/M in oview(p,5))
if(M.client)
pcount++
if(pcount>0)
var/particle/a = new/particle
a.dir=p.dir
a.icon=p.particleicon
a.icon_state=p.particleicon_state

p.particle_count[p._counter] = a
p._counter++
if (p._counter > 25)
p._counter = 1
a.loc=locate(p.x,p.y,p.z)


One I made some time ago, I make games in a VM using a Macbook though so my performance on BYOND isn't 100% - if you were to reuse particles rather than delete them then it might work better running outside of a VM.

Ter's Object Pools might be worth a look into if you're wanting to take this approach.
In response to Kaliba
oh okay, I haven't really messed around with animate before. I don't think my development right now will be on that but when the time comes what you have looks really helpful to start on one. I'll look back on this one day
Actually, Object Pools doesn't seem to have a very large impact anymore ever since Lummox fixed datum indexing.

https://gfycat.com/MellowCapitalBernesemountaindog

^I spent some time optimizing this, and Object Pooling only took off about 10-15% CPU time. It's a nice savings, but hardly as impressive as it used to be.
Hey, 10-15% is nothing to sneeze at. In the world of optimization that's still huge.