The Engine

3dPE is a collaborative project made by a bunch of nerds in their spare time. Updates can be sporadic.

We keep everything together using git - so handily, that lets us show non-coders how lazy we're being.

Interested in joining in? 3dPE is made with Python and OpenGL, along with Pygame and wxPython. If you know any of these, or you'd like to learn, come and talk to us!

Likewise, we're interested in anyone with knowledge of extracting ROM data from DS games, and of course, anyone interested in making a game with our unholy abomination copyright infringement baby.

Release Work bonzairob @ 14:37 on 17 Jun 20
Added support for Vertex Array Objects to Shader, and cleaned up the Shader class.
Release Work bonzairob @ 12:10 on 16 Jun 20
Fixed framebuffer export to image, and worked more on VAOs
Release Work bonzairob @ 13:30 on 09 Jun 20
Added idToXY() and xyToID() to Globals for convenience, and sped up diff() and wrap(). Sped up blitting significantly for RGBAStringImage and WX.Image, and added RGBAStringImage.subimage(). Sped up general Shader draw ops a little.
Release Work bonzairob @ 14:45 on 21 May 20
Having a go with vertex attribute objects, aborted
Release Work bonzairob @ 18:37 on 01 May 20
Fixed some bugs in Framebuffer and Audio on windows, along with WX.PlatformUIConsistency. Updated the buildscript.
Release Work bonzairob @ 09:09 on 01 May 20
General fixes. Added OpenGL version to reporting, fixed WX.TagSetter sort, allowed VBOs to set GL_STATIC_DRAW, updated frame timing in WX.dPECanvas, fixed some errors in the dependency tester.
Site bonzairob @ 14:32 on 25 Apr 20
End of life update - put into archive mode.
Release Work bonzairob @ 14:18 on 25 Apr 20
Streamlined 3SON numpy things and updated reporting
Release Work bonzairob @ 08:42 on 25 Apr 20
Fix some WX.HelpViewer problems with ordering pages and menu tags
Release Work bonzairob @ 20:44 on 23 Apr 20
Updated 3SON to handle writing numpy numbers like float64 as their basic python equivalents.
Release Work bonzairob @ 21:02 on 21 Apr 20
Fixed an audio bug when removing sounds
Release Work bonzairob @ 11:24 on 20 Apr 20
Moved framebuffers code from overworld25 to core. Added support for #comments in 3SON files. Added support for specifying game window dimensions in project.txt
Release Work bonzairob @ 13:21 on 27 Jan 20
Updated G().wrap() to not need the addition arg, and added lerp() as an alias to lirp(). WX.HelpViewer, added more css for tables and an unfoldy thing (w/ js). Changed Audio's loop_position so that a single value sets the loop start rather than the end.
Release Work bonzairob @ 22:33 on 25 Jan 20
Shader: added deleting textures. WX.Tagsetter: Added ability to copy the tag list. Fixed some errors and console spam. Moving ExampleGame to its own repo.
Release Work bonzairob @ 21:34 on 22 Jan 20
Fixed some repeat bugs in AudioHandler. Updated WX.TagSetter with allow_duplicates and tag_input_filter, and added a rightclick menu with the opton to clear the list.
Release Work bonzairob @ 09:04 on 18 Jan 20
Audio: added done_callback, enabled WX to use the Pygame Audio since it doesn't require the rest of Pygame (and WX can't play sounds...), fixed a delayed sound bug. ExampleGame asset updates.
Release Work bonzairob @ 12:00 on 15 Jan 20
Added AudioHandler and Pygame.Audio. Pygame can now access engine.Audio to preload and play sounds, along with custom loops. Added some more description to threeSON errors. ExampleGame asset updates.
Release Work bonzairob @ 11:33 on 01 Jan 20
Fixed some bugs in Pygame.Image. Better support for cancelling Input (e.g. when you change focus from a keydown and don't want the keyup to register). Updated some ExampleGame assets.
Release Work bonzairob @ 08:38 on 16 Dec 19
Added Vector3.componentHash for comparisons, added some comments to Matrix44 and 3SON. Added some event trigger tests to ExampleGame.
Release Work bonzairob @ 18:55 on 28 Oct 19
Added some attempts to get yaw/pitch/roll out of rotation matrices without much luck. Fixed an error in vector3.
Release Work bonzairob @ 11:01 on 18 Oct 19
Added comparison between vector3s. Updated UndoAction to take [object, string to exec] as the first action, because of object references.
Release Work bonzairob @ 20:21 on 09 Oct 19
Added -faulthandler arg for checking segfaults to; added support for more than 8 textures bound per shader; added Shader.reserveTexture() for bindAnyTexture.
Release Work bonzairob @ 17:04 on 07 Oct 19
Added PyQuaternion as a build requirement, pending the build system being reworked. Added rotationFromThreeVectors(), yaw(),roll(),pitch(), getQuaternion() and fromQuaternion() to engineassets.globjects.matrix44. Stopped InputHandler dying if the user presses an unknown key, and added Input.framesKeyDownFor().
Release Work bonzairob @ 21:06 on 01 Oct 19
Major fixes to Input system; fixing errors in engineassets.globjects.vector3
Release Work bonzairob @ 17:32 on 29 Sep 19
Added Pygame.Image.loadStringFromPath, to store lightweight images in memory. Added engineassets.Shader.SharedTexture, and support for them in shaders. Added Shader.bindAnyTexture. Added rightVector, upVector and forwardVector to engineassets.globjects.matrix44.
Release Work bonzairob @ 10:56 on 27 Sep 19
Slight speed improvment for Image colour channel analysis; fixed RGBASring images not correctly analysing transparency.
Release Work bonzairob @ 18:46 on 24 Sep 19
Merge branch 'release-work' of into release-work
Release Work bonzairob @ 18:45 on 24 Sep 19
Added better support for Shader to draw lines and points; added a gitignore for some overworld25 settings in user
Release Work bonzairob @ 12:39 on 16 Sep 19
Demo version increment!
Release Work bonzairob @ 09:22 on 16 Sep 19
Fixed blitting bug in RGBAStringImage
Release Work bonzairob @ 15:00 on 15 Sep 19
Added a platform-dependent way to get a tmp dir, added RGBAStringImage for imageless image processing, other windows specific adjsutments.
Release Work bonzairob @ 15:09 on 14 Sep 19
Stopped textures being added to shaders more than once, removed some console spam
Release Work bonzairob @ 09:26 on 12 Sep 19
Fixed pygame window caption. Removed some debug prints. Fixed WX.Image.subImage to accept any coords permutations, and added WX.Image.blitStringReplace, to do a quick subsurface replace with only string data.
Release Work bonzairob @ 08:57 on 03 Sep 19
Updated engineassets.Shader to require attribute order when attribs are set
Release Work bonzairob @ 16:01 on 23 Aug 19
Added support for mousewheel, and fixed WX's input not registering mouse movement unless a button was down
Release Work bonzairob @ 16:24 on 19 Aug 19
Tidying up, added some settings for the origin widget thing
Release Work bonzairob @ 18:11 on 15 Aug 19
Cleaned up some files from the repo.
Release Work bonzairob @ 21:07 on 12 Aug 19
Fixed a problem when shaders had no uniforms; Game mode now checks if the current state has a camera before trying to show its position
Release Work bonzairob @ 16:32 on 12 Aug 19
Split plugins into their own repos
Release Work bonzairob @ 13:23 on 03 Jul 19
Stopped the WX.dPECanvas trying to refresh while exiting. Demo tentatively ready.
Release Work bonzairob @ 12:58 on 03 Jul 19
Added --print-report-debug arg for Reporter
Release Work bonzairob @ 12:48 on 03 Jul 19
Merging overworld25 bugfixes into release-work
Overworld2.5 Release Work bonzairob @ 12:36 on 03 Jul 19
Core: Workaround for Bitmap alpha display bug on Windows
Overworld2.5 Release Work bonzairob @ 08:52 on 01 Jul 19
Core: Fixed WX.HelpViewer problems on Windows. overworld25: Updated Help a bit.
Release Work bonzairob @ 21:37 on 30 Jun 19
Fixing a bug with reporting OS version
Overworld2.5 Release Work bonzairob @ 20:58 on 30 Jun 19
Core: added OS version check to Reporter. overworld25: Added New Map function, updated help.
Site bonzairob @ 16:01 on 30 Jun 19
More report grouping work
Overworld2.5 Release Work bonzairob @ 15:29 on 30 Jun 19
Merge release-work for final bugfixes
Site bonzairob @ 15:24 on 30 Jun 19
Grouped beta reports
Overworld2.5 Release Work bonzairob @ 13:43 on 30 Jun 19
Fixed missing icon on Windows