EDIT: Aww come on, Schitzo, you can read 7 pages, can't you?!
Anyways, I'd love to create a hype as fuck beat 'em up someday. And god willing, with the advice i find here, I shall.
edited 28th Aug '12 9:41:53 PM by Schitzo
ALL CREATURE WILL DIE AND ALL THE THINGS WILL BE BROKEN. THAT'S THE LAW OF SAMURAI.^^yeah, learning is the coolest. What platform were you attempting, and what were you trying to build? (unless it's a secret, in which case add a "c'mon..... winking face" to that sentence)
^awesome! My recommendation, as you will see throughout this entire thread if you actually are reading it, is to jump in head first at the earliest opportunity.
"Never let the truth get in the way of a good story." TwitterThe theme was Evolution and I got set pretty early on with the idea of doing something around Neanderthal man, the extinct also-ran in the story of Stone Age mankind. I envisioned a Civilization-style turn based game (scaled down a lot to a single small, random map and one base) where you're playing as a tribe of them in the face of encroaching Homo sapians, an oncoming Ice Age and dwindling resources. Failure Is the Only Option so you would be scored on how long you survive.
I didn't get past implementing the player movement which had me suck for several hours in which I had to refactor code. I got a working map generator though. By Sunday I was just plain tired out from lack of sleep (not for lack of trying to sleep) and didn't want to work on it anymore.
that was a pretty big bite for a weekend, and I'm pretty impressed that you got a working map generator (seriously those things are pretty hard even on a normal time scale)
were you using Flash or Unity or something like that?
"Never let the truth get in the way of a good story." TwitterPython and Pygame. I was already learning python for a course I'm taking this semester and I'm rusty on Action Script for Flash stuff.
The map generator was not that hard...I didn't get any fine tuning in it. But the basics of it: generate a 2d array for a grid. Assign each grid cell a random value in range X, where X = how many terain types you want. Loop over the array using an equation that calculates where a tile should go based on the grid coordinates times size of the tile and place the corresponding tile in each place, with the functions needed to render them as a group on the screen.
What bit me was state management, getting the turns, moves, redraws, etc, to happen all in the right order when called on. I have that sorta mostly working in the version I last worked on Sunday afternoon. I don't have any AI in it currently.
oh, ok, it was a strictly random map. I was thinking there might be some kind of region generation (like Minecraft) or obstacle generation (in which case you need to make sure you don't have closed off spaces around important things).
For state management, I'm not really sure how python does it, but at least when I'm working with Java and C, I always do a strict 1:1 of logic:redraw. My main method/thread/whatever pretty much always looks like this:
while (true) {
doStuff();
render();
}
then I stick all logic in the doStuff method. This way I don't forget how everything is ordered.
Turn based state is pretty tricky, that's true. Probably the simplest solution would be to have a playerInput() method and a ai() method, and just switch on the turn number as appropriate. for example, here's the extended case for multiple players
TURN = 0
def doTurn():
if TURN == 0:
player1Input()
elif TURN == 1:
player2Input()
elif TURN == 2:
player3Input()
else:
ai()
TURN = (TURN + 1) % MAX_PLAYERS
def doStuff():
#pre condition stuff happens
doTurn()#and now the inputs from the appopriate party have been given to some state machine
#apply state variables to world or whatever
This may or may not be the optimal/right solution. If I think of a better one while sleeping, I'll post it probably.
As for the python, I'm mixed on it. When I had to learn it for school, it was awful and didn't make sense because of little inconsistencies in a supposedly consistent language that completely threw me off. Now that I'm relearning it for work, it still doesn't make sense because of those tiny inconsistencies, but I am almost happier using it rather than bash when scripting nowadays.
PS. mid-post-realization: Elle is doing a turn based thing, not a real time thing, and I got confused about what state machine she was talking about, so this part is probably irrelevant, but I typed it all up anyway, so here is a fun tip for anyone who needs to do real time key input: For button pressing, I've found that you never want to input keyboard stuff directly to your character, because the event handlers are almost always running in a separate thread which has an arbitrary timing, which means your logic:render loop gets interfered with. Instead, I hook the keyboard up to a set of booleans—set a boolean True on key down, then set it False on key up. In the logic method, don't test for keyUp or keyDown, test for keyBoolean True or False.
edited 29th Aug '12 12:34:37 AM by ch00beh
"Never let the truth get in the way of a good story." TwitterI like Python. It has its little quirks that can get you, yes, but it is very un-picky about a number of other things that languages like Java obsess over. One of my practice projects, extrapolating from several chapters, was a basic Pong clone, which I was able to pull off mostly in one evening.
My major problem was a critical misunderstanding about how pygame, Clock-enforced framerate and turn-based event handling work (which is to say: not together).
edited 29th Aug '12 1:01:13 AM by Elle
insert comment about how inconsistent python things are.
"Never let the truth get in the way of a good story." Twitterhush, i'm standing on my podium of superiority
"Never let the truth get in the way of a good story." TwitterOh! I did the Dare! Except 40 minutes over time, so I submitted to the Jam.
For the first time in a long time, I got something I could call "finished" (if quite primitive), so that was nice. Debugging event scripting and such bogged me down, I had never really done complex agent interaction before. HTML5 Entry
I find it ironic that the "Evolution" theme didn't inspire me with anything involving procedural generation this time. Map generation is something I can do well. See the generator I wrote for a Jam Entry
with some friends last time.
This one got me up to the basics.
I feel like it really helped that I had Java experience already, but you can say that about pretty much all languages—struggle for a while to learn your first object oriented C-based language, first scripting language, and lisp, then suddenly every other language afterward can be picked up in a week.
If you're willing to spend a bit (or, um, obtain a pdf from places), I'd recommend Accelerated C++
. My buddy recommended it to me after he read it and swears it's the reason he was able to convert his internship to a full time job at Maxisprotip. I've read the first few chapters as well, and I think it's pretty good.
PS. I was going through Chris DeLeon's blog trying to find something for a programming thing, but I found General Concepts for Beginning Developers
instead.
^nice! unfortunately, there are filters in place at work now. They're meant to stop malicious attacks, not stop us from browsing the net, but they get a bit overzealous at times so I cannot play the game at the moment.
edited 29th Aug '12 11:09:06 AM by ch00beh
"Never let the truth get in the way of a good story." TwitterGuys, I need help. BIG help.
My senior project teacher and I are going to be working together over the next 2 semesters on what might be the biggest work of my life so far - using some of his archived code, we'll be creating an augmented-reality goggles edutainment game. Only problem? He and I both need to learn how to use Open GL to make it work.
Any good tutorials on how to use Open GL?
Long live Cinematech. FC:0259-0435-4987Open GL and what language? I am aware, in vague terms of least, of interfaces for Python, Java and C++, and I'm sure they exist for several other major languages.
I don't have actual experience however, sorry.
I'll be finding out when I get in touch with him again next week. Stay tuned.
Long live Cinematech. FC:0259-0435-4987Chris Deleon just posted a video tutorial to get people started with programming.
Just started watching it, but so far it looks like it's using Processing (lightweight language built on top of Java) which I actually really like as a prototyping and quick-app-making tool, so I'm going to assume the rest of the video is worth the watch.
Would you say that game development is closely related to game design? I find I'm interested in programming games, but I have trouble coming up with projects to give myself because I don't have any particular inspiration regarding what kind of game I'd like to make. (Also because I have no tools or skill related to generating visuals or audio.)
Text I feel is necessary to append to every post."Design" is a subset of "development"...it's part of the process that puts a game together including planing, design, code, art, etc. However the way you worded the question reminded me of the lingo you see in college course descriptions; there "development" mostly means programing and possibly the other technical skills, with sometimes some design theory on the site. In those terms, programing tells you how to put a game together, design is deciding why it should go together in a given way and ideally coming up with new ways to put it together.
Design is a multi-diciplinary task...well, here, have some Extra Credits.
You're correct; from my academic and professional experience, I'm used to the term "development" referring to the technical aspects of the process, rather than the full process of creating a product, so I was jsut misunderstanding the terms used. I guess I'm trying to figure out what avenues I could explore as someone with an interest in programming games but doesn't have much inspiration about the design/art.
Text I feel is necessary to append to every post.One possible course of action is to team up with a talented designer. They come up with wacky ideas, make the levels, balance the numbers, etc, while you get down to the nitty gritty engine stuff.
Or alternatively, start generating knock offs (tetris, asteroids, pacman, etc) for personal exercises, then eventually you'll be able to whip those basic games up in like a day, so you start whipping up knock offs but give them a twist (say you want to optimize some things that you never liked in the original, or you think it would be funny if something else, or whatever), and after some point, your brain might start coming up with ideas.
Or alternatively alternatively, you go down the creative path for a while. Play every game you can get your hands on, but probably never more than a handful of hours for each. Analyze what they did well, what they did wrong, and think about what you would change. Maybe an idea comes up eventually.
Or alternatively alternatively alternatively, just do all of them haphazardly like I do. Everybody needs a bit of entropy in their lives to keep them on their toes.
"Never let the truth get in the way of a good story." TwitterAlso alternatively, if there's a game you like that has modding tools/level creators, consider playing with those. Generally the art assets will already be done and you'll get to play directly with the building blocks of level design; rhythm, difficulty, pacing, pathing, etc.
Also, I link some books on the subject of design here
.
edited 4th Sep '12 12:45:23 AM by Elle
Speaking from my (admittedly little) experience, being both the programmer and designer of a game is quite the convenient combination, especially as an indie and working solo, since you can correct your design decisions on the spot if you get a great idea for an improvement to something when coding. Otherwise, that sort of thing would require discussion with another person. Not that implying it's a good idea to suddenly change things without stopping and thinking, mind you - I'd still recommend taking a short break to think when that happens.
Plus, you can make design decisions from the perspective of the person who's going to have to code all of the stuff you come up with. This, unsurprisingly, is good for keeping you to things of not-too-large scope. I can't even count how many people flood development forums with no skills of their own claiming they want to design the best MMO of all time and are seeking assistance. Ugh.
So yeah, I'd recommend learning to design yourself instead of teaming up with a designer.

So did anyone do the Ludum Dare this past weekend?
"Never let the truth get in the way of a good story." Twitter