• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Indie Game Development Discussion Thread | Of Being Professionally Poor

Status
Not open for further replies.

fin

Member
So I got my new game done for the GITHUB game-off. If I spend more time on it I'm going to do alot more. Add power-ups, different ammo to produce modified clones, more level hazards better animations different art etc... Did alright for a months worth of free-time. Which my last project took like 8 months, so this was really nice to punk it out quick and see what happens. Wish me luck!






10 levels in total. It autosaves so feel free to take a break and continue later.

Checkout the video here:
http://www.youtube.com/watch?v=nX2diMaFD_A&feature=youtu.be
Play it here:
https://dl.dropbox.com/u/77761952/Archetype/WebPlayer/WebPlayer.html



That looks amazing can't wait to play it!
 

qq more

Member
looks like scooby doo

It really does. I like it!


Also, the lava sprite I made earlier:

lavasample.png

Looks nice in-game.
 

Blizzard

Banned
Here are two quick things in case anyone else is interested.

Firstly, I think I may have watched part of this video a while back, but someone just linked me to it again. It is a presentation by a man named Bret Victor, called Inventing on Principle. He has some interesting GUI design things in it that apparently allow editing and creation of game elements on the fly.

http://vimeo.com/36579366

Secondly, I wanted to draw some items clipped into a certain rectangle on the screen, for a GUI editor. It turns out this is pretty easy with OpenGL, and perhaps nearly everyone already knew about it but me. You can use a scissor box with code like the following:

Code:
glEnable(GL_SCISSOR_TEST);
glScissor(x, y, width, height);
// Draw things here for automatic clipping.
glDisable(GL_SCISSOR_TEST);

There is probably at least one other way do to this, but this one is pretty simple, and I wanted to pass it on in case it isn't super obvious to anyone else. :) Bear one key thing in mind, however. The scissor box coordinates start in the lower left and grow up and right from there, as opposed to the normal top-left-based XY coordinate system. The x and y coordinates similarly specify the lower left corner of the scissor box.

API information: http://www.opengl.org/sdk/docs/man/xhtml/glScissor.xml
 
It really does. I like it!


Also, the lava sprite I made earlier:

lavasample.png

Looks nice in-game.

thanks! we're definitely going for a "cartoony" look, so that works out well. however, i can guarantee that's the only location in the game the will give off a scooby-doo vibe.

i can't wait to blow the lid off of this thing. probably sometime in march. it looks like we'll be exhibiting the game at pax east, so it will get announced shortly before then.

also, i really like the look of your game as well. i love good, vibrant pixel art like that. i would have liked to use pixel art for the game i'm currently developing, but it didn't work out that way. maybe the next one though...

do you have an online portfolio of your art?
 

qq more

Member
thanks! we're definitely going for a "cartoony" look, so that works out well. however, i can guarantee that's the only location in the game the will give off a scooby-doo vibe.

i can't wait to blow the lid off of this thing. probably sometime in march. it looks like we'll be exhibiting the game at pax east, so it will get announced shortly before then.

also, i really like the look of your game as well. i love good, vibrant pixel art like that. i would have liked to use pixel art for the game i'm currently developing, but it didn't work out that way. maybe the next one though...

do you have an online portfolio of your art?

I just have a lot of pixel art I've done scattered around on my hard drive and dropbox if that counts.

EDIT: feel free to PM me if you're interested in seeing them
 

Ashodin

Member
I meant to show you this screenshot on Friday but I got caught up in weekend stuff. Or Saturday.

But here it is today!

PbeGV.png


Finished somewhat the touch controls, they actually do work (tested) and you can see the full UI now!
 

usea

Member
usea said:
If the gameplay is anywhere near as good as it looks and sounds, you won. I had a full on TI-99/4a flashback, ftw. Keep up the good work!

Great trailer!
Sorry I don't want to confuse anybody. I know this thread is generally for our own stuff, but this is not my game. I just saw the trailer, thought it was super rad, and I wanted to share it with people who might also think it was rad.
 

Nicho

Member
I've read through this thread a few times, so it's nice to finally have something to contribute :)

We've recently uploaded our trailer for 'The Source'. It's a platform game that will work kinda like a mini-Metroid, with large levels that open up as you find abilities and complete challenges.

Check out the trailer here, along with links to various campaign things in the description.

