So, my 3rd day isn’t over yet, but I thought I’d post an update already. I have managed to add some variance to the previously straight and boring walls. It’s not much, but certainly an improvement already. I cannot add infinite details as my polygon count and level generation time starts to rise to uncomfortable levels – the whole level is currently naïvely implemented as a single largish static mesh. Already previously I extended the walls beyond the camera, so it looks like the roof is very high. I kind of like this and it also has the nice side effect of letting me completely ignore LOS/FOV calculations and complex OpenGL shadowing.
In other news, the first steps towards actual gameplay are taken, as I implemented dummy randomly moving enemies and grid-based movement (previously pixel-based). Graphics still need tweaking, but I think I’m going to sideline that stuff for a while and do more in the content side.
- Wall randomness
My second day was mostly spent on trying to make normal mapping work in my WebGL 7drl. I finally managed to do that, but it took too much time for me to be completely happy and there still remains some tweaking. However, I did have time for something else apart from making the walls bumpy. I now have an actual dungeon generator instead of a hard-coded level, but it still needs a lot of work. Other notable things concern lights: they now pulsate slightly (not yet a satisfactory torch effect though) and the engine is now able to handle arbitrary number of them (the closest ones are determined and passed to the shaders).
Tomorrow I hope I can improve the map generator and also the actual visible wall geometry. I might also add some simple monsters.
I started my WebGL based 7drl roughly 10 hours ago and I think I’ve gotten into a quite good start: I’ve got movement, basic collision detection, level loading from an ascii map and basic lighting with multi-light support.
- First day’s results: simple dungeon with lighting
I’ll probably continue by tweaking the shaders for prettier effects and trying to add randomness to those boring cube blocks.
WebGL also has the advantage that it is a well-defined and contained set of OpenGL functionality, contrary to the desktop version where there are many different versions, each deprecating something etc, so that it becomes hard and confusing to figure out what functionality should be used (e.g. doing stuff in a deprecated way to maintain compatibility with older hardware or coding “the right, modern way” that’ll probably break many bad drivers).
So, looks like I might be leaning towards WebGL, but need to read a couple of more tutorials and run some tests before I can say for sure.
Last year I made a successful 7DRL called City of the Condemned (link) and I originally thought to make a multiplayer version 2 this year, but I’ve changed my mind and am planning to do something completely different.
My idea is to create a very simple, short and straight-forward roguelike, but do as much of it as possible with OpenGL shaders as I want to learn more GLSL. Now I’m probably not going to break the tradition too much as the player and monsters are most likely still going to be letters and the view is more or less top-down, but I plan to do something nice looking with lighting and walls.
As with almost all of my coding, I shall use C++ as the programming language, Git as version control, CMake as build system and the thing will be open-source and cross-platform, with binaries for Linux and Windows (I don’t have a Mac and cross-compiling for it is close to impossible 🙁 )