Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1395378 Posts in 67256 Topics- by 60328 Members - Latest Member: Onedayvideo

September 22, 2021, 02:51:59 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsDuality Syndrome
Pages: [1]
Print
Author Topic: Duality Syndrome  (Read 4379 times)
0x0961h
Level 2
**


Quantum Demon


View Profile
« on: July 21, 2014, 01:10:33 PM »



Duality Syndrome is a physics-based puzzle platformer
where you can change levels by applying stickers to them.



D E V S T O R Y


At first there was Accessibility Jam. I was looking for game ideas and
opened this great Sean Howard's site called 300 Gameplay Mechanics.
I saw a mechanic that was pretty uncommon: negative Shift-like space,
but you can edit the level during your walkthrough!

"Amazing!", I thought.

"Ha, you're cute, but, sorry, not this time", box2d said and
threw a big bunch of serious exceptions and big performance drops
to my face.

Accepting fate... complete

But. Few weeks ago I was visited by the Idea Fairy (the good one).
I was told that I should use a different approach to modify level
structure and store data. And I tried. O-o-oh how I tried. I finally
made it, it works! But there was a lot of nasty problems
(players stuck in "canyons", bugs with render, etc.), so I decided
to move on and drop it. Though I showed some screenshots during
Screenshot Saturday and it seems like people like the mechanic.
Via comments and chats I came up with some ideas, feedback
gave me confidence, so I decided not to abandon it.

And here I am, on TIGSource, making my first ever devlog
for the project, that I really, really want to finish
and release. And I hope you'll be here with me, sharing my
successes and laughing with me at my failures.


S T A T U S


Game is in a deep-deep WIP/prototype phase. I began this prototype
on the July 6 and I have the core mechanic up and running
at the moment.


S C R E E N S H O T S


 


G I F S / G F Y C A T S






