Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 [2] 3 4 ... 10

Author Topic: Aqizzar makes a game  (Read 14283 times)

eerr

  • Bay Watcher
    • View Profile
Re: Aqizzar Finally Starts Making A Game
« Reply #15 on: January 29, 2013, 03:30:32 am »

How about: 2d, turn based, terraria style? Because a real grid could make this so much easier to program.
Logged

eerr

  • Bay Watcher
    • View Profile
Re: Aqizzar Finally Starts Making A Game
« Reply #16 on: January 29, 2013, 03:44:24 am »

What do you really want out of this videogame?
Logged

GlyphGryph

  • Bay Watcher
    • View Profile
Re: Aqizzar Finally Starts Making A Game
« Reply #17 on: February 04, 2013, 01:57:32 pm »

How's it going?
Logged

Aqizzar

  • Bay Watcher
  • There is no 'U'.
    • View Profile
Re: Aqizzar Finally Starts Making A Game
« Reply #18 on: February 04, 2013, 10:59:12 pm »

I was actually planning to make a post anyway, so the answer is: Slowly, but going.


I don't know what it's like for other programmers, but for me the hardest part about making a game is the interface.  Which, since you need an interface of some sort to do anything, is also the very first thing to do and has proved a deadly roadblock to my last couple of projects.  This is really more of a console game problem, since a more 'graphical' interface that can make use of the mouse would be a lot easier to handle.

I think this is an instance where I've actually learned too much about design theory from my job.  When you look at console games from NetHack on through Cataclysm, you realize that their interfaces are incredibly simple (a half dozen 'screens' at most with hardcoded buttons-to-effects) and could and probably were bodged together a little bit at a time and built right in the program's guts.  I work for a company that makes webservice-accessed applications with C# internals - as such, if it's not modular and extensible, I can't even allow my head to wrap around it.  Which, for a project that rests entirely on my own efforts, runs smack into my ancient problem of, "if its not perfect on the first try, it's not worth doing".

There's basically two ways you can make a console interface.  The obvious is the hard-coded way, aka the easy and stupid way.  Every 'screen' has all of its functionality built right into it as essentially a static object (if you're working with an objecty language), and your program is essentially a conductor shuttling you back and forth between screen-modes.  This is great for building something basic and as quickly as anything in programming ever is, but turns into a big pain the ass whenever you have to expand the function of a screen, let alone make a whole bunch of interrelated ones.

The other way to make an interface is the objectified way, aka the mad pro skills way.  This is the way that I have oriented myself into working, both because it's how I'm supposed to approach a problem like this professionally and there's no reason to fuck up my style, and also because I realized that just building out one main function of the game - assembling a unit from members, items, and standing orders - would require upwards of ten different interconnected screens with any number of buttons and navigable lists between them.  This might actually be the hardest part of the project until I get into dynamic AI or something.

While I did spend most of the last week just jotting down notes about granular features and such, I finally put shoulder to wheel over the weekend implementing the basic elements of interface framework.  Nothing to show until all the pieces click into place, but it's going a bit smoother than I thought it would.  Mainly because I'm recycling and updating some concepts I last used (and abandoned) for my roguelike in October or so when I let the complexity overwhelm me.  Since then I feel like I've hit my stride at work, and I'm itching for a challenge again.

Pointless details: the functionality of each screen will still be hardcoded into it, in terms of what each key-binding does (like fuck am I going to bother with remappable keys for now) and where stuff is drawn on the screen, but all the buttons and lines and lists and whatnot will be repeatable dynamic objects I can add/remove/toggle with ease.  Screens can be backed out of and remember the settings of the last screen you were at all the way back to the main one, buttons light up by situation, and text can be oriented abstractly without worrying about the page design.  At least, that's the operating theory because I can't actually see any of it in practice yet.  But it's getting there, and not bad for how little time it's actually taken so far.

By the way, before anybody suggests it I am doing all this with Libtcod because the console sucks balls, and I am aware of Libtcod's mouse support.  I don't anything about how to implement it though, and while that would be a great feature I'm not going to worry about it until I think it's worth the effort.

So yeah.  How it's going is, I am ass-deep in gritty details wrestling with the skeleton of an interface, but it's putting up less of a fight than every time before.  Still confident here.
Logged
And here is where my beef pops up like a looming awkward boner.
Please amplify your relaxed states.
Quote from: PTTG??
The ancients built these quote pyramids to forever store vast quantities of rage.

GlyphGryph

  • Bay Watcher
    • View Profile
Re: Aqizzar Finally Starts Making A Game
« Reply #19 on: February 05, 2013, 05:20:45 pm »

Sweet.
Logged

Mephansteras

  • Bay Watcher
  • Forger of Civilizations
    • View Profile
Re: Aqizzar Finally Starts Making A Game
« Reply #20 on: February 05, 2013, 06:34:48 pm »

Ah, interface. Still not 100% sure what I'm going to do in that regard for my game, but I'm with you on the ignore key-binding and mouse for the initial game. I'll probably just be happy if I have a halfway decent set of screen classes that I can get to do what I want and reasonable keyboard shortcuts for most things.

Then again, I do database programming for a living so I don't exactly have any UI habits from my day job to bleed over into my game.
Logged
Civilization Forge Mod v2.80: Adding in new races, equipment, animals, plants, metals, etc. Now with Alchemy and Libraries! Variety to spice up DF! (For DF 0.34.10)
Come play Mafia with us!
"Let us maintain our chill composure." - Toady One

Skyrunner

  • Bay Watcher
  • ?!?!
    • View Profile
    • Portfolio
Re: Aqizzar Finally Starts Making A Game
« Reply #21 on: February 06, 2013, 02:16:44 am »

Do you use libtcod with SDL?  O.o
Logged

bay12 lower boards IRC:irc.darkmyst.org @ #bay12lb
"Oh, they never lie. They dissemble, evade, prevaricate, confoud, confuse, distract, obscure, subtly misrepresent and willfully misunderstand with what often appears to be a positively gleeful relish ... but they never lie" -- Look To Windward

MaximumZero

  • Bay Watcher
  • Stare into the abyss.
    • View Profile
Re: Aqizzar Finally Starts Making A Game
« Reply #22 on: February 06, 2013, 02:18:04 am »

I am watching. Know this, and despair!
Logged
  
Holy crap, why did I not start watching One Punch Man earlier? This is the best thing.
probably figured an autobiography wouldn't be interesting

GalenEvil

  • Bay Watcher
    • View Profile
    • Mac-Man Games
Re: Aqizzar Finally Starts Making A Game
« Reply #23 on: February 06, 2013, 11:45:52 am »

