As you might or might not know to make Onikira: Demon Killer we use an engine called Duality and a few weeks ago we started to port it to android.
Starting out
As we started we made a list of things that we needed to look at
- Shaders
- GLSL
- All shaders need to be update to min #version 300
- Fixed function methods like ftransform need to be removed and replaced with manual multiplication of transformation matrices
- Shader in and out variables need to be defined for passing data from the app through the vertex shaders and into the fragment shaders
- Engine
- the engine should by default pass a bunch of predefined variables to each shader
- predefined variables should be defined for common things like modelViewProj
- the Shader class should try and pass all common variables to the contained shader at bind time
- the engine needs to have a central place where common variables live that can be written to by the draw device when variables change (BeginRendering most likely) and read from by the shader classes.
- GLSL
- Rendering
- cUrrently uses fixed function vertex attribute bindings in the Vertex* classes. These need to be updated to use generic vertex attributes.
- Windowing
- need to specify the min GL version when creating the GameWindow class (DualityLauncher)
These were a conversation starter.
First steps
OpenTK
The first thing we did was to try to get OpenTk running. Here the awesome Dean Ellis gave us a huge hand by talking to us and then pushing some code to the repo.
Duality uses a fork of OpenTK, so to port it we forked too here.
- add openTk.Android project
- add a sample project to know everything is working
- …
Farseer
Duality depends on Farseer so we also had to fork this project. The process so far has been super simple // more details
Duality
Explain changes to the branch here
Progress
…. add more day by day (I have something like this already)
12th May
Today we finally got a texture rendering and using OpenGL 4.4 via OpenTK. We also decided that all the repositories will have their master untouched (as it was from any original fork) and that all android related changes will go into the branch ‘android-port’
13th May
Today we are working on other default shaders rendering and input.
15th May
–
Summary
We are porting Duality runtime to Android, all the code is available on this user on the respective android-port branch of each repository. If you are interested in this and want to help or have questions, let us know.