Jump to content
  • entries
    941
  • comments
    5,894
  • views
    871,200

About this blog

Learn about game development technology

Entries in this blog

iHurt

Here's the code: Print("context = "+GetObjectAddress(context)); Print("Graphicsdriver: "+GetObjectAddress(graphicsdriver)); Print("GetGraphicsdriver: "+GetObjectAddress(GetGraphicsDriver())); Print("ActiveGraphicsDriver: "+GetObjectAddress(ActiveGraphicsDriver)); Print("context->graphicsdriver: "+GetObjectAddress(context->graphicsdriver)); Print("context = "+GetObjectAddress(context)); Here's the output, running on an iPhone 4: context = 0x06921400 Graphicsdriver: 0x0694e800 GetG

Josh

Josh

Friday, November 18

Well, we're through the "OMG will this even work" phase. Aria got FreeType to build on all platforms, so you can load TTF files directly on Windows, Mac, Android, and iOS devices. I set up the accelerometer input on iOS today, so you can call Device::GetAcceleration() and retrieve a Vec3 telling you which way is down. Acceleration is returned relative to the screen orientation, so you don't have to worry about which way the device is rotated. This isn't my proudest screenshot, but it demonst

Josh

Josh

Random Thoughts

I don't have a clear and obvious subject for this blog, but I haven't posted in a while, so I wanted to write something. I've been getting in a lot of hours of development. My schedule on most days is wake up around 7, answer emails or test code on my Mac at home, then head over to the office at 10. Chris usually comes in right around then (we aren't too strict on schedules) and usually hangs around until around 6. I leave anywhere from 6-9 (and totally miss the rush hour traffic), go home,

Josh

Josh

My old arch-nemesis: arches

Since brushes in Leadwerks3D are entities, and the Leadwerks3D editor gives you access to the entity hierarchy throughout a scene, we don't use "groups" like 3D World Studio had. Instead, when a compound brush is created, a parent pivot is created, and all brush segments are made a child of that. When you select any part of the hierarchy, the entire compound brush is selected (unless "Ignore Hierarchy" is turned on).   Since brushes can now have a 4x4 matrix, which wasn't the case in the pas

Josh

Josh

Hammering out the CSG editor

CSG is a great way to quickly and easily produce levels, and the editor is even fun to write. I added another tab next to the scene and project tabs where you can select objects to create. The CSG texture mapping and smoothing controls also reside on this panel. I'm still playing around with the layout, but here is what I have now:   CSG brushes are now entities, and can be arranged in a hierarchy. Check out the scene hierarchy that gets created when you create a compound brush object (a

Josh

Josh

Code, babes, clowns, and an inflatable dinosaur. Just a typical night at Hacker Lab.

I've been following Eric's progress with this idea since last spring, and it's really great to see what started as a fuzzy concept turn into reality.   http://www.youtube.com/watch?v=pK_yjZpOs6w   About Hacker Lab We believe that technology can change the world and the starting point is education. Hacker Lab aims to educate folks and seed startups with community driven resources. Collectively we can build a brighter future using lean methods in both education and business.   We Provide

Josh

Josh

Android File System

Today I am working out the file system for Android applications. In the past we just manually copied all our assets to a "/Leadwerks" folder on the device itself. This approach is okay for testing, but it won't work for distributing apps in the Google Play store.   Android uses APK files to store all applications in. An APK file is really just a ZIP file, and all your assets go in a /res/raw directory in the ZIP package.   To access the Android file system from C++, we had to take the fol

Josh

Josh

New beta update adds improved project updating, bug fixes

A new update is available on the beta branch on Steam. To avoid confusion with outdated projects, the project's status will now be displayed in the project manager. If the project is older than the template folder, a warning icon will be displayed. In addition, the script editor will now warn once about an out-of-date project before running.     The FBX converter has been updated to fix the following issues: Second UV coordinate set was not always being saved. Some FBX files exporte

Josh

Josh

Linux update: Scene browser and hidden window contexts

I've made two major improvements to the editor UI this week. The scene tree is now fully functional, and objects can be dragged around in the scene hierarchy: Models and prefabs can now be dragged into the viewports from the asset browser, so the editor is near fully functional now. The X11 windowing system cannot create an OpenGL rendering context on a hidden window. (The same happens on OSX.) On OSX I did a cheesy hack whereby the asset editor windows (the model, texture, material, etc. e

Josh

Josh

Halloween Game Tournament Roundup

The second Leadwerks Halloween Game Tournament is complete. Here's a review of the entries.   First up is HaydenMango's hack & slash game Rise of the Pumpkinheads. In this humorous and spooky action game you fight reanimated corpses with...wait for it...pumpkins for heads. You'll also encounter necromancers, and other enemies along your quest through the overgrown cemetery where a pumpkin infestation has taken root.     Next up is Midnight Patrol, a simple but fun shooter featuring

Josh

Josh

Game Player Preview

Here is a preview of what the Leadwerks Game Player Workshop looks like. A rotating banner shows the top games, like a mini-Steam within Steam. The difference is this distribution channel has no restrictions on when you can publish your game, and you can deploy games to all supported systems, including SteamOS, without having to actually compile on those systems.   I envision a time in the near future when everyone with a small fun playable game can pick up tens of thousands of new users pla

Josh

Josh

Beta update available

