A7ITUDE

Posted By: HeelX

A7ITUDE - 11/03/13 20:11

Lets make things hum! Started with A7ITUDE. First POC.



Target development platform will be Gamestudio for PC release, jMonkey for everything else (Linux, Mac, and Android & OUYA).
Posted By: Aku_Aku

Re: A7ITUDE - 11/03/13 21:26

What is this project for?
And what is hum?
Posted By: HeelX

Re: A7ITUDE - 11/03/13 21:40

It is a game project. I participated in the Conitec 2007 Summer Contest with a game called a7titude, which was a mere prototype and made the 2nd place. You'll find it here, you can download it here and see it on YouTube here and here.

I played around with some concept art last year but decided that this mechanical/analog approach will not work out, although some details will make it into the game:





I am going full scale now.
Posted By: PadMalcom

Re: A7ITUDE - 11/04/13 09:10

The game looked awesome in 2007 and will - hopefully - be even better this time! I'm looking forward for the Android port wink

P.S. What has to book about the CryEngine to do with A7itude?
Posted By: sivan

Re: A7ITUDE - 11/04/13 09:46

looks like a great idea, I haven't seen this game yet. imo it's ideal for mobile platforms and as browser based.
I would definitely be lazy to not to work in JMonkey (what I don't know at all) for all the platforms, or would choose 3DGS only, to avoid double work. but good to see you do both.
Posted By: MasterQ32

Re: A7ITUDE - 11/04/13 09:47

Originally Posted By: PadMalcom
P.S. What has to book about the CryEngine to do with A7itude?

I think it's more about the jMonkeyEngine wink
Posted By: PadMalcom

Re: A7ITUDE - 11/04/13 10:42

Oh right grin
Posted By: FBL

Re: A7ITUDE - 11/04/13 19:13

But you have to use A7 wink
Posted By: HeelX

Re: A7ITUDE - 11/04/13 22:41

Thank you all smile the prototype is now 6 years old and the game changed in mind a lot from until then and I feel now confident enough to do it. I want to create it first in Gamestudio and then port it later. @firoball: the 7 in the textlogo will be an iconic replacement for the double T wink
Posted By: Superku

Re: A7ITUDE - 11/05/13 00:41

I remember playing the original version back then, I enjoyed it and I am eager to see where your new take on this game will lead to!
Posted By: HeelX

Re: A7ITUDE - 11/25/13 06:43

I am making good progress with my 1st A7ITUDE poc, I am very satisfied that I now found out how to set up Gamestudio as external tool for Eclipse CDT. You don't believe what a big smile I have. Good bye, refactoring hell!



[EDIT] Moved from wrong forum thread, sorry.
Posted By: oliver2s

Re: A7ITUDE - 11/25/13 14:15

What's the advantage of using Eclipse instead of SED? Better project management?
Posted By: MasterQ32

Re: A7ITUDE - 11/25/13 14:40

Refactoring, Project Management, Code Support (aka IntelliSense)
Posted By: HeelX

Re: A7ITUDE - 11/25/13 17:53

Yes, I use Eclipse at work and the workflow is pretty amazing. Refactoring was key for trying out Eclipse with Gamestudio. For example if you rename a function, it will be renamed in all managed source code files! The same for local variables, macros, globals, struct names, etc. What I also really like is the context-aware code completion.

I don't like the Eclipse project management in general, but if you connect your projects as SVN projects, it is OK.

But the most important feature to me is the auto-formatter smile
Posted By: oliver2s

Re: A7ITUDE - 11/25/13 18:31

Could you make a small tutorial how to use 3DGS with Eclipse?
Posted By: HeelX

Re: A7ITUDE - 11/25/13 22:58

Yes, why not smile but give me some time working with it before I'll write one, ok?
Posted By: sivan

Re: A7ITUDE - 11/26/13 07:39

it sounds very promising.
I've sucked a lot in last week in SED with renaming during code reorganization, and I will do if don't find another tool...
Posted By: oliver2s

Re: A7ITUDE - 11/26/13 08:14

Originally Posted By: HeelX
Yes, why not smile but give me some time working with it before I'll write one, ok?


Sure, whenever you're ready laugh
Posted By: PadMalcom

Re: A7ITUDE - 11/26/13 11:39

As Eclipse fanatic you get a high fived +1 from me for the tutorial laugh
Posted By: HeelX

A7ITUDE poc-01 'Almond' - 12/01/13 20:07

I finished it! Two weeks due, but here it is:

A7ITUDE poc-01 'Almond'

Demonstration of semi-procedural modeling techniques used for rendering segmented, polished 3D tubes. Several ideas are implemented and tested as a proof of concept:
  • procedural model modification in vertex shader
  • per-pixel lighting
  • procedural normal mapping
  • mesh billboarding for outer ring
  • top of ring rendered as two-polygonal quad with per-pixel clipping
  • color scheme read from external bitmap file
  • FXAA
Results:
  • ~62% less polygons used for rendering compared to regular 3D tube model
  • smoother normals than vertex normals without normal map overhead
  • semi-procedural model modifications

DOWNLOAD: A7ITUDE poc-01 'Almond'.zip (~12,3 MB)



This is a proof of concept demo and the visuals shown are not necessarily part of, or reflect the quality of the final game. If the demo does not look like as shown in the screenshot or if you have other technical problems, please tell me smile thank you!
Posted By: Ch40zzC0d3r

Re: A7ITUDE poc-01 'Almond' - 12/01/13 20:26

Well I crashed it by putting the all the radius' to 0 but works very fine and looks very awesome.
Great Job!
Posted By: Superku

Re: A7ITUDE poc-01 'Almond' - 12/01/13 20:37

Pretty cool and well done, I like the idea of using a simple plane and pixel clipping.

However, see the following:



When you try to create a full torus (or even before that) there are small lighting differences (huge black circles) and you can see where both ends of the ring connect (esp. in motion).

Btw. I suggest to deliver the next demo with a png/ tga screenshot function, not the default jpg format with bad compression.

EDIT: Oh and as mentioned by the previous poster it crashed when I made the torus infinitely small.
Posted By: HeelX

Re: A7ITUDE poc-01 'almond' - 12/07/13 11:03

Thanks to you; I never tested the zero/zero radius case - fixed that. It actually caused a division by zero.

@Superku: Indeed, there are visible artifacts when the ring is closed; but this will never be the case in the game, so that is acceptable for me. I don't see the 'lighting differences' you are talking about, the top surface is always clean to me. I'll add a PNG screenshot function for the next POC, that is a good idea smile
Posted By: HeelX

A7ITUDE poc-02 'buttercream' announced - 12/07/13 11:12

Here is by the way the list for the second POC, which is called "buttercream". It is called that way because I plan a rich set of tasty features / experiments:
  • (beveled) ground plate, sizable in width and length
  • advanced ring geometry: beveled ring; bevel size dynamically changeable
  • XML puzzle instantiation, stored in file or as .pak in WRS
  • multiple rings with self rotation
  • improved surface shaders (glossy rendering, simple reflections)
  • raytraced shadows
  • variable width text rendering
  • distance field font rendering
  • beginning a FMOD Ex DLL with support for looped OGG music playback from WRS
  • PNG screenshot function
Posted By: oliver2s

Re: A7ITUDE poc-02 'buttercream' announced - 12/09/13 16:30

I tried the version poc-01. Very nice to play with the different values.

The only complaint is, I get only 35-40 fps.
Posted By: Slin

Re: A7ITUDE poc-02 'buttercream' announced - 12/09/13 17:35

A better approach for rendering might be a depth field with ray marching? Should be quite simple, produce better results and may even be faster.

Edit: the better term to search for is actually distance field rendering: Link
Posted By: HeelX

Re: A7ITUDE poc-02 'buttercream' announced - 12/09/13 21:56

Originally Posted By: oliver2s
I tried the version poc-01. Very nice to play with the different values. The only complaint is, I get only 35-40 fps.
What? That is very suprising. The lighting term I use is a reduced version of the lighting of the Sponza demo. The rest is just pixel clipping for the quad (top surface of the torus) and some matrix calculations per vertex. What specs do you have?

Originally Posted By: Slin
A better approach for rendering might be a depth field with ray marching? Should be quite simple, produce better results and may even be faster
I doubt that. In the demo I just use a model with 274 faces and a model 3.0 shader; all I do is vertex manipulation (for inner- & outer radius + mesh billboarding for the outer side). The whole raymarching thing sounds too complicated to me. I don't generate the geometry on the fly, I modify existing geometry for that.
Posted By: Slin

Re: A7ITUDE poc-02 'buttercream' announced - 12/10/13 03:13

I didnīt know what I was doing at first, its quite crappy and everything, but after far too much time here you go: https://www.shadertoy.com/view/4sBGDh
I have no idea if this would actually be usable for your plans but from my experiments today, Iīd say it might really be. But I have to admit that at least when procedurally generating the levels, its kinda strange to get started with those distance functions tongue
Posted By: HeelX

Re: A7ITUDE poc-02 'buttercream' announced - 12/10/13 06:57

Originally Posted By: Slin
I didnīt know what I was doing at first, its quite crappy and everything, but after far too much time here you go: https://www.shadertoy.com/view/4sBGDh
Thank you very much! But I still don't know how this can be done in Gamestudio and how it works in general. Where do you generate the geometry?
Posted By: oliver2s

Re: A7ITUDE poc-02 'buttercream' announced - 12/10/13 09:26

Here are my system specs

Code:
Operating System: Windows 7 Home Premium 64-bit (6.1, Build 7601) Service Pack 1 (7601.win7sp1_gdr.130828-1532)
          Processor: AMD Athlon(tm) II P320 Dual-Core Processor (2 CPUs), ~2.1GHz
             Memory: 4096MB RAM
          Card name: ATI Mobility Radeon HD 5470
           DAC type: Internal DAC(400MHz)
     Display Memory: 2286 MB
     Driver Version: 8.723.0.0

Posted By: Puppeteer

Re: A7ITUDE poc-02 'buttercream' announced - 12/10/13 09:35

Originally Posted By: HeelX
Originally Posted By: Slin
I didnīt know what I was doing at first, its quite crappy and everything, but after far too much time here you go: https://www.shadertoy.com/view/4sBGDh
Thank you very much! But I still don't know how this can be done in Gamestudio and how it works in general. Where do you generate the geometry?

You do not generate Geometry, you just have a funtion that maps a 3d Coordinate to a distance. This function defines the shape of you geometry.

Using this function you can have a ray march through space by checking the distance function on its current position you know how far you can progress. If you get for example a distance of 10 you that within 10 units of you current position there is a surface.
Then you also know you can advance 10 units without hitting anything.
Then you recheck you distance funtion. If the surface was in the direction of your ray the distance might now get close to 0. If it wasnt it might get bigger.
That way you can trace out very efficiently your geometry based on simple distance functions.

Once you get the hang of it you can do very cool stuff with as seen on the Website Slin posted.
Also you get Shadows and AO pretty much for free.
Maybe counterintuitive Texturing is also not that big of a deal.

EDIT: You can look up some standard distance functions here:
here

The biggest problem I see for the gamestudio is because the whole geometry is kinda procedurally generated on the graphics card you would have to somehow communicate your level in a new way to the graphics card, as you just rely on some basic shapes rather than models based on polygons.
Maybe Slin knows a little bit more about that than I do.

EDIT2:
On distance field shadows
Posted By: Superku

Re: A7ITUDE poc-02 'buttercream' announced - 12/10/13 10:18

Quote:
I don't see the 'lighting differences' you are talking about, the top surface is always clean to me.

It's a subtle difference in lighting but it's there, you just have to look closely. If you draw a line from the left big circle to the one on the right and divide the torus in half like this you will see that the upper part of this surface is slightly darker than the lower part.


Although I like the shadertoy example by Slin and find the concept interesting I see no reason at all to not go for a simple polygonal approach.
Posted By: HeelX

Re: A7ITUDE poc-02 'buttercream' announced - 12/10/13 23:32

Thank you Puppeteer for the explanation. The site of Iņigo Quilez is also very informative and entertaining at the same time; I read his presentation: Rendering Worlds with Two Triangles with raytracing on the GPU in 4096 bytes, now I think I have understood it.

As Superku said, I think regular meshes are nicer for certain things. I want for example hard edges like in this image:



and I am not 100% sure if I can achieve this easily with distance fields.

Other than that, I see also the possibilities for soft shadow rendering and collision detection. Maybe I will try a distance field for shadow computation; otherwise I would have used raytracing instead. I would then calculate a distance field that matches the polygonal ring. In the pixel shader I would evaluate then the shadow factor.
Posted By: HeelX

Re: A7ITUDE poc-02 'buttercream' announced - 12/10/13 23:33

Originally Posted By: oliver2s
Here are my system specs
It looks like you are running the demo on a laptop. Have you ever experienced similar issues with games on your system?
Posted By: oliver2s

Re: A7ITUDE poc-02 'buttercream' announced - 12/12/13 13:02

Currently I'm not able to test it on my Desktop-PC. But I will try it as soon as I can.
Posted By: Superku

Re: A7ITUDE poc-02 'buttercream' announced - 02/21/14 02:31

Any progress?
Posted By: HeelX

Re: A7ITUDE poc-02 'buttercream' announced - 02/21/14 12:08

Yes - but only codewise. I am currently porting the Irrlicht XML reader to Lite-C for reading XML from file/WRS. For that I wrote an own String-lib, too, which costed me also some time, but it works now. Beside that, regular life, work, women and illness took their share, so my progress is not trackable with screenshots atm wink
Posted By: HeelX

Re: A7ITUDE poc-02 'buttercream' announced - 02/21/14 12:11

Here are the latest screenshots:





Posted By: oliver2s

Re: A7ITUDE poc-02 'buttercream' announced - 02/21/14 13:18

Very nice. Can you pick the color directly in a rgb dialog with this "pick" button on the left window?
Posted By: HeelX

Re: A7ITUDE poc-02 'buttercream' announced - 02/22/14 12:57

No, but from the screen directly! smile
Posted By: oliver2s

Re: A7ITUDE poc-02 'buttercream' announced - 02/22/14 13:41

Wouldn't it be easier to pick the color from a rgb dialog?
Posted By: HeelX

Re: A7ITUDE poc-02 'buttercream' announced - 02/22/14 20:24

For my use case it is very important to pick from the screen. I want to derive colorschemes from existing photographs, images and so on to get a coherent look.
Posted By: HeelX

Update: A7ITUDE poc-02 'buttercream' - 03/02/14 13:58

OK, here is a (rather technically) update for the current PoC. The PoC itself is not finished yet, but I finished an important piece - and I am very VERY satisfied with this, so I thought I might share this. Maybe you glanced some screenshots beforehand about this.

Well, I was working the last weeks in my spare time (which was highly ultra spare due to a number of certain recent events) on a number of code related things to ultimately support the following use case:

1) extract a color schema from an image / the screen as XML file
2) load the XML file into the game (from plain XML file or encrypted WRS)
3) create game objects with their current schema color accordingly

