Tagged "Pioneer"

Dummy renderer

A small tweak to the Pioneer build system has turned into building a dummy renderer for headless environments (for tools). Very strange to be writing Pioneer code after so many months!

Read more...

Wrap any Lua function with a sigc++ slot

I’m slightly concerned that I wrote this without really thinking about it. class LuaSlot { public: static inline sigc::slot<void> Wrap(lua_State *l) { lua_getfield(l, LUA_REGISTRYINDEX, "_slot"); if (lua_isnil(l, -1)) { lua_newtable(l); lua_pushvalue(l, -1); lua_setfield(l, LUA_REGISTRYINDEX, "_slot"); } lua_pushvalue(l, -2); int ref = luaL_ref(l, -2); lua_pop(l, 1); return sigc::bind(sigc::ptr_fun(&trampoline), l, ref); } private: static inline void trampoline(lua_State *l, int ref) { lua_getfield(l, LUA_REGISTRYINDEX, "_slot"); lua_rawgeti(l, -1, ref); luaL_unref(l, -2, ref); lua_remove(l, -2); lua_call(l, -1, 0); } };

Experimenting with easing functions

Experimenting with easing functions. Sometimes the plain old console is the best prototyping tool in the box :)

When good glyph atlases go bad

When good glyph atlases go bad.

Start of the new ship market

Here’s a work-in-progress of the new ship market screen for Pioneer. (Coding in the evening, bit of an oddity for me recently).

Read more...

Translation answers

We might be on to something here… “The purpose of this paper is to describe the solution we implemented to manage the translation cost of the localisation of a massively multiplayer online text based role playing game (MMORPG).

Read more...

Translation question

Here’s a question that I’m having trouble finding the answer too, probably because I don’t have the right terminology. I’m currently converting ’s language engine to use the Chrome messages.

Read more...

Code::Blocks for Pioneer

Today I’m preparing a Code::Blocks project for Pioneer. We’re about to start allowing C++11 stuff into the codebase, which means that Visual Studio 2008 and 2010 are now going to be pretty much unusable.

Read more...

Building Pioneer's UI: Part 1: History

Experiments with librocket, November 2011 The first UI written for Pioneer was already in place when I joined the project in early 2011.

Read more...

Multi-line text layout

The Pioneer UI has long had a problem laying out multi-line text. The problem is that each widget is required to report its ideal size, but that’s always seemed a difficult thing for an arbitrary body of text, which has many valid layouts.

Read more...

Start of the new bulletin board & chat form

Start of the new bulletin board & chat form. The new modal layers we added to the UI engine last week turned out to be perfect for this!

Read more...

The secret truth of cross-platform development

The secret truth of cross-platform development is that code is easy, but building is hard. My morning’s work: https://github.com/mxe/mxe/pull/247 https://github.com/pioneerspacesim/pioneer/pull/2444 https://code.

Read more...

Thrust

Finally got the thrusters looking the way I want from behind!

Building Pioneer's UI: Part 0: Introduction

Pioneer main menu, August 2013 In the evenings, after I get home from work, I work on a game.

Read more...

Randomly choosing complementary colours

Some techniques for randomly choosing colours that don’t clash. Ships in Pioneer have three colours: “primary”, “secondary” and “trim”. My stupid colour selection algorithm is to choose primary at random, but avoiding very dark and very bright because they tend to be pretty horrid.

Read more...

Its looking pretty nice!

Its looking pretty nice!

On jousting

My reply to a complaint/query about why “jousting” combat doesn’t really work in Pioneer, unlike Frontier. Jousting won’t work - its deliberately designed that way.

Read more...

Pioneer is looking real nice these days

Pioneer is looking real nice these days :)

hacking shenanigans, episode 17

hacking shenanigans, episode 17. The idea here is that we need to be able to refer to a property by name from Lua without dereferencing it, and pass that reference through to C++, which then can dereference it.

Read more...

Sunrise over New Hope

Sunrise over New Hope. Our new atmospheric scattering code in action, coming next week in alpha 30.

Cameras can be tricky little suckers...

Cameras can be tricky little suckers…

Space doesn't care that its Christmas

