Khorinis Scenery Demo / NETradiant BSP Loader

Community Forums/Showcase/Khorinis Scenery Demo / NETradiant BSP Loader

Krischan(Posted 2010) [#1]


This is a tech demo showing how to use the NETradiant mapper as a base for complex scenes and how to load them in Blitz3D. Together with my BlitzSky system, a complete day/night cycle is possible.

For this demonstration I took "Orlan's Tavern" from the game "Gothic II" as a template. The whole scene has been built in NETradiant - geometry, UV coordinates and lightmaps. The map is stored in the Quake III BSP Format (a little bit customized) and loaded with an improved version of Zap's BSP loader.

Here some screenshots (left: day, right: night, always the same perspective):

Exterior View


Bar Keeper View


Inner view


Outer View


Roof construction


The installation is very simple. Just download the current version of NETradiant and install my update over it, which contains the shown demo complete with source, models, textures for free use.

Download Netradiant (ca. 19MB)
Download Blitz3D Update (ca. 4MB)
(I'm using the current snapshot NetRadiant 1.5.0, SVN revision 402 as of Sun Oct 4 20:01:15 2009)

Just uncompress the NETradiant file to C:\ root and execute my update just after that, choose again C:\ root. Start NETradiant with radiant.exe and my demo is in the C:/ Netradiant/blitz3d.game/data folder.

Using NETradiant is similar to id software's QEradiant or GTKradiant, there are many tutorials out there. NETradiant is very stable und runs even under Windows 7. You can compile a map in the menu "Build" with the option "Blitz3D: Khorinis Scenery Demo [Q3BSP Loader customized]". After the build you can see the result instantly calling my demo.bb!

The second build option is for the BSP Loader of Blitz3D for direct compare the two functions. After a build with it you should rename the khorinis.bsp to khorinis_q3.bsp and build the map with the first option again. The Blitz3D BSP loader expects a 100% percent compatible Quake III compatible map and can't load my customized format with external and larger lightmaps.


The following features are implemented yet:

- parsing BSP geometry and create one surface per texture, recycle lightmaps
- support for lightmaps greater than 128x128 (in my demo: 512x512)
- automatic creation of a second, brighter lightmap for day shadows
- parsing BSP entities and placing of models
- rotating and scaling of models like recorded in Radiant
- lights have flares obscured by geometry
- complete day/night cycle
- simple DX Torchlight to lighten up dark places
- shadow intensity adjustable
- direct compare with Blitz3D BSP loader possible

Steering:
- Q/A = move sun/moon (change time)
- 1..2..3..4..5..6..7..8..9..0 = dawn->noon->midnight = predefined times
- LMB = switch between Blitz3D BSP Loader and Q3BSP Loader
- RMB = switch torchlight
- SPACE = Wireframe

Have fun with it! And take a look at the credits.txt in the blitz3d.game folder if you want to use parts of it in your own projects. Everything should be free to use.


Blitzplotter(Posted 2010) [#2]
Looks very impressive, seeing the different scenes in day/night. I tried applying a massive skybox a while ago, this looks like an interesting alternative.


SLotman(Posted 2010) [#3]
Very impressive! Would be really nice if it works on miniB3D... maybe if I get the time I try to port it over to see how well it will work ;)


Ian Thompson(Posted 2010) [#4]
Very nice work, well done! :)


puki(Posted 2010) [#5]
I did not notice this a week ago, so I am glad that "Ian Thompson" posted to bring it to my attention.

It looks exciting - I'll take a look at it later.


Krischan(Posted 2010) [#6]
Puki - Just for the case you'll mention this flaw again: I didn't fix the BlitzSky bug you mentioned a while ago, I focused on the scenery and a working BSP loader instead :-|

Slotman - I am sure this can be ported to Blitzmax / MiniB3D - I already bought BlitzMax a while ago it but I didn't spent much time with it. I think this is a job for somebody who already has experience with BlitzMax.


puki(Posted 2010) [#7]
I was mortified to see that control system back again. Is it a punishment or something?


Krischan(Posted 2010) [#8]
What do you mean exactly? I never heard any critics about the "control system". If it doesn't suit feel free to alter it - the source is included...


stayne(Posted 2010) [#9]
lol Krischan. save your breath.


puki(Posted 2010) [#10]
It's the use of a ridiculous mouse-look system that I find strange beyond belief. In short, it is bizarre. Yes, I can change it, but it does not change the fact that it is ridiculous.

I'd like to know the reasoning behind it - if there is any - ie is it a German thing or something - ie do you lot use this as standard?


Krischan(Posted 2010) [#11]
Yes, I use it as standard - it is easy to use for me. Again - you're the only person who complained about it - so I guess I can ignore this until you bring some arguments WHY it is ridiculous in your opinion or how YOU would improve or replace it...

And I really don't know what my origin has to do with my system? Is this some kind of prejudice or something? After all, this control system is a central part of my secret plan to gain world dominion within the next 30 days, together with the Boys from Brazil using the "Blitzwunderwaffe" to achieve this. And you call it ridiculous?

Ridiculous is to complain about something but don't suggest improvements.




puki(Posted 2010) [#12]
Well, it is kind of odd for me.

Instead of just a normal FPS-type mouselook, it is more of a floaty/drunk mouse control - ie it is like the user (me) is drunk (intoxicated). I don't get it.


Ian Thompson(Posted 2010) [#13]
LOL, cool pic.

What Puki means is that there seems to a probem with maintaining a steady movement/framespeed. Turning/moving is jerky as a result.

This looks like a problem with the game timing/frame tweening rather than the rendering speed, which is excellent BTW Krischan.

Lovely scene too, one of the nicest I've every seen done in Blitz.


puki(Posted 2010) [#14]
I only have to move the mouse a bit and I can end up spinning about or fighting to bring the camera back the opposite way it is moving - sometimes I have to fight hard to keep control.


Krischan(Posted 2010) [#15]
Hmm, I never ran into such a situation here. puki, try this mouselook code instead, this runs *very* smooth here:

Main Loop: replace FreeCam Function with FreeLook(BS_Camera,2)

Add this to the code somewhere:


If it doesn't help I don't know - could be the frame tweening Ian Thompson mentioned. You could remove the Frametweening loop and use a timer or just change Flip 0 to Flip 1...

Has anybody else problems with the movement or jitter?


Ian Thompson(Posted 2010) [#16]
Hmmm, tried this in my bothers old computer and it ran into problems(although it ran at a respectable frame rate on that), on my, more up-to-date one it runs fine. So its hard to recreate the error to try and fix it here.