Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1410929 Posts in 69596 Topics- by 58583 Members - Latest Member: Keyframe

October 11, 2024, 08:21:27 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsARCHAICA: The Path Of Light - Beautiful puzzle, Two brothers team, Custom engine
Pages: 1 2 3 [4] 5
Print
Author Topic: ARCHAICA: The Path Of Light - Beautiful puzzle, Two brothers team, Custom engine  (Read 31978 times)
Schrompf
Level 10
*****

C++ professional, game dev sparetime


View Profile WWW
« Reply #60 on: January 11, 2017, 05:28:52 AM »

Thanks for asking! I started another project, but didn't came far. Now I'm employed fulltime and got a daughter of four months. Still hoping to get back to game development some day. If all turns out fine, it might already be end of this year.
Logged

Snake World, multiplayer worm eats stuff and grows DevLog
pturecki
Level 0
***



View Profile WWW
« Reply #61 on: January 14, 2017, 08:44:23 AM »

@Schrompf: Cool. Then I'm looking forward for information about this project Smiley I also have small kids (two daughters: 4y and 2y) but I stayed full-time indiedev (with my brother) and I must say financially it's very bad solution (fortunately family help us) :/ (and work on the Archaica takes much more time that we planned).

And some new screenshots. This is a sample round from third realm in Archaica (Islands realm):



If You are in facebook "Indie Game Developers" group You can also check this post (on facebook): Swamps Of Oblivion

And some technical information. I just started cleaning the mess in Archaica source code. The stats at the moment looks like this (no blank lines, no shaders) measured by cloc tool:

game: 25k lines
editor: 11k lines
engine: 29k lines
comments (mostly commented unused code): 8k lines

I'm wondering how look similar stats in other projects that uses custom engines?

Cheers!
Logged

Schrompf
Level 10
*****

C++ professional, game dev sparetime


View Profile WWW
« Reply #62 on: January 16, 2017, 04:00:49 AM »

Maybe your coding is so much more concise than mine :-) Splatter had 250k line in custom code and ~2.5 million LoC dependencies. Most of that was Boost, though, so that doesn't count for much. The port to Linux and Mac added surprisingly few lines.
Logged

Snake World, multiplayer worm eats stuff and grows DevLog
pturecki
Level 0
***



View Profile WWW
« Reply #63 on: January 17, 2017, 02:09:52 AM »

@Schrompf: I think Your engine has more features (for examples complex animations and particles, both with nice tools - and both things are missing in Archaica engine). Also Archaica is for PC only (no code for other platforms).

Also my code is rather simple (I like simple code - maybe even too much): no setters/getters, almost everything is public - I try to hide implementation inside cpp files (instead of private parts of classes), minimalistic class hierarchy (but without exaggeration - there is really a lot of classes in the code), rather small number of interfaces, no dedicated thread for renderer etc, also game-code and engine-code has built-in a lot of editor functionality (so editor has comparatively small number of lines).

Full source code at the moment has: 65k (code) + 22k (blank) + 8k (comments) = ~95k lines.

PS. I'm cleaning the code now, and I really like it - it's probably a good sign Smiley There is a lot of good stuff in it Wink
Logged

maiscrudo
Level 0
***


View Profile
« Reply #64 on: January 17, 2017, 05:02:13 AM »

This reminds me of God of Light for iOS.
I loved and finished that game, but this one seems a lot more gorgeous and will probably feature much harder puzzles, considering it's for pc.
Keeping my eye on this! Smiley
Logged

Moony Baboon | @maiscrudo
Released games: Wings of Heroes | Waste in Space
Currently developing Trigono
jctwood
Level 10
*****



View Profile WWW
« Reply #65 on: January 17, 2017, 06:37:20 AM »

So beautiful! Reminds me of the witness which I love.
Logged

nam1995
Level 0
***



View Profile WWW
« Reply #66 on: January 17, 2017, 08:06:35 AM »

Beautiful art!
Logged

pturecki
Level 0
***



View Profile WWW
« Reply #67 on: January 18, 2017, 12:09:45 AM »

@maiscrudo: Thanks! We know God of Light Wink Nice game. Archaica has a different gameplay (more discrete) and more variety. And I also think it will be harder Wink

@jctwood: Thanks! But remember that this is a very different gameplay: Archaica has not first person camera, only top-view and rather static.

@nam1995: Thanks! PS. My brother is responsible for art-side Wink If You are interested please check out his deviant page: DeviantArt
Logged

pturecki
Level 0
***



View Profile WWW
« Reply #68 on: January 21, 2017, 05:48:26 AM »

Hi. Today just one shot for screenshot saturday:



And a short description. This is fourth realm in Archaica - The Crystal Mines (this realm is not finished yet). All levels in this realm (except first) are deep under ground. The deeper the level is the more red color (from lava) it has.

Hope You like it Smiley
Logged

Jabberwocky
Level 0
**


View Profile WWW
« Reply #69 on: January 21, 2017, 07:14:57 PM »

Holy crap is this pretty.

You guys really nailed it in the trailer.  I might have thought a game about rotating mirrors would be a tough sell.  But the trailer made it all feel super epic.  Really came across as a beautiful puzzle-world filled with mysteries.

Nice work.
Thanks for sharing.

Logged
pturecki
Level 0
***



View Profile WWW
« Reply #70 on: January 26, 2017, 11:34:36 AM »

@Jabberwocky: Thanks!

Btw. At this moment there is a live twitch from the last level in Beta version: https://www.twitch.tv/gamescroller by Gamescroller. All are welcome to join Smiley
Logged

pturecki
Level 0
***



View Profile WWW
« Reply #71 on: February 01, 2017, 06:48:09 AM »

