2D sprite based game dev

Here's it guys.
I'll bite the bullet and I'll start a huge project and I need a bit of your coordination.
I have messed around with 2d games, I created bomberman(clone) using allegro but it was 10 years ago.
I need some sources on animators(classes), resource management, how to build a basic window system for the dialog boxes in the game, e.t.c..
Collision? Not so important, collision is only for the clicks, think something like civ III.
Physics? Don't care, not a platformer.
I can't find relevant books. The ones I checked just teach you sdl and some simple shit.
I need to read about the basics of tiled diagonal terrains(e.g. battle of wesnoth) and I cannot find a good source.
Tools I will use:
Sdl2, no plugins, no h/w acceleration(not needed)
C++(check orthodox c++)
Algorithms: path finding.
AI: no idea about complex game ai. The game will have turn based battles.
Any help is appreciated and also shitposting is appreciated.
Finally, Jow Forumsamedev general for those of you who want to ask questions.

Attached: xLkZI1nl.jpg (361x640, 45K)

Other urls found in this thread:

love2d.org/
medium.com/rock-milk/why-godot-engine-e0d4736d6eb0
amazon.com/Animators-Survival-Kit-Principles-Classical/dp/086547897X
amazon.com/Illusion-Life-Disney-Animation/dp/0786860707/ref=pd_sim_14_1/133-1929098-9251740?_encoding=UTF8&pd_rd_i=0786860707&pd_rd_r=00a7e266-1d37-11e9-b113-3f4681716abd&pd_rd_w=rinwU&pd_rd_wg=fRI7E&pf_rd_p=18bb0b78-4200-49b9-ac91-f141d61a1780&pf_rd_r=N277K8CSTK0CC6JPYV5F&psc=1&refRID=N277K8CSTK0CC6JPYV5F
arewegameyet.com/
youtube.com/watch?v=yhGjCzxJV3E
my.mixtape.moe/czufst.jpg
my.mixtape.moe/wvzbnl.mp4
my.mixtape.moe/qycmij.mp4
my.mixtape.moe/bplczg.mp4
twitter.com/NSFWRedditGif

unity? unreal?

Which pic are you talking about?

try /vg/agdg

Op here. Ohhh man, what a bitch. I had that pic 2 years on my phone.
Too complex for what I want to do, plus unnecessarily too much overhead for no reason.

If you're interested I could share the sourcecode of my personal project im currently working on.
Its in C# using XNA but you might be able to reverse engineer some parts from it.

I checked them about a year ago when I was doing a 3d engine with opengl.
They are in very primitive level, they use mostly game maker unity and unreal.
My questions have mostly to do with
>how to format save files
>how to minimize memory usage when creating the terrain
>is A* suitable for path finding?
>how should I register the clickable elements on the screen to have optimal cpu usage and easier management from my side
>...
As you see my problems are more specialized on the game design aspect rather than getting some sprites and digging into whatever scripting language the game engine offers in order to glue them together.
That's why I phased out unity, unreal, godott and I am aiming for sdl.
I want to check also how to implement the scripting language running on my engine.
Why start from scrarch? I have an engine where I can get some elements for the game, so I am not starting from scratch.
Also, some game engines don't let me get as agile as I want.

Thanks man for the offer. I was looking for the theoretical aspect of the game programming. Not that I don't want your code, but there are a lot of games out there to check.
One question that I couldn't answer with checking quake's code was: should I use skeletal animations or not?
That's the part where I left my previous 3d graphics engine because I created an .obj parser and stuck 2 weeks trying to find a decent source on animations. Shit hit the fan, lost my free time due to more work and the project is on a hdd for almost 1 year without changes.

rawrr xD

>start a huge project
lol, fail with a small project first

I said in my first post that i have already made bomberman using nintendo's sprites and I run it under linux natively.
I have a 3d graphics engine using opengl, that supports several rendering features but has stuck in the animation part.
All of those projects are eound to 10k loc each.
By huge I don't mean loc, but complexity. Implementing A* for path finding could take you a couple hundred loc, this doesn't mean that its complexity is comparable to any other 200loc program.

I develop games with a 3D game engine I made myself
AMA

>They are in very primitive level
>they use mostly game maker unity and unreal
I fail to see the relation. Besides being proprietary, what's wrong with these engines?

Every game made in the past 20 years uses skeletal animations

you know there's a 2d version of unity, right?

>C#
Please do share user, yes

>AI: no idea about complex game ai. The game will have turn based battles.
All you're doing with AI is coming up with a function that selects a targeted coordinate to path towards/take an action upon. Beyond that, it's hard to really suggest what to do for AI, it depends a lot on how your specific game works under the hood.

