Re: Irrlicht Port

#131
juanjpro wrote:Each zone will have it's own level, and you can move between zones with an elevator which requires some access thing. This will reduce memory usage by having only one zone loaded at a time (each time you move from one zone to another, a loading screen will show up).
As for AI, connections between waypoints will be defined manually, because making the game link them automatically is slow and buggy (incorrect connections between waypoints causes the NPCs to run against walls).
While in real life it'd be rather practical, it seems slightly weird giving the facility a vertical layout here, especially if the elevators only connects two zones each. I'd imagine all elevators would realistically have access to all zones as well as the surface. The current checkpoint rooms seem like good places for loading segments in my opinion, just redesign the room so that there's a small airlock chamber with an inspection booth past the keycard door like some found in the Half Life series.

Also, now that zones are loaded separately and memory consumption for each is less of a problem, have you ever considered adding additional zones? A small mini-zone for a medical department would be interesting, like an extended medi-bay. Of course, it'd probably be best to catch up to speed with the main game before adding new content of that scale.
It slep time bunner.

Re: Irrlicht Port

#132
Omniary wrote:The current checkpoint rooms seem like good places for loading segments in my opinion, just redesign the room so that there's a small airlock chamber with an inspection booth past the keycard door.
While this is possible, separating zones with a loading screen is much easier to do since you don't have to worry about keeping the framerate up while you're pulling data from storage.
M-x dingus-mode

Re: Irrlicht Port

#133
Omniary wrote:While in real life it'd be rather practical, it seems slightly weird giving the facility a vertical layout here, especially if the elevators only connects two zones each. I'd imagine all elevators would realistically have access to all zones as well as the surface.
The elevator will connect all three zones, but since you're a D-Class you won't be able to use it until you find something. Maybe I could use 079 as an excuse to let the player go to the HCZ, but not the Entrance Zone. I could use an airlock to make the transition between zones, but I think the Entrance Zone should be as far away from the HCZ as it can get, and the elevator is an easy way to force the player into the HCZ before going to the surface.
Omniary wrote:Also, now that zones are loaded separately and memory consumption for each is less of a problem, have you ever considered adding additional zones?
I could implement the maintenance tunnels as a zone, instead of a room found in the HCZ.

Re: Irrlicht Port

#134
MonocleBios wrote:While this is possible, separating zones with a loading screen is much easier to do since you don't have to worry about keeping the framerate up while you're pulling data from storage.
That was my (poorly illustrated) meaning, all I was suggesting was to have the loading screens take place in the checkpoint area as opposed to an elevator.
juanjpro wrote:The elevator will connect all three zones, but since you're a D-Class you won't be able to use it until you find something. Maybe I could use 079 as an excuse to let the player go to the HCZ, but not the Entrance Zone. I could use an airlock to make the transition between zones, but I think the Entrance Zone should be as far away from the HCZ as it can get, and the elevator is an easy way to force the player into the HCZ before going to the surface.
Hmm, perhaps the LCZ and HCZ should be connected via checkpoints, and then the Entrance zone is where you use the elevator, since I agree the researchers should be far from the containment facilities. If the containment zones were on different levels I'd imagine HCZ would be at the core of the facility, with the LCZ in between the two, which wouldn't seem right for progression (unless maybe something happens like your elevator crashes down into Heavy Containment).
It slep time bunner.

Re: Irrlicht Port

#135
I think I'll think a bit more about that later.