Hi. Level design work on a next realm (jungle) is almost done, and on this occasion I have a question: Are symmetrical solutions in puzzle games good or bad idea? What do You think?

Here are two screens from the realm we are working on now:



Cheers!
Logged

TheWanderingBen
Level 1
*


Making Games Around the Globe


View Profile WWW
« Reply #72 on: February 01, 2017, 08:32:27 AM »

Are symmetrical solutions in puzzle games good or bad idea? What do You think?

I love good looking solutions to puzzles -- be they symmetrical, or just visually pleasing in some other way. The Witness has some fantastic symmetrical puzzle solutions. Even though they're simple, I love their style!



Of course, it's all subjective. But I like your top solution (the symmetrical one) more than the bottom solution. It's a nice, small reward for success.
Logged

pturecki
Level 0
***



View Profile WWW
« Reply #73 on: February 01, 2017, 03:01:18 PM »

@TheWanderingBen: I also like good looking solutions (but my brother pay more attention to this aspect). And I prefer top solution too Wink Indeed it can be treated as a small reward for success. Thanks for the reply!
Logged

pturecki
Level 0
***



View Profile WWW
« Reply #74 on: February 18, 2017, 01:25:12 AM »

Hi. We are still reworking some levels. Here is one of the reworked map (and still needs a bit more reworking). Guess which old game was the inspiration here Wink



Cheers!
Logged

pturecki
Level 0
***



View Profile WWW
« Reply #75 on: February 23, 2017, 08:42:22 AM »

Hi. Recently I made my 1000th commit to Archaica source code. It's 3,5 years since I started using git. Befere I was just making copies by hand, so my initial commit was quite big. Here are the current git stats. The average is 400 changed lines per day (including added/deleted files, so the real number is smaller). 400 lines doesn't look as big number :/ (but I was not only programming...)

Screens (click for full res):


Cheers!
Logged

AaronB
Level 2
**



View Profile WWW
« Reply #76 on: February 23, 2017, 02:43:28 PM »

Are symmetrical solutions in puzzle games good or bad idea? What do You think?

I definitely like symmetrical.  Of course the symmetry may make the puzzles easier?
Logged

pturecki
Level 0
***



View Profile WWW
« Reply #77 on: February 24, 2017, 07:41:54 AM »

@AaronB: I think there are definitely easier. But for that reason You can make a more complicated puzzle than in similar assymetrical version of the particular puzzle.
Logged

pturecki
Level 0
***



View Profile WWW
« Reply #78 on: March 05, 2017, 06:24:23 PM »

Hi. Some light-weight post today, not 100% game related (but the effect is for use in game of course).
Recently I played a bit with text deformation effect. Here are first simple results:




No shaders are used, only C++ code. Deformation is made by supplying special per-char callback to text rendering function. And some details (note that we use custom engine).

Callback:
Code:
class IDrawTextCb
{
public:
    virtual void PreDrawChar(const DrawTextCurrentCharInfo& info, DrawTextCbParams& params) = 0;
};

and related structures (passed as parameters to the callback):
Code:
// information about currently rendered char - char index and actual text length in pixels
struct DrawTextCurrentCharInfo
{
    int    textChar = 0,
           textLength = 0;
};

// parameters used during rendering - screenspace rect in pixels and 4 colors (one for each quad vertex)
struct DrawTextCbParams
{
    FRect  pos;        // x1,y1,x2,y2
    Vec4   color[4];   // x,y,z,w
};

Text rendering function updates (every rendered char) DrawTextCurrentCharInfo data, prepares DrawTextCbParams and passes both to the callback (callback modifies only DrawTextCbParams). Below is the simplest callback code for second effect (from top). The rest are similar (small differences in code). If anyone is interested then I paste them too. All this effects are doable using vertex shaders (but it was simpler for me to add this deformation functionality in C++).

Code:
void PreDrawChar(const RenderInterface::DrawTextCurrentCharInfo& info, RenderInterface::DrawTextCbParams& params)
{
    float t = textTime * 500;  // textTime is incremented every frame by frame time (in Tick function)
    float a = t - 250;
    float b = t;

    float s = Math::Saturate( (info.textLength - a) / (b-a) );

    float alpha = 1 - s;
    params.color[0].w = alpha;
    params.color[1].w = alpha;
    params.color[2].w = alpha;
    params.color[3].w = alpha;

    float x = powf(s, 2.0f) * 50;
    params.pos.x1 += x * 0.2;
    params.pos.x2 += x * 5;
}

Hope this post is useful for someone Wink
Cheers!

/edit:
And a few fragments (related to callback) from text rendering function:

Code:
DrawTextCbParams cbParams;
cbParams.color[0] = color;
cbParams.color[1] = color;
cbParams.color[2] = color;
cbParams.color[3] = color;

// and in loop every rendered char:
LOOP (for each char):

    // initialize screenspace char position in pixels
    cbParams.pos = FRect(
        textPos.x + scale * (glyph->offsetX),
        textPos.y + scale * (glyph->offsetY),
        textPos.x + scale * (glyph->uvInPixels.GetWidth() + glyph->offsetX),
        textPos.y + scale * (glyph->uvInPixels.GetHeight() + glyph->offsetY)
    );

    if (callback)
        callback->PreDrawChar(currentCharInfo, cbParams);

    [...] // draw char

    // update informations about currently rendered char
    currentCharInfo.textChar += 1;
    currentCharInfo.textLength += addX;

END LOOP

« Last Edit: March 05, 2017, 06:52:22 PM by pturecki » Logged

thekosmonaut
Level 0
***


View Profile
« Reply #79 on: March 06, 2017, 09:20:46 PM »

the second one looks really cool, like from a sci-fi movie
Logged

Pages: 1 2 3 [4] 5
Print
Jump to:  

Theme orange-lt created by panic