Menu

Vegastrike evolved / Dev Blog: Recent posts

Blue fonts in the bar

No comments :

Posted by Ezee 2015-07-01

Sounds events in gui rooms !

Plop !
Yes , it is a sound .
VSE now can produce sounds in his menu , and soon on every base's room !
Check it out :

Posted by Ezee 2015-06-30

New options panel in the game

It is something that i wanted , to be able to configure some options in the game .
I've started to implement the volume setup because some python functions already allow this . But a lot more can be done , using new wrapped c++ functions .
But that mean rebuild the .exe , and i prefer wait for the people to test it without
.exe changes , because of portability issues ( working executable under linux , windows and mac )... read more

Posted by Ezee 2015-06-30

RPG for vegastrike (part2)

previous

Now that i have avatars to select before to launch a new campaign , it's time to
code that new state in vegastrike .

Just looking in the python code that launches a campaign ,

~~~~

modified by mnemonikus for evolved edition

def StartNewGame(self,params):
Base.SetCurRoom(HOMEPAGEMENU.ID)
#below i'll code the avatars campaigns starts
#perhaps will have to rewrite VS.loadGame(VS.getNewGameSaveName())
#as VS.loadGame(VS.getNewAvatarCampaign())
DoStartNewGame(self,HOMEPAGEMENU.baseroom)... read more

Posted by Ezee 2015-06-28

RPG for vegastrike

I have started to design a rpg mode for the solo campaign .
This is a video preview of the character selection ( each character will have his own campain ):

The characters are temporary ones , found as free models over the Net .
The artists of the team will produce original models representative of existing factions.

Edit : I have now coded a python class ( MenuPage ) that make the creation of avatars very easy ,
i hope also for artists ! ( in their development tests).... read more

Posted by Ezee 2015-06-26

3d Characters rendered in bases

As it is already possible to display 3d meshes in the launchpad ( that is a Gui.room ),
i'm thinking on how to display a 3d character .

The 3d character could be displayed in a menu page , just after the user pressed the " start camapign " or " Multiplayer " buttons .
The character could be tuned by the user ( clothes , skin color , etc ... ), like every good RPG .

It's an aspect i want to reinforce in vegastrike EVOLVED .... read more

Posted by Ezee 2015-06-25

Upload of the s256-c2 vessel !

Now the " official " branch is https://svn.code.sf.net/p/vegastrikevo/svn/branch/VS_evolved_v1.0/

Just check out now , and enjoy the new vessel designed by DarkVixen and reworked for
VSevo by i .

the revision commit : https://sourceforge.net/p/vegastrikevo/svn/13703/

Posted by Ezee 2015-06-25

New menu , video preview !

Posted by Ezee 2015-06-24

Ingame " Animatics "

As i'm still unable to use video with vegastrike , i'm thinking at a new way to tell
stories : Use the camera of the engine !
eh eh

Duno if it is really possible , as the idea started after i discovered that in c++ :

~~~~
...

void Briefing::Render()
{
AnimatedTexture::UpdateAllFrame();

cam.SetPosition( cam.GetPosition(), Vector( 0, 0, 0 ), Vector( 0, 0, 0 ), Vector( 0, 0, 0 ) );
cam.UpdateGFX( GFXTRUE, GFXFALSE );
for (unsigned int i = 0; i < starships.size(); i++)
    starships[i]->Render( identity_matrix, interpolation_blend_factor );
GFXEnable( DEPTHTEST );
GFXEnable( DEPTHWRITE );
GFXBlendMode( ONE, ZERO );
GFXDisable( CULLFACE );
//
GFXClear( GFXTRUE );
Mesh::ProcessUndrawnMeshes();
_Universe->AccessCamera()->UpdateGFX( GFXTRUE, GFXFALSE );

}... read more

Posted by Ezee 2015-06-22

Animation ideas for 2D bases and menu system

I just have finished to implement a cool feature in python , now we have cool buttons
with 3 states in game .
You can checkout to see the result here : https://sourceforge.net/p/vegastrikevo/svn/13691/

Thatwas a long time since i hadn't " played " with the snake , and that was cool to
use python again .

So i have new ideas on how to use it in vegastrike , in a new way and with new wrapped
functions :... read more

Posted by Ezee 2015-06-22

Blender BFXM importer/exporter

Ooooh yeah !
^^

As it is a pain to detach GFXLIB ( the OpenGl based renderer of vegastrike ) from
the game ( to use it as scene editor for example ) , i have decided to focus at mesh level and let Blender being the editor .

It is possible already to work in Blender with .bfxm files , but the models must be first converted into .obj and .mtl files ( wavefront ) .

My idea is to tweak the actual .obj importer/exporter of Blender to load the .bfxm
directly .... read more

