GameDev.net

218 Followers
24 Following
90 Posts
Your game development community. Learn, share, and connect with developers around the games industry.
Website:https://www.gamedev.net/
Twitter:https://twitter.com/gdevnet
Discord:https://discord.gg/nxAZMPU
Community member 'bzt' shares his new 3d model format and dependency-free single header SDK: http://gamedev.io/lEieQ
New 3D model format and single header SDK

Dear All, I'd like to introduce you a new model format. It is simple, well-defined and well-documented, and has the best data density of all formats. Suzanne with normals, UVs and materials require less than 12K using this format. I'm not good with names, so it's just simply called Model 3D and has the extension ".m3d". I'd like to get some feedback and hear your opinion about it. Provided implementations For compatibility, it is implemented with Assimp. Unfortunately according to my findings Assimp fails to live up to it's promise "Loads 40+ 3D file formats into one unified and clean data structure.", as its data structure is neither unified nor clean. But I managed it, so here it is, libassimp can load M3D files with vertex colors, materials, textures, and skeletal animations. A new model format is no good if you can't use it with your favorite modeler software, so I have provided Blender plugin to export objects and their animations into M3D. The exporter is fully functional and supports all features of the M3D format, however the importer is WIP. You can export vertex lists with colors, normals, UVs, PBR materials (PrincipledBSDF), textures, armature, and several model actions too using the Blender Animation's timeline markers feature. And finally, it's native SDK is an stb-style, totally dependency-free, single header file ANSI C89/C++11 SDK. It can load and save files, supports the binary M3D format (and if included with the M3D_ASCII define then it's ASCII counterpart, A3D too). It is MIT licensed, written in ANSI C and with the provided C++ wrapper class it should be straightforward to integrate into any new or existing projects. It compiles to about 70K, which includes the built-in PNG texture decompressor. Features of the format A few words on why does it worth it to use this format: it is Open Source and free. Not only its SDK, but the format itself is MIT licensed and expandable. it can store big models in very little files. Blender's cube can be saved in about 100 bytes. An usual Blitz3D animated model (.b3d) in .m3d saves 70%-80% storage space. exactly one model per file, but with all properties: materials, skeleton, textures, skeletal animations. No complex scene parsing involved. (Lightning and camera setups are NOT properties of the model!) but if needed, engine specific data can be embedded in a way that it won't break the model compatibility with other software. the same model can be read by different software with different levels. The same file is compatible with more applications, for example: one can only load the static mesh from it, while another can also utilize the bone information and the animations. it has a human readable ASCII variant, which can be easily loaded with a slightly modified Wavefront OBJ loader (however the SDK can handle). it's SDK is simple, fast and painless to use (according to the K.I.S.S. has only 5 functions altogether). it's in-memory format is efficient and fast (uses indices in contrast to recursive node parsing matching strings), and well-specified (for example it makes it clear that right-handed coordinate system is used with the coordinates, and how the coordinate system is oriented. No surprises when you load a model from M3D). I've provided a command line utility (m3dconv) which loads any Assimp-supported format and converts it into Model 3D. A simple, portable GL-based viewer (m3dview) is also included in the repository to demonstrate how to display the animated models once you loaded them (whole thing less than 500 SLoC :-) ). You can compile the latter with GLFW, GLUT and SDL2 (the interface is autodetected, just run "make"). Please let me know what you think about this project and the file format, Cheers, bzt

A great guide to the basics of PR for video games:

http://gamedev.io/pr-basics

Video Game PR Basics

People often confuse Public Relations with Marketing, but PR is between a business and the public, a blend of community and press, with (generally) a smaller budget. PR will set you apart by showing you care for and can relate to your community. A good PR person lets press know they are reliable ...

Sometimes super simple tricks are the best. Check out this great tip for simple animated falling leaves:

https://www.gamedev.net/articles/programming/general-and-gameplay-programming/an-easy-way-to-make-falling-leaves-r5249/

An easy way to make falling leaves

A particle (in this case a leaf) falling in a straight line is boring. To make it more interesting: Rotate the particle Offset the texture to create a more interesting movement pattern with the rotation If you enjoyed this simple tutorial, check out Rubens Twitter account, and free games on Itch.io.

Check out our latest featured article, presenting a quick labyrinth generation algorithm:

https://www.gamedev.net/articles/programming/general-and-gameplay-programming/a-labyrinth-generation-algorithm-r5185/

A Labyrinth Generation Algorithm

This was for a Dungeon Explorer home project I was working on. When researching labyrinth, maze, or dungeon generation algorithms I found many that would create hub or tree-style dungeons, but none that would loop back on themselves. I created this algorithm with the intention of designers or art...

How We Optimised Our Scripts in Unity

There are a lot of great articles and tutorials focusing on performance in Unity. This article is not trying to replace them or improve them, this is just a summary of steps that we went through after reading these articles and the steps that helped solve our issues. I strongly recommend to go th...

A Day As A Game Designer

The fabled game designer. The man, the myth, the legend behind the game. An inspiration to young creatives who wish to one day work in the games industry. But really, what does a game designer actually do? And how do you become one? Let’s get one common misconception out of the way first: Game de...

Generating World Maps: Fun With Voronoi Graphs (part 2)

This is a blog about our development of Unexplored 2: The Wayfarers Legacy. This game features state-of-the-art content generation, generative storytelling, emergent gameplay, adaptive music, and a vibrant art style. Part 1 Unexplored 2 is a roguelite action adventure game where the hero is taske...

A great look at how Unexplored 2: The Wayfarer's Legacy uses Voronoi graphs to create more natural and realistic looking generated maps:

https://www.gamedev.net/articles/programming/general-and-gameplay-programming/tiles-to-curves-fun-with-voronoi-graphs-part-1-r5150/

Tiles to Curves: Fun With Voronoi Graphs (part 1)

This is a blog about our development of Unexplored 2: The Wayfarers Legacy. This game features state-of-the-art content generation, generative storytelling, emergent gameplay, adaptive music, and a vibrant art style. The content generator of Unexplored 2 generates tile maps. Typical output looks ...

Admiring the Game Design in Hyper-Casuals

Some may argue that hyper-casual is probably one of the easiest genres to analyse when it comes to game design. Some may argue that hyper-casuals aren’t worth analyzing because it’s a trend that will die soon. I beg to differ, and I wonder who are these people and why do they argue so much? I don...

Publishing 101 - Should You Partner With A Game Publisher?

Hi! David Logan here, CEO of Akupara Games! We get a lot of questions about the game publishing process and I decided I wanted to write a series of articles to help guide developers throughout decisions surrounding the release of their game. Before we get too nitty-gritty, let’s start with the bi...