Glowing sticker borders (GIF #1) / Glowing sticker borders (GIF #2)

"Pilot" gameplay gif / Gameplay, one week later
Throwing mechanic / Grid snapping / Sticker placement limits


F A S T   N A V I G A T I O N   L I N K S


The Quest for the Great UI (part 1)
The Quest for the Great UI (part 2)
Glow-y Screenshot Saturday
The Quest for the Great UI (part 3)
Dissolving Transparent Renderer
Inkscape is my friend
Sticky-inky situation
Full flow and three throws


T E H   I N T E R N E T Z





A B O U T   D E V L O G


So, about this devlog. What I'm trying to achieve with it is to have some sort
of place where I can write about some technical stuff, post some pictures and
animations, discuss something project-related and maybe even answer questions.

- - - - - -

Thank you for your time! Let's see if I'll be able to maintain this devlog so
no one will fall asleep during reading.

Sincerely yours,
0x0961h
« Last Edit: December 14, 2018, 01:43:18 PM by 0x0961h » Logged

Fermenter
Level 0
***


Holla


View Profile WWW
« Reply #1 on: July 21, 2014, 01:35:19 PM »

This is so mesmerizing! Those gifs really do a great deal in explaining the main mechanic. I'm really interested in seeing how this idea develops. Great job so far!

A few questions:

- Are you still using box2d for the development?

- The mechanic looks fun, but is there a goal with it? What I mean is -> what will the simplest level play like from beginning to end?

And a suggestion:

Perhaps when you activate the throwing mechanic (only as the player is aiming the shot), you could stop the ball from moving (or at least slow down the movement)? Seems like it might be frustrating to have to aim something quickly if the ball is rolling down a hill or something. Maybe that's the point though? At first glance though it seemed odd to mix the main mesmerizing/in-your-head puzzley sticker gameplay mechanic with this fast/almost-twitch-reaction platforming thing. Just a thought/consideration!

All in all, great job so far. Keep us updated!
Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #2 on: July 21, 2014, 01:58:58 PM »

Posting here to follow!
Logged

zomboko
Level 0
**


Game designer


View Profile WWW
« Reply #3 on: July 21, 2014, 05:03:05 PM »

I like this concept and such amazing style. These lines and chaos in the levels. Keep it up :3
Logged

0x0961h
Level 2
**


Quantum Demon


View Profile
« Reply #4 on: July 21, 2014, 09:49:02 PM »

This is so mesmerizing! Those gifs really do a great deal in explaining the main mechanic. I'm really interested in seeing how this idea develops. Great job so far!
Yay, thanks! Smiley

Are you still using box2d for the development?
Yup. LibGDX + Box2D.

The mechanic looks fun, but is there a goal with it? What I mean is -> what will the simplest level play like from beginning to end?
There'll be some sort of collectable stars for both dimensions, that player have to collect to complete level. As far as I brainstormed stars will appear in sequence (e.g. you picked the first star, the second appear somewhere else) and player will see current star and the next one. When you collect all the stars level ends.

Simple level flow is:
  • Player starts level with few stickers
  • Player tries to change level with stickers so stars can be collected
  • If player fails to solve puzzle with basic stickers, additional "booster" sticker packs can be taken
  • Player collects all the stars
  • Player sees score based on amount of used stickers, taken boosters and overall time, I guess (it's not final atm).

Perhaps when you activate the throwing mechanic (only as the player is aiming the shot), you could stop the ball from moving (or at least slow down the movement)?
I, actually, have plans to allow throwing only when ball is standing still on flat ground. Originally this mechanic was implemented to help players avoid stuck situations.

At first glance though it seemed odd to mix the main mesmerizing/in-your-head puzzley sticker gameplay mechanic with this fast/almost-twitch-reaction platforming thing. Just a thought/consideration!
I'm thinking about separating "action" part from "building" part, so you can take your time during slapping those stickers, view all the map, make hardcore decisions, but during action your fov will be shrinked and camera will follow ball whereever it goes.

All in all, great job so far. Keep us updated!
Thank you, will do. Smiley

Posting here to follow!
Aw yiss, welcome to madness. :D

I like this concept and such amazing style. These lines and chaos in the levels. Keep it up :3
Ah, yeah, I love abstract style, 'cause it's art style I can draw in all by myself. :D
« Last Edit: July 22, 2014, 12:18:36 AM by 0x0961h » Logged

ndke
Level 2
**


View Profile
« Reply #5 on: July 22, 2014, 12:24:56 AM »

Can't wait to play Crazy
Logged
0x0961h
Level 2
**


Quantum Demon


View Profile
« Reply #6 on: July 22, 2014, 12:29:41 AM »

Can't wait to play Crazy
Thanks, thought I don't think it's gonna be playable very soon. Bro Fist Left Sad Bro Fist Right
Logged

joeyspacerocks
Level 1
*



View Profile WWW
« Reply #7 on: July 22, 2014, 12:32:11 AM »

Great idea - look forward to seeing how you progress with this one
Logged

0x0961h
Level 2
**


Quantum Demon


View Profile
« Reply #8 on: July 23, 2014, 01:22:33 PM »

Great idea - look forward to seeing how you progress with this one
Thanks, will try not to disappoint. Smiley



23.07.2014
[ D E V L O G   E N T R Y   # 1 ]

A-a-and about disappointment...

I'm working hard at separating two game modes that I call "build mode" and "action mode" atm. There are problems with physics code (e.g. if you move the ball and switch to another world that ball won't stop and continue moving, like there's no tommorow), but what actually bothers me right now is sticker selection panel/window.

A little preamble: one of the main limitations of player imagination will be limited amount and types of stickers available for applying. Let's say you start a new level. Game gives you only two stickers. You can be sure, that level is designed in a way it can be solved with only these two stickers. How? It's up to you to figure out.

But what if you fail to solve a level with these exact two stickers? (tip: "call yourself a failure" or "blame level designer for non-obvious solutions" are not right answers!) You can request a booster pack! Only $0.99! So you push a "Request" button and got N more stickers for your pleasure.

Downsides? Level rating. In the end of the level your time, amount of applied stickers and amount of requested boosters will be used to determine your score. I don't know all the formulas I'll be using for this atm, I'll figure them out later... I hope...


I tried three designs of UI, but I don't feel like they're... um... fitting in?


Click for high-res.

  • The first one was my initial UI-design idea: rolling out panel with two arrow buttons for scrolling and, well, a scrolling "gallery" of stickers. Looks too... um... UI-ish?
  • The second one is "panel-less" variant, with gradient. Looks terrible.
  • The third one is an actual pile of stickers that hides in a lower-left corner:


    and then expands into the third screenshot. Don't know if it's gonna be good-looking.

So, right now I have three options, but every single one of them lacks, let's call it "aesthetic".

Or maybe I'm just overthinking and need to look at the problem with a "clean" head.

[ E N D   O F   E N T R Y ]
Logged

jgrams
Level 3
***



View Profile
« Reply #9 on: July 23, 2014, 03:58:07 PM »

What about a little gaussian blur glow or something around the edge, instead of that monster purple band? Maybe this is a little too subtle, but something like this? They could drift a little so you know they're not nailed down, or the glow could pulse?



I don't know that the glow quite fits with your aesthetic, but there has to be some kind of subtle border that would. Or not subtle? Maybe you could just invert the colors in a band around the edge of the sticker?

For the scattering...you might try putting them towards the edges of the screen? Like a jigsaw puzzle: leave the middle clear to work with? When you select one, the others could blink out, so you can see the whole level. Or it could be pretty cool if they drifted away from wherever you were working...

Anyway, those are my crazy ideas.

What do you do with the sticker if you're going to place it and then decide you don't want to use that one? Place it and then undo it? Drag it somewhere special? Hit some key?

I'm assuming the stickers are like real stickers (you use them up when you place them)? Or does it mean you have a certain supply of that type?

Looks like it could be an interesting game...
Logged
0x0961h
Level 2
**


Quantum Demon


View Profile
« Reply #10 on: July 23, 2014, 10:24:44 PM »

What about a little gaussian blur glow or something around the edge, instead of that monster purple band? Maybe this is a little too subtle, but something like this? They could drift a little so you know they're not nailed down, or the glow could pulse?
This band is pretty WIP-ish thing. I thought about glow, maybe I should really try it. "Pulsating glow" is a good idea too.

For the scattering...you might try putting them towards the edges of the screen? Like a jigsaw puzzle: leave the middle clear to work with? When you select one, the others could blink out, so you can see the whole level. Or it could be pretty cool if they drifted away from wherever you were working...
Hm... Sounds pretty... rational. Need to implement it and decide after I see it in action. Smiley

What do you do with the sticker if you're going to place it and then decide you don't want to use that one? Place it and then undo it? Drag it somewhere special? Hit some key?
If you have applied it, you can't undo it. If you picked up the sticker, but changed your mind and haven't placed it yet, you can returned it to your "hand".

Looks like it could be an interesting game...
Thank you and thanks for your suggestions, I'll try to make something outta it. Smiley
Logged

0x0961h
Level 2
**


Quantum Demon


View Profile
« Reply #11 on: July 24, 2014, 12:39:06 PM »

24.07.2014
[ D E V L O G   E N T R Y   # 2 ]

So, fighting with UI, day 2. After taking in account all the feedback I got today (you, guys, are great Gentleman) I came up with this UI version (it's a prototype, not an actual screenshot):



Click for bigger version.

Basic elements are:
  • Differentiated Glow -- to help to distinguish stickers from background (instead of WIP-ish fat purple border)
  • Vignette -- to make stickers in hand easier to see (at least I think it's easier...)
  • Little Stickers -- little images of stickers in player's hand (as seen on the bottom). They aren't propotional to their actual versions, so they act more like "launcher icons"
  • Grid -- to help player determine in which state game is now (action or build)
  • 8 or less -- limit to have only 8 or less cards in hand with ability to request booster pack when all the stickers will be used
What's not displayed, but I have it in mind: sticker type identification. I think it'll be shown as semi-transparent symbol over the sticker. It can be shown always or only on mouse over event. I had an idea to use colours to determine this but a). "no-so-many-colors" visuals b). accessibility reasons. But it'll be later.

For now... well, I like this version and maybe I choose it for now and stop my "quest for ideal UI". If I'll be visited by The Glorious Idea Fairy, I'll re-write it of course, but this one is pretty good in my opinion.

[ E N D   O F   E N T R Y ]
Logged

0x0961h
Level 2
**


Quantum Demon


View Profile
« Reply #12 on: July 26, 2014, 04:43:20 AM »

26.07.2014
[ D E V L O G   E N T R Y   # 3 ]

Few visual tweaks for Duality Syndrome's build mode.




Here you can see glowing border for stickers (that changes it color depending on background underneath; don't know how good it'll be for non-b&w colour schemes, though...) and dissolving animation for applying.

I also have fixed sticker angles to isometric values: 0°, 26.565° (for clean pixelart-ish 2:1 slopes), 45°, etc.

[ E N D   O F   E N T R Y ]
Logged

0x0961h
Level 2
**


Quantum Demon


View Profile
« Reply #13 on: July 27, 2014, 04:24:31 AM »

27.07.2014
[ D E V L O G   E N T R Y   # 4 ]


The Quest for the Great UI completed!
At least I think it is...
At least for now...
Well...

So, during sticker panel (a.k.a. "player's inventory/hand") development I came up with idea of different color schemes for build and action modes, 'cause "inverted sticker border" could be a disaster on non-b&w scheme. I think smooth transition from black-and-white build mode to colorful action mode will be great. Also, it could be helpful to visually separate modes from each other.

[ E N D   O F   E N T R Y ]
« Last Edit: July 27, 2014, 04:30:17 AM by 0x0961h » Logged

0x0961h
Level 2
**


Quantum Demon


View Profile
« Reply #14 on: July 31, 2014, 01:57:01 PM »

Sup everyone! Was silent for a few days, spent a lot of time making heavy changes to the render code, pretty pleased with the result, though I think I can make even better, but for now it absolutely fulfils my requirements. A little animated teaser for the upcoming (ETA: tommorow) devlog update:

« Last Edit: July 31, 2014, 02:03:39 PM by 0x0961h » Logged

0x0961h
Level 2
**


Quantum Demon


View Profile
« Reply #15 on: August 01, 2014, 01:01:28 PM »

01.08.2014
[ D E V L O G   E N T R Y   # 5 ]

Last few days I was in pretty painful process of rewritting rendering code. Produced a lot of dirty code (spoiler: and already killed it with fire light refactoring), but the result is worth it.

After the last update I decided to free the camera and increase space for bigger levels. After few changes in code I faced the first problem: when I applied stickers to edges they didn't extend the level in an obvious way. Actually, they were just drawn over. Physics worked well, but all the stuff was rendered wrong. And it was bad. Why would I need a freedom of camera movement when all I see is a rectangle of the level that will stay the same old rectangle all the time no matter how many stickers I'll apply?

That was pretty sad.

And I began to rewrite a rendering code to make it independent from screen size and proportions. I also decided to make levels not only black and white, but also add some uncolored, void space.

After few days of swearing and cursing every living creature coding I finally got what I wanted. I also added some placeholder animated background for Void to see level transparent parts:


Though, there are still problems. Now I render the level (I called this process "baking", like in "baking ambient occlusion map", you know) to different FBOs. Now I have, like, three FBOs for level baking: for black parts, for white parts and for the final result that player sees (which is actually used two times: for build mode's color scheme and for action mode's one). But, you know, for the level with size 2000x2000 with 2x sampling it's 4000x4000 texture. And let's also take in count that I have so called "scale factor" parameter, which tells how the player window is bigger than native game resolution of 1024x576. So, for 1920x1680 the scale factor will be 1.875. Three 7500x7500 RGBA8888 textures in GPU... doesn't sound like a good idea. Game even crashes sometimes with some weird messages. I think I have to dig into render code once again and maybe, I don't know, draw level to screen natively, with ShapeRenderer or PolygonSpriteBatch (which can produce little annoying 1px wide "between the triangles" lines) or limit FBO resolution to, let's say, 1024x1024 and just cut the level into few different textures and not to the One Big Texture during baking. Could be also useful if I want to use occlusion culling for unseen level parts.

Oh, almost forgot! I made a dissolving effect for transition between Build and Action modes. It looks like this:


And also I made it possible for player to go to the Build mode from Action at any moment, not only when both players are standing still. Don't know if it's a great idea, actually, but will see later:


As you see development is still alive, even though there's no gameplay features implemented yet. For now I just need to solve all the problems with, you know, basic stuff, like level rendering and physics. When everything will be good and ready I can start to add puzzle stuff and everything.

Thank you for your time, have a nice weekend! Smiley

[ E N D   O F   E N T R Y ]
Logged

0x0961h
Level 2
**


Quantum Demon


View Profile
« Reply #16 on: August 03, 2014, 10:07:02 AM »

03.08.2014
[ D E V L O G   E N T R Y   # 6 ]

The more I grow up as a (game) developer, the more I want to use more elegant solutions for WIP-stuff to actually solve my problems, not just spend time making stuff.

Today I wrote a "Lazy Level Editor". It just imports SVG files made in Inkscape (can be done with other editors, actually, just need to untangle the code from Inkscape, but I'm pretty okay with Inkscape) and converts them into internal game format. Just look at the result yourself:


All I have to do to run the level in game is make two layers, draw level, then (here goes the hack) unite all the objects into one for each layer, save file and launch the game. Ta-daa! Level is loaded.

Since I can give names for objects I can make stickers in Inkscape too, without "I am gonna make THE BEST LEVEL EDITOR IN TEH WORLD and spend, like, 90% development time on it" part. All I need now is to write proper exporter so I could save levels in my own format.

[ E N D   O F   E N T R Y ]
Logged

0x0961h
Level 2
**


Quantum Demon


View Profile
« Reply #17 on: August 10, 2014, 12:19:56 PM »

10.08.2014
[ D E V L O G   E N T R Y   # 7 ]

It was a pretty boring week in development terms. I was "playing" with my SVG importer. Now it's more fancy (I've got rid of dirty regexp hack, now I use proper built-in XML-parser for extracting data) and can extract stickers from special layer, like this:


[ E N D   O F   E N T R Y ]
« Last Edit: August 16, 2014, 12:51:25 PM by 0x0961h » Logged

0x0961h
Level 2
**


Quantum Demon


View Profile
« Reply #18 on: August 16, 2014, 01:02:37 PM »

17.08.2014
[ D E V L O G   E N T R Y   # 8 ]

This week was working on technical stuff mostly.

Limited throws to three and decreased the throw power, 'cause throws, that was implemented because of players-can-build-the-level-themselves, actually destroy the fun of bulding level. I mean, why do you need stickers, when you can just jump your way to the stars? I also thinking about ranking system for levels, so players can be encouraged not to use throws or use only them to complete the level. Can it increase replayability? Don't know.

I've also added stars that player should collect in order to complete the level. And because of it, I've added a "Level Completed" sequence. Here's a little fragment of it:


There's also "full flow" video available on IndieDB game page.

Next step, probably, will be adding more stars, and "sequencing" them so player will see the current star and the next one. But there's a "thing": player could easily "overlap" the star with sticker during walkthrough, so I need to make next one visible even if it's under the sticker.

Decisions, decisions, decisions...

[ E N D   O F   E N T R Y ]
Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic