Jump to content

Leadwerks is so cozy

tipforeveryone

236 views

I spent a whole week for learning UE4 with cpp, yep, UE4 is a great engine for sure, but I found out that my mind could not understand the way UE4 works easily. It is too complex and made me tired. Then I returned to my Leadwerks project and felt so familiar. Soooo... sweet, everything is simple as it is

It felt like I have had a long trip to UE city then return to my hometown. I miss Leadwerks indeed.

Last year, I thought I could only use Leadwerks with LUA and never touch its CPP side. But I tried my best, learned Cpp for 8 months. Now I am not a cpp pro but I am confident in using this language. At least I can rewrite my whole project in CPP instead. this 3-years project helped me to understand my potential and interest in gamedev.

I wish Josh be successful in progress of making Turbo, a new hope for much better Leadwerks.

To all people who are using Leadwerks and help me these years, love you.

...

Peace!

  • Like 2


15 Comments


Recommended Comments

I too use cpp and although a bit shaky in understsnding classes I managed to make a couple and all is going well .I like your post.

  • Like 1

Share this comment


Link to comment
On 10/7/2019 at 4:32 PM, Slastraf said:

there are still some bugs here and there that just drain your motivation always a bit

This exactly.  There have been quite a few show-stopping bugs for me too.  A character controller that was buggy that still isn't completely fixed (though Josh tried), navmesh generation by code that is broken on large maps (though navmesh isn't even dynamic so it doesn't support basic things like doors opening), glitchy vegetation, broken vehicles, etc.  I used to start a game with fingers crossed that things will be OK.  Now I mostly just use Leadwerks for its clean C++ commands, renderer and simpler projects.  I don't try to do anything fancy.  If I did this for more than a hobby, as much as I love Leadwerks and have been a fan and active community member since version 2.x, I would use another engine as well.

On 10/7/2019 at 4:32 PM, Slastraf said:

I am not a friend of monthly subscription payment for Turbo

As far as I remember, the subscription model may only be here for the beta.  There was talk about it being a one-time purchase on release but I don't think a final decision was made.

  • Like 2

Share this comment


Link to comment

I like this thread because we speak about motivation to make a game with Leadwerks and I'm feeling I'm loosing this motivation too.

But not because Leadwerks, because the few bugs you are speaking about can be often walk around (make your own character controller, set the tree a far away to avoid or forgive the pop up effect ...)

I would encounter the same problems I discovered with an other engine too;

The difficulty is the main problem for me, because you should have a team of workers because it is so much work to finish a game properly. Or you need years of work and motivation, with job and family, it is quite impossible, is it ?

Secondly - and the biggest thing for me -  I personally can't hope anymore that people will play my game, supposing the game would be funny, finish and playable.

Why this ? Because this game would fall in an infinity of other indie games and as Hobby game maker I have no resources to make an effective advertising.

There is an ocean of games that are inviting players in all sort of different kind of scenes possible, and you need a great idea nobody does, if you want your game not fall anonymous.

Maybe I would reach a number of hundred players, well, is this really 10 years work worth ?

I'm still working on my dream game but only because I like the challenge to make it. That's enough, but the motivation to finish it may lacking because if you are not ubisoft today, you just have almost no chance anyone notice your game.

It is just like art. If you have abilities to draw, it is fine, and then you see on pinterest that other million people have the same ! lol

 

  • Like 3

Share this comment


Link to comment

To play devil's advocate as you have: you don't need a team to make a great and successful game.  A lot of people fall into the trap of wanting to make the next World of Warcraft or Call of Duty or whatever.  You need to either seriously reduce your scope or accept that you won't finish your game (as you seem to have done).  There have been a ton of single-man developers and especially two-person teams that have been wildly successful.  Also, if you have money, you can always hire artists, musicians, coders and others to help.

To address your second point, yes, there's a good chance that not many people will play your game.  Even completed, far more games fail than succeed.  That's the nature of the business.  It happens to big companies too.  Then there are random little games like Minecraft that one person starts as a hobby, shares on a forum or two, the community goes wild and the game makes millions.  There are a ton of factors that contribute to this but a big one seems to be that you're connecting with your fans early on.  Minecraft and Spelunky (original) were released early as hobbies and communities enjoyed them and it grew from there.  Then there are companies you can hire (somewhat like publishers) that can work on getting your game out there for you (just be careful of shady ones that demand too much - I've seen devs screwed over).  How much of the marketing side have you read up on and tried implementing?

  • Like 1

Share this comment


Link to comment

I don't want to "advocate" anybody if not what I'm feeling ;)

No you may not need a team but then time. It s not easy near family and job.

21 hours ago, gamecreator said:

Minecraft and Spelunky (original) were released early as hobbies and communities enjoyed them and it grew from there. 

Yes that's the best way that may happen, isn't it ?

21 hours ago, gamecreator said:

How much of the marketing side have you read up on and tried implementing?

lol about...nothing. I wanted to tell I'm not the person for this. I just don't feel good by advertising.

furthermore I have no game ready to sell !

I like the challenge of scripting, animating, seeing things becoming harmonious on the screen, and, if I would succeed to make a bigger project, I would be happy other would play this.

But sorry I'm not the person for that, like I'm lacking in this ability to present things like a customer must think "I want to try it".

There are people (sometimes include ubisoft too ;) ) that are so good in this that they can sell sh!t for a so good thing, that customers will be disappointed.

Like a little bit seems to be happened with breakpoint ghost recon.

  • Like 1

Share this comment


Link to comment
2 hours ago, Marcousik said:

I wanted to tell I'm not the person for this. I just don't feel good by advertising

...

I'm not the person for that, like I'm lacking in this ability to present things like a customer must think "I want to try it".

That's fair.  It's not for everyone.  I prefer developing to advertising too.  But the more people you want to play your game, the more you have to get out there and show it off and remind people what you have going on.  If you never share your game, you'll never get others to be interested.  And it's good to see it that way too.  Sure, some people won't care and won't want to play it.  That's normal for every game, indie or AAA.  But others will.  And those are the people you focus on, who want to hear from you, assuming you have interesting progress to show.  Just be honest about what the game is and what the game isn't.

  • Like 1

Share this comment


Link to comment
2 hours ago, gamecreator said:

And those are the people you focus on, who want to hear from you, assuming you have interesting progress to show.  Just be honest about what the game is and what the game isn't.

That's a nice phrase!

One problem remains (of course I know you are not my Psy but thx for reading yes 👍)

I'm stil having problem to believe I could make a game better than an AAA perhaps existing yet.

Looking at Witcher, GTA, Watch dogs, greedfall, Gothic and so much more other "perfect" games I think there is no reason why anybody should play my game !

  • Like 1

Share this comment


Link to comment

Try not to compare your game to those of AAA studios who have dozens of workers and millions of dollars to spend on development and marketing.  Your situation is different.  But just because a game is smaller doesn't mean it can't be popular.  There are a lot of single-man or small-team developers who have had hundreds or thousands of players, some having made millions.  Even a relatively simple game like VVVVVV sold over a million copies.  Sure, you won't make the next GTA or Witcher because you don't have the resources but you can still make a similar, enjoyable game.

  • Like 1

Share this comment


Link to comment

People wanted a new engine so I am making a new engine. It takes years to develop these things. Just switching over to Vulkan took six months to get basic rendering working. Anyone who needs the performance and scale of the new engine is welcome to use it, otherwise I am not going to try to convince them.

I expect that right now is going to be pretty much the lowest point of engagement because we have a new technology that has been a WIP for several years and isn't ready yet. And there is going to be some change in the community because Turbo Engine has a different type of user than Leadwerks has.

  • Like 1

Share this comment


Link to comment
14 hours ago, gamecreator said:

Even a relatively simple game like VVVVVV sold over a million copies.

I think that's more or less the idea I wanted to speak about. 

No matter the engine (if it is stable enough of course - and I think LE 4.6 is) you can make a fun thing that other people can enjoy.

All the challenge is to be creative, finding something fun. Because so much content has been made yet. An re-making games other did better yet gives no motivation.

And so the choice of the engine you want to work with has to be in the same line as your game concept requires. If not you are losing your time.

It's like in making music, I can buy more and more instruments (like features or assets) pretending I could do better with, but in reality if I do not master them or just find a good use of them, it stays nonsense. The point is the tools have to serve the ideas, and not the ideas the tools. That could be the reason why for my part and for now I don't need another engine.

  • Like 2

Share this comment


Link to comment

Well I already find it a little comedic that my comment criticizing LE game engine got removed so I cannot partake in this discussion. Honestly its kind of sad.

  • Confused 1

Share this comment


Link to comment
4 hours ago, Slastraf said:

Well I already find it a little comedic that my comment criticizing LE game engine got removed so I cannot partake in this discussion. Honestly its kind of sad.

Since you say it is not acceptable as a professional tool, why are you here? I just received ten orders for the enterprise version from a little company called Northrop Grumman, but I guess you are the expert.

  • Like 1