Use Godot.

Unity and unreal have poor support for 2d games. You end up coding the tools yourself, tailored for the game engine.
They don't even bother much with their 2d version of the engine.

I am going for a custom renderer here because there's a potential to be something like doom. S/w rendering and you'll have the ability to run it everywhere. There's no benefit on using commercial 3d focused game engines for a 2d game.
The only sane option is godot which is on the back of my head for now.

>Unity and unreal have poor support for 2d games. You end up coding the tools yourself, tailored for the game engine.
Cuphead and Heartstone are 2D games made with Unity. What criteria are you using to consider its 2D support 'poor?'

Compared to their 3d tools.
Also on /vg/ they clearly say that the tools are not suitable for 2d games because they don't have enough features so you end up doing the tools yourself... Which beats the purpose of using a game engine from someone else.
The best 2d game engine right now is godot

There's many more 2D games made with Unity than Godot

>Compared to their 3d tools.
Yet, I fail to see how that would make their support "poor" compared to others. What features are you missing?

>The best 2d game engine right now is godot
Based on what (besides being free software)?

Maybe try it before trusting Jow Forums? Especially when it comes to opinions on things that are popular. I haven't had any problem with 2D unity.

love2d.org/
Why reinvent the wheel?

...

>hur dur look at all these people eating shit, it must taste good

I don't care about your gay post, just give us the sauce.

Advice from a fellow gamedev. Start small and expand. Don't bite more than you can chew. I know it' fun to fantasize about doing a large scale project but given the kinds of questions you're asking I'm not sure you're ready for it. Start a few small hobby projects, when you get comfortable with the things you wrote down in the OP, start doing a bit more complex ones, and go out of your comfort zone inch by inch. There's plenty of resources available with a quick google search, but you do need to know what you're looking for. I also suggest going to IRC (preferably Freenode), joining some programming or development channels and asking for advice there. Most people will be happy to help and offer advice.

that's not how it works
product success rate is the best way of determining the quality of a game engine by far

By that logic, the engine behind Candy Crush must be the best in the world. Unity is literal shit for 2D and you probably haven't even used it if you think otherwise.

Product success rate is the amount of successful products produced with the engine, not the success of the games themselves. If there was an engine behind Candy Crush with lots of well made games to its name then yeah, that would be strong evidence that it was a good engine for its domain
Considering Unity has a large variety of successful 2D games made in it in all genres that means it's a good engine for doing it in
A dedicated 2D engine would be a plus sure, but Unity being what it is means it's well supported, well tested and the development pipeline is proven to work

popularity does not equal quality, you are literally retarded and have offered 0 arguments as to why OP should use a bad 3D engine for a 2D game.

you've offered 0 arguments as to why it's bad other than Jow Forums said so, which is of course airtight because Jow Forums is NEVER contrarian just for the sake of it.

>popularity does not equal quality
For game engines it does
I just provided arguments why
It's like science
More proven results means it's more likely to be true
A game that works is a proven result
You're a consumer and consumers often think "If it's mainstream and popular it must be shit", but when it comes to things like tools the opposite is usually true. If it's mainstream and popular that's because it works

1. It is designed for 3D with 2D as an afterthought. You'll have to do more things yourself and work against the engine more as a result.it will just be a pain compared to using a 2D first engine like Godot.
2.It will run slower and be less portable than something made with C and SDL
3.The source code isn't available and they basically own your game. Your letting yourself get cucked.
4.The devs have shown that they will gladly abuse their power over you and change the terms of service out of nowhere even if it means preventing you from releasing your game.
>when it comes to things like tools the opposite is usually true.
No, popular software tools are often garbage as well. Examples include Windows 10, MacOS, C++, Java, Javascript, HTML, XML,PHP, the list goes on.

Just use unity or game maker and start game making or spend then next couple years trying to find the "perfect" engine and asking the same questions over again without doing anything at all.

>Examples include Windows 10, MacOS, C++, Java, Javascript, HTML, XML,PHP, the list goes on.
none of those are tools, they're operating systems and programming languages. The equivalent would be saying Photoshop or Blender or Max or Maya or ZBrush was shit, and they aren't, even though they're full of problems and annoyances they're the most powerful tools, which is why people use them.

>programming languages are not tools

Attached: brainlet.png (645x729, 77K)

In the context of game development software an OS or a programming language isn't considered a "tool'. The IDE could be

>You'll have to do more things yourself
Such as?
>it will just be a pain compared to using a 2D first engine like Godot.
Can you cite projects where that has ever happened? Or even game dev quotes that sustain that claim. Professionally developed games say otherwise.

>2.It will run slower and be less portable than something made with C and SDL
What platform are you targeting that it doesn't support Unity?
Also, you seem to be developing a turn-based 2D RPG. I doubt you'll run into performance issues that justify the development time spent making your own engine. But if you do have evidences against that, go ahead..

>3.The source code isn't available and they basically own your game. Your letting yourself get cucked.
Do agree with this one. Free software is always a plus.

>4.The devs have shown that they will gladly abuse their power over you and change the terms of service out of nowhere even if it means preventing you from releasing your game.
What change in their terms of services has ever prevented someone from releasing their game?

Outside of licensing issues, you have yet to provide a practical argument against using Unity for 2D games.

>Can you cite projects where that has ever happened? Or even game dev quotes that sustain that claim. Professionally developed games say otherwise.
Here someone talks about their experience. He describes Unity 2D games with unity as hacky and the unity as slow and bloated. medium.com/rock-milk/why-godot-engine-e0d4736d6eb0
Unity lacks Godots animation system, skeleton animations, works worse with source control, is more complicated because it only has fake 2D where they just hide the z axis away from you, and can't use Godot's easy scripting language made specifically for video games.
>What change in their terms of services has ever prevented someone from releasing their game?
They banned use of third party cloud services and a huge amount of developers got screwed. The fact that you don't know it happened makes it obvious that you don't even pay attention to unity or game development.

>engine A: 1,000,000 people tried to make games with it, 100 of them succeeded
>engine B: 100 people tried to make games with it, 50 of them succeeded
Well golly there's twice as many successful projects with engine A, it must be way better so I guess I should use that one!

Unity has skeletal animations and all 2D games these days are "fake 2D"

B would be the better case in that scenario, but this is never a scenario that happens in real life, 99% of all games attempted are never finished for reasons that have nothing to do with the engine

Gamemaker used to be a popular choice for prototyping low budget indie games, but the new management is fucking bananas.

Godot games aren't. And it's still proprietary bloatware. Godot or C are the way to go.

Pretty sure Godot uses 3D accelerated graphics

C + SDL is pretty much all you need for 2D but you'll have to all tooling yourself which is a pain but you will learn a lot in to process

As far as animation goes for 2D, you will probably want to outsource that to a freelance artist. I recommend a simplistic art style for obvious reasons. Have the animator do the sprites in grayscale (or just the line art) and either color them by hand or grammatically this allows you to get more sprites for less money as well as a more dynamic art style.

You CAN do the art yourself (DONT) but you need DAILY practice to have it not look like complete dogshit. Animation is a particularly difficult skill as there is a large amount intuition required (especially for games) to make the animation "FEEL" good. I you want to learn to animate 2D yourself then I recommend these 2 books. They focus more on film animation but 90% of what they focus on applies to games.
The Animators Survival Guide
amazon.com/Animators-Survival-Kit-Principles-Classical/dp/086547897X
The Illusion of Life
amazon.com/Illusion-Life-Disney-Animation/dp/0786860707/ref=pd_sim_14_1/133-1929098-9251740?_encoding=UTF8&pd_rd_i=0786860707&pd_rd_r=00a7e266-1d37-11e9-b113-3f4681716abd&pd_rd_w=rinwU&pd_rd_wg=fRI7E&pf_rd_p=18bb0b78-4200-49b9-ac91-f141d61a1780&pf_rd_r=N277K8CSTK0CC6JPYV5F&psc=1&refRID=N277K8CSTK0CC6JPYV5F

I'd also check this out. Rust is still an early technology but there are more and more game studios adopting it (Ready at Dawn Studios is a notable mention) so I feel its worth mentioning. I've been checking rust out personally and I theres alot to like. If you don't mind new its or sure worth the look.
arewegameyet.com/

also if you really want to get into game dev then I recommend watching GDC talks they're like ted talks but more autistic. They are extremely interesting and sometimes offer invaluable tools that arent found any where else. Ive linked a favorite of mine below.
youtube.com/watch?v=yhGjCzxJV3E

>I need some sources on animators(classes), resource management, how to build a basic window system for the dialog boxes in the game, e.t.c..
literally gamemaker studio :^)

>Have the animator do the sprites in grayscale (or just the line art) and either color them by hand or grammatically this allows you to get more sprites for less money as well as a more dynamic art style.
This is one of the funnier made-up Jow Forums stories I've read in a while

Doing sprites in grayscale and coloring them after is an established and effective KISS technique. If your sprites look good in grayscale, and your palette colors work together, your end sprite will look good.

