Categories
English Startup

My 2020 in numbers

Happy 2021! May all your pharmacy stock pay off and may your hodling enhance your riches!

What a crazy year it was. Covid-19 forced everyone to work from home and online conferencing tools almost brought down the internet… and (spoilers ahead) introduced the mass market to online streaming quiz games.

Last year I started extensive timetracking on anything work related and this year I did the same. Slightly less hobby projects this year, as QuizWitz took a bit of a jump and caused some gear shifting on our side. So only 9 projects this year (excluding the 3 projects I worked on under ‘Work for hire’).

ProjectHoursRevenueHourly
Quizkalender0,00€ 73,24€ 73,24
Work for hire1.523,33€ 102.970,72€ 67,60
QuizWitz748,00€ 32.958,94€ 44,06
Dolumar4,00€ 22,56€ 5,64
Quizfabriek218,50€ 1.000,00€ 4,58
Photobooth53,00€ 0,00€ 0,00
Eukles18,50€ 0,00€ 0,00
Administratie15,50€ 0,00€ 0,00
CatLab Drinks4,50€ 0,00€ 0,00
Same as last year I’ve only counted revenue and excluded all cost except for personnel cost that was directly related to the event (so when I needed an extra pair of hands to work on a QuizWitz event, the cost of those hands are not included in this revenue list). Servers, transport, equipment and other external labour are ignored (= left included) and all amounts are excluding VAT.

I’ve logged a total of 2585,33 hours which amounts to an average of about 53,86 hours a week (at 48 weeks / year, so holidays excluded). A fair bit more than the 44 hours I logged last year.

An overview

Isn’t it great when a project generates revenue without having to work on it? That’s how a silly website as www.quizkalender.com managed to jump to the top of my project list at €73,24 (google ads) revenue for 0 hours of work. That is an infinitive amount of revenue per hour! If only I had spent slightly more time on it…

Secondly, same message as last year: don’t quit your dayjob just yet. Working for the man still pays the bills. When comparing the numbers to last year, I must admit that I’m a little annoyed with myself for trading a 15% price cut for the convenience of working close to home, especially at a time when working from home is the default. No rights to complain ofcourse, but bills were paid 15% faster last year 😉

Thirdly, the big one. QuizWitz. Suddenly teleconferencing became huge and people had to be entertained. I managed to quickly adapt the software to take the streaming delay of YouTube and Twitch into account without affecting the gameplay too much and together with de Quizfabriek we started replaying old live-quizzes on YouTube. A few additional changes soon followed and we fairly quickly gained a bit of an online following.

After testing on a small scale, QuizWitz grabbed the attention of a few bigger players and after some nerve-wracking meetings, tests and experiments we supported a whole series of quizzes at www.huiskamerquiz.be with hosts like (start <namedropping>) Belpop Bonanza (Jan Delvaux & DJ Bobby Ewing), Nerdland (Lieven Scheire & Bart Van Peer), Bahamontes, Sofie Engelen, Xander De Rycke. Not to mention a whole bunch of these livestreams were filmed on the old Studio Mussle location where Mosselen om half twee was recorded for a while. (end </namedropping>)

Meeting your heroes whilst stressing out over the stability of your software and servers: big check! (Having your servers crash on one of these events and working through the night to fix them by next evening: also check.) We’ve also worked with Sitting Bull and Roularta to organise livestream quizzes.

Meanwhile de Quizfabriek started doing their own teambuilding activities. It’s awesome to see that something you helped setting up suddenly kicks into gear and starts accelerating without you pushing it forward.

While the events were ofcourse a strong push for QuizWitz, another thing started happening in april: online sales of the regular platform jumped to heights we had never seen. As soon as the surge started I started concentrating on usability and compatibility of the game and the platform (at this point it was mostly tested on google Chrome only, as this was the platform used at the events). We also wrote a manual on how to use the software in various situations and this seemed to help the sales as well.

QuizWitz made €10.358,82 in work (support at events, excluding extra hands) and €23.600,12 in licenses (including €1.445,01 on Airconsole). Of those licenses, €16.727,17 was made through online sales and €6.872,95 was made through livestream license fees.

