Monday, June 8, 2015

GLideN64 funding

Hello everybody,

As you know, GLideN64 development was funded by crowd funding Campaign on Indiegogo. I'm working on the project full time since September of 2014. The project's tasks scheduled on fourth months. The actual development took twice as much time. You may check the amount of work done in Git repository to make certain that it was necessary. We open Late Backer Access to rise more funds and we got noticeable income. However, all collected funds ended before I finished last planned task - Android port.

Cite from my previous post: "All tasks planned in Indiegogo campaign are fulfilled. Huge amount of works have been done within several months. Master branch in Git repository contains more than thousand commits. New open-source graphics plugin with unique set of features successfully works on desktop and mobile platforms. Of course, not everything is fine. Not all planned features implemented, not all games run flawlessly."

Now I stand before the question: what next? The project definitely needs further development. I may work on the project as on my hobby, as many other developers do. The project indeed started as my little private hobby, without any ambitious goals. I knew that with that amount of free time which I had, I would never bring it to public release state. There are many people, who understand that. These people supported the crowd funding Campaign to get the result in reasonable time. Only after several month of hard full time work the project reached the state of public release. Now the project is released with all sources and all my commits are pushed to Git. Any developer may continue my work. I also would like to continue to work on the project to fix remaining bugs and implement user-demanded features. However, the work needs time. Serious modification or discovering of deeply nested bugs requires lots of time. It is hard to find few hours to work on my hobby after full day spent at office working on serious tasks. It's life.

I've made another attempt to collect funds for further development and open new crowd funding Campaign on Indiegogo: GLideN64 FX. The idea is to port to GLideN64 post-processing effects from DolphinFX and probably other similar projects. This campaign met a lot of skepticism and currently reached only 50% of the goal. Many users said that they don't mind to help the project, but they don't like that post-processing idea and will not support it. These users prefer that I concentrate on bugs fixing and common usability issues. I understand and support this point of view. However, bugs fixing also needs time. In my case time is money.

GLideN64 FX already collected circa $1000. Now I have alternatives:

  1. I may start to work on it in hope that the project will reach the goal withing remaining three weeks.
  2. I may switch to plan B: if campaign failed, all collected money will be spend on bug fixing. Currently it is two weeks of full time work. Than I find new job and stop active work on the project.
Zilmar suggested me to try the third alternative. Cite: "I wonder if you would do better with something like patreon (https://www.patreon.com/) instead of indiegogo where in indiegogo you have a target and an end goal, with patreon it is constant and not directly tied with an outcome. You might be able to give patreons the same access you have given to contributes of the current project, like access to beta version/forum, people who donate more maybe get a bigger say in what you do ".  I checked terms of use on www.patreon.com. It allows international projects and I may use it. So this is really sounds like a good idea. It would be kind of freelance job, with me as freelancer and emulation community as collective customer. This implies customer-implementer relationships. That is customer/patreon decides which tasks have higher priority. Become a patreon and decide what is more important for you: post-filters, particular bug fixed, particular game supported etc. Being a patreon means that you agree to spend some amount of money on the project monthly. It can be any sum. What is important, the total monthly income must cover my monthly expenses. It is circa $2000. Thus I need 100 patreons as $20 each or 200 patreons as $10, or 400 at $5 and so on.

To implement that idea I need:
  1. Register in payment system, which will transfer funds from www.patreon.com to me.
  2. Register my project on www.patreon.com
  3. Find necessary number of patreons.
Steps 1. and 2. will be useless if step 3. failed.  Zilmar posted this idea on GLideN64 forum and few forum members already supported the idea and agreed to be patreons. Of course, it is not enough. I don't know is it possible to attract necessary number of patreons. I want to inquire for it first. If you like the idea and agree to be project's patreon, please write me email to "gliden64 at gmail dot com" or to my regular email with the information: "I'm ready to pay X USD during Y months". If total sum will reach the goal within this month, I'll open the project on www.patreon.com and GLideN64 development will continue. If not, well, plan B.

Update: According to comments here and on the forum, everybody agreed that patreon is a good idea, However, only few people wrote me that they are ready to participate. Currently I can count on circa $100 per month.

Update 2: Two important thing happened today almost concurrently:

  • My application to payment system has been approved. Now I can open my project on Patreon.com
  • I've got invitation from a large software company. I sent them my resume and I'll have an interview tomorrow.
I did not plan to search for job until situation with Patreon will be clear. However, the job found me first. I don't know details of the proposition, it will be discussed tomorrow. If we will come to agreement, further GLideN64 development will switch to plan B.

However, I'm still trying to save the project. I created GLideN64 project on Patreon:
It does not look good yet. It need better text, proper motivation video, patron rewards system and other stuff to attract potential patrons. However, it already works and can be used to collect funds. Now project destiny is in your hands. You probably have just few days to decide. Success of that project will allow me to prolong my current freelancer status. I've created short video with instruction what to do:

PS: The project already has one patron. Just need another 100-200.

PPS: I'm still working on the project. Besides updates on GitHub, I almost finished with important fixes in texture code. These fixes will be finished and uploaded. Hopefully soon.

Update 3: My Patreon project got 5 patrons since the start with total monthly income as $146, or 7% of the goal. My deep gratitude to these people.
The sum is obviously not enough to continue the work. If situation will not changed within days I'll close my Patreon project before end of this month to not charge patrons for nothing.

GLideN64-FX collected just 50% of the goal and hardly will reach the goal for remaining time.
Thus, current situation with project funding leave me no options but Plan B: full time work on bug fixing for two weeks to fulfill my obligations before people who supported GLideN64-FX campaign. Then I switch to "work on the project when I can" mode.