This is intended for:

a) fast and easy creation/modifaction of a puzzle's look because of human readible schema files
b) loose coupling (colors are defined outside the game)
c) update friendliness
d) end-user SDK / game editor capability

For this, I implemented the following, which took much more time than I expected:

- First I chose to include a XML parser as DLL, but decided against that. Now, I ported the opensource C++ irrXML XML parser to Lite-C and added a SAX-like interface.
- This included the implementation of i) a new String library with my own (dynamic) String type and functions to support the XML parser and ii) a (dynamic) pointer arraylist.
- a standalone JAVA client GUI, that makes it possible to click a pixel on the screen and fetch it's color.

This is now finally done. It is not polished, but it works reliable.

Example: In the following screenshot you can see, that I took a a picture of me and uploaded it into ColorLover's photocopa web tool, to create a a colorscheme ("Overseas Highway") from it. With the tool, I extracted the colors and saved it as XML.



In the game, I just call

Code:
AvColorSchema* avColorSchema = loadColorSchemaFromXml(xmlFilename);



which essentially executes

Code:
AvColorSchema* avColorSchema = avColorSchemaCreate();

AvXmlCallback callback;

memset(&callback, 0, sizeof(AvXmlCallback));
callback.clientData = avColorSchema;
callback.evOpeningElement = loadColorSchemaFromXml_ev;