As I try to conduct business in an open and transparant fashion (and maybe also because I hope one day an investor will cold call me) I’ve started sharing the QuizWitz key metrics in a publicly available online dashboard. It takes a while to load so be patient.

So yes, QuizWitz took a fairly big part of the year again.

Fourthly Dolumar. Hardly did any work, hardly made any money. Not much to talk about. There’s still a few people playing it, and that games is now 13 years old. Yay me.

Fifthly, we’ve already talked about Quizfabriek in the QuizWitz section. The €1.000,00 revenue I took for licensing is already included in the QuizWitz calculations above (that’s why the total license income doesn’t match the column at the top). While I am taking a little distance from the non-profit organisation, I’m still putting in a quite a few hours 🙂

Technology

And finally, the fun (open source) projects. The CatLab Photobooth project was a rather silly attempt to combine the NFC scanners (that we use at de Quizfabriek for digital drink vouchers) with a remote controller DSLR camera to generate a photobooth that was aware of who it was taking a picture of.

We’ve used it for the Harry Potter quiz to make sure we had a picture of each individual quiz team. It then uploads these pictures to an Amazon S3 bucket and we then used those to generate a little memento of the quiz and mail it to the players. The photobooth project only took care of taking and uploading the pictures, the rest was done by Mathias (from de Quizfabriek) in Python.

I also spent some time on Eukles, a project that currently doesn’t do much more than gathering events from various websites, send emails and send Slack notifications. But hey, at least QuizWitz users now finally receive a receipt when making a purchase.

The CatLab Drinks project also need(ed/s) some fixes. We’ve used it extensively (and by third party bar people) on the Harry Potter quiz and it is … almost stable. We still have some trouble with people moving the card away from the scanner too soon … but it is mostly safe.

Oh, and Tine and I bought a house.

Next up

Honestly, I don’t know. I’ve started talking to a few people on how to keep the QuizWitz ball roling. I poured a lot of hours in the project again and every release it feels slightly more production ready. Getting the damn thing to the market keeps being the real problem and I’m realising it’s not one I can fix alone. The end of the covid crisis will likely result in a drop of the salesnumbers as well, so getting some kind of marketing ball rolling will likely be very important.

I should probably look into getting that Work for hire average back to 2019 level. Even though I’m quite happy with the projects I’m doing at the moment, knowing that there are more lucrative deals out there sometimes stings a bit.

And, as soon as these vaccines are finally rolled out globaly, go on a long holiday and enjoy life a little more. That should probably be a little higher on this list 🙂

Thanks for reading and take care! See you in 12 months.

Categories
English Startup

My 2019 in numbers

Happy 2020! May all your companies turn into unicorns and all your projects be bought by Facebook!

I have a tendency to blindly jump into new projects, lose interest along the way and then abandon them. It’s been a constant in my carreer, so in january 2019 I decided to do something about that. I started doing timetracking on my just-for-fun projects.

Turns out I worked on 16 projects this year, some of them as little as half an hour. I have also kept note of any income generated by the projects, and calculated an hourly income. Note that I’m ignoring any costs involved (servers, transport, equipment and external labour), and all amounts are VAT excluded.

ProjectHoursRevenueHourly
Work for hire1.013,76€ 77.897,38€ 76,84
QuizWitz388,75€ 8.547,76€ 21,99
Dolumar10,25€ 78,67€ 7,68
Quizfabriek336,00€ 925,00€ 2,75
Quizkalender33,00€ 13,78€ 0,42
CatLab Drinks167,00€ 0,00€ 0,00
Kitten Race55,00€ 0,00€ 0,00
Werewolves34,00€ 0,00€ 0,00
Escape game21,00€ 0,00€ 0,00
Research project13,00€ 0,00€ 0,00
Administratie11,00€ 0,00€ 0,00
Word game11,00€ 0,00€ 0,00
Eukles8,00€ 0,00€ 0,00
Dolumar TCG6,00€ 0,00€ 0,00
Trading game2,00€ 0,00€ 0,00
Wittegeit0,50€ 0,00€ 0,00

