Thursday, June 21, 2012

Day 3 - TechBlah

Stuff done under the hood not interesting to see in a video, so heres some text.


Added a console to  allow me to input commands to help me find problems or test stuff.
- Wireframe : shows the world in wireframe. Useful to check the geometry is ok and to see through everything.
- Timescale : freeze, slow down or speed up the world physics and ai. Freeze in particular is very helpful, I can stop things from moving and go check a problem I spotted away with my magic flycam.
- Loadrange : allows me to change ingame the distance at which chunks are loaded/dropped. Good for stress tests or testing persistence.
- Fog : toggle fog on/off. I use fog in LoD computations, see below.

LoD optimization is a classic in 3d computer graphics. The idea is that for a 3d object far from the player, you don't have to draw everything in detail. It doesn't have to have as much details as a mesh right under the player nose. This improves framerate and also may help fixing some display bugs. If done right the player won't notice the difference.
You can use this concept elsewhere. I use it on entities. The farther away an entity is from the player, the less accurate the physics and the ai is. I constrain the physics so while they are less accurate they do not become insanely un-physics.
I need this optimization as I want RS2 to have as much entities active as possible. Focus in RS2 is entities/actors, like RS1. Without LoD even with the simple random walker ai make the game crawl to 30fps when there is 1000 entities active. With entity LoD is a respectable 150-200fps.
I refined the idea by incorporating fog. Distance for LoD is measured relative to fog far range, as this is the farther the player can see. I will refine the idea further by using the camera frustum : low LoD for anything that is out of the player view cone. This should really help a lot. As long as my lolphysics don't break on low lod :(
I'm still not decided on what kind of lighting to use. Depending on that, I will or will not implement LoD on the cells (=3d tiles) mesh. Right now there is no LoD optimization on chunks, but there are already optimizations in the rendering such as octtree and texture batching.

WHY U 3D??
3D graphics for me is a mean to convey the gameplay and the atmosphere and not an end.
I don't go 3d realtime because it's cool or something but because it will allow me to do stuff I can't in turnbased 2D gameplay wise. Both are fine btw.

RS1? :(
Don't worry, again it's not dead until I say so. If it is, I'll release the sources.

End of post.

Monday, June 18, 2012

Day 0 - Who what how when?

First me, roguedjack, author of Rogue Survivor the first one. I'm French by the way. In case you didn't le know.
Then you guys. You'll get to know what's going on with the project. You'll be able to test early versions. You'll have to worship me like a god and as a reward I'll allow you to try more buggy versions.

"The Rogue Survivor II Project"
Project because it is still in its infancy.
Rogue Survivor II because it is a spinoff/sequel to Rogue Survivor.

This game will be available on PC, Linux and Mac.
It will be realtime 3D with cheesy retrolol graphics. When you'll see the first screens, don't be fooled. The gameplay will have nothing to do with a minecraft clone or a dwarf fortress going 3d thing. As in RS1 the focus will be survival and interactions with people and objects, not interaction with the world topology.
I'll try to get multiplayer in but I might not be able to. The architecture is done with MP in mind but I'm not sure I'll be able to pull it off, MP scares me.

I tried various technologies, did proto version in XNA and lwjgl and settled on this :
- Java for the language.
- jME3 for the 3d engine.
- OpenGL 2.0.

So it will run any PC, Linux and Macs provided you have an OpenGL 2.0 compatible card. Should run on pratically everyone computer really. Of course my old laptop Intel lol card does only OpenGL 1.5 and is trolling me.

I've gone with the blocky graphics look as it has a number of advantages from a design and implementation perspective for me, and I'm pretty sure my target audience is ok with lol graphics if the gameplay is good.

I'll explain more things later as we go on.

Considering I'm working on it daily the first playable version shouldn't take forever.
If all goes according to the zombiemaster plan the finished product will be for sale as an indie game and in the meantime you'll be able to try the free and buggy early versions. I'm a dreamer.

This will be a wonderful adventure. See you soon.