General Category > Showcase

Faerghail (Remake)

(1/7) > >>


My current Blitzmax project beside Extrasolar Origin is a old one - I started 8 years ago with simple Blitz3D tests and now it's becoming better and better. A remake of the old Amiga RPG "Legend of Faerghail" from 1990. Well, I'm getting very familar with OpenB3D now, got my shaders running and I'm still optimizing the BSP loader. At the moment I only have a video and a few screenshots to show the progress, it's still not optimized enough to post a running demo (click images for high resolution).

The torchlight is actually a type 3 spotlight which looks much better than a type 2, all textures use normalmaps and I have a lot of alpha brush models and additional custom B3D models loaded in this level (the knights and the chandliers are plain B3D models (with a shader, too) while the piano and the table are precalculated in the BSP map with a lightmap assigned). I'm not using any dynamic lights except the player torch and a "ambient light torch" to lighten up very dark areas with a decent dark blue tone. The candles, the torches and the fireplaces are simple sprites, not optimized in a single surface mesh yet. The level is absolutely dark except where your "torch" lights it up or the lightmap exists, hard to describe but looks very realistic.

The demo currently runs at 2560x1440 with 280 FPS and has been created using Microsoft Excel ;-) for the basic 2D level structure, a highly sophisticated CSV to MAP tool I wrote myself and the detailed work / compile has been done with a Netradiant fork and Q3MAP2. I'm using 105 different shaded surfaces right now but hope to decrease this number implementing a better shader cache for the BSP meshes like I already did with the B3D models. See some statistics below the screenshots.

Excel view of the level (just basic infos and height information are set)

Output of my CSV2MAP tool (starting a the green square at the top, looking south). All Walls, Doors, Event fields, treasure chests and lights are placed automatically by just parsing the CSV file. The compiled MAP file is then imported into Netradiant, adding more brush detail, models and lights and compiled with the Q3MAP2 tool to a BSP and a lightmap. The BSP is parsed by the engine, building the level structure, adding models/Entities and applying shaders.

If you're interested how it's done here is the Blitz3D source of it (still hadn't time to convert this to BMAX), the original Excel Map and the CSV output used as input:
Download castle1.xlsx
Download castle1.csv

Netradiant view of the level

BSP Size: 6.820.596 Bytes

Parsing BSP Entities...
1 worldspawn
249 misc_gamemodel
46 func_door
67 info_event
3 info_darkness
3 info_vortex
3 info_trap
4 info_stair
266 light
1 info_player_start
3 fireplace
9 info_candle
10 func_brush
665 Entities found.

Final Map statistics:
Total BSP Surfaces: 94
Total BSP Vertices: 136149
Total BSP Triangles: 45383
Total BSP Models: 57
Solid BSP Level Meshes: 7
Alpha BSP Level Meshes: 50
Level Shaders: 94
Ingame Models (unique): 8
Ingame Models (reused): 241 in Instances
Model Shaders (unique): 11
Model Shaders (reused): 274
Torch Sprites: 16
Candle Sprites: 257
Fireplace Sprites: 3
Parse Time: 831ms
Assemble Time: 189ms
Total Build Time: 1020ms

Update 10.06.2017: there is a *lot* of work to do and unfortunately my three week vacation ends tomorrow. First I ported the whole project to my own OpenB3D Framework as it became too large and I needed to structure it. Then I had to rewrite the whole BSP loader to reuse the Type construct loading another level and added a basic main menu functionality. But I still have a big problem with unloading textures in OpenB3D and there are some nasty memory leaks when I load/reload a level. As soon as these problems are solved and I've added at least the functionality like in my very old B3D demo I'll post a running demo.

That really looks awesome. Great artwork!

Looking really good what platforms will this be released on, taking into consideration that OSX will become 64bit on for apps and games as of the end of 2018. Vanilla BlitzMax wont cut it on there which is a shame.



--- Quote from: EdzUp on June 10, 2017, 20:03:24 ---Looking really good what platforms will this be released on, taking into consideration that OSX will become 64bit on for apps and games as of the end of 2018. Vanilla BlitzMax wont cut it on there which is a shame.

--- End quote ---

Platforms: currently Windows (X86) only, but could be ported to OSX and Linux as it is written Blitzmax. But for this I must take a look at NG first and if and how it works with OpenB3D. Beside that some good news, I could fill some memory leaks (hunted 90% down) and made the level loader running in the rewritten BSP parser. And I could even solve my "Multi-Lightmap-Problem" I mentioned in the thread but for the sake of using more shaders than intended (one per surface). That's not a very elegant solution but for now it is working at all and it's still fast. And added dynamic size buttons to the main menu and a spinning cartwheel loader 8)


[0] Message Index

[#] Next page

Go to full version