Since this is the first year I’m doing time tracking, I don’t have running totals of the projects. The bulk of QuizWitz development has happened over the past few years, and a quick estimation shows at least 5000 hours have been put in before (by various people). However, to not completely lose my mind, I have decided to only measure this years activity.

In total, I’ve logged 2110,26 working hours, which is about 44 hours a week (at 48 weeks / year, holidays excluded).

An overview

Don’t quit your dayjob just yet is probably the lesson to learn here. I deciced to turn down a lucrative project in May, in order to take some time off and take on projects a little closer to home. It took a cut out of the hourly rate, but at least I don’t have to drive for two hours every day. But even then, pet projects don’t even come close to working for the man.

Next up: the big one. QuizWitz has been my main project for the past few years, so I’m happy to see at least some revenue coming in. Quizfabriek, a little lower on the list, should actually be added to QuizWitz as well, as any income from Quizfabriek comes in the form of license fees for QuizWitz. That brings QuizWitz to €9472,76 in revenue, or €24,36 hourly. (I’m not counting the 336 hours worked as a volunteer, since none of the other volunteers get paid either.)

The bulk of the QuizWitz revenue comes from offering support at live events and renting out equipment (so basically me doing actual work) totalling €6544,50. That means QuizWitz generated €2928,26 in software sales (including Airconsole).

Related, but not exactly the same: Quizfabriek, our now 10-headed non profit that tries to revolutionise the traditional pub quiz. As stated above, all revenue that is listed here comes out of QuizWitz license fees. All hours put in should be considered ‘unpaid voluntary work’, but just for funsies I split them up anyway.

I’m not sure what happened, but for some reason Dolumar also generated some sales this year. Not enough to keep the server running, but since this game was my first proper try to build a strategy browser game, I can’t bring myself to shutting it down. And obviously thousands of hours have sunk into the Dolumar project, so the hourly revenue is way off. Thanks for the support though!

The last project that generated any revenue was Quizkalender. This project was built to give to provide some free advertising space for our Quizfabriek quizzes. It uses data from various sites to compile the most complete overview of the Flemish quiz scene. When we’re not advertising our own quizzes, we’re using the space to show paid ads, resulting in a tiny bit of extra beer money.

On to another big time-waster, but one that has had a significant impact on the way we organise our quizzes at Quizfabriek. CatLab Drinks is a very rudimentary web based cash register system with support for NFC topup cards. It can be integrated in the QuizWitz quiz software, which allows players to order drinks from the bar during the game. When the NFC topup system is used, players can topup their card and all payments are done behind the scene, so that bartenders don’t have to worry about anything. I’ve released the code under GPLv3.

That leaves us with the projects that have had no value whatsoever. Kitten race was an attempt on an educational ‘classroom game’, but ended up being a refactor of our ‘CatLab Remote’ engine. That same refactored engine was then used to create a party game implementation of the game Werewolves (also known as Maffia in some parts of the world). Both games are still sitting on a shelf and might be released on Airconsole or Steam at some point in the future.

With Escape Game I wanted to see if the CatLab Remote engine could be used for a mass escape game, where tens to hundreds of people would try to solve a mystery or avoid a disaster, but I didn’t get much further than a few sketches.

Finally there’s a bunch of projects where I only spent a few hours on; prototypes that I still want to explore at a later stage. I even have a rough draft of a Dolumar themed card game, but it hasn’t come to the playtesting stage yet.

Technology

Overall, I’ve had a fun year. Not always productive, but I’ve played around with fun ideas and tinkered with lots of things I hardly knew anything about.

I’ve used DMX and WebMidi to automate moving lights and led pars at our quizzes. I’ve used WebRTC to stream QuizWitz to raspberry pi’s connected to displays (to avoid having to use HDMI splitters and unhandly cables).

I’ve played with NTAG213 NFC tags and readers to implement a cashless topup system and used html offline features to make sure the system runs even when internet connection fails.

