Author Topic: Lemmix new database  (Read 11137 times)

0 Members and 1 Guest are viewing this topic.

Offline EricLang

  • Posts: 464
    • View Profile
Lemmix new database
« on: November 06, 2012, 06:03:12 PM »
Back to my program Lemmix and could use some brainstorming help.

I want to do 4 things:
1)Create 1 program with a level editor and gameplayer
2)Using a real sql-database (probably firebird client, very good and fast) to store data and levels.
3)Importing doslemmings / winlemmings / lemmings tribes (2D only) into the database.
4)Other people can write plugins.

First point is: the database must be able to store all types of lemminggames and graphics.
So I'm currently busy designing the tables and relations.
Important thing is that everything can be found easily / transparently by the editor (and player) to collect to correct data.
Are there people here who can help me designing the entities?
This can be done in this thread of course.


Offline mobius

  • Posts: 2758
  • relax.
    • View Profile
Re: Lemmix new database
« Reply #1 on: November 06, 2012, 08:26:47 PM »
oh boy! You’re going to work on Lemmix again?

happy happy joy joy.  :thumbsup:


I can’t help with the programming, but I can help with brainstorming. There are a number of people here who can however do some program wizardry

-------------
a few ideas for the program:

have music and or sounds toggable in the tester/player.
fast forward is a little too fast. Either slow it down or make 2 FF’s (two different speeds)
[To go into more detail; FF actually seems buggy to me. It will go at a certain speed then suddenly speed up faster. Then sometimes not.]
Have an option that you can use the player/tester in a windowed mode, or non-full screen.

------------
the following are things which are about the game itself which I don’t know if you can change or not; (in order of relative importance/assumed do-ability).

directional selection
highlight selected lemming under cursor. (This comes in handy when your selecting from a cluttered group. Even with the message in the corner it can still be annoying).
Fix the way trigger areas work.
   Make their positions accurate to the object.
   Be able to have more than the current amount. Whatever that is if you try to put more objects on then that they don’t work.
Change the way they have to be aligned to the grid. That’s really annoying.
Steel is the same way.
fix all the steel glitches.
Add steel to the Bubble terrain set. I wouldn’t care if we just copied the steel artwork from rock or brick. They look close enough. (Ones like Crystal or ice would be out of place but I don’t think rock looks too bad. Or maybe pillar)
Somewhere down the road, I have all kinds of ideas for totally new features to add to the game. As do some others here.
--------------
I enjoy using your program btw.  :thumbsup:  Even if none of those things are possible I'd like to write it down somewhere for reference.
everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain


Offline EricLang

  • Posts: 464
    • View Profile
Re: Lemmix new database
« Reply #2 on: November 06, 2012, 08:48:58 PM »
Happy to hear that you enjoy Lemmix!
It's time to make the program more user friendly and modern.

Thanks I'll list all ideas!
I want to implement different styles and mechanics, of make some things user-definable, although things should be enforced - I think - by the level itself.
But I also really like to keep the dos-clones intact.

The biggest problem - now- is defining the game in a way that different styles, mechanics, resolutions, lemmingraces can be implemented and added.
So the database must cover the past and the future. Only 2D.

By the way. The play tester will respond in the same way as the player, probably with some additions for checking things, when creating a level.

Offline Simon

  • Administrator
  • Posts: 3897
    • View Profile
    • Lix
Re: Lemmix new database
« Reply #3 on: November 07, 2012, 10:39:13 PM »
I presume the database is a central one on the net? For users' level collections stored on their own machines, the filesystem should be the best level database.

If you would like to use the original level formats of L1 and L2, then an idea for the database is to just save the whole level as a binary string, and extract only some data from this string into dedicated rows (name, tileset, skillset, searchable things like these). You probably need to write a server program anyway that understands level files. You will then end up with something similar to Mindless's database.

I'd refrain from extracting all level data from the binary string and sort everything into tables. Or do you want to have additional tables with e.g. one row for each terrain object? This seems unwieldy.

Are you shooting for a player with exact L2 mechanics? Several skills have agonizing physics details -- weird ballistic arcs for thrown objects, explosion knockback, fan usage, collision detections, diver glitches, ... This seems like a mammoth project. AFAIK, nobody has disassembled the game yet to provide help.

However, a fully-fledged L2 editor is still not available these days, and would certainly revive level designing for that game. State of the art is to use the nonfree lgl2 with geoo's L2 suite.

-- Simon

Offline mobius

  • Posts: 2758
  • relax.
    • View Profile
Re: Lemmix new database
« Reply #4 on: November 07, 2012, 10:50:32 PM »
Are you shooting for a player with exact L2 mechanics? Several skills have agonizing physics details -- weird ballistic arcs for thrown objects, explosion knockback, fan usage, collision detections, diver glitches, ... This seems like a mammoth project. AFAIK, nobody has disassembled the game yet to provide help.

nooooooo! L2 is a terrible game! (game mechanic wise) :D like you said.
And the exit's trigger area is way too tiny. Unless of course you fix those things or make them much nicer.
everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain


Offline EricLang

  • Posts: 464
    • View Profile
Re: Lemmix new database
« Reply #5 on: November 08, 2012, 06:58:28 PM »
Quote
I presume the database is a central one on the net? For users' level collections stored on their own machines, the filesystem should be the best level database.
That is the next step. First I want to create a local database.

Quote
I'd refrain from extracting all level data from the binary string and sort everything into tables. Or do you want to have additional tables with e.g. one row for each terrain object? This seems unwieldy.
Not at all in my opinion. The first thing I want to get rid of is an antique file format.
So yes, rows and tables. But that is internal stuff which Lemmix handles for a user.

Quote
Are you shooting for a player with exact L2 mechanics? Several skills have agonizing physics details -- weird ballistic arcs for thrown objects, explosion knockback, fan usage, collision detections, diver glitches, ... This seems like a mammoth project. AFAIK, nobody has disassembled the game yet to provide help.
Not sure, but Lemmix must be able to add new gameplay mechanics. (maybe with plugin's)

Quote
However, a fully-fledged L2 editor is still not available these days, and would certainly revive level designing for that game. State of the art is to use the nonfree lgl2 with geoo's L2 suite.
I know there is some documentation about these fileformats. (I remember extracting some L2 data a few years ago).
Do you know a place where documentation is collected?

Offline EricLang

  • Posts: 464
    • View Profile
Re: Lemmix new database
« Reply #6 on: November 08, 2012, 09:54:06 PM »
At least I would like to give a try to implement gamemechanics for high resolution.
And maybe a list of optional mechanics / gameplay features would be nice.

Offline geoo

  • Administrator
  • Posts: 1475
    • View Profile
Re: Lemmix new database
« Reply #7 on: November 09, 2012, 01:23:03 AM »

Offline EricLang

  • Posts: 464
    • View Profile
Re: Lemmix new database
« Reply #8 on: November 09, 2012, 08:13:15 AM »
Ah yes that, thanks!

Offline mobius

  • Posts: 2758
  • relax.
    • View Profile
Re: Lemmix new database
« Reply #9 on: November 09, 2012, 08:59:41 PM »
here's some things that would be nice, I forgot to put above:

in the editor:
-order arrangement – ability to move terrain pieces and objects above and below others (does away with the “no overwrite” function. Currently objects always go over terrain unless selected no overwrite.
-have options for setting your own personal hotkeys (I’m not real adamant about this)

in the game:
slow motion: (frame by frame movement for easy pixel precision)

------

I have lots of suggestions and ideas for new features in the game but I think it may be better to make another topic specifically for this purpose. (new ideas for the game and/or any lemming clone) My list of stuff is pretty large.
Clam made a topic but it was specifically about gravity.
everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain


Offline EricLang

  • Posts: 464
    • View Profile
Re: Lemmix new database
« Reply #10 on: November 09, 2012, 10:55:02 PM »
I remember Lemmixplayer already has a frame-by-frame possibility. I'll check it, it's in the sourcecode somewhere ...

Offline Luis

  • Posts: 447
    • View Profile
Re: Lemmix new database
« Reply #11 on: November 13, 2012, 12:29:55 AM »
Is there a way to make it easier to pick select a terrain that is already on the level? It's hard to pick that one terrain that you want to move or copy, when other terrains are in the way, especially the ones with big yellow squares. You'll have to move them out of the way to get it. Is it possible to make it like the editor in the PSP, where the cursor will move whatever terrain it's touching and not just the one that has the biggest yellow square?
Mr. Lemmings PSP user.

Offline EricLang

  • Posts: 464
    • View Profile
Re: Lemmix new database
« Reply #12 on: November 13, 2012, 12:43:36 AM »
Yeah I have to think about that. In the current Lemmix Editor you can select pieces with the list of terrains and objects.
Another idea a while ago was to be able to go 'deeper' with Ctrl + Mouseclick.
I don't know the psp editor. It moves all pieces which overlap the mouseposition?

Offline Luis

  • Posts: 447
    • View Profile
Re: Lemmix new database
« Reply #13 on: November 13, 2012, 01:29:23 AM »
It can only move one terrain at a time. If there's multiple terrains in the same area where the cursor it's touching, it will move the one that's in the front of all the other ones. It can move a terrain that doesn't overwrite the other one if it's touching that terrain's pixels. This makes it easier to pick whatever terrain you want to move.
Mr. Lemmings PSP user.

Offline mobius

  • Posts: 2758
  • relax.
    • View Profile
Re: Lemmix new database
« Reply #14 on: November 13, 2012, 02:15:53 AM »
Holding Ctrl+mousclick selects everything under the cursor, this is useful but it is currently impossible to select a piece of terrain that is almost or totally buried under other terrain. [Without moving all the terrain around]

Yeah I have to think about that. In the current Lemmix Editor you can select pieces with the list of terrains and objects.
Another idea a while ago was to be able to go 'deeper' with Ctrl + Mouseclick.
I don't know the psp editor. It moves all pieces which overlap the mouseposition?

This doesn't work for me. Selecting things in the list window has no effect and can't seem to really do anything. If I select something in the level it gets highlighted in the list but I can't do anything with the list.

also I don't know where to get/what files I need to make INI files for Lemmini, but this probably isn't a good place to ask about that.
everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain


Offline EricLang

  • Posts: 464
    • View Profile
Re: Lemmix new database
« Reply #15 on: November 13, 2012, 08:08:13 AM »
Oh yes the list works as far as i know. Pressing space, while the list is focused selects an item. Pressing Shift + Space adds the current item to the selection (multiselect)

Offline Leaf_It

  • Posts: 2
    • View Profile
Re: Lemmix new database
« Reply #16 on: November 13, 2012, 11:17:03 PM »
Joined this forum specifically because I saw this thread.

I used to play lemmings all the time about 5 years ago. I was a highschool school student who had discovered roms and emulators. We also had some of the original lemmings games on floppy disks. I took the initiative and found Lemmings, ONML, and X-mas 1991 - 1994 along with lemmix, and dosbox. As time went on I forgot about the games, but recently I remembered them, and wanted to play again. I feared that Lemmix would be malfunctioning due to the age of the old games, but while looking for the old program, I found this thread.

Eric, you are part of my childhood memories. I can't help you much with making the program, but I wanted to show my support. I'm very glad you have decided to start working on it again.

Offline EricLang

  • Posts: 464
    • View Profile
Re: Lemmix new database
« Reply #17 on: November 14, 2012, 07:29:58 AM »
The old clones and editor still work.  http://ericenzwaan.nl/eric/lemmings/lemmix.htm

Offline Leaf_It

  • Posts: 2
    • View Profile
Re: Lemmix new database
« Reply #18 on: November 14, 2012, 07:39:25 AM »
I know. I just wanted to let you know I appreciate what you're doing. Carry on.

Offline EricLang

  • Posts: 464
    • View Profile
Re: Lemmix new database
« Reply #19 on: November 15, 2012, 08:41:12 AM »
Below here a few notes on my first table-design-thoughts.
I still have to invent a trick that makes it possible to mix graphicsets with this design.
Any comments?

Is there anyone here that can produce a DLL for testing my pluginsystem?


Each table contains a unique ID, and a unique name

GameSystem (dos original, dos ohno etc)

Each of the following tables belongs to one GameSystem

LemmingAction (walk, bash, fall etc)
   is_assignable: boolean (assignable by user interface?)
   is_permanent_skill: boolean (like climber, floater)
AnimationKind (once, loop, triggered etc)
Drawing (nooverwrite, only on terrain, flippedhorz, flippervert etc)
TriggerEffect (effect of trap)
Soundeffect (any sound effect)
Music (music belonging to level)
GraphicSet (one graphic set of a certain style)
Terrain (piece of terrain)
Structure (piece of structure (trap))
Material (definition of material i.e. steel)
Lemming (lemming definition)
LevelPack (author etc)
LevelSection (fun, tricky, taxing etc)
   belongs to LevelPack
LevelContent (placeholder for level)
   belongs to LevelSection
LevelTerrain (terrain piece of a level)
   belongs to LevelContent
   ref to Terrain
LevelStructure (object piece of a level)
   belongs to LevelContent
   ref to Structure
LevelMaterial (material/steel piece of a level)
   belongs to LevelContent
   ref to Material
LevelChallenge (how many lemmings, how much to save etc)
   belongs to LevelContent
   rescue_count: integer
LevelAction (available action of a level)
   belongs to LevelChallenge
   ref to LemmingAction
   available: integer (number of available actions/skills)

Offline EricLang

  • Posts: 464
    • View Profile
Re: Lemmix new database
« Reply #20 on: November 15, 2012, 09:52:40 AM »
For anyone interested creating a first step test-plugin, here are the details.

The DLL has to export a procedure with the following declaration:
Code: [Select]
SetLemmixInterface(PLib: Pointer); stdcall;The stdcall is a delphi thing. It means that parameters are passed from left to right (which means nothing of course when we have only one parameter)

When Lemmix loads the DLL it calls this procedure passing the PLib pointer: a record with the following (delphi) declaration.
Code: [Select]
TLemmixLibrary = packed record
  TestProcedure: procedure(X, Y, Z: Integer); stdcall;
end;
In this test case the DLL has to call "TestProcedure" (which resides in my new lemmix.exe) passing the parameters X=10, Y=20, Z=30.
Here the calling convention (stdcall) can be tested, so be sure the calling convention is from right to left.

In delphi the DLL procedure would look like this:
Code: [Select]
procedure SetLemmixInterface(PLib: Pointer);
var
  TypedLib: ^TLemmixLibrary;
begin
  TypedLib := PLib
  TypedLib^.TestProcedure(10, 20, 30);
end;

If the test succeeds here I know the system basically works  8)
It would be nice to have a few DLL's written in different programming languages (VB, C++ and whatever there)

Offline mobius

  • Posts: 2758
  • relax.
    • View Profile
Re: Lemmix new database
« Reply #21 on: November 16, 2012, 04:38:33 AM »
I forgot to mention something very important:

There's a weird glitch in the editor: If you re-size the window panels in the bottom (The place where you can put the list window, properties window etc. If you re-size them, hot-keys (like pressing delete on the keypad to delete something) stop working. I haven't heard that anyone else experienced this though.
everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain


Offline Simon

  • Administrator
  • Posts: 3897
    • View Profile
    • Lix
Re: Lemmix new database
« Reply #22 on: November 16, 2012, 05:03:51 AM »
If you're using the database as an offline level format, then yes, you should do everything with rows. Storing the binary strings in the legacy formats was an advice only for an online level collection with an offline player using the legacy formats.

With the current approach, one thing to consider is easy exchange of levels between users. Do you keep each level in an exported and sharable file? Otherwise, you need a quick and easy way to export levels to files, preferably in batch mode (export many or all at once).

-- Simon

Offline EricLang

  • Posts: 464
    • View Profile
Re: Lemmix new database
« Reply #23 on: November 16, 2012, 10:43:27 AM »
Exporting levels in a single file will be provided as well as exporting to other systems.

Offline EricLang

  • Posts: 464
    • View Profile
Re: Lemmix new database
« Reply #24 on: November 26, 2012, 10:00:15 PM »
Theoretical question:
When importing different styles into the database should I duplicate all the graphics?
Let's say I import 3 directories
1) Dos Original
2) Dos Ohno
3) Custom Lemmings

