Sunday, 30 December 2012

Final Blog of 2012

My Final Blog

That's it guys and gals, my final blog (for 2012 that is) and scheduled to return after the new years annual 'drink myself into oblivion' party in Wigan. I have spend the day attempting to clear my Christmas email backlog and sort out my explosion (affectionately called my office) ready for 2013.


What 2013 Brings

My schedule for 2013 has been deliberatively cleared for what will be a nice BIG project; FPS Creator Reloaded. I will be developing it solo for the next eight months, with perhaps some help from FPSC friends along the way. My ambitions are high for this one, and will be locking myself away in the deepest part of the dungeon to do my coding. My only contact with the outside world will be this blog (and the other thousand social feeds of course), but here is where I will write down my thoughts.

I will also be keeping a toe in the AGK/Freedom-Engine camp to ensure it goes in the direction I think it should go. This project will be headed by our resident genius Paul, who is more than capable of handling the various aspects of this awesome and gigantic engine.

Apart from a few small AGK app projects and the occasional competition, these are my babies for 2013.  My aim is to have a product that will shock the FPSC world (in a good way) and see that TGC emerges with a super-solid-super-powerful AGK/FE technology for Christmas 2013.


FPS Creator Reloaded Blog

This blog will be the home of my 'almost' year long development diary for Reloaded, much like the diaries I maintained ten years ago before before the word 'blog' even existed :)  

Along the way I will inject some non-FPSCR content to keep things fresh, and open the door to the kinds of interesting things that can distract me in a typical year.


Happy New Year

If I survive all the beer, I will see you all in 2013!




Thursday, 8 November 2012

RELOADED - Kickstarter Funding In Doubt

We recently started a Kickstarter project called FPS Creator Reloaded to bring our successful FPSC product up to date, but it looks like the battle with Kickstarter votes is being lost. As I write this, we have 208 pledges from some great wonderful visionary people, £12K in the fund with £48K to go. The trouble is that we only have 22 days left to do this, and the percentages say we are 26% of the way through the Kickstarter and only 20% funding so far. You run the chart through the next 22 days and take into account the Day One pledges, the maths say we will fall short by quite an amount.

Perhaps had we run this a year or two ago we would have been drowning in funding, but that is sometimes the way of things.  I recall a very useful guide called the Official FPS Creator Community manual which had so many pearls of wisdom in it the thing was practically a treasure chest, and I recall laughing at the comic strips that where injected at certain points in the tome:


It really showed the spirit of the FPSC community, that despite the fact the engine would break and stutter, and completely ruin their game, they could laugh about it and carry on regardless.

I always wanted to return to FPSC and finish the job I started all those years ago with the things I have learned since. Sometimes, the smallest change can make the biggest difference.

When Kickstarter came to the UK earlier this year, the opportunity presented itself to fire up this belated project in the form of FPSC Reloaded, a massive full-time development to take every little (and major) niggle that had blighted FPSC fans for years and do something about it.

I've been recently working on the V120 beta, a version that is being groomed for a UK DVD release in the UK, and I've found myself really enjoying the job of tracking down little issues that cause so many problems, fixing them and watching the engine hum along with it's new-found functionality.  I was so looking forward to making an amazing revamp of FPS Creator, but it seems that not enough of the world wants to see it.

I will not be deterred however, and from now and the 22 days that are left I will be trying every trick I know to get the word out about Kickstarter Reloaded. I have chatted with big online magazines, I have engaged an online marketer in the very darkest corner of the web, I've blogged, tweeted and posted, stopping short of it becoming out and out begging.

I am spending my own money to pay our key artist to start making art right now so we can show potential pledger's what they will be getting in the new product and finding every spare minute to research the internet to find ways to tell people about this. We have directly sold the original FPSC to a five digit audience, and now I just need to find out where they've all gone ;)

I am also hearing the alarming feedback that users are following the project and are excited to see it happen, but are not pledging. Instead they are waiting to see what the fund does before acting. They think the money will leave their account right away and not come back. The idea of a Kickstarter is you pledge an amount in principal. Only when enough people have 'theoretically' pledged over the funding required does the money get transferred. That is, only when the project is a go ahead will the pledger's actually need to spend any money, and of course by that time it's like the worlds longest pre-order.  A pre-order with some amazing benefits of course!