I’ve made my old libraries compatible with npm and typescript, to make the game development less painful.

Oh, and I’ve also bought a new car!

Next up

I don’t think 2020 will be much different from 2019. I’ll probably try to put in some more work-for-hire hours, as you can’t spend every summer sitting on your arse, but I don’t think I’ll stop starting silly projects and giving up on them. It’s just too much fun.

I should look into more ways to get QuizWitz into the hands of event planners and quiz organisers. Everyone who’s used the software is enthousiastic and our very first client still calls us for every quiz they organise. I feel like I’m leaving a lot of potential on the table. I’m just not very confident reaching out and doing sales. Improving my business skills is pretty high on my list of new year resolutions. Or finding a cofounder who can handle that part.

Finally, I should finish renovating my tiny little house. I haven’t really done any construction work in 2019, and renovating a house of this size shouldn’t take 5 years to finish. 🙂

Categories
English

5 months of QuizWitz on Airconsole

Airconsole is an awesome project by Swiss startup ‘N-Dream’. It offers a ‘game console in the cloud‘ where the games are played on a smart tv / laptop / … and the players use smartphones to as controllers. Most games are party games, so there is an obvious match with QuizWitz.

QuizWitz has been available on Airconsole since july, and since there is very little information on how games on Airconsole generally fare (and there are no NDAs that prevent me from sharing), I’ve decided to share the results of publishing QuizWitz on the Airconsole network.

Statistics: QuizWitz is the 23th most popular game on the network, yay! I should note that the ranking changes frequently and violently, QuizWitz has been jumping between 40 and 20 for the past few weeks.
Revenue since July 2019. Lets not quit that dayjob just yet.

Airconsole has recently raised $3 million in a series A funding round, so I’m pretty excited to see where the platform is going from here.

Categories
Uncategorized

Project digital drink vouchers – part 3

After a bit of a break, I turned back to the digital drink voucher project. Most of the functionality described in the earlier blogs have been implemented, and I have decided to release the whole thing under the GPLv3 license. I have also setup a rudimentary website at drinks.catlab.eu. Feel free to use our hosted instance, just don’t rely on it too much 🙂

I’ve also removed the vendor specific authentication mechanics from the open source project, so you can now just set it up with the traditional laravel authentication forms.

I’ve also started writing some documentation, but for now it’s limited to describing how I’ve designed the NFC topup cards. Please give it a read and let me know if there is any scenario that might still be causing problems (other than the ones I’ve already described in the file).

Next week we’re using the NFC cards ‘in the wild’ for the first time. An earlier test with 3 teams at the first quiz resulted in a few bugfixes, but now I’m confident that the system should work as expected.

Hopefully…

Categories
Uncategorized

Project digital drink vouchers – part 2

Raspberry pi

After driving for 20 minutes to buy a microsd card, I opened the raspberry pi box to discover that a microsd card was included in the box. Yay me.

I started out by installing Ubuntu Core on the Pi, since I thought it would be easy to create a snap from the nodejs application that would talk to the pcscd service. This proved a little more difficult, so after about half a day trying I ended up installing Ubuntu Server on the Pi. Installation of the required services and nodejs environment went without issue.

Talking to the NFC tags in nodejs was pretty easy; I used a nodejs package that already handles most of the conversation between pcscd daemon and the nodejs environment, and the repository included examples on how to passport protect NTAG213s, so that jumpstarted development.

The NTAG2x password protection only allows you to set a 4-byte password, so you can’t really call it a security measure. I decided I would use the 4-byte password to discourage users overwriting the tag, but the true authentication would lay in using an SHA-256 HMAC on the content I would write. The 32 byte signature already takes quite a big bite on the 144 byte total available memory, but given the offline requirements this seems like a fair tradeoff. The password also only enforces write protection, I decided to keep all data on the card readable; since I’m planning to open-source the whole project it doesn’t seem logical to disallow users to read their won tag.