It's a comedic take on Scientology's place in society, which has already earned us a few problems (such as an attempted take-over of our Youtube channel within hours of the trailer being uploaded). As the trailer implies, we want to touch on some of the things people might not know about the religion: auditing, different 'Thetan' levels, etc. Personally I'm still very new to the indie game scene so it's all a bit of a trial by fire!

 
I've read through this thread a few times, so it's nice to finally have something to contribute :)

We've recently uploaded our trailer for 'The Source'. It's a platform game that will work kinda like a mini-Metroid, with large levels that open up as you find abilities and complete challenges.

Check out the trailer here, along with links to various campaign things in the description.

It's a comedic take on Scientology's place in society, which has already earned us a few problems (such as an attempted take-over of our Youtube channel within hours of the trailer being uploaded). As the trailer implies, we want to touch on some of the things people might not know about the religion: auditing, different 'Thetan' levels, etc. Personally I'm still very new to the indie game scene so it's all a bit of a trial by fire!


Awesome trailer. Im sure you are being watched as we speak.
 

JulianImp

Member
Gotta love that lava! It's simple, looks good and fits the other graphics found in your game.

I'd love to do a game in pixel art, but Unity's a bit too clunky when it comes down to sprite-based games (unless you get a plug-in, that is).

Regarding my game, I might've finally gotten my hands on a Galaxy Tab. It's going to be great for playtesting Quark Storm if I manage to work out the details and end up acquiring it.




All of this is slowly pushing me towards getting the Android license for Unity 4.0, but I'm still focused on finishing the game so I can get my degree soon, so I'll probably be looking into that sometime later.
 

Ashodin

Member
Gotta love that lava! It's simple, looks good and fits the other graphics found in your game.

I'd love to do a game in pixel art, but Unity's a bit too clunky when it comes down to sprite-based games (unless you get a plug-in, that is).

Regarding my game, I might've finally gotten my hands on a Galaxy Tab. It's going to be great for playtesting Quark Storm if I manage to work out the details and end up acquiring it.




All of this is slowly pushing me towards getting the Android license for Unity 4.0, but I'm still focused on finishing the game so I can get my degree soon, so I'll probably be looking into that sometime later.

Playtesting on a tablet is a lot of fun. I playtest on my Nexus 7.
 

JulianImp

Member
Playtesting on a tablet is a lot of fun. I playtest on my Nexus 7.

Nexus 7 is my tablet of choice for my game too. It's lovely... :D

One thing I found out is Unity somehow maps the left and right mouse buttons on its own. touching anywhere on the screen registers as a left mouse button click, and a second simultaneous touch results in a right mouse button click message being sent to the game.

While that makes the game work properly (ie: you can use the brake), it's really clunky and somewhat unintuitive. I guess I'll have to build a mobile-specific GUI button for the brake to address that issue.

It's also great how Unity has been exposing more and more internal variables to being modified by code (such as anti-aliasing and vsync). The one thing I'm waiting for is input data (the one you set on the game launcher).
 

Tashi

343i Lead Esports Producer
Can someone point me in the right direction here? I'm trying to figure out levels/stages are commonly implemented. I just got a little camera system put in so now instead of having my character run through endless white space, I'd like to see how I could do a level. Is it basically this?:

52l1h.jpg


Let's pretend the black box is the viewport. And that's of course moving along the level with the red stick figure there. Now, the viewport is 1280x720. Potentially the means I'll be dealing with enemy or obstacle locations in the million pixel range in the X coordinate. That just doesn't seem like the way it's commonly done to me. Or is it? I don't know.

You get what I'm saying?
 
Potentially the means I'll be dealing with enemy or obstacle locations in the million pixel range in the X coordinate. That just doesn't seem like the way it's commonly done to me. Or is it? I don't know.

What seems wrong with that approach to you? My only advice is that you should really consider your scale if in a couple of screen you are already dealing with a million on the X axis.
 

Ashodin

Member
Can someone point me in the right direction here? I'm trying to figure out levels/stages are commonly implemented. I just got a little camera system put in so now instead of having my character run through endless white space, I'd like to see how I could do a level. Is it basically this?:

52l1h.jpg


Let's pretend the black box is the viewport. And that's of course moving along the level with the red stick figure there. Now, the viewport is 1280x720. Potentially the means I'll be dealing with enemy or obstacle locations in the million pixel range in the X coordinate. That just doesn't seem like the way it's commonly done to me. Or is it? I don't know.

You get what I'm saying?

that's essentially how it works, yes.
 

Tashi

343i Lead Esports Producer
What seems wrong with that approach to you?

It seems like mapping out the objects in the environment would just become too tedious and troublesome. I feel like it would be so hard to keep track of everything and I would make errors left and right doing it. I've yet to actually try it but I wanna plan it out for I just jump in and get in way over my head.
 

JulianImp

Member
Can someone point me in the right direction here? I'm trying to figure out levels/stages are commonly implemented. I just got a little camera system put in so now instead of having my character run through endless white space, I'd like to see how I could do a level. Is it basically this?:

52l1h.jpg


Let's pretend the black box is the viewport. And that's of course moving along the level with the red stick figure there. Now, the viewport is 1280x720. Potentially the means I'll be dealing with enemy or obstacle locations in the million pixel range in the X coordinate. That just doesn't seem like the way it's commonly done to me. Or is it? I don't know.

You get what I'm saying?

It's one of the things that worries me with long levels. I'm not sure to what extent, but I've heard about the loss of precission that happens to floating point numbers when dealing with values too large or too small to represent accuratedly.

I was once thinking about building an infinite platformer (procedurally generated), and the problems that could arise from the player moving too far from the origin. The one possible solution I thought up was periodically warping the player back a "tile" (in the case of using pre-made level blocks as if they were tiles), but that'd probably screw various things up (mostly graphics-related, such as particle systems).
 

usea

Member
World-space coordinates and pixel coordinates don't have to be the same. It's just easier for most games. If your level is going to be long enough to where floating point precision starts to matter, you'd need to change something. You could split the level into segments, and the coordinates would be an object's relative position in the current segment. That's just one approach. You might also move the level and enemies instead of the player, so the player is always fairly close to the origin (0,0). Floating point precision in most languages is going to be adequate unless your levels are particularly large. Simulating solar systems would run into trouble, but platformers likely won't.

A bigger problem with floating point is networked games. Floating point calculations will often end up slightly different on different machines (especially if one platform uses 32 bit and the other 64 bit floating points). So players can easily end up out of sync. The guy who made AI War had this problem in C# and posted a question about it on stack overflow somewhere iirc. Even some retail games you'll see patches come out with changes like "Fixed a desync issue between 32bit and 64bit clients"
 

Ashodin

Member
World-space coordinates and pixel coordinates don't have to be the same. It's just easier for most games. If your level is going to be long enough to where floating point precision starts to matter, you'd need to change something. You could split the level into segments, and the coordinates would be an object's relative position in the current segment. That's just one approach. Floating point precision in most languages is going to be adequate unless your levels are particularly large. Simulating solar systems would run into trouble, but platformers likely won't.

My game will have rooms akin to Kirby that the player can break layout sequences with. Small "treasure trove" rooms that you can duck into when it gets rough.
 

Roquentin

Member
World-space coordinates and pixel coordinates don't have to be the same. It's just easier for most games. If your level is going to be long enough to where floating point precision starts to matter, you'd need to change something. You could split the level into segments, and the coordinates would be an object's relative position in the current segment. That's just one approach. Floating point precision in most languages is going to be adequate unless your levels are particularly large. Simulating solar systems would run into trouble, but platformers likely won't.
I learned that the hard way. I worked on an animated solar system in PovRay - the math looked good but when put it in motion things started to get off course.
 

Blizzard

Banned
If floating point accuracy for huuuuuge distances concerns you, you can always make everything ints/long ints. :p Presumably your level obstacles could be placed without requiring subpixel accuracy.

Side note, I think the floating point accuracy thing is actually one of the issues with why using the UDK for huge seamless space flight levels seemed to be a problem. I think there had been some discussion once or twice about doing it, and there may be tricks you can do like trying to make things very small (could mess up the physics engine I think), and/or trying to warp everything back to the origin past a certain point (could produce an obvious boundary)...but overall, it just didn't seem like something that the engine could readily handle. I wonder if the UDK for UE4 will be any different if and when it comes out.

*edit* That note about floating point calculations on different machines producing different results is rather terrifying. Does anyone have some more information on avoiding that?
 

JulianImp

Member
If floating point accuracy for huuuuuge distances concerns you, you can always make everything ints/long ints. :p Presumably your level obstacles could be placed without requiring subpixel accuracy.

