1
\$\begingroup\$

I would like to create a simple video game as an interactive art piece.

The game goes like this:

A video (with sound!) loops while there are two options on the screen (text labels); when the player chooses one of them, another video plays; once it is finished, there are two options once again with a default video looping (?) and so on and so on.

It is quite simple, however I have had a really hard time finding a way to make it.

Someone suggested Youtube, but I don't want the player to be distracted by anything else, to be able to skip, for the video to end and for the player to choose a suggested Beyonce music video etc.

Someone else suggested Blender but it seems the video uploaded does not have audio attached so it would be extremely time consuming to write the python script. Both audio and video channels would be treated separately and the video player would artificially redraw video frames through the renderer. Unity seeems to be a similar if not a more complex set-up.

They suggested that Director used to do this but it is no longer being sold or supported by Adobe. I have a Mac and was unable to find a version on the internet that allowed me to use it.

Does anyone know how I can realize this project? Ideally to just plug in the videos, add the options text labels, arrange the sequences of videos and options and the game would play.

I cannot code or write script so I am hoping that the solution is simple. Someone was going to help me to make it in Blender but it turns out it is too difficult there. I might put it up on Fiverr if I need script written, however as I have never used it before I am not sure how reliable it is and how easy it will be to communicate all the finer points, to send over the videos etc.

Then once it is made, what sort of software would be needed to play it? Ideally it would be web-based, but I understand this complicates matters even further. I am working on a Mac but might show it on a PC - is this impossible due to incompatibility? Would it be ok running it on a computer eight hours a day?

Would it be possible to make the game run so that the player has no autonomy over the computer used - so they would not be able to exit the game?

All and any help appreciated! Thank you

\$\endgroup\$
1
\$\begingroup\$

Getting a tool that does it

Sound like something doable in DVD menus, yet I am unaware of an editor that allows creating complex custom DVD menus.

You may consider building your game on a slides software; I mean something like LibreOffice Impress / Google Docs Presentations / Microsoft PowerPoint. There you can embed videos and have links that jump to a different slide.

Another option is to use Camtasia Studio, which is a video editor that has options to create video quizzes. On that note, you may try to find software dedicated to create quizzes that support video.

If you are looking for a software to do this task, try asking on softwarerecs.stackexchange.com.


Web based

Aside from that, I would say to build it with HTML5 + JavaScript. You can use the HTML5 video element for playback, and build a simple UI for the options via HTML + JavaScript.

Preventing the user to access, any video is another thing. It is not doable without server side code (the server would have to keep track of the progress of the players and only allow to download what they have access to).

You may obscure the URLs, perhaps by building the interface with flash (or similar), but still there are ways around it.


In all honesty, creating the game web based is easier than the options I present below, because of one simple reason: you do not have to worry about compatibility, which becomes problem of the browser.

I suggest to not being afraid of HTML. It is very easy to get started; all you need is a web browser and a text editor. In addition, do not worry about causing harm, the web browsers intend to prevent web pages to cause harm to your computer♪. The worst thing you may do is cause your web page to be unresponsive.

♪: ok, there is malware, but you are not going to do create any previously unseen malware by accident.


Developing a different portable solution

The next option would be to build it with Java or .NET, which both can run on PC (Windows) and PC (Mac) and PC (Linux) and potentially in other platforms given the proper virtual machine installed. That would be Mono in the case of .NET.

I would suggest to stick to the widgets in the standard library (I guess Swing for Java safe option, and it would be WinForms for .NET). The alternative is to find a portable library that can work in the target platforms; I do not advice this because it would make it harder to find a visual designer for the GUI. Speaking of which, get an IDE with a visual designer for the GUI, since you do not want to get into the details of how that works.

For playing the video, this is matter of opinions. Yet, the fact that you want a portable solution constraints your options. I lack experience on making portable video players, so cannot attest for the quality of the solutions available... Anyway, for what I can find, you can use vlcj for Java, and you could use Monogame for .NET (it implement XNA API which includes a VideoPlayer class).


I guess the next option would be to use C++, I'll refrain from making suggesting on this because I don't know enough to build a portable video player in C++ and I don't think this is what you want anyway.

\$\endgroup\$
1
\$\begingroup\$

I'm not sure you're going to find a solution that completely lacks some sort of configuration language or script. However, this is definitely something that could be done easily using HTML.

<html>
    <head>
        <style>
            body
            {
                margin:0;
                padding:0;
                width:100%;
                height:100%;
                background-color:black;
                position:relative;
                font-family:arial;
            }
            video
            {
                position:absolute;
                top:50%;
                transform:translateY(-50%);
            }
            a
            {
                position:fixed;
                top:50%;
                background-color:rgba(0,0,0,.5);
                color:white;
                font-size:24px;
                padding:20px;
                text-decoration:none;
            }
            a.left
            {
                left:0%;
            }
            a.right
            {
                right:0%;
            }

        </style>
    </head>
    <body>
        <video autoplay loop width="100%">
            <source src="http://techslides.com/demos/sample-videos/small.mp4" type="video/mp4">
        </video>
        <a class="left" href="left.html">Left Button</a>
        <a class="right" href="right.html">Right Button</a>
    </body>
</html>

This is a simple page made up of a <video> element and two <a> (link) elements overlayed on top of the video. The video is scaled to fill the width of the page automatically and centers it in the available vertical space (if any). The <video> element automatically plays the referenced video file when the page loads and loops it at the end of playback.

Clicking either button takes you to left.html or right.html, which in your case could be variations of this same page with a different video file playing.

The trickiest bit in getting this to work as you want is locking down the web-browser so that it does not allow the user to escape the site or use the interface, but most browsers have configuration settings to allow this behavior.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.