bool xmlReadSuccess = avXmlRead(xmlFilename, &callback);



The event loadColorSchemaFromXml_ev is called on each opening XML element and includes the logic to fill the AvColorSchema object, which is always passed as reference with the callback-call:

Code:
void loadColorSchemaFromXml_ev(AvString* xmlName, AvPtrArray* xmlAttributes, AvXmlReader* xmlReader, void* clientData)
{
   AvColorSchema* avColorSchema = (AvColorSchema*) clientData;

   // colorschema name
   if (avStrEqualsIgnoreCaseAscii(xmlName, "colorSchema")) {
      AvXmlAttribute* nameAttr = avXmlReaderGetAttributeByName(xmlReader, "name");
      avStrSet(avColorSchema->name, avXmlAttributeValue(nameAttr));
   } else {

      // named color
      if (avStrEqualsIgnoreCaseAscii(xmlName, "namedColor")) {

         // create new color
         AvNamedColor* namedColor = avNamedColorCreate();

         // set name
         AvXmlAttribute* nameAttr = avXmlReaderGetAttributeByName(xmlReader, "name");
         avStrSet(namedColor->name, avXmlAttributeValue(nameAttr));

         // add color
         avColorSchemaAddColor(avColorSchema, namedColor);

      } else {

         // color
         if (avStrEqualsIgnoreCaseAscii(xmlName, "rgbColor")) {

            int r = avXmlReaderGetAttributeValueAsInt(xmlReader, "r");
            int g = avXmlReaderGetAttributeValueAsInt(xmlReader, "g");
            int b = avXmlReaderGetAttributeValueAsInt(xmlReader, "b");

            AvNamedColor* namedColor = avColorSchemaGetLastColor(avColorSchema);
            if (namedColor != null) {
               avRgbColorSetRGB(namedColor->rgbColor, r, g, b);
            }
         }
      }
   }
}



