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

Login with username, password and session length

 
Advanced search

1401571 Posts in 67916 Topics- by 61454 Members - Latest Member: Spark

June 25, 2022, 08:48:24 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsFlip Flow - Puzzle game
Pages: 1 2 [3]
Print
Author Topic: Flip Flow - Puzzle game  (Read 9146 times)
Prinsessa
Level 10
*****



View Profile
« Reply #40 on: September 14, 2016, 02:53:51 AM »

Wait, there's no GC at all? Doesn't that lead to inevitable leaks for any application? On a platform that suffers the most from it? Undecided Or does it change to something like reference counting instead?
Logged

Mannapi
Level 0
***


.


View Profile
« Reply #41 on: September 14, 2016, 04:31:12 AM »

Sorry, the GC is run, but it is only triggered when the pre-allocated space on the heap is close to being fully allocated. Then the more things on the heap the slower the GC is, and fragmentation is always a problem, causing large allocations to grow the heap size. The heap size never shrinks, so you can say that is a memory leak.

Here are best practices with reagard to the GC for Unity:
https://docs.unity3d.com/Manual/UnderstandingAutomaticMemoryManagement.html
Logged

Prinsessa
Level 10
*****



View Profile
« Reply #42 on: September 14, 2016, 04:54:23 AM »

Yeah, they did say that in the video zorg linked. All right.

But doesn't C# actually offer direct pointer syntax wrapped in unsafe blocks, or something like that? Couldn't that be utilised to have control over memory when optimising for mobile?
Logged

Mannapi
Level 0
***


.


View Profile
« Reply #43 on: November 02, 2016, 02:31:07 AM »

A lot of changes. A lot of text.

The last post was a quick hack to try to use coroutines to animate the tracing. It is terrible and I feel bad about posting the deceiving picture. The way it was done was tracing everything in one frame spawning a new coroutine for each triangle which then waited around until it was its time to 'go'. So basically no change in logic, just a bunch of coroutines fading color values. The good thing about the old way of tracing is that it made the result of the trace known before the animations started.

The way it is done now is that the tracing is being done in a coroutine, meaning we will only have as many coroutines running as paths being traced. But as I said, I am tracing the path as I go, meaning I do not know if two starts are connected to each other causing an error (red color) until it happens. Anyway it caused a lot of researching into coroutines and scheduling which I still have one known bug with.



Since I was messing a lot with coroutines I realized my previous post about yield return WaitForEndOfFrame() was wrong. The only difference between that and yield return null is that the end-of-frame-routine is scheduled after rendering but the other is run after all Updates are called, before rendering. My performance issue must have been something else.

The change above meant I had to make it work for all types of gates as well as different block types. The gif I posted before only had simple flips, which were the first things that 'worked'. Getting it to work for bridges (which have 3 color areas), splitters (which have 1 color are) and borders was such unnecessary pain in the butt that I decided to refactor them a lot. I got rid of 3 classes and about 500 lines of code (which was mostly duplicated anyway). The best part was getting rid of a abstract base class that I had made as a poor man's interface at the start of the project and had turned into a big hurdle.

The final version is much more Unity-ish and I would have done it that way if I had more experience with Unity at the start. It made everything so much more data driven and component based. It did mean I had to enter an ungodly amount of data by hand, such as input to output direction maps and entry direction to color area maps for every type of block. Very error prone since I had to do it in the editor. An added bonus is that all the dictionaries (maps) I discussed in a previous post are gone and are now lists, indexed with an enum.

This of course broke my saving and loading and I spent probably too much time making it support both my old and new level structures (I should make some versioning maybe). I can now load the old levels I made and save them as new levels. In hindsight they are not that many and it would have been quicker to remake them from screenshots.

I changed the color fading to use the wall color as the starting color. This has convinced me to use the same wall color for everything and indicate non-flippable tiles in a different way.



On to level selector and splash screen. Oh and actual levels  Coffee
« Last Edit: April 30, 2017, 03:35:52 PM by Mannapi » Logged