You can draw your sprites in greyscale if you want to, although there really is no reason to unless you're palette shifting, but it will not make them cheaper to produce, that's just some ridiculous idea you pulled out of your ass and posted it like it was legit advice

The reason is to reduce the number of things you're thinking about and changing at one time. I'm also talking about it from the perspective of making them, hiring someone to make pixelshit for you is a huge waste of money, just make your own. It's not that hard to make pixelshit that's going to stand above the usual indie game pixelshit, you just need to learn the most basic shading.

i don't think you need resources on how to do stuff like dialog boxes, if you're fairly decent at programming you can figure that out just fiddling around. for stuff like resource management and dealing with animation you might wanna get game engine architecture by jason gregory, it's a pretty good book

yeah /agdg/ is very anti-engine dev, they're bad programmers and assume everybody else is equally bad

using unity, even a 2d version, is like using a semi to get groceries from walmart

not that big of a deal, a lot of people do this. you're more likely to get people talkin shit because you use your own engine instead of unity/ue4 but don't worry user i support ya. got a repo? enginedev is a dying art. gamedev is supposed to be fun so why not focus on the parts i consider the most enjoyable even if it takes longer

lmao no

>lmao no
Do you have a single fact to back that up

>gamedev is supposed to be fun so why not focus on the parts i consider the most enjoyable even if it takes longer
I didn't make it for fun I made it in 2009 when there were no good engines for indies on the market

>product success rate is the best way of determining the quality of a game engine by far
do you have a fact to back this up? even if that's the case there's still a difference in mindset here. not everybody does gamedev for a profit and additionally, something being profitable doesn't mean it's good. it just means it's profitable. not many people like lil pump for instance but you'd be stupid to deny that he makes a good living off his music, but at the same time not everybody is willing to consider that music "good" just because it's worked out for him

gotcha, kinda similar to the route i went down. even now i still prefer rolling my own though, takes less time to just go with the flow than learn something new and the latter wouldn't really benefit me regardless

It's not about profit. It's about proving the tool works. Making a game with an engine proves the tool works. Making many different types of games proves the engine works in many different circumstances. It really is the only objective criteria you should use to judge a game engine, lest you get burned later on down the line using untested tools.

>but at the same time not everybody is willing to consider that music "good" just because it's worked out for him
this is a completely inane analogy.
What we're saying is that clearly because he is successful the tools he uses to produce music are capable of producing the music adequately for him to achieve success in his target demographic.

>I need some sources on animators(classes)
You mean 2D animation? Literally going through a texture file and incrementing by a defined width and length till you reach the end?
Type "libgdx Animation github" and literally CTRL-C CTRL-V if you're a brainlet

proving the tool works i can understand, saying the tool is good i don't agree with. making a successful game doesn't prove the tool is high quality it just proves it's passable

adequacy and quality are different. a game engine that's passable is different from a game engine that's good. there have been good games made using shit engines. there's been good music made using shit tools, that doesn't make the tools good it just makes them passable.

>making a successful game doesn't prove the tool is high quality it just proves it's passable
Depends on the game. If I want to make an RPG I can look at Unity and see oh, Wasteland 2 is made with this, I can make a similiar game and I probably won't run into any issues. With something like Godot, who fucking knows? That doesn't prove Unity is amazing, it just proves it's possible, which is what matters the most. Some tools might feel neat if you fiddle around with them for a few minutes but if they have significant issues lurking under the hood then what does it matter? No generic game engine is ever gonna be perfect for your use case anyway. Possible is what you should aim for

>Unity and unreal have poor support for 2d games.
>They don't even bother much with their 2d version of the engine.
>Also on /vg/ they clearly say that the tools are not suitable for 2d games
>>hur dur look at all these people eating shit, it must taste good
>Unity is literal shit for 2D and you probably haven't even used it if you think otherwise.
>a bad 3D engine for a 2D game.
clueless retards

>Here someone talks about their experience. He describes Unity 2D games with unity as hacky and the unity as slow and bloated. medium.com/rock-milk/why-godot-engine-e0d4736d6eb0
Unity lacks Godots animation system, skeleton animations
unity has that in the newer versions

>They banned use of third party cloud services and a huge amount of developers got screwed. The fact that you don't know it happened makes it obvious that you don't even pay attention to unity or game development.
the fact that you don't know that they reverted it because it was misinterpreted shows that you joined the hate wagon and you refuse to let it go

>the fact that you don't know that they reverted it because it was misinterpreted shows that you joined the hate wagon and you refuse to let it go
You cuckolds better hope your overlords don't get bolder in the future, next time they may not give in so easily.

