[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / r / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip / qa] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/g/ - Technology


Thread archived.
You cannot reply anymore.


[Advertise on 4chan]


Roguelike edition

/gedg/ Wiki: https://wiki.installgentoo.com/wiki/Gedg
IRC: irc.rizon.net #/g/gedg
Progress Day: https://rentry.org/gedg-jams
/gedg/ Compendium: https://rentry.org/gedg
/agdg/: >>>/vg/agdg
previous: https://desuarchive.org/g/thread/99998782/#99998782

Requesting Help
-Problem Description: Clearly explain the issue you're facing, providing context and relevant background information.
-Relevant Code or Content: If applicable, include relevant code, configuration, or content related to your question. Use code tags.
>>
Fucked up the previous link. Proper link: https://desuarchive.org/g/thread/100043403
>>
One day I will ascend...
>>
I will make progress once I finish watching anime
>>
>>100102383
Get a second monitor. Work on one, watch anime on the second. Multitasking!
>>
>>100102255
I started a rogue-like game in C++ over a decade ago and haven't finished. Right now, it's just a character moving in a randomly generated dungeon with random items and the same monsters spawned at random points and a basic inventory system. I might finish it some day.
>>
Post progress friendos

I've been working my roguelike game frens
See >>100053613

Wrote some skeleton code like a basic ScreenManager and an importer for a bunch of OGA art.

Currently loading about a lil over 4k different sprite animations with 7k different graphics assets in approx 15ms.

Time to start working on a basic map class, move my previously-made actor code over, and work on some basic map generation with some LoS algo (Bresenham).
>>
File: output.webm (3.34 MB, 1920x1080)
3.34 MB
3.34 MB WEBM
Posted in /dpt/ and /agdg/ but I was waiting for this thread to pop up.
Week 3 recap on my online, multiplayer pixelshit 2d top down arpg in c++:
- Added basic AABB physics and integrated them into the server + client sided smoothing.
- Added networked level serialization.
- UI keybinds (UI can install its own UI shortcuts to fire callbacks).
- UI Dock Widgets.
- Proper Window widget instead of piggybacking off generic Widget for bring-to-front functionality.
- ProgressBar widget
- Exclusive key events for UI input grabbers/capturers (i.e. TextEdit won't fire global shortcut that's bound to the same key).
- Basic melee combat.
- Basic melee weapon attack animation (player weapon sprite follows the character and animates using a rotation when attacking).
- CombatText (floating text in the world, with ability to set custom icon, text, duration and so on).
- GameInfo label with Level/Character info in top right.
- Life/Experience/Mana bar with server sync + format change on click + config save.
>>
>>100102822
I think I saw your post in /dpt/

That's some solid progress anon! Holy shit. What are you planning to work on next?
>>
>>100102850
>What are you planning to work on next?
Week 4 will be inventory (first I will need to implement a grid layout for my custom GUI library), then basic moving items between equipment/backpack, dropping on the ground, picking up from the ground. I'm not sure how I want to do item labels for items on the ground so they don't overlap, plugging physics to shuffle them around would be kinda ass because they'd just stack up on the same axis.
I also want to implement projectiles this week so I can make some basic ranged spells/attacks.
Another thing will be plugging all of the current work done so far into the Lua API so more can be done as scripts (basically I want the C++ part of the engine to do the heavy lifting like procgen, networking, physics, memory management and the rest of the game to rely mostly on Lua).
>>
>>100102896
That's quite some progress. How many hours a week do you dedicate to your project?
>>
>>100102908
It's hard to tell, I've got ADHD and a lot of other things going on, so I basically work bit by bit throughout the day in random 10-15 minute intervals.
Also a lot of the UI and game event stuff is already bound to the Lua API on the client side, so for instance the bars at the bottom are implemented as the following (which can be tweaked and reloaded on demand without restarting/recompiling the game): https://pastebin.com/raw/QjGqqZe3
>>
>>100102947
That's pretty cool. I might do some stuff with Lua later for my RL to make modding easier perhaps.

But that's gonna go all the way down on the backlog tho. Lots of shit to do before then.
>>
>>100102972
Moddability is great, even if you don't plan to use much of it yourself, just giving people that play your game as a tool to mod it and come up with their own customizations is cool on its own.
>>
>>100102987
Even decoupling game data (xml/json/toml etc) and logic (lua) from the engine seems powerful. Being able to tweak things on the fly without recompilation. Just a restart at most.
>>
>>100103007
Yep, that's why for my custom retained-mode GUI library I chose to make it load the widget trees and styles from JSON.
This is the bottom UI bit for it, you can just tweak and restart without recompiling:
{
"type": "Window",
"id": "Inventory",
"style": "Label",
"size": [400, 400],
"layout": "anchor",
"anchors": {
"bottom": "parent.bottom",
"horizontalCenter": "parent.horizontalCenter"
},
"margins": {
"bottom": 5
},
"children": [
{
"id": "experience",
"type": "ProgressBar",
"size": [180, 14],
"anchors": {
"bottom": "parent.bottom",
"horizontalCenter": "parent.horizontalCenter"
},
"fillColor": "Orange",
"format": "XP: |value|/|maximum| (|percent|%)",
"tooltip": "Click to change the display format."
},
{
"id": "life",
"type": "ProgressBar",
"size": [180, 14],
"anchors": {
"bottom": "parent.bottom",
"right": "experience.left"
},
"margins": {
"right": 5
},
"format": "Life: |value|/|maximum| (|percent|%)",
"tooltip": "Click to change the display format."
},
{
"id": "mana",
"type": "ProgressBar",
"size": [180, 14],
"anchors": {
"bottom": "parent.bottom",
"left": "experience.right"
},
"margins": {
"left": 5
},
"fillColor": "Blue",
"format": "Mana: |value|/|maximum| (|percent|%)",
"tooltip": "Click to change the display format."
}
]
}
>>
>>100103021
Very cool, thanks for sharing.

I still gotta come up with a GUI solution for my game.

I've written down which elements I need in what position, but I've yet undecided on what technical approach I'm gonna take. Whether that's a standard solution (eg ImGui.NET) or something homebrew.
>>
>>100103039
Personally I've found that immediate mode GUI libraries like ImGUI are good for games like FPS and such where it's mostly menus and displaying the current state of the game as a HUD, but for more complex interfaces retained mode libraries are nicer, although your mileage may vary.
What library are you using for your current stuff in C#?
>>
>>100103007
Don't Starve has a C++ core and logic, assets and widgets (graphic interface components) are handled by Lua.
Very comfy. Maybe not the most performant solution, but not like it matters in 99% of the cases, only for turboautists with 10000 days in a save file and a 30 screen area base.
>>
>>100103092
I'm using MonoGame.

I've tried MonoGame.Extended for some things, but found it was an unmaintained and undocumented mess.

I mean even MonoGame's documentation itself is lacking (tho supposedly they're actually actively working it, about time). But I didn't need much from Extended, so I'm just gonna port over the stuff I need manually.

Console release is one thing I want, and I don't want to add too many external deps because that might prove detrimental when I get at the point where I need to build ps4/switch releases.

That's still ways off though.
>>
>>100103130
Nice, good luck with your project, the most important thing is to just stay consistent, even if you don't feel like working on your game because you're stuck on some shitty problem, just push through, spend even just 10 minutes chipping away at the shitty problem until you're past that hurdle.
>>
>>100103166
Thank you anon. I'm a senior webdev by trade, so I know what it's like to work on (side) projects. It's fun to still write code, but work on something different than the HTTP stack.
>>
>>100102255
is there any guides for basic shit like jumping and movement code? im trying to make a jump but it either feels floaty or jarring because it isnt smooth

>captcha: G00XN
funny
>>
>>100103371
You want an easing function, pick one: https://easings.net/
>>
>>100103371
y velocity = y velocity + gravity
>>
>>100103371
Either fiddle with the variables til you get it right, or research the maths:

https://medium.com/@brazmogu/physics-for-game-dev-a-platformer-physics-cheatsheet-f34b09064558

https://2dengine.com/doc/platformers.html
>>
>>100103371
lerp + sigmoid
>>
>>100103388
>>100103461
have you guys made a game before
>>
>>100103398
that's jank and won't feel good
>>
>>100103509
That's literally THE formula, that's what all games use
Jesus christ
>>
>>100103509
That's how jumping works in reality though. If you want something unrealistic, you need to come up with your own formula.
>>
>>100103523
citation needed
>>
>>100103541
>citation needed
https://2dengine.com/doc/platformers.html
>>
File: file.png (20 KB, 1129x265)
20 KB
20 KB PNG
>>100103546
have you read the whole thing? it uses way more than what you posted
>>
>>100103567
velocity clamping does not change the gravity equation
which is velocity = velocity + gravity
which is embarassing not to know as a game developer
>>
v += (a - (v + wind) * drag_coef) * dt
pos += v * dt
the REAL equation
>>
>>100103580
no shit, anon asked about how to make jumps feel smooth, not how to make basic gravity, what the fuck is the point of your post anyways?
>>
>>100103626
that's how you make jumps feel smooth. That will give you a perfect jump, true to both reality and video game physics (which are the same in this circumstance)
If you want to make a jump more controllable then you can do earily terminations using that other method posted
>>
File: polygons.png (23 KB, 806x606)
23 KB
23 KB PNG
Implemented polygons.
Getting more of a handle on push/popping local transforms, might reach over love2Ds Box2D wrapper later and just write the matrices myself for posterity.
Tomorrow's the time to start writing some steering. Still not entirely sure how I want to handle organizing game code. Might just start with bog-standard OOP first, then do a more data-oriented approach.
>>
>want make game
>want make RPG
>look up tutorials
>it's all platformers and shooters

any decent resources for learning to make an RPG? turn-based battles, characters with stats, that kind of thing
>>
>>100103656
I mean that's not really a matter of video game tutorials, that's basic programming that you need to put into code then visualize.
>>
>>100103656
It would be overwhelming to make a complicated game right off the bat. You should learn the basics first, like making a simple tetris game.
>>
File: ui-loading-map-stuff.webm (3.14 MB, 1024x600)
3.14 MB
3.14 MB WEBM
At this point I probably should start shilling my game before I potentially waste time making something nobody is going to play.

There's also some nasty artifacting, I'll need to look into that.
>>
>>100103691
I know but god help me all I wanna do is make dragon quest
>>
>>100103656
It's very easy to conceptualize turn-based RPGs.
You have state, The actors take turns performing actions which changes that state, and you check for conditions after actions are performed:
>Enemy: health 10, Player: health 10(state)
>Enemy bites player!(actor takes action)
>Player takes 10 damage(result of action, state change)
>Player is dead!(Condition checked, system action taken)
The thing to be careful about is Replacement effects and triggered effects, like:
>If Player would die, revive them at 1 hp instead and discard fairy
>Whenever player heals, deal 100 damage to them
Since that makes resolutions much more complicated depending on how flexible things are, but if you're building a basic Dragon Quest-like, the logic should be straight-forward to write.
>>
>>100103496
that's how I implemented my jump
>>
>>100103761
>It's very easy to conceptualize turn-based RPGs.

It's only easy once you've got a lot of programming experience up your belt.
>>
>>100103693
Combat vehicle sim?
>>
>>100103869
That's the plan, yes.
My intention is something in the style of (original) Robocraft, but I still need to figure out how to make it work without any F2P crap since every game with it seems to go to shit sooner or later.
>>
>>100103915
>old robocraft
You plan on implementing the "modular" vehicle building too?
>>
>>100103967
If you mean building a vehicle from scratch with blocks, then yes.
>>
>>100104029
Just looked up what you meant, do you mean RC2's tank track thing?
I don't have any specific plans for that, but there shouldn't be any technical blockers that would prevent me from adding something like it.
>>
roguelikeanons, what do you use for the display? ncurses? some fake terminal sdl abomination? I'm about to embark on my 4th rewrite of mine and I'm going to keep it as agnostic as possible but I'm just curious what the way to do things is these days
>>
>>100104307
Depends on your requirements, can you get away with just ASCII?
>>
File: 1656095395131.png (207 KB, 860x703)
207 KB
207 KB PNG
>>100103844
Hmm, maybe it's more descriptive to say it's 'simple'? What I'm thinking about is that with platformers and shooters, you have a small physics simulation with some degree of approximation over discrete rules like "If player is on ground, they can jump", but what determines if the player is on the ground isn't always clear, could be one of a few raycasts combined with an 'is_jumping' check or some other combination of conditionals.
With most turn-based games, like Chess, the logic is discrete and you're not liable to see floating point approximations or simulation anywhere in the game logic.

You can't turn Doom into a 1-to-1 board game, but you can faithfully recreate something like Dragon's Quest with pen and paper rules, using decks/dice for probability stuff.
>>
Turn-based games are simpler from a game design perspective
From a programming a game perspective simple action games like platformers are simpler
>>
I have a really good idea for a roguelike but I don't know how to code

it would be ascii or simple pixel graphics

what language or engine do I use
>>
>>100102804
Nice
>>
>>100104411
Not really, the biggest issue when implementing turn based games is not the programming part, it's the interaction of various stats and rolls and so on, if I had it all laid out on paper, I could implement it easily, just the upfront work that's required into designing all interactions is what's hard.
>>
>>100104777
Turn based games require you to program explicit state management to turn a real-time program into a turn-based one and usually you have to program a user interface aswell
Turn based games are easy if it's just a command line game sure but a basic JRPG is much harder than a basic platformer
>>
>>100104804
>Turn based games require you to program explicit state management to turn a real-time program into a turn-based one and usually you have to program a user interface aswell
I'm aware, but I've done both before for a video game and it's not complex, I actually wanted to tackle a turn-based game first instead of >>100102822 but I figured I can't be bothered figuring out how to balance out character classes and stats, with a real-time ARPG I can just add a bunch of stats and throw players at monsters.
>>
>>100104448
>what language or engine do I use
The one you are most comfortable with. That kind of game can be written in any language.
>>
>>100104834
I'm not saying "It's complex" I'm saying one is more complex than the other
Platformers are babbys first video game project
an RPG requires you to be a real programmer
>>
>>100104860
>I'm not saying "It's complex" I'm saying one is more complex than the other
I think it depends on your mental model of a game, I can't think of a single thing (programming-wise) in a turn-based game that would be inherently more complicated to implement than a real-time game but I guess it depends on how you look at it and your level of expertise.

>>100104448
What >>100104844 says, a game like that can be made in virtually any technology, if you're new to programming, I'd just recommend using Love2D, it supports everything you'd need out of the box for a such game, and uses Lua which is one of the simplest languages out there so it should be easier to grasp for you.
>>
>>100104844
maybe game maker then, I used that a bit like a decade ago and made a platformer
>>
>>100104891
A simple platformer is a real-time game
A simple RPG is a turn-based game overlaid over a real-time game. There are still animations and effects happening in real time, but there's a turn-based superstructure operating ontop of it. It will also require a GUI
>>
>>100104891
>>100104909
I've used Love2D and Gamemaker and GM is much easier for what you are trying to do, so if you have experience just go with that. Love2D is great but it makes you do literally everything from scratch.
>>
>>100104860
Any genre can be complicated depending how you design the game.
>>
>>100104914
If we compare apples to apples, say turn-based RPG vs. real-time RPG, then the only difference would be implementing real time movement vs. turn queue, in either case, I wouldn't say that one is any more complex than another, just a different way to approach the update game logic.
>>
>>100103656
The first game I ever made was an RPG, with 6 hours of gameplay. I thought it would only take a year, two years max. It end up taking me 5 years to complete the whole thing.

I didn't find the programming to be the most difficult part (and I was still a beginner). My initial approach was to start adding a lot of stuff quickly (maps, NPCs and dialog, art, music).

As I churned out more stuff in the first two years, I started to dislike the earlier content (it was not as good or polished). So I remade a lot of it. In the process of that I started to tweak some things (based feedback, some things too hard or too easy). In doing this, I did also tweak the character and the battle system. And now the content later in the game is off balance. So I rebalanced that as well.

The thing with the rebalancing is that, I had to play the battles to do this. It was quite tedious to replay and retweak. I didn't expect to have to play my own game so much to get things right.

In hindsight, being more experienced, if I was to make another RPG I would make a version which was more "hackable" to testers (so they could edit a .txt file or .csv or something to tweak the game themselves).

But also maybe relying on formulae more and plotting curves to visualise stats (not merely fiddling with numbers in the code).

Last thing I would do is add some automated tests. Abstract away the battle system code so it can be called easily in code. So the test would ensure things like level 5 fighter that always mashes melee should always beat level 3 creature, but level 10 should be too tough. That way, if I'm messing with something like a particular move, specific stats or growth to address something specific, if my tests fails, it will alert me right away I've "broken" some other part of the game (at the beginning say).
>>
I have finally conquered the stencil and depth buffers.
time to fap.
>>
>>100104448
python and libtcod
>>
How do I do pixel art, particularly isometric RPG pixel art (with modular characters)?
>>
Hello sir I want to create a game but can barely use a computer so programming is out of the question. Can I just prompt Chat GPT4 or something and it gives me a game I can sell?
>>
>>100107203
yeah just tell chatgpt to make the entire game for you real quick
>>
>>100107215
Thank you sir that is what I want can you provide the necessary information for this to happen?
>>
File: tileset progress.png (679 KB, 3821x2087)
679 KB
679 KB PNG
>>100106999
by doing it a lot
>>
>>100107230
NICE
>>
>>100107230
Comfy
>>
File: 1710492088815593.jpg (79 KB, 798x739)
79 KB
79 KB JPG
>>100107230
what does that in the lower right corner spell out?
>>
>>100103509
>gravity is jank
Holy dunning Krueger
>>
>>100106999
You just need to practice drawing/painting in general. Once you do enough, it'll become very easy to do art with any tool.
>>
>>100104080
No, just the general building block system, like the last Banjo game. It's an incredibly underutilized concept, loooking forward to updates anon.
>>
what do i call my gayme >>100108064
>>
>>100109123
Something with "Calc" in it.
>>
File: ui_test.png (129 KB, 821x670)
129 KB
129 KB PNG
Work on the UI continues and is going pretty neatly. Font rendering works well, although my first approach was way too slow - now it runs at refresh rate of the screen. Layering of windows also works, now it's time to add movability and drag&drop support.

Once it is done - my OTTD/railroad tycoon clone will finally commence, starting with terrain generation.
>>
>>100109857
>Font rendering works well
Bro it looks like shit
The kerning is terrible and there's spurious pixels on the right edges of letters.
Just use freetype like a normal person
>>
>>100110396
I am using freetype. I know it looks like shit. But it works well - I can print shit on screen and make menus and labels and stuff. It properly alpha blends over UI widgets and so on. For now, this is all I care about.
>>
>>100109857
use directwrite or gdi for the love of god
>>
>>100110396
>>100110594
don't be so disparaging
he can easily fix it
>>
>>100109857
Red line going under the building but green line going over it bothers me
>>
>>100110484
>>100110642
fair enough.
>>
>>100104448
tcod or libtcod

https://rogueliketutorials.com/tutorials/tcod/v2/
>>
>>100113205
Alternatively for .NET there's RL.NET, RogueSharp and GoRogue.
>>
>>100106999
https://youtu.be/YN7X0NfxjPc then you need to make the characters fit the tiles
>>
I'm going to implement a quad tree but it's gonna be an array and there's nothing quad about it
>>
>>100113550
>quad tree
>nothing quad about it
what did he mean by this?
>>
>>100113925
it's actually a list of structs
>>
>>100103398
>>100103509
>>100103523
>his game doesn't have contragravity
https://youtu.be/21uFCUFzrmI?si=-Fs_d-2gSxYNDxFB
>>
>>100115952
what, you didn't implement quantum physics for 2d pixelshit platformer? pff. just quit already, loser
>>
*bumps into goblin*
>>
File: goblins.webm (884 KB, 1920x1080)
884 KB
884 KB WEBM
>>100116593
smol progress update anons
>>
I'm learning the GLTF format so that I can import a scene (sponza), but there's something that bothers me.
In the official GLTF sample repo, sponza has a single mesh and a single node:
https://github.com/KhronosGroup/glTF-Sample-Models/blob/main/2.0/Sponza/glTF/Sponza.gltf

That doesn't make any sense to me since this is a scene with multiple objects instanced multiple time.
And if I import it to an online viewer like
https://playcanvas.com/viewer, It says that it has 103 meshes!

The worse part is that in vulkan samples, their sponza actually has 13 meshes and 13 nodes (makes sense this time).
But the readme says that their sponza model actually comes from the gltf repo!!
>"Model taken from the Khronos glTF sample model repository at https://github.com/KhronosGroup/glTF-Sample-Models/"
>>
File: sponza-gltf-blender.png (3 KB, 129x51)
3 KB
3 KB PNG
>>100118263
Importing it in blender I see only 1 model with 1 large mesh (and many materials), which is what I expect for that file.
playcanvas.com doesn't work for me (network error?), so can't check that
Why they made it one huge mesh I don't know.
>>
Why do RPGs have a defence stat? Wouldn't it be better to just have HP? Or is that just tabletop autism?
>>
just implemented chunking and it reduced collision time with my terrain from 12000 microseconds to around 50
great success
>>
>>100118655
Awesome job anon!
>>
>>100118486
Thx, glad it wasn't me then.
>>
>>100118486
blender imports everything as one mesh, doesn't matter if it's gltf or another format
I have no fucking idea why they do this
>>
>>100118713
Doesn't seem to do that for me, at least when importing the glb files I export from it.
>>
>>100118263
yes one node and one mesh.
node only exists to contain the mesh. the mesh is split into multiple different parts that read different portion of the sponza.bin and use different materials. this is likely why playcanvas shows shows 103 meshes.
i'd assume that this version of sponza is more for testing geometry and material rendering and less for describing an actual scene in gltf.
The vulkan sample likely uses a different version of this model.
i recommend that you reread the gltf spec. it's quite understandable.
>>
>>100118263
there is 1 scene
there is 1 node
there is 1 mesh
there are 103 primitives in that one mesh
the usual implementation will render a single mesh with a separate draw call for each primitive, or you can combine all primitives with the same material in to a single draw call, it's really out of scope for the specification to tell you how to handle primitives.
>>
>>100118774
>>100118815
>"The mesh itself usually does not have any properties, but only contains an array of mesh.primitive objects, which serve as building blocks for larger models. Each mesh primitive contains a description of the geometry data that the mesh consists of."

Yep, I got confused by the online viewer which called the primitives "meshes".

>i recommend that you reread the gltf spec. it's quite understandable.
Indeed, I didn't pay enough attention.
>>
>>100118746
hmmmm
I think it might depend on the file you're importing, since it can be exported by other software and each exports differently. try exporting it back in blender and compare the contents of the original file and the exported one, it probably looks different
>>
>>100102559
but how do you read subs while working?
>>
>>100119369
Shrimple. Third monitor.
>>
>>100119369
have your gf read those for you
>>
>>100119369
It's all just grunting and other Asian noises really.
>>
>>100119676
yes, thats why I need subs anon
>>
File: dungeon.webm (1.45 MB, 1920x1080)
1.45 MB
1.45 MB WEBM
>>100117397
>>
>>100119751
i like how the tiles outside your vision seem to be using a different palette instead of just using blending to make them darker
do you have two different textures for each tile?
>>
>>100119751
cont.

Making some nice progress here. I had some brief experience with RogueSharp in the past (.NET lib which handles basic mapgen, fov, a* etc), but I decided to play around with GoRogue (another .NET lib which seems more sophisticated and framework agnostic) instead.

I got a lot of cleanup/refactoring to do though. But at least this makes it easy to get the basics working.

>>100119855
Yeah this OGA pack that I'm using has 4 different palettes for each tile variant, depending on brightness. Also 16 floor and 13 wall variations for autotiling.

https://opengameart.org/content/dawnlike-16x16-universal-rogue-like-tileset-v181
>>
>>100107215
you'll see
>>
>>100119523
uhhhh can I use my mom instead?
>>
File: platformer.png (215 KB, 3817x1979)
215 KB
215 KB PNG
since platformers are babbys first game genre I whipped this tileset up last night and ill try to work on getting some gameplay down this week
>>100119369
>>100119676
what shows are even worth watching nowadays?
>>
>>100120641
>nowadays
good anime doesnt need to be seasonal
there's 4 decades of kino to choose from
>>
I can't do progress and college at the same time :(
>>
>>100121698
quit college and work on your game full time then
>>
>>100121698
Unless you have friends/family at a company ready to hire you currently college is a waste
>>
>>100102255
Why is Godot 3D Physics soo fucking bad?
>>
>>100122381
3d is an after thought for the money laundering engine
>>
tfw procrastinating by cleaning up my code
>>
>>100103656

RPG MAKER MV
>>
>>100122381
that's what you get with open source
>>
>>100122381
Terminal NIH syndrome (even by enginedev standards) and excusing any and all flaws with
>muh Godot philosophy
Also, core devs have massive egos and get constantly sucked off by their fanclub, so they suffer from Dunning Kruger syndrome.
>>
>>100102255
I’m trying to make my first game after spending the past month learning how to code. I think I’m overwhelming myself with the absolute scope of it so I’ve decided to lessen it immensely. Now the outline of the project is this:
>Have the player character have 2 fighting styles magic or melee
>The player will be traversing an abandoned garden (I think I will focus on making 7 levels for it)
>Final level will be a boss fight
I think that narrows things down immensely honestly.
>>
>>100122954
it's still very high level
as a start break it down to the smallest graphical thing you need to do, for ex. move a character on a screen
then build up from there
>>
>>100122954
>after spending the past month learning how to code
assuming you have not made pong, make pong
>>
>>100122998
Yup I have been focusing on character movement and making sure the inputs work smoothly.
>>100123077
I have not made a pong yet. I’ll see how far I can get with this little “project” though. If I wind up not doing much I’ll probably make a pong next.
>>
>>100122954
What's your tech stack?
>>
File: head-in-hands.png (35 KB, 1008x436)
35 KB
35 KB PNG
>trying out armature in Blender
>works perfectly
>try in game
>broken
>spend hours figuring out why
>realize I was using global axes in Blender but local ingame
>>
bump
>>
File: team-standup-meeting.jpg (171 KB, 1241x698)
171 KB
171 KB JPG
What were you working on last time?

What are you gonna work on next time?

Any blockers?

Include screenshot if possible.
>>
>page 9
bump
>>
File: image-59.png (35 KB, 526x354)
35 KB
35 KB PNG
>>100128550
Previous: A vainglorious attempt at writing a "scripting language" of sorts which basically has you shuffle around logic gates to create programs. Never got past writing some C boilerplate for the program.
Next: Either jump back to said project or retire from hobbyist programming for good idk.
Blockers: If you count being unable to run or compile the toolchain of the language of choice as a blocker, yes.
My solution was to begrudgingly go back to the language I ran away from (rust) and start writing a VM so I dont encounter programming language lock-in again.
t. Rust GUI anon from an age ago
Picrel is part of of the spec i'm writing alongside the initial implementation of said VM.
>>
>>100129967
I think I understood some of those words. Sounds complicated anon. What do you need it for?
>>
File: yunowork.png (81 KB, 1024x676)
81 KB
81 KB PNG
bump
>>
File: ss.png (1.79 MB, 2364x761)
1.79 MB
1.79 MB PNG
I don't get something when it comes to normals:
Left is some object viewer displaying world normals of the sponza scene, right is my engine displaying the normals (yea obviously).
I have some area that are completely black. But it makes sense since sometimes normals are negatives (0, 0, -1) for the left well in my case, and (0, 0, 1) so blue for the right wall.
Am I missing something?
>>
>>100132248
Blue is #00f
Yellow is #ff0
Probably related
>>
>>100132382
You may be right. It may be my color attachment format (or the swapchain format) that doesn't handle negative values while the viewer does.
Anyway, I'm glad there's no issue with the normals of my model.
>>
non-gamedev here, love browsing your general and checking the picters and webms, thanks all of you
>>
>>100132689
You're welcome anon
>>
>>100131137
>that shading
Aren't you the anon who posted his weird pbr result while following learnopengl tutorial?
>>
File: pbr-compare.png (159 KB, 800x2400)
159 KB
159 KB PNG
>>100133611
Yes.
I also was multiplying normals with the projection matrix, which probably exacerbated these issues. Shading seems to work fine now though.
>>
>>100133649
I really need to do the same as you, especially since you cleared the issues from the tutorial with the way the division was handled.
>>
I have a font atlas I'm using to render fonts. how does this work with chink languages that have 10000 characters? do they all go on one atlas at a very low res?
>>
>>100135342
megatextures
>>
I already know how big the texture will be though
>>
>>100135342
You can fit all the simplified chinese characters in one texture so long as the font size isn't giant
>>
>>100135342
more like a low res blur but yea basically
you represent them as a signed distance field which is smaller and also scales well and since it's also gradient based it think hardware compressed texture formats might do well with it
>>
>>100135342
>putting in non-english
gross
t. ESL
>>
>>100135342
Why would you bother with them
>>
holy fuck why does every online tile map editor suck ass
anyone know a desktop tile editor that works or preferrbly a web app that does the same?
>>
File: file.png (34 KB, 300x300)
34 KB
34 KB PNG
>>100136354
just make one yourself
>>
>>100136354
tilesetter does both blob and wang and can autogenerate templates for tilesets, tiled does blob and doesnt do wang on my old version but might do both on the new one, idk cause i havent updated mine
>>
File: 1688208880448735.png (53 KB, 954x590)
53 KB
53 KB PNG
Okay I feel like I'm going nuts, isn't there a UML diagram for tracking I/O better? Or a venn diagram equivalent?
I have 5 modules and each will have input with one another and I can't figure out a non-shit way to do it without looking like a schizo map. Aka how do I keep AB or DC input to not look terrible?
And before you ask, this isn't for code, I'm just doing it for a resource system and trying to track places where certain goods are NOT being processed
>>
File: buslike-thing.png (2 KB, 256x256)
2 KB
2 KB PNG
>>100136657
"bus" approach might be cleaner
>>
>>100136815
ooh yeah that would work. I swore there was something 'official' but that's clean
>>
>>100136657
I use PlantUML for anything diagram related. Component diagrams might work for you: https://plantuml.com/component-diagram

But there’s also a bunch of other diagram types that work pretty well. Has an online editor as well.
>>
Can game dev get me a WFH?
>>
File: fu1tb59e56831.png (3.72 MB, 2557x2557)
3.72 MB
3.72 MB PNG
>>100135342
I looked up how minecraft does it and it does look like it uses pre-made font atlases generated with hiero. not even micro$oft can figure out fonts.
>>
File: seas.png (161 KB, 3400x2100)
161 KB
161 KB PNG
>>100102255
That completes the sea zones.
Next I have to manually vectorize them, and then use Inksape's random color to assign a random color to each polygon, so I can write a script that assigns SVG ID to every province.
Then I can import it to Blender, save it as FBX file, and throw it to unity.
Hopefully it works out, I do not want to assign +900 ids manually again.
>>
>>100137216
>not even micro$oft can figure out fonts.
You say that but they have a solution that works
>>
File: fu1tb59e56831.png (3.17 MB, 2608x2608)
3.17 MB
3.17 MB PNG
>>100137216
oops
>>
>>100137249
>solution that works
not really. they render each character as a separate mesh without instancing. if you press f3 to look at debug your FPS drops noticeably. if there's too many signs your game freezes.
>>
>>100137274
Now you changed the subject
The premade font atlas with every character in the Basic Multilingual Plane is the best solution for games, very fast and simple to implement
This question has been asked like 3 times and I give this answer and people just ignore it
>>
>>100137243
Nice. making a GSG?
>>
>>100137462
Yeah, something I can't decide is whatever it should be classic turn-based or simultaneously turn.
I have already eliminated the possibility of real-time because that is just too much work.
>>
finally, my XXth rewrite isnt throwing validation layers for a simple triangle
now to rewrite it all again
>>
File: 1713495889413095.png (276 KB, 716x641)
276 KB
276 KB PNG
What is the point of debating OOP vs ECS when 95% of the frame time is spent on rendering?
>>
>>100137826
The GPU does rendering, the CPU does other work in parallel
>>
>>100137573
I'm working on a realtime (or whatever you'd call the Paradox GSGs timestep) GSG. It's not too bad, but I haven't implemented any of the actual province-based systems or AI yet so I have no idea how fucked the performance will be lol.