PetterBergmar
Level 2
**


Animator by day, gamemaker by night. And fridays.


View Profile WWW
« Reply #44 on: November 03, 2016, 01:03:32 AM »

This looks awesome!! Played your earlier demo before and had a lot of fun. Nice to see your progress!
Logged

Twitter: @pbergmar
Mannapi
Level 0
***


.


View Profile
« Reply #45 on: November 09, 2016, 03:56:56 PM »

I found this in my phone and wanted to share. This is a note of when I started thinking about the basic concept for the game. A surprisingly long time ago. I didn't start working on it until this year.

Not sure how you would place 3D points for that other idea. I am sure I had a perfect picture in my mind, which is long gone.

The text in the bottom says 0937 is LEGO upside down. Beer!

« Last Edit: April 30, 2017, 03:36:37 PM by Mannapi » Logged

Mannapi
Level 0
***


.


View Profile
« Reply #46 on: November 11, 2016, 02:19:26 AM »

My game got mentioned on Rock Paper Shotgun  Shocked

https://www.rockpapershotgun.com/2016/11/10/game-gifs/
Logged

Mannapi
Level 0
***


.


View Profile
« Reply #47 on: April 21, 2017, 02:49:26 PM »

First the good news. I am not dead and the game is not dead.

However! I have made next to no progress for the last 5 months. I had initially set myself the deadline of finishing this 'simple' game before the new year and even have a couple of other ideas lined up to start work on.

The last 3 months of 2016 I was on paternity leave and I was not ready for the social isolation that came with it. That and the very very short daylight on the arctic circle really did a number on me. After about a month I became quite lethargic and when I broke a piece of the tracing logic I just left it broken and didn't return to it.

I also think that I might have burned out a bit, since every single free evening went to this thing in 2016. I do not have much free time and after a full work day, cooking, cleaning up, putting kids to bed and then usually some laundry I would get 2 tired hours, which usually got spent rewriting something instead of creating content. Most nights at the end of last year were spent just browsing the web with Unity and VS open.

Don't get me wrong I enjoyed working on this, but as the lethargy set in I also started to wonder if this was even a viable game concept.

As any programmer knows losing yourself in coding is impossible when you have a strict time box of 1 - 2 hours to work. When the baby was napping there was never a guarantee of getting even 40 minutes of work Smiley

I am now doing much better. I allow myself to just watch dumb tv and play great games now and am ready to start this again. I still plan to finish this. It might get scaled down a bit since I have been dreaming up other projects which demand attention.


P.s. I originally wrote this piece is January and intended to post it soon after on the 1 year anniversary of the project. I however have been super busy moving houses and changing my job so I can add those excuses too.

Since writing this originally Dropbox policies changed and broke all my image links which is a bummer. Does anyone know of a good alternative? I have unlimited storage on Amazon Drive (but I don't see the option of image hosting, just storage) and might look into using S3 but it seems overkill for this, but I guess I could use it for other things down the line.

P.p.s. Who knew admitting to a mental issue would be so damn hard! Tongue
Logged

Mannapi
Level 0
***


.


View Profile
« Reply #48 on: September 19, 2017, 02:53:10 PM »

I made a mobile version of the puzzle editor, and have made some levels using it.

I even made one on the bus today!



It is only intended for me ATM so there has been no beauty pass and it needs a UX overhaul. I think I have the screen real estate to add more buttons to make tool and color selection simpler. The top buttons are resizing and the diskette is for saving and loading.

Also this uses an outdated color palette, and I didn't really notice until after recording the (incredibly low fps) gif above.

Progress!

PS. I now use Imgur for images.
Logged

bittwyst
Level 1
*


Twitter: @bittwyst


View Profile WWW
« Reply #49 on: September 19, 2017, 11:33:46 PM »

Awesome  Kiss
Logged

Pages: 1 2 [3]
Print
Jump to:  

Theme orange-lt created by panic