sábado, 9 de junho de 2012

7DFPS - Intro Post

Hi, I've decided to enter the "7 Day First Person Shooter" challenge at 7dfps.org, with a project called "The Ivory Halls". Here's the introductory post (video is below):


As 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.


Game design:
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.


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.


Technology:
During 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. There was a focus on using open-source or free software, or software with demo versions.


I looked at the Unity 3D engine, which allowed for quickly developing a prototype, has good documentation and community, and is one of the most non-programmer friendly game development tools, but the free version did not allow for the use of shaders for effects such as real-time shadows and lighting, so I set it aside, looking for alternatives that would provide that feature.


I tried Blender Game Engine (which is run from inside the Blender application), which I found to be very powerful and underrated as a game development tool (allowing for lots of the sophisticated shader effects I was looking for, and being fairly easy to use, with a drag-and-drop programming style good for non-programmers), but the fact that I could not dynamically add meshes during the Game Engine execution (only use meshes previously created), and the fact that it uses Python which I dislike, made me keep looking.


Having experience and preference for developing using Java (in the Netbeans IDE), I looked at JMonkeyEngine. Very advanced with lots of features and with tutorials and code that makes it easy to start developing an FPS, but I was having problems with updates for the main platform that were supposedly the stable version, but that broke previously working features and were poorly documented, so I got tired of it and moved on.


My next stop was going closest to the metal: LWJGL - a low-level library that allows the use of OpenGL in Java (I'd rather avoid going low-level into straight programming, instead using productivity applications, but found little niggles in the options that I considered previously). I also thought it would be challenging to finally learn about the recent OpenGL API design, named "OpenGL Core", which is more complex than the previous "Immediate mode" but allows for lots of creativity. Hoping that this still allows me to develop a game in the time allotted


I will be posting a short video and report at the end of each day with what I've got completed so far. By today, I've got a simple 3d camera with first person controls, no gravity, and a couple of triangles with basic shaders: 




Thanks for visiting!

Sem comentários: