1
\$\begingroup\$

First things first:

  • This is just a side project.
  • It's going to be my first "real" game.
  • In real life I'm a full time web developer (ASP.Net) with several years of experience.
  • I also have some basic knowledge of working in Unity 3D from several courses and small demos I've built.
  • My pixel art skills still suck, but I'm working on it.

So, I'm working on a game design for quite some time now (years) and just completed the latest draft of the design document. It's going to be a 2D isometric tile-based game. I adore the pixel art of Undungeon in terms of character proportions, and want to aim for a similar style.

Here's my problem: I'd love to just get started with implementing my game, but I have no assets yet.

  • Is it a reasonable approach to just start coding using placeholder assets, even if the whole grid size / character proportions are uncertain and probably going to change at some point? (Let's say my main characters sprite is 16x16 but I change it to 32x16 later on.)
  • Should I just abstract everything away that deals with pixel sizes?
  • Or bite the bullet and settle with a grid size from the very beginning?

I hope this isn't too broad of a question. Thanks for your help!

\$\endgroup\$
2
\$\begingroup\$
  1. Very early in your project, define two constants TILE_WIDTH and TILE_HEIGHT.
  2. Use these constants whenever you refer to the measurements of your tile. This also includes indirect values which are derived from them. If you ever need, for example, half the width of a tile, write TILE_WIDTH / 2. By the way, most compilers will notice that you are dividing a constant by a literal and calculate it at compile-time, so that's unlikely to affect performance.
  3. Whenever you handle coordinates, distances, velocities etc. in your game, handle them as floating point values where 1 unit is one tile, not one pixel. That way you make sure that your game mechanics are decoupled from your pixels-per-tile resolution.

That way you should be able to keep all of your code completely resolution-agnostic.

You will have to throw away most of your assets if you decide to change the resolution later (rescaling pixel art automatically usually doesn't turn out well). A possible way around that is using sprites and tiles derived from pre-rendered vector-art or 3d models. You just need to pre-render them again in a different resolution. But that will lead to different aesthetics than pixel-art (not necessarily worse aesthetics, though).

\$\endgroup\$
1
\$\begingroup\$
  • Should I just abstract everything away that deals with pixel sizes?

Yes, definitely. A basis of one unit per tile is probably the most intuitive one.
Once your whole game uses tile-related units, changing the pixel (or vector!) size of your assets won't bother you at all.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.