Share this comment


Link to comment

Leadwerks is a great tool, the problem is that a tool does nothing, if there is no one to push the talent, work, development. 

Then any bad worker will blame the tools.  I also rest a while and came back with a fresher mint and I share what some say, learning is my hobby and improving my skills is a challenge that somehow allows me to advance to the next level.  

Übersetzt mit www.DeepL.com/Translator

Share this comment


Link to comment

Sure it's a tool but a better tool gets better results.  If you can write 10 lines of code instead of 1000, that's hours of work saved and usually more likely that you'll end up with something nice to show off.

  • Like 1

Share this comment


Link to comment
1 minute ago, gamecreator said:

Sure it's a tool but a better tool gets better results.  If you can write 10 lines of code instead of 1000, that's hours of work saved and usually more likely that you'll end up with something nice to show off.

I agree, and that's why we're not creating video game engines, talent has another for that, all the tools are usually great, but no matter how much I install UDK, CryEngine, Torque, Unity, they don't do anything by themselves. Then comes something that I think, and I can be wrong, make us right on a tool, see its advantages and focus on it, and know how to deal with their mistakes. 

Now, we could be creating games directly from c++ and Vukan in a Visual Studio environment, but for that you need talent, and that's what professional studios and famous games pay for. 

In the end my point of view is simple, I use Leadwerks, because I don't have the talent needed to make a video game engine, or create with other development environments.  Here it's easy, in other parts they throw you an immense api and defend yourself as you can and in the same way you find problems, errors, difficulties, but the question is how to have the ability to solve them.

It's just what I think, and most likely I'm wrong. 

Translated with www.DeepL.com/Translator

  • Like 1