A new update is available on the beta branch.   Fixed CSG texture / texture mapping bugs: http://www.leadwerks.com/werkspace/topic/10401-leadwerks-texturing-bugs/#entry85790 http://www.leadwerks.com/werkspace/topic/10433-csg-prefabs-cannot-be-retextured-using-drag-and-drop/   Fixed a long-standing script properties bug: http://www.leadwerks.com/werkspace/topic/11672-script-editor-incorrect-parameter-fields/   Fixed script editor recent files list: http://www.leadwerks.com/werkspace/top

Josh

Josh

Growing Leadwerks

As of this morning, the most recent Steam sale is now complete. The sales figures were excellent and we picked up a lot of new users. Most importantly, we've got a lot of new data on how people behave and what can be done to make them happy.   There's three stages a new Leadwerks user goes through to become a happy productive developer. The first is to actually buy the software. The main ingredients here are the demo, website pages describing the benefits of our approach to game developmen

Josh

Josh

Project Templates

The project templates system is being revised. Project templates are going to be oriented around game types rather than programming languages.   Picture is worth 1000 words:   If you have the standard edition, the common project files will still include the C++ files, so any new project you create will be usable in C++.

Josh

Josh

3.5 release candidate available

An update is available which is a release candidate for version 3.5. Version 3.5 adds carve and hollow CSG operations, an improved project template system, and customizable filters for scene objects. In this update I reverted the group selection behavior to the same way it works in 3.4, and decided to hold off on adding an extra grouping feature. I expect a lot of new users soon, so stability is my most important goal.   The summer games tournament is coming soon! We had a really great tur

Josh

Josh

The Living Room is About to Change

Miniaturization has been a big trend over the last five years, but it isn't limited to mobile. It's impacted other areas of technology that I find much more interesting than cell phones. Previously, I wrote about the changing PC form factor, and how my current rig is a no-compromises full-size PC packed into a form factor about the size of a bread box.   I happen to have my hands on a few pieces of technology that are brand new, unreleased, or things I myself am creating. All these technolo

Josh

Josh

3.6 Final Touches Update

I rolled Newton Dynamics back to the version we were previously using due to some strange behavior. We're not utilizing any new behavior yet, and I don't want to spend time debugging it right now, so from your perspective it makes no difference.   Also added a check to prevent textures from reloading when they are bound to a buffer.   This update is available now on the beta branch and will be released next week on the default branch. Rich is also working on a couple of decal textures to i

Josh

Josh

Tips for Launching Your Game on Steam

I thought I would take a minute to write down some of the things I have learned about releasing software on Steam, in order to help with your game releases.   First of all, always wait a week after you are "finished" to release a major update. This is because you will always find little problems, and sometimes major ones, after you think you've finished everything. Leadwerks 3.6 was scheduled for release at the start of this week, as far as I knew everything was working, but I knew to give i

Josh

Josh

Game Launcher Review

Leadwerks Game Launcher was released last week as a free early access title. This means the release did not appear on the Steam new releases list, and its visibility is very low on Steam, unless someone is specifically looking for it. The final "real" release will see a period of high visibility. So right now the only traffic you should expect to get is what we drive to the Steam store page ourselves.   That said, Leadwerks Game Launcher now has 2000 users, and has very positive reviews so

Josh

Josh

Vegetation Development

Today I am happy to say I worked out the problems that the vegetation system prototype had on AMD and Intel graphics. I started by upgrading the system from using texture buffers to using vertex buffers, as recommended in Daniel Rakos' excellent RasterGrid blog. He made this change for speed, but in my case it gave me simpler code I was able to eliminate the OpenGL errors with.   The most interesting part of this was discovering the glVertexAttribDivisor command. (Fortunately, it's in the 4

Josh

Josh

Leadwerks Merc

Here's an update of the model sheet for our "Mercenary" character. We're spending more time in the planning phase than previous attempts, and I think the effort is really paying off.   All design is really a process of decision-making. If you don't make decisions you'll end up with something without much definition. Everything about this character was decided according to factors I set out at the beginning of this project.  

Josh

Josh

Sell your 3D content in the Workshop Store

I am now accepting additional paid content from select authors to publish their Workshop content. Valve will take their standard 30% cut, you will receive 50% of each sale, and Leadwerks will take just 20%. If you are interested in reaching a new audience with the Workshop store, please contact me. You must be a seller with 3D models or textures in an existing marketplace for 3D content, or have a website showing your work.     More information on publishing here: http://www.leadwerks.c

Josh

Josh

Beta update available

An update is available on the beta branch with the following changes: Fixed System::Print() command which was printing char* values as bools. Added optional parameter to the end of Entity::SetInput(). Add optional parameter to the end of Emitter::SetVelocity() Fixed light occlusion culling bug. Fixes a sound source position bug.

Josh

Josh

Even more GUI design + Rooster teeth

This code added to main.lua actually works: --Create a window local windowstyle = window.Titlebar if System:GetProperty("fullscreen")=="1" then windowstyle=windowstyle+window.FullScreen end window=Window:Create(title,0,0,System:GetProperty("screenwidth","1024"),System:GetProperty("screenheight","768"),windowstyle) window:HideMouse() --Create the graphics context context=Context:Create(window,0) if context==nil then return end --Create a GUI local gui = GUI:Create(context) local widget = Wid

Josh

Josh

Global Illumination Research Pt 4

I've been puzzling over a problem that exhibits itself on flat surfaces. Cubemap reflections appear "jittery" as if they are been rounded off to a lower-precision float. At first I thought this might mean that our best-fit normals routine using 8 bits per channel might lack the precision needed for cubemap reflections. However, when I changed the normal texture in the gbuffer to a 32-bit floating.point RGBA texture, the problem remained. This error is also visible in Igor's SSLR shader.  

Josh

Josh

×
×
  • Create New...