
The design also included relegating the tasks that take the most time when producing a 3d game - asset creation (modelling/uv unwrapping, texturing, animating, and level design) - to a minimum, relying mostly on combining basic geometric shapes for the models and levels, doing animations based on combinations of translations,rotations and scales, and keeping textures clean (procedurally generated) or not using any, relying mostly on graphics card shaders for the visual look.ĭuring the pre-production phase, I've been searching for technologies that would allow me to make the game, with the main features I wanted in it (3D, procedural mesh generation, real time lighting and shader effects, basic physics, particle effects) in the quickest/easiest/most productive way possible.
Stencyl shaders how to#
The game was specifically designed to be fully implementable in a week, by including gameplay mechanics easy to implement, but where complexity can be added, allowing for evolution as the player progresses through the game, and giving him choices on how to play the game. Here's the introductory post (video is below):Īs soon as I heard about the competition (a few weeks ago), I thought that it would be a great challenge, and started designing the game and doing "pre-production" work -checking tools, languages, libraries, that would allow the implementation of that design.

Hi, I've decided to enter the "7 Day First Person Shooter" challenge at, with a project called "The Ivory Halls". Today I'll add enemy logic: generation, spawning, and attacking the player.
Stencyl shaders code#
In that prototype I had Unity's default first person controller, to which I added a general shooting mechanic (raycasting, adding randomness to shots and a delay between shots), logic for a machine gun, rendering a mesh to show the shot tracers, a weapon position to fire from and a cylinder to visually show it, and a particle system that spawns where each shot hits.įrom that, I added code to dynamically generate a room mesh (now, simply a cube, with corresponding physics, created in Javascript code using a new GameObject, and adding the MeshFilter, MeshRenderer and MeshCollider components, and setting the MeshCollider and MeshFilter's Mesh to the one I created, by setting its "vertices", "triangles" and "uv", and the meshFilter's "material" variables). I finally decided to leave Java and Lwjgl, and go back to one of the solutions I've considered before (between Unity and Blender Game Engine, I chose to go with Unity, since I already had a prototype working before the challenge began), thus ditching shadows and visual effects (since I'm working with Unity free). I briefly considered implementing a simple collision system using swept spheres, but that would also take considerable time and energy debugging. I realized that it wouldn't be a good idea to have to deal with learning the library's api, implementing and debugging in such a short time. Since I wasn't familiar with the Bullet physics library, I didn't know how to integrate it nor did I know how it would perform in the kind of environment I'm aiming to create (a procedural level that will have dynamic loading and unloading of geometry). I initially choose to integrate a java physics library. Since the last post, I worked on adding player collision against the world. This is the current state for the end of Day 3:

This is a daily diary I will keep for my "7 Day First Person Shooter" challenge entry.