I've implemented RMesh 2, which requires slightly less disk space, requires waypoints to be defined manually and supports non-solid objects.
To make your own rooms considering these changes:
- With a mesh entity or a brush, press Shift+Enter and add a new key called "notsolid" and set its value to true to disable collision detection with that object.
- With a waypoint entity, use a key called "name" and keys called "connectionX" (where X is a number in the range 0-9, but don't skip any numbers) to define connections between waypoints. Connections are one way; if waypoint A is connected to waypoint B, then don't tell waypoint B that it's connected to waypoint A, the game will do this for you. RMesh 1 to RM2 conversion will connect the waypoints automatically, and this can be easily done with B3D conversion.

You can get the converter from the repository: https://github.com/juanjpro/SCPCBIrrlic ... ras/RM2.bb. Don't try to read the code in there, it's a disaster.

Re: Irrlicht Port

#136
Hello,

I've finally compiled the project on Ubuntu 14.10.

I tried to launch it, but I encountred a segfault after loading.
Here is the log when the program is launched with gdb:
Spoiler
gdb ./bin/Debug/SCPCBIrrlicht GNU gdb (Ubuntu 7.8-1ubuntu4) 7.8.0.20141001-cvs
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./bin/Debug/SCPCBIrrlicht...done.
(gdb) run
Starting program: /home/wattt/git/SCPCBIrrlicht/bin/Debug/SCPCBIrrlicht
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Irrlicht Engine version 1.8.1
Linux 3.16.0-24-generic #32-Ubuntu SMP Tue Oct 28 13:07:32 UTC 2014 x86_64
[New Thread 0x7fffedec3700 (LWP 9455)]
Using renderer: OpenGL 3.0
Gallium 0.4 on AMD JUNIPER: X.Org
OpenGL driver version is 1.2 or better.
GLSL version: 1.3
AL lib: (EE) alcOpenDevice: Option 'format' is deprecated, please use 'channels' and 'sample-type'
[New Thread 0x7fffe70dd700 (LWP 9456)]
[New Thread 0x7fffecd85700 (LWP 9457)]
OpenAL initialized successfully
Seed: -1236963340
GLSL shader failed to compile
0:21(24): error: could not implicitly convert operands to arithmetic operator
0:21(23): error: operands to arithmetic operators must be numeric
0:21(23): error: operands to arithmetic operators must be numeric
0:21(22): error: operands to arithmetic operators must be numeric
0:21(16): error: no matching function for call to `clamp(error, float, float)'; candidates are:
0:21(16): error: vec2 clamp(vec2, float, float)
0:21(16): error: float clamp(float, float, float)
0:21(16): error: vec2 clamp(vec2, float, float)
0:21(16): error: vec3 clamp(vec3, float, float)
0:21(16): error: vec4 clamp(vec4, float, float)
0:21(16): error: vec2 clamp(vec2, vec2, vec2)
0:21(16): error: vec3 clamp(vec3, vec3, vec3)
0:21(16): error: vec4 clamp(vec4, vec4, vec4)
0:21(16): error: int clamp(int, int, int)
0:21(16): error: ivec2 clamp(ivec2, int, int)
0:21(16): error: ivec3 clamp(ivec3, int, int)
0:21(16): error: ivec4 clamp(ivec4, int, int)
0:21(16): error: ivec2 clamp(ivec2, ivec2, ivec2)
0:21(16): error: ivec3 clamp(ivec3, ivec3, ivec3)
0:21(16): error: ivec4 clamp(ivec4, ivec4, ivec4)
0:23(24): error: could not implicitly convert operands to arithmetic operator
0:23(23): error: operands to arithmetic operators must be numeric
0:23(23): error: operands to arithmetic operators must be numeric
0:23(22): error: operands to arithmetic operators must be numeric
0:36(22): error: could not implicitly convert operands to arithmetic operator
0:36(21): error: operands to arithmetic operators must be numeric
0:36(21): error: operands to arithmetic operators must be numeric
0:36(20): error: operands to arithmetic operators must be numeric
0:36(14): error: no matching function for call to `clamp(error, float, float)'; candidates are:
0:36(14): error: vec2 clamp(vec2, float, float)
0:36(14): error: float clamp(float, float, float)
0:36(14): error: vec2 clamp(vec2, float, float)
0:36(14): error: vec3 clamp(vec3, float, float)
0:36(14): error: vec4 clamp(vec4, float, float)
0:36(14): error: vec2 clamp(vec2, vec2, vec2)
0:36(14): error: vec3 clamp(vec3, vec3, vec3)
0:36(14): error: vec4 clamp(vec4, vec4, vec4)
0:36(14): error: int clamp(int, int, int)
0:36(14): error: ivec2 clamp(ivec2, int, int)
0:36(14): error: ivec3 clamp(ivec3, int, int)
0:36(14): error: ivec4 clamp(ivec4, int, int)
0:36(14): error: ivec2 clamp(ivec2, ivec2, ivec2)
0:36(14): error: ivec3 clamp(ivec3, ivec3, ivec3)
0:36(14): error: ivec4 clamp(ivec4, ivec4, ivec4)
0:36(10): error: operands to arithmetic operators must be numeric
0:40(22): error: could not implicitly convert operands to arithmetic operator
0:40(21): error: operands to arithmetic operators must be numeric
0:40(21): error: operands to arithmetic operators must be numeric
0:40(20): error: operands to arithmetic operators must be numeric
0:40(14): error: no matching function for call to `clamp(error, float, float)'; candidates are:
0:40(14): error: vec2 clamp(vec2, float, float)
0:40(14): error: float clamp(float, float, float)
0:40(14): error: vec2 clamp(vec2, float, float)
0:40(14): error: vec3 clamp(vec3, float, float)
0:40(14): error: vec4 clamp(vec4, float, float)
0:40(14): error: vec2 clamp(vec2, vec2, vec2)
0:40(14): error: vec3 clamp(vec3, vec3, vec3)
0:40(14): error: vec4 clamp(vec4, vec4, vec4)
0:40(14): error: int clamp(int, int, int)
0:40(14): error: ivec2 clamp(ivec2, int, int)
0:40(14): error: ivec3 clamp(ivec3, int, int)
0:40(14): error: ivec4 clamp(ivec4, int, int)
0:40(14): error: ivec2 clamp(ivec2, ivec2, ivec2)
0:40(14): error: ivec3 clamp(ivec3, ivec3, ivec3)
0:40(14): error: ivec4 clamp(ivec4, ivec4, ivec4)
0:40(10): error: operands to arithmetic operators must be numeric
0:44(22): error: could not implicitly convert operands to arithmetic operator
0:44(21): error: operands to arithmetic operators must be numeric
0:44(21): error: operands to arithmetic operators must be numeric
0:44(20): error: operands to arithmetic operators must be numeric
0:44(14): error: no matching function for call to `clamp(error, float, float)'; candidates are:
0:44(14): error: vec2 clamp(vec2, float, float)
0:44(14): error: float clamp(float, float, float)
0:44(14): error: vec2 clamp(vec2, float, float)
0:44(14): error: vec3 clamp(vec3, float, float)
0:44(14): error: vec4 clamp(vec4, float, float)
0:44(14): error: vec2 clamp(vec2, vec2, vec2)
0:44(14): error: vec3 clamp(vec3, vec3, vec3)
0:44(14): error: vec4 clamp(vec4, vec4, vec4)
0:44(14): error: int clamp(int, int, int)
0:44(14): error: ivec2 clamp(ivec2, int, int)
0:44(14): error: ivec3 clamp(ivec3, int, int)
0:44(14): error: ivec4 clamp(ivec4, int, int)
0:44(14): error: ivec2 clamp(ivec2, ivec2, ivec2)
0:44(14): error: ivec3 clamp(ivec3, ivec3, ivec3)
0:44(14): error: ivec4 clamp(ivec4, ivec4, ivec4)
0:44(10): error: operands to arithmetic operators must be numeric
0:48(22): error: could not implicitly convert operands to arithmetic operator
0:48(21): error: operands to arithmetic operators must be numeric
0:48(21): error: operands to arithmetic operators must be numeric
0:48(20): error: operands to arithmetic operators must be numeric
0:48(14): error: no matching function for call to `clamp(error, float, float)'; candidates are:
0:48(14): error: vec2 clamp(vec2, float, float)
0:48(14): error: float clamp(float, float, float)
0:48(14): error: vec2 clamp(vec2, float, float)
0:48(14): error: vec3 clamp(vec3, float, float)
0:48(14): error: vec4 clamp(vec4, float, float)
0:48(14): error: vec2 clamp(vec2, vec2, vec2)
0:48(14): error: vec3 clamp(vec3, vec3, vec3)
0:48(14): error: vec4 clamp(vec4, vec4, vec4)
0:48(14): error: int clamp(int, int, int)
0:48(14): error: ivec2 clamp(ivec2, int, int)
0:48(14): error: ivec3 clamp(ivec3, int, int)
0:48(14): error: ivec4 clamp(ivec4, int, int)
0:48(14): error: ivec2 clamp(ivec2, ivec2, ivec2)
0:48(14): error: ivec3 clamp(ivec3, ivec3, ivec3)
0:48(14): error: ivec4 clamp(ivec4, ivec4, ivec4)
0:48(10): error: operands to arithmetic operators must be numeric

GLSL shader failed to compile
0:10(18): error: could not implicitly convert operands to arithmetic operator
0:10(9): error: no matching function for call to `min(float, error)'; candidates are:
0:10(9): error: float min(float, float)
0:10(9): error: vec2 min(vec2, float)
0:10(9): error: vec3 min(vec3, float)
0:10(9): error: vec4 min(vec4, float)
0:10(9): error: vec2 min(vec2, vec2)
0:10(9): error: vec3 min(vec3, vec3)
0:10(9): error: vec4 min(vec4, vec4)
0:10(9): error: int min(int, int)
0:10(9): error: ivec2 min(ivec2, int)
0:10(9): error: ivec3 min(ivec3, int)
0:10(9): error: ivec4 min(ivec4, int)
0:10(9): error: ivec2 min(ivec2, ivec2)
0:10(9): error: ivec3 min(ivec3, ivec3)
0:10(9): error: ivec4 min(ivec4, ivec4)

Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/BlinkMeter.jpg
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/StaminaMeter.jpg
Unknown data object in animation of .x file: Header
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/papertexture.jpg
Loaded mesh: GFX/items/420.x
Unknown data object in animation of .x file: Header
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/keycard2.jpg
Loaded mesh: GFX/items/keycard.x
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/keycard1.jpg
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/keycard3.jpg
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/keycard4.jpg
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/keycard5.jpg
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/card.jpg
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/keycardomni.jpg
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/key.png
Unknown chunk found in node chunk - skipping
Loaded mesh: GFX/items/key.b3d
Unknown data object in animation of .x file: Header
Loaded mesh: GFX/items/paper.x
Could not open file of texture: MTFbody.jpg
} found in dataObject
Loaded mesh: GFX/items/vest.x
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/npcs/MTFbody.jpg
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/hazmat.jpg
Loaded mesh: GFX/items/hazmat.b3d
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/metal.jpg
} found in dataObject
Expected 16 numbers in animation key in x file
Line: 333
Loaded mesh: GFX/items/cup.x
Unknown chunk found in node chunk - skipping
Loaded mesh: GFX/items/pill.b3d
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/firstaidkit.jpg
} found in dataObject
Expected 16 numbers in animation key in x file
Line: 257
Loaded mesh: GFX/items/firstaid.x
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/firstaidkit2.jpg
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/eyedrops.jpg
Loaded mesh: GFX/items/eyedrops.b3d
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/bottle.jpg
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/gasmask.jpg
Unknown chunk found in node chunk - skipping
Loaded mesh: GFX/items/gasmask.b3d
Unknown data object in animation of .x file: Header
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/keyboard.jpg
Loaded mesh: GFX/items/battery.x
Unknown data object in animation of .x file: Header
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/crtrec.jpg
Loaded mesh: GFX/items/metalpanel.x
Unknown data object in animation of .x file: AnimTicksPerSecond
Loaded mesh: GFX/items/scp148.x
Unknown data object in animation of .x file: AnimTicksPerSecond
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/nav.jpg
Loaded mesh: GFX/items/navigator.x
Unknown data object in animation of .x file: AnimTicksPerSecond
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/radio.png
Loaded mesh: GFX/items/radio.x
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/shand_diffuse.png
Unknown chunk found in node chunk - skipping
Unknown chunk found in node chunk - skipping
Unknown chunk found in node chunk - skipping
Loaded mesh: GFX/items/severedhand.b3d
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/shand2.png
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/scp714.jpg
Loaded mesh: GFX/items/scp714.b3d
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/scp-1025_diff.png
Loaded mesh: GFX/items/scp1025.b3d
Unknown data object in animation of .x file: AnimTicksPerSecond
Loaded texture: /home/wattt/git/SCPCBIrrlicht/GFX/items/513.jpg
Loaded mesh: GFX/items/513.x
Loading "SFX/Music/The Dread.ogg"
Could not load "GFX/map/lockroom_opt.rm2"
Could not load "GFX/map/173_opt.rm2"
Could not load "GFX/map/room2storage_opt.rm2"
Could not load "GFX/map/room3storage_opt.rm2"
Could not load "GFX/map/endroom_opt.rm2"
Could not load "GFX/map/room012_opt.rm2"
Could not load "GFX/map/room2_opt.rm2"
Could not load "GFX/map/room2_2_opt.rm2"
Could not load "GFX/map/room2C_opt.rm2"
Could not load "GFX/map/room2closets_opt.rm2"
Could not load "GFX/map/room2elevator_opt.rm2"
Could not load "GFX/map/room2doors_opt.rm2"
Could not load "GFX/map/room2scps_opt.rm2"
Could not load "GFX/map/room3storage_opt.rm2"
Could not load "GFX/map/room2testroom2_opt.rm2"
Could not load "GFX/map/room3_opt.rm2"
Could not load "GFX/map/room3_2_opt.rm2"
Could not load "GFX/map/room4_opt.rm2"
Could not load "GFX/map/roompj_opt.rm2"
Could not load "GFX/map/machineroom_opt.rm2"
Loading "SFX/9341/breath0.ogg"
Loading "SFX/9341/breath0gas.ogg"
Loading "SFX/9341/breath1.ogg"
Loading "SFX/9341/breath1gas.ogg"
Loading "SFX/9341/breath2.ogg"
Loading "SFX/9341/breath2gas.ogg"
Loading "SFX/9341/breath3.ogg"
Loading "SFX/9341/breath3gas.ogg"
Loading "SFX/9341/breath4.ogg"
Loading "SFX/9341/breath4gas.ogg"
Loading "SFX/Step1.ogg"
Loading "SFX/Run1.ogg"
Loading "SFX/StepMetal1.ogg"
Loading "SFX/RunMetal1.ogg"
Loading "SFX/StepPD1.ogg"
Loading "SFX/StepForest1.ogg"
Loading "SFX/Step2.ogg"
Loading "SFX/Run2.ogg"
Loading "SFX/StepMetal2.ogg"
Loading "SFX/RunMetal2.ogg"
Loading "SFX/StepPD2.ogg"
Loading "SFX/StepForest2.ogg"
Loading "SFX/Step3.ogg"
Loading "SFX/Run3.ogg"
Loading "SFX/StepMetal3.ogg"
Loading "SFX/RunMetal3.ogg"
Loading "SFX/StepPD3.ogg"
Loading "SFX/StepForest3.ogg"
Loading "SFX/Step4.ogg"
Loading "SFX/Run4.ogg"
Loading "SFX/StepMetal4.ogg"
Loading "SFX/RunMetal4.ogg"
00000000000000000000
00100010000010000000
00100010000010000000
00101010000010000000
11111111111110000000
00100010001000000000
00100010001000000000
00101010101000000000
00111111111111110000
00100010000100010000
00101010000100010000
10111111111111111100
10100010100000000000
10101010100000000000
11111111111000000000
10100000100000000000
10100000101000000000
10100010101000000000
11111111111110000000
00000000001000000000

