About
Once upon a time there was a chili pepper named Bartholomew. Bartholomew has airplane wings sticking out of his sides, yet he was not happy. Bartholomew wasn't happy because he was allergic to happiness, and the world wasnt safe for him.
You can help Bartholomew by taking control of his character, and piloting him through the pantry skies. Destroy everything gleeful and dodge the blades of the ceiling fan while protecting Bartolomew's Anger Sauce, his life force, from the corrupting forces of elatedness.
Bartholomew can be controlled with the mouse, and clicking either button deploys weapons created from children's tears. Press A to do a barrel roll.
Features
- Particle systems!
- Destroy food products with awesome weapons!
- Randomly generated obstacles and enemies!
- Amazing models!
- Music for every level!
- Sweet sound effects!
- Sick Cel-Shaded graphics!
Do a Barrel ROLL!!!
Technologies
- Fragment Based Cel-Shading
- Cel-Shading was done using the gl shader language (glsl). This was a huge performance increase over standard vertex shading.
- Collision Detection
- Collision detection was done using simple AABB bounding structures and an OctTree. There is collision detection between Bart and Bullets, Bart and Enemies, Enemies and Bullets, Bart and Obstacles, and Bart and Power-Ups.
- Texturing
- All textures were amazingly hand-drawn. Almost everything is textured, bet you can't spot what isn't.
- Models
- All models were amazingly hand-drawn in blender, except for the banana mesh which was obtained from a free blender repository. Exporting was done via an export script in blender.
- Particles
- Particles were implemented as ammo. Doing it this way allowed them to do damage to enemies and have some nice effect. The rainbow gun smashes into an amazing 200+ rainbow particles every time they hit something, the splitter gun smashes into bouncing particles every time they hit something, when enemies die they produce a random amount of 'guts' particles, and when Bart gets hit, he produces a small amount of blood particles.
- Shadows
- Shadows were implemented as drop shadows. Everything except particles and obstacles have shadows.
- Level of Detail (Progressive Meshes)
- Every enemy has a few different meshes that are loaded depending on how far they are from Bart. Can you spot the different meshes?
- Spatial Data Structure (OctTree)
- All enemies and obstacles are added to an OctTree to speed up collision detection. When performing collision detection, an object will traverse the tree to determine which objects to check against. As a node in the tree fills up, it subdivides into smaller nodes, ensuring no node has too many objects. This allows us to keep collision checks to a reasonable level and save on performance.
- Procedurally Generated Levels
- Enemies and obstacles are generated on the fly by our Obstacle Generator. It decides which enemies or obstacles where, and when to place them, eliminating the need for pre-designed levels. This system also ensures every experience is different.
- Audio
- Level music made in Sony Acid by laying out many layers of music tracks and toggling which are muted. Using irrklang tracks are started at the same time and then toggled to be muted or unmuted depending on level for a smooth transition giving the apparence that the song is evolving as you level up.
Requirements
- Linux (for now)
- OpenGL
- Graphics Card Shader Support
Get It
Coming soon(ish)...
Developers
Bartholomew was lovingly created by:
- Katherine Blizard
- Aaron Burke
- Adam Deets
- Chris Spangle
- Alexander Xydes
Credits
- Artwork: Katherine drew all of the artwork by hand with lots of love.
Models: The banana mesh was obtained from The Official Blender Model Repository.
Audio: Bartholomew uses the irrKlang API from Ambiera to play the sounds. Sound effects obtained from freesound.org" and modified by Aaron. All the level tracks are made in Sony Acid by Aaron, and the frightening intro song is Dough-Nuts Town's map by Plus-Tech Squeeze Box.
General Code: Base code for the OctTree was provided by OpenGL Video Tutorials at Video Tutorials Rock, modified and extended by Chris.
Base code for the TGA loader provided by Tom Arnold. Available at: dream-in-code, modified by Alexander.
Everything else we made ourselves.