That map looks nice tho, I'm working on vectorizing a provinces.bmp "automatically" the way EU4 does, I'll post some screenshots when it's presentable.
>>
>>100103092
What retained mode GUIs have the same ability to display lots of complex data as well as Dear ImGui + Dear ImPlot can?
>>
>>100137826
on the GPU ECS is even better, OOP is the furthest thing from dataflow style pipelining
ECS memory access patterns, at least the ones you're supposed to end up with, should be more structure of arrays than array of structures
which is very GPU friendly unless you're dealing with vectors in a specific way on AMD GPU hardware where the optimal access patterns look like this
>>
>>100138183
Don't confuse writing optimal data structures with the terrible software architecture pattern than is ECS
>>
>>100138083
I gave auto-vectorizationa try a few years ago, but ultimately I didn't like the result.
Even EU4 in-game provinces look kinda bad when you remove the border, they are pixelated.

The problem with auto-pixelation is that you either have to make them pixelated or smooth. Pixelated are ugly and smooth stuff will overlap with everything.

Your performance would depend on number of provinces and factions, and how many calculations, do you have to do. So, if you have very complex mechanic with many variables, it's to be a bad performance on Unity and Gedot because they have not been optimized to handle it.
>>
Has monogamy fixed music not looping properly yet? Also, what are the best XNA inspired frameworks? All I know of is macroquad and raylib.
>>
>>100138255
>Also, what are the best XNA inspired frameworks?
MonoGame
>>
>>100138255
FNA
literally a maintained open source version of XNA
and isn't just confined to framework/mono so it can actually benefit from all the more recent additions to .NET
though you might have to run a few migration passes
>>
>>100138156
I don't know about plotting specifically, I didn't meant to say that in the context of data visualization.
>>
going to be making a simple 3D rail shooter from scratch as practice.
Question: How do I do level design when making a game from scratch? Do I design the level in blender? Do I split levels into separate "set pieces" that can be rearranged like how star fox did it?
>>
>>100138320
never mind current targets .NET 7 by default
god i fucking hate the way microsoft fucked up .NET's branding
all they had to do was drop .NET Framework and .NET and only use .NET Core as the main brand
instead they go and decide the .NET Core brand is going to be dropped and its projects are going to adopt .NET Framework's old brand of .NET and pick up its versioning schema
>>
Any love for Unity modding here? I know it’s babby’s first RE but I’m finding it very fun to improve things on a shitty il2cpp game.
>>
I am like most retards here, making a vulkan engine from scratch. I'm using the Vulkan Samples as a reference. I am getting a headache configuring an android window. Considering how spastic the Vulkan Sample entry points are. Also the android NDK seems to defy any sort of logic or reason. Harumph.

>>100138418
Start simple.
If your designing in Blender and splitting into set pieces, your still going to need a simple kind of level template that all your complex levels will be based on.
>>
>>100138183
>OOP is the furthest thing from dataflow style pipelining
Not really.
>>
>>100138183
Gameplay programming on the gpu is the most cursed thing I've read in a while
>>
>>100139655
i meant like offloading shit to compute but thanks for the idea, that's going on the pile of really dumb shit to do with GPUs i wanna try
i fucking love shit like that which is both highly stupid and a good challenge
>>
>>100139730
Definitely sounds like a fun challenge
>>
>>100139655
Doing grid-based simulations like for a game like Dwarf Fortress on compute shaders sounds like a good idea
>>
>>100138083
>>100138225
Different GSG dev here; I made my world map in Illustrator and I just export it as an SVG (aka XML) and have a function that converts all the objects into 2D meshes (then for regular loading and saving I just use cereal).

I think this leads to easier precise border control because there's no conversion from raster to vector graphics; what you see when drawing it in Illustrator is what you get in the engine.
>>
>>100137826
>never mind current targets .NET 7 by default
so does everything else whats the problem
>>
>>100137826
Developer maintainability. Not having a god Entity class with 20k LoC, but instead having everything nicely decoupled, contained, and preferably unit tested.
>>
>>100140751
You think you can decouple ECS but you can't decouple OOP and the only way to program in OOP is a god object?
>>
>>100132248
Left is n * 0.5 + 0.5, the same way normal maps store normals.
>>
>>100138276
>>100138320
MonoGame is like XNA++. It has some stuff on its own that XNA didn't have, but still maintains the Microsoft.Xna namespace for backwards compatibility.

There's also a MonoGame.Extended community packages with even more stuff, but I find it unmaintained, lacking documentation (like MonoGame itself, heh), and sometimes buggy (reported bug issues still open on the tracker for 3 years).

FNA is a pure XNA reimplementation for backwards compatibility, no extra features.

Nez also exists. If MG is XNA++, then Nez is MG++.
>>
>>100140703
nothing, in fact it was a pleasant surprise

the problem was the docs said core
core implies cross platform dotnet < 3, core branding was dropped, so i thought it was going to be another case of "look we technically support newer versions of C# and .NET, see? we're targeting .NET standard" where you'll probably have to run migration tools
>>
>>100140702
Yes, that's what I'm doing, it just't aht I have this obsession to draw a raster first, and use that raster as a reference to trace vectors in Inkscape.
Mostly because I'm obsessed with keeping the provinces of equal size, and Inkscape (as far as I know) can't calculate area size of vectors.
So, the raster is just a sketch.

This might be absolutely retarded approach, but I just find it easier to doodle with rasters than vectors.
>>
File: 1698453180775984.jpg (8 KB, 229x250)
8 KB
8 KB JPG
>>100137826
The better question is why people debate OOP vs ECS when you can use both, especially when it comes to videogames.
>projectiles, simple actors or components, and other simple logic that is more or less identical across lots of entities
ECS.
>player characters, more complex actors
OOP

The only thing that can be a bit annoying is communication between the two but it is still trivial compared to trying to cram all of the above into OOP or ECS.
>>
>>100142637
If you're going through the effort of mixing OOP and ECS you're better of defining your own data structures straight away IMO.
E.g. array for bullets, object for map, tree for gui...
>>
Any experienced physics engine dev here? I need suggestions with solving simultaneous collisions in the case were something get stuck between two opposite surfaces.
My engine resolve penetration by pushing away in the normal's direction, and stack that de-penetration vector when several collisions happen in the same frame. It's simple and work well - in general.

However my game has a lot of crowds and side-by-side buildings (city), and there is always a handful of NPCs who manage to nudge themselves in a building's corner at just the right angle that the separation vector pick the "side" face of the building as the right one instead of the facade. From there they get pushed simultaneously by both building's side into opposite direction, meaning they can move however the fuck they want in-between, until they either exit on the other side of the street or encounter another collider in the back - at which point they stay stuck.

90% of the problem could be hidden by having an algorithm detect side-by-side buildings and giving them a single giant common collider, but that would limit all city blocks to be perfect rectangles.
I have others ideas like using the intruder's previous position instead of the building's normal to decide separation direction, or keeping all de-penetration vectors separate and using a random perpendicular vector if two are too opposites... but before trying implementations at random I would like to know if there is an "official" way to handle the "stuck between two walls" case.

