The game with no name
The game with no name
Post updated 27 may 2010
If you want to test the game:
Registration (Account, Character Name and Password):
http://94.23.57.36/index.php
(new since the beginning of 2011)
Now, this is really pre-proto stuff so there are a Lot of things that doesn't work, are ugly etc. etc. but I'm working on it.
And yeah, ingame everything is in French(!), I'm Swedish so I have made the necessary
for 'other language support' but I haven't translated everything and as I'm living
in France well that is how it ended up (great for testing non-ASCII languages though).
The server is also in France (Paris) so I guess overseas clients will have crazy ping etc.
If you are on a 'non french' computer you can edit the shortcuts in the ingame menu (hit ESCAPE).
You can also change screen resolution (game doesn't check if it is supported though) and try fullscreen.
How to play:
directionnal keys (and QZSD on AZERTY keyboard for example) moves you around
Space = jump
If you are stuck, just turn and walk backwards (a debug thing, you can climb any mountain this way for example)
Right click = buy, sell, equip...
Left click = Information
Attack: select enemy and use the shortcuts
If you slide an object out of the backpack onto 'nowhere' it will be destroyed (with a "Do you want to destroy : Shoes" popup).
[edit] some new screenshots:
Original post:
Hi everybody!
First of all, who I am: I'm Swedish but left for France at
the age of 24 and that was in -95 so I'm one of the dinosaurs yes.
Game programming has always been my big hobby and even after a full days work of programming
I'm happy to continue at home (but on My game Just like I want it ) so when I found Irrlicht I just
adopted it, a million kudos to the developers, so easy to use and full with features!
So, what's my Project then?
A persistent multiplayer game offcourse!
Well, don't forget it's just a weekend/hobby thing so the goal is to have a very basic "gamelike" app running and not like the next killer MMORPG
Technology:
A simple WAMP server installed on my Windows machine (so it's MySQL for the database) with text in UTF-8
XML and TinyXML for the static data (and mysqldump to export easily from the database to xml with just a click)
C++ (at the moment I just wrote up a PHP site for the registering stuff so I guess PHP too)
Sockets and threads
a millisecond timer
and offcourse Irrlicht!
Freeworld3D for the heightmaps and a SplatShader (+some tools to make the atlas map)
the B3D pipeline for meshes and animations
Here are a couple of screens of the work in progress:
I'm using the really excellent terrain editor (Ridiculously cheap too, like 30$!) FreeWorld3D by Soconne
and the terrain ingame:
You can buy and sell things:
Fight monsters
and loot objects to equip:
Well that's all for today (and probably for some time as the project is going forward quite slowly)!
If you want to test the game:
Registration (Account, Character Name and Password):
http://94.23.57.36/index.php
(new since the beginning of 2011)
Now, this is really pre-proto stuff so there are a Lot of things that doesn't work, are ugly etc. etc. but I'm working on it.
And yeah, ingame everything is in French(!), I'm Swedish so I have made the necessary
for 'other language support' but I haven't translated everything and as I'm living
in France well that is how it ended up (great for testing non-ASCII languages though).
The server is also in France (Paris) so I guess overseas clients will have crazy ping etc.
If you are on a 'non french' computer you can edit the shortcuts in the ingame menu (hit ESCAPE).
You can also change screen resolution (game doesn't check if it is supported though) and try fullscreen.
How to play:
directionnal keys (and QZSD on AZERTY keyboard for example) moves you around
Space = jump
If you are stuck, just turn and walk backwards (a debug thing, you can climb any mountain this way for example)
Right click = buy, sell, equip...
Left click = Information
Attack: select enemy and use the shortcuts
If you slide an object out of the backpack onto 'nowhere' it will be destroyed (with a "Do you want to destroy : Shoes" popup).
[edit] some new screenshots:
Original post:
Hi everybody!
First of all, who I am: I'm Swedish but left for France at
the age of 24 and that was in -95 so I'm one of the dinosaurs yes.
Game programming has always been my big hobby and even after a full days work of programming
I'm happy to continue at home (but on My game Just like I want it ) so when I found Irrlicht I just
adopted it, a million kudos to the developers, so easy to use and full with features!
So, what's my Project then?
A persistent multiplayer game offcourse!
Well, don't forget it's just a weekend/hobby thing so the goal is to have a very basic "gamelike" app running and not like the next killer MMORPG
Technology:
A simple WAMP server installed on my Windows machine (so it's MySQL for the database) with text in UTF-8
XML and TinyXML for the static data (and mysqldump to export easily from the database to xml with just a click)
C++ (at the moment I just wrote up a PHP site for the registering stuff so I guess PHP too)
Sockets and threads
a millisecond timer
and offcourse Irrlicht!
Freeworld3D for the heightmaps and a SplatShader (+some tools to make the atlas map)
the B3D pipeline for meshes and animations
Here are a couple of screens of the work in progress:
I'm using the really excellent terrain editor (Ridiculously cheap too, like 30$!) FreeWorld3D by Soconne
and the terrain ingame:
You can buy and sell things:
Fight monsters
and loot objects to equip:
Well that's all for today (and probably for some time as the project is going forward quite slowly)!
Last edited by Valmond on Mon Oct 24, 2011 5:21 pm, edited 7 times in total.
This looks like a "next killer MMORPG" for me already
Seriously really impressing and motivating for me also
I personally really hate programming with sockets and let others do the dirty work
Oh yes, question!
How does that terrain editor export? And is it how hard to adapt optimizations and cullings to the terrain with code?
Seriously really impressing and motivating for me also
I personally really hate programming with sockets and let others do the dirty work
Oh yes, question!
How does that terrain editor export? And is it how hard to adapt optimizations and cullings to the terrain with code?
Thanks!
It exports map layers one by one (Baselayer, any painted layer + alphamasks + lightmap) and the heightmap (you can use anything between 8bits bmp to 32bits raw)
So for this map I have
a BaseLayer of stone
several layers of Grass,Sand,red sand etc
an alphamask for each layer
one lightmap
one heightmap
I have a crude (but working) set of small tools (mainly to rotate and paste images together) to make the atlas map with a batch.
Then a shader that uses the atlas map in combination with the Irrlicht HeightMap (it using the exported heightmap) which means
all culling code is already done (well except for big worlds where you'll need to load up and de-load terrains you've got insight / no longer sees).
The for now not yet overcome problem is the lack of mipmap support (it could be done using shaders 3.0+ but it's
a lot of work and hopefully we will be granted access to mipmaps from inside the engine in a not too far future which will resolve the problem).
for example, here is the atlas map seen in the screenshots:
(reduced, normally it is a 3MB bmp)
It exports map layers one by one (Baselayer, any painted layer + alphamasks + lightmap) and the heightmap (you can use anything between 8bits bmp to 32bits raw)
So for this map I have
a BaseLayer of stone
several layers of Grass,Sand,red sand etc
an alphamask for each layer
one lightmap
one heightmap
I have a crude (but working) set of small tools (mainly to rotate and paste images together) to make the atlas map with a batch.
Then a shader that uses the atlas map in combination with the Irrlicht HeightMap (it using the exported heightmap) which means
all culling code is already done (well except for big worlds where you'll need to load up and de-load terrains you've got insight / no longer sees).
The for now not yet overcome problem is the lack of mipmap support (it could be done using shaders 3.0+ but it's
a lot of work and hopefully we will be granted access to mipmaps from inside the engine in a not too far future which will resolve the problem).
for example, here is the atlas map seen in the screenshots:
(reduced, normally it is a 3MB bmp)
Sounds like you've been reading Ysaneya's dev reportsThe for now not yet overcome problem is the lack of mipmap support (it could be done using shaders 3.0+ but it's
a lot of work and hopefully we will be granted access to mipmaps from inside the engine in a not too far future which will resolve the problem).
ShadowMapping for Irrlicht!: Get it here
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
-
- Posts: 168
- Joined: Sun Feb 04, 2007 3:30 pm
- Location: France
>Sounds like you've been reading Ysaneya's dev reports
A google search told me I have read at least one of his pages (one of the 'Journal of Ysaneya') even if I opted for a slight different
method (maybe that's not the page you refer to, if it isn't I'd love a link to it, he's writing interresting stuff) using alphamaps (well I did that because Freeworld3D does it that way ).
>Wait, terrain splatting which supports more than 3 textures? Have you considered sharing it with us?
No problem, how can I share this in a good way?
It is quite automatic but some thing must be made 'by hand', the setup ofcourse and the tiling of the textures in the shader (just copy some numbers ).
It goes like this:
Layers are named Base,1.2.3 etc
Freeworld->Custom export which exports
.bmp files for layers
.raw for alpha layers
.raw for the heightmap
.bmp for the lightmap (must be named "Lightmap0")
I got some tools (small .exe:s) that rotate etc those files and pastes them on the final atlas map.
Those tools are about 100% incomplete for other things (than with the Freeworld custom export) but
I'll happily share the projects for them so anyone can change them for their need (MSVC and really small).
then I got this .bat file which 'compiles' the alpha map.
This file also needs to be changed if you want like 11 textures (if you want more than that you'll probably have to squeeze a bit), or 4...
So what kind of terrain editor do you folks use and what do they export?
I can put all of my 'stuff' up on the web but it would be better if it was a bit 'arranged' so it
could suit other exporters too (not necessarily arranged by me ) and in a sort of tutorial form maybe...
A google search told me I have read at least one of his pages (one of the 'Journal of Ysaneya') even if I opted for a slight different
method (maybe that's not the page you refer to, if it isn't I'd love a link to it, he's writing interresting stuff) using alphamaps (well I did that because Freeworld3D does it that way ).
>Wait, terrain splatting which supports more than 3 textures? Have you considered sharing it with us?
No problem, how can I share this in a good way?
It is quite automatic but some thing must be made 'by hand', the setup ofcourse and the tiling of the textures in the shader (just copy some numbers ).
It goes like this:
Layers are named Base,1.2.3 etc
Freeworld->Custom export which exports
.bmp files for layers
.raw for alpha layers
.raw for the heightmap
.bmp for the lightmap (must be named "Lightmap0")
I got some tools (small .exe:s) that rotate etc those files and pastes them on the final atlas map.
Those tools are about 100% incomplete for other things (than with the Freeworld custom export) but
I'll happily share the projects for them so anyone can change them for their need (MSVC and really small).
then I got this .bat file which 'compiles' the alpha map.
This file also needs to be changed if you want like 11 textures (if you want more than that you'll probably have to squeeze a bit), or 4...
So what kind of terrain editor do you folks use and what do they export?
I can put all of my 'stuff' up on the web but it would be better if it was a bit 'arranged' so it
could suit other exporters too (not necessarily arranged by me ) and in a sort of tutorial form maybe...
Hi, If You need 7 textures for Your terrain You don't need atlases. This is the best solution for it, I think:
7 - color textures
7 - normals for color textures
1 - selector texture
In fixed pipeline We have acces for 8 textures (4 in Irrlicht), but in shader pipeline We have 16 textures, so it's ok I will release IrrCg example with them today or tomorrow.
7 - color textures
7 - normals for color textures
1 - selector texture
In fixed pipeline We have acces for 8 textures (4 in Irrlicht), but in shader pipeline We have 16 textures, so it's ok I will release IrrCg example with them today or tomorrow.
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
Yes I have got worked code for it. In Irrlicht code You have to add only minor changes in SMaterial.h, this is *.patch file for it:Valmond wrote:@Nadro
I see forward to that !
(can you use 16 textures with irrlicht if you go with a shader?)
Code: Select all
Index: SMaterial.h
===================================================================
--- SMaterial.h (revision 2335)
+++ SMaterial.h (working copy)
@@ -143,6 +143,7 @@
//! Maximum number of texture an SMaterial can have.
const u32 MATERIAL_MAX_TEXTURES = 4;
+ const u32 MATERIAL_MAX_TEXTURES2 = 16;
//! Struct for holding parameters for a material renderer
class SMaterial
@@ -163,7 +164,7 @@
SMaterial(const SMaterial& other)
{
// These pointers are checked during assignment
- for (u32 i=0; i<MATERIAL_MAX_TEXTURES; ++i)
+ for (u32 i=0; i<MATERIAL_MAX_TEXTURES2; ++i)
TextureLayer[i].TextureMatrix = 0;
*this = other;
}
@@ -186,7 +187,7 @@
MaterialTypeParam = other.MaterialTypeParam;
MaterialTypeParam2 = other.MaterialTypeParam2;
Thickness = other.Thickness;
- for (u32 i=0; i<MATERIAL_MAX_TEXTURES; ++i)
+ for (u32 i=0; i<MATERIAL_MAX_TEXTURES2; ++i)
{
TextureLayer[i] = other.TextureLayer[i];
}
@@ -208,7 +209,7 @@
}
//! Texture layer array.
- SMaterialLayer TextureLayer[MATERIAL_MAX_TEXTURES];
+ SMaterialLayer TextureLayer[MATERIAL_MAX_TEXTURES2];
//! Type of the material. Specifies how everything is blended together
E_MATERIAL_TYPE MaterialType;
@@ -336,7 +337,7 @@
\return Texture matrix for texture level i, or identity matrix for levels larger than MATERIAL_MAX_TEXTURES. */
const core::matrix4& getTextureMatrix(u32 i) const
{
- if (i<MATERIAL_MAX_TEXTURES)
+ if (i<MATERIAL_MAX_TEXTURES2)
return TextureLayer[i].getTextureMatrix();
else
return core::IdentityMatrix;
@@ -347,7 +348,7 @@
\param mat Texture matrix for texture level i. */
void setTextureMatrix(u32 i, const core::matrix4& mat)
{
- if (i>=MATERIAL_MAX_TEXTURES)
+ if (i>=MATERIAL_MAX_TEXTURES2)
return;
TextureLayer[i].setTextureMatrix(mat);
}
@@ -357,16 +358,16 @@
\return Texture for texture level i, if defined, else 0. */
ITexture* getTexture(u32 i) const
{
- return i < MATERIAL_MAX_TEXTURES ? TextureLayer[i].Texture : 0;
+ return i < MATERIAL_MAX_TEXTURES2 ? TextureLayer[i].Texture : 0;
}
//! Sets the i-th texture
- /** If i>=MATERIAL_MAX_TEXTURES this setting will be ignored.
+ /** If i>=MATERIAL_MAX_TEXTURES2 this setting will be ignored.
\param i The desired level.
\param tex Texture for texture level i. */
void setTexture(u32 i, ITexture* tex)
{
- if (i>=MATERIAL_MAX_TEXTURES)
+ if (i>=MATERIAL_MAX_TEXTURES2)
return;
TextureLayer[i].Texture = tex;
}
@@ -396,23 +397,23 @@
FrontfaceCulling = value; break;
case EMF_BILINEAR_FILTER:
{
- for (u32 i=0; i<MATERIAL_MAX_TEXTURES; ++i)
+ for (u32 i=0; i<MATERIAL_MAX_TEXTURES2; ++i)
TextureLayer[i].BilinearFilter = value;
}
break;
case EMF_TRILINEAR_FILTER:
{
- for (u32 i=0; i<MATERIAL_MAX_TEXTURES; ++i)
+ for (u32 i=0; i<MATERIAL_MAX_TEXTURES2; ++i)
TextureLayer[i].TrilinearFilter = value;
}
break;
case EMF_ANISOTROPIC_FILTER:
{
if (value)
- for (u32 i=0; i<MATERIAL_MAX_TEXTURES; ++i)
+ for (u32 i=0; i<MATERIAL_MAX_TEXTURES2; ++i)
TextureLayer[i].AnisotropicFilter = 0xFF;
else
- for (u32 i=0; i<MATERIAL_MAX_TEXTURES; ++i)
+ for (u32 i=0; i<MATERIAL_MAX_TEXTURES2; ++i)
TextureLayer[i].AnisotropicFilter = 0;
}
break;
@@ -422,7 +423,7 @@
NormalizeNormals = value; break;
case EMF_TEXTURE_WRAP:
{
- for (u32 i=0; i<MATERIAL_MAX_TEXTURES; ++i)
+ for (u32 i=0; i<MATERIAL_MAX_TEXTURES2; ++i)
TextureLayer[i].TextureWrap = (E_TEXTURE_CLAMP)value;
}
break;
@@ -511,7 +512,7 @@
NormalizeNormals != b.NormalizeNormals ||
AntiAliasing != b.AntiAliasing ||
ColorMask != b.ColorMask;
- for (u32 i=0; (i<MATERIAL_MAX_TEXTURES) && !different; ++i)
+ for (u32 i=0; (i<MATERIAL_MAX_TEXTURES2) && !different; ++i)
{
different |= (TextureLayer[i] != b.TextureLayer[i]);
}
Last edited by Nadro on Mon Apr 20, 2009 2:33 pm, edited 1 time in total.
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
OK, I've done short example, You can download it from:
http://www.sendspace.com/file/8k34gi
It's require SM2.0+ (a or b), because it need 16 registers, standard version of SM2.0 support up to 12 registers, so up to 12 textures, eg 3 selectors + 9 colors, so it's enought in many situations. I don't
Here I have 4 selector textures (I don't use alpha channel only RGB, and 12 color textures, so 16 textures in one pass on one node). Of course, textures can be blurring on edges, I have sharp edges because I don't have much time and I create texture selectors very quick Pixel Shader 1.4 support up to 6 textures, so it isn't enought, I think.
I send new version of IrrCg on SVN, examples etc. I will send tomorrow.
http://www.sendspace.com/file/8k34gi
It's require SM2.0+ (a or b), because it need 16 registers, standard version of SM2.0 support up to 12 registers, so up to 12 textures, eg 3 selectors + 9 colors, so it's enought in many situations. I don't
Here I have 4 selector textures (I don't use alpha channel only RGB, and 12 color textures, so 16 textures in one pass on one node). Of course, textures can be blurring on edges, I have sharp edges because I don't have much time and I create texture selectors very quick Pixel Shader 1.4 support up to 6 textures, so it isn't enought, I think.
I send new version of IrrCg on SVN, examples etc. I will send tomorrow.
Last edited by Nadro on Tue Apr 21, 2009 12:27 pm, edited 2 times in total.
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
-
- Posts: 222
- Joined: Mon Jan 19, 2009 10:03 pm
- Location: Miami, Florida
- Contact:
looks great! just make sure it doesnt turn into a runescape clone or anything like that for two reaons:
1. runescape sucks
2. runescape has a lot of features which will take up a lot of your time and in the end, no one will play your game since they will have to download it whereas runescape can be played online.(it still sucks though >:O)
still. by the screenshots I give it a 4.5/6, good job
1. runescape sucks
2. runescape has a lot of features which will take up a lot of your time and in the end, no one will play your game since they will have to download it whereas runescape can be played online.(it still sucks though >:O)
still. by the screenshots I give it a 4.5/6, good job