ID:1928843
 
Possible Hero sprite:


Mockup of a basic tileset I currently have going on:


I've decided to move MicrORPG off of BYOND, as I do with quite a few of my other projects. The reason for this is because I am finding myself needing more out of my hardware, and BYOND doesn't seem like the sort of engine I should be using for my projects. I have switched to BlitzMax for primary development, and I might go off into the world of Java and JavaScript for a while.

Anyhow, regarding the hero sprite, it turns out that keeping the body frame small, but enlarging the limbs and head tend to make the sprite look well-contained in the small size it is allowed to have. Usually in most RPGs, the head is the largest limb, and the torso is the second largest. I really like the way the style of this guy looks. It's slightly Megaman-esque.

As for the tilemap, I'm trying to use as few layers as I possibly need, so if I can get away with one background layer and one foreground layer, I'll be all set. Making several layers for a map is very tedious. I'd rather draw the combinations of different tiles together into one tile in order to achieve the desired effect rather than attempt to use two layers to combine tiles.



The palette uses only four colors, with a hot pink for transparent pixels. The game is meant to represent the Game Boy, so any alpha is omitted, and is instead replaced with a transparent mask for all images (the hot pink color). If any necessary transparency is needed, I'll need to resort to dithering to have a "half-transparent" look.


I'm sure I've shown this sort of UI many times before. Because BlitzMax's 2D Drawing command set allows me to take complete control over how things get rendered on screen, I've added things like scanlines and different overlay colors. The current state of development results in 60 frames per second, even when more than 17k 10x10 pixel images are being drawn to the screen per frame.

The screenshot above has some debug stuff shown on screen:

MEM (bytes of memory used):
The reaosn why this is so high right now is because it's taking into account the tilesets I have loaded, which are 200x1000 pixels each (I think I have two of them loaded). In Task Manager, the game sits at around 26Mb of RAM. This includes instruction code and libraries included in the executable, as well as the amount shown above.

FPS (Frames per second):
Pretty self explanatory. I'll be testing this on my older laptop to see if the FPS happens to drop when performing stress tests.

S (Sprite Counter):
This is reset to 0 every frame. Whenever a tileset blits a tile to the screen, this counter increases by one. Currently in the screenshot, 7580 sprites are being drawn to the screen (although you cannot see them because they currently are all blank). This includes the HUD (40x30x2 sprites), the tilemap (41x31x4), and the debug panel (40x2 for the BG, 16 for the key input squares).

There's currently no sprite sorting. I don't want to hang my program up sorting through sprites every frame, so instead what I plan to do is keep two arrays for actors. The BG and FG layer. Because a tilemap's layer can be drawn at any point, the order of the tilemap's drawing can be controlled. However, as actors appear on screen, their creation order is too difficult to track. Instead, their sprite data will hold another byte for drawing layer, and the program will simply loop over all of them twice (once for the BG layer, and again for the FG layer).
No offense but if you can't finish a game here on BYOND I don't think you could finish it with another engine.
I'll soon have a finished game :) DragonVerse Online!
In response to Ganite
woah cool
Instead of black and Gray I suggest dark blue!
In response to Ganite
Ganite wrote:
No offense but if you can't finish a game here on BYOND I don't think you could finish it with another engine.

Guess I'll turn in my hat and give up for all of eternity then.
Ain't mean to crush your dreams or anything but I just see a lot of people posting "We moved from BYOND to this *****" And see them back posting on BYOND few days later. Changing the engine isn't going to change anything its up to the developer to release their project.
In response to Ganite
Ganite wrote:
Ain't mean to crush your dreams or anything but I just see a lot of people posting "We moved from BYOND to this *****" And see them back posting on BYOND few days later. Changing the engine isn't going to change anything its up to the developer to release their project.

Changing engine doesn't necessarily mean ditching the community.
GreatPirateEra wrote:
That right there is swag.
In response to Ganite
Ganite wrote:
Ain't mean to crush your dreams or anything but I just see a lot of people posting "We moved from BYOND to this *****" And see them back posting on BYOND few days later. Changing the engine isn't going to change anything its up to the developer to release their project.

I agree that it is up to the developer to release a project. So why is it that I have such a hard time with this?

I guess it's gonna be this sort of thread again. Allow me to elaborate. I'm really OCD with code. My experience as a programmer is also not quite as extensive as other programmers. I've really started programming in 2009. Sure, six years of programming sounds like a lot, but I didn't start when I was like 11 like everyone else. Programming was extremely difficult for me to wrap around my head.

One of the biggest hold-backs about learning to program (for myself) is that I need to understand how something works to the fullest extent. I'll need to ask a million and one questions to ensure I know exactly how something works or not, and if I have any doubts about it, I don't use it until I do.

You can be right in the fact that it is hard for me to personally complete something, mostly because I've never really known the correct path in doing so. I spend a lot of nights doing critical thinking on how something should be developed, and undergoing several design structures. This can cause several revisions for a single project to try and see which one fits well. If something doesn't feel right with the source code, it really really irks me.

I learned recently that applying restrictions and limitations for yourself help establish some ground rules so I don't end up going overboard on a particular section of code or section. It's easy to think up ideas and design elements for a project, but this can derail everything one has been working on if it doesn't really work well with the rest of the project or is too complex to simply stick in.

