
(Now with Particles!)
Controls:
- Esc – Exit.
- Shift – Toggle object’s geometry.
- Backspace – Toggle between controlled camera/object.
- Arrow Keys – Move camera/object.
- Goals
- For this second sprint, I was looking to finish off the particle system’s movement and develop a human-readable file format for my users to create custom emitters.
- To prepare for different types of emitters, I have been researching different things I can do to increase the use cases of this system.
- Changes & Additions
- Removed the emitterSize variable from my cEmitter class.
- This simplifies the interface as well as the , since my particles won’t be colliding with anything else in the scene.
- Removed the identifiers array from the cEmitter class.
- This lessens the amount of data saver per particle, and although it will reduce the ability for gameplay engineers to keep track of an individual particle, this will simplify calculations.
- Added PickUnitSpherePoint to cEmitter class.
- Uniformly distributes on the unit sphere for velocity and acceleration, and returns an sVector of length one.
- Removed cEmitter.
- Replaced it with cEmitterPoint, an emitter that’s source is a singular point in space.
- Replaced it with cEmitterPlane, an emitter that’s source is a defined bounds within the xy plane.
- Added IEmitter abstract class.
- This will allow for different types of emitters to be used.
- Holds minCount, maxCount, particleLifetime, minVel, maxVel, minAcc, maxAcc, minRot, maxRot, body, and transforms as public members of the interface.
- Has Predict and ParticleCount as public functions.
- Has Update as a virtual function.
- This allows the particles to be managed by the type of particle system that is being run.
- Added EmitterBuilder project to Tools.
- This project will create the binary files to use in the game.
- Removed the emitterSize variable from my cEmitter class.
- How I Did It
- By creating an interface for the emitter class, I hope to provide the users of this system a better range of uses.
- Later into the process, I have been considering if it would be easier to go back to one class that can handle different cases, perhaps according to an enum.
- This would make the binary file processing easier and avoid confusion about what types to use.
- Later into the process, I have been considering if it would be easier to go back to one class that can handle different cases, perhaps according to an enum.
- Looking at what might be crowding my class, I hope to make it easier to use in the future.
- By creating an interface for the emitter class, I hope to provide the users of this system a better range of uses.
- Up Next
- Develop binary particle files and reading ability.
- Develop human-readable file format.
- Add more functionality.
- Future Plans
- Simplify the emitter further, to make it easier for the game creators and make it better for usage.




(in progress)