There are a lot of duplicate terrains and other graphics.
On the other side, for real they are duplicates as well.

Offline Luis

  • Posts: 447
    • View Profile
Re: Lemmix new database
« Reply #25 on: December 09, 2012, 05:12:21 PM »
I can't make "Back of the net" in Lemmix. I found out it has a terrain limit. :( Can this terrain limit be increased by updating this editor? This level has a lot of nets and some of them have pieces missing, so I couldn't just spam the big net, which is number 14, so I had to use a lot of those small ones.

Mr. Lemmings PSP user.

Offline mobius

  • Posts: 2758
  • relax.
    • View Profile
Re: Lemmix new database
« Reply #26 on: December 09, 2012, 08:00:35 PM »
I can't make "Back of the net" in Lemmix. I found out it has a terrain limit. :( Can this terrain limit be increased by updating this editor? This level has a lot of nets and some of them have pieces missing, so I couldn't just spam the big net, which is number 14, so I had to use a lot of those small ones.



are you sure it's because of a terrain limit? How many terrain pieces are in your level?

Realize, you could also use the big net and just use an eraser piece to cover up that spot you need. ;) that's what I'd do.

The reason I'm asking is because I remember seeing a level by someone that has a RIDICULOUS amount of terrain. (it was also a crystal level) with spiderwebs stacked on top of each other so much that there's no space in between them. (well.. it's kind of hard to describe but I'm pretty sure they had hundreds of pieces.
everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain


Offline Tsyu

  • Posts: 350
    • View Profile
Re: Lemmix new database
« Reply #27 on: December 09, 2012, 08:03:08 PM »
I can't make "Back of the net" in Lemmix. I found out it has a terrain limit. :( Can this terrain limit be increased by updating this editor? This level has a lot of nets and some of them have pieces missing, so I couldn't just spam the big net, which is number 14, so I had to use a lot of those small ones.
The Lemmings level format supports only 400 terrain pieces; an update can't increase this unless a different level format is used.

Offline Luis

  • Posts: 447
    • View Profile
Re: Lemmix new database
« Reply #28 on: December 09, 2012, 08:53:22 PM »
I haven't thought of using the giant net and then use erasers. There's 397 terrains and adding more will stop it from saving. Terrain number 3 and 6 were used a lot, just so I won't place nets in areas where their not suppose to be, like the missing pieces in the picture. This is another one of those 36 PSP levels by the way and this one is the most confusing.
Mr. Lemmings PSP user.

Offline mobius

  • Posts: 2758
  • relax.
    • View Profile
Re: Lemmix new database
« Reply #29 on: December 09, 2012, 10:12:03 PM »
I haven't thought of using the giant net and then use erasers. There's 397 terrains and adding more will stop it from saving. Terrain number 3 and 6 were used a lot, just so I won't place nets in areas where their not suppose to be, like the missing pieces in the picture. This is another one of those 36 PSP levels by the way and this one is the most confusing.

here ya go: see my attached picture.
All I did was spawn (thinking garry's mod) insert a big mesh piece. Then use a couple of single small straight 'wires'. Check 'erase' and put them so they cover up just one direction of lines. They'll cover up too much, so put in another one (not erased) [facing other direction] over that.  :)

u may still end up using quite a bit of pieces but I don't think nearly as many
everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain


Offline EricLang

  • Posts: 464
    • View Profile
Re: Lemmix new database
« Reply #30 on: December 09, 2012, 11:07:37 PM »
The next version of Lemmix (have some patience:)) will support more terrain and structures.