What I have found to be a really good method of design is to start off making code that is completely uncompressed and cleaning up afterwards. This makes it easier to work with and doesn't really break the system of your code structure. The first version of code should indeed look like chicken scratch, because it's mostly raw input. If something doesn't make sense, you can later refactor code so that it's cleaner, but trying to design code while thinking about how it's supposed to look can make it very confusing over time as the project starts to expand. I've fallen into this pitfall a lot of times trying to think about where I'm supposed to work when the project gets large enough. I start losing my way and I end up scrapping it because no progress is ever going to be made because of it.

In the last 6 years that I have been programming, I've learned a lot. There's never just one way of doing things, and there's a million different ways of designing a working solution. It matters more to me that I grow as a developer and continue to tinker rather than release something that I think could have been a lot better.

It's actually kind of interesting how my mind works in this regard. When stripping the source code of most modern design patterns and using only the primitives, I tend to get a lot more done. It can look a lot like I'm trying to reinvent the wheel recreating tools you want to use out of the primitives you're given, but it makes sense to use tools you are comfortable with.

I've taken interest in learning about shaders and low-level programming, such as assembly languages. I seem to do a lot better working with these than higher-level languages. These proprietary tools fascinate me in how they're designed, and they are super complex at face value. I took a course with MIPS assembly, and it seemed to make sense, but it's nothing like x86 assembly.

So, in the terms of "just finish something" I really wish I could just say that and spit something out and call it done. I probably would be better off not to think so hard on design concepts. I encourage everyone to think critically on how they go about designing things, though. I find that it's okay to go about your own path and write things however you feel like if it means that it will work for you, and it works for users.

I have failed many times. But it doesn't stop me from doing what I love, and that is creating things. I'll keep trying until I get it right. We cannot grow unless we make mistakes.

So uh, there's my mind in a nutshell. I like BYOND, by the way. I like hanging out here. The engine is fun to work with for small projects. I pretty much think at this point that because I'm usually doing a lot of fine-tuning, I'd prefer to use something that encourages this. BlitzMax is a lot like C++ except the language is in a BASIC flavor. It's strictly-typed and compiles to assembly. It's super fast and doesn't require a client to run. I can port it to Steam Greenlight directly, too. The downside is that I have to write a lot of things that are usually given to you in BYOND, such as netcode. This is fine, though. I always wanted to learn how to do stuff like this.

I choose to not work with Dream Maker much more for the time being because I actually have quite a few other tools I'd like to work with. It's been a long time since I even touched Game Maker Studio, even though I bought two licenses for the team (they were on sale) and myself to use (D4RK3, Goose, Mechanios). BlitzMax is another non-free tool I purchased, and while I love the language, I have yet to make something with it. I'd better get to doing that.

Eh, anyway, there's my mind dump.
In response to Southv2
Southv2 wrote:
GreatPirateEra wrote:
That right there is swag.


This is actually what it's supposed to look like in-game. There's an overlay color which works as a multiply layer. I might need to lighten the overlay shade so it's a bit brighter though.
In response to Mr_Goober
nice
In response to Mr_Goober
I can't talk to much shit to you seeing as I have more uncompleted games then you just I always see people talking about how they not making they game in DM anymore because BYOND can't do x and y like thats the reason there game isn't releasing.

But I understand what you mean with programming I feel same way even though I'm much more noobier then you at it. But all I can say is "Fail Faster"!
I've probably rewritten the source to many projects so many times. Each time I did, though, I've gotten a different, more clear experience about how I want to design something. I'll try a bunch of different methods and see which one I like the most.

I actually prefer to disregard most OO concepts and use functions and simple data types over complex object structures. It's a simpler method of design, but it can get messy quick.
I like the graphics!

I too used to be ocd with my code. I'd develop a system, learn that I could make it more efficent and would recode. Then I hated how unorganized it was and would recode. Months later I had made no progress.

I love making games, not consistently nit picking every line I write. So I stopped caring and made a game. If my code is readable to me then that is good enough.
I like that, but I'm afraid it might not be bright enough. there's a contrast changing button I implemented but really it just adds white to the screen before drawing the overlay color itself. It's sort of like the contrast slider for the Game Boy:

Pushed the button a few times and it looks like this afterwards.
In response to Mr. RJT
Mr. RJT wrote:
I like the graphics!

I too used to be ocd with my code. I'd develop a system, learn that I could make it more efficent and would recode. Then I hated how unorganized it was and would recode. Months later I had made no progress.

I love making games, not consistently nit picking every line I write. So I stopped caring and made a game. If my code is readable to me then that is good enough.

Yeah, my code literally looks like a mess atm:
''  mouse variables
Global mouse_x :Int = 0
Global mouse_y :Int = 0
Global mouse_click_x :Int = 0
Global mouse_click_y :Int = 0
Global mouse_click :Byte = 0
Global mouse_click_time :Byte = 0
Const mouse_click_time_max:Byte = 16

Function mouse_update()
mouse_x = VirtualMouseX()
mouse_y = VirtualMouseY()
mouse_click = MouseHit(1)

If (mouse_click > 0)
mouse_click_time = 0
mouse_click_x = mouse_x
mouse_click_y = mouse_y
EndIf

If (mouse_click_time < mouse_click_time_max)
mouse_click_time :+ 1
EndIf
EndFunction

Function mouse_draw()
tileset_draw_frame(0,13 + (mouse_click_time/4), mouse_click_x-5, mouse_click_y-5)
tileset_draw_frame(0,1,mouse_x,mouse_y)
EndFunction
Goddamn, Ganite is on point with the thread bashing.
In response to Xorbah
Xorbah wrote:
Goddamn, Ganite is on point with the thread bashing.

I'm done now realized i was turning into a douche to ppl.
''turning into''
Page: 1 2