Side note, I think the floating point accuracy thing is actually one of the issues with why using the UDK for huge seamless space flight levels seemed to be a problem. I think there had been some discussion once or twice about doing it, and there may be tricks you can do like trying to make things very small (could mess up the physics engine I think), and/or trying to warp everything back to the origin past a certain point (could produce an obvious boundary)...but overall, it just didn't seem like something that the engine could readily handle. I wonder if the UDK for UE4 will be any different if and when it comes out.

*edit* That note about floating point calculations on different machines producing different results is rather terrifying. Does anyone have some more information on avoiding that?

The issue is what happens when you're using a middleware engine, such as UDK or Unity (in my case).

I think the whole "floating point numbers aren't reliable" thing is the reason Unity has the Mathf.Approximate(float, float) method. Different processors are likely to handle floating point math differently, but I'm not sure when it starts to become a problem.

Actually, I think shrinking stuff down won't save you, since the problem isn't large or small numbers alone, but rather the combination of both. I think processors can handle 10^999 and 10^-999 fine, but huge problems arise when you do operations such as adding or substracting one from either of those numbers.

I think it works in a way such as "n * (10 ^ exp)", so it can represent 86.7191 fine by storing it as 867191|-4 -> 867191 * (10 ^ -4), and that's the reason why the math will be fine as long as you use numbers that can be represented by the non-exponential part (ie: are close enough to each other, digit-wise). I might be wrong, though, since I haven't delved that far into the low-level implementation of fractional numbers.
 

Monroeski

Unconfirmed Member
I'm once again getting in the mood to try my hand at making a game; hopefully I'll actually follow through this time.