In our current ‘CatLab Drinks’ application, an organisation can organise multiple events. Our own organisation is active in multiple locations, so it makes sense to have a separate pricelist for each location. Early on we have decided that credit bought at one event would be transferable to other events, so each nfc card is linked to the organisation, not the event. So I gave each organisation their own ‘nfc secret’ which is used to calculate both the NTAG213 password and the HMAC.

Since we’re planning to allow users to topup their credit with their cellphone, I decided to encode all data in the NDEF format. This way I was able to write one NDEF record with the user specific URL for topup, while the signed wallet data would be stored in a second NDEF record. There is a very, very small overhead, but giving users with an NFC-ready phone the ability to scan their card and topup straight from their phone, seems worth it.

Signed data

It took me some sleepless nights to figure out what to actually store on the NFC tags. ‘Current balance’ is an obvious one, but the requirement that not all POSs need to be online at all times makes the whole thing a little more difficult. In the end I decided to take a practical approach that – according to our sale statistics – would work out fine:

  • balance
  • transaction count
  • timestamp last transaction
  • 5x last transaction amount

All data is stored in 32bit signed integer. I briefly thought about storing the timestamp in 64bit, but it would be silly to think this format would survive another 19 years (and also I couldn’t figure out how to write 64 bit signed integer).

There are only 2 vital elements of this content: ‘balance’ and ‘transaction count’. Balance is obviously required, since otherwise it would be impossible to check if a user has enough credits to buy a drink. Transaction count, however, is also of vital importance. For starters it avoids people rewriting old data to the card. If they would do so, the POS would notice that the last seen transaction count is lower than the new transaction count, and can then dismiss the card.

(There is still a situation where an offline bar could not be in the possibility to transmit the new ‘transaction count’ to the other bars, and a user who decides to go to an online bar would be able to double-spend, but honestly this situation seems too uncommon to take into account. Also, when the offline bar would finally come online, it would upload all its transactions and the card would be charged into negative values.)

The 5 last transactions are not really required, they are just used for online POSs that don’t know about offline transactions. An online POS will always upload the card state to the server, and the last 5 transactions could then be used to fill in the gaps between the last known transaction and the current transactions. If the amount of transactions would exceed 5, a 6th ‘unreliable’ transaction would be constructed that holds the difference between the Nth and the 5th transaction.

Finally, the timestamp is not used at all. I’m not sure if it is usefull for salting purposes, but even if it’s not it might be a nice-to-have for the future.

Mirroring

I took some time checking the security requirements and I talking to some people about the format; it seems a reasonably secure system. So I got started and tried to write the data to the NFC cards.

One of my main concerns was writing to the tags. Writes can be interrupted at any time, and since the data I’m writing is rather long there isn’t any tear-protection available. I briefly thought about writing the balance data twice, so that there is always one record to recover from, but the space limitations of NTAG213 finally forced me to abandon the idea.

In the end I just went for storing the latest known (valid) data in the browser localstorage of the POS terminal, and throwing a big warning message whenever a write fails. This way, a user that presents their card and interrupts the write, will be asked to scan its card again. If a user would at this point walk away, he would end up with an invalid card. It will be up to my UX design to make sure that the bartenders handle this situation correctly and ask the user to scan their card again.

I also improved the NFC nodejs service to only write data that has changed since the last write, lowering the risk of tearing. Since the first NDEF message (with the topup url) will always stay the same, there is no reason to write that on every transaction.

Topup & spending

With the write-procedure implemented in a reasonably reliable way, it was now time to implement the POS side of things: allowing our own staff to topup cards and allow bartenders to sell beers… More about that in a next blog.

Categories
Uncategorized

Project digital drink vouchers

Since I am a huge fan of starting projects and never finishing/polishing them, I decided to give ‘nfc based digital drank vouchers’ a try. I am part of an organisation that regularly organises quizzes using our own QuizWitz software, and I am constantly trying to improve and optimize the way we organise our events.

At these events we sell drinks and snacks, and since I recently got interested in NFC I decided to see if I could introduce some cashless system that would replace our current foolproof ‘paper vouchers’ system. There are ofcourse loads of existing solutions on the market, but since we have absolutely no budget for that I decided to see if I could do something DIYish.

