Tag Info

Hot answers tagged

24

As you've noted, when you're working on game mechanics, speed of iteration is critical. The longer the time between thinking of a modification and being able to test with that modification, the less productive you'll be, and the more distracted you'll become. As a result, you definitely want to be managing your iteration time. For me, I find that my ...


12

To prototype well, reduce the cost of testing ideas. My workflow is tuned for small games, but I've found these things helpful: Prototype-friendly tech I've found it helpful to use a dynamic programming language and framework, such as Lua (LÖVE is nice for 2D), JavaScript or Lisp/Scheme where getting the program to do something requires minimal ...


7

As a developer focusing mostly on prototyping, here's a bit of advice from my experience. Use an engine that allows you to make changes FAST. This includes things like "Not waiting for compilation", but also "changing things at runtime", "ease of debugging", "availability of test assets" etc. I personally love Unity3D, but it's not the best tool out there. ...


2

One can split game development between these four phases: prototyping gameplay refinement development performance refinement Gameplay exploration I believe happens mostly on the prototyping phase and these are some advice I try to follow: Begin designing with a paper prototype. After you have a clear idea of what the game could be, start coding it so ...


2

I agree with Trevor Powell's answer that speed of iteration is critical for you to stay in the creative mood instead of just polishing. A big source of inspiration for me is Bret Victor's talk, "Inventing on Principle". Unfortunately, it's hard to find real tools at that level. I tried to build one myself for Python development that let's me run my Python ...


2

In the broadest sense, yes a callback is nothing more than a function call. But rather than trying to over-engineer an input system by using function pointers, I would consider approaching input from two angles, and allowing both to be available. Observer There are times where it makes sense for part of your code to react to state transitions in a ...


1

You have a very strange code here. Why do you have glDetachShader(program, vertex_shader); glDetachShader(program, fragment_shader); lines in your shader init code? They should be used when you destroy your shaders. Remove them completely or call them on quit. If it won't help, then I suspect that glDisableVertexAttribArray() resets vertex attribs' ...


1

Scripting languages often expose a set of API functions that allow you to inspect and determine attributes about a loaded script, in your case what functions are defined. This varies by scripting language naturally and will also depend on your native language to scripting language bindings. In Lua for example, I can load a script and then check whether a ...


1

Store road attributes in separate structs and have pointers to them from your DCEL edges. It doesn't matter if some edges point to the same location in memory—the attribute data has still been allocated only once.


1

You need to move all the SDL functions out of the compound for loop. for { for { pixels[y*width+x] = argb; //Updating them all at once should be fine //Nothing else can happen while this is running } } //Update entire array at once, then... SDL_UpdateTexture(texture, NULL, pixels, width * 4); //Copy entire array only once ...



Only top voted, non community-wiki answers of a minimum length are eligible