Space doesn’t care that its Christmas. Why should we? :)

It begins. Again.

It begins. Again.

A little toy for a tired evening...  

A little toy for a tired evening… At startup we’re just initialising stuff and loading models and other assets. Once in you’re in the game, we generate everything random numbers, beginning with the same seed.

Read more...

I just noticed that our new ship is engaged in fruit transport

I just noticed that our new ship is engaged in fruit transport!

Pretty sliders

Pretty sliders for Pioneer.

Bounce

One of the funnest parts of writing plugin and language glue interfaces is being able to quite often name things “trampoline”.

Read more...

Pioneer, Elite: Dangerous, and the questions nobody asked

So today Frontier Developments started a Kickstarter campaign for the next chapter in the Elite game series: Elite: Dangerous. I heard this from half a dozen people within the first hour of it appearing.

Read more...

You, c.3200

You, c.3200.

We've got some pretty crazy collaboration going on...

We’ve got some pretty crazy collaboration going on at the moment over at Pioneer.

People are getting excited about new UI toys

People are getting excited about their new UI toys :)

New info view is coming along nicely

New info view is coming along nicely. Do you have any interest in a 100% Lua jettison button? ;)

Starting to integrate the new UI

Starting to integrate the new UI into the rest of the game. Blue background and ship drawn by the new system, control panel by the old.

Read more...

main menu, alpha 9, 18 months ago

main menu, alpha 9, 18 months ago. Compare to my previous screenshot. We’ve come a long way!

New UI in pull request

The long-threatened new UI for reached pull request stage this evening. Still unfinished, but I think its a pretty solid foundation.

Read more...

I don't always get things completely wrong...

I don’t always get things completely wrong… … but when I do, its rarely this entertaining.

So you think you have nothing to offer

So you think you have nothing to offer your favourite open-source project because you don’t write code? Over at we encourage people to test the game and open bug reports, because we’re a small dev team with limited access to old or unusual hardware.

Read more...

More refactoring today

More refactoring today, this time in the starsystem generator. Refactoring really is a fine art, and one that I’m getting better at all the time, but am not great at yet.

Read more...

A little experiment I did tonight

A little experiment I did tonight after some discussions we had about combat and intercept mechanics. No idea yet if this will go anywhere but it was fun to make :)

Read more...

just got new gas giant rings and they look amazing

just got new gas giant rings and they look amazing. Compare the old and the new below! They’ll be in the next dev build, available in the next ~20 minutes from http://twitter.

Read more...

Finally got back into some UI work today

Finally got back into some UI work today. Here’s the start of support for multiple text sizes. Still fairly hacky and lots to be done, of course.

Read more...

A code generation bug

It took about six hours but I finally found the problem that is making Windows builds of unusable - its a code generation bug in GCC/MinGW 4.

Read more...

To determine if its doing a cross-compile...

To determine if its doing a cross-compile, autoconf compiles a trivial test program and tries to run it. If it fails to run, then we must be cross compiling.

Read more...

Responding to a sigc++ signal by firing another signal

Responding to a sigc++ signal by firing another signal. I did not expect this to work: m_popup->onOptionSelected.connect(sigc::mem_fun(onOptionSelected, &sigc::signal<void,const std::string &>::emit));

The simplest things...

The simplest things… Pioneer is getting a new UI. This is a test of the dropdown widget. Very simple at this stage.

Read more...

gui brainstorm

Nine months isn’t too long between posts, right? This is the contents of a brainstorming post on G+. Its some musings about the Pioneer GUI and where to take it.

Read more...

using stb_truetype with sdl

I’ve been learning a lot about fonts in the last week as I work on the foundations needed to turn this:

Read more...

ooh aah oolua

Like many games, Pioneer uses Lua for its content generation and dynamic world stuff. It doesn’t expose enough of its lucky charms to the world this way though (in my opinion), which is why I’m currently doing a major overhaul of everything Lua related.

Read more...

what jelly dreams are made of

Hmm, I don’t write here much anymore. As is the case for lots of people, my blogging has suffered in favour of spewing random crap into Twitter, Facebook and elsewhere.

Read more...