Last year I already implemented a simple webbased cashier system that allowed us to track what drinks were sold and also allowed players to order drinks straight from there table. We would then bring the drinks to their table and demand the required amount of ‘paper vouchers’. Some people would come straight to the bar and order drinks there, but both situations were handled by a very simple web based cashier system. And now I want to play with NFC cards, so … let’s get going.

The Goals

Our players have to register before they can join the quiz, so we already have the players grouped in teams of 4 (or less). My goal is to give each team a single NFC card that they can topup and use to buy drinks. At the same time, the ‘remote orders’ also still have to be possible, and I don’t want bartenders to walk around with NFC readers (since I only have 1 and it is not exactly portable). Additionally, since there is no budget, I try to keep hardware costs as low as possible and try to reuse parts I still have laying around.

  • Each competing team should receive 1 NFC card that can be used to topup and buy drinks.
  • Teams should be able to order drink through the existing app, so the team should be linked to the NFC card. Payment for a remote order is done at the time of the order, not at the time of drink delivery (so bartenders don’t have to walk around with nfc readers)
  • Players should be able to topup their credit online (through an online payment gateway). Players should also be able to topup in cash at the entrance.
  • The topup station must be connected to the internet.
  • It should be possible to have multiple POS (point of sales = bars) and, while the bars should try to maintain a connection to the internet, such connection should not be required.
  • The topup station at the entrance must always be connected to the internet.
  • We have an android tablet that we use at the bar, and we intend to keep using that.
  • I have a raspberry pi and 2 NFC card readers (ACR122U) that I intend to use. I also have 80-ish NTAG213 stickers that I want to use for this.
  • The user interface must run in the browser.

Having the requirements set, it is clear that the available credit must be stored on the NFC cards, which poses.

Babysteps

Since I have no experience with NFC I decided to start with trying to get that working. Since I don’t want to bother with trying to get android to play nice with the external NFC readers, I decided to connect the NFC reader to a raspberry pi 3 and install a socket.io server on the pi. All NFC communication will thus go over the network trough the rasperry pi. So I bought a microsd card and connected everything up… Wish me luck.

Categories
Reis

Mind the gap 1

Daar gaan we weer: met het halve gezin voor twaalf dagen op pad. Ierland, ditmaal, met een aantal tussenstops in Engeland. Geen idee waar we eigenlijk precies heen gaan. De laatste weken waren zodanig chaotisch dat ik de hele planning niet helemaal gevolgd heb. Elke dag een nieuw verrassing, dus. Maar dat is ook leuk.

Vandaag ging de reis naar Cambridge. Cambridge is een stad in Engeland. Cambridge heeft een universiteit. En Cambridge wordt al jarenland verkeerd geschreven. Het is namelijk Camebridge. Of zo wordt het althans door de plaatselijke bevolking geschreven.

Camebridge – ik probeer de juiste schrijfwijze te verspreiden – ligt op ongeveer een uur treinen van Londen. Londen is de hoofdstad van Engeland en is bereikbaar vanuit Brussel, per trein, via de kanaaltunnel. Op minder dan twee uur sta je vanuit Brussel in Londen. De wonderen van de technologie, meneer.

Je kan echter ook per boot gaan. Dan ben je een beetje langer onderweg. Als je, ter illustratie, om kwart voor negen (in de ochtend) in Merelbeke om een trein stapt, dan ben je rond middernacht (niet meer in de ochtend) in Camebridge.

Op de zeven uur durende boottocht (van Hoek van Holland tot Harwich – geschreven als sandwich maar dan met een H) heb je echter de mogelijkheid om: naar buiten te kijken, tergend traag satelliet internet te testen, te roken in een acht beaufort westendwind, een hamburger met extra bacon te eten, boonanaza te spelen, tot tweemaal toe te plassen, nog maar naar buiten te wachten tot alle camions van de boot zijn gereden omdat “de voetgangsbrug kapot is en je daarom via het ruim naar buiten moet”.