All the ideas I have for games are 2D; I don't want to use anything as simple as GameMaker so would PyGame be a decent alternative? I've thought about Unity but I think making a "2D" game in a 3D engine would be somewhat rough going for my first few attempts (though I understand the concept of how that works) and I'm hearing from a few places that XNA almost seems abandoned at this point with no firm future alternative coming from MS so I'd hate to invest in that too much at this point (plus as long as I'm going to use C# I may as well go with the more platform flexible Unity). I'm thinking getting my feet under me with PyGame for a few months and then moving on to Unity would be a good idea but I figured I'd ask for some advice first. I've also thought about buying a GameMaker license for $99 and moving on to something else after I've managed to recoup my money just to prove to myself that I'm serious enough about it to get something completed this time.

I've programmed before but only on pretty basic levels so I'd still be considered a beginner. I've done some of the requisite text game programming and I've made an L4D map in a level design class I took a while back so I'm not a complete and total beginner but I'm pretty close.
 
I'm once again getting in the mood to try my hand at making a game; hopefully I'll actually follow through this time.

All the ideas I have for games are 2D; I don't want to use anything as simple as GameMaker so would PyGame be a decent alternative? I've thought about Unity but I think making a "2D" game in a 3D engine would be somewhat rough going for my first few attempts (though I understand the concept of how that works) and I'm hearing from a few places that XNA almost seems abandoned at this point with no firm future alternative coming from MS so I'd hate to invest in that too much at this point (plus as long as I'm going to use C# I may as well go with the more platform flexible Unity). I'm thinking getting my feet under me with PyGame for a few months and then moving on to Unity would be a good idea but I figured I'd ask for some advice first. I've also thought about buying a GameMaker license for $99 and moving on to something else after I've managed to recoup my money just to prove to myself that I'm serious enough about it to get something completed this time.

I've programmed before but only on pretty basic levels so I'd still be considered a beginner. I've done some of the requisite text game programming and I've made an L4D map in a level design class I took a while back so I'm not a complete and total beginner but I'm pretty close.

Do your game in whatever language you want. The end user won't care as long as he is able to play it. I remember being successful in making some demos in python using pyglet + chipmunk and making an executable exe for windows.

IMHO don't diss GameMaker unless your selling point is really in the programming aspect of the game and GML is not enough for you. The scene editor in GM makes incredible easy to create levels and you'll miss that a lot for your own games.
 

Blizzard

Banned
I'm once again getting in the mood to try my hand at making a game; hopefully I'll actually follow through this time.

All the ideas I have for games are 2D; I don't want to use anything as simple as GameMaker so would PyGame be a decent alternative? I've thought about Unity but I think making a "2D" game in a 3D engine would be somewhat rough going for my first few attempts (though I understand the concept of how that works) and I'm hearing from a few places that XNA almost seems abandoned at this point with no firm future alternative coming from MS so I'd hate to invest in that too much at this point (plus as long as I'm going to use C# I may as well go with the more platform flexible Unity). I'm thinking getting my feet under me with PyGame for a few months and then moving on to Unity would be a good idea but I figured I'd ask for some advice first. I've also thought about buying a GameMaker license for $99 and moving on to something else after I've managed to recoup my money just to prove to myself that I'm serious enough about it to get something completed this time.

I've programmed before but only on pretty basic levels so I'd still be considered a beginner. I've done some of the requisite text game programming and I've made an L4D map in a level design class I took a while back so I'm not a complete and total beginner but I'm pretty close.
Before you try to make a 2D game engine/game in Python, and before you spend $99 on the full GameMaker version, I definitely suggest trying the free version of GameMaker.

I especially recommend it if you've had trouble getting yourself to finish a game before. You can do a good bit with GameMaker and its scripting language, and actually working through some game prototypes with it can be a lot more feasible than trying to do everything from scratch and never finishing.
 

usea

Member
Do your game in whatever language you want. The end user won't care as long as he is able to play it. I remember being successful in making some demos in python using pyglet + chipmunk and making an executable exe for windows.

IMHO don't diss GameMaker unless your selling point is really in the programming aspect of the game and GML is not enough for you. The scene editor in GM makes incredible easy to create levels and you'll miss that a lot for your own games.
A lot of people will balk at games distributed in certain ways. For example, in Ludum Dare an XNA game will get way less plays than an html5 game, because a lot of people don't feel like downloading/updating .net and xna libraries to play it.

I agree with what you're saying, I just thought it would be a point worth bringing up.
 

JulianImp

Member
I'm once again getting in the mood to try my hand at making a game; hopefully I'll actually follow through this time.

All the ideas I have for games are 2D; I don't want to use anything as simple as GameMaker so would PyGame be a decent alternative? I've thought about Unity but I think making a "2D" game in a 3D engine would be somewhat rough going for my first few attempts (though I understand the concept of how that works) and I'm hearing from a few places that XNA almost seems abandoned at this point with no firm future alternative coming from MS so I'd hate to invest in that too much at this point (plus as long as I'm going to use C# I may as well go with the more platform flexible Unity). I'm thinking getting my feet under me with PyGame for a few months and then moving on to Unity would be a good idea but I figured I'd ask for some advice first. I've also thought about buying a GameMaker license for $99 and moving on to something else after I've managed to recoup my money just to prove to myself that I'm serious enough about it to get something completed this time.

I've programmed before but only on pretty basic levels so I'd still be considered a beginner. I've done some of the requisite text game programming and I've made an L4D map in a level design class I took a while back so I'm not a complete and total beginner but I'm pretty close.

As others have said, GameMaker can be a great learning tool. Go with the free version until you find out you absolutely need paid features (you can even program your own stuff to replace some things, such as particle systems).

While I'm currently using Unity for a 2D game, I'd advise against using it as a starting point. Unity also has a few quirks you have to get used to before you can start using it well (mostly its component-based class approach and its scene editor and object inspector). If you ever decide to use it, I'd say you should go with the free version as well, since it has most of the stuff you'll need except for some high-end (or low-level) stuff.
 

Blizzard

Banned
I need to implement text rendering for menu and HUD. Are bitmap fonts the way to do it? (C++, DirectX9)
As opposed to what, using TTF and OTF font files? I think I ended up using freetype in my engine, in an attempt to get nearly pixel-perfect font rendering, but it still was never QUITE the same pixels that Windows itself would render, no matter what crazy kerning or aliasing options I tried. One nice thing is that I can use TTF/OTF font files, however.

When you say bitmap fonts, pardon my ignorance, but are you referring to making a texture that has all letters from a font laid out, so you can just draw from that texture for each character?

If so, that will probably work fine, and a lot of games may use it. You would only want to use something more advanced like freetype if you are using a proportional rather than fixed-width font, and you want kerning (http://en.wikipedia.org/wiki/Kerning). I'd say go with the easy bitmap option, see how it looks, and if you end up deciding that you really must have kerning or whatever, you can dig into the advanced stuff.
 
I need to implement text rendering for menu and HUD. Are bitmap fonts the way to do it? (C++, DirectX9)

I'd say yes. Start with bitmap fonts but OOP it in a way that is easy to change the rasterizer for something more complex like polygonal characters later on.

A word of advice though, probably every single game out there has this same problem and has been solved before. Don't reinvent the wheel, use an existing lib.
 

Popstar

Member
As opposed to what, using TTF and OTF font files? I think I ended up using freetype in my engine, in an attempt to get nearly pixel-perfect font rendering, but it still was never QUITE the same pixels that Windows itself would render, no matter what crazy kerning or aliasing options I tried. One nice thing is that I can use TTF/OTF font files, however.

When you say bitmap fonts, pardon my ignorance, but are you referring to making a texture that has all letters from a font laid out, so you can just draw from that texture for each character?

If so, that will probably work fine, and a lot of games may use it. You would only want to use something more advanced like freetype if you are using a proportional rather than fixed-width font, and you want kerning (http://en.wikipedia.org/wiki/Kerning). I'd say go with the easy bitmap option, see how it looks, and if you end up deciding that you really must have kerning or whatever, you can dig into the advanced stuff.
You can do proportional width and kerning with a bitmap font.

BMFont will dump the needed info for you.

If you were trying to get the same pixels that Windows would render, why didn't you just use Windows' native font drawing API? Were you targeting cross-platform?
 

razu

Member
I made more particles! :D

This time running on the Nexus 7..



Also, in the font debate.. I've written three or so bitmap font systems. You can do everything with bitmap fonts. And for games, they're pretty unbeatable. You can render them super massive and supersample them down for awesome quality. Add borders.. whatever you need. All offline, and zero cost in-game. To handle different resolutions, pick a set of fonts to work with a range of resolutions, same as you would for bitmap images. For ultimate quality you don't want to be stretching anything.
 

Limanima

Member
Just bumped here to give this news: Snails has won another first prize. We won first prize in Windows Phone category at Microsoft Pizza Night in Lisbon. Unfortunately we were declassified in the Windows 8 category (this isn't a Win8 app yet).

Go Snails!!

Here's another pic showing some new gameplay mechanics.
The game plays incredible well in touch devices. We are very proud of the mobile version.

graveyard1.jpg
 

Ranger X

Member
I'm once again getting in the mood to try my hand at making a game; hopefully I'll actually follow through this time.

All the ideas I have for games are 2D; I don't want to use anything as simple as GameMaker so would PyGame be a decent alternative? I've thought about Unity but I think making a "2D" game in a 3D engine would be somewhat rough going for my first few attempts (though I understand the concept of how that works) and I'm hearing from a few places that XNA almost seems abandoned at this point with no firm future alternative coming from MS so I'd hate to invest in that too much at this point (plus as long as I'm going to use C# I may as well go with the more platform flexible Unity). I'm thinking getting my feet under me with PyGame for a few months and then moving on to Unity would be a good idea but I figured I'd ask for some advice first. I've also thought about buying a GameMaker license for $99 and moving on to something else after I've managed to recoup my money just to prove to myself that I'm serious enough about it to get something completed this time.

I've programmed before but only on pretty basic levels so I'd still be considered a beginner. I've done some of the requisite text game programming and I've made an L4D map in a level design class I took a while back so I'm not a complete and total beginner but I'm pretty close.


And another GameMaker suggestion!
Don't listen to people dissing this soft. GameMaker is sadly seen as a joke by many but they are wrong. It's very convenient and a totally serious soft. In matter of 2D games it also does anything you want. And forget about their icon system for non-programming people, this is convulted and have its limits. You can scrip directly in GML, its basically like some Javascript language with some more forgiving syntax. Yet it is pretty powerful and shouldn't prevent you from creating anything + its lighting fast to script a game anyways so really, there's nothing to lose. It also output in every major platform now too. (PC, MAC, IOS, Android, HTML5)
 

Blizzard

Banned
You can do proportional width and kerning with a bitmap font.

BMFont will dump the needed info for you.

If you were trying to get the same pixels that Windows would render, why didn't you just use Windows' native font drawing API? Were you targeting cross-platform?
I'd like to have cross-platform support, yes, and I'm also not familiar with Windows' native font drawing API. I'm using OpenGL + SFML.

I don't know whether using BMFont to dump the info and using it to render, versus using freetype to generate/dump the info/render yourself, is more optimal. All I know is that after a lot of work, I ended up with solid color fonts, text alignment, word wrapping, and I think reasonable kerning, so I hope it's good enough in the end. If I ever get a more text-heavy screen I may post it to ask for opinions. I don't have font border support at the moment though.

*edit* I may not be understanding some term. If someone would like to clarify exactly what they mean by bitmapped fonts, please do, since I may have actually been using freetype to GENERATE my own bitmapped font texture, along with the corresponding kerning etc. information, using the TTF/OTF file as a source.
 

Popstar

Member
I'd like to have cross-platform support, yes, and I'm also not familiar with Windows' native font drawing API. I'm using OpenGL + SFML.

I don't know whether using BMFont to dump the info and using it to render, versus using freetype to generate/dump the info/render yourself, is more optimal. All I know is that after a lot of work, I ended up with solid color fonts, text alignment, word wrapping, and I think reasonable kerning, so I hope it's good enough in the end. If I ever get a more text-heavy screen I may post it to ask for opinions. I don't have font border support at the moment though.

*edit* I may not be understanding some term. If someone would like to clarify exactly what they mean by bitmapped fonts, please do, since I may have actually been using freetype to GENERATE my own bitmapped font texture, along with the corresponding kerning etc. information, using the TTF/OTF file as a source.
When talking about bitmap fonts people mean producing a texture with all the glyphs on it. Then rendering using a single quad per glyph.

The term is also sometimes used to refer to fonts that are designed as bitmaps vs. fonts that are designed using curves. Probably where the confusion is coming from.
 

Blizzard

Banned
When talking about bitmap fonts people mean producing a texture with all the glyphs on it. Then rendering using a single quad per glyph.

The term is also sometimes used to refer to fonts that are designed as bitmaps vs. fonts that are designed using curves. Probably where the confusion is coming from.
I guess another way to phrase the question is, what alternative would you use? Some sort of Windows API call that does all the drawing internally? Some sort of vector-drawing library that generates the font images on the fly?

The way you describe it, I think I did do bitmapped fonts, then. I just did it on font initialization -- loaded the font file data, then if I recall correctly, I generated a font texture with glyphs based on the point size that I wanted to use, and drew quads from it based on the freetype info for each glyph. I think I also made this a LA (luminance-alpha) texture so if I wanted different color fonts I would do some sort of blending with the color I wanted, without having to regenerate the source texture.
 

Popstar

Member
I guess another way to phrase the question is, what alternative would you use? Some sort of Windows API call that does all the drawing internally? Some sort of vector-drawing library that generates the font images on the fly?

The way you describe it, I think I did do bitmapped fonts, then. I just did it on font initialization -- loaded the font file data, then if I recall correctly, I generated a font texture with glyphs based on the point size that I wanted to use, and drew quads from it based on the freetype info for each glyph. I think I also made this a LA (luminance-alpha) texture so if I wanted different color fonts I would do some sort of blending with the color I wanted, without having to regenerate the source texture.
Yeah, you did bitmapped fonts.

There are two alternatives off the top of my head.

The first is to do on-demand rasterization of text. Instead of rasterizing individual glyphs you draw entire words, phrases or whatever to a texture and then render it as a single quad. This gives you all the features of the underlying font rendering system. I've done it this way in the past. It's nice because you don't have to keep a whole bunch of different textures for different font sizes, bold, italic, superscripts, subscripts, etc. A lot of this can be done with a bitmap font stored as a signed-distance texture now.

The other way is to convert the curves to polygons and render. Only really useful for very large text imho, or if you want to have 3D block letters flying around or something.
 

Monroeski

Unconfirmed Member
Thanks for the info, guys.

IMHO don't diss GameMaker unless your selling point is really in the programming aspect of the game and GML is not enough for you.

I didn't mean for my comment to come off as a diss, I'm just very much more on the programming side of things personality-wise than the art, sound, etc. so I don't think that picking something that is more shallow on that side of things is the right option for me. I feel like in a lot of ways I'm going to be as interested in learning the programming side of things as I am about getting the whole game done. I have other writer or artist friends that GameMaker would be perfect for, it just doesn't appeal to me personally so much.

I mention being a beginner programmer; that's because despite getting a programming heavy degree in college (MIS) and doing some refresher stuff in recent years my actual job has always been more of a go-between for the hardcore programmers and the administration so I just don't have much hands on experience outside of things like SQL Server and using VBA in Excel and Access. Programming and interaction between the various gaming systems is still very much my main interest in game design.
 
Status
Not open for further replies.
Top Bottom