How can i get started VR Video Development?(editing vr videos) - virtual-reality

I want to make simple app that edit my virtual reality videos.How can i get started? I have some programming knowledge (C#, C++,Unity) I am looking for basic editing operations.For example changing background of the video,cropping video.
i did some research on Google but I have lots of questions in my mind.
What languages should I use?What SDK should I use?How can i do that?

The easiest way to get into this is to make a FFmpeg wrapper. It might not be the fastest API and will require lots of hacks to get around, but there is a reason why it's embedded in so many video editing utilities: it works.
You can go via two routes, the API or using the executable and piping in/out of it (C#'s System.Diagnostics.Process with pipes will work well). If you know shell concepts well, I'd suggest starting with the second one.
Word of advice, standalone operations will be easy with FFmpeg, but combining many of them is hard and often requires multiple passes with temporary files.
Edit: oh and about VR, it doesn't matter at this level. It would if you were to be stitching the video or making (but not applying) overlays.

Related

MIT-Scratch adding/removing language features

I am seeking a way to allow my non-tech users to specify a workflow and execute it (if anyone is interested, I want them to specify and execute test cases). Visual programming seems a good way to go.
Can I modify the Scratch IDE to remove some categories (such as sound, motion, etc), and add some of my own? Ditto for individual keywords (obviously, I then need to handle new keywords).
I have Googled, but the answer is not immediately apparent.
[Update] I have just found Google's Blockly
Blockly was influenced by App Inventor, which in turn was influenced
by Scratch, which in turn was influenced by StarLogo.
It looks very promising. Especially when it says
Exportable code. Users can extract their programs as JavaScript, Python, PHP, Dart or other language so that when they outgrow Blockly
they can keep learning.
Open source. Everything about Blockly is open: you can fork it, hack it, and use it in your own websites.
Extensible. Make Blockly fit with your application by adding custom blocks for your API and remove unneeded blocks and
functionality.
One possible snag is that it is browser based, but if my management don't like that, then I can create a dummy Windows based app consisting of little but a TWebBrowser component.
I will investigate and report back - unless someone else posts an acceptable answer first.
The short answer to your initial question is: no. You can't customize Scratch, or not to the extent that you seem to ask/want.
That said, look at:
custom blocks.
scratch extensions.
variants like snap
using scratch's source code in squeak to make your own variant.
other systems inspired from scratch, like appinventor and blockly.
Only the first two are compatible with the scratch web site.
A word on the site: depending on your purpose with Scratch, the exchange between users is a powerful part of scratch. Check how cooperation is supported, like the backpack. There's also a good wiki that documents much of the above.

Scripting with Lua in Libgdx

Recently I started to learn Lua.
I have been developing games in Libgdx for almost six months. I know how to work properly with this library but I still haven't found out which uses does Lua have for developing games. I mean, what can I do with Lua and Libgdx?
For those of you who are still wondering, I would like to get some examples, if I may.
Thanks!
You can use scripting languages such as lua for many things. For example, you can define the behavior of players, AI, common variables, and much of the logic in scripts. You can easily build a console into your game and edit scripts and pass commands via that console on runtime, rather than reloading the game. I personally use Lua to do event-handling (eg "if player is in pos XYZ, then do this and that and fire event T from nextEvent.lua").
I use the built in text file format included in the gdx-ai module to define the behaviors of the nations in my game, and I have created my own localisation format so as to support multiple languages and easily modify item descriptions.
I use XML to handle my GUI. In short you can do a great many things by scripting as well as using a data-oriented format.

From a 3D modeler to an iPhone app - what are best practices?

I am quite new in 3D programming on iPhone and I would like
to ask for hints about organizing a work between designers
and programmers on that platform. Most of all: what kind of
tools, libraries or plugins cooperate the best on both
sides.
Although I consider the question as looking for general
best-practices advice I would like to find a solution for
my current situation which I describe further, too.
I've already done some research and found following libraries:
SIO2
Khronos OpenGL ES 1.x SDK for PowerVR MBX
Unity3D
Oolong Game Engine
I've checked modellers or plugins to them giving output formats
readable by those tools:
obj2opengl Wavefront OBJ to plain header file converter
Blender with SIO2 exporter
iphonewavefrontloader
Cheetah3D
PVRGeoPOD for 3DS / Maya
Unfortunately I still have no clear vision how to combine
any of that tools to get a desinger's work in an application.
I look for a way of getting it in the most possible complete way:
models, lights, scenes, textures, maybe some simple animations
(but rather no game-like physics), but I still got nothing.
And here comes my situation: I would like to find right way to
present few (but quite complicated) models from a single scene.
The designers mostly use 3DS Max 9, sometimes 10 (which partly
prevents using PVRGeoPOD) and are rather reluctant to switch to
something else but if there's no other choice I suppose it would
be possible.
The basic rule I've already found in some places "use Wavefront
OBJ" not always works. I haven't got any acceptable results with
production files, actually. The only things worked fine were some
mere examples. Some of my models did imported incomplete, sometimes
exporters hung or generated enormous files not really useful on
an iPhone, sometimes enabling textures (with GL_TEXTURE_2D) just
crashed an app.
I know it might be a problem with too complicated models or my
mistakes coming from inexeperience but I am not able to find any
guidelines for that process to have streamlined cooperation with
designers.
I am even willing to write some things from scratch in pure
OpenGL-ES if it's necessary, but I would like to avoid what might
be avoided and get the most from the model files. The best would be
the effect I saw on some SIO2 tutorials: export, build & go. But
at that moment I've got only "import, wrong", "import, where are
textures?", "import, that almost looks fine, export, hang" and so
on...
Is it really so much frustrating or I am just missed something
obvious? Can anybody share his/her experience in that field and
tell what kind of software uses for "making things happen"?
Well I can't say I know the perfect way to do this but after some experimenting I did get something working doing the following:
created the model(s) in Blender, exported it to wavefront .obj format (TRIANGLE,normals,hq)
then used obj2opengl.pl script to convert the model to a header file(.h)
then added the header in the project and used it in GLGravity - which is a sample program from Apple and modified the drawView function
maybe that could be a starting point for you too, just to get something up and running?

How hard would it to create a media player (gui fronteend for mplayer), need guiddance for getting started

I am pretty dissatisfied with all the available media players, and I was also looking for a major project to really get into programming. so I am thinking of writing my own media player . Or to be more accurate a gui-frontend for mplayer (something similar to smplayer). How hard would this be.? I have plenty of time (months), and am willing to learn anything.
I practically don't have any knowledge of any windows/gui libraries . My programming experience : tried lots of different languages, wrote a couple of websites in php, lots of practice in java (although did nothing major) . Thats all
Can someone provide some guidance, about where to get started. what all to read. Which language should be used. is C#/.net a good language for this? since I am no expert in any language and have dabbled in plenty of different languages , I think I can pick up any language. Though My main concern is my lack of any practical knowledge . So guide me please.
Lastly my preference is windows (haha whatever), so thats what my target is and thats where I'll doing my coding.
To sum it up I want to create a guifrontend for mplayer that would work in windows.
Thanks
Edit: by mplayer I mean mplayer (the linux one) , and not WIndows media player.
One good place to start could be looking at how the code for gmplayer works - gmplayer is the graphic frontend for mplayer on Linux. It could be that all you really need to do is port the gmplayer code to Windows, then you get a fully integrated GUI instead of just a frontend.
Also, feature request: a nice friendly UI for putting video / audio effects on the output stream (it is so hard to use in the CLI version that most mplayer users probably don't even know it is in there).
I know what I'm going to recommend you is not what you're looking for, BUT:
I'd create a front-end for VLC, which uses Qt, a GUI framework which is extremely usable and easy to start with, in C++.
From my experience as an user, VLC is also more stable and has more features.
Start by copying a working implementation. As you mentioned, SMPlayer exists as a working example of what you want. I'd recommend starting by either hacking it to work better (the playlist really needs more intuitive controls, and multiple monitor support in Windows was nonexistent last time I tried it) or trying to duplicate it in your language of choice.
The benefits of hacking on an existing probject include: the existing codebase works, the margin of work required to make a noticeable change is much smaller, and the existing developers are able to help you come to speed with internals. Also, learning the project's language (C++) would be useful, though it may not be worth the effort if it's more interesting to copy its features in your favorite language.
C# is great for creating any desktop gui quickly. Best way to start with the gui design is to play a bit with the drag/drop components available in visual studio. For the functionality you can use this: http://msdn.microsoft.com/en-us/library/dd564585%28VS.85%29.aspx .

How to publish a game?

I don't just mean publish, but pretty much everything between when the pure coding is finished and the first version is released. For example, how do games make it so that their save files are hidden/unhackable, how do they include their resources within the game as opposed to having a resource file containing all of the sprites, etc., how do they make it so that there are special file extensions like .rect and .screen_mode, and so on and so forth.
So does anyone know any good books, articles, websites, etc. that explain the process between completing the pure code for a game and the release of it?
I don't think developers make much of an effort to ensure saves are hidden or unhackable. PC games usually just save out to a folder, one file per save, and any obfuscation is likely the result of using a binary file format (which requires some level of effort to reverse-engineer) or plaintext values that aren't very meaningful out of context, but not deliberate attempts to circumvent hacking. There are probably a ton of PC games that have shipped with very easily hackable text or XML save files, but I've never been a save hacker so I don't have any specific examples. On consoles the save files are going to a memory card or the console's hard drive, which makes them inherently inconvenient to access, but beyond that I don't think console developers make much of an effort to encrypt or otherwise obfuscate save data. That energy would more likely be directed towards securing the game against cheating if it's on online game or just making other systems work better.
Special file extensions come from just using your own extensions and/or defining your own file formats. You can use any extension for any file, so there are tons of "special" file formats that are just text files with a different extension, I've done this plenty of times myself. In other cases, if they have defined their own binary file format, that means they also have their own file parsers to process those files at runtime.
I don't know what platforms you have in mind, but for PC and console games, resources are not embedded in the executable. You will generally see a separate executable and then various archives and configuration files. Depending on the game, it may be a single resource pack, or perhaps a handful of packs for related resources like graphics, sound, level data, etc. As a general observation console games are more aggressively archived (to minimize file operations on slow optical media, and perhaps to overcome limitations of the native file systems on more primitive platforms). Some PC games have very loose assets, with even script files hanging out in the open.
If you develop for Windows or XBox 360, Microsoft might offer some help here. Check out their Game Development tools for Visual Studio C++ Express Edition.
If you are looking for books the Game Development Essentials series should answer your questions.
For circumventing saved file modifications, you can implement a simple encryption algorithm and use it to encrypt saved files, and then decrypt them when loading. File extensions are simply a matter of choice.
To use special file extensions in your game, just do the following:
Create some files in a format of your choice that have that extension, and then
write some code that knows how to read that format, and point it at those files.
File extensions are conventions, nothing more; there's nothing magic about them.
ETA: As for embedding resources, there are a few different ways to approach that problem. One common technique is to keep all your resources bundled together in a small number of files - maybe only one (Guild Wars takes that approach).
At the other extreme, you can leave your resources spread across many files in a directory tree, maybe in a custom format that requires special tools to modify, and maybe not. Civilization 4 does things this way, as do all the Turbine games I'm familiar with. This is a matter of taste, and not very important either way.
I think a better solution is two break your images in tiles of some known size and then join them back to back in some random order in a new file. This random order is only known to you and hence only you know how to jumble the tiles to get the original image back.
The approach would be to maintain a single dimensional array and maintains the position of tiles in it. Know use the crop functions of MIDP to extract each tile and render each tile back to the console.
If you need, I can post the code for you.
I would suggest to check the presentation from the developers of World of Goo (great game):
http://2dboy.com/public/eyawtkagibwata.pdf.