Oh, en je kan er ook naar de cinema gaan. Als je betaalt, tenminste. Dan kan je er helemaal alleen naar “The Theory of Everything” kijken en hopen dat je zelf nooit vast komt te zitten in je eigen lichaam.

Van Harwich naar Ipswich met de trein en van Ipswich naar Cambridge. Dat is, als ze een trein vinden om je mee te vervoeren. Ipswich leek niet zijn beste dag te hebben vandaag want, hoewel de geautomatiseerde stem het steeds over een trein had die binnenkort zou komen, bleef een omroepster van vlees en bloed ons mededelen dat ze eigenlijk nog steeds geen trein gevonden hadden.

En toen zo’n trein er uiteindelijk kwam, moesten de deuren niet enkel met de hand open gedaan worden; er zat niet eens een klink aan de binnenkant waardoor de uitstappende reizigers hun arm door een raampje moesten steken om de deur te kunnen openen. Gelukkig hingen er aan elke daeddeur instructies over hoe dat precies in z’n werk ging.

Om middernacht (elf uur plaatselijke tijd) dan toch Camebridge binnen gereden. Ingescheckt in de jeugdherberg. De bar in de herberg net gesloten en geen pub in de buurt te bekennen. Dus maar meteen het bed in en schrijvend overdrijven over wat eens mens op zo’n treinreis zoal beleeft.

Categories
Startup

QuizTed: why so serious?

S2013.04.20 quiztedo it’s been almost two years since I thought it would be nice to develop a small quiz game. A game where questions would be shown on a big screen and where players would compete using their cellphones. A two week feat, I initially thought. Something simple. Socket.io, html5, some nice design slapped on top of it, and done.

Now we’re almost two years later and the project has grown from a quick proof of concept to a full fledged indie game. A project with budgets and market research and marketing and pr and distribution and apps and builds and steam and employees and partnerships and trademark issues and …

Oh, and a €40k subsidy from the Flemish government. Yay. A blessing, for sure. With this subsidy we raise the quality of the game to something that is actually worthy of some money (I hope). With it we can build the community framework that this game desperatly needs. And most of all, with this subsidy I can finally give this project all my attention.

titelschermt_V_2.0It’s already half a year ago that I’ve assembled my little QuizTed team. All 3 of them students. Ken, our marketing guy and manager-of-everything, Yannick our second code monkey and Katia, our design guru. A summer of developing, and afterwards we’d see what happens.

I had some money to spare and I really wanted to make this one work, so I just went for it. I had no idea if I’d make back the investment, and honestly I didn’t really care that much. I just wanted to make something awesome, something that I could play with friends. And these guys would help me make that possible for the price of a modest car. And it would be tax deductable…

Summer ended and the project had grown some more. We would implement a unique soundtrack, so I hired two student-composers, Michaël and Pieterpauwel who composed one for us. We would do voice over commentary, so I looked into voice artists. And the graphics would have to be amazing, so Jolanda drew something nice for us.

And suddenly I wasn’t developing a game anymore; I was managing a project.

Summer ended and the funds ran out, but the team stayed. The subsidy request was filed. Questions about full time positions were raised, but all I could say was: “I don’t know, it depends on the subsidy”. And even in this uncertainty, we kept working, and I’m unbelievably proud and thankful for everything we have achieved already.

And now the subsidy is granted. And I’m happy for that, really. I’m very happy.

uitwerking_characters_v2But now, when I lay awake at night, I’m not thinking about cool features anymore. I’m not thinking about game concepts or changes I could make to our open source libraries. I think about how I’m going to spend that money in a way that we can make this project work.

I’m thinking about how I can reward each team member for their unbelievable awesome efforts, without bringing the budget at risk. I’m wondering how the hell I’m going to resolve these trademark issues. I’m wondering if I should do most of the coding myself, or if I should spent a cut of the budget on a second developer. And are people really waiting for a cross platform quiz game?

We’ve started on this road and there really is no going back. This time it will work. This time we have a solid project. This time there is this bunch of really awesome people who want to see this game succeed as much as I do. So time to get smart, damnit, and go kick some ass.