Argggggh! You make me want to start a dev-log for my project! I feel your pain on the interface issues, since I suck at making them :D. Keybindings usually kick my rump around the block a few times (okay, it's been kicking me for a few weeks now) before I can get a usable system in place. I do AI work primarily and I can say based on my experiences that the AI is easier to deal with. Usually I mock up a UI that I can use pretty easily and then make people playtest so I can evolve it into something playable.

For Keybindings, you can maybe set up a screen that just lists all 'Commands' in the game, using a two variable structure {string CommandName = blahblah, int CommandValue = somethingsomething}. You may have to do a first-run configuration test to get all of the relevant keycodes during first-run startup tests and then map commands to values using the keycodes. IE: Ctrl + A would end up being whatever Ctrl's keycode is OR'd with A's keycode. The structure could be broken from a single object into a dictionary Key-Value pair, just not sure offhand what the key or value should be. It would probably be faster than searching an array piece by piece until you find the command to execute. IE: the Key could be the Command name and the Value could be the delegated action to take when the command is executed; or value could be an integer value specifying an index within a delegate array {doComOne(), doComTwo(), doComThree, ...}. I need to go do some tests since I'm not conversant in Dictionaries and so can't give you a proper answer about how to go about this.

Lastly, PTW! This looks interesting. Good luck, and looking forward to reading this dev-log :D
Logged
Fun is Fun......Done is Done... or is that Done is !!FUN!!?
Quote from: Mr Frog
Digging's a lot like surgery, see -- you grab the sharp thing and then drive the sharp end of the sharp thing in as hard as you can and then stuff goes flying and then stuff falls out and then there's a big hole and you're done. I kinda wish there was more screaming, but rocks don't hurt so I guess it can't be helped.

Gamerlord

  • Bay Watcher
  • Novice GM
    • View Profile
Re: Aqizzar Finally Starts Making A Game
« Reply #24 on: February 06, 2013, 11:59:11 am »

Very interesting. Ptw.

zchris13

  • Bay Watcher
  • YOU SPIN ME RIGHT ROUND~
    • View Profile
Re: Aqizzar Finally Starts Making A Game
« Reply #25 on: February 06, 2013, 08:13:15 pm »

tldr; what does it mean
also post to watch
Logged
this sigtext was furiously out-of-date and has been jettisoned

MaximumZero

  • Bay Watcher
  • Stare into the abyss.
    • View Profile
Re: Aqizzar Finally Starts Making A Game
« Reply #26 on: February 06, 2013, 09:19:14 pm »

tldr; what does it mean
also post to watch
tl;dr is Too Long;Didn't Read.
Logged
  
Holy crap, why did I not start watching One Punch Man earlier? This is the best thing.
probably figured an autobiography wouldn't be interesting

Aqizzar

  • Bay Watcher
  • There is no 'U'.
    • View Profile
Re: Aqizzar Finally Starts Making A Game
« Reply #27 on: February 07, 2013, 11:46:44 pm »

GOD



DAMMIT


My old foe Libtcod strikes again.  I thought I was threw with this shit, but nooo C# Libtcod feels like not playing along like it used to.  How many more chickens am I going to have to sacrifice to make this shit behave as advertised?  All I need is to get the damn thing to initialize, and I'll be able to find out why my interface framework is doomed to failure.

Fun fact: If you Google "C# Libtcod Tutorial", our very own Programming Thread is the third result.  To give you some idea of how much support is available.
Logged
And here is where my beef pops up like a looming awkward boner.
Please amplify your relaxed states.
Quote from: PTTG??
The ancients built these quote pyramids to forever store vast quantities of rage.

Skyrunner

  • Bay Watcher
  • ?!?!
    • View Profile
    • Portfolio
Re: Aqizzar Finally Starts Making A Game
« Reply #28 on: February 07, 2013, 11:57:13 pm »

Libtcod for C# is notably bad. smeding, a guy on #bay12lb, noted that C# had very few working display roguelike display libraries available.
Libtcod for python works, and so does libtcod for C++. >.>
Logged

bay12 lower boards IRC:irc.darkmyst.org @ #bay12lb
"Oh, they never lie. They dissemble, evade, prevaricate, confoud, confuse, distract, obscure, subtly misrepresent and willfully misunderstand with what often appears to be a positively gleeful relish ... but they never lie" -- Look To Windward

Aqizzar

  • Bay Watcher
  • There is no 'U'.
    • View Profile
Re: Aqizzar Finally Starts Making A Game
« Reply #29 on: February 08, 2013, 12:05:42 am »

Libtcod for C# also works, I know this because I've gotten it to work before.  I just have no fucking clue how because the thing is a blackbox.  I'll be pouring over my old code to make sure it actually works like I think it did and start futzing with things until the magic happens again.

That and pray for Max White to show up and take pity on me again, because nothing ever really changes.

UPDATE: Okay, turns out the compiler just randomly decided to switch all the Libtcod elements from "Copy if newer" to "Do not copy" without telling me.  Awesome.

So now it actually breaks on code instead of libraries.  Progress!

MOAR UPDATE: Game technically works, in that a screen appears and I can see my key presses causing buttons to fire off with all the actions I wanted them too.  It just looks like total ass for some reason.  Not bad for a day's work though.
« Last Edit: February 08, 2013, 01:43:36 am by Aqizzar »
Logged
And here is where my beef pops up like a looming awkward boner.
Please amplify your relaxed states.
Quote from: PTTG??
The ancients built these quote pyramids to forever store vast quantities of rage.
Pages: 1 [2] 3 4 ... 10