i Second this!
Easy to use. Free in source and price (Until you donate which you should!)
And you can program c++ to use in godot.
And i would say that using an engine is a good thing even if you intend to not use it in the future because you find
a lot of theory and concepts in the documentation and by just using the engine.
And Godots documentation is lacking in a lot of areas but they still take the time to explain the concepts.
TL;DR
Even if you dont want to use an engine. just skim through their documentation just to get the terms used in game dev!

each version has its own ToS
try again faggot

who is this bitch?

How do you know her?

Attached: 1547995137400.png (300x300, 30K)

>bitch
Don't you dare, she's actually a very sweet girl.

OP here.
her username was babygirl18 and then babygirl19 a couple of years ago on Jow Forumsgonewild.
this picture was saved by my on November the first 2016.
She has disappeared from the net since early 2017 iirc.
she has a very nice pussy too.

Here's another one.

Attached: ZGJe1ZMl.jpg (361x640, 32K)

links?

she has deleted her accounts, both on reddit and erome a year ago.

I did go looking. But someone's got pics, haven't they?

>how to format save files
Easiest way to handle that is in json/xml. Decide between the two based on what kind of design your game has (xml allows hierarchy).

>how to minimize memory usage when creating the terrain
Depends on the algorithm and the result that you are trying to achieve. Cellular automata and Perlin noise are fantastic for regular terrain generation. Unless you are trying to generate terrain in real time there shouldn't really be any memory issues. And memory should be the least of your concerns on modern computers.

>is A* suitable for path finding?
Absolutely. You just have to be careful how you handle it: don't do unnecessary calls, put a hard coded cooldown on how often an entity can pathfind and stick to more primitive algorithms when A* is not necessary.

>how should I register the clickable elements on the screen to have optimal cpu usage and easier management from my side
Start off by defining the basic geometries that your clickable elements will use as a trigger (rectangle, circle, oval, etc.). All clickable elements can then be put into a collection. Whenever a mouseclick is triggered simply iterate through the collection and do CC as usual. Performance shouldn't be an issue here since Mouse clicks usually happen once every X00 frames and collection iterations+simple CC aren't that expensive to do. If you do worry about performance then look up Quadtrees for example, there are plenty ways to optimize this approach.

>should I use skeletal animations or not
All depends on the game and the artstyle you are aiming for. 3D and 2.5D games always use skeletal animations, unless its part of their artstyle to use sprites (ie Doom). Regular sprite animation is far easier to implement so I would suggest starting with that, since it only involves texture swapping.


If I could give some general advice, it would be to not solve problems which don't exist and to not optimize what will never get finished.

Also, I would recommend looking into ECS architecture, it will save you alot of headaches in the long run.

Offer from still stands.

>stick to more primitive algorithms when A* is not necessary
A* is one of the more primitive pathfinding algorithms and there is no reason to use anything simpler than that.

>A* is one of the more primitive pathfinding algorithms
True, but it is often modified to fit specific behaviors.
The idea is to have multiple algorithms and decide between them on the basis of precalculations.
It all really comes down to how many pathfinding-capable objects you have and the complexity of your terrain.

He mentioned before that he has turn based combat in mind, so 90% of optimizations regarding pathfinding will be unnecessary anyways now that I think about it.

>she has a very nice pussy too.
fug, I need more user

I have a couple of pic and a video iicr. where can I upload them?

my.mixtape.moe/czufst.jpg

my.mixtape.moe/wvzbnl.mp4

my.mixtape.moe/qycmij.mp4

my.mixtape.moe/bplczg.mp4
I don't think I have more

Godot?
love2D?
libGDX?

Pictures disappearing from Jow Forumsgonewild happens way too often
Damn shame desu

I have a "boilerplate" ready in SDL and a couple of features programmed months ago.(webm related, sprites are mine... I am not an artist)
I don't know why asking help for X subject, people give help on Y subject.
I need some info on managing tile based games.
I need some info on managing save states
I need some info on working with fog of war in conjuction with pathfinding
and I need some info on AI for turn based games.

Attached: x.webm (812x634, 1.02M)

because you're asking how to do everything which means that you're probably not ready to make a game from scratch
you would benefit from using an engine

Fucking based user.
Thanks!

Attached: 1526834562248.gif (500x500, 289K)

she fucks black guys

I couldn't trace her after she left Jow Forumsgonewild.
care to show some pointers?
go nuts man.

You know what isn't 2D? THOSE MILKERS

She looks like a nice braphog