But if this one fails… what then? I just hope I don’t have to write a post mortem soon…

Categories
Startup

Alle begin?

Dinsdag nacht, kwart voor één. Ik zit naar m’n code te staren zonder dat ik in het laatste half uur eigenlijk ook maar enige vooruitgang heb geboekt. Op de achtergrond Lindsey Stirling, geen kwalitatieve muziek, maar het neemt me terug naar tijden toen ik op een Parijs’ balkon sigaretten zat te roken en me zat af te vragen wat ik die avond in godsnaam zou doen.

Ze heeft wel een lekker lijf, die Lindsey…

Nog eventjes doordoen, de deadline is morgen, en met het geld dat ik met dit project binnen haal kan ik de jobstudenten ook in september aanhouden. Nog even persen, ook al heb ik al uren totaal geen zin meer. September, dat is de goal. Met september erbij kunnen we het sociale aspect van de quizgame ook afwerken, denk ik… hoop ik. Want na september wordt het moeilijk.

Ze doet me denken aan dat meisje dat me liet zitten omdat ik geen tijd meer voor haar had, die Lindsey. Een beetje hetzelfde haar, een beetje dezelfde teruggetrokken kin…

‘t Is nu dat het moet gebeuren, toch? Ik ben bijna dertig. Als het nu niet gebeurt, dan gebeurt het nooit meer. Dan moet ik me terugtrekken en achtendertig uur per week mijn kloten afdraaien voor een baas. Hoewel… is dat eigenlijk niet beter? Ik weet niet meer hoe lang het geleden is dat ik na achtendertig uur kon zeggen: zo, het is weekend.

Keuzes maken, heet dat, denk ik. De keuze voor een eenvoudiger leven. Niet dat wat ik nu doe geen voordelen heeft, en ik wil geenszins klagen over mijn bestaan. Het mag, gewoon, soms eventjes rustiger.

Ik glij langzaam van de slippery slope van de klagende zelfstandige.
En moeten zij er maar niet gewoon mee stoppen?

Misschien moet ik dat meisje nog maar eens bellen.

Categories
Uncategorized

Missie Noorderlicht, Act 2, Scene 4

Doek blijft dicht.
Jongeman speelt voor doek.
Dramatisch voorgedragen.

Voormiddag.
Een haiku door een jonge man.

Jongeman kucht / maakt keel vrij.

Regen verdringt sneeuw.
Racen over gladde weg.
Hotdog in buskot.

Licht dooft, applaus.
Even later, licht gaat terug aan.
Applaus ebt weg.

Namiddag.
Een haiku door een jonge man.

Jongeman maakt keel weer vrij.

Bus komt van Sortland,
Rijdt de boot op in Melbu,
Verder naar Solvaer.

Licht dooft. Gigantisch applaus.
Staande ovatie.
Even later, licht gaat terug aan.
Publiek gaat weer zitten.

Dank u.

Jongeman maakt keel nogmaals vrij.

Avond.
Een haiku door een jonge man.

Solvaer, koud en nat.
Pizza in warme oven.
Pintjes in pub.

Licht dooft. Applaus is oorverdovend.
Licht gaat terug aan, jongeman buigt diep.
Licht dooft terug. Applaus blijft. Publiek scandeert “bis”!
Licht gaat terug aan. Jongeman staat te grijnzen.

Dank u, dank u.
U bent te goed.
Ik kan u nog ééntje brengen.

Oorverdovend gegil vanuit het publiek.
Mensen beginnen te “shhhushen”.
Publiek bedaart.

Nacht.
Een haiku door een jonge man.

Publiek shhhhuust verder.
Publiek wordt helemaal stil.

Iemand in het publiek fluistert: “dit is mijn favoriete stuk!”

Sport op ‘t grote scherm.
Chelsea wint van Manchester (city)
Bier vloeit; buiten koud.

Jongeman buigt nogmaals diep.
Licht uit. Zaallicht aan.
Pauze.