In case that matter for this edge-case, the game need performance & reliability more than physical accuracy, and for all intent and purpose this is 2D with circles and boxes only.
>>
>>100142724
I'm using swept collisions and this problem sounds surreal to me.
>>
>>100142724
You need to consider all the collisions at once. You can't resolve the collision with the circle and wall A then the circle and wall B, you need to get all the walls the circle is colliding with and create a combined collision response.

Alternatively you should just use swept collisions so objects never enter each other in the first place. This is vastly perferable if you have simple physics (ie no rotating bodies) because it's 100% stable and nothing will ever get stuck in a wall unless you teleport it in there
>>
>>100142637
I wouldn't mixing that way, but I agree with you in that videogames are big and complex projects, and they will require different strategies at different points.
>>
File: 8c3.jpg (23 KB, 716x712)
23 KB
23 KB JPG
You know how some games on the PS1 used overlays which would contain code and data, including assets?
What if I stored assets for each part of a game in separate DLLs
So like, a "data DLL" for each asset bundle/group, i.e a common 3d models DLL, a DLL for a specific level, etc...
>>
>>100143082
They're called archive files, like zip or pak
>>
>>100143082
Probably faster loading times at the cost of less flexibility when you want to experiment.
>>
>>100142946
>>100142839
>swept
I have considered it but the reason I'm making a custom engine is because I have a metric fuckton of NPCs, and having time as a dimension make formula more complexes.
And yes I have rotating bodies, although not many. Most objects are either rotating circles (so rotation is ignored when it come to collisions) or non-AABB boxes whose orientation doesn't change after spawning. Actually rotating boxes are pretty rare in it.

...guess I will take a deeper look at swept collisions for [non-AABB x circle] and [non-AABB x non-AABB] and try to estimate if I can afford the increased calculation cost or not.
>>
>>100143259
you can afford to do swept collisions if those are your only shapes
>>
>>100119751
pacodev or just the same/similar tileset?
>>
>>100142659
If you're mixing you're probably not making rigid monolithic ECS or OOP systems, obviously you need to adjust to your needs otherwise making them work together will be a pain.
>>100143081
Even OOP games use ECS-like systems at points anyway. For example, how do you handle simulated projectiles (e.g. not hitscan)? Surely not by making each one of them a full actor that ticks every frame. You probably create some kind of simple structure with a position, velocity, and ID which then some manager class iterates over every simulation step It's not strictly ECS but it runs on the same basic logical premise.

What I'm saying is, just do what the situation requires without worrying about dogmatic divisions or the opinions of bickering tribalistic neckbeards.
>>
>>100140848
why is this the case? seems pointless to have a normal that is negative(in the normal map), so other then rendering the normals for visualization seems to waste precision...
>>
>>100143400
>Surely not by making each one of them a full actor that ticks every frame
yes, why not?
>>
>>100137251
I was thinking of doing the same for the text in my game. If it's good enough for minecraft, it's good enough for me.
>>
>>100143297
>you can afford
I'm on a *really* tight calculation budget, but guess there will be no way around actually implementing it to try.
>>
>>100102255
>djinni
Just seeing this gives me a teenage adrenalin rush. How has nethack changed in the last 20-30 years? Is it leas buggy, at least? I’ve been a crawl-only for years
>>
>>100143432
Depends on how actors are implemented in your engine (mostly how much overhead they have, e.g. in my case actors are objects that have a transform and representation in the world), but also why would you shit up your tick with multiple ticking entities like that?

If you're working in Unity, UE, or Godot, this goes double since actors and tick graphs really benefit from you not shitting them up with a tiny 20 byte set of data that could just be a struct, but you for some reason decided to register for tick. This goes for your own engine too, but depending on how its set up it might make less of an impact.
>>
>>100143484
if it's just circles vs lines the algorithm for sweeping them is just as fast as intersect + depenetrate if not faster
circle vs circle it's faster to do an intersection test, you can consider having moving objects simply push each other and circles vs walls can be swept
>>
>>100143400
>For example, how do you handle simulated projectiles (e.g. not hitscan)? Surely not by making each one of them a full actor that ticks every frame.
I'm pretty sure that's how terraria does it.
>>
>>100143506
Do you have any idea how fast computers are? We've been able to afford projectiles the luxury of their own update function since the 90s
>>
>>100143537
Define projectile
How many of them
>>
>>100143583
tens of thousands
>>
>>100143537
Depends how many projectiles you have. If you have 20, knock yourself out. If you might have 200, adding 200 entries to a tick graph is a needless waste of performance. Also depends on how big they are, which is where overhead comes into play because just calling tick is only a part of it, you then have to do logic in that tick.
>b-but I have 32GB of RAM
You may very well have, and maybe everyone who is going to play your game will too, but none of you have 32GB of cache memory, and cache misses are expensive.
>>
>>100143506
>>100143616
>being a jew over a few hundred bytes in 2024
Not sure if based or deranged
>>
>>100143616
What's a tick graph?
You look very foolish saying "you need a top of the line computer to do this" when it was literally what games in the 90s did
>>
>>100143643
-ACK
>>
>>100143650
Tick graph, tick groups, whatever you wanna call it. Point is, somewhere there's a storage of stuff that needs tick called on them, and depending on how complex the logic is adding hundreds of entries might have an inordinate effect on frametime.

Yeah it's probably gonna be in the microseconds anyway, so what? Why would you intentionally make things less efficient when the alternative solution is faster and, most of the time, easier too?
>>100143643
If you're making a game you don't need to worry about a few hundred bytes. If you're making an engine however, you should because you might use your engine for something you didn't even think about in 5 years time. Do it properly and it will make your life a lot easier when you want to re-use your work for something else.
>>
>>100143742
A "tick graph" is a fucking list of objects. That's it. You add objects to the list and you call the update function on them. It's not complicated
Imagine thinking you can't add 200 objects to an update list, lmao
>>
>>100143520
Don't look at Terraria, look at Noita.
Don't look at Dwarf Fortress (>>100143681), look at Songs of Syx.
>>
>>100143756
>A "tick graph" is a fucking list of objects. That's it.
As long as you don't need tick groups, order of ticking, and tick dependency.
>>
>>100143834
Well if you want multiple phases then you can just add another list, typically there's no complicated update order, especially if we're just talking about dumb projectiles
>>
How hard is it really to start a successful game company? I’ve read and watched so many success stories like Activision and Nintendo that I can’t help but ask. Bobby literally came in when Activision was broke and turned it around to be super profitable. How can I do that starting from scratch? Considering that’s better than inheriting a company with massive overhead like rent and utility and on the floor staff.

I understand I’m probably asking the wrong people but Reddit is also not a good place to ask.
>>
>>100145550
start by making a good game which exceeds expectations. then you go to your bank and make them salivate by showing your amazing returns to bait them into giving you loans to expand your game company. repeat until you're satisfied or bankrupt.
>>
>>100145550
Why are you looking at massive companies with government bailouts and investors and not people in a similar position to you?
>>
>>100145626
this
>>100145550
don't look at those successful game company as one night wonder. They slowly grown by first making good games and now by milking their consoomers.
>>
>>100145550
>Bobby literally came in when Activision was broke and turned it around to be super profitable
By doing tax evasion legally.
Those companies grown at the perfect opportunity and it's impossible to replicate those.
It's all risky and hard work, but game company comes at different flavors so there might be an opportunity by just selling game assets.
>>
File: damage-trim2min.webm (3.94 MB, 1024x600)
3.94 MB
3.94 MB WEBM
>>
File: maxresdefault.jpg (126 KB, 1280x720)
126 KB
126 KB JPG
>>100147116
>>
>>100147116
Inspired by Robocraft, Crossout, or something else?
>>
>>100147295
Robocraft mainly
>>
Added basic gamepad support...
>>
>>100147884
>pander to zoomers with gamepad support
now you have to add touch control support for the alphas.
>>
>>100147969
That's my next step actually, thankfully raylib has apis for all that stuff.
>>
File: renderdoc_prob.png (20 KB, 514x357)
20 KB
20 KB PNG
I'm working on debugging a weird flickering and artifacts I have with some textures. Using Vulkan 1.0. I tried to use RenderDoc but I get the error as in pic-rel. It is something about alignment of memory, but I am using VMA, so I guess it is handled by such?