Offline Luis

  • Posts: 447
    • View Profile
Re: Lemmix new database
« Reply #31 on: December 10, 2012, 04:51:53 AM »
I could wait, since the nine remaining levels doesn't have too many terrains and nets with holes that requires erasers. The level is finished, but the terrains that were just there for decoration couldn't make it.
Mr. Lemmings PSP user.

Offline EricLang

  • Posts: 464
    • View Profile
Re: Lemmix new database
« Reply #32 on: January 03, 2013, 02:56:59 PM »
Ok, a first version of the database is ready.
Now, when watching the attached picture (treeview + inspector), what would be the best userfriendly way to edit all metadata?
Any good ideas?

Offline EricLang

  • Posts: 464
    • View Profile
Re: Lemmix new database
« Reply #33 on: January 27, 2013, 08:27:09 PM »
database working. mixed terrain possible :)

Offline Simon

  • Administrator
  • Posts: 3897
    • View Profile
    • Lix
Re: Lemmix new database
« Reply #34 on: January 28, 2013, 02:04:02 AM »
To make up for our usual lack of forum replies on this, here's what we discussed in IRC recently.

Please release the program, no matter how early it is, to satisfy people's curiosity and allow proper feedback. And open the source.

I lack a Windows platform to make and test plugins natively, and running Lemmix 1 in Wine has always been a little slow. I'd still be very much inclined to try the new program.

-- Simon

Offline EricLang

  • Posts: 464
    • View Profile
Re: Lemmix new database
« Reply #35 on: January 28, 2013, 06:06:31 AM »
I will release asap a first testversion. Too early now.
And when the program is a bit further I'll try to make the source code so that it will work on a mac as well.
It will be open source.