This is pretty straightforward, I think. And it works great! Here is a screenshot of the scheme applied to my test setup:



In addition, I also refactored my whole shading setup and took massive advantage of the HLSL include feature JCL added to the engine in the last update. It is a blast, in total, my shader code is so much smaller, because I was able to split it into several building blocks smile this is so great!

After polishing the code, I will eventually release the code of the XML reader / String library / pointer arraylist soon to the public, if anyone is interested. I call the core library behind my game "Avalanche", just in case you are wondering why there is always an "av" before each type and function wink
Posted By: HeelX

Re: Update: A7ITUDE poc-02 'buttercream' - 07/14/14 21:44

Still alive. Still codin'. A7ITUDE.

Invested much time into XML parsing, Object/Class emulation and an own Task / Scheduling framework. So no new eye candy, sorry. But things are moving!

Posted By: PadMalcom

Re: Update: A7ITUDE poc-02 'buttercream' - 07/15/14 08:37

And your current thoughts about jMonkey are...? laugh
Posted By: Rackscha

Re: Update: A7ITUDE poc-02 'buttercream' - 07/15/14 08:40

Originally Posted By: HeelX
Still alive. Still codin'. A7ITUDE.

Invested much time into XML parsing,[...]

Don't tell me you wrote your own parser o.O
Posted By: HeelX

Re: Update: A7ITUDE poc-02 'buttercream' - 07/15/14 18:57

Originally Posted By: PadMalcom
And your current thoughts about jMonkey are...? laugh
It is a super cool engine! I can tell you my plans this weekend, but I plan to port the puzzle editor as soon as possible. Because of some health reason I plan to develop the most of the game in my bed or on my couch wink

Originally Posted By: Rackscha
Don't tell me you wrote your own parser o.O
No, but I ported irrXML for Lite-C.
Posted By: Rackscha

Re: Update: A7ITUDE poc-02 'buttercream' - 07/15/14 19:52

Originally Posted By: HeelX

Originally Posted By: Rackscha
Don't tell me you wrote your own parser o.O
No, but I ported irrXML for Lite-C.

Ahhh^^
Posted By: HeelX

glossy shaders! (human after all) - 07/27/14 19:12

A7ITUDE is still a little thing.
What am I going to do?
Making a big difference.

So I wrote some glossy shaders today (A8 screenshots!).

Posted By: Redeemer

Re: glossy shaders! (human after all) - 07/27/14 21:23

Very nice! Is that your house or apartment in the environment map or something else?
Posted By: HeelX

Re: glossy shaders! (human after all) - 07/28/14 17:49

Thanks! Nope, its a church in Rome grin

http://www.humus.name/index.php?page=Textures&ID=110


here is a small snippet to convert the Humus' skybox textures into a Gamestudio-useable file:

Code:
BMAP* negxBmap = bmap_create("negx.jpg");
BMAP* poszBmap = bmap_create("posz.jpg");
BMAP* posxBmap = bmap_create("posx.jpg");
BMAP* negzBmap = bmap_create("negz.jpg");
BMAP* negyBmap = bmap_create("negy.jpg");
BMAP* posyBmap = bmap_create("posy.jpg");

int size = 256;
BMAP* skyBmap = bmap_createblack(size * 6, size, 8888);

bmap_blit(skyBmap, negxBmap, vector(0, 0, 0), vector(size, size, 0));
bmap_blit(skyBmap, poszBmap, vector(size, 0, 0), vector(size, size, 0));
bmap_blit(skyBmap, posxBmap, vector(2 * size, 0, 0), vector(size, size, 0));
bmap_blit(skyBmap, negzBmap, vector(3 * size, 0, 0), vector(size, size, 0));
bmap_blit(skyBmap, negyBmap, vector(4 * size, 0, 0), vector(size, size, 0));
bmap_blit(skyBmap, posyBmap, vector(5 * size, 0, 0), vector(size, size, 0));

bmap_save(skyBmap, "humus-skybox+6.png");

while (1) {
  draw_quad(skyBmap, NULL, NULL, NULL, vector(screen_size.x / skyBmap->width, screen_size.x / skyBmap->width, 0), NULL, 100, 0);
  wait(1);
}

Posted By: HeelX

A7ITUDE: Here is a small update - 08/26/14 21:41

Here is a small update: the shaders I wrote recently were a raw port of existing materials from Cinema4D. I was really amazed by the simplicity of the Cinema shader material system and how easy it is to port shaders to HLSL - so I decided to integrate that kind of material pipeline into my game. I did that for the shaders you see above.

But this is hardcoded and the approach itself is modular.

To be flexible and to integrate the shaders into my existing game code, I decided to write a template based shader compiler, for which I write tons of code right now.

This involves not only the code to compile shaders at runtime with templates and XML as shader definition, but also heavy coding on the essentials, like extending my string library, hashmaps, dictionaries and so on.

I also investigated in the meantime other possibilities for multiplatform support. I will certainly continue to develop the game with Gamestudio, but as soon as a certain degree of maturity is reached (end of 2015?), I guess I will switch to a cross-platform technology. Marmalade SDK is pretty promising but I still don't know how to work with it grin I am open for Unity, but the pricing is horrible! And I am still in long distance love with jMonkey wink
Posted By: HeelX

Re: A7ITUDE: Here is a small update - 11/15/14 13:38

On hold due to technology change.
Posted By: Kartoffel

Re: A7ITUDE: Here is a small update - 11/15/14 13:56

waiting for some demo to test out >_>