Also - 0x10000 alignment is kind of high? BTW - how do I get from VkHandle to whatever Render Doc is using?
>>
>>100148287
Also - I am using the capture right after capturing it - in my own GPU, so the error message is misleading.
>>
>>100109123
>Calc
Savant Trainer 9000
>>
>>100145550
Try and dig up some of the old stories that used to get discussed about the Mechwarrior 2 development, it was legendarily fucked up with massive turnover and if the game failed they certainly would have went bankrupt. The record is quite clear that you need a hit game to be a successful game company. Easy, right? Nintendo was a much different story, they had tons of patents and are just as much a hardware company as a game company.
>>
>>100148287
Validation layers don't complain about anything?
>flickering
Are you using non-uniform descriptor indexing by chance?
If yes, you're using nonuniformEXT()?
>>
>>100147116
What do you use to store the data for all the blocks?
>>
>>100149489
If you're talking on-disk:
Block attributes are partly in gltf file, partly hardcoded. Once I figure out how to read extras with the gltf lib I'm using I'll move the hardcoded attributes to the gltf file too.
For vehicles it's just a plain (sorted) list like
# X Y Z block orientation
-1 3 3 cube 4
-1 3 4 cube 4
-1 3 5 weapon.laser0 0
-1 4 2 cube 13
-1 4 3 cube 21
-1 4 4 cube 4
-1 4 5 inner_corner 2
-1 5 2 cube 13
-1 5 3 cube 21
-1 5 4 cube 13
-1 5 5 edge 8

Not very efficient but simple and good enough for now. Also easier to debug if something would go wrong.

At runtime: currently hashmap, but I might change it to some sort of tree, or a hybrid of hashmap/tree/... I'm not going to invest too much time on it until I've got proper benchmarking infrastructure set up.
The damage structure uses a hashmap for position -> index, then stores ID/health/connections/... in an array. I do this since I intend to add multi-voxel blocks at some point. It might also be useful for only allowing specific sides of blocks to be connected to other blocks, if I ever implement that.
Information from the gltf file is stored in a "BlockSet", which has a mapping from name to ID and ID is just an index in an array. Other data structures using blocks use IDs.
>>
>>100145550
You need a hit game or a lot of money, neither of which you have, why are you even asking?
>>
REEEEEEE I just spent 2 hours trying to solve a bug but turns out it wasn't a bug at all
>>
>>100141434
>Mostly because I'm obsessed with keeping the provinces of equal size
This was a similar and major concern for me. Not that Illustrator can't show shape size (it can via a plugin) but because I don't want to have to check that while drawing.

To achieve rough size uniformity I did a coastline outline first (pen tool), then made a copy of it, set to no fill and the stroke to be a dash, with the dashes very short and spaced out according to desired tile density. Then I did a path offset inwards by a similar quantity, repeatedly. Once this reached the interior of the landmass I would take all the shapes and do Outline Stroke and then ungroup. This left me with a bunch of tiny rectangles roughly evenly spaced, which I used to generate a Voronoi diagram, then roughly traced the diagram with the Pencil, which gave me a kind of sketch guide for approximate province volume. I was then able to trace out the actual tile shapes with the Pen tool, while having a guide for size.

There were some intermediary cleanup steps as well; in particular certain larger landmasses were done in separate sequences, especially when I wanted slightly different province density (important centres of human civilization got more smaller tiles, but not as pronounced a difference as in Paradox games).

Technically this was all vectored; Pencil tool can be set to copy tablet input exactly, but it does draw vectored curves.
>>
File: DrawCalls.png (609 KB, 2484x1200)
609 KB
609 KB PNG
Running into an issue with drawing a polygon and rotating it around it's center provided by Box2D in Love2D. I have it set up to move toward the mouse:

function Polygon:update ()
self.body:setLinearVelocity(unpack(vec_scale(norm(vec_diff({love.mouse.getPosition()}, {self.body:getWorldCenter()})),50)))
self.body:setAngle(clockwise_angle_from_right({self.body:getLinearVelocity()}))
end

function Polygon:draw ()
cen_x, cen_y = self.body:getWorldCenter()
loc_x, loc_y = self.body:getLocalCenter()
new_points = {}
for i,point in ipairs(self.points) do
new_points[i] = point - (mod(i,2) == 0 and loc_y or loc_x)
end
love.graphics.push()
love.graphics.translate(cen_x,cen_y)
love.graphics.circle('fill',0,0,10)
love.graphics.rotate(self.body:getAngle())
love.graphics.polygon("line", unpack(new_points))
love.graphics.pop()
love.graphics.line(cen_x,cen_y,vec_add(cen_x,cen_y,self.body:getLinearVelocity()))
end


The constraint that the angle always matches the mouse is met, but I'm trying to reason about how to get body to rotate around it's center of mass(getWorldCenter)
>>
>>100145550
Make 20 small-scope, high-quality games, and hope that one of these gains some popularity, then keep doing continuous free updates to keep your userbase around on Discord and other social media platforms, while hiring a team to work on a larger scope game.
>>
wasn't this in another board before
>>
>>100152810
You're not translating it back after rotation?
>>
>>100152888
>Make 20 small-scope, high-quality games, and hope that one of these gains some popularity
I think this is bad advice, any high-quality game takes effort to make, and you won't just randomly stumble on a good idea by putting quantity over quality
>>
>>100152937
more important that coming up with good ideas is developing the skillset to refine a game to the point where it's not objectionable to the average video game consumer. Somebody who can come up with a good idea, imbue it with marketable qualities, and then execute on it to a high degree is already a master at the craft and doesn't need advice from 4chan. If you just want to find satisfaction in dedicating your life to video games, all you need is to refine and market.
>>
>>100152966
>more important that coming up with good ideas is developing the skillset to refine a game to the point where it's not objectionable to the average video game consumer
I agree, but 20 high quality games is going to take ages
>>
>>100153017
If you want to be Lucas Pope, then sure it'll take a lot of time. I want to be Lucas Pope too. But there's plenty of people in the industry who aren't Lucas Pope, who genuinely have never had an original idea, but are successful because they are extremely efficient at putting together high quality versions of whatever FOTM indie game is popular. If you want to start a company, be that guy.
>>
>>100147116
remember to add lots of explosions in the final game
>>
how many atlases are too much in raylib? i dont feel like making one giant atlas for my game
>>
>>100153143
putting together high quality versions of whatever FOTM indie game is popular takes months of work
>>
>>100152542
Sounds goods, hopefully something comes out of it.
>>
>>100153156
yeah 4-6 months at least, which is fast for indie development
I'm not the anon who pulled out the 20 number; something like 5 over the course of a few years is more reasonable
>>
File: steer.png (16 KB, 806x606)
16 KB
16 KB PNG
>>100152930
I'm not sure what you mean.
The two transforms I'm doing are:
- Translating to the center of the body
- Rotating the coordinate system
Those should both be reversed by the transformation stack with `love.graphics.pop()`.
>>
>>100153267
Typically when you want to rotate an object around its centre, bearing in mind that rotation rotates around the origin, you translate the object so that its centre is now located at the origin, perform the rotation, and then translate it back.

Now I'm not sure exactly where the rendering portion of your function is taking place, but if it's occurring at
>love.graphics.polygon("line", unpack(new_points))
then bear in mind that at that point, your object is rotated correctly but its centre is located at its origin, not at its original centre, when that line happens. What you would want to do is translate, rotate, translate back, and then use that resulting transform matrix to render your object.