I already started to work on bug fixing. Some results:
Issue #158
Issue #158

issue #571

Issue #426

These fixes are result of several days full time work: digging manuals, experiments, debugging, testing. I hardly will have enough time for such fixes in future, so I'm trying to fix hardest problems while I can do it.

Update 4: The Patreon project now has 8 patrons and reached 10% of necessary sum. One week left to get another 90%.


  1. Hello Gonetz
    I would be interested to participate with your new idea but how much time would it take for you to fix most bugs in plugin?

    1. It's hard to estimate precisely. If consider emulation-only bugs (that is not related to particular hardware or OS, or performance), they can be divided on the following groups:
      1. Issues, solved in other hardware open source HLE plugins.
      2. Issues with LLE, solved in other hardware open source LLE plugins
      3. Issues, solved in other hardware close source HLE plugins.
      4. Issues, solved only in software LLE plugins

      Most of issues from the first group can be solved pretty fast, one-two issue per day. Not all though - some issues caused by contradictions between ways of graphics processing on N64 and OpenGL. Such contradictions are not easy to resolve. Issues from the second group - there are not so many of them and they also not hard to fix, but only within LLE approach. Issues from the third group are not guaranteed to be fixed. Issues, which currently solved only with software LLE plugin are the worst case. Each such problem needs investigations and experiments. Some peculiarities of original hardware either can't be reproduced even with modern shaders or emulation will work too slow.

      I haven't sorted the issues yet and don't know how many issues in each group. Thus, I can't give you good estimation. Definitely it will take more than one month. If you are interested to participate, please consider at least three months duration.

    2. Gonetz GlideN64 uses many inaccurate combiner blending hacks. Could you try to use GL ARB Texture Barrier and shader-based blending instead?
      Like this https://github.com/PCSX2/pcsx2/commit/3d35e4f8ecef17fed9fa765006b7d74b442baca5

    3. GlideN64 blending is minor issue in compare with other tasks. Yes, I have plans to rewrite this part using more advanced GL capabilities, but it is low priority task atm.

  2. What about fixing those hard to fix issues using Vulkan API?

  3. I feel Patreon would be the way to go and would help you tremendously.

    1. This comment has been removed by the author.

  4. I think a major issue is visibility - and communication. For example I can post this on reddit but the actual responses will probably *be* and *remain* on reddit, so you might get funders but actual questions discussions etc will remain there. This is speaking on average.

    The emulation scene however .. as you must've found out for yourself, are a very tough and, surprsingly, demanding - crowd.
    "I WANT THIS" "I WANT THAT" which is fine but then you get "BUT BYUU DOES THIS FOR FREE!!?" which is technically true but they dont consider that byuu spent over 10 years on his work or that he has an actual job separate from his emulation work.

    I think you need to explain many things as you would to a 5 year old e.g. "I'm currently jobless, I have children, I need to feed my family / myself, I would LOVE to work on this plugin but only if it can feed me, otherwise I can't help." This is common sense, I know. But if you keep it Black and white AND visible as much as possible it will be a constant reminder of WHERE this money is going and it will smash into those who just like arguing for the sake of it (i.e. the people who try to find the grey area in black and white).

    Speaking of places to tell people of, I know of a private tracker site that specializes only in Retro games, I think its the kind of place you can sign up and tell about GlideN64, I'll be doing the reddit rounds! As for your question, Patreon doesn't seem to allow me to send OR recieve from my country but I'm an exception , I think overall its a good idea, sorry for the long post :)

    (btw I'm using byuu as an example, replace with whoever is your favorite emu author with a stable income)

  5. Crap I forgot to put in the donation link - which do I give? do you have the patreon up an running?
    edit: I've put up the indie gogo one.

  6. Yeah I tried, and I'm sorry. Apparently I had more faith than I should have, everything I've said in my original post pretty much happened, here's a link http://redd.it/39g77q

    I put it up here so that perhaps you can correct anything I said incorrectly. But please be ready for a lot of generally negative comments. IF you think it might affect you, please dont bother reading it then.

    1. Thank you! You expressed the situation pretty much correct, I have nothing to add. You already said all necessary words like " "I'm currently jobless, I have children" etc. Your audience need to be adult to understand that. Plus I see again that common delusion that N64 emulation problems caused by HLE approach and better LLE will save us. I already wrote articles where I explained that for hardware rendering the source of issues is hardware rendering itself. ~95% of errors are common for HLE and LLE for plugins like GLideN64.

  7. on a dell laptop on intel hd 4400 with proper drivers installed, restoring a save state ends up with a black screen. I could play without savestates, but that seems like a major bug for the most part.

    1. the error also occurs when exiting fullscreen and changing resolution (ie. disconnecting from HDTV and continuing on laptop screen. The only way to continue from this point is create a savestate and switch to another plugin. ALSO, this is on Project64.

  8. I would throw a one time payment of $500 if you port it to the pandora and get better frame rate/emulation on goldeneye than the existing emu.

    1. Both tasks hardly can be done within one week.

      Pandora already somehow supported: https://github.com/gonetz/GLideN64/pull/569

      Smooth goldeneye emulation mostly depends on emulator. As I know, every graphic plugin has problems with that game. GLideN64 has no GE specific code. If general plugin performance will be increased, GE will also benefit from it.

  9. @tuyui Be a patreon for 4 months each 125$ or 250$ for 2 months & when he reach his monthly budget then he had "enough" time to tune something like that

  10. This comment has been removed by the author.