( and thanks for the skybox snippet.. I was too lazy to write this myself and it sure's gonna save me some time laugh )
Posted By: PadMalcom

Re: A7ITUDE: Here is a small update - 11/17/14 14:06

What technology change?? Did you leave jMonkey? If yes, why?
Posted By: HeelX

Re: A7ITUDE: Here is a small update - 11/19/14 06:58

I left Gamestudio and take my turn on libgdx atm.
Posted By: Wjbender

Re: A7ITUDE: Here is a small update - 11/19/14 09:34

have you tried out cocos ? I still need to download the
sdks for android etc ..
Posted By: HeelX

Re: A7ITUDE: Here is a small update - 12/06/14 13:02

I am back. Fuck it, I make a dirty, hacky, drippingly wet straightforward Gamestudio game with entity skills and WED. Fuck tablets and smartphones, you ain't gonna see that balls under your dirty fat thumb anyway.
Posted By: Superku

Re: A7ITUDE: Here is a small update - 12/06/14 14:28

Oh yeah, baby !!!!!! That's the spirit!
Posted By: PadMalcom

Re: A7ITUDE: Here is a small update - 12/06/14 16:43

grin
Posted By: HeelX

Re: A7ITUDE: Here is a small update - 12/06/14 18:21

Worked on a new plate concept. These are renderings - my goal is now to turn that into a realtime rendered scene and release that as a demo.

New plate and ring concept - flatter and less details and more bevel and cuuuurves:


Detail shot of hole, rails and quasar:
Posted By: FEL

Re: A7ITUDE: Here is a small update - 12/08/14 18:37

Well the test looks awesome :3 Still: This is impossible without dx11 input.
Or am i wrongest?
Posted By: HeelX

Re: A7ITUDE: Here is a small update - 12/08/14 20:48

Well, the geometry and shading is simple. The tricky thing is the sun shadows and the shadow casted by the light ball (quasar). And the reflection of the rings and the quasar on the plate.. but I got a solution for that in mind as well. The quasar shading / lens flare will be of medium difficulty - and I don't see why I can't do that without DX9.
Posted By: Superku

Re: A7ITUDE: Here is a small update - 12/08/14 21:18

Although the cap looks cute I wouldn't implement it for gameplay reasons. Instead I would try to find a solution where the ball can enter the hole from all sides, for example a closing gate/ spiral/ ... in the hole itself.

(Btw. have you thought about using screen space reflections?)
Posted By: HeelX

Re: A7ITUDE: Here is a small update - 12/08/14 21:38

Originally Posted By: Superku
Although the cap looks cute I wouldn't implement it for gameplay reasons. Instead I would try to find a solution where the ball can enter the hole from all sides, for example a closing gate/ spiral/ ... in the hole itself.

The cap shall open and close and rotate with the ball, but I found no mechanical solution until now. While I was on the treadmill today, I had a design in mind.. I will test it next. But thanks about your shared concerns! I have a very technical, analogous, mechanical style in mind, we'll see.

Originally Posted By: Superku
have you thought about using screen space reflections?
Yes, yes! I will definitely give it a try!
Posted By: FBL

Re: A7ITUDE: Here is a small update - 12/08/14 21:42

Instead of using a cap, you could as well just have sort of a "sliding door", which closes after the ball has entered.
Posted By: Kartoffel

Re: A7ITUDE: Here is a small update - 12/09/14 10:19

@^: or something that looks like a camera shutter.. would look nice imo.
Posted By: FBL

Re: A7ITUDE: Here is a small update - 12/09/14 17:03

Originally Posted By: Kartoffel
@^: or something that looks like a camera shutter.. would look nice imo.


Yes, sort of what I wanted to imply. Describes it even better laugh
Posted By: HeelX

Re: A7ITUDE: Here is a small update - 12/19/14 06:42

moving things! #A7ITUDE #game #2015 #gamestudio #a8

A video posted by Christian Behrenberg (@heelx) on

Posted By: HeelX

Re: A7ITUDE: Here is a small update - 12/27/14 11:30

Rewrote from scratch what I had in 4 days with straightforward coding, no gimmicks, no bells, no whistles, - just plain Gamestudio stuff, Ackcon style:



I also defined the workflow when exporting from Cinema 4D, I use XPresso to generate and control the quality of procedural LOD stages. And I use Blender's Edge Split modifier to break Cinema's phong tags.

I just ordered Greyscalegorilla's HDRI studio pack to add some more shine and style.
Posted By: alibaba

Re: A7ITUDE: Here is a small update - 12/27/14 11:43

Really good looking!
Another "proof" that you still can create some good looking games with 3DGS, although itīs paintful.
Posted By: Kartoffel

Re: A7ITUDE: Here is a small update - 12/27/14 11:50

@^: more like painfully slow grin

but yeah, looks cool.
keep it up!
Posted By: Superku

Re: A7ITUDE: Here is a small update - 12/27/14 12:38

Originally Posted By: HeelX
Rewrote from scratch what I had in 4 days with straightforward coding, no gimmicks, no bells, no whistles, - just plain Gamestudio stuff, Ackcon style:

This is how you do it, nice!
Posted By: HeelX

Re: A7ITUDE: Here is a small update - 12/27/14 23:09

Played around with the AMD CubeMapGen tool (check it out, it's cool!) and now I use a static cubemap for GI (very small and blurred), a bigger version with slightly more detail of it for environment map reflections (I use cubemaps from Emil Persson aka Humus). And, as I said, a HDR studio cubemap for the light reflections to make it glossy. Realtime, engine footage with FXAA:





Next: Screen Space Reflections for the plate... to mirror the rings!
Posted By: Superku

Re: A7ITUDE: Here is a small update - 12/28/14 04:46

Looking good but the sides of the white rings are somehow too dark for my taste/ should look different. I'd try making the sides of the white rings a little bit darker at the bottom (using some kind of brightness mask or via InPos calculation). I use chrome/ metal fake reflections all the time in my game and using a brightness base mask which I multiply with the output really adds a lot to the result.
Posted By: HeelX

Re: A7ITUDE: Here is a small update - 12/28/14 09:57

Good remark! I am still struggling with the light composition, because I use several sources.. ambient, hdr, sky, sun light. I will work on that.
Posted By: FBL

Re: A7ITUDE: Here is a small update - 12/28/14 11:10

Nice. Con it on.
Posted By: HeelX

A7ITUDE: reflections - 01/10/15 22:13

I got the realtime ring reflection working!



It is a screen-space reflection approach, for which I directly compute the screen-space coordinates, so that I get pixel perfect reflections without distortions. I do this by rendering first only the mirrored meshes, flipped along the mirror plane and printing the screen-space UV's of the non-flipped mesh.

Then I render the whole scene and add the mirrored pixels in a postprocessing step + FXAA.

I fade out the mirrored pixels by their distance to the mirror plane, by a fresnel term between surface normal and view normal and the distance of the mirrored pixel to the viewport borders.
Posted By: FBL

Re: A7ITUDE: reflections - 01/10/15 22:34

Uh.... yeah...

But looks great grin
Posted By: alibaba

Re: A7ITUDE: reflections - 01/10/15 22:40

Looks really good! Keep going!
Posted By: Kartoffel

Re: A7ITUDE: reflections - 01/10/15 22:57

uhmm, if I understand it right, these aren't screen space reflections.. you're using reflections rendered by a view with it's position and angles mirrored along a plane.

SSR are reflections computed only through the information of the pixels you can see (= screen space), without any further rendering of geometry.
Usually SSR is done by tracing the scene per pixel.

anyway, looks really cool, nice job
Posted By: Superku

Re: A7ITUDE: reflections - 01/10/15 23:51

Yeah the result looks nice indeed!
However, as we all know the game stands and falls with its gameplay. When does prototyping start in that regard?
Posted By: HeelX

Re: A7ITUDE: reflections - 01/11/15 10:09

Thanks for the comments.

@Kartoffel: You are absolutely right, let's call it screen-space lookup method grin

@Superku: Honestly, I consider the demo from 2007 as gameplay prototype wink I have absolutely no concerns about the gameplay, so, the first working version will be the last of the current-gen prototyping. My concerns were always how to achieve the kind of render-esque, no-texture visuals with my limited time and money budget.

Next visual steps are in this order: sun shadow, quasar entity + lighting + shadows + reflection, DOF... this will be pretty straight forward and I expect a good outcome

Then, I will test some considerations about screen resolutions and -orientation... this will be interesting, I don't know about the results

end of techdemo #1

After that I will implement user interaction... picking up the quasar, moving it around + collision detection with rings + dynamic camera programming...

Then, the first gameplay cycle of a single puzzle.
Posted By: HeelX

Re: A7ITUDE: reflections - 04/15/15 12:27

Hey guys. Came back from vacation and I decided one night at the beach that it takes to much time to get used to any other engine and that I want to do the whole thing more relaxed.

So if anybody is interested: I will do it with Gamestudio, for Windows PC. If the engine is updated and new exporters will be released - good. If not - its OK!
Posted By: Superku

Re: A7ITUDE: reflections - 04/15/15 12:33

Originally Posted By: HeelX
So if anybody is interested: I will do it with Gamestudio, for Windows PC. If the engine is updated and new exporters will be released - good. If not - its OK!

Awesome! \(^.^)/

Btw. some time ago I was thinking about your project when I scratched another Superku level. AFAIR you controlled the ball/ orb/ puck directly in the old a77itude, right? I think a much more interesting gameplay would result from controlling it indirectly where you place the mouse cursor somewhere next to the ball and as long as you hold down the left mouse button the ball gets pushed away (gets an impuls) from the mouse cursor position.
Posted By: FBL

Re: A7ITUDE: reflections - 04/15/15 18:31

Originally Posted By: HeelX
Hey guys. Came back from vacation and I decided one night at the beach that it takes to much time to get used to any other engine and that I want to do the whole thing more relaxed.

So if anybody is interested: I will do it with Gamestudio, for Windows PC. If the engine is updated and new exporters will be released - good. If not - its OK!


Oh... and I was sure you already decided that before. Anyway. That's nice and I hope to you finish it laugh
Posted By: HeelX

Re: A7ITUDE: reflections - 04/15/15 20:40

Originally Posted By: Superku
AFAIR you controlled the ball/ orb/ puck directly in the old a77itude, right? I think a much more interesting gameplay would result from controlling it indirectly where you place the mouse cursor somewhere next to the ball and as long as you hold down the left mouse button the ball gets pushed away (gets an impuls) from the mouse cursor position.


There is a game that is called "The Moon Hates The Stars". It was long ago available as freeware on the Experimental Gameplay site (http://experimentalgameplay.com/), where you was able to send in all kinds of creative/experimental games. The site closed, was long under re-construction and follows now since 2009 a totally different approach - but I remember the game very well (here is download link:
http://www.sosej.cz/Software/Hry/Arkady/The-Moon-Hates-The-Stars/Download). I once tried to find/contact the author, but failed - because it is a very beautiful game: you control the moon and all the stars react like a herd of sheep to it - they go away .. it uses crowd behaviour AI. Goal of the game was to fit the stars into one, or many, shapes (circles). Simply beautiful.

Although easy mechanic, you have to take your time. It is relaxing. But it can be unsettling, when you pushed some stars on the one side into the circle, and on the other side some decide something like "hey! lets get out of here" wink

A passive control scheme for A7ITUDE... I don't know. Can only work if the puzzles are rather easy and slow... I would have to experiment with that.

I also wanted to experiment with some new ingame mechanics (collectables, magnet rails/impulse rails, switches, multiple holes) - some of them are pointless if you have direct control (like collecting items) and get interesting if they are in a "difficult" area, like fast moving obstacles/rings... if I implement a passive control scheme with slower movement, this could get even more interesting. Good point, Superku!

I could also imagine a multiplayer mode, in which different people influence by their pull/push control of their own orb other orbs of other players. Or a co-op mode: two players control together the orb.

Besides, this would destroy totally the "action-orientated" game of skill, in which you have to move fast and quick... hm.

On the other side, having a move + one click button mechanics resolves the necessary to deal with different mouse cursor speeds.. this was an issue with the old approach. It also makes it possible for a touchscreen, because then you would NOT HIDE the orb with your finger, you can see it...

Great idea, Superku! Thanks a lot! laugh

Originally Posted By: Firoball
Oh... and I was sure you already decided that before.


Nope... I thought that the approach "make the game up to a certain degree", "shift the prototype to another engine" and finally "finish the game" was a good idea. But with simple algebra I figured out that step 2 is impossible for me alone and that it costs to much money to hire someone to do so. Therefore I decided to work with what I know and do the best I can. All this "use a new engine" gibberish somehow catched me... I should have known better.
Posted By: FBL

Re: A7ITUDE: reflections - 04/15/15 21:24

Actually trying out another engine works well enough - but I would not prototype with Acknex and then shift either. Feels painful and time intensive.
Posted By: Superku

Re: A7ITUDE: reflections - 04/16/15 07:00

You are welcome. I'd just write one or more gameplay prototypes and see what works or feels best, and don't be afraid to delete or scrap stuff and make it completely different. You are not bound by any design document and that freedom is something very precious in my opinion.
Posted By: HeelX

Re: A7ITUDE: reflections - 04/25/15 22:30

I got the lightfrog demo up and running under A8 (the skybox doesn't seem to work) - and I am currently digging into the source.

Hummels shadows are really amazingly done and if it works out, I will pull them into the game.
Posted By: HeelX

Re: A7ITUDE: reflections - 06/17/15 21:10

I refactored the Light Frog code from 11.311 LOC down to 3.248 LOC, sacrificing just cookies (don't need them), glow + tonemapping (things I'll do myself), ambient probes (don't need them), pipeline rebuilding (will be added later again) and model normal maps (I don't need them) ... and still not finished yet. I plan to merge the lighting with pre-calculated lightmaps, Unity style.

Directional sunlight (blueish) + Point light (red) + Spot light (green)
Posted By: HeelX

Re: A7ITUDE: reflections - 07/31/15 20:12

Moving forward!
- in LightFrog, a cubemap was generated for the 2..4 shadow views which was a waste of space, now I create individual render targets
- also, I made it possible to have 1 cascade only
- performance is now for the above scene 125 fps with one cascade, which was 70 fps when I started
- sun and skylight is now separated and configurable
- most configuration is now performed through WED gizmo entities with WED skill templates

Next things:
- genius for CSM for small scenes
- integrate per-pixel environment map reflection pass into light calculation
Posted By: HeelX

Re: A7ITUDE: reflections - 07/31/15 22:37

Posted By: FEL

Re: A7ITUDE: reflections - 08/01/15 08:39

PSSM 3 shadows? Is it working on different perspectives?

Dat AA?
Posted By: HeelX

Re: A7ITUDE: reflections - 08/01/15 09:08

No, CSM with VSM for the sun and VSM for point and spot lights. However, I target to use only one cascade for the sun in my game, because it is a small scene.
Posted By: sivan

Re: A7ITUDE: reflections - 08/02/15 09:52

nice job. you could easily turn your VSM into ESM, I fould it faster and better. of course if it works perfectly no real need.
Posted By: FBL

Re: A7ITUDE: reflections - 08/02/15 18:54

Vehicle State Management... Ecu State Manager... as if you were talking about my job. I have no idea what you're talking about... grin
Posted By: HeelX

Re: A7ITUDE: reflections - 08/05/15 17:23

Originally Posted By: sivan
nice job. you could easily turn your VSM into ESM

Have you something as reference? I am still in the stage of integration, but if there is a huge speed up opportunity, why not?

Originally Posted By: Firoball
I have no idea what you're talking about... grin

VSM = Variance Shadow Mapping ...

Quote:
Variance shadow maps (VSM) replace the standard shadow map query with an analysis of the distribution of depth values. VSM employs variance and Chebyshev’s inequality to determine the amount of shadowing over an arbitrary filter kernel. Since it works with the distribution and not individual occlusion queries the shadow maps themselves can be pre-filtered. This is novel, and allows for very fast soft shadowing with very large filter kernels.


http://developer.download.nvidia.com/SDK...adowMapping.pdf

However.. this is also very new to me.
Posted By: FBL

Re: A7ITUDE: reflections - 08/05/15 18:16

uh... yeah.... I only ever tried out PCF shadows with alpha transparency support (and possible wouldn't understand the shader code I wrote anymore), but never adapted the code to use orthogonal view... so it was very limited.
Posted By: sivan

Re: A7ITUDE: reflections - 08/06/15 06:34

Originally Posted By: HeelX
Have you something as reference?

yeah, of course in MapBuilder. my contest version contained VSM, later I changed to ESM by modifying it, not totally rewriting. the new version code is more clear, the contest version was really messy.
Posted By: HeelX

Re: A7ITUDE: reflections - 12/20/15 13:33

Ulf Ackermann pointed me to this article : http://indiegames.com/2015/09/interview_chris_johnson_on_exp.html ... looks like I am to slow ... I am a bit frustrated right now. The game is a bit different to what I planned, but I would say that they did the first move.
Posted By: Superku

Re: A7ITUDE: reflections - 12/20/15 17:44

Ouch, that's bad news bears...
However, your game looks much better and that's quite something to consider.

Apart from that you could apply the gameplay variant/ twist I said at ackcon, which is that you control the ball indirectly instead. Place the cursor or some other (HUD) element next to the ball and as long as you press a button you apply a force to the ball that moves it away from the cursor.
Posted By: FBL

Re: A7ITUDE: reflections - 12/20/15 18:29

I know how you feel... happened to me years ago as well - just wayyyy bigger gap in quality grin
Posted By: ulfster

Re: A7ITUDE: reflections - 12/20/15 19:37

didn't want to frustrate you, especially during xmas season! i just thought that looks kind of similar to what you are working on, thats why i showed you the link. maybe you can take it as additional source of inspiration...

this brings me to some observation i realised while looking at different game ideas. it seems that there are those basic kind of game mechanics that exist for a long time since the early days. then there are thousands of clones and nowadays you only see "clones" of this ideas that mix and refurbish the old ideas with a new twist. a completely new "idea" is really hard to introduce especially because i think gamers are used to the mechanics and even need them to identify a game as a game... thus you can always sort a game into one of the already existing categories and find other games that look or play the same...

so i can only encourage you to take it as a sportive competitor and polish your game with a twist that is not alreay inside this other game.
Posted By: alibaba

Re: A7ITUDE: reflections - 12/20/15 19:41

I agree with all! Just continue, competition will make your game get even better! This also happened to me before with Sky Titans and thanks to all forum users I just continued. I never regretted this decision.
Posted By: Anonymous

Re: A7ITUDE: reflections - 12/20/15 20:23

Oh don't worry about that, in fact it's a turn on a even older game. Like the old saying "There's nothing original under the Sun." These are kind of like new takes on old hand held games, wood and ball things.
My life, I've worked on game plots, books and comic book plots, and so much more. I've never found a simple idea that was original in whole.
When writing my novel, I found out about three other plots that where 100% same when summarized in short. However, when actual read the three plots and mine were as different as could be.
Clone is a ugly word, your game is only ever a clone, when you quickly copy the design of another game and push out a lesser game to capitalize on a currently hot market trend. I would say Star-Craft spawned many clones in RTS but not every RTS is a clone at all.
Please never abandon a thing, simple because of a similar product is out on the market. Originality is found in the execution and implantation of a Idea, never is the basic idea it's self.
The only thing about this other game to keep in mind is to plan your release date to either be out of time with they're releases or out shine they're releases. This game is already on STEAM I saw it like a week ago. I noted this similarities but never once thought either game could be a clone of the other.
https://www.bing.com/images/search?q=ball+maze+toy&FORM=HDRSC2
Mal
Posted By: Anonymous

Re: A7ITUDE: reflections - 12/20/15 22:23

Oh one last note, please. We need competition.
It's at the core of us. It drives us to work longer, harder and faster. To divest our projects to stand out among the competition.
Growing up poor, I can tell you, the only greater motivator than a empty stomach is the wolves snipping at your feet and trying to steal your lunch. They'll eat you and your meal. So work harder and be better. Let them taste your foot in they're face and the vapor of the meal, you snitch and hold in iron hand.
Be not frustrated or discouraged. If a wolf grabs your turkey leg, don't let it go, cook the wolf with the turkey in it, and make a meal of your competition.


Lol and to think I'm this way sober
Mad
Mal
Posted By: HeelX

Re: A7ITUDE: reflections - 12/22/15 18:40

Hey, thanks to all of you for the support! I was heavily worried. Really. Because it was a déjā-vu.. In Fall 2009 Fairytale Fights for PS3 etc. was released and it killed all my plans, ideas and hopes to make a 3D Jump'n'Run version of my prototype Razor For My Valentine, for which I released a trailer in summer 2008. Now, the same.. My original a7tiude prototype was from summer 2008, I collected tons of ideas and visual concepts since then, now being in the position to produce it, and BHAM! being in the middle of the preproduction this happens.. again.

At least it will take a lot time for development and production, so... I guess when I am done, Expand will already rest in peace and people think it is a fresh and excellent take on the subject grin
Posted By: Anonymous

Re: A7ITUDE: reflections - 12/23/15 00:50

Sid's right if you think you are going to bring some unseen thing to gaming. Aside the fact that you abandoned "razor for my valentine" a great game design. And took from 2008 till now to get hard core about this game.

Hello, the path to success is many releases, small, or even failures.. Drop them good, bad but fast and often.

I can point out authors, comics, everyone. Bands! hit it, hit it again and keep on till you break through... then any crap you release will do...


Forget it, I'm a drunk fool. Path to hell paved and all that.
Mad
Mal
Posted By: HeelX

A7ITUDE - 04/11/16 20:18

Hello guys,
after a break of 3 months I think I have now time again to work on this. I rearranged some of my life goals and I least hope I finish the game before I turn 40 (I turned 30 in the meanwhile), and if I don't, you can have a free margherita with me grin

However, I considered to work on my light & shadows pipeline. Although I am strongly disappointed with the current Gamestudio velocity I am still pleased with the robustness and flexibility I have, so, let's move on - I can't afford to jump into new technologies right now.

I want to finish my techdemo this year, let's cross fingers!
Posted By: txesmi

Re: A7ITUDE - 04/12/16 06:07

my best wishes wink
Posted By: mk_1

Re: A7ITUDE - 04/13/16 06:51

Taking this margherita thing very seriously...
Best wishes
Posted By: HeelX

Re: A7ITUDE - 04/14/16 20:05

Me too. grin Since you are sitting just 1 min away from me I'm afraid I have to work actually on it grin
Posted By: Anonymous

Re: A7ITUDE - 04/19/16 07:44

HeelX please work on . Please keep going. Forget first. Be better . Better is , well always better. Bring on help if you'd like. anyone but me. Your game is and will be awesome.

I believe in those who believe in fighting to the end.

So Give us a show , fight tooth and nail to storm the game world with this game.

I wasn't here.....
Posted By: Debugger316

Re: A7ITUDE - 04/19/16 19:10

GO! wink
Posted By: HeelX

Re: A7ITUDE - 07/21/16 22:39

Created two technical testscenes for integration into my A7ITUDE rendering pipeline (these are renders!). Targetting multi-level pixel-perfect horizontal reflections, reflection probes, reflection maps, HDRI studio maps, illumination maps, resolution-independent lensflares, static ambient occlusion mapping and SSAO integration! - stay tuned for the realtime renderings!



© 2024 lite-C Forums