But I don't know what kind of niggerlicious stuff love2D is doing behind the scenes. Just explaining how rotating an object typically works.
>>
>>100152937
problem is that video games are a coinflip, plenty of garbage games that some streamer randomly plays and they blow up, and plenty of quality games that are quickly forgotten, so quantity-over-quality kind of works to gain initial steam
>>
>>100153410
>problem is that video games are a coinflip
The problem is that they aren't
Quality matters, it's not a matter of flipping the same coin over and over again until you get lucky, good games become popular
>>
I keep overthinking my data formats and just need to sit down and write the contents out
>>
>>100153463
I find that most of the time it's fastest and most robust to just toss a bunch of numbers in arrays and use tests to enforce rigidity of the format. Then the same tests are easily tweaked to alter the format when I need to.
>>
What's the best engine that'll help me learn on windows? I want something that just werks. I don't want to do configuration. I want to hit the ground running. Love2d seems nice but lua is not very fun for me. Any other ones?
>>
>>100153652
XNA aka Monogame
>>
>>100153321
Thanks for the info.
My current assumption is that drawing is done all at once by Love2D and that the "transformation stack" handles the pushing and popping of translates, scales, rotations, that have been made with love.graphics.push/pop prior. To wit, they provide this code for drawing rotated rectangles, which seems to conform to the pattern of translating to a new origin, rotating it, and translating it back:
function drawRotatedRectangle(mode, x, y, width, height, angle)
-- We cannot rotate the rectangle directly, but we
-- can move and rotate the coordinate system.
love.graphics.push()
love.graphics.translate(x, y)
love.graphics.rotate(angle)
love.graphics.rectangle(mode, 0, 0, width, height) -- origin in the top left corner
-- love.graphics.rectangle(mode, -width/2, -height/2, width, height) -- origin in the middle
love.graphics.pop()
end

and in the `love.graphics.translate` docs they say:
>This change lasts until the next love.draw call, or a love.graphics.pop reverts to a previous love.graphics.push, or love.graphics.origin is called - whichever comes first.

I'll check tomorrow if the physics stuff still works as expected as a sanity check.
>>
File: cursor.png (6 KB, 160x229)
6 KB
6 KB PNG
>>100148466
Validation layers are silent. It is one of my principles here - addressing every issue raised by them. My rendering pipeline is as static as possible. Flickering is rare - but I get the artifacts as pin pic rel - which suggests some texture transfer memory issue.
>>
>>100154458
Nothing for Synchronization?
>>
>>100154690
Nothing. Just some deprecation messages for the way I get the debug tools. Since Renderdoc does not work, i can't even eyeball the issue. Which is transient. Sometimes everything just works.
>>
>>100154753
Well, if there's no validation message not really anything we can do unless you care to share the source code - or at least all the relevant portions - somewhere.
>>
File: 1698875607213389.png (510 KB, 573x472)
510 KB
510 KB PNG
not sure if caching entities with std::unordered_map is a good idea.
>>
Is there a 3D model that shows you what a mesh/texture is supposed to look like under each graphical effect so you can know whether you're doing them right?
>>
>>100155508
It's not bad at all, but if you eventually determine you need to do optimization in that area, unordered_map does leave a lot of room for improvement (such as vector with a bit of bookkeeping).
>>
>>100107230
is this a personal editor that you created?
>>
>>100152913
>>>/vg/agdg
>>
>>100108391
NICOTINE
>>
Is there a good resource out there to check computer specs over the years?
>>
>>100156431
Steam has statistics surveys, there's some website which lists the OpenGL features all hardware supports
>>
>>100142724
>>100143484
If you really can't afford to do swept collisions for every entity you could consider using it as a fallback for when the normal collision resolution fails, which wouldn't be too bad if this only happens to a handful of entities. If an object is still colliding after applying the de-penetration vectors, go back and try the movement with a swept method.
If even that is too expensive, you could just cancel out the movement that frame entirely.
>>
>>100156442
I wonder how representative steam is. Do the majority of computer players have steam account? I never had one and my pc is quite shite.
>>
>>100120641
very nice aesthetic
>>
>>100157492
Do you expect people to buy your games?
>>
>>100157492
>Do the majority of computer players have steam account?
yes
>>
>>100157697
>>100157566
Proof?
>>
>>100156068
No that’s tiled, it’s not feature complete but useful
An editor is something I plan on doing but it’s low priority
>>
>>100157713
Have you ever played a video game on your PC before?
>>
Say I haven't made a game yet, especially a 3D one.
To maximize my learning, what graphics should I do? Hardware rendering with modern OpenGL? Legacy (FFP) OpenGL? Software renderer?
>>
>>100157492
Don't listen to people like >>100157566 >>100158098, they're in their own little bubble and don't understand things might be different outside of it. Usually they started PC gaming with Steam somewhere around 2008 and think PC gaming = Steam.

It really depends on what your game is. Steam has a very large established userbase but its far from the only one, and may not even be the biggest. Riot games (specifically LoL) has player counts in the tens of millions, Roblox has 70 million active users daily, that's about twice Steam's all time peak. Fortnite has a concurrent player peak of 14 million a few months ago, which is almost half of Steam's all time peak just in concurrent players in a single game. You then have the Chinese stuff which is quite cut off from the western world but is massive.

It comes down to where you think your game can gain traction and what audience you are targeting. If you've gotten traction among the Fortnite kind of player (either by advertising/shilling or whatever) then EGS is a very good bet. If you, for some reason, got traction among the Skibidi Toilet viewers, well then you can use just about anything since these people are coming in from their smartphones and its unlikely they give a shit where your game is.

Basically, research what your audience is like. Releasing on as many stores as possible isn't a bad idea, just keep in mind the different cuts stores take (if you get the choice, you'd prefer to sell a copy on EGS than Steam due to the 12% cut vs Steam's 30%). Plenty of games do just fine without a third party store too, but then you can't rely on any in-store visibility. Also never neglect the Chinese market, a simple Chinese translation and some extra work to get it into that market can make you a fortune.
>>
>>100158401
Steam is the dominant PC gaming platform you idiot, it's the McDonalds of PC gaming
EGS is a failed Steam clone
If you're making an indie PC game then it goes on Steam, period
>>
>>100158413
You're a retard and I'm not gonna waste time explaining to you how to make your game sell more. Hint: a platform having more users (and therefore more games, too) doesn't necessarily translate to more sales for you (in fact it might have the opposite effect).
>>
>>100158461
>Hint: a platform having more users (and therefore more games, too) doesn't necessarily translate to more sales for you
Yes it does, holy fuck
Have you sold a game?
Suggesting ECS as an "alternative" to Steam when Timmy is no longer giving out handouts is one of the dumbest things I've ever read, right now it's Steam or nothing
>>
>>100158401
LoL, Valorant, Roblox, and Fortnite are all free.
Before I had a Steam account, I would but games on developers websites, but I now haven’t done that in more than 15 years.
>>
>>100158480
>Yes it does, holy fuck
kek, good luck I guess.
>Timmy
>brings up Tim Sweeney instead of just saying EGS
Case in point, being a Valvedrone (or a fanboy for anything else, for that matter) isn't a good idea when you're in the business of selling a product.
>>
>>100158521
I'm not a fanboy of anything, these are just market realities, meanwhile you've typed up several paragraphs of complete nonsense
You are not making LoL or Fortnite, you do not have a billion dollar game, Steam is pretty much your only choice for PC games
>>
>>100155671
I don't get what you mean. rephrase your question

>>100158382
>Hardware rendering with modern OpenGL?
this
>>
>>100153585
I mean it's a dead simple format, I just needed to hammer out what is actually going in there. I settled on something I can tweak easily down the road and parse easy and moved over a lot of code to just be data entries. successful evening
>>
How do you even do a dotted line? I just started using monogame. I have a line. Now I want it to be dotted/dashed.
One idea that I got is to get the distance from two points and then at some intervals, I skip some pixels and I just don't draw anything. Is that the best naive implementation or is there something more sophisticated that I'm missing?
>>
>>100160320
make a quad and map a repeating texture on it
>>
>>100160418
>make a quad
wtf is a quad, english please, like I said I just started.
>>
>>100160570
2 triangles



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.