What I do when I’m programming.

Posted by | Posted in Game Development, Life, Lua, Pioneer | Posted on 02-02-2013

Today, as with the last 6 weekends in a fucking row I am ill, whoop, and being the weekend the doctors are off. It’s not an “emergency” so I can’t get seen until Monday, by which time I will be ok again and they won’t know what to do… fucking fabulous.

Instead of posting about that, or how you can’t buy a laptop with a decent resolution screen these days unless it’s made by Apple, I’ve decided to describe how I approach programming a feature in Pioneer. I happen to be working on a relatively bite size one at the moment so it’s fair game.

Read the rest of this entry »

Kick Me?

Posted by | Posted in Game Development, GLSLPlanet, Life, Lua, Pioneer, red ship | Posted on 11-01-2013

I wonder if you could use KickStarter a bit differently, to fund individual developers? I haven’t really contributed much to Pioneer this last couple of months since starting at Crytek, it’s just consumed all of my time.

I’d like too contribute a lot more, in fact I have a fecking long list which doesn’t even include all of the things that I’d like to do with it: https://github.com/fluffyfreak/pioneer/issues?state=open

This must be the same for some of the other Pioneer team too but our “real” jobs get in the way of the fun things we actually want to do.

So, how about KickStarter campaigns for individuals?
You list what you want to do, time estimated, and in priority order with whatever you think is a fair rate of pay for doing something you love.
Let say I did it, since I’ve just thought of it and don’t mind publicly discussing my finances :)

What if I could risk working for only 6 months next year (Hah! Again that is!). That would put my minimal funding for it at about £15k before tax to cover my mortgage and bills etc. Stretch goals would take you further through the list of things you hope to cover so I’d have:

  • GPU terrain,
  • orbitals,
  • water,
  • Faction Trade value differences.

For the first 6 months, and that would take £15k to get funding, if I got £15k then that’s what I’d deliver in that time before I bugger off and find more paying work, but stretch goals could also be:

  • 3D cockpits,
  • Threaded Job Scheduler,
  • Atmospheric Heating and re-entry effects,
  • Temporary decals showing shield hits,
  • Rewrite noise system to use graph/nodes.

They could take the rest of the year and require another £15k divided into £3k chunks for each stretch goal.

All of that is just an example list, I think I’d be doing a lot more than that in a year of solid development on Pioneer for a start! :D money is just a guess as well as I haven’t taken taxation into account or indeed how that would even work :/

What I’m wondering from you lot however is what people think of the idea itself? Getting people to pay for individual developers on Open Source projects isn’t a new thing, there’s lots of examples of companies paying developers fulltime, bounties are a common way of funding large features too so it’s not that odd an idea.

Any obvious problems or flaws in the idea?

Ah Lua, how do I loathe thee… I mean Love, yeah Love…

Posted by | Posted in Game Development, Lua, Pioneer | Posted on 25-11-2012

I’ve never understood the love given to scripting languages embedded in a game engine.

I’m going to take Lua in Pioneer, or in anything else for that matter but it’s Pioneers that sparked this off. You have a system written in C++, you expose it to Lua with C++ side functions that get presented to Lua scripts, you then program in Lua.

You are still programming, it’s just another programming language. Lua is not King, neither is C++, they’re both just programming languages.

Now, inevitably, the next step occurs: Everything has to be done in Lua.

What was a convenience, or a way of rapid prototyping, or a way of scripting light data handling routines, or for displaying data in a GUI is now doing heavy lifting in the engine at about 1/35th to 1/50th the speed it was being done in the traditionally compiled code.

Of course by this time only experienced programmers can actually write or modify the scripts because to make Lua useful you’ve extended it with home grown libraries & since the purpose of Lua is usually to make designers and non-coders lives easier it has fundamentally failed in this regard by this stage.

Whole systems are exposed from C++ meaning that you’re maintaining code twice except that you’ve exposed the worst bits of C++ via the wooley type unsafe Lua where the most advanced editor has all the sophistication of “Notepad.exe”.

Lua is not king, Lua quickly becomes a ball ache most of the time because it grows out of it’s usefulness, rapidly doubles the amount of work required to maintain engines, and slaughters anywhere it’s used in a performance critical subsystem.

I say this as someone who has programmed using it at several companies and Loves Lua for scripting. I just don’t think it’s anything other than a helper and best if it’s regularly pruned to reduce what it’s used for.

Some things should be moved out of Lua in Pioneer entirely and into some form of structured data generated by a tool. All the LMR stuff is obvious, ship definitions, spacestation configuration info, and ANYTHING to do with vectors/matrices/quaternions.

Other stuff is perfect Lua fodder: missions, trade pricing, defining factions, the GUI and probably a few others.

It’s just so annoying writing something in one language, then everyone wanting it in Lua too. Fuck off. It’s written already. Why have it in yet another language? It’ll be doing the same thing! Only then it’ll be in a language that I can muddle by in compared to C/C++ which I’ve been doing for 18 years (33 now, 15 when I started). What bloody good will that do? Will it mean more people can use it? No. There’s already a load of people who can write in C++ on the project who don’t know/use Lua. If anything it will reduce the number of people who can use it to only those who know/use Lua!

Does anyone really think that something has been done in Lua that couldn’t have been done in the C++ side? No. It does mean however that there’s a shitlod of C++ code, then a shitload of C++ interface code, and then a shitload of Lua code to make the C++ do what would have taken at least one shitload less of interface code to just do directly in C++.

You know what? If you find yourself embedding Lua to make your life easier and to get away from C++ then Lua isn’t the answer.

C# is.