Championship Tool for Classic Tetris® — crowdfunding campaign

Thread in 'Discussion' started by furious programming, 21 Feb 2020.

  1. banner.png

    After many months, work on the release of the first basic and stable version of CTCT is slowly coming to an end. However, this is only the first step on the way to creating a fully functional tool, worthy of the highest world championships.

    On this occasion, I opened a crowdfunding fundraiser, aimed at raising funds, without which further development of the program will not be possible. Full information about this project can be found on the campaign page, while in this thread I will briefly introduce, among others what is the CTCT program, where did it come from and why do I ask for funding for it.

    General information

    CTCT software is a unique, multi-functional tool that allows you to easily and conveniently handle the championship in classic Tetris, designed for organizers of this type of event. The program has a set of functions that makes it possible to conveniently manage data (players, qualifying results, tournament matches, etc.), and its operation is limited to clicking once in a while, which allows you to save a lot of time and focus on commenting on matches and other things.

    CTCT is a native window application designed for Windows in all versions from XP up to 10. In addition, it is a portable application — it does not require installation, so it can be run from a HDD or portable devices, without interfering with user data.

    Ultimately, the program will be completely free and available to anyone wanting to organize a championship in Tetris. Thanks to this, more countries will be able to organize national tournaments, thereby popularizing this e-sport and expanding the community centered around this game.

    Some screenshots:

    program-interface.png scene-panel.png player-dialog.png qualifying-results.png brackets-settings.png matches-list.png current-match.png program-settings.png requirements.png

    Reason for creation

    The program was created for the needs of the first Polish Classic Tetris Championships (CTWC Poland 2019), so that their organizer and operator — @Phor — would not have to manually collect and modify data and use several programs to build streams with live coverage. Two were enough — CTCT and OBS.

    Short story

    The CTCT program was used first at the CTWC Poland 2019 championships in Toruń (in which I took part) and at the CTGC 2019 tournament taking place in Völklingen in Germany. In both cases it proved to be great, despite its strongly unfinished character. Since then, I have improved and added a lot of things, thanks to which its functionality has now expanded significantly.

    Campaign Goal

    Despite the fact that CTCT has many functions (including several completely unique), it still lacks some of these key ones — image analysis coming directly from consoles and rendering stacks in high resolution, support for additional counters, including TRT and BRN, as well as statistics played games and charts.

    This cannot be done without access to equipment used in tournaments, i.e. complete stands (CRT TV, NES console with NTSC/PAL cartridge and accessories) and additional devices, such as a USB grabber. The funds collected in this campaign will be allocated, among others for the purchase of this type of equipment.

    Plans for the future

    As mentioned above, in the foreground is the functionality of image analysis from consoles and rendering stacks in HD, as well as adding support for additional counters, in the game itself non-existent. But this is not the end — there are a lot of ideas for its expansion. I also plan to:
    • creating an external editor to customize the backgrounds and appearance of dynamically rendered scene data (such as player names in brackets, lists of qualifying results, etc.),
    • implementing a dark theme for the control panel window and all dialog boxes,
    • construction of electronic counters based on Arduino, placed on televisions, so that during the match players do not have to look at the opponent's screen to determine whether they are leading or not (difference of points displayed in green or red)
    and many smaller features that further improve the use of the program.

    Support the project

    If you want to help me and/or develop CTCT, put something in the piggy bank. The specificity of this project does not really allow me to repay anything other than thanks. Everyone who finances the project, information about it will be added to the About tab in the program, as well as in the user manual in the form of a PDF document and on the future project page. If you don't want to or can't donate, pass the campaign address to your friends, on social media or wherever you are — such help will also be valuable.
    Last edited: 28 Aug 2020
    Archina likes this.
  2. Muf


    I'm surprised you didn't contact the CTEC organisers (i.e. Chriss, Sumez, or myself) about this as we have had software that does this for a couple of years now thanks to the great work done by Jago. He is currently working on an improved version that does not require pixel perfect RGB mods as the previous versions did, and I think you'll find our goals closely align, with the big difference that we are doing everything in our spare time and are not asking for any money.

    Perhaps we can combine our efforts, although I'm not sure how your crowdfunding campaign would fit into this.
    user401730 likes this.
  3. K


    Your program look promising. As muf stated, I'm currently working on the hardware/software tools that will allow us to display the whole qualifications game Livestream on the same screen for something like tetris99. I've finished the proof of concept of capturing/analysing a PAL NES game (raspberry PI+UVC) and sending each serialized frame data to a server app. I'm currently working on the main Unity3D drawing program.
    We also plan to automate the players log at each station through RFID so we don't need someone to manually write down every score and stats.
    Tomek and user401730 like this.
  4. Hi guys, thanks for replies. ;)

    I am focused on programming myself, while @Phor has been dealing with various people from the community for a long time, AFAIK including Chriss and Sumez. Mainly because he has far more contacts than I do.

    Don't worry, me too. However, the problem is that I do not have access to specific equipment, I cannot afford to spend a sufficient amount out of my own pocket to buy it, and I cannot devote so much time only in the name of a higher idea. So, as you can see, crowdfunding is the only solution to keep this project alive.

    The big difference between what we do is that ultimately CTCT will be free and everyone will be able to use it. I mainly mean national championships, not CTEC. It will not require specialized hardware, so the people can easily use it to organize any tournament, including the network one like CTM and CTP. NTSC and PAL.

    For now, the project is at an early stage, so it's difficult to say what its final functionality will be. Its future, however, depends heavily on this campaign, so time will tell whether it will be further developed or will just die. I think there is a sense in developing it, the more that CTWC Poland needs something for its own tournaments. ;)
    Last edited: 21 Feb 2020
  5. Very cool project. I hope that people from the community could contribute equipment either by loaning or selling at a fair price. As for development costs, I'm sure the money can help with motivation, but it definitely won't support you for long. What are your plans for that?

    Also about the project, it seems that at least 3 other groups are working on something similar, it would be nice if people could work together on this. We have such a small community but no one ever works together. So with that point, as the software will be distributed for free, will it also be open sourced and allow external contributors?
    user401730 and Muf like this.
  6. Yes, however, to be able to buy at a fair price, I have to have something.

    Of course. If I expected the right amount for development costs, I would have to add one 0 to the amount of the campaign. But this is not the point — I do not expect monthly payment for work on this project, but only little, one-time support for the implementation of missing functionalities.

    This campaign is nothing more than to immediately publish sources e.g. on GitHub, add a donate button at the top of the readme page and collect donations to keep work going. Something slightly different, but nothing extraordinary.

    And probably everyone uses a different technological stack, so it will be difficult to combine all these projects. After all, from what we agreed with @Phor, CTCT will not compete with existing projects, because it is intended to reach a different target group of people. So there should be no conflict of interest.

    If the accumulated amount will be satisfactory, surely I will publish the source code too — I think I even mentioned it somewhere. And if sources are available, contributions will be appreciated. After all, that's the nature of open source. ;)
    Last edited: 22 Feb 2020
  7. K


    So i didn't create a specific topic for this but today i managed to get the unity3D server app to run with 10 simulated clients (dummy clients sending data through localhost from a replay file)

    Note : so far, the client's logic isn't programmed to handle the non screen gameplay, that's why you see gibberish after game over..
  8. You should, because I would prefer this thread only to CTCT software and because the purpose of our programs is completely different. And besides, people will be happy to follow it, given that certainly many people are interested in technical and organizational matters.

    As for your solution, well, it looks like it was assumed, so a big plus for the current progress. But there is one problem — the more game fields on the screen, the more moving and flashing elements, which will be quite uncomfortable to watch. Added to this is the fact that each game field can contain a stack and pieces in a different color palette, which will look horrible, colorful as at a fair.

    Did you check this before you started writing the code? Have you prepared any conceptual drawings first, including edge cases (most colorful/empty/strange)?

    That is why in the CTCT program qualifications will be presented in a minimalist way, a maximum of 4 stations, similar to those from CTWC. I watched all the videos on the CTWC channel and while watching CTM matches, I noticed that there are already a lot of confusion at 4 game fields, it's not known what to look at and it's difficult to focus on one game field. With more game fields it will be even worse. I don't know about others, but watching many game fields on one screen is tiring. :(
  9. Returning to CTCT — I made some changes that make the program look better. I mainly mean a new set of flags (slightly shiny, well visible on white and black background), and now I'm working on adding headers and separators for the other listboxes (scenes, players, qualifying results and scores) so that the interface is uniform, the same in all windows.

    Soon, when I implement the above-mentioned things, I will publish a preview version of the program to download, so that everyone can check for themselves what CTCT looks and works. Screenshots are not enough — it is better to run the program and click it yourself.
  10. Muf


    Most qualifying games will be at the same level (18 ) unless the player reached transition in which case it's a good thing that the stack "pops out" compared to the rest of the games - it means the player is likely achieving a high score.

    People watching at home will want to know how their favourite player is doing and will focus on that stack - it's much preferable to the alternative where only 2 or 4 cherry picked games are visible, or even worse, only a qualifying score table.
  11. K


    i will refrain myself to comment your answer so, good luck with your solution.
  12. My solution is different because of the different target. And apart from what I wrote in the previous post, when it comes to stationary championships, unfortunately, but we do not have the opportunity to do something more, due to the total lack of any support, so there is no question of hardware allowing for more than displaying two (at most four) qualifying games on one screen.

    I wrote about your solution, giving my own insights — since you show off what you are working on. For me, watching one of ten games would be tiring, though I may be wrong — I will wait with the final assessment until you are done. A few months ago, when I was designing new backgrounds for CTCT, I was checking what something similar would look like (except for fewer workstations) and I was not satisfied with the final result.

    In any case, remember, I appreciate your work and keep my fingers crossed so that your software works as intended and that it is used on CTEC 2020. I hope that the qualifying round will look great thanks to your software, what I wish you.
    Last edited: 7 Mar 2020
  13. Update #1

    I have prepared a demonstration version of the program so that anyone interested can download the program and see for yourself how it looks and works.

    It is true that it is a fully functional version, but it is disabled in the data saving to configuration files (program settings and tournament state), and when switching scenes, hot keys are not broadcast on the system. So you can have fun at will, and if you delete data, just run the program again.

    What's new?

    I used a set of shiny flags, thanks to which all of them are clearly visible on both white and black background. Also, now all listboxes support headers and separators. This makes the content of these controls easier to read.

    Some screenshots:

    scenes.png players.png entries.png scores.png qualifying.png

    What's missing?

    The only thing to implement is to add comprehensive error handling during program startup, so that in the event of an error, the user receives a message with a detailed description of the problem. And that's it when it comes to the first version of the CTCT project.
    Last edited: 28 Aug 2020
  14. Hi, just chiming in here,

    CT CT looks great; but does it support things like online/multi-day tournaments like CTM?
    How does write access with collaborators? Since it's standalone i'm guessing you can't have multiple people updating things across the internet (though this is clearly designed for a local tournament)

    It's a great toolset, 3000 euro is actually a fair price considering how many hours you poured into it.

    Unfortunately, there are a billion competing solutions (HK people, trey's software etc) which they are already using.

    You hit the nail on the head

    @Jago / K / Muf
    I've done Nestris99 style things too. I made a thread where we can discuss it. I think you use exactly the same tech stack as me lmao.

    @furious programming
    So i downloaded it and gave it a shot;
    How do you hook up capture cards/etc to it? Does it do score-differentials / re-rendering to be sharper?

    I love that it automates pretty much everything
    Last edited: 18 Mar 2020
  15. I agree with XaeL. There are plenty of applications, which people for various reasons prefer to keep to themselves rather than let them free and help... :I

    I use CTCT since September 2019 and it's excellent for local tournaments. People were able to see the early version on the app, which was able to, for example, put players profiles **during** the stream itself, not after hours of afterwork. :)
    furious programming likes this.
  16. @XaeL — as I have mentioned many times, CTCT is in the phase of completing the first, basic and stable version with basic functionality. This means that the work was focused on creating a scene mechanism that works with OBS (or other such software), a player database, a convenient interface for handling brackets matches and designing nice backgrounds for scenes. In addition, I was tempted to add an animated banner and its configuration dialog. Everything is working great.

    Secondly, CTCT was created primarily for local stationary tournaments (mini-tournaments and national championships), so it looks as it looks. In addition, the program has very low hardware requirements and has been designed so that any local organizer can use it, even if it does not have a powerful PC.

    Now answer the questions.

    Not yet. The current version is intended mainly for stationary championships. Which does not change the fact that its construction allows you to update the results without interrupting the streaming of games. That is why it is built of two windows so that you can do whatever you want while streaming. The only limitation currently is that one person enters the results into the database.

    This is not a fair price, it's just an example amount that I had to determine when creating a campaign. Remember that this is not sales, but crowdfunding. ;)

    And how many of these solutions are published for all organizers around the world (for free)? This is a real problem, not the number of existing or developed solutions. I myself plan to publish the program for free to everyone (probably only if the campaign is successful and this is unfortunately not yet expected).

    If it is not possible to raise funds, the program will most likely remain at CTWC Poland's disposal (because it was originally created for this organization), the development of CTCT will be abandoned and the project itself will simply die.

    I have some pending projects to do (on which I am able to earn much more), so I have to decide what to spend my free time on. :(

    CTCT is currently used for convenient data management (control panel window) and to render the background in the backgrounds window, which is recorded by OBS and its graphics are combined with images from other sources, such as consoles and cameras. So now, most of the stream frame rendering process is done on the OBS side, which should be properly configured.

    In the future, I intend to implement more and more rendering processes in CTCT to make it more and more independent of external recording software (such as OBS). Finally the CTCT should handle rendering scene background, banner, re-render the stacks and counters, render charts, additional data and handle retro-style transitions. All in one.

    And this is the heart of CTCT — its most important functionality. It is to be possible to manage the whole championship only by one person. In addition, all data is available all the time, so if you have typos or other mistakes, you can easily modify them whenever you want.

    I will only add that I have plans for the network championships. I bet that I am able to develop such a form CTCT to the likes championship CTP/CTM could also be operated by one person, not only brackets matches, but also the full qualifying round. All automated, without watching twitch streams.

    All it takes is that CTCT will be a server and each player will use a small client who instead of streaming the game image will analyze it on the player's side and will send small data packets to CTCT. This will not only automate the collection of the qualifying results, but also will allow to render stacks in HD (and support additional counters such as TRT and BRN) also for online tournaments. And the same solution can be used in stationary tournaments.

    Of course, for stationary championships, I also plan to create electronic two-color counters placed on televisions and controlled by CTCT, so that players could also see the difference in points during the match and can adjust the tactics of the game without looking at the opponent's screen.

    As you can see, there are a million ideas, but I need funds to implement them. I won't be able to develop this software without them.
    Last edited: 18 Mar 2020
  17. Right, there's a few solutions for this already (K, myself, trey, etc have all implemented some). So if possible it'd be ideal to save your time and effort and steal one of those.
  18. It is impossible to combine our projects due to different technologies and access to different hardware. In addition, the purpose of each project is different, hence their diversity.

    I am working on a solution myself, which will only require PCs, so that everyone can use it without having to borrow or buy additional devices. In my opinion, this is an advantage over other projects — solid and functional, simple to use, free for everyone. For both consoles and emulators.

    A lot of work is waiting.
    Last edited: 19 Mar 2020
  19. Not sure what you mean by this. Game capture (from capture card) to json is already a solved problem on github by quite a few members. Same thing with text detection (converting from image "999999" to actual number) etc.
    You can literally run a little python app (or compile one yourself) that outputs to json. it then pipes over the network so all you have to do is write the server code. So you wouldn't even need to have the source code, and scanlation from raw image to field+gamestate+score info is done
  20. FYI: I am working on a project to put all overlay etc. stuff on the NES itself intended for smaller tournaments. You can see a small protoytpe at work here:

    Most of the "inner game" is done, some bugs remain and I need to rework the menu system and Metagame.

Share This Page