I may be proved wrong, and on the 11th hour a flood of pledger's will come in and save the day, and I will be the happiest little boy on the planet on that day, but I am mostly a cynic and realist, and spreadsheets and graphs are alarmingly accurate things.

If you are reading this far, and have gained a modicum of sympathy for my plight, you might want to check out the Kickstarter Reloaded page in question, and indeed pass this link on to anyone you think would want to make their own kick-ass gorgeous looking, highly engaging FPS game this time next year. One of the pledge gifts is a full version of the current FPS Creator product so they could get creating in less than a month in fact.

Here is the Kickstarter Reloaded link:

http://www.kickstarter.com/projects/tgc/fps-creator-reloaded

I continue to hope, and I check in the Kickstarter page every day to see what it is doing. The last two days have been particularly slow as three days ago the percentages where dead even, meaning we had a small chance it would continue at that pace, but it did not.

Anyhow, I will continue my PR quest to get Reloaded in front of millions, and if anything dramatic happens I will blog my happiness on these pages.  Now back to bug fixing and that wonderful world we call software development.

Saturday, 3 November 2012

Video and 3D In AGK V108 BETA3

Just a quick video to see what we are getting up to these days with AGK and Freedom-Engine:


We also started a Kickstarter a few days ago, so if you want to pledge something to make this project real, check out the link:





Friday, 26 October 2012

Light Mapping in HTML5

It took best part of two weeks but we now have light mapping in Freedom-Engine 3D and AGK, and can be seen running right now.


Simply visit https://freedom-engine.com/ide.php and select the 3D - FPS Example, press PLAY and then run around the 3D scene. There is no collision in the Freedom-Engine version at the moment, and we plan to add optimisation on the media and the file structure for faster loading and smaller media files.

We're still in BETA, and both commands and engine are still work in progress, but you should be able to use this version to import your own OBJ and texture files, and start creating some interesting 3D scenes.  One very cool aspect of this version is that you can create vertex and pixel shaders right in the editor. Simply click to create a new source code file and then rename it with .VS for vertex shader and .PS for pixel shader. These files will then be used as media files when you use something like LoadShader ( 1, "vertex.vs", "pixel.ps" ) to load the shaders in.

Here is the source code that created the example above:


rem
rem 3D Lightmapping
rem Artwork by Mark Blosser
rem

rem Init app
SetSyncRate(60,1)
SetClearColor(128,64,0)

rem Loading status
customimg=LoadImage("custom.png")
CreateText(1,"Loading Metro Theatre Scene")
SetTextFontImage(1,customimg)
SetTextAlignment(1,1)
SetTextPosition(1,50,45)
SetTextSize(1,10)
CreateText(2,"Artwork by Mark Blosser")
SetTextFontImage(2,customimg)
SetTextAlignment(2,1)
SetTextPosition(2,50,60)
SetTextSize(1,8)
Sync()

rem Load world
gosub _load_world