Share this comment


Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Blog Entries

    • By Josh in Josh's Dev Blog 3
      Previously, we saw how the new renderer can combine multiple cameras and even multiple worlds in a single render to combine 3D and 2D graphics. During the process of implementing Z-sorting for multiple layers of transparency, I found that Vulkan does in fact respect rasterization order. That is, objects are in fact drawn in the same order you provide draw calls to a command buffer.
      Furthermore, individual primitives (polygons) are also rendered in the order they are stored in the indice buffer:
      Now if you were making a 2D game with 1000 zombie sprites onscreen you would undoubtedly want to use 3D-in-2D rendering with an orthographic camera. Batching and depth discard would give you much faster performance when the number of objects goes up. However, the 2D aspect of most games is relatively simple, with only a dozen or so 2D sprites making up the user interface. Given that 2D graphics are not normally going to be much of a bottleneck, and that the biggest performance savings we have achieved was in making text a static object, I decided to rework the 2D rendering system into something that was a little simpler to use.
      Sprites are no longer a 3D entity, but are a new type of pure 2D object. They act in a similar way as entities with position, rotation, and scale commands, but they only use 2D coordinates:
      //Create a sprite auto sprite = CreateSprite(world,100,100); //Make blue sprite->SetColor(0,0,1); //Position in upper-left corner of screen sprite->SetPosition(10,10) Sprites have a handle you can set. By default this is in the upper-left corner of the sprite, but you can change it to recenter them. Sprites can also be rotated around the Z axis:
      //Center the handle sprite->SetHandle(0.5,0.5); //Rotation around center sprite->SetRotation(45); SVG vector images are great for 2D drawing and GUIs because they can scale for different display resolutions. We support these as well, with an optional scale value the image can be rasterized at.
      auto sprite = LoadSprite(world, "tiger.svg", 0, 2.0);
      Text is now just another type of sprite:
      auto text = CreateSprite(world, font, L"Hello, how are you today?\nI am fine.", 72, TEXT_LEFT); These sprites are all displayed within the same world as the 3D rendering, so unlike what I previously wrote about...
      You do not have to create extra cameras or worlds just to draw 2D graphics. (If you are doing something advanced then the multi-camera method I previously described is a good option, but you have to have very demanding needs for it to make a difference.) Regular old screen coordinates you are used to will be used (coordinate [0,0] is top-left). By default sprites will be drawn in the order they are created. However, I definitely see a need for additional control here and I am open to ideas. Should there be a sprite order value, a MoveToFront() method, or a system of different layers? I'm not sure yet.
      I'm also not sure how per-camera sprites will be controlled. At this time sprites are stored in a per-world list, but we will want some 2D elements to only appear on some cameras. I am not sure yet how this will be controlled.
      I am going to try to get an update out soon with these features so you can try them out yourself.
    • By Josh in Josh's Dev Blog 11
      Previously I described how multiple cameras can be combined in the new renderer to create an unlimited depth buffer. That discussion lead into multi-world rendering and 2D drawing. Surprisingly, there is a lot of overlap in these features, and it makes sense to solve all of it at one time.
      Old 2D rendering systems are designed around the idea of storing a hierarchy of state changes. The renderer would crawl through the hierarchy and perform commands as it went along, rendering all 2D elements in the order they should appear. It made sense for the design of the first graphics cards, but this style of rendering is really inefficient on modern graphics hardware. Today's hardware works best with batches of objects, using the depth buffer to handle which object appears on top. We don't sort 3D objects back-to-front because it would be monstrously inefficient, so why should 2D graphics be any different?
      We can get much better results if we use the same fast rendering techniques we use for 3D graphics and apply it to 2D shapes. After all, the only difference between 3D and 2D rendering is the shape of the camera projection matrix. For this reason, Turbo Engine will use 2D-in-3D rendering for all 2D drawing. You can render a pure 2D scene by setting the camera projection mode to orthographic, or you can create a second orthographic camera and render it on top of your 3D scene. This has two big implications:
      Performance will be incredibly fast. I predict 100,000 uniquely textured sprites will render pretty much instantaneously. In fact anyone making a 2D PC game who is having trouble with performance will be interested in using Turbo Engine. Advanced 3D effects will be possible that we aren't used to seeing in 2D. For example, lighting works with 2D rendering with no problems, as you can see below. Mixing of 3D and 2D elements will be possible to make inventory systems and other UI items. Particles and other objects can be incorporated into the 2D display.
      The big difference you will need to adjust to is there are no 2D drawing commands. Instead you have persistent objects that use the same system as the 3D rendering.
      Sprites
      The primary 2D element you will work with is the Sprite entity, which works the same as the 3D sprites in Leadwerks 4. Instead of drawing rectangles in the order you want them to appear, you will use the Z position of each entity and let the depth buffer take care of the rest, just like we do with 3D rendering. I also am adding support for animation frames and other features, and these can be used with 2D or 3D rendering.

      Rotation and scaling of sprites is of course trivial. You could even use effects like distance fog! Add a vector joint to each entity to lock the Z axis in the same direction and Newton will transform into a nice 2D physics system.
      Camera Setup
      By default, with a zoom value of 1.0 an orthographic camera maps so that one meter in the world equals one screen pixel. We can position the camera so that world coordinates match screen coordinates, as shown in the image below.
      auto camera = CreateCamera(world); camera->SetProjectionMode(PROJECTION_ORTHOGRAPHIC); camera->SetRange(-1,1); iVec2 screensize = framebuffer->GetSize(); camera->SetPosition(screensize.x * 0.5, -screensize.y * 0.5); Note that unlike screen coordinates in Leadwerks 4, world coordinates point up in the positive direction.

      We can create a sprite and reset its center point to the upper left hand corner of the square like so:
      auto sprite = CreateSprite(world); sprite->mesh->Translate(0.5,-0.5,0); sprite->mesh->Finalize(); sprite->UpdateBounds(); And then we can position the sprite in the upper left-hand corner of the screen and scale it:
      sprite->SetColor(1,0,0); sprite->SetScale(200,50); sprite->SetPosition(10,-10,0);
      This would result in an image something like this, with precise alignment of screen pixels:

      Here's an idea: Remember the opening sequence in Super Metroid on SNES, when the entire world starts tilting back and forth? You could easily do that just by rotating the camera a bit.
      Displaying Text
      Instead of drawing text with a command, you will create a text model. This is a series of rectangles of the correct size with their texture coordinates set to display a letter for each rectangle. You can include a line return character in the text, and it will create a block of multiple lines of text in one object. (I may add support for text made out of polygons at a later time, but it's not a priority right now.)
      shared_ptr<Model> CreateText(shared_ptr<World> world, shared_ptr<Font> font, const std::wstring& text, const int size) The resulting model will have a material with the rasterized text applied to it, shown below with alpha blending disabled so you can see the mesh background. Texture coordinates are used to select each letter, so the font only has to be rasterized once for each size it is used at:

      Every piece of text you display needs to have a model created for it. If you are displaying the framerate or something else that changes frequently, then it makes sense to create a cache of models you use so your game isn't constantly creating new objects. If you wanted, you could modify the vertex colors of a text model to highlight a single word.

      And of course all kinds of spatial transformations are easily achieved.

      Because the text is just a single textured mesh, it will render very fast. This is a big improvement over the DrawText() command in Leadwerks 4, which performs one draw call for each character.
      The font loading command no longer accepts a size. You load the font once and a new image will be rasterized for each text size the engine requests internally:
      auto font = LoadFont("arial.ttf"); auto text = CreateText(foreground, font, "Hello, how are you today?", 18); Combining 2D and 3D
      By using two separate worlds we can control which items the 3D camera draws and which item 2D camera draws: (The foreground camera will be rendered on top of the perspective camera, since it is created after it.) We need to use a second camera so that 2D elements are rendered in a second pass with a fresh new depth buffer.
      //Create main world and camera auto world = CreateWorld(); auto camera = CreateCamera(world); auto scene = LoadScene(world,"start.map"); //Create world for 2D rendering auto foreground = CreateWorld() auto fgcam = CreateCamera(foreground); fgcam->SetProjection(PROJECTION_ORTHOGRAPHIC); fgcam->SetClearMode(CLEAR_DEPTH); fgcam->SetRange(-1,1); auto UI = LoadScene(foreground,"UI.map"); //Combine rendering world->Combine(foreground); while (true) { world->Update(); world->Render(framebuffer); } Overall, this will take more work to set up and get started with than the simple 2D drawing in Leadwerks 4, but the performance and additional control you get are well worth it. This whole approach makes so much sense to me, and I think it will lead to some really cool possibilities.
      As I have explained elsewhere, performance has replaced ease of use as my primary design goal. I like the results I get with this approach because I feel the design decisions are less subjective.
    • By Josh in Josh's Dev Blog 6
      I'm putting together ideas for a racing game template to add to Leadwerks. We already support vehicles. The challenge is to put together that looks and feels slick and professional, like a real game people want to play. The finished demo will be submitted to Greenlight, GameJolt, IndieDB, itch.io, etc.
       
      Gameplay
      First, I wanted to think about what style of racing I want this to be. I don't want street racing because it's kind of boring, and the level design is more involved. I don't want spintires-style technical offroading because it's too specialized. I want some fun medium-paced 4x4 racing like in
      , but modern. 


       
      This single-player game will pit you against seven computer-controlled components. You win by coming in the top three places. A time-trial option will allow you to compare your scores to other players via Steam leaderboards.
       
      The HUD will display a speedometer, your place in the race, current lap, and total and current lap time.
       
      Cars will be 4x4 trucks, identical except with a different texture.
       
      The player can turn headlights on and off, honk their horn, and drive. The transmission will always be automatic.
       
      Pressing the C key will alternate between views, including 3rd person, 3rd person further away, first-person (in-car), and a free third person camera that doesn't rotate with the car.
       
      Checkpoints will be placed throughout the level, with a sound when you pass through.
       
      After the race is complete, a replay will be performed from data recorded during the race, and scores will be shown on the screen.
       
      Environment
      I want the environment to be scrubby arid desert with big dramatic crags in the background.
       

       
      Roads will be painted on with a dirt texture, and decals will be used to add tire tracks sporadically. Decals will fade out at a fairly close distance, as I plan on having lots of them in the map.
       
      The game will allow you to set the time of day and weather. I have not decided if the weather and time of day will change as the race progresses. Time of day includes night, morning, afternoon, and evening.
       
      Weather can also be set, with options for sunny, rainy, and snowy. Snow will use a post-processing effect to add snow on all upwards-facing surfaces. Tire grip will be reduced in snowy and rainy conditions.
       
      The vehicles will throw up a cloud of dirt, mud, water, or other material, based on the primary texture of the terrain where they are contacting. Dirt, water, raindrops, ice, snow, and other effects will hit the camera and remain for a moment before fading.
       
      Screen-space reflection will be showcased heavily on the vehicle bodies.
       
      One song will play for the menu and one for the race. The song will sound something like this at 0:44 because it sounds modern:


       
      Or maybe this:

       
      Scope Limits
      The game is single-player only.
      I'm not going to bother with changes to the terrain or vehicles leaving tread marks.
      There will be no arms visible when the camera is inside the car.
      The environment will be static. There will be no destruction of the environment, and no moving objects or physically interactive items except for the cars.
      I am not going to implement an overhead map.
      I am not going to implement vehicle damage.
      Other than finishing the game GUI, I do not want to implement any new features in Leadwerks to complete this.
      The game will not attempt to be realistic or follow any real-world racing events.
      The race will not portray an audience or people standing around.
      No weapons.

×
×
  • Create New...