Pi/Tri belated update

Alas, I have not put any major work into the Pi/Tri engine and games for some time. My last big changes to the engine were in the end of 2014, and I did a little work on a game idea in June 2015. Soon after that I got a job, and I haven’t been much in a programming mood since. Some things have changed since I last posted, so I decided to talk about those.

Pi/Tri now uses GTK (The GNU Image Manipulation Program Toolkit) as its GUI framework instead of the Windows ‘Forms’ system. This primarily affects the design of the editor:

Pi/Tri Entity PropertiesThe Pi/Tri Editor now sports a more structured interface, with a fixed-width toolbox window on the left side and the main editing screen on the right. A montage of many of these toolboxes below:

Pi/Tri ToolboxesThe packager as well as resource editing screens are now integrated into the main screen instead of opening in new windows. One reason why this was done was to help with the way the OpenGL rendering is accomplished in widows like image resource editing.

Pi/Tri PackagerThe editor also now supports undo/redo. Anything that changes the contents of a map (add, move, delete, change a property) has an ‘edit action’ associated with that has enough information to put things back if undo is invoked.

Looks like everything else was ‘under the hood’ kind of stuff, just cleaning up code and fixing bugs.

I might post soon explaining my Pi/Tri arch-nemesis: occlusion sorting.

An unusual Pi/Tri update

Pi/Tri on LinuxWhat’s this? Pi/Tri on Linux? Cross platform functionality?

I use Ubuntu Linux as my primary OS at home, and it’s where I have my creative tools: Blender (for 3D modeling), Inkscape (for 2D vector images), and GIMP (for 2D bitmap images). Now joining them is MonoDevelop, allowing me to do my C# programming right along with everything else. No more switching to Windows 7 to run Visual Studio. In a few days I was able to port my rendering code from SlimDX/Direct3D to OpenTK/OpenGL. (The OpenTK library is the OpenGL equivalent of SlimDX for my purposes). Probably some new bugs and tweaks to work out, but so far the game and editor seem to be running all right. I’ll also need to eventually re-port the engine back to Windows, but no rush to do that at the moment…

I tried this porting operation some time ago without success. Luckily MonoDevelop and OpenTK matured a bit since then, and hopefully they will do the job well.

Very very belated Pi/Tri update

Yes, despite not reporting anything since… February? Wow, that’s pretty bad.

So anyway, some updates about the engine’s progress.

Image Offsets

Images now have an offset value. This allows the sprite designer to set image positioning with no need for programming.

The editor now uses standard window controls instead of a custom rendered GUI.

The editor now uses standard window controls instead of a custom rendered GUI.

GUI layouts can be designed like world maps, using mostly the same program.

GUI layouts can be designed like world maps, using mostly the same program.

Transit Departures and Transit Destinations are used to facilitate movement between world maps. Departures search all known maps for destinations for simple selection.

Transit Departures and Transit Destinations are used to facilitate movement between world maps. Departures search all known maps for destinations for simple selection.

The cinematic scripting has evolved into a more complex scripting language.

The cinematic scripting has evolved into a more complex scripting language. Supports conditional logic (if, else if, else, end if) and the ability to run scripts on the universe, dialog boxes, and entities.

Scripts can report errors in syntax or logic.

Scripts can report errors in syntax or logic.

Solid image resources, a combination of sprite and collision data, allow for the creation of basic map entities without the need to do extra programming.

Solid image resources, a combination of sprite and collision data, allow for the creation of basic map entities without the need to do extra programming.

World maps can be divided into zones. The camera and most entities stay within their current zone. Entities outside of the active zone either go dormant or get destroyed. The player can transition between zones by touching adjacent borders.

World maps can be divided into zones. The camera and most entities stay within their current zone. Entities outside of the active zone either go dormant or get destroyed. The player can transition between zones by touching adjacent borders.

PiTri lives again

After almost a year of neglect, work has resumed on the PiTri game/engine.

Some new sprites and some simple enemies.

Some new sprites and some simple stationary enemies that shoot lightning balls. Please excuse the temporary player sprite.

PiTri1402-B

Dialog boxes for info and conversations.

PiTri1402-C

Packager, now integrated into WorldBuilder, sports a new icon layout for displaying package contents.

PiTri1402-D

Grid Textures now can be created and edited directly in Packager.

PiTri1402-E

A big advance in sprite animation. Images automatically update according to which direction the sprite is facing. Sprite Animation Sets can be edited right in Packager.

Other significant updates:

A Cinematic system that can manipulate the camera, dialog boxes, and entities to create narrative scenes using a basic scripting syntax.
A major issue with the sound system has been fixed, so it’s now officially functional.
Got ramps to behave well.
Text Blocks can be used to easily make multi-line text. Though the dialog box picture above doesn’t show off this functionality, it is capable of being much wordier.
Some window tweaks, like allowing maximize and minimize and remembering window positions for WorldBuilder.

The New Pi/Tri

After almost a year without programming, I decided to change the type of game I’m going to be working on with the “Pi/Tri Engine”. It will now be a overhead view action-adventure.

Some major changes to the engine and game I’ve made in the last month:

  • Sprite occlusion testing: when two sprites overlap, this determines which should be drawn in front of the other. (Not as easy as you might initially think!)
  • Pseudo-3D capability using altitude and height properties
  • New camera with “slack zone” in middle of screen
  • 8-directional controls
  • Contextual actions based on what the player is facing
  • Game pad input
  • An input configuration screen
  • Pickups and treasure chests
  • Ability to transition between maps
  • Persistent state tracking (for example, an opened treasure chest will remain open after going to another map)
  • Basic status displays (currently for health and equipped items)
  • Start of inventory system with menu (shown below)

And of course, there was a bunch of other changes here and there with the engine to make it easier to work with, but are a bit too technical to mention here.

The packager, which combines multiple files into one, has been converted to a regular Windows application, so it doesn’t need to run the full engine.WorldBuilder, the level editor, has various improvements here and there.

At the moment I’m debating whether to convert portions of the editor’s interface into Windows components instead of in-engine GUI code.

One thing I’m not looking forward to doing: making the daunting amount of sprites for characters. I’ve inserted Raeja from Agwilika Rhe to stand in as the player’s character for now, but it’s only 8 standing frames, so no walking or fighting animations yet.

Pi/Tri Alpha 11.11

     Download it here

Requirements: .NET 2.0 framework, DirectX 9c, and SlimDX (Sept 2011).
The download includes SlimDX, a code library used to interface .NET with DirectX.

New in this version:
New missile launcher part
New graphics for the Ship Builder interface
Blaster turrets in demo map
Various alterations to the collision detection engine
Basic support for custom shapes (as opposed to square-shaped sprites)
Other technical changes that won’t be mentioned here

A PDF containing basic instructions is included in the download.

Pi/Tri Alpha 11.10

This is a demonstration of the Pi/Tri engine. The little game included also happens to be called “Pi/Tri” for now, as it was the original game concept that the engine was being built for.

Download it here

 

Requirements: .NET 2.0 framework, DirectX 9c, and SlimDX (June 2010).
The download includes SlimDX, a code library used to interface .NET with DirectX.

Default game controls
WASD – engines
Up/Down/Left/Right – use equipment (weapons, engine boosts, etc)
Space – break
Escape – pause menu
Default ship editor controls
Left mouse button – Select
Right mouse button – Deselect

More detailed instructions forthcoming.