Posted by Ezee 2015-06-14

GFXLIB : The dll project !

previous

Well , the thing seemed to be easy , but Vegastrike is not like me ...
WHO CREATED THAT ?

void Camera::UpdateCameraSounds()

Someone that probably wrote that too :

initSceneManager();// me : it's an audio thing , don't you hear ?
initScenes();// same here

That make me crazy all that non-sense ...... read more

Posted by Ezee 2015-06-12

Old vegastrike framework inspection

Overview

Before turning vegastrike into a game engine ( with separated singletons for 3D Render ( we could then propose other render api , like ogre3d ...), Audio , physics , Network ) , i need to fully understand what's actually going on .

Let's go !

Vegastrike.exe starts ( Client Mode ...) in the main.cpp file , at :

int main( int argc, char *argv[] )... read more

Posted by Ezee 2015-06-12

Compilation of fails

As i'm trying this time to build a .dll , i have excluded from the project all files
with " _server" inside ...
Apparently , GFX was designed to be a dll under windows , but that was abandonned ?

~~~~~~

if defined (_WIN32) && !defined (CYGWIN)

ifdef GLDRV_EXPORTS

define GFXDRVAPI __declspec( dllexport )

else

define GFXDRVAPI __declspec( dllimport )

endif

else

define GFXDRVAPI

endif

~~~~~~... read more

Posted by Ezee 2015-06-11

GFX render system ( part2 )

previous

I could make the lib , and surprise ...

PROBLEM :

The lib size is ... 116 MO !!! Aaarrghhhh ..
SOmething wrong here as the GFX source folder is 1.51 mo only ...

And the vegastrike project failed to link because of :

~~~~~~