rem Setup camera
plrx#=1850 : plrz#=-3650 : plra#=0 : eyeheight#=553
SetCameraPosition(1,plrx#,eyeheight#,plrz#)
SetCameraRotationEuler(1,0,plra#,0)

rem Start loop
DeleteText(1) : DeleteText(2)

rem Main loop
do
 `
 rem Move camera
 if GetRawKeyState(38)=1 then MoveCameraLocalZ(1,4.0)
 if GetRawKeyState(40)=1 then MoveCameraLocalZ(1,-4.0)
 if GetRawKeyState(37)=1 then RotateCameraLocalY(1,-4.0)
 if GetRawKeyState(39)=1 then RotateCameraLocalY(1,4.0)
 `
 rem Framerate prompt
 fps=ScreenFPS() : Print(fps)
 `
 rem Update screen
 Sync()
 `
loop

_load_world:
 `
 rem Shaders
 shaderindex=1 : LoadShader(shaderindex,"vertex.vs","pixel.ps")
 `
 rem Load lightmaps
 dim lm[10]
 lm[0]=LoadImage("0.png")
 lm[1]=LoadImage("1.png")
 `
 rem Load all OBJ making up world (created in FPS Creator)
 objmax=50
 for obj=1 to objmax
  obj$="mesh"+str(obj)+".obj"
  LoadObject(obj,obj$,0)
  if obj>=1 and obj<=7
   tex$="mesh"+str(obj)+"-1.jpg"
  else
   tex$="mesh"+str(obj)+"-0.jpg"
  endif
  texname$=left(tex$,len(tex$)-4)
  lm$=right(texname$,1)
  if lm$="-" then lm$="0"
  SetObjectImage(obj,LoadImage(tex$),0)
  SetObjectImage(obj,lm[val(lm$)],1)
  SetObjectShader(obj,shaderindex)
  `
  rem Progress status
  perc#=obj : perc#=perc#/objmax : perc=perc#*100
  SetTextString(1,"Metro Theatre - "+str(perc)+"%") : Sync()

 next obj
 `
return


I'm pretty buzzed about this version as it allows decent looking scenes to be created and played in a native HTML5 browser, no plug-ins need apply! In the near future we plan to get everything else in such as point and directional lighting for the built-in shaders plus more control over how your models are loaded in and how they are formatted for advanced shader features.

The next few steps is to make sure you can deploy these new 3D apps flawlessly, so you can share what you have created while you work on the latest version.

Wednesday, 17 October 2012

HTML5 and WebGL

I won't be having a blog next Monday as I am not in the office, so I have decided to post now to report on a cool tool that just saved me a heap of work. It is called WebGL Inspector and is a Chromium Extension for HTML5 developers using WebGL.

The link is : https://chrome.google.com/webstore/detail/webgl-inspector/ogkcjmbhnfmlnielkjhedpcjomeaghda

Without this valuable way to step through every single event the WebGL performed during a single rendered frame, I would probably have never noticed the absence of two small state changes in the 150 state changes that represented by very simple 3D scene.

For those keeping up with Freedom-Engine progress (www.freedom-engine.com) this was the tool that helped me solve the 'missing 3D on a Mac' issue, as it turns out when the uniforms (like global constants) for the shader are collected, they are collected in a different order on the PC as they are on the Mac. In addition, it also highlighted a bug where I was only collecting the first of the shader uniforms meaning subsequent uniforms where being ignored. 

I often say that when you understand the question thoroughly, the answer presents itself.  Within every question lies the answer!

Monday, 15 October 2012

Transparent Computing

Work

I would like to share with you an article I wrote to highlight the strong link between Transparent Computing, HTML5 and the work we are doing at TGC with AGK and Freedom-Engine.  As a treat for reading the article, you will find a link half way down the page which runs one of my Freedom-Engine apps I deployed about a week ago.

http://software.intel.com/en-us/articles/transparent-computing-with-freedom-engine-html5-and-beyond

I did not need my own server, or pay broadband costs, or learn any fancy web languages either. I just knocked out a few simple lines of code, pressed the Deploy button in Freedom-Engine and I had an instant link I could share. It does not get any easier than this.


Play

This blog would not be complete without something a little more light-hearted and a little less tech:


This is me, Virginia and Alistair (author of the Hands On Series) balancing precariously on the edge of a hill riding the new Segway X2 machines. Here is a video clip of the start and end of my one hour on two wheels.

video


I must confess they are the most unlikely method of propulsion but having rode on one, you suddenly realise they are extremely smart, super fast and the X2 model is all-terrain too which is immense fun!


Progress

My work sheet for this week is pretty packed with plenty of Freedom-Engine in addition to some side project work too, so keep your eye on the blog tab at www.freedom-engine.com for more news on what's happening in the team.


Thursday, 11 October 2012

Freedom-Engine Round-Up

I can't believe it's been a whole month since we launched Freedom-Engine at IDF 2012 and I've only now been able to clear my plate of the back-log of everything I brought back with me and ideas we had on the plane out there and back again.


We had plenty of things to do in anticipation of the Freedom-Engine Beta launch and in doing so we neglected to post updates to what was happening on the AGK side.  Fortunately this has now been addressed and we are now at Beta 2 of the AGK V108 which introduces over 180 new commands and we're looking at adding a few more before we release the update officially.

Blogs Blogs Everywhere

I will also be blogging almost daily on the Freedom-Engine blog tab but will also include any relevant AGK news in there as the technologies are so intertwined it would not make sense to do otherwise. I currently have a few logistical issues to deal with about where I should be posting my feeds. I now have this blog, the Freedom-Engine forum and the FE blog tab, the AGK forum, new newsletter articles and my own twitter feed.  We also have Facebook and Linked-In feeds which thanks to TweetDeck automates that with my twitter posts. I will probably be looking for a one-size-fits-all system so I can post something once and have it propagate across all my social end points. Phew!

My plate is not too hectic at the moment with only one side project (built using AGK/Freedom-Engine) and the usual drill of answering mail and replying to posts. This means I have a huge chunk of time to do nothing but solidify AGK and Freedom-Engine in three main areas; browser stability, command set completion and platform deployment.

Freedom-Engine Priorities

We're getting good on the browser stability with compiler time slicing to help the slower Firefox JS virtual machine and engine optimisation to hog less resources by default. Deployment is being handled by other team members who are doing a grand job and the first of the platforms over and above HTML5 should be live any day now. The command set completion lands squarely on my shoulders and is the largest of the tasks ahead of me.

The present Freedom-Engine was fleshed out with V107 functionality, with only partial V108 commands integrated which means there is a way to go before we can say we are 100% V108.  The good news is that when we reach that stage, it will become fully compatible with the AGK product and allow the same project code to work on both solutions.

At some point, to show the technology is essentially identical, we will be renaming AGK to something like Freedom-Engine Desktop (or similar) and slowly bring the AGK forum over to the new site.  We feel this is important as the perception is that there are two products, when in fact they are two sides of the same coin.

Ground-Walker or Cloud-Dweller

Some developers will always want to code on the desktop and store their files locally, and other developers see the benefits of moving entirely to the cloud and making their home there. As a team we believe this shift to cloud based solutions has only just begun and in a few short years you will find so many benefits to working on the cloud that developing on a local device will seem extremely restrictive.

In order to stay relevant (and to edge our bets), we are offering solutions for both approaches and by keeping the language, technology and ethos the same, the transition from one to the other will be smooth and natural.

For a current peek at what we have added to Freedom-Engine in the last few months, check out the V108 beta page for more details:

http://forum.thegamecreators.com/?m=forum_view&t=200598&b=41

Voodoo Fun

I don't know where it came from but I had the urge to seek out and play an old computer game I used to play back on the VIC-20 called Voodoo Castle. At the time I remember getting really far but never finishing the game. Well I started playing at 11PM last night and was overjoyed to have completed the game by 1AM (admittedly cheating twice to google for clues). Whilst playing, it occurred that I also remembered a better game called The Count. This one was really tough as I recall, and I have promised myself the game as a treat for finishing some more commands next week.  Happy days!

Next Things On Lee's List

I am off to Scotland at the weekend to collect a consignment of tomes from my good friend Alistair Stewart and maybe to try my balance on a SegWay. If I can get a photo, I may post it here next time. I start my 'side project' on the following Monday which will test AGK V108 to it's core, and specifically the new video commands we've added recently. 

As part of and in addition to this work, I will be completing the command set in Freedom-Engine with an emphasis on the 3D commands. I know it's not everyone's cup of tea, and some would argue 3D in the native browser has yet to take hold but it's such an exciting technology that generates such innovation, I am eager to see what AGK and Freedom-Engine users can do with it.  There are other key command sets such as our file system (which will use the limited HTML5 LocalStorage system) and AGK Ultrabook Sensors which I can access from the Win32 side of the platform, and hopefully I can bring the features up in parallel until I have a complete V108 feature set for both AGK and Freedom-Engine users.

In the meantime I will tweet, blog, post and reply where I can, and hopefully keep you as informed as possible on what I and my team are getting up to between the weekends. Be safe and happy coding!

Lee Bamber
The Game Creators
www.freedom-engine.com

P.S. These blogs remind me of a time I used to write a developer log many moons ago. The trick I failed to learn was to make sure you code more than you blog ;)