Program received signal SIGSEGV, Segmentation fault.
0x0000000000452775 in room::loadAssets (this=0x243f280, rme=0x0,
inPosition=..., inAngle=0)
at /home/wattt/git/SCPCBIrrlicht/3dworld/rooms/room.cpp:77
77 node = room::getNewNode(rme->mesh); node->setVisible(true);
I don't know if it's related to the last commit about rooms.
I've also some shaders compilation failures, but most of them can be fixed by replacing integer to float (ie 255 to 255.0) in PostProcessFrag.txt and ZBufferFrag.txt.

Also, anyboby know how to define priority in "Search directory" in Code Blocks? I had to replace some files in /usr/include/irrlicht with the project one, which is suboptimal.

Re: Irrlicht Port

#137
That segfault is because Irrlicht tried to create a node with a mesh that couldn't be loaded. You need the room meshes in the RM2 format: https://www.mediafire.com/?gs115si6i0maa77
As for the shaders, I'm aware that some OpenGL implementations are very strict, so if you can manage to fix all of them, send changes so they are added to the project.

EDIT: Merged pull request
Last edited by juanjp600 on Wed Nov 19, 2014 10:21 pm, edited 1 time in total.

Re: Irrlicht Port

#138
juanjpro wrote: The elevator will connect all three zones, but since you're a D-Class you won't be able to use it until you find something. Maybe I could use 079 as an excuse to let the player go to the HCZ, but not the Entrance Zone. I could use an airlock to make the transition between zones, but I think the Entrance Zone should be as far away from the HCZ as it can get, and the elevator is an easy way to force the player into the HCZ before going to the surface.
I've already thought this all out, I still have all the files from SCP: New Fear. Part of the idea was that during a lockdown, you'd need a level 5 keycard to access the elevator on sublevel 5, etc. I was actually going to split the facility into 5 sub-levels, then have the surface zone and above as completely different and inaccessible, as it was closed after the staff evacuation. 4 would be heavy containment, with 5 being storage and Keter-only storage. 3rd sublevel would be light containment, and sublevel 2 a mix of light containment and research. Sublevel 1 and the surface are both offices and items that cannot cause harm. The SCPs would be held together in a giant hall instead of stored together in the current system. However, this goes again the "canon" method of storage, as one site does not house all the SCPs with a straight series of numbers. Certain environmental factors would allow you to get into many of the SCP chambers, with the original SCPs still in their containment. However, that's when it becomes more about finding something to keep you alive before the MTF hunt you down, which I assume isn't going to be so much a part of the port as it was going to be. :laugh:

Oh, and there would be two playstyles, a more "horror survival" one, and a more "action hero" route. The survival route would be to rush out of the facility before the foundation can amass it's forces and get organized and escape. The "action hero" route is taking the time to prepare, including preparing to take on the foundation forces to escape. God this always seems more interesting when you actually talk about it. :0492:
This is where I'm supposed to say it was all Regalis' fault it didn't get completed and it will totally get completed when this port is done and the spaghetti code is not as it once was :P
Image

Re: Irrlicht Port

#140
I'm having some problems. When the demo starts I just see a black screen and the Blink and Stamina metters. I can hear my character moving when I try to move, but I don't see anything. I tried pausing and a Blank pause menu came on the screen (By blank I mean It had the textures of the box, but it was empty) I'm using a kinda outdated PC (1gb Ram, Ati Radeon x1300 128mb, Windows 7, Intel Core 2 Duo, drivers updated) so that might be the problem.
Image