1>------ Build started: Project: Vegastrike, Configuration: Release Win32 ------
1>Linking...
1>GFXLIB.lib(cockpit.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance
1>GFXLIB.lib(mesh_server.obj) : error LNK2005: _winsys_exit already defined in winsys.obj
1>GFXLIB.lib(background.obj) : error LNK2005: "public: void __thiscall Background::Draw(void)" (?Draw@Background@@QAEXXZ) already defined in GFXLIB.lib(background_server.obj)
1>GFXLIB.lib(background.obj) : error LNK2005: "public: void __thiscall Background::BackgroundClone::FreeClone(void)" (?FreeClone@BackgroundClone@Background@@QAEXXZ) already defined in GFXLIB.lib(background_server.obj)
1>GFXLIB.lib(background.obj) : error LNK2005: "public: struct Background::BackgroundClone __thiscall Background::Cache(void)" (?Cache@Background@@QAE?AUBackgroundClone@1@XZ) already defined in GFXLIB.lib(background_server.obj)
1>GFXLIB.lib(background.obj) : error LNK2005: "public: void __thiscall Background::EnableBG(bool)" (?EnableBG@Background@@QAEX_N@Z) already defined in GFXLIB.lib(background_server.obj)
1>GFXLIB.lib(background.obj) : error LNK2005: "public: __thiscall Background::Background(char const *,int,float,class std::basic_string<char,struct std::char_traits\<char="">,class std::allocator\<char> > const &,struct GFXColor const &,bool)" (??0Background@@QAE@PBDHMABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUGFXColor@@_N@Z) already defined in GFXLIB.lib(background_server.obj)
1>GFXLIB.lib(mesh_fx.obj) : error LNK2005: "public: void __thiscall Mesh::EnableSpecialFX(void)" (?EnableSpecialFX@Mesh@@QAEXXZ) already defined in GFXLIB.lib(mesh_server.obj)
1>GFXLIB.lib(mesh_fx.obj) : error LNK2005: "public: void __thiscall Mesh::AddDamageFX(class Vector const &,class Vector const &,float,struct GFXColor const &)" (?AddDamageFX@Mesh@@QAEXABVVector@@0MABUGFXColor@@@Z) already defined in GFXLIB.lib(mesh_server.obj)
1>LINK : fatal error LNK1104: cannot open file 'boost_python-vc90-mt-1_45.lib'
1>Build log was saved at "file://D:\program\VEGASTRIKE\VEGA_EVO\branch\Windows\1.0\vega-vc9\Release\Vegastrike\BuildLog.htm"
1>Vegastrike - 9 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========... read more</char></char,struct>

Posted by Ezee 2015-06-11 Labels: GFX render system

GFX render system

========================================================================
STATIC LIBRARY : GFXLIB Project Overview by mnemonikus
========================================================================

This is my first attempt to create a stand alone renderer with the GFX files of vegastrike .
I just made a new project with vc9 , with all the content of GFX folder + some files that were needed .
GFX had the reputation to be a lib , but everything is so melted in VS that it was impossible for me
to fully understand how it works.

Now , GFX start to be a real good static lib , and perhaps also dynamic .
The advantages of that configuration is that it's easier to debug parts of a program than a whole .
If we want to improve the renderer , we just improve the GFX source and build it again .
vegastrike.exe could keep his version , and the renderer evolve separatly .
Or the inverse , evolve VS without touching to GFX .
I think also the compile time of vegastrike will be shorter , that is good for me . ^^... read more

Posted by Ezee 2015-06-11

How Python and C++ are working together ?

previous

Vegastrike's programming is very particular , because of the use of python to control
the c++ code .
To be able to render a video in Vegastrike with TheoraPlayer , we can't simply use
the TheoraPlayer manager , because the events or states in the game loop are handled
by python scripts .... read more

Posted by Ezee 2015-06-07

GUIVideoTexture

~~~~~~~~~~~~~~~~~~~~~~~~~~

"""----------------------------------------------------------------"""
""" """
""" GUIVideoTexture - a non-interactive video texture """
""" (no audio) """
""" """
"""----------------------------------------------------------------"""... read more

Posted by Ezee 2015-06-06

Python side of the VideoPlayback

Vegastrike use python scripts in a kind of framework to work with the 2D interface Menu
and other 2D Elements , accessible in a Gui.py file .
In that document , a dev commentary about "special rooms " , and in particular video rooms :

" ...
...
...

2.1. Special rooms

In the example above, we have two rooms, intro and preintro.

Preintro would be a short movie or animation clip to show when the
game launches (e.g: "Vega Strike" logo). Intro would be the story's
intro cutscene to display when starting a new campaign.... read more

Posted by Ezee 2015-06-06

video implementation of TheoraPlayer part6

previous

CreateTexture

I am following the demo_glut_player example from the theoraplayer sdk to understand the
logic of a frame rendering loop .
So in this example , we've got :

void init()
{
mgr=new TheoraVideoManager();
clip=mgr->createVideoClip("media/bunny" + resourceExtension, outputMode, 16);
// use this if you want to preload the file into ram and stream from there
// clip=mgr->createVideoClip(new TheoraMemoryFileDataSource("../media/short" + resourceExtension),TH_RGB);
clip->setAutoRestart(1);// looping mode
tex_id=createTexture(nextPow2(clip->getWidth()),nextPow2(clip->getHeight()), textureFormat);
}... read more

Posted by Ezee 2015-06-06

video implementation of TheoraPlayer part5

previous

First tests

So we have already a manager to load video files .
Let's try to load one in that function i created in the main.cpp of vegastrike :
/ intialize theoraPlayer here /
void initVideoManager()
{
videoManager= new TheoraVideoManager();
//now just for a test
clip=videoManager->createVideoClip("animations/intro.ogv" , outputMode, 16);... read more

Posted by Ezee 2015-06-06

video implementation of TheoraPlayer part4

previous
WHAT'S NEXT ?

Now that i can figure out how the video playback will work ( c++ side , because there is also a python part ...) and start to organize my project .
There are 2 sub folders into the orignal vega-vc9 project's GFX header folder :
* nav
* radar... read more

Posted by Ezee 2015-06-06

video implementation of TheoraPlayer part3

previous

Gl operations with vegastrike

This part is sent to the vegastrike's gfx library , when AnimatedTexture::LoadVideoSource( VSFileSystem::VSFile &f ) succeeded to load a video file :

Bind( 65535, GFXFALSE ); //line 469 ani_texture.cpp

Bind(...) will then call Transfer( maxdimension, detailtexture );... read more

Posted by Ezee 2015-06-06

video implementation of TheoraPlayer part2

previous

createVideoClip

Looking at the libtheoraplayer tutorial page , i've found :

Loading video
TheoraVideoClip clip=mgr->createVideoClip("path/to/video/file.ogg");
Note that on iOS and Mac if you use the AVFoundation backend, you can provide H.264 files with the ".mp4" extension.*... read more

Posted by Ezee 2015-06-06

Video implementation with libtheoraplayer

INTRODUCTION

I tried to fix the old ffmpeg video implementation in vegastrike , but i ended with
a conflict between vorbis lib that is used with the Audio engine and avcodec.lib that
was built with vorbis support .

I could fix that by making an other ffmpeg lib without vorbis linkage , but that would
mean a redirection of audio from video to Audio engine , and only for windows systems .
So the best tactic to still offer portability is to use libtheoraplayer :

" It runs equally good on Windows Mac Linux, iOS, Android etc. The library also supports native platform decoders where applicable for performance reasons, eg. H.264 on iOS and Mac. "... read more

Posted by Ezee 2015-06-05 